mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-16 14:08:26 +00:00
Translated ['macos-hardening/macos-security-and-privilege-escalation/mac
This commit is contained in:
parent
f6cbf29df3
commit
3ab4d7fe3a
4 changed files with 259 additions and 158 deletions
|
@ -2,18 +2,32 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
|
||||
</details>
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io), bir şirketin veya müşterilerinin **hırsız kötü amaçlı yazılımlar** tarafından **kompromize edilip edilmediğini** kontrol etmek için **ücretsiz** işlevler sunan **dark-web** destekli bir arama motorudur.
|
||||
|
||||
WhiteIntel'in başlıca amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye saldırılarıyla mücadele etmektir.
|
||||
|
||||
Websitesini ziyaret edebilir ve motorlarını **ücretsiz** deneyebilirsiniz:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## Statik Analiz
|
||||
|
||||
### otool
|
||||
|
@ -34,7 +48,7 @@ objdump --disassemble-symbols=_hello --x86-asm-syntax=intel toolsdemo #Disassemb
|
|||
```
|
||||
### jtool2
|
||||
|
||||
Bu araç, **codesign**, **otool** ve **objdump** için bir **yedek** olarak kullanılabilir ve birkaç ek özellik sunar. [**Buradan indirebilirsiniz**](http://www.newosxbook.com/tools/jtool.html) veya `brew` ile kurabilirsiniz.
|
||||
Bu araç, **codesign**, **otool** ve **objdump** için bir **yedek** olarak kullanılabilir ve birkaç ek özellik sunar. [**Buradan indirebilirsiniz**](http://www.newosxbook.com/tools/jtool.html) veya `brew` ile yükleyebilirsiniz.
|
||||
```bash
|
||||
# Install
|
||||
brew install --cask jtool2
|
||||
|
@ -54,7 +68,7 @@ jtool2 -d __DATA.__const myipc_server | grep MIG
|
|||
### Codesign / ldid
|
||||
|
||||
{% hint style="danger" %}
|
||||
**`Codesign`**, macOS'ta bulunabilirken **`ldid`**, iOS'ta bulunabilir.
|
||||
**`Codesign`**, macOS'ta bulunurken **`ldid`**, iOS'ta bulunur.
|
||||
{% endhint %}
|
||||
```bash
|
||||
# Get signer
|
||||
|
@ -84,7 +98,7 @@ ldid -S/tmp/entl.xml <binary>
|
|||
```
|
||||
### SuspiciousPackage
|
||||
|
||||
[**SuspiciousPackage**](https://mothersruin.com/software/SuspiciousPackage/get.html) kurulum dosyaları olan **.pkg** dosyalarını incelemek ve içeriğini kurulum yapmadan önce görmek için faydalı bir araçtır.\
|
||||
[**SuspiciousPackage**](https://mothersruin.com/software/SuspiciousPackage/get.html) şüpheli **.pkg** dosyalarını (kurulum dosyalarını) incelemek ve içeriğini kurmadan önce görmek için faydalı bir araçtır.\
|
||||
Bu kurulum dosyaları genellikle kötü amaçlı yazılım yazarlarının **kötü amaçlı yazılımı sürdürmek** için genellikle kötüye kullanılan `preinstall` ve `postinstall` bash betiklerine sahiptir.
|
||||
|
||||
### hdiutil
|
||||
|
@ -98,12 +112,12 @@ hdiutil attach ~/Downloads/Firefox\ 58.0.2.dmg
|
|||
#### Metadata
|
||||
|
||||
{% hint style="danger" %}
|
||||
Objective-C ile yazılan programlar, [Mach-O ikili dosyalarına](../macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md) derlendiğinde sınıf bildirimlerini **saklar**. Bu sınıf bildirimleri şunları içerir:
|
||||
Objective-C ile yazılan programlar, [Mach-O ikili dosyalarına](../macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md) derlendiğinde sınıf bildirimlerini **saklarlar**. Bu sınıf bildirimleri şunları içerir:
|
||||
{% endhint %}
|
||||
|
||||
* Sınıfın adı
|
||||
* Sınıfı
|
||||
* Sınıf metodları
|
||||
* Sınıf örnek değişkenleri
|
||||
{% endhint %}
|
||||
|
||||
Bu bilgilere [**class-dump**](https://github.com/nygard/class-dump) kullanarak erişebilirsiniz:
|
||||
```bash
|
||||
|
@ -111,14 +125,14 @@ class-dump Kindle.app
|
|||
```
|
||||
#### Fonksiyon çağrısı
|
||||
|
||||
Bir binary dosyasında bir fonksiyon çağrıldığında ve bu binary Objective-C kullandığında, derlenmiş kod o fonksiyonu çağırmak yerine **`objc_msgSend`**'i çağıracaktır. Bu fonksiyon ise son fonksiyonu çağıracaktır:
|
||||
Bir binary dosyasında bir fonksiyon çağrıldığında ve bu binary Objective-C kullandığında, derlenmiş kod bu fonksiyonu çağırmak yerine **`objc_msgSend`**'i çağıracaktır. Bu fonksiyon, nihai fonksiyonu çağıracaktır:
|
||||
|
||||
![](<../../../.gitbook/assets/image (302).png>)
|
||||
|
||||
Bu fonksiyonun beklediği parametreler şunlardır:
|
||||
|
||||
- İlk parametre (**self**), "mesajı alacak olan sınıf örneğine işaret eden bir işaretçi"dir. Daha basitçe ifade etmek gerekirse, bu, yöntemin çağrıldığı nesnedir. Eğer yöntem bir sınıf yöntemi ise, bu, sınıf nesnesinin bir örneği olacaktır, bir örnek yöntem için ise self, bir nesne olarak sınıfın örneğine işaret edecektir.
|
||||
- İkinci parametre (**op**), "mesajı işleyen yöntemin seçicisidir". Daha basitçe ifade etmek gerekirse, bu sadece yöntemin **adıdır**.
|
||||
- İlk parametre (**self**), "mesajı alacak sınıf örneğine işaret eden bir işaretçi"dir. Daha basitçe söylemek gerekirse, bu, yöntemin çağrıldığı nesnedir. Eğer yöntem bir sınıf yöntemi ise, bu, sınıf nesnesinin bir örneği olacaktır, bir örnek yöntem için ise self, bir nesne olarak sınıfın örneğine işaret edecektir.
|
||||
- İkinci parametre, (**op**), "mesajı işleyen yöntemin seçicisi"dir. Yine, daha basitçe söylemek gerekirse, bu sadece **yöntemin adıdır**.
|
||||
- Geri kalan parametreler, yöntem tarafından gereken **değerlerdir** (op).
|
||||
|
||||
Bu bilgilere **ARM64'te `lldb` ile kolayca nasıl ulaşılacağını** bu sayfada görebilirsiniz:
|
||||
|
@ -132,18 +146,18 @@ x64:
|
|||
| **Argüman** | **Register** | **(için) objc\_msgSend** |
|
||||
| ----------------- | --------------------------------------------------------------- | ---------------------------------------------------- |
|
||||
| **1. argüman** | **rdi** | **self: yöntemin çağrıldığı nesne** |
|
||||
| **2. argüman** | **rsi** | **op: yöntemin adı** |
|
||||
| **3. argüman** | **rdx** | **yönteme gönderilen 1. argüman** |
|
||||
| **4. argüman** | **rcx** | **yönteme gönderilen 2. argüman** |
|
||||
| **5. argüman** | **r8** | **yönteme gönderilen 3. argüman** |
|
||||
| **6. argüman** | **r9** | **yönteme gönderilen 4. argüman** |
|
||||
| **7. ve sonrası** | <p><strong>rsp+</strong><br><strong>(yığın üzerinde)</strong></p> | **yönteme gönderilen 5. ve sonrası argüman** |
|
||||
| **2. argüman** | **rsi** | **op: yöntemin adı** |
|
||||
| **3. argüman** | **rdx** | **Yönteme gönderilen 1. argüman** |
|
||||
| **4. argüman** | **rcx** | **Yönteme gönderilen 2. argüman** |
|
||||
| **5. argüman** | **r8** | **Yönteme gönderilen 3. argüman** |
|
||||
| **6. argüman** | **r9** | **Yönteme gönderilen 4. argüman** |
|
||||
| **7. ve sonraki** | <p><strong>rsp+</strong><br><strong>(yığın üzerinde)</strong></p> | **Yönteme gönderilen 5. ve sonraki argümanlar** |
|
||||
|
||||
### Swift
|
||||
|
||||
Swift binary dosyalarıyla, Objective-C uyumluluğu olduğundan, bazen [class-dump](https://github.com/nygard/class-dump/) kullanarak deklarasyonları çıkarabilirsiniz ancak her zaman mümkün olmayabilir.
|
||||
Swift binary dosyalarıyla, Objective-C uyumluluğu olduğundan bazen [class-dump](https://github.com/nygard/class-dump/) kullanarak deklarasyonları çıkarabilirsiniz, ancak her zaman değil.
|
||||
|
||||
**`jtool -l`** veya **`otool -l`** komut satırları ile **`__swift5`** ön ekini taşıyan birkaç bölüm bulunabilir:
|
||||
**`jtool -l`** veya **`otool -l`** komut satırları ile **`__swift5`** öneki ile başlayan birkaç bölüm bulunabilir:
|
||||
```bash
|
||||
jtool2 -l /Applications/Stocks.app/Contents/MacOS/Stocks
|
||||
LC 00: LC_SEGMENT_64 Mem: 0x000000000-0x100000000 __PAGEZERO
|
||||
|
@ -155,9 +169,9 @@ Mem: 0x100027064-0x1000274cc __TEXT.__swift5_fieldmd
|
|||
Mem: 0x1000274cc-0x100027608 __TEXT.__swift5_capture
|
||||
[...]
|
||||
```
|
||||
Bu bölümde depolanan bilgiler hakkında daha fazla bilgiye [bu blog yazısında](https://knight.sc/reverse%20engineering/2019/07/17/swift-metadata.html) ulaşabilirsiniz.
|
||||
Ayrıca, bu bölümde depolanan bilgiler hakkında daha fazla bilgiye [bu blog yazısında](https://knight.sc/reverse%20engineering/2019/07/17/swift-metadata.html) ulaşabilirsiniz.
|
||||
|
||||
Ayrıca, **Swift ikili dosyalarında semboller olabilir** (örneğin kütüphaneler, işlevlerine çağrı yapılabilmesi için sembollerin depolanması gerekebilir). **Semboller genellikle işlev adı ve özniteliği hakkında bilgi içerir ve karmaşık bir şekilde bulunurlar, bu nedenle çok faydalıdırlar ve orijinal adı alabilen "**demanglers"** bulunmaktadır:
|
||||
Ayrıca, **Swift ikili dosyalarının sembolleri olabilir** (örneğin, kütüphanelerin işlevlerine çağrı yapılabilmesi için sembollerin depolanması gerekir). **Semboller genellikle işlev adı ve özniteliği hakkında bilgi içerir ve çirkin bir şekilde saklanır, bu nedenle çok yararlıdır ve orijinal adı alabilen "**demanglers"** bulunmaktadır:
|
||||
```bash
|
||||
# Ghidra plugin
|
||||
https://github.com/ghidraninja/ghidra_scripts/blob/master/swift_demangler.py
|
||||
|
@ -167,9 +181,9 @@ swift demangle
|
|||
```
|
||||
### Paketlenmiş ikili dosyalar
|
||||
|
||||
* Yüksek entropi kontrolü yapın
|
||||
* Dizeleri kontrol edin (anlaşılabilir bir dize yoksa, paketlenmiş olabilir)
|
||||
* MacOS için UPX paketleyici bir "\_\_XHDR" adında bir bölüm oluşturur
|
||||
- Yüksek entropi kontrol edin
|
||||
- Dizeleri kontrol edin (anlaşılabilir bir dize yoksa, paketlenmiş olabilir)
|
||||
- MacOS için UPX paketleyici "\_\_XHDR" adında bir bölüm oluşturur
|
||||
|
||||
## Dinamik Analiz
|
||||
|
||||
|
@ -185,21 +199,21 @@ MacOS'ta **sistem ikililerini** (örneğin `cloudconfigurationd`) **enstrümaniz
|
|||
|
||||
MacOS, bir uygulama çalıştırılırken **ne yaptığını anlamaya çalışırken** çok yararlı olabilecek birçok günlük oluşturur.
|
||||
|
||||
Ayrıca, bazı günlükler, **kullanıcı** veya **bilgisayar** **tanımlanabilir** bilgileri **gizlemek** için `<private>` etiketini içerecektir. Bununla birlikte, bu bilgileri açıklamak için bir sertifika **yüklenebilir**. [**Buradan**](https://superuser.com/questions/1532031/how-to-show-private-data-in-macos-unified-log) açıklamaları takip edin.
|
||||
Ayrıca, bazı günlüklerin, **kullanıcı** veya **bilgisayar** **tanımlanabilir** bilgileri **gizlemek** için `<private>` etiketini içereceğini unutmayın. Bununla birlikte, bu bilgileri açıklamak için bir sertifika **yüklenebilir**. [**Buradan**](https://superuser.com/questions/1532031/how-to-show-private-data-in-macos-unified-log) açıklamaları takip edin.
|
||||
|
||||
### Hopper
|
||||
|
||||
#### Sol panel
|
||||
|
||||
Hopper'ın sol panelinde ikilinin sembolleri (**Etiketler**), prosedürlerin ve fonksiyonların listesi (**Proc**) ve dizeler (**Str**) görülebilir. Bunlar, Mac-O dosyasının çeşitli bölümlerinde tanımlanan dizelerdir (_cstring veya_ `objc_methname` gibi).
|
||||
Hopper'ın sol panelinde ikilinin sembolleri (**Etiketler**), prosedürlerin ve fonksiyonların listesi (**Proc**) ve dizeler (**Str**) görülebilir. Bunlar tüm dizeler değildir, ancak Mac-O dosyasının çeşitli bölümlerinde tanımlananlar (örneğin _cstring veya `objc_methname`)dır.
|
||||
|
||||
#### Orta panel
|
||||
|
||||
Orta panelde **dizilmiş kodu** görebilirsiniz. Ve **ham** bir şekilde, **grafik** olarak, **derlenmiş** ve **ikili** olarak görebilirsiniz, ilgili simgeye tıklayarak:
|
||||
Orta panelde **dizilmiş kodu** görebilirsiniz. Ve bunu **ham**, **grafik**, **derlenmiş** ve **ikili** olarak görebilirsiniz, ilgili simgeye tıklayarak:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (340).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Bir kod nesnesine sağ tıklayarak **o nesneye referansları** görebilir veya hatta adını değiştirebilirsiniz (bu, derlenmiş yalancı kodda çalışmaz):
|
||||
Bir kod nesnesine sağ tıklayarak **o nesneye referanslara/ondan referanslara** bakabilir veya adını değiştirebilirsiniz (bu, derlenmiş yalancı kodda çalışmaz):
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1114).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -207,18 +221,18 @@ Ayrıca, **orta aşağıda python komutları yazabilirsiniz**.
|
|||
|
||||
#### Sağ panel
|
||||
|
||||
Sağ panelde **gezinme geçmişi** (şu anki duruma nasıl geldiğinizi bilmeniz için) gibi ilginç bilgileri, bu işlevi **çağıran tüm işlevleri** ve bu işlevin **çağırdığı tüm işlevleri** görebileceğiniz **çağrı grafiği**ni ve **yerel değişkenler** bilgilerini görebilirsiniz.
|
||||
Sağ panelde **gezinme geçmişi** (şu anki duruma nasıl geldiğinizi bilmeniz için) gibi ilginç bilgileri, bu işlevi çağıran tüm işlevleri ve bu işlevin çağırdığı tüm işlevleri görebileceğiniz **çağrı grafiği**ni ve **yerel değişkenler** bilgilerini görebilirsiniz.
|
||||
|
||||
### dtrace
|
||||
|
||||
Kullanıcılara uygulamalara son derece **düşük seviyede erişim** sağlar ve kullanıcılara **programları izleme** ve hatta **çalışma akışlarını değiştirme** olanağı sağlar. Dtrace, **çekirdeğin her yerine yerleştirilen** ve sistem çağrılarının başlangıcı ve sonu gibi konumlarda bulunan **probeleri** kullanır.
|
||||
Kullanıcılara uygulamalara son derece **düşük seviyede erişim** sağlar ve kullanıcılara **programları izleme** ve hatta **çalışma akışlarını değiştirme** olanağı sağlar. Dtrace, çekirdeğin her yerine yerleştirilen **probeleri** kullanır ve bu yerler arasında sistem çağrılarının başlangıcı ve sonu gibi yerler bulunur.
|
||||
|
||||
DTrace, her sistem çağrısı için bir prob oluşturmak için **`dtrace_probe_create`** işlevini kullanır. Bu probeler, her sistem çağrısının **giriş ve çıkış noktasında tetiklenebilir**. DTrace ile etkileşim, yalnızca kök kullanıcılar için kullanılabilen /dev/dtrace üzerinden gerçekleşir.
|
||||
DTrace, her sistem çağrısı için bir prob oluşturmak için **`dtrace_probe_create`** işlevini kullanır. Bu probeler, her sistem çağrısının **giriş ve çıkış noktasında ateşlenebilir**. DTrace ile etkileşim /dev/dtrace üzerinden gerçekleşir ve yalnızca kök kullanıcılar için kullanılabilir.
|
||||
|
||||
{% hint style="success" %}
|
||||
SIP korumasını tamamen devre dışı bırakmadan Dtrace'ı etkinleştirmek için kurtarma modunda şunu çalıştırabilirsiniz: `csrutil enable --without dtrace`
|
||||
|
||||
Ayrıca **derlediğiniz** ikilileri **`dtrace`** veya **`dtruss`** ile çalıştırabilirsiniz.
|
||||
Ayrıca **derlediğiniz ikilileri** **`dtrace`** veya **`dtruss`** edebilirsiniz.
|
||||
{% endhint %}
|
||||
|
||||
Dtrace'ın mevcut probeleri şu şekilde alınabilir:
|
||||
|
@ -231,15 +245,15 @@ ID PROVIDER MODULE FUNCTION NAME
|
|||
43 profile profile-97
|
||||
44 profile profile-199
|
||||
```
|
||||
Sonda bulunan prob adı dört bölümden oluşur: sağlayıcı, modül, işlev ve ad (`fbt:mach_kernel:ptrace:entry`). Adın bazı bölümlerini belirtmezseniz, Dtrace o bölümü joker karakter olarak uygular.
|
||||
Sonda adı dört bölümden oluşur: sağlayıcı, modül, işlev ve ad (`fbt:mach_kernel:ptrace:entry`). Adın bazı bölümlerini belirtmezseniz, Dtrace o bölümü joker karakter olarak uygular.
|
||||
|
||||
Probları etkinleştirmek ve ateşlendiklerinde ne tür işlemlerin gerçekleştirileceğini belirtmek için D dilini kullanmamız gerekecek.
|
||||
Probeleri etkinleştirmek ve ateşlendiklerinde ne tür işlemlerin gerçekleştirileceğini belirtmek için D dilini kullanmamız gerekecek.
|
||||
|
||||
Daha detaylı bir açıklama ve daha fazla örnek [https://illumos.org/books/dtrace/chp-intro.html](https://illumos.org/books/dtrace/chp-intro.html) adresinde bulunabilir.
|
||||
|
||||
#### Örnekler
|
||||
|
||||
**DTrace komut dosyalarını** listelemek için `man -k dtrace` komutunu çalıştırın. Örnek: `sudo dtruss -n binary`
|
||||
**DTrace betikleri** listelemek için `man -k dtrace` komutunu çalıştırın. Örnek: `sudo dtruss -n binary`
|
||||
|
||||
* Satır içi
|
||||
```bash
|
||||
|
@ -291,13 +305,13 @@ dtruss -c -p 1000 #get syscalls of PID 1000
|
|||
```
|
||||
### ktrace
|
||||
|
||||
Bunu **SIP etkinleştirilmiş bile olsa** kullanabilirsiniz.
|
||||
Bunu **SIP etkinleştirilmiş olsa bile** kullanabilirsiniz.
|
||||
```bash
|
||||
ktrace trace -s -S -t c -c ls | grep "ls("
|
||||
```
|
||||
### ProcessMonitor
|
||||
|
||||
[**ProcessMonitor**](https://objective-see.com/products/utilities.html#ProcessMonitor), bir işlemin gerçekleştirdiği işlemlerle ilgili olarak işlemi denetlemek için çok kullanışlı bir araçtır (örneğin, bir işlemin hangi yeni işlemleri oluşturduğunu izlemek).
|
||||
[**ProcessMonitor**](https://objective-see.com/products/utilities.html#ProcessMonitor), bir işlemin gerçekleştirdiği işlemlerle ilgili kontrol etmek için çok kullanışlı bir araçtır (örneğin, bir işlemin hangi yeni işlemleri oluşturduğunu izlemek).
|
||||
|
||||
### SpriteTree
|
||||
|
||||
|
@ -308,11 +322,11 @@ Mac'inizi **`sudo eslogger fork exec rename create > cap.json`** gibi bir komutl
|
|||
|
||||
### FileMonitor
|
||||
|
||||
[**FileMonitor**](https://objective-see.com/products/utilities.html#FileMonitor), dosya etkinliklerini (oluşturma, değiştirme ve silme gibi) izlemeyi sağlayarak bu tür etkinlikler hakkında detaylı bilgi sağlar.
|
||||
[**FileMonitor**](https://objective-see.com/products/utilities.html#FileMonitor), dosya olaylarını (oluşturma, değiştirme ve silme gibi) izlemeyi sağlayarak bu olaylar hakkında detaylı bilgi sağlar.
|
||||
|
||||
### Crescendo
|
||||
|
||||
[**Crescendo**](https://github.com/SuprHackerSteve/Crescendo), Microsoft Sysinternal’s _Procmon_ 'dan Windows kullanıcılarının tanıdığı görünüm ve hisse sahip GUI bir araçtır. Bu araç, çeşitli olay türlerinin kaydedilmesine izin verir ve durdurulmasına olanak tanır, bu olayları dosya, işlem, ağ vb. gibi kategorilere göre filtrelemeye olanak tanır ve kaydedilen olayları json formatında kaydetme işlevselliğini sağlar.
|
||||
[**Crescendo**](https://github.com/SuprHackerSteve/Crescendo), Microsoft Sysinternal’s _Procmon_ 'dan Windows kullanıcılarının tanıdığı görünüm ve hisse sahip GUI bir araçtır. Bu araç, çeşitli olay türlerinin kaydedilmesine izin verir, bu olayları dosya, işlem, ağ vb. gibi kategorilere göre filtrelemeye olanak tanır ve kaydedilen olayları json formatında kaydetme işlevselliği sağlar.
|
||||
|
||||
### Apple Instruments
|
||||
|
||||
|
@ -338,25 +352,25 @@ Ayrıca ikili işlemleri **virustotal**'a karşı kontrol eder ve ikili hakkınd
|
|||
|
||||
### lldb
|
||||
|
||||
**lldb**, macOS ikili **hata ayıklama** için de facto aracıdır.
|
||||
**lldb**, macOS ikili dosya hata ayıklama için de facto araçtır.
|
||||
```bash
|
||||
lldb ./malware.bin
|
||||
lldb -p 1122
|
||||
lldb -n malware.bin
|
||||
lldb -n malware.bin --waitfor
|
||||
```
|
||||
Intel lezzetini lldb kullanırken ayarlayabilirsiniz, aşağıdaki satırı içeren **`.lldbinit`** adında bir dosya oluşturarak ev klasörünüzde:
|
||||
Intel lezzetini ayarlayabilirsiniz, aşağıdaki satırı içeren **`.lldbinit`** adında bir dosya oluşturarak ev klasörünüzde lldb kullanırken:
|
||||
```bash
|
||||
settings set target.x86-disassembly-flavor intel
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
lldb içinde, bir işlemi `process save-core` ile dump edin.
|
||||
lldb içinde, bir işlemi `process save-core` ile dump edin
|
||||
{% endhint %}
|
||||
|
||||
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Komut</strong></td><td><strong>Açıklama</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Çalıştırmayı başlatır, işlem bir kırılma noktasına ulaşana veya işlem sona erene kadar devam eder.</td></tr><tr><td><strong>continue (c)</strong></td><td>Hata ayıklanan işlemin yürütmesine devam eder.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Sonraki talimatı yürütür. Bu komut fonksiyon çağrılarını atlar.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Sonraki talimatı yürütür. nexti komutunun aksine, bu komut fonksiyon çağrılarına girer.</td></tr><tr><td><strong>finish (f)</strong></td><td>Geçerli fonksiyondaki kalan talimatları yürütür ve duraklar.</td></tr><tr><td><strong>control + c</strong></td><td>Yürütmeyi duraklatır. Eğer işlem çalıştırılmış (r) veya devam ettirilmiş (c) ise, işlemi şu anda nerede yürüttüğünü duraklatır.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p>b main #Main fonksiyonu çağrıldığında</p><p>b <binname>`main #Belirtilen binin ana fonksiyonu</p><p>b set -n main --shlib <lib_name> #Belirtilen binin ana fonksiyonu</p><p>b -[NSDictionary objectForKey:]</p><p>b -a 0x0000000100004bd9</p><p>br l #Kırılma noktası listesi</p><p>br e/dis <num> #Kırılma noktasını etkinleştir/devre dışı bırak</p><p>breakpoint delete <num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Kırılma noktası komutunun yardımını al</p><p>help memory write #Belleğe yazma yardımını al</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg read</p><p>reg read $rax</p><p>reg read $rax --format <<a href="https://lldb.llvm.org/use/variable.html#type-format">format</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s <reg/bellek adresi></strong></td><td>Belleği null-terminalli bir dize olarak görüntüler.</td></tr><tr><td><strong>x/i <reg/bellek adresi></strong></td><td>Belleği derleme talimatı olarak görüntüler.</td></tr><tr><td><strong>x/b <reg/bellek adresi></strong></td><td>Belleği bayt olarak görüntüler.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Bu, parametre tarafından referans edilen nesneyi yazdırır</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Apple'ın Objective-C API'lerinin çoğu veya yöntemleri nesneler döndürür, bu nedenle "print object" (po) komutuyla görüntülenmelidir. Eğer po anlamlı bir çıktı üretmiyorsa <code>x/b</code> kullanın</p></td></tr><tr><td><strong>memory</strong></td><td>Belleği oku 0x000....<br>Belleği oku $x0+0xf2a<br>Belleğe yaz 0x100600000 -s 4 0x41414141 #O adrese AAAA yaz<br>Belleğe yaz -f s $rip+0x11f+7 "AAAA" #Adrese AAAA yaz</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Geçerli fonksiyonu derler</p><p>dis -n <funcname> #Fonksiyonu derler</p><p>dis -n <funcname> -b <basename> #Fonksiyonu derler<br>dis -c 6 #6 satırı derler<br>dis -c 0x100003764 -e 0x100003768 # Bir adresten diğerine kadar<br>dis -p -c 4 # Geçerli adresin başlangıcında derleme</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # x1 reg içindeki 3 bileşenli diziyi kontrol et</td></tr></tbody></table>
|
||||
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Komut</strong></td><td><strong>Açıklama</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Çalıştırmayı başlatır, işlem bir kırılma noktasına ulaşana veya işlem sona erene kadar devam eder.</td></tr><tr><td><strong>continue (c)</strong></td><td>Hata ayıklanan işlemin yürütmesine devam eder.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Sonraki talimatı yürütür. Bu komut, işlev çağrılarını atlar.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Sonraki talimatı yürütür. nexti komutunun aksine, bu komut işlev çağrılarına girer.</td></tr><tr><td><strong>finish (f)</strong></td><td>Geçerli işlevde kalan talimatları yürütür, döner ve durur.</td></tr><tr><td><strong>control + c</strong></td><td>Yürütümü duraklatır. Eğer işlem çalıştırılmış (r) veya devam ettirilmiş (c) ise, bu işlemi duraklatır...şu anda nerede yürütüldüğüne bakılmaksızın.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p>b main #Main fonksiyonu çağrıldığında</p><p>b <binname>`main #Belirtilen bin dosyasının ana fonksiyonu</p><p>b set -n main --shlib <lib_name> #Belirtilen bin dosyasının ana fonksiyonu</p><p>b -[NSDictionary objectForKey:]</p><p>b -a 0x0000000100004bd9</p><p>br l #Kırılma noktası listesi</p><p>br e/dis <num> #Kırılma noktasını etkinleştir/devre dışı bırak</p><p>breakpoint delete <num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Kırılma noktası komutunun yardımını al</p><p>help memory write #Belleğe yazma yardımını al</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg read</p><p>reg read $rax</p><p>reg read $rax --format <<a href="https://lldb.llvm.org/use/variable.html#type-format">format</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s <reg/memory address</strong></td><td>Belleği null-ile sonlandırılmış bir dize olarak görüntüler.</td></tr><tr><td><strong>x/i <reg/memory address</strong></td><td>Belleği montaj talimatı olarak görüntüler.</td></tr><tr><td><strong>x/b <reg/memory address</strong></td><td>Belleği bayt olarak görüntüler.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Bu, parametre tarafından referans edilen nesneyi yazdıracaktır</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Apple'ın Objective-C API'lerinin çoğu veya yöntemleri nesneler döndürür, bu nedenle "print object" (po) komutuyla görüntülenmelidir. Eğer po anlamlı bir çıktı üretmiyorsa <code>x/b</code> kullanın</p></td></tr><tr><td><strong>memory</strong></td><td>Belleği oku 0x000....<br>Belleği oku $x0+0xf2a<br>Belleğe yaz 0x100600000 -s 4 0x41414141 #O adrese AAAA yaz<br>Belleğe yaz -f s $rip+0x11f+7 "AAAA" #Adrese AAAA yaz</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Geçerli fonksiyonu disas</p><p>dis -n <funcname> #Fonksiyonu disas</p><p>dis -n <funcname> -b <basename> #Fonksiyonu disas<br>dis -c 6 #6 satırı disas<br>dis -c 0x100003764 -e 0x100003768 # Bir adresten diğerine<br>dis -p -c 4 # Geçerli adresle başlayarak disas</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # x1 reg içindeki 3 bileşenli diziyi kontrol et</td></tr></tbody></table>
|
||||
|
||||
{% hint style="info" %}
|
||||
**`objc_sendMsg`** fonksiyonu çağrıldığında, **rsi** kaydı **metodun adını** null-terminalli ("C") bir dize olarak tutar. lldb üzerinden adı yazdırmak için:
|
||||
**`objc_sendMsg`** fonksiyonu çağrıldığında, **rsi** kaydı **metodun adını** null-ile sonlandırılmış ("C") bir dize olarak tutar. lldb üzerinden adı yazdırmak için:
|
||||
|
||||
`(lldb) x/s $rsi: 0x1000f1576: "startMiningWithPort:password:coreCount:slowMemory:currency:"`
|
||||
|
||||
|
@ -370,15 +384,15 @@ lldb içinde, bir işlemi `process save-core` ile dump edin.
|
|||
|
||||
#### VM tespiti
|
||||
|
||||
* **`sysctl hw.model`** komutu, **ana bilgisayar MacOS** ise "Mac" döndürür, farklı bir şey döndürürse bir VM olduğunu gösterir.
|
||||
* **`sysctl hw.model`** komutu, **ana bilgisayar MacOS ise** "Mac" döndürür, farklı bir şey döndürürse bir VM olduğunu gösterir.
|
||||
* Bazı kötü amaçlı yazılımlar, bir VM olup olmadığını tespit etmek için **`hw.logicalcpu`** ve **`hw.physicalcpu`** değerleriyle oynar.
|
||||
* Bazı kötü amaçlı yazılımlar, MAC adresine (00:50:56) dayanarak makinenin **VMware** tabanlı olup olmadığını da **tespit edebilir**.
|
||||
* Basit bir kodla **bir işlemin hata ayıklanıp ayıklanmadığını** kontrol etmek de mümkündür:
|
||||
* Basit bir kodla, bir işlemin hata ayıklanıp ayıklanmadığını kontrol edebilirsiniz:
|
||||
* `if(P_TRACED == (info.kp_proc.p_flag & P_TRACED)){ //işlem hata ayıklanıyor }`
|
||||
* Ayrıca **`ptrace`** sistem çağrısını **`PT_DENY_ATTACH`** bayrağı ile çağırabilir. Bu, bir hata ayıklamanın eklenmesini ve izlenmesini **engeller**.
|
||||
* Ayrıca **`ptrace`** sistem çağrısını **`PT_DENY_ATTACH`** bayrağı ile çağırabilirsiniz. Bu, bir hata ayıklamanın eklenmesini ve izlenmesini **engeller**.
|
||||
* **`sysctl`** veya **`ptrace`** fonksiyonunun **ithal edilip edilmediğini** kontrol edebilirsiniz (ancak kötü amaçlı yazılım bunu dinamik olarak da ithal edebilir)
|
||||
* Bu yazıda belirtildiği gibi, “[Anti-Hata Ayıklama Tekniklerini Yenme: macOS ptrace varyantları](https://alexomara.com/blog/defeating-anti-debug-techniques-macos-ptrace-variants/)” :\
|
||||
“_Process # exited with **status = 45 (0x0000002d)** mesajı genellikle hata ayıklama hedefinin **PT\_DENY\_ATTACH** kullandığının belirtisidir_”
|
||||
“_Mesaj Process # çıkış yaptı **durum = 45 (0x0000002d)** genellikle hata ayıklama hedefinin **PT\_DENY\_ATTACH** kullandığının açık bir işaretidir_”
|
||||
## Fuzzing
|
||||
|
||||
### [ReportCrash](https://ss64.com/osx/reportcrash.html)
|
||||
|
@ -407,7 +421,7 @@ MacOS'ta fuzzing yaparken Mac'in uyumasına izin vermemek önemlidir:
|
|||
|
||||
#### SSH Bağlantısı Kesme
|
||||
|
||||
SSH bağlantısı üzerinden fuzzing yaparken oturumun gün içinde gitmeyeceğinden emin olmak önemlidir. Bu nedenle sshd\_config dosyasını aşağıdaki gibi değiştirin:
|
||||
SSH bağlantısı aracılığıyla fuzzing yaparken oturumun gün sonuna gitmediğinden emin olmak önemlidir. Bu nedenle sshd\_config dosyasını aşağıdaki gibi değiştirin:
|
||||
|
||||
* TCPKeepAlive Yes
|
||||
* ClientAliveInterval 0
|
||||
|
@ -418,7 +432,7 @@ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
|
|||
```
|
||||
### Dahili İşleyiciler
|
||||
|
||||
Belirli bir şema veya protokolü işlemeden sorumlu olan uygulamanın hangisi olduğunu nasıl bulabileceğinizi öğrenmek için aşağıdaki sayfaya göz atın:
|
||||
Belirli bir şema veya protokolü **işleme yetkisine sahip olan uygulamayı nasıl bulabileceğinizi** öğrenmek için aşağıdaki sayfaya göz atın:
|
||||
|
||||
{% content-ref url="../macos-file-extension-apps.md" %}
|
||||
[macos-file-extension-apps.md](../macos-file-extension-apps.md)
|
||||
|
@ -426,15 +440,13 @@ Belirli bir şema veya protokolü işlemeden sorumlu olan uygulamanın hangisi o
|
|||
|
||||
### Ağ İşlemlerini Sıralama
|
||||
|
||||
Ağ verilerini yöneten işlemleri bulmak ilginçtir:
|
||||
Bu, ağ verilerini yöneten işlemleri bulmak için ilginçtir:
|
||||
```bash
|
||||
dtrace -n 'syscall::recv*:entry { printf("-> %s (pid=%d)", execname, pid); }' >> recv.log
|
||||
#wait some time
|
||||
sort -u recv.log > procs.txt
|
||||
cat procs.txt
|
||||
```
|
||||
Veya `netstat` veya `lsof` kullanın
|
||||
|
||||
### Libgmalloc
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/Pasted Graphic 14.png" alt=""><figcaption></figcaption></figure>
|
||||
|
@ -443,6 +455,8 @@ Veya `netstat` veya `lsof` kullanın
|
|||
```bash
|
||||
lldb -o "target create `which some-binary`" -o "settings set target.env-vars DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib" -o "run arg1 arg2" -o "bt" -o "reg read" -o "dis -s \$pc-32 -c 24 -m -F intel" -o "quit"
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### Fuzzers
|
||||
|
||||
#### [AFL++](https://github.com/AFLplusplus/AFLplusplus)
|
||||
|
@ -451,9 +465,11 @@ CLI araçları için çalışır
|
|||
|
||||
#### [Litefuzz](https://github.com/sec-tools/litefuzz)
|
||||
|
||||
macOS GUI araçları ile "**sadece çalışır"**. Bazı macOS uygulamalarının benzersiz dosya adları, doğru uzantılar gibi belirli gereksinimleri olabilir, dosyaları sandbox'tan okuma ihtiyacı olabilir (`~/Library/Containers/com.apple.Safari/Data`)...
|
||||
macOS GUI araçları ile "**sadece çalışır"**. Bazı macOS uygulamalarının benzersiz dosya adları, doğru uzantılar, kum havuzundan dosyaları okuma gereksinimleri gibi belirli gereksinimleri olabilir (`~/Library/Containers/com.apple.Safari/Data`)...
|
||||
|
||||
Bazı örnekler:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# iBooks
|
||||
litefuzz -l -c "/System/Applications/Books.app/Contents/MacOS/Books FUZZ" -i files/epub -o crashes/ibooks -t /Users/test/Library/Containers/com.apple.iBooksX/Data/tmp -x 10 -n 100000 -ez
|
||||
|
@ -493,16 +509,29 @@ litefuzz -s -a tcp://localhost:5900 -i input/screenshared-session --reportcrash
|
|||
* [**https://taomm.org/vol1/analysis.html**](https://taomm.org/vol1/analysis.html)
|
||||
* [**The Art of Mac Malware: The Guide to Analyzing Malicious Software**](https://taomm.org/)
|
||||
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) is a **dark-web** fueled search engine that offers **free** functionalities to check if a company or its customers have been **compromised** by **stealer malwares**.
|
||||
|
||||
Their primary goal of WhiteIntel is to combat account takeovers and ransomware attacks resulting from information-stealing malware.
|
||||
|
||||
You can check their website and try their engine for **free** at:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu görün
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family'yi keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
|
||||
* **💬 [Discord grubuna katılın](https://discord.gg/hRep4RUj7f)** veya [telegram grubuna katılın](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,33 +8,47 @@ HackTricks'ı desteklemenin diğer yolları:
|
|||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
|
||||
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
|
||||
</details>
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io), şirketin veya müşterilerinin **hırsız kötü amaçlı yazılımlar** tarafından **kompromize edilip edilmediğini** kontrol etmek için **ücretsiz** işlevler sunan **dark-web** destekli bir arama motorudur.
|
||||
|
||||
WhiteIntel'in başlıca amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye saldırılarıyla mücadele etmektir.
|
||||
|
||||
Websitesini ziyaret edebilir ve motorlarını **ücretsiz** deneyebilirsiniz:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## **Temel Bilgiler**
|
||||
|
||||
**System Integrity Protection (SIP)**, macOS'ta en yetkili kullanıcıların bile ana sistem klasörlerine izinsiz değişiklik yapmasını engellemek için tasarlanmış bir mekanizmadır. Bu özellik, korunan alanlarda dosya ekleme, değiştirme veya silme gibi işlemleri kısıtlayarak sistemin bütünlüğünü korumada kritik bir rol oynar. SIP tarafından korunan başlıca klasörler şunlardır:
|
||||
**macOS'taki Sistem Bütünlük Koruması (SIP)**, en yetkili kullanıcıların bile ana sistem klasörlerine izinsiz değişiklikler yapmasını engellemeyi amaçlayan bir mekanizmadır. Bu özellik, korunan alanlarda dosya eklemeyi, değiştirmeyi veya silmeyi kısıtlayarak sistemin bütünlüğünü korumada kritik bir rol oynar. SIP tarafından korunan başlıca klasörler şunlardır:
|
||||
|
||||
* **/System**
|
||||
* **/bin**
|
||||
* **/sbin**
|
||||
* **/usr**
|
||||
|
||||
SIP'nin davranışını belirleyen kurallar, genellikle sıkı SIP kısıtlamalarının istisnaları olarak işaretlenen yıldız (\*) ile başlayan yolların bulunduğu **`/System/Library/Sandbox/rootless.conf`** konfigürasyon dosyasında tanımlanmıştır.
|
||||
SIP'nin davranışlarını belirleyen kurallar, genellikle sıkı SIP kısıtlamalarının istisnaları olarak işaretlenen yıldız (\*) ile başlayan yolların bulunduğu **`/System/Library/Sandbox/rootless.conf`** konfigürasyon dosyasında tanımlanmıştır.
|
||||
|
||||
Aşağıdaki örneği düşünün:
|
||||
Aşağıdaki örneği göz önünde bulundurun:
|
||||
```javascript
|
||||
/usr
|
||||
* /usr/libexec/cups
|
||||
* /usr/local
|
||||
* /usr/share/man
|
||||
```
|
||||
Bu parça, SIP'nin genellikle **`/usr`** dizinini güvence altına aldığını, ancak değişikliklere izin verilen belirli alt dizinlerin (`/usr/libexec/cups`, `/usr/local` ve `/usr/share/man`) yollarının önünde yer alan yıldız (\*) işareti ile belirtildiğini ima etmektedir.
|
||||
Bu parça, SIP'nin genellikle **`/usr`** dizinini güvence altına aldığını, ancak değişikliklere izin verilen belirli alt dizinlerin (`/usr/libexec/cups`, `/usr/local` ve `/usr/share/man`) yollarının önünde yer alan yıldız (\*) ile belirtildiğini ima etmektedir.
|
||||
|
||||
Bir dizinin veya dosyanın SIP tarafından korunup korunmadığını doğrulamak için **`ls -lOd`** komutunu kullanarak **`restricted`** veya **`sunlnk`** bayrağının varlığını kontrol edebilirsiniz. Örneğin:
|
||||
Bir dizinin veya dosyanın SIP tarafından korunup korunmadığını doğrulamak için **`ls -lOd`** komutunu kullanabilirsiniz ve **`restricted`** veya **`sunlnk`** bayrağının varlığını kontrol edebilirsiniz. Örneğin:
|
||||
```bash
|
||||
ls -lOd /usr/libexec/cups
|
||||
drwxr-xr-x 11 root wheel sunlnk 352 May 13 00:29 /usr/libexec/cups
|
||||
|
@ -46,9 +60,9 @@ Bu durumda, **`sunlnk`** bayrağı, `/usr/libexec/cups` dizininin **silinemeyece
|
|||
ls -lOd /usr/libexec
|
||||
drwxr-xr-x 338 root wheel restricted 10816 May 13 00:29 /usr/libexec
|
||||
```
|
||||
İşte **`restricted`** bayrağı, `/usr/libexec` dizininin SIP ile korunduğunu gösterir. SIP ile korunan bir dizinde, dosyalar oluşturulamaz, değiştirilemez veya silinemez.
|
||||
İşte **`restricted`** bayrağı, `/usr/libexec` dizininin SIP ile korunduğunu gösterir. Bir SIP korumalı dizinde, dosyalar oluşturulamaz, değiştirilemez veya silinemez.
|
||||
|
||||
Dahası, bir dosya **`com.apple.rootless`** genişletilmiş **özniteliği** içeriyorsa, o dosya da **SIP ile korunur**.
|
||||
Ayrıca, bir dosya **`com.apple.rootless`** uzatılmış **özniteliği** içeriyorsa, bu dosya da **SIP ile korunur**.
|
||||
|
||||
**SIP ayrıca diğer kök işlemleri de sınırlar**:
|
||||
|
||||
|
@ -81,24 +95,24 @@ csrutil enable --without debug
|
|||
* **macOS sistem süreçlerinin hata ayıklanmasını engeller**, çekirdek sistem bileşenlerini yetkisiz erişim ve değişikliklerden korur.
|
||||
* **dtrace gibi araçların** sistem süreçlerini incelemesini engeller, sistem işleyişinin bütünlüğünü daha da korur.
|
||||
|
||||
[**Bu konuda SIP bilgileri hakkında daha fazla bilgi edinin**](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)**.**
|
||||
[**Bu konuda SIP bilgilerini daha fazla öğrenin**](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)**.**
|
||||
|
||||
## SIP Atlatmaları
|
||||
|
||||
SIP'nin atlatılması bir saldırganın şunları yapmasını sağlar:
|
||||
|
||||
* **Kullanıcı Verilerine Erişim**: Tüm kullanıcı hesaplarından hassas kullanıcı verileri olan posta, mesajlar ve Safari geçmişi gibi verilere erişim sağlar.
|
||||
* **TCC Atlatması**: TCC (Şeffaflık, Onay ve Kontrol) veritabanını doğrudan manipüle ederek web kamerası, mikrofon ve diğer kaynaklara yetkisiz erişim sağlar.
|
||||
* **Kalıcılık Oluşturma**: SIP korumalı konumlara kötü amaçlı yazılım yerleştirerek, kök ayrıcalıklarıyla bile kaldırılamaz hale getirir. Bu ayrıca Kötü Amaçlı Yazılım Kaldırma Aracı'nı (MRT) değiştirme potansiyelini içerir.
|
||||
* **Kullanıcı Verilerine Erişim**: Tüm kullanıcı hesaplarından hassas kullanıcı verilerini okuyun, örneğin posta, mesajlar ve Safari geçmişi.
|
||||
* **TCC Atlatması**: TCC (Şeffaflık, Onay ve Kontrol) veritabanını doğrudan manipüle ederek web kamerası, mikrofon ve diğer kaynaklara yetkisiz erişim sağlamak.
|
||||
* **Kalıcılık Oluşturma**: Malware'yi SIP korumalı konumlara yerleştirerek, kök ayrıcalıklarıyla bile kaldırılamaz hale getirme. Bu ayrıca Malware Kaldırma Aracı'nı (MRT) manipüle etme potansiyelini de içerir.
|
||||
* **Çekirdek Uzantılarını Yükleme**: Ek güvenlik önlemleri olsa da, SIP'nin atlatılması imzasız çekirdek uzantılarını yükleme işlemini basitleştirir.
|
||||
|
||||
### Yükleyici Paketler
|
||||
|
||||
**Apple'ın sertifikasıyla imzalanmış yükleyici paketler**, bu korumaları atlayabilir. Bu, standart geliştiriciler tarafından imzalanan paketlerin, SIP korumalı dizinleri değiştirmeye çalıştıklarında engelleneceği anlamına gelir.
|
||||
**Apple'ın sertifikasıyla imzalanmış yükleyici paketler**, bu korumaları atlayabilir. Bu, standart geliştiriciler tarafından imzalanan paketlerin bile, SIP korumalı dizinleri değiştirmeye çalıştıklarında engelleneceği anlamına gelir.
|
||||
|
||||
### Varolmayan SIP dosyası
|
||||
|
||||
Potansiyel bir açık nokta, **`rootless.conf`** dosyasında belirtilen ancak şu anda mevcut olmayan bir dosyanın oluşturulabileceğidir. Kötü amaçlı yazılım, sisteme **kalıcılık oluşturmak** için bunu kullanabilir. Örneğin, kötü niyetli bir program, `/System/Library/LaunchDaemons` dizininde bir .plist dosyası oluşturabilir, `rootless.conf` dosyasında listelenmiş ancak mevcut olmayan bir dosya olduğunda.
|
||||
Potansiyel bir açık nokta, eğer bir dosya **`rootless.conf`** dosyasında belirtilmişse ancak şu anda mevcut değilse, oluşturulabileceğidir. Kötü amaçlı yazılım, sisteme **kalıcılık oluşturmak** için bunu kullanabilir. Örneğin, kötü amaçlı bir program, `/System/Library/LaunchDaemons` dizininde bir .plist dosyası oluşturabilir, `rootless.conf` dosyasında listelenmiş ancak mevcut olmayan bir dosya olduğunda.
|
||||
|
||||
### com.apple.rootless.install.heritable
|
||||
|
||||
|
@ -108,21 +122,21 @@ Potansiyel bir açık nokta, **`rootless.conf`** dosyasında belirtilen ancak ş
|
|||
|
||||
#### Shrootless
|
||||
|
||||
[**Bu blog yazısındaki araştırmacılar**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) macOS'in Sistem Bütünlük Koruması (SIP) mekanizmasında 'Shrootless' açığı olarak adlandırılan bir zafiyet keşfettiler. Bu zafiyet, **`system_installd`** adlı daemon etrafında dönüyor ve bu daemonun **`com.apple.rootless.install.heritable`** yetkisi bulunuyor, bu da çocuk işlemlerinden herhangi birinin SIP'nin dosya sistem kısıtlamalarını atlamasına izin veriyor.
|
||||
[**Bu blog yazısındaki araştırmacılar**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/), macOS'in Sistem Bütünlük Koruması (SIP) mekanizmasında 'Shrootless' açığı olarak adlandırılan bir zafiyet keşfettiler. Bu zafiyet, **`system_installd`** adlı daemon etrafında dönüyor ve bu daemonun **`com.apple.rootless.install.heritable`** yetkisi bulunuyor, bu da çocuk işlemlerinden herhangi birinin SIP'nin dosya sistem kısıtlamalarını atlamasına izin veriyor.
|
||||
|
||||
**`system_installd`** daemonu, **Apple** tarafından imzalanmış paketleri yükler.
|
||||
|
||||
Araştırmacılar, bir Apple imzalı paketin (.pkg dosyası) yüklenmesi sırasında, pakette bulunan **post-install** betiklerinin **`system_installd`** tarafından çalıştırıldığını buldular. Bu betikler, varsayılan kabuk olan **`zsh`** tarafından yürütülür ve etkileşimsiz modda bile varsa **`/etc/zshenv`** dosyasından komutları otomatik olarak çalıştırır. Bu davranış saldırganlar tarafından istismar edilebilir: kötü niyetli bir `/etc/zshenv` dosyası oluşturarak ve **`system_installd`**'nin `zsh`'yi çağırmasını bekleyerek cihazda keyfi işlemler gerçekleştirebilirler.
|
||||
Araştırmacılar, bir Apple imzalı paketin (.pkg dosyası) yüklenmesi sırasında, pakette bulunan **post-install** betiklerinin **`system_installd`** tarafından çalıştırıldığını buldular. Bu betikler, varsayılan kabuk olan **`zsh`** tarafından yürütülür ve **`/etc/zshenv`** dosyasından komutları otomatik olarak çalıştırır, eğer varsa, etkileşimsiz modda bile. Bu davranış saldırganlar tarafından istismar edilebilir: kötü niyetli bir `/etc/zshenv` dosyası oluşturarak ve **`system_installd`**'in `zsh`'yi çağırmasını bekleyerek, cihazda keyfi işlemler gerçekleştirebilirler.
|
||||
|
||||
Ayrıca, **`/etc/zshenv`'in yalnızca bir SIP atlatma için değil genel bir saldırı tekniği olarak kullanılabileceği** keşfedildi. Her kullanıcı profili, kök izinleri gerektirmeyen ancak `/etc/zshenv` ile aynı şekilde davranan bir `~/.zshenv` dosyasına sahiptir. Bu dosya, her `zsh` başladığında tetiklenen bir kalıcılık mekanizması olarak veya bir ayrıcalık yükseltme mekanizması olarak kullanılabilir. Bir yönetici kullanıcı `sudo -s` veya `sudo <komut>` kullanarak kök ayrıcalıklarına yükseldiğinde, `~/.zshenv` dosyası tetiklenir ve etkili bir şekilde kök ayrıcalıklara yükselir.
|
||||
Ayrıca, **`/etc/zshenv`'in yalnızca bir SIP atlatma için değil, genel bir saldırı tekniği olarak kullanılabileceği** keşfedildi. Her kullanıcı profiline ait bir `~/.zshenv` dosyası bulunur, bu dosya `/etc/zshenv` ile aynı şekilde çalışır ancak kök izinleri gerektirmez. Bu dosya, her `zsh` başladığında tetiklenen bir kalıcılık mekanizması olarak veya bir ayrıcalık yükseltme mekanizması olarak kullanılabilir. Bir yönetici kullanıcı `sudo -s` veya `sudo <komut>` kullanarak kök ayrıcalıklarına yükseldiğinde, `~/.zshenv` dosyası tetiklenir ve etkili bir şekilde kök ayrıcalıklara yükselir.
|
||||
|
||||
#### [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)
|
||||
|
||||
[**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) kapsamında, aynı **`system_installd`** işleminin **post-install betiğini** `/tmp` içindeki SIP tarafından korunan rastgele adlandırılmış bir klasöre yerleştirdiği ve bunun kötüye kullanılabileceği keşfedildi. **`/tmp`'nin kendisinin SIP tarafından korunmadığı** için, bir **sanal görüntü** üzerine **bağlanabilir**, ardından **yükleme** işlemi bu klasöre **post-install betiğini** koyar, sanal görüntüyü **bağlantısız bırakır**, tüm **klasörleri yeniden oluşturur** ve **yürütülecek** **payload** ile **post-installasyon** betiğini **ekler**.
|
||||
[**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) kapsamında, **`system_installd`** işleminin hala kötüye kullanılabileceği keşfedildi çünkü **post-install betiğini `/tmp` içindeki SIP tarafından korunan rastgele adlandırılmış bir klasöre koyduğu** ortaya çıktı. **`/tmp`** kendisi SIP tarafından korunmadığı için, bir **sanal görüntüyü bağlamak**, ardından **yükleme** işleminin **post-install betiğini** oraya koyması, sanal görüntüyü **bağlamadan çıkarması**, tüm **klasörleri yeniden oluşturması** ve **yürütülecek payload ile post-installasyon** betiğini **eklemesi** mümkün oldu.
|
||||
|
||||
#### [fsck\_cs yardımcı programı](https://www.theregister.com/2016/03/30/apple\_os\_x\_rootless/)
|
||||
|
||||
**`fsck_cs`**'nin sembolik bağlantıları takip edebilme yeteneği nedeniyle önemli bir dosyayı bozacak şekilde yanıltıldığı bir zafiyet tespit edildi. Özellikle, saldırganlar _`/dev/diskX`_ ile `/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist` dosyası arasında bir bağlantı oluşturdular. _`/dev/diskX`_ üzerinde **`fsck_cs`** çalıştırıldığında, `Info.plist` dosyası bozuldu. Bu dosyanın bütünlüğü, çekirdek uzantılarının yüklenmesini kontrol eden SIP'nin (Sistem Bütünlük Koruma) işletim sistemi için hayati önem taşır. Bozulduğunda, SIP'nin çekirdek hariç tutmaları yönetme yeteneği tehlikeye girer.
|
||||
**`fsck_cs`**'nin **sembolik bağlantıları takip edebilme** yeteneği nedeniyle, kritik bir dosyanın bozulmasına neden olabilecek bir zafiyet tespit edildi. Özellikle, saldırganlar _`/dev/diskX`_ ile `/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist` dosyası arasında bir bağlantı oluşturdular. _`/dev/diskX`_ üzerinde **`fsck_cs`** çalıştırmak, `Info.plist`'in bozulmasına yol açtı. Bu dosyanın bütünlüğü, çekirdek uzantılarının yüklenmesini kontrol eden sistem olan SIP'nin (Sistem Bütünlük Koruma) için hayati önem taşır. Bozulduğunda, SIP'nin çekirdek hariç tutmaları yönetme yeteneği tehlikeye girer.
|
||||
|
||||
Bu zafiyeti sömürmek için kullanılan komutlar:
|
||||
```bash
|
||||
|
@ -131,7 +145,7 @@ fsck_cs /dev/diskX 1>&-
|
|||
touch /Library/Extensions/
|
||||
reboot
|
||||
```
|
||||
Bu zafiyetin sömürülmesinin ciddi sonuçları vardır. Genellikle çekirdek uzantıları için izinleri yönetmekten sorumlu olan `Info.plist` dosyası etkisiz hale gelir. Bu, `AppleHWAccess.kext` gibi belirli uzantıları karalisteleyememe gibi sonuçlar doğurur. Sonuç olarak, SIP'nin kontrol mekanizması devre dışı bırakıldığında, bu uzantı yüklenebilir ve sistem RAM'ine yetkisiz okuma ve yazma erişimi sağlayabilir.
|
||||
Bu zafiyetin sömürülmesinin ciddi sonuçları vardır. Normalde çekirdek uzantıları için izinleri yöneten `Info.plist` dosyası etkisiz hale gelir. Bu, `AppleHWAccess.kext` gibi belirli uzantıları karalisteleyememe gibi sonuçlar doğurur. Sonuç olarak, SIP'nin kontrol mekanizması devre dışı bırakıldığında, bu uzantı yüklenebilir ve sistem RAM'ine yetkisiz okuma ve yazma erişimi sağlayabilir.
|
||||
|
||||
#### [SIP korumalı klasörlerin üzerine bağlama](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)
|
||||
|
||||
|
@ -144,43 +158,43 @@ hdiutil attach -mountpoint /System/Library/Snadbox/ evil.dmg
|
|||
```
|
||||
#### [Yükseltme atlaması (2016)](https://objective-see.org/blog/blog\_0x14.html)
|
||||
|
||||
Sistem, `Install macOS Sierra.app` içindeki gömülü bir kurulum diski görüntüsünden başlatılmak üzere ayarlanmıştır ve `bless` yardımcı programını kullanarak işletim sistemini yükseltir. Kullanılan komut aşağıdaki gibidir:
|
||||
Sistem, işletim sistemini yükseltmek için `bless` yardımıyla `Install macOS Sierra.app` içinde yer alan gömülü bir kurulum diski görüntüsünden başlatılacak şekilde ayarlanmıştır. Kullanılan komut aşağıdaki gibidir:
|
||||
```bash
|
||||
/usr/sbin/bless -setBoot -folder /Volumes/Macintosh HD/macOS Install Data -bootefi /Volumes/Macintosh HD/macOS Install Data/boot.efi -options config="\macOS Install Data\com.apple.Boot" -label macOS Installer
|
||||
```
|
||||
Süreç güvenliği, bir saldırganın önyükleme yapmadan önce yükseltme görüntüsünü (`InstallESD.dmg`) değiştirmesi durumunda tehlikeye girebilir. Strateji, bir saldırganın dinamik yükleyiciyi (dyld) kötü amaçlı bir sürümle (`libBaseIA.dylib`) değiştirmesini içerir. Bu değişiklik, yükleyici başlatıldığında saldırganın kodunun yürütülmesine neden olur.
|
||||
Bu işlem güvenliği, bir saldırganın önyükleme yapmadan önce yükseltme görüntüsünü (`InstallESD.dmg`) değiştirmesi durumunda tehlikeye girebilir. Strateji, bir dinamik yükleyiciyi (dyld) kötü niyetli bir sürümle (`libBaseIA.dylib`) değiştirerek gerçekleştirilir. Bu değişim, yükleyici başlatıldığında saldırganın kodunun yürütülmesine neden olur.
|
||||
|
||||
Saldırganın kodu, yükseltme süreci sırasında kontrol kazanır ve sistemin yükleyiciye olan güvenini sömürür. Saldırı, `InstallESD.dmg` görüntüsünün `extractBootBits` yöntemine özellikle hedeflenen yöntem sarmalamayla devam eder. Bu, disk görüntüsü kullanılmadan önce kötü amaçlı kodun enjekte edilmesine olanak tanır.
|
||||
Saldırganın kodu, yükseltme süreci sırasında kontrol kazanır ve sistemin yükleyiciye olan güvenini sömürür. Saldırı, `InstallESD.dmg` görüntüsünün `extractBootBits` yöntemine özellikle hedeflenen yöntem sarmalaması yoluyla devam eder. Bu, disk görüntüsü kullanılmadan önce kötü amaçlı kodun enjekte edilmesine izin verir.
|
||||
|
||||
Ayrıca, `InstallESD.dmg` içinde, yükseltme kodunun kök dosya sistemi olarak hizmet eden bir `BaseSystem.dmg` bulunmaktadır. Buna bir dinamik kütüphane enjekte etmek, kötü amaçlı kodun işletim sistemi düzeyindeki dosyaları değiştirebilen bir süreç içinde çalışmasına olanak tanır, sistem tehlikesi potansiyelini önemli ölçüde artırır.
|
||||
Ayrıca, `InstallESD.dmg` içinde, yükseltme kodunun kök dosya sistemi olarak hizmet veren bir `BaseSystem.dmg` bulunmaktadır. Buna bir dinamik kütüphane enjekte etmek, kötü niyetli kodun işletim sistemi düzeyinde dosyaları değiştirebilen bir süreç içinde çalışmasına olanak tanır, sistem tehlikesi potansiyelini önemli ölçüde artırır.
|
||||
|
||||
#### [systemmigrationd (2023)](https://www.youtube.com/watch?v=zxZesAN-TEk)
|
||||
|
||||
Bu [**DEF CON 31**](https://www.youtube.com/watch?v=zxZesAN-TEk) konuşmasında, SIP'yi atlayabilen **`systemmigrationd`**'nin bir **bash** ve bir **perl** betiğini nasıl yürüttüğü ve bu betiklerin **`BASH_ENV`** ve **`PERL5OPT`** ortam değişkenleri aracılığıyla kötüye kullanılabileceği gösterilmektedir.
|
||||
Bu, [**DEF CON 31**](https://www.youtube.com/watch?v=zxZesAN-TEk) etkinliğinden bir konuşmada gösterildiği gibi **`systemmigrationd`** (SIP'yi atlayabilen) bir **bash** ve bir **perl** betiğini yürütür, bu da env değişkenleri **`BASH_ENV`** ve **`PERL5OPT`** aracılığıyla kötüye kullanılabilir.
|
||||
|
||||
### **com.apple.rootless.install**
|
||||
|
||||
{% hint style="danger" %}
|
||||
**`com.apple.rootless.install`** yetkisi SIP'yi atlamaya olanak tanır
|
||||
**`com.apple.rootless.install`** yetkisi SIP'yi atlamaya izin verir
|
||||
{% endhint %}
|
||||
|
||||
`com.apple.rootless.install` yetkisi, macOS'ta Sistem Bütünlüğü Koruması (SIP) atlamak için bilinmektedir. Bu özellik özellikle [**CVE-2022-26712**](https://jhftss.github.io/CVE-2022-26712-The-POC-For-SIP-Bypass-Is-Even-Tweetable/) ile ilgili olarak belirtilmiştir.
|
||||
`com.apple.rootless.install` yetkisi, macOS'ta Sistem Bütünlüğü Koruması'nı (SIP) atlamak için bilinmektedir. Bu özellik özellikle [**CVE-2022-26712**](https://jhftss.github.io/CVE-2022-26712-The-POC-For-SIP-Bypass-Is-Even-Tweetable/) ile ilişkilendirilmiştir.
|
||||
|
||||
Bu özel durumda, `/System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc` konumunda bulunan sistem XPC hizmeti bu yetkiye sahiptir. Bu, ilgili işlemin SIP kısıtlamalarını atlamasına olanak tanır. Ayrıca, bu hizmet özellikle güvenlik önlemleri uygulamadan dosyaların taşınmasına izin veren bir yöntem sunar.
|
||||
Bu belirli durumda, `/System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc` konumunda bulunan sistem XPC hizmeti bu yetkiye sahiptir. Bu, ilgili işlemin SIP kısıtlamalarını atlamasına olanak tanır. Ayrıca, bu hizmet özellikle güvenlik önlemleri uygulamadan dosyaların taşınmasına izin veren bir yöntem sunar.
|
||||
|
||||
## Mühürlü Sistem Anlık Görüntüleri
|
||||
|
||||
Mühürlü Sistem Anlık Görüntüleri, Apple'ın **macOS Big Sur (macOS 11)**'de tanıttığı bir özellik olup ek bir güvenlik ve sistem kararlılığı katmanı sağlamak için **Sistem Bütünlüğü Koruması (SIP)** mekanizmasının bir parçasıdır. Bunlar, temelde sistem hacminin salt okunur sürümleridir.
|
||||
Mühürlü Sistem Anlık Görüntüleri, Apple'ın **macOS Big Sur (macOS 11)**'de tanıttığı bir özellik olup **Sistem Bütünlüğü Koruması (SIP)** mekanizmasının bir parçası olarak ek bir güvenlik ve sistem kararlılığı katmanı sağlar. Bunlar esasen sistem hacminin salt okunur sürümleridir.
|
||||
|
||||
İşte daha detaylı bir bakış:
|
||||
|
||||
1. **Değişmez Sistem**: Mühürlü Sistem Anlık Görüntüleri, macOS sistem hacmini "değişmez" yapar, yani değiştirilemez. Bu, güvenliği veya sistem kararlılığını tehlikeye atabilecek yetkisiz veya kazara değişiklikleri önler.
|
||||
2. **Sistem Yazılım Güncellemeleri**: macOS güncellemelerini veya yükseltmelerini yüklediğinizde, macOS yeni bir sistem anlık görüntüsü oluşturur. macOS başlangıç hacmi daha sonra bu yeni görüntüye geçmek için **APFS (Apple Dosya Sistemi)** kullanır. Güncellemelerin uygulanma süreci, sistem güncellemesi sırasında bir sorun çıkarsa sistem her zaman önceki görüntüye geri dönebilir.
|
||||
3. **Veri Ayrımı**: macOS Catalina'da tanıtılan Veri ve Sistem hacmi ayrımı kavramıyla birlikte, Mühürlü Sistem Anlık Görüntüleri özelliği, tüm verilerinizin ve ayarlarınızın ayrı bir "**Veri**" hacminde depolandığından emin olur. Bu ayrım, verilerinizi sisteme bağımlı olmaktan kurtarır, bu da sistem güncellemelerinin sürecini basitleştirir ve sistem güvenliğini artırır.
|
||||
1. **Değişmez Sistem**: Mühürlü Sistem Anlık Görüntüleri, macOS sistem hacmini "değişmez" yapar, yani değiştirilemez. Bu, güvenliği veya sistem kararlılığını tehlikeye atabilecek herhangi bir izinsiz veya kazara değişikliği önler.
|
||||
2. **Sistem Yazılım Güncellemeleri**: macOS güncellemeleri veya yükseltmeleri yüklediğinizde, macOS yeni bir sistem anlık görüntüsü oluşturur. macOS başlangıç hacmi daha sonra bu yeni görüntüye geçmek için **APFS (Apple Dosya Sistemi)** kullanır. Güncellemelerin uygulanma süreci, sistem her zaman güncelleme sırasında bir sorun olursa önceki görüntüye geri dönebilir.
|
||||
3. **Veri Ayrımı**: macOS Catalina'da tanıtılan Veri ve Sistem hacmi ayrımı kavramıyla birlikte, Mühürlü Sistem Anlık Görüntüleri özelliği, tüm veri ve ayarlarınızın ayrı bir "**Veri**" hacminde depolanmasını sağlar. Bu ayrım, verilerinizi sisteme bağımlı olmaktan kurtarır, bu da sistem güncellemelerinin sürecini basitleştirir ve sistem güvenliğini artırır.
|
||||
|
||||
Bu anlık görüntülerin macOS tarafından otomatik olarak yönetildiğini ve APFS'nin alan paylaşım yetenekleri sayesinde diskinizde ek alan kaplamadığını unutmayın. Ayrıca, bu anlık görüntülerin, tüm sistemin yedeklerini içeren **Time Machine anlık görüntülerinden** farklı olduğunu belirtmek önemlidir.
|
||||
Bu anlık görüntülerin macOS tarafından otomatik olarak yönetildiğini ve APFS'nin alan paylaşım yetenekleri sayesinde diskinizde ekstra alan kaplamadığını unutmayın. Ayrıca, bu görüntülerin, tüm sistemin yedeklerini içeren **Time Machine görüntülerinden** farklı olduğunu belirtmek önemlidir.
|
||||
|
||||
### Anlık Görüntüleri Kontrol Etme
|
||||
### Görüntüleri Kontrol Etme
|
||||
|
||||
**`diskutil apfs list`** komutu, **APFS hacimlerinin detaylarını** ve düzenini listeler:
|
||||
|
||||
|
@ -223,28 +237,40 @@ Bu anlık görüntülerin macOS tarafından otomatik olarak yönetildiğini ve A
|
|||
|
||||
Önceki çıktıda **kullanıcı erişilebilir konumların** `/System/Volumes/Data` altında bağlandığı görülebilir.
|
||||
|
||||
Ayrıca, **macOS Sistem hacmi anlık görüntüsü** `/` altında bağlanır ve **mühürlüdür** (işletim sistemi tarafından kriptografik olarak imzalanmıştır). Bu nedenle, SIP atlanırsa ve değiştirilirse, **işletim sistemi artık başlatılmaz**.
|
||||
Ayrıca, **macOS Sistem hacmi anlık görüntüsü** `/` altında bağlanır ve **mühürlüdür** (işletim sistemi tarafından kriptografik olarak imzalanmıştır). Bu nedenle, SIP atlanırsa ve değiştirilirse, **işletim sistemi artık başlatılamaz**.
|
||||
|
||||
Mührün etkin olup olmadığını **doğrulamak** için şu komutu çalıştırmak mümkündür:
|
||||
Mührün etkin olduğunu **doğrulamak** için şu komutu çalıştırmak mümkündür:
|
||||
```bash
|
||||
csrutil authenticated-root status
|
||||
Authenticated Root status: enabled
|
||||
```
|
||||
Ayrıca, anlık disk de **salt okunur** olarak bağlanır:
|
||||
```
|
||||
```bash
|
||||
mount
|
||||
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io), şirketin veya müşterilerinin **hırsız** kötü amaçlı yazılımlar tarafından **kompromize** edilip edilmediğini kontrol etmek için **ücretsiz** işlevler sunan **dark-web** destekli bir arama motorudur.
|
||||
|
||||
WhiteIntel'in başlıca amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye yazılımı saldırılarıyla mücadele etmektir.
|
||||
|
||||
Websitesini ziyaret edebilir ve motorlarını **ücretsiz** deneyebilirsiniz:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin</summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,61 +1,65 @@
|
|||
# SOME - Aynı Kök Yöntem İcra
|
||||
# SOME - Aynı Köken Yöntem Yürütme
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile öğrenin!</strong></summary>
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
|
||||
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklam görmek ister misiniz?** ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu görün
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **göndererek paylaşın**.
|
||||
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||||
* **Hacking püf noktalarınızı göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **üzerinden paylaşın**.
|
||||
|
||||
</details>
|
||||
|
||||
## Aynı Kök Yöntem İcra
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
Bazı durumlarda, bir sayfada sınırlı bir javascript kodunu çalıştırabilirsiniz. Örneğin, **çalıştırılacak bir geri çağırma değerini kontrol edebildiğiniz** durumlarda.
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Bu durumlarda, yapabileceğiniz en iyi şeylerden biri, DOM'a erişerek orada bulabileceğiniz hassas bir işlemi (örneğin bir düğmeye tıklama) çağırmaktır. Ancak genellikle DOM'da ilginç bir şey olmayan **küçük uç noktalarda** bu zafiyeti bulacaksınız.
|
||||
[**WhiteIntel**](https://whiteintel.io) **karanlık ağ** destekli bir arama motorudur ve şirketin veya müşterilerinin **hırsız kötü amaçlı yazılımlar** tarafından **kompromize edilip edilmediğini kontrol etmek için ücretsiz** işlevsellikler sunar.
|
||||
|
||||
Bu senaryolarda, bu saldırı çok faydalı olacaktır, çünkü amacı, **aynı kökten farklı bir sayfadan DOM içindeki sınırlı JS yürütmesini istismar etmek** ve daha ilginç işlemler yapmaktır.
|
||||
WhiteIntel'in asıl amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye yazılımı saldırılarıyla mücadele etmektir.
|
||||
|
||||
Temel olarak, saldırı akışı aşağıdaki gibidir:
|
||||
Websitesini ziyaret edebilir ve motorlarını **ücretsiz** deneyebilirsiniz:
|
||||
|
||||
* **Kötü niyetli** tarafından kontrol edilen bir sayfayı **kurbanın açmasını sağlayın**
|
||||
* **Sayfa kendini** bir **farklı pencerede** açacak (yeni pencere, başlangıçtaki pencereye referans olan **`opener`** nesnesine sahip olacak)
|
||||
* **Başlangıç sayfası**, **ilginç DOM**'un bulunduğu **sayfayı** yükleyecek.
|
||||
* **İkinci sayfa**, **geri çağırma**yı istismar eden ve **`opener`** nesnesini kullanarak **başlangıç sayfasında bazı işlemleri erişip yürüten** **zafiyetli sayfayı** yükleyecektir (şimdi ilginç DOM'u içeren).
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## Aynı Köken Yöntem Yürütme
|
||||
|
||||
Bazı durumlarda bir sayfada sınırlı bir şekilde javascript yürütebilirsiniz. Örneğin, [**yürütülecek bir geri çağrı değerini kontrol edebileceğiniz durumlar**](./#javascript-function) gibi.
|
||||
|
||||
Bu durumlarda, yapabileceğiniz en iyi şeylerden biri, **DOM'a erişmek ve orada bulabileceğiniz hassas eylemleri çağırmaktır** (örneğin bir düğmeye tıklamak gibi). Ancak genellikle bu zayıf noktayı **DOM'da ilginç bir şey olmayan küçük uç noktalarda bulacaksınız**.
|
||||
|
||||
Bu senaryolarda, bu saldırı çok faydalı olacaktır, çünkü amacı, **aynı kökenden farklı bir sayfadaki DOM içindeki sınırlı JS yürütümünü kötüye kullanabilmektir** ve daha ilginç eylemler yapmaktır.
|
||||
|
||||
Temelde, saldırı akışı aşağıdaki gibidir:
|
||||
|
||||
* **Kötüye kullanabileceğiniz bir geri çağrı bulun** (potansiyel olarak \[\w\\.\_]'ye sınırlı olabilir).
|
||||
* Eğer sınırlı değilse ve herhangi bir JS yürütebiliyorsanız, bunu normal bir XSS olarak kötüye kullanabilirsiniz.
|
||||
* **Kurbanın, saldırgan tarafından kontrol edilen bir sayfayı açmasını sağlayın**
|
||||
* **Sayfa kendini** bir **farklı pencerede açacak** (yeni pencere, başlangıçtaki pencereyi referans alan **`opener`** nesnesine sahip olacaktır)
|
||||
* **Başlangıç sayfası**, **ilginç DOM**'un bulunduğu **sayfayı yükleyecektir**.
|
||||
* **İkinci sayfa**, **kötüye kullanılan geri çağrıyı kötüye kullanarak** ve **`opener`** nesnesini kullanarak **başlangıç sayfasında bazı eylemleri erişip yürütmesi** için **vulnerable** sayfayı yükleyecektir (şimdi ilginç DOM'u içeren başlangıç sayfasını içerir).
|
||||
|
||||
{% hint style="danger" %}
|
||||
İlk sayfa, ikinci sayfa oluşturulduktan sonra yeni bir URL'ye erişse bile, **ikinci sayfanın `opener` nesnesi hala yeni DOM'daki ilk sayfaya geçerli bir referanstır**.
|
||||
Unutmayın ki, başlangıç sayfa ikinci sayfayı oluşturduktan sonra yeni bir URL'ye erişse bile, **ikinci sayfanın `opener` nesnesi hala yeni DOM'daki ilk sayfaya geçerli bir referanstır**.
|
||||
|
||||
Ayrıca, ikinci sayfanın opener nesnesini kullanabilmesi için **her iki sayfanın aynı kökte olması gerekir**. Bu nedenle, bu zafiyeti istismar etmek için bir tür **aynı kökten XSS** bulmanız gerekmektedir.
|
||||
Ayrıca, ikinci sayfanın opener nesnesini kullanabilmesi için **her iki sayfanın aynı kökende olması gerekir**. Bu nedenle, bu zayıflığı kötüye kullanmak için **aynı kökende XSS türü** bir şey bulmanız gerekmektedir.
|
||||
{% endhint %}
|
||||
|
||||
### Sömürü
|
||||
|
||||
* Bu tür bir zafiyeti istismar etmek için bir PoC oluşturmak için bu formu kullanabilirsiniz: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
|
||||
* Bir HTML öğesine tıklama ile bir DOM yolunu bulmak için bu tarayıcı eklentisini kullanabilirsiniz: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
|
||||
* Bu formu kullanarak bu tür bir zayıflığı sömürmek için **PoC oluşturabilirsiniz**: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
|
||||
* Bir HTML öğesine tıklamak için bir DOM yolunu bulmak için bu tarayıcı eklentisini kullanabilirsiniz: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
|
||||
|
||||
### Örnek
|
||||
|
||||
* [https://www.someattack.com/Playground/](https://www.someattack.com/Playground/) adresinde zafiyetli bir örnek bulabilirsiniz.
|
||||
* Bu örnekte sunucu, **geri çağırma parametresinin içeriğine** dayanarak **javascript kodu oluşturuyor** ve **HTML'ye ekliyor:** `<script>opener.{callbacl_content}</script>`. Bu nedenle, bu örnekte `opener`'ın kullanımını açıkça belirtmenize gerek yoktur.
|
||||
* Ayrıca bu CTF çözümünü kontrol edin: [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
|
||||
* [https://www.someattack.com/Playground/](https://www.someattack.com/Playground/) adresinde zayıf bir örnek bulabilirsiniz
|
||||
* Bu örnekte sunucu **javascript kodu oluşturuyor** ve **callback parametresinin içeriğine göre** HTML'ye ekliyor: `<script>opener.{callbacl_content}</script>` . Bu nedenle, bu örnekte `opener`'ın kullanımını açıkça belirtmenize gerek yoktur.
|
||||
* Ayrıca bu CTF çözümüne bakın: [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
|
||||
|
||||
## Referanslar
|
||||
|
||||
* [https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/](https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile öğrenin!</strong></summary>
|
||||
|
||||
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **göndererek paylaşın**.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,43 +2,57 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
|
||||
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
|
||||
|
||||
HackTricks'ı desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
|
||||
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
|
||||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||||
* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
|
||||
|
||||
</details>
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) **dark-web** destekli bir arama motorudur ve şirketin veya müşterilerinin **hırsız kötü amaçlı yazılımlar** tarafından **kompromize edilip edilmediğini** kontrol etmek için **ücretsiz** işlevler sunar.
|
||||
|
||||
WhiteIntel'in başlıca amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye yazılımı saldırılarıyla mücadele etmektir.
|
||||
|
||||
Websitesini ziyaret edebilir ve motorlarını **ücretsiz** deneyebilirsiniz:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## Bütünlük Seviyeleri
|
||||
|
||||
Windows Vista ve sonraki sürümlerde, tüm korunan öğelerin bir **bütünlük seviyesi** etiketi bulunmaktadır. Bu yapı genellikle dosya ve kayıt defteri anahtarlarına "orta" bütünlük seviyesi atar, ancak Internet Explorer 7'nin düşük bütünlük seviyesinde yazabileceği belirli klasörler ve dosyalar hariç. Standart kullanıcılar tarafından başlatılan işlemlerin varsayılan davranışı orta bütünlük seviyesine sahip olurken, hizmetler genellikle sistem bütünlük seviyesinde çalışır. Yüksek bütünlük etiketi kök dizini korur.
|
||||
Windows Vista ve sonraki sürümlerde, tüm korunan öğelerin bir **bütünlük seviyesi** etiketi bulunmaktadır. Bu yapı genellikle dosya ve kayıt defteri anahtarlarına "orta" bütünlük seviyesi atar, ancak Internet Explorer 7'nin yazabileceği düşük bütünlük seviyesindeki belirli klasörler ve dosyalar hariç. Varsayılan davranış, standart kullanıcılar tarafından başlatılan işlemlerin orta bütünlük seviyesine sahip olmasıdır, hizmetler genellikle sistem bütünlük seviyesinde çalışır. Yüksek bütünlük etiketi kök dizini korur.
|
||||
|
||||
Bir ana kural, nesnelerin, nesnenin seviyesinden daha düşük bir bütünlük seviyesine sahip işlemler tarafından değiştirilemeyeceğidir. Bütünlük seviyeleri şunlardır:
|
||||
|
||||
* **Güvenilmeyen**: Bu seviye, anonim girişlere sahip işlemler içindir. %%%Örnek: Chrome%%%
|
||||
* **Düşük**: Genellikle internet etkileşimleri için, özellikle Internet Explorer'ın Korunan Modu'nda, ilişkili dosyaları ve işlemleri etkiler ve **Geçici İnternet Klasörü** gibi belirli klasörlerde bulunur. Düşük bütünlük seviyesindeki işlemler önemli kısıtlamalara tabidir, bu kısıtlamalar arasında kayıt defterine yazma erişimi olmaması ve sınırlı kullanıcı profiline yazma erişimi bulunması yer alır.
|
||||
* **Orta**: Çoğu etkinlik için varsayılan seviye, standart kullanıcılara ve belirli bütünlük seviyelerine sahip olmayan nesnelere atanır. Yöneticiler grubunun üyeleri bile varsayılan olarak bu seviyede çalışır.
|
||||
* **Yüksek**: Yöneticilere ayrılmıştır, bunlar yüksek bütünlük seviyelerindeki nesneleri, yüksek seviyedeki nesneleri de dahil olmak üzere daha düşük bütünlük seviyelerinde değiştirebilirler.
|
||||
* **Güvenilmeyen**: Bu seviye, anonim girişlerle işlem yapan işlemler içindir. %%%Örnek: Chrome%%%
|
||||
* **Düşük**: Genellikle internet etkileşimleri için, özellikle Internet Explorer'ın Korunan Modu'nda, ilişkili dosyaları ve işlemleri etkiler ve **Geçici İnternet Klasörü** gibi belirli klasörler. Düşük bütünlük işlemleri, kayıt defteri yazma erişimi olmaksızın ve sınırlı kullanıcı profil yazma erişimiyle karşı karşıya kalır.
|
||||
* **Orta**: Çoğu etkinlik için varsayılan seviye, standart kullanıcılara ve belirli bütünlük seviyeleri olmayan nesnelere atanır. Yöneticiler grubunun üyeleri bile varsayılan olarak bu seviyede çalışır.
|
||||
* **Yüksek**: Yöneticiler için ayrılmış, onlara yüksek bütünlük seviyesindeki nesneleri, yüksek seviyedeki nesneleri de dahil olmak üzere daha düşük bütünlük seviyelerinde değiştirmelerine izin verir.
|
||||
* **Sistem**: Windows çekirdeği ve temel hizmetler için en yüksek işletim seviyesi, hatta yöneticiler için bile ulaşılamaz, önemli sistem işlevlerinin korunmasını sağlar.
|
||||
* **Yükleyici**: Diğer tüm seviyelerin üzerinde bulunan benzersiz bir seviye, bu seviyedeki nesnelerin herhangi bir diğer nesneyi kaldırmasına izin verir.
|
||||
* **Yükleyici**: Diğer tüm seviyelerin üzerinde duran benzersiz bir seviye, bu seviyedeki nesnelerin herhangi bir diğer nesneyi kaldırmasına izin verir.
|
||||
|
||||
Bir işlemin bütünlük seviyesini **Sysinternals**'den **Process Explorer** kullanarak alabilir, işlemin **özelliklerine** erişerek "**Güvenlik**" sekmesini görüntüleyebilirsiniz:
|
||||
|
||||
![](<../../.gitbook/assets/image (821).png>)
|
||||
|
||||
Ayrıca `whoami /groups` komutunu kullanarak **mevcut bütünlük seviyenizi** alabilirsiniz.
|
||||
Ayrıca `whoami /groups` kullanarak **mevcut bütünlük seviyenizi** alabilirsiniz.
|
||||
|
||||
![](<../../.gitbook/assets/image (322).png>)
|
||||
|
||||
### Dosya Sisteminde Bütünlük Seviyeleri
|
||||
|
||||
Dosya sistemi içindeki bir nesne, bir **minimum bütünlük seviyesi gereksinimi** olabilir ve bir işlem bu bütünlük seviyesine sahip değilse bu nesneyle etkileşime geçemez.\
|
||||
Örneğin, bir düzenli kullanıcı konsolundan bir dosya oluşturup izinleri kontrol edelim:
|
||||
Dosya sistemi içindeki bir nesne, bir **minimum bütünlük seviyesi gereksinimi** olabilir ve bir işlem bu bütünlük seviyesine sahip değilse etkileşimde bulunamaz.\
|
||||
Örneğin, bir düzenli kullanıcı konsolundan düzenli bir dosya oluşturup izinleri kontrol edelim:
|
||||
```
|
||||
echo asd >asd.txt
|
||||
icacls asd.txt
|
||||
|
@ -49,7 +63,7 @@ NT AUTHORITY\INTERACTIVE:(I)(M,DC)
|
|||
NT AUTHORITY\SERVICE:(I)(M,DC)
|
||||
NT AUTHORITY\BATCH:(I)(M,DC)
|
||||
```
|
||||
Şimdi, dosyaya en azından **Yüksek** bütünlük seviyesi atayalım. Bu işlem **yönetici olarak çalışan bir konsoldan yapılmalıdır**, çünkü **normal bir konsol** Orta Bütünlük seviyesinde çalıştığından bir nesneye Yüksek Bütünlük seviyesi atamasına **izin verilmeyecektir**:
|
||||
Şimdi, dosyaya en düşük bütünlük seviyesi olan **Yüksek** seviyesi atayalım. Bu işlem **yönetici olarak çalışan bir konsoldan yapılmalıdır**, çünkü **normal bir konsol** Orta Bütünlük seviyesinde çalıştığı için bir nesneye Yüksek Bütünlük seviyesi atamaya **izin verilmeyecektir**:
|
||||
```
|
||||
icacls asd.txt /setintegritylevel(oi)(ci) High
|
||||
processed file: asd.txt
|
||||
|
@ -64,7 +78,7 @@ NT AUTHORITY\SERVICE:(I)(M,DC)
|
|||
NT AUTHORITY\BATCH:(I)(M,DC)
|
||||
Mandatory Label\High Mandatory Level:(NW)
|
||||
```
|
||||
Bu noktada işler ilginç bir hal alıyor. Dosya üzerinde **TAM ayrıcalıklara** sahip olduğunu görebilirsiniz (zaten bu dosyayı oluşturan kullanıcı buydu), ancak uygulanan minimum bütünlük seviyesi nedeniyle artık dosyayı değiştiremeyecek, yalnızca Yüksek Bütünlük Seviyesi içinde çalıştığında (not olarak dosyayı okuyabilecektir):
|
||||
Bu noktada işler ilginç bir hal alıyor. Dosyanın üzerinde **TAM ayrıcalıklara** sahip olduğunu görebilirsiniz (`DESKTOP-IDJHTKP\user` kullanıcısı gerçekten dosyayı oluşturan kullanıcıydı), ancak uygulanan minimum bütünlük seviyesi nedeniyle artık dosyayı değiştiremeyecek, yalnızca Yüksek Bütünlük Seviyesi içinde çalıştığında (not olarak dosyayı okuyabileceğini belirtmek gerekir):
|
||||
```
|
||||
echo 1234 > asd.txt
|
||||
Access is denied.
|
||||
|
@ -89,7 +103,7 @@ APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
|
|||
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APP PACKAGES:(I)(RX)
|
||||
Mandatory Label\Low Mandatory Level:(NW)
|
||||
```
|
||||
Şimdi, `cmd-low.exe`'yi çalıştırdığımda **düşük bütünlük seviyesi altında çalışacak**:
|
||||
Şimdi, `cmd-low.exe`'yi çalıştırdığımda **orta seviye yerine düşük bütünlük seviyesinde** çalışacak:
|
||||
|
||||
![](<../../.gitbook/assets/image (310).png>)
|
||||
|
||||
|
@ -97,6 +111,34 @@ Meraklı insanlar için, bir ikili dosyaya yüksek bütünlük seviyesi atarsan
|
|||
|
||||
### İşlemlerde Bütünlük Seviyeleri
|
||||
|
||||
Tüm dosya ve klasörlerin minimum bütünlük seviyesine sahip olmadığını, **ancak tüm işlemlerin bir bütünlük seviyesi altında çalıştığını** belirtmek gerekir. Dosya sisteminde olduğu gibi, **bir işlemin başka bir işlemin içine yazmak istemesi durumunda en az aynı bütünlük seviyesine sahip olması gerekir**. Bu, düşük bütünlük seviyesine sahip bir işlemin, orta bütünlük seviyesine sahip bir işleme tam erişim sağlayan bir tutamaç açamayacağı anlamına gelir.
|
||||
Tüm dosya ve klasörlerin minimum bütünlük seviyesine sahip olmadığını, **ancak tüm işlemlerin bir bütünlük seviyesinde çalıştığını** belirtmek gerekir. Dosya sisteminde olduğu gibi, **bir işlemin başka bir işlemin içine yazmak istemesi durumunda en az aynı bütünlük seviyesine sahip olması gerekir**. Bu, düşük bütünlük seviyesine sahip bir işlemin, orta bütünlük seviyesine sahip bir işleme tam erişim sağlayan bir tutamaç açamayacağı anlamına gelir.
|
||||
|
||||
Bu ve önceki bölümde belirtilen kısıtlamalar nedeniyle, güvenlik açısından her zaman **bir işlemi mümkün olan en düşük bütünlük seviyesinde çalıştırmak önerilir**.
|
||||
Bu ve önceki bölümlerde belirtilen kısıtlamalar nedeniyle, güvenlik açısından her zaman **bir işlemi mümkün olan en düşük bütünlük seviyesinde çalıştırmak önerilir**.
|
||||
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io), bir şirketin veya müşterilerinin **hırsız kötü amaçlı yazılımlar** tarafından **tehlikeye atılıp atılmadığını** kontrol etmek için **ücretsiz** işlevler sunan **karanlık ağ** destekli bir arama motorudur.
|
||||
|
||||
WhiteIntel'in başlıca amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye yazılımı saldırılarıyla mücadele etmektir.
|
||||
|
||||
Websitesini ziyaret edebilir ve **ücretsiz** olarak motorlarını deneyebilirsiniz:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin</summary>
|
||||
|
||||
HackTricks'i desteklemenin diğer yolları:
|
||||
|
||||
* **Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
||||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
||||
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.**
|
||||
* **Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek destek olun.**
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Add table
Reference in a new issue