`**という数を**`num`位置が指すアドレスに書き込む**ことが可能です。
```bash
AAAA%.6000d%4\$n —> Write 6004 in the address indicated by the 4º param
AAAA.%500\$08x —> Param at offset 500
```
-しかし、通常、`0x08049724`のようなアドレスを書くためには(これは一度に書くには非常に大きな数です)、**`$hn`**が**`$n`**の代わりに使用されます。これにより、**2バイトだけを書く**ことができます。したがって、この操作は2回行われ、アドレスの最上位2バイトと最下位2バイトのそれぞれに対して行われます。
+しかし、通常、`0x08049724`のようなアドレスを書くためには(これは一度に書くには非常に大きな数です)、**`$hn`**が**`$n`**の代わりに使用されます。これにより、**2バイトだけを書く**ことができます。したがって、この操作は2回行われます。1回目はアドレスの上位2バイト、2回目は下位2バイトです。
したがって、この脆弱性は**任意のアドレスに何でも書き込むことを可能にします(任意書き込み)。**
@@ -173,17 +173,17 @@ AAAA.%500\$08x —> Param at offset 500
{% endcontent-ref %}
私たちは、**ユーザー**から**引数**を**受け取る**関数を**上書き**し、それを**`system`**関数に**ポイント**します。\
-前述のように、アドレスを書くためには通常2ステップが必要です:最初にアドレスの2バイトを書き、その後に残りの2バイトを書きます。そのために**`$hn`**が使用されます。
+前述のように、アドレスを書くためには通常2ステップが必要です。最初にアドレスの2バイトを書き、その後に残りの2バイトを書きます。そのために**`$hn`**が使用されます。
* **HOB**はアドレスの上位2バイトに呼び出されます
* **LOB**はアドレスの下位2バイトに呼び出されます
-次に、フォーマット文字列の動作のために、最初に\[HOB, LOB\]の中で最小のものを**書く必要があります**、その後にもう一方を書きます。
+次に、フォーマット文字列の動作のために、最初に\[HOB, LOB\]の中で最小のものを**書く必要があります**。次にもう一方を書きます。
-もしHOB < LOB\
+HOB < LOB\
`[address+2][address]%.[HOB-8]x%[offset]\$hn%.[LOB-HOB]x%[offset+1]`
-もしHOB > LOB\
+HOB > LOB\
`[address+2][address]%.[LOB-8]x%[offset+1]\$hn%.[HOB-LOB]x%[offset]`
HOB LOB HOB\_shellcode-8 NºParam\_dir\_HOB LOB\_shell-HOB\_shell NºParam\_dir\_LOB
@@ -196,7 +196,7 @@ python -c 'print "\x26\x97\x04\x08"+"\x24\x97\x04\x08"+ "%.49143x" + "%4$hn" + "
### Pwntools テンプレート
-この種の脆弱性に対するエクスプロイトを準備するための**テンプレート**は、以下にあります:
+この種の脆弱性に対するエクスプロイトを準備するための**テンプレート**は以下にあります:
{% content-ref url="format-strings-template.md" %}
[format-strings-template.md](format-strings-template.md)
@@ -237,9 +237,9 @@ p.interactive()
* [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html)
* 32ビット、relroあり、canaryなし、nx、pieなし、`.fini_array`内のmainのアドレスに書き込むためのフォーマット文字列(フローがもう1回ループバックするように)および`strlen`を指すGOTテーブル内の`system`へのアドレスを書き込む。フローがmainに戻ると、`strlen`がユーザー入力で実行され、`system`を指すと、渡されたコマンドが実行されます。
-
+
-**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
+**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_).
{% embed url="https://www.stmcyber.com/careers" %}
@@ -251,5 +251,5 @@ 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を提出してください。
+* **ハッキングのトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
{% endhint %}
diff --git a/binary-exploitation/libc-heap/README.md b/binary-exploitation/libc-heap/README.md
index 91e2bcba4..11059d696 100644
--- a/binary-exploitation/libc-heap/README.md
+++ b/binary-exploitation/libc-heap/README.md
@@ -10,7 +10,7 @@
### 基本的なチャンクの割り当て
-ヒープに格納するデータが要求されると、ヒープの一部がそのために割り当てられます。このスペースはビンに属し、要求されたデータ + ビンヘッダーのスペース + 最小ビンサイズオフセットの分だけがチャンクのために予約されます。目標は、各チャンクの位置を見つけるのを複雑にせず、できるだけ少ないメモリを予約することです。このために、メタデータチャンク情報が使用され、各使用中/未使用のチャンクの位置を把握します。
+ヒープに格納するデータが要求されると、ヒープの一部がそのために割り当てられます。このスペースはビンに属し、要求されたデータ + ビンヘッダーのスペース + 最小ビンサイズオフセットの分だけがチャンクのために予約されます。目標は、各チャンクの位置を見つけるのを複雑にせず、できるだけ少ないメモリを予約することです。このために、メタデータチャンク情報が使用され、各使用中/未使用のチャンクの位置を知ることができます。
スペースを予約する方法はいくつかありますが、主に使用されるビンによって異なりますが、一般的な方法論は次のとおりです:
@@ -29,7 +29,7 @@
これに対処するために、ptmalloc2ヒープアロケータは「アリーナ」を導入しました。ここで**各アリーナ**は**独自の**データ**構造**と**ミューテックス**を持つ**別々のヒープ**として機能し、異なるアリーナを使用する限り、複数のスレッドが互いに干渉することなくヒープ操作を行うことができます。
-デフォルトの「メイン」アリーナは、シングルスレッドアプリケーションのヒープ操作を処理します。**新しいスレッド**が追加されると、ヒープマネージャーは競合を減らすために**セカンダリアリーナ**を割り当てます。最初に、各新しいスレッドを未使用のアリーナに接続しようとし、必要に応じて新しいアリーナを作成します。32ビットシステムではCPUコア数の2倍、64ビットシステムでは8倍の制限まで行います。制限に達すると、**スレッドはアリーナを共有しなければならず**、競合の可能性が生じます。
+デフォルトの「メイン」アリーナは、シングルスレッドアプリケーションのヒープ操作を処理します。**新しいスレッド**が追加されると、ヒープマネージャーは競合を減らすために**セカンダリアリーナ**を割り当てます。最初に、各新しいスレッドを未使用のアリーナに接続しようとし、必要に応じて新しいアリーナを作成します。32ビットシステムではCPUコアの数の2倍、64ビットシステムでは8倍の制限まで行います。制限に達すると、**スレッドはアリーナを共有しなければならず**、競合の可能性が生じます。
メインアリーナとは異なり、`brk`システムコールを使用して拡張されるメインアリーナに対し、セカンダリアリーナは`mmap`と`mprotect`を使用して「サブヒープ」を作成し、マルチスレッド操作のためのメモリ管理の柔軟性を提供します。
@@ -41,11 +41,11 @@
* 初期ヒープはプログラムのバイナリの直後にメモリに位置し、`sbrk`システムコールを使用して拡張されます。
* セカンダリアリーナによって使用されるサブヒープは、指定されたメモリ領域をマッピングするシステムコールである`mmap`を通じて作成されます。
2. **`mmap`によるメモリ予約**:
-* ヒープマネージャーがサブヒープを作成する際、大きなメモリブロックを`mmap`を通じて予約します。この予約は即座にメモリを割り当てるわけではなく、他のシステムプロセスや割り当てが使用しないべき領域を指定するだけです。
+* ヒープマネージャーがサブヒープを作成するとき、大きなメモリブロックを`mmap`を通じて予約します。この予約は即座にメモリを割り当てるわけではなく、他のシステムプロセスや割り当てが使用しないべき領域を指定するだけです。
* デフォルトでは、サブヒープの予約サイズは32ビットプロセスで1 MB、64ビットプロセスで64 MBです。
3. **`mprotect`による段階的拡張**:
* 予約されたメモリ領域は最初に`PROT_NONE`としてマークされ、カーネルがこのスペースに物理メモリを割り当てる必要がないことを示します。
-* サブヒープを「成長」させるために、ヒープマネージャーは`mprotect`を使用してページの権限を`PROT_NONE`から`PROT_READ | PROT_WRITE`に変更し、カーネルに以前に予約されたアドレスに物理メモリを割り当てるように促します。この段階的アプローチにより、サブヒープは必要に応じて拡張できます。
+* サブヒープを「成長させる」ために、ヒープマネージャーは`mprotect`を使用してページの権限を`PROT_NONE`から`PROT_READ | PROT_WRITE`に変更し、カーネルに以前に予約されたアドレスに物理メモリを割り当てるように促します。この段階的アプローチにより、サブヒープは必要に応じて拡張できます。
* サブヒープ全体が使い果たされると、ヒープマネージャーは新しいサブヒープを作成して割り当てを続けます。
### heap\_info
@@ -71,10 +71,10 @@ char pad[-3 * SIZE_SZ & MALLOC_ALIGN_MASK];
### malloc\_state
**各ヒープ**(メインアリーナまたは他のスレッドアリーナ)には**`malloc_state`構造体があります。**\
-**メインアリーナの`malloc_state`**構造体は**libcのグローバル変数**であることに注意することが重要です(したがってlibcメモリ空間に位置しています)。\
-スレッドのヒープの**`malloc_state`**構造体は、**各スレッドの「ヒープ」内に位置しています**。
+**メインアリーナの`malloc_state`**構造体は**libcのグローバル変数**であることに注意することが重要です(したがって、libcのメモリ空間にあります)。\
+スレッドのヒープの**`malloc_state`**構造体は、**各スレッドの「ヒープ」内にあります**。
-この構造体から注目すべきいくつかの興味深い点があります(以下のCコードを参照):
+この構造体から注目すべき興味深い点がいくつかあります(以下のCコードを参照):
* `__libc_lock_define (, mutex);` は、このヒープの構造体が1つのスレッドによって同時にアクセスされることを保証するためにあります。
* フラグ:
@@ -86,7 +86,7 @@ char pad[-3 * SIZE_SZ & MALLOC_ALIGN_MASK];
#define set_noncontiguous(M) ((M)->flags |= NONCONTIGUOUS_BIT)
#define set_contiguous(M) ((M)->flags &= ~NONCONTIGUOUS_BIT)
```
-* `mchunkptr bins[NBINS * 2 - 2];` は**小さな、大きな、未ソートの** **ビン**の**最初と最後のチャンク**への**ポインタ**を含んでいます(-2はインデックス0が使用されていないためです)。
+* `mchunkptr bins[NBINS * 2 - 2];` は**小さな、大きな、未ソートの** **ビン**の**最初と最後のチャンク**への**ポインタ**を含みます(-2はインデックス0が使用されていないためです)。
* したがって、これらのビンの**最初のチャンク**はこの構造体への**逆ポインタ**を持ち、これらのビンの**最後のチャンク**はこの構造体への**前方ポインタ**を持ちます。これは基本的に、**メインアリーナでこれらのアドレスをl**eakできれば、**libc**内の構造体へのポインタを持つことを意味します。
* 構造体`struct malloc_state *next;`と`struct malloc_state *next_free;`はアリーナのリンクリストです。
* `top`チャンクは最後の「チャンク」であり、基本的に**ヒープの残りのすべてのスペース**です。トップチャンクが「空」であると、ヒープは完全に使用されており、さらにスペースを要求する必要があります。
@@ -155,7 +155,7 @@ struct malloc_chunk* bk_nextsize;
typedef struct malloc_chunk* mchunkptr;
```
-以前にコメントしたように、これらのチャンクにはメタデータも含まれており、以下の画像で非常に良く表現されています:
+前述のように、これらのチャンクにはメタデータも含まれており、以下の画像で非常に良く表現されています:
@@ -165,7 +165,7 @@ typedef struct malloc_chunk* mchunkptr;
* `M`: 1の場合、このチャンクはmmapで割り当てられたスペースの一部であり、ヒープの一部ではありません
* `P`: 1の場合、前のチャンクは使用中です
-次に、ユーザーデータのためのスペースがあり、最後にチャンクが利用可能なときに前のチャンクサイズを示すための0x08B(または割り当てられたときにユーザーデータを格納するため)。
+次に、ユーザーデータのためのスペースがあり、最後にチャンクが利用可能なときに前のチャンクサイズを示すための0x08B(または割り当てられたときにユーザーデータを格納するため)があります。
さらに、利用可能な場合、ユーザーデータは次のデータを含むためにも使用されます:
@@ -258,7 +258,7 @@ req = (req + (__MTAG_GRANULE_SIZE - 1)) &
return request2size (req);
}
```
-注意:必要な総スペースを計算する際、`prev_size` フィールドはデータを格納するために使用できるため、`SIZE_SZ` は1回だけ追加されます。したがって、初期ヘッダーのみが必要です。
+注意:必要な総スペースを計算する際、`prev_size` フィールドはデータを格納するために使用できるため、`SIZE_SZ` は1回だけ追加されることに注意してください。したがって、初期ヘッダーのみが必要です。
### チャンクデータを取得し、メタデータを変更する
@@ -327,7 +327,7 @@ people extending or adapting this malloc.
/* Treat space at ptr + offset as a chunk */
#define chunk_at_offset(p, s) ((mchunkptr) (((char *) (p)) + (s)))
```
-* インシュービット
+* インスー ビット
```c
/* extract p's inuse bit */
#define inuse(p) \
@@ -351,7 +351,7 @@ people extending or adapting this malloc.
#define clear_inuse_bit_at_offset(p, s) \
(((mchunkptr) (((char *) (p)) + (s)))->mchunk_size &= ~(PREV_INUSE))
```
-* ヘッダーとフッターを設定する(チャンク番号が使用されている場合)
+* チャンク番号が使用されている場合、ヘッダーとフッターを設定する
```c
/* Set size at head, without disturbing its use bit */
#define set_head_size(p, s) ((p)->mchunk_size = (((p)->mchunk_size & SIZE_BITS) | (s)))
@@ -408,11 +408,11 @@ ptr = malloc(0x10);
strcpy(ptr, "panda");
}
```
-Set a breakpoint at the end of the main function and lets find out where the information was stored:
+メイン関数の終わりにブレークポイントを設定し、情報がどこに保存されているかを見てみましょう:
-文字列pandaが`0xaaaaaaac12a0`に格納されていることがわかります(これは`x0`内のmallocによって返されたアドレスです)。0x10バイト前を確認すると、`0x0`は**前のチャンクが使用されていない**ことを示しており(長さ0)、このチャンクの長さは`0x21`です。
+文字列pandaが`0xaaaaaaac12a0`に保存されていることがわかります(これは`x0`内のmallocによって返されたアドレスです)。0x10バイト前を確認すると、`0x0`は**前のチャンクが使用されていない**ことを示しており(長さ0)、このチャンクの長さは`0x21`です。
予約された余分なスペース(0x21-0x10=0x11)は**追加ヘッダー**(0x10)から来ており、0x1は0x21Bが予約されたことを意味するのではなく、現在のヘッダーの長さの最後の3ビットには特別な意味があります。長さは常に16バイト境界に揃えられているため(64ビットマシンで)、これらのビットは実際には長さの数値によって使用されることはありません。
```
@@ -470,11 +470,11 @@ return 0;
前の例をデバッグすると、最初に1つのアリーナしかないことがわかります:
-
+
次に、最初のスレッド、mallocを呼び出すスレッドを呼び出すと、新しいアリーナが作成されます:
-
+
その中にはいくつかのチャンクが見つかります:
diff --git a/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md b/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md
index 24b9c6aa9..d3f844428 100644
--- a/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md
+++ b/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md
@@ -1,16 +1,16 @@
# BROP - Blind Return Oriented Programming
{% 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ハッキングを学び、実践する:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCPハッキングを学び、実践する: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks
+HackTricksをサポートする
-* 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.
+* [**サブスクリプションプラン**](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 %}
@@ -25,11 +25,11 @@ Learn & practice GCP Hacking: https://www.scs.stanford.edu/brop/bittau-brop.pdf
+
これらがガジェットです:
@@ -60,13 +60,13 @@ Learn & practice GCP Hacking: クラッシュしない
* `'A' * offset + canary + rbp + (ADDR + 0x6) + STOP` -> クラッシュしない
@@ -74,16 +74,16 @@ PLTテーブルは0x400000から、またはスタックからの**漏洩したR
### 7. strcmpを見つける
-**`strcmp`**関数は、比較される文字列の長さをレジスタ**`rdx`**に設定します。**`rdx`**は**3番目の引数**であり、後で`write`を使用してプログラムを漏洩させるために**0より大きくする必要があります**。
+**`strcmp`**関数は、比較される文字列の長さをレジスタ**`rdx`**に設定します。**`rdx`**は**3番目の引数**であり、後で`write`を使用してプログラムを漏洩させるために**0より大きい**必要があります。
-次のように、関数の最初の2つの引数を制御できることを利用して、PLT内の**`strcmp`**の位置を見つけることができます:
+**`strcmp`**のPLT内の位置を、その動作に基づいて見つけることが可能です。なぜなら、私たちは今、関数の最初の2つの引数を制御できるからです:
* strcmp(\<非読み取りアドレス>, \<非読み取りアドレス>) -> クラッシュ
* strcmp(\<非読み取りアドレス>, \<読み取りアドレス>) -> クラッシュ
* strcmp(\<読み取りアドレス>, \<非読み取りアドレス>) -> クラッシュ
* strcmp(\<読み取りアドレス>, \<読み取りアドレス>) -> クラッシュしない
-これは、PLTテーブルの各エントリを呼び出すか、**PLTスローパス**を使用して確認できます。これは基本的に**PLTテーブルのエントリを呼び出し + 0xb**(**`dlresolve`**を呼び出す)し、スタック内に**調査したいエントリ番号**(ゼロから始まる)を続けて、最初のエントリからすべてのPLTエントリをスキャンします:
+これは、PLTテーブルの各エントリを呼び出すか、**PLTスローパス**を使用して確認できます。これは基本的に**PLTテーブルのエントリを呼び出し + 0xb**(これは**`dlresolve`**を呼び出します)で、スタック内に**調べたいエントリ番号**(ゼロから始まる)を続けて、最初のエントリからすべてのPLTエントリをスキャンします:
* strcmp(\<非読み取りアドレス>, \<読み取りアドレス>) -> クラッシュ
* `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0x300) + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` -> クラッシュします
@@ -98,15 +98,15 @@ PLTテーブルは0x400000から、またはスタックからの**漏洩したR
* BROP + 0x9は**`pop RDI; ret;`**を指します
* PLT + 0xbは**dl\_resolve**への呼び出しを指します。
-`strcmp`を見つけたら、**`rdx`**を0より大きい値に設定することが可能です。
+`strcmp`を見つけたことで、**`rdx`**を0より大きい値に設定することが可能です。
{% hint style="success" %}
-通常、`rdx`にはすでに0より大きい値が格納されているため、このステップは必要ないかもしれません。
+通常、`rdx`はすでに0より大きい値を保持しているため、このステップは必要ないかもしれません。
{% endhint %}
### 8. Writeまたは同等のものを見つける
-最後に、バイナリを漏洩させるためにデータを外部に出力するガジェットが必要です。そして、この時点で**2つの引数を制御し、`rdx`を0より大きく設定することが可能です。**
+最後に、バイナリを漏洩させるためにデータを外部に送信するガジェットが必要です。そして、この時点で**2つの引数を制御し、`rdx`を0より大きく設定することが可能です。**
これに悪用できる一般的な関数は3つあります:
@@ -118,7 +118,7 @@ PLTテーブルは0x400000から、またはスタックからの**漏洩したR
現在の問題は、**PLT内のwrite関数がどこにあるか**がわからず、**データをソケットに送信するためのfd番号がわからない**ことです。
-しかし、**PLTテーブルの位置はわかっており**、その**動作**に基づいてwriteを見つけることが可能です。そして、サーバーとの**複数の接続**を作成し、**高いFD**を使用して、いくつかの接続に一致することを期待できます。
+しかし、**PLTテーブルの位置はわかっており**、その**動作**に基づいてwriteを見つけることが可能です。また、サーバーとの**複数の接続**を作成し、**高いFD**を使用して、いくつかの接続のいずれかに一致することを期待できます。
これらの関数を見つけるための動作シグネチャ:
@@ -136,16 +136,16 @@ PLTテーブルは0x400000から、またはスタックからの**漏洩したR
* [https://www.ctfrecipes.com/pwn/stack-exploitation/arbitrary-code-execution/code-reuse-attack/blind-return-oriented-programming-brop](https://www.ctfrecipes.com/pwn/stack-exploitation/arbitrary-code-execution/code-reuse-attack/blind-return-oriented-programming-brop)
{% 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ハッキングを学び、実践する:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCPハッキングを学び、実践する: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks
+HackTricksをサポートする
-* 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.
+* [**サブスクリプションプラン**](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/generic-methodologies-and-resources/external-recon-methodology/README.md b/generic-methodologies-and-resources/external-recon-methodology/README.md
index 7530d76fb..e3ccceff3 100644
--- a/generic-methodologies-and-resources/external-recon-methodology/README.md
+++ b/generic-methodologies-and-resources/external-recon-methodology/README.md
@@ -15,7 +15,7 @@ GCPハッキングを学び、実践する:
+
**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
@@ -35,7 +35,7 @@ GCPハッキングを学び、実践する: スコープ内のすべての企業とその資産がわかったので、スコープ内のドメインを見つける時です。
+> スコープ内のすべての企業とその資産を把握したので、スコープ内のドメインを見つける時が来ました。
_以下の提案された技術では、サブドメインも見つけることができ、その情報は過小評価すべきではありません。_
-まず、各企業の**主要なドメイン**を探すべきです。たとえば、_Tesla Inc._の場合、_tesla.com_になります。
+まず、各企業の**主要なドメイン**を探すべきです。たとえば、_Tesla Inc._の主要なドメインは_tesla.com_です。
### **逆引きDNS**
-ドメインのIP範囲をすべて見つけたので、**スコープ内のより多くのドメインを見つけるために、これらの**IPに対して**逆引きDNSルックアップを実行してみることができます。** 被害者のDNSサーバーまたは一般的なDNSサーバー(1.1.1.1、8.8.8.8)を使用してみてください。
+ドメインのIP範囲をすべて見つけたので、これらの**IPに対して逆引きDNSルックアップ**を実行して、**スコープ内のさらに多くのドメインを見つける**ことができます。被害者のDNSサーバーまたは一般的なDNSサーバー(1.1.1.1、8.8.8.8)を使用してみてください。
```bash
dnsrecon -r -n #DNS reverse of all of the addresses
dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
@@ -226,7 +226,7 @@ dnsrecon -a -d tesla.com
```
### **OSINT**
-多くのサブドメインを迅速に取得する最も簡単な方法は、外部ソースで検索することです。最も使用される**ツール**は以下の通りです(より良い結果を得るためにAPIキーを設定してください):
+多くのサブドメインを迅速に取得する最も簡単な方法は、外部ソースを検索することです。最も使用される**ツール**は以下の通りです(より良い結果を得るためにAPIキーを設定してください):
* [**BBOT**](https://github.com/blacklanternsecurity/bbot)
```bash
@@ -307,7 +307,7 @@ curl -s "https://crt.sh/?q=%25.$1" \
}
crt tesla.com
```
-* [**gau**](https://github.com/lc/gau)**:** 指定されたドメインに対して、AlienVaultのOpen Threat Exchange、Wayback Machine、およびCommon Crawlから既知のURLを取得します。
+* [**gau**](https://github.com/lc/gau)**:** 任意のドメインに対して、AlienVaultのOpen Threat Exchange、Wayback Machine、およびCommon Crawlから既知のURLを取得します。
```bash
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
@@ -374,7 +374,7 @@ gobuster dns -d mysite.com -t 50 -w subdomains.txt
```
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
```
-* [**puredns**](https://github.com/d3mondev/puredns): それは `massdns` も使用しています。
+* [**puredns**](https://github.com/d3mondev/puredns): それは `massdns` も使用します。
```
puredns bruteforce all.txt domain.com
```
@@ -405,7 +405,7 @@ gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
```
* [**dmut**](https://github.com/bp0lr/dmut): サブドメインの順列、変異、変更を行うための別のツール。このツールは結果をブルートフォースします(DNSワイルドカードはサポートしていません)。
-* dmutの順列ワードリストは[**こちら**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt)で入手できます。
+* dmutの順列ワードリストは[**こちら**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt)から取得できます。
```bash
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
@@ -420,13 +420,13 @@ python3 main.py adobe.com adobe adobe.rules
make_brute_list.sh adobe.rules adobe.brute
puredns resolve adobe.brute --write adobe.valid
```
-* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ は、非常にシンプルで効果的なDNS応答ガイドアルゴリズムを備えたサブドメインブルートフォースファズァです。提供された入力データセット(カスタマイズされた単語リストや過去のDNS/TLSレコードなど)を利用して、より対応するドメイン名を正確に合成し、DNSスキャン中に収集した情報に基づいてループ内でさらに拡張します。
+* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ は、非常にシンプルで効果的なDNS応答ガイドアルゴリズムと組み合わされたサブドメインブルートフォースファズザーです。提供された入力データセット(カスタマイズされた単語リストや過去のDNS/TLSレコードなど)を利用して、より対応するドメイン名を正確に合成し、DNSスキャン中に収集した情報に基づいてループ内でさらに拡張します。
```
echo www | subzuf facebook.com
```
### **サブドメイン発見ワークフロー**
-私が書いたブログ記事をチェックしてください。**Trickestワークフロー**を使用してドメインから**サブドメインの発見を自動化する**方法について説明しています。これにより、コンピュータでツールを手動で起動する必要がなくなります。
+私が書いたブログ記事をチェックしてください。**Trickestワークフロー**を使用してドメインから**サブドメイン発見を自動化する**方法について説明しています。これにより、コンピュータでツールを手動で起動する必要がなくなります:
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/" %}
@@ -434,7 +434,7 @@ echo www | subzuf facebook.com
### **VHosts / バーチャルホスト**
-サブドメインに属する**1つまたは複数のウェブページ**を含むIPアドレスを見つけた場合、そのIP内の**ウェブを持つ他のサブドメインを見つける**ために、**OSINTソース**でIP内のドメインを探すか、**そのIP内のVHostドメイン名をブルートフォースする**ことを試みることができます。
+サブドメインに属する**1つまたは複数のウェブページ**を含むIPアドレスを見つけた場合、そのIP内の**ウェブがある他のサブドメインを見つける**ために、**OSINTソース**でIP内のドメインを探すか、**そのIP内のVHostドメイン名をブルートフォースする**ことを試みることができます。
#### OSINT
@@ -442,7 +442,7 @@ echo www | subzuf facebook.com
**ブルートフォース**
-ウェブサーバーに隠されたサブドメインがあると疑う場合は、それをブルートフォースしてみることができます:
+ウェブサーバーに隠されたサブドメインがあると疑う場合、それをブルートフォースすることを試みることができます:
```bash
ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com"
@@ -462,7 +462,7 @@ VHostScan -t example.com
### **CORSブルートフォース**
-時には、_**Origin**_ ヘッダーに有効なドメイン/サブドメインが設定されているときにのみ、_**Access-Control-Allow-Origin**_ ヘッダーを返すページを見つけることがあります。このようなシナリオでは、この動作を悪用して新しい **サブドメイン** を **発見** することができます。
+時には、_**Origin**_ ヘッダーに有効なドメイン/サブドメインが設定されている場合にのみ、_**Access-Control-Allow-Origin**_ ヘッダーを返すページを見つけることがあります。このようなシナリオでは、この動作を悪用して新しい **サブドメイン** を **発見** することができます。
```bash
ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body
```
@@ -480,15 +480,15 @@ ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http:
可能な[**サブドメインテイクオーバー**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover)を確認してください。\
もし**サブドメイン**が**S3バケット**を指している場合は、[**権限を確認**](../../network-services-pentesting/pentesting-web/buckets/)してください。
-もし**異なるIPを持つサブドメイン**を見つけた場合は、**基本的な脆弱性スキャン**(NessusまたはOpenVASを使用)と、**ポートスキャン**(**nmap/masscan/shodan**を使用)を実行する必要があります。実行中のサービスに応じて、**この本の中で「攻撃」するためのいくつかのトリックを見つけることができます**。\
-_サブドメインがクライアントによって制御されていないIP内にホストされている場合があるため、スコープ外であることに注意してください。_
+もし**資産発見**で見つけたものとは異なるIPを持つ**サブドメイン**を見つけた場合は、**基本的な脆弱性スキャン**(NessusやOpenVASを使用)と、**ポートスキャン**(**nmap/masscan/shodan**を使用)を実行する必要があります。実行中のサービスに応じて、**この本で「攻撃」するためのいくつかのトリックを見つけることができます**。\
+_サブドメインがクライアントによって制御されていないIP内にホストされていることがあるため、スコープ外であることに注意してください。_
## IPs
-初期のステップで、**いくつかのIP範囲、ドメイン、サブドメイン**を**見つけたかもしれません**。\
+初期のステップで**いくつかのIP範囲、ドメイン、サブドメイン**を**見つけたかもしれません**。\
これらの範囲から**すべてのIPを収集**し、**ドメイン/サブドメイン(DNSクエリ)**のための時間です。
-以下の**無料API**のサービスを使用すると、**ドメインとサブドメインによって使用された以前のIP**を見つけることもできます。これらのIPはクライアントによってまだ所有されている可能性があり、[**CloudFlareのバイパス**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)を見つける手助けになるかもしれません。
+以下の**無料API**のサービスを使用すると、**ドメインとサブドメインによって使用された以前のIP**も見つけることができます。これらのIPはクライアントによってまだ所有されている可能性があり、[**CloudFlareのバイパス**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)を見つける手助けになるかもしれません。
* [**https://securitytrails.com/**](https://securitytrails.com/)
@@ -496,15 +496,15 @@ _サブドメインがクライアントによって制御されていないIP
### **脆弱性の検索**
-**CDNに属さないすべてのIPをポートスキャン**してください(そこでは興味深いものは見つからない可能性が高いです)。発見された実行中のサービスで、**脆弱性を見つけることができるかもしれません**。
+**CDNに属さないすべてのIPをポートスキャン**してください(そこでは興味深いものは見つからない可能性が高いです)。発見された実行中のサービスで**脆弱性を見つけることができるかもしれません**。
-**ホストをスキャンする方法に関する**[**ガイド**](../pentesting-network/)を見つけてください。
+**ホストをスキャンする方法についての**[**ガイド**](../pentesting-network/)**を見つけてください。**
## ウェブサーバーハンティング
> すべての企業とその資産を見つけ、スコープ内のIP範囲、ドメイン、サブドメインを知っています。ウェブサーバーを探す時間です。
-前のステップで、**発見されたIPとドメインのいくつかのリコンをすでに実行しているかもしれません**ので、**すでにすべての可能なウェブサーバーを見つけているかもしれません**。しかし、見つけていない場合は、スコープ内のウェブサーバーを探すための**迅速なトリック**を見ていきます。
+前のステップで、**発見されたIPとドメインのいくつかのリコンをすでに実行しているかもしれません**ので、**すでにすべての可能なウェブサーバーを見つけているかもしれません**。しかし、見つけていない場合は、スコープ内のウェブサーバーを検索するための**迅速なトリック**を見ていきます。
これは**ウェブアプリの発見**に向けられているため、**脆弱性**と**ポートスキャン**も実行する必要があります(**スコープによって許可されている場合**)。
@@ -516,7 +516,7 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
```
### **スクリーンショット**
-スコープ内に存在する**すべてのウェブサーバー**(会社の**IP**やすべての**ドメイン**、**サブドメイン**の中)を発見したので、どこから始めればよいかわからないかもしれません。そこで、シンプルにして、すべてのサーバーのスクリーンショットを撮ることから始めましょう。**メインページ**を**見るだけ**で、**脆弱性**がある可能性の高い**奇妙な**エンドポイントを見つけることができます。
+スコープ内に存在する**すべてのウェブサーバー**(会社の**IP**やすべての**ドメイン**、**サブドメイン**の中から)を発見したので、どこから始めればよいかわからないかもしれません。そこで、シンプルにして、すべてのサーバーのスクリーンショットを撮ることから始めましょう。**メインページ**を**見るだけ**で、**脆弱性**がある可能性の高い**奇妙な**エンドポイントを見つけることができます。
提案されたアイデアを実行するには、[**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness)、[**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot)、[**Aquatone**](https://github.com/michenriksen/aquatone)、[**Shutter**](https://shutter-project.org/downloads/third-party-packages/)、[**Gowitness**](https://github.com/sensepost/gowitness)または[**webscreenshot**](https://github.com/maaaaz/webscreenshot)**を使用できます。**
@@ -524,7 +524,7 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
## パブリッククラウド資産
-会社に属する潜在的なクラウド資産を見つけるためには、**その会社を特定するキーワードのリストから始める**べきです。たとえば、暗号会社の場合、次のような単語を使用することがあります:`"crypto", "wallet", "dao", "", <"subdomain_names">`。
+会社に属する潜在的なクラウド資産を見つけるためには、**その会社を特定するキーワードのリストから始めるべきです**。たとえば、暗号会社の場合、次のような単語を使用することがあります:`"crypto", "wallet", "dao", "", <"subdomain_names">`。
**バケットで使用される一般的な単語のワードリスト**も必要です:
@@ -534,9 +534,9 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
次に、それらの単語を使用して**順列**を生成する必要があります(詳細については[**第二ラウンドDNSブルートフォース**](./#second-dns-bruteforce-round)を確認してください)。
-得られたワードリストを使用して、[**cloud\_enum**](https://github.com/initstring/cloud\_enum)**、** [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**、** [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **または** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)**を使用できます。**
+得られたワードリストを使用して、[**cloud\_enum**](https://github.com/initstring/cloud\_enum)**、**[**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**、**[**cloudlist**](https://github.com/projectdiscovery/cloudlist) **または** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)**を使用できます。**
-クラウド資産を探す際には、**AWSのバケットだけでなく、他のものも探す**必要があることを忘れないでください。
+クラウド資産を探す際には、**AWSのバケットだけでなく、他のものも探すべきです**。
### **脆弱性の検索**
@@ -544,7 +544,7 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
## メール
-スコープ内の**ドメイン**と**サブドメイン**を持っているので、**メールを検索するために必要なすべてのもの**があります。これらは、会社のメールを見つけるために私が最も効果的だと感じた**API**と**ツール**です:
+スコープ内の**ドメイン**と**サブドメイン**を持っているので、**メールを検索するために必要なすべてのものがあります**。これらは、会社のメールを見つけるために私が最も効果的だと感じた**API**と**ツール**です:
* [**theHarvester**](https://github.com/laramies/theHarvester) - APIを使用
* [**https://hunter.io/**](https://hunter.io/)のAPI(無料版)
@@ -553,7 +553,7 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
### **脆弱性の検索**
-メールは、**ウェブログインや認証サービス**(SSHなど)を**ブルートフォース**する際に役立ちます。また、**フィッシング**にも必要です。さらに、これらのAPIは、フィッシングキャンペーンに役立つ、メールの背後にいる**人物に関するさらなる情報**を提供します。
+メールは後で**ウェブログインや認証サービス**(SSHなど)を**ブルートフォース**するのに役立ちます。また、**フィッシング**にも必要です。さらに、これらのAPIは、フィッシングキャンペーンに役立つ**メールの背後にいる人物に関する情報**をさらに提供します。
## 資格情報の漏洩
@@ -568,7 +568,7 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
## 秘密の漏洩
-資格情報の漏洩は、**機密情報が漏洩し販売された**企業のハッキングに関連しています。しかし、企業は、これらのデータベースに情報がない**他の漏洩**の影響を受ける可能性があります:
+資格情報の漏洩は、**機密情報が漏洩して販売された**企業のハッキングに関連しています。ただし、企業は、これらのデータベースに情報がない**他の漏洩**の影響を受ける可能性があります:
### Githubの漏洩
@@ -592,9 +592,9 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
### Google Dorks
-古くても金のようなGoogle Dorksは、**そこにあるべきでない情報を見つける**のに常に役立ちます。唯一の問題は、[**google-hacking-database**](https://www.exploit-db.com/google-hacking-database)に、手動で実行できない数千の可能なクエリが含まれていることです。したがって、お気に入りの10個を取得するか、[**Gorks**](https://github.com/carlospolop/Gorks)のような**ツールを使用してすべてを実行**することができます。
+古くても金の価値があるGoogle Dorksは、**そこにあるべきでない情報を見つける**のに常に役立ちます。唯一の問題は、[**google-hacking-database**](https://www.exploit-db.com/google-hacking-database)に、手動で実行できない**数千**の可能なクエリが含まれていることです。したがって、お気に入りの10個を取得するか、[**Gorks**](https://github.com/carlospolop/Gorks)のような**ツールを使用してすべてを実行**することができます。
-_すべてのデータベースを通常のGoogleブラウザを使用して実行しようとするツールは、非常に早くGoogleにブロックされるため、決して終わりません。_
+_すべてのデータベースを通常のGoogleブラウザを使用して実行しようとするツールは、Googleが非常に早くブロックするため、決して終わらないことに注意してください。_
### **脆弱性の検索**
@@ -602,7 +602,7 @@ _すべてのデータベースを通常のGoogleブラウザを使用して実
## 公開コードの脆弱性
-会社が**オープンソースコード**を持っていることがわかった場合、それを**分析**し、**脆弱性**を探すことができます。
+会社が**オープンソースコード**を持っていることがわかった場合、それを**分析**して**脆弱性**を探すことができます。
**言語によって**異なる**ツール**を使用できます:
@@ -618,23 +618,23 @@ _すべてのデータベースを通常のGoogleブラウザを使用して実
**バグハンターによって見つかった脆弱性の大多数**は**ウェブアプリケーション**内に存在するため、この時点で**ウェブアプリケーションテスト手法**について話したいと思います。詳細は[**こちらで確認できます**](../../network-services-pentesting/pentesting-web/)。
-また、[**Web Automated Scannersオープンソースツール**](../../network-services-pentesting/pentesting-web/#automatic-scanners)のセクションにも特別な言及をしたいと思います。非常に機密性の高い脆弱性を見つけることを期待すべきではありませんが、**初期のウェブ情報を得るためのワークフローに実装するのに役立ちます。**
+また、[**Web Automated Scannersオープンソースツール**](../../network-services-pentesting/pentesting-web/#automatic-scanners)のセクションにも特別な言及をしたいと思います。非常に機密性の高い脆弱性を見つけることを期待すべきではありませんが、**初期のウェブ情報を得るためのワークフローに実装するのに役立ちます**。
## 再確認
> おめでとうございます!この時点で、**すべての基本的な列挙**をすでに実行しています。はい、基本的なことです。さらに多くの列挙が可能です(後でさらにトリックを見ていきます)。
-したがって、すでに次のことを行っています:
+したがって、すでに次のことを行いました:
1. スコープ内のすべての**会社**を見つけた
2. 会社に属するすべての**資産**を見つけた(スコープ内で脆弱性スキャンを実行)
3. 会社に属するすべての**ドメイン**を見つけた
-4. ドメインのすべての**サブドメイン**を見つけた(サブドメインの乗っ取りは?)
+4. ドメインのすべての**サブドメイン**を見つけた(サブドメインの乗っ取りはありますか?)
5. スコープ内のすべての**IP**(CDNからのものとそうでないもの)を見つけた
-6. すべての**ウェブサーバー**を見つけ、**スクリーンショット**を撮った(より深く見る価値のある奇妙なものは?)
+6. すべての**ウェブサーバー**を見つけ、**スクリーンショット**を撮った(より深く見る価値のある奇妙なものはありますか?)
7. 会社に属するすべての**潜在的なパブリッククラウド資産**を見つけた
-8. **メール**、**資格情報の漏洩**、および**秘密の漏洩**があり、**非常に簡単に大きな勝利を得ることができる**
-9. 見つけたすべてのウェブを**ペンテスト**
+8. **メール**、**資格情報の漏洩**、および**秘密の漏洩**があり、**非常に簡単に大きな勝利を得ることができる**。
+9. **見つけたすべてのウェブをペンテストする**
## **フルリコン自動ツール**
@@ -649,9 +649,9 @@ _すべてのデータベースを通常のGoogleブラウザを使用して実
* [**@Jhaddix**](https://twitter.com/Jhaddix)のすべての無料コース、例えば[**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)
-
+
-**ハッキングキャリア**に興味があり、**ハッキング不可能なものをハッキングしたい**方 - **私たちは採用しています!**(_流暢なポーランド語の読み書きが必要_)。
+**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!**(_流暢なポーランド語の読み書きが必要_)。
{% embed url="https://www.stmcyber.com/careers" %}
@@ -664,8 +664,8 @@ GCPハッキングを学び、実践する:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
@@ -10,18 +10,18 @@ GCPハッキングを学び、実践する:
+
-**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
+**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!**(_流暢なポーランド語の読み書きが必要_)。
{% embed url="https://www.stmcyber.com/careers" %}
-## ペンテスティング手法
+## ペンテスト手法
@@ -29,7 +29,7 @@ _Hacktricksのロゴは_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)
### 0- 物理攻撃
-攻撃したいマシンに**物理的アクセス**がありますか?いくつかの[**物理攻撃に関するトリック**](../hardware-physical-access/physical-attacks.md)や[**GUIアプリケーションからの脱出に関するトリック**](../hardware-physical-access/escaping-from-gui-applications.md)を読むべきです。
+攻撃したいマシンに**物理アクセス**がありますか?いくつかの[**物理攻撃に関するトリック**](../hardware-physical-access/physical-attacks.md)や[**GUIアプリケーションからの脱出に関するトリック**](../hardware-physical-access/escaping-from-gui-applications.md)を読むべきです。
### 1 - [ネットワーク内のホストを発見する](pentesting-network/#discovering-hosts)/ [会社の資産を発見する](external-recon-methodology/)
@@ -39,33 +39,33 @@ _Hacktricksのロゴは_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)
外部テストを実施している場合、会社の内部ネットワークへのアクセスを取得したら、このガイドを再起動する必要があります。
{% endhint %}
-### **2-** [**ネットワークで楽しむ**](pentesting-network/) **(内部)**
+### **2-** [**ネットワークで楽しむ**](pentesting-network/) **(内部)**
**このセクションは内部テストを実施している場合にのみ適用されます。**\
-ホストを攻撃する前に、**ネットワークからいくつかの資格情報を盗む**か、**データをスニッフィング**して**パッシブ/アクティブ(MitM)**にネットワーク内で何が見つかるかを学ぶことを好むかもしれません。 [**ペンテスティングネットワーク**](pentesting-network/#sniffing)を読むことができます。
+ホストを攻撃する前に、**ネットワークからいくつかの資格情報を盗む**か、**データをスニッフィング**して**受動的/能動的(MitM)**にネットワーク内で何が見つかるかを学ぶことを好むかもしれません。 [**ペンテストネットワーク**](pentesting-network/#sniffing)を読むことができます。
### 3- [ポートスキャン - サービス発見](pentesting-network/#scanning-hosts)
-**ホストの脆弱性を探す**ときに最初に行うべきことは、どの**サービスがどのポートで実行されているかを知る**ことです。[**ホストのポートをスキャンするための基本ツール**](pentesting-network/#scanning-hosts)を見てみましょう。
+**ホストの脆弱性を探す**ときに最初に行うべきことは、どの**サービスがどのポートで実行されているか**を知ることです。[ **ホストのポートをスキャンするための基本ツール**](pentesting-network/#scanning-hosts)を見てみましょう。
### **4-** [サービスバージョンの脆弱性を検索する](search-exploits.md)
どのサービスが実行されているか、そしておそらくそのバージョンを知ったら、**既知の脆弱性を検索する**必要があります。運が良ければ、シェルを取得するためのエクスプロイトがあるかもしれません...
-### **5-** ペンテスティングサービス
+### **5-** ペンテストサービス
実行中のサービスに特別なエクスプロイトがない場合は、各サービスの**一般的な誤設定を探す**べきです。
-**この本の中には、最も一般的なサービスをペンテストするためのガイドがあります**(あまり一般的でないサービスも含む)。左のインデックスで**_**ペンテスティング**_**セクションを検索してください**(サービスはデフォルトポート順に並んでいます)。
+**この本の中には、最も一般的なサービスをペンテストするためのガイドがあります**(あまり一般的でないサービスも含む)。左のインデックスで**_**ペンテスト**_**セクションを検索してください**(サービスはデフォルトポート順に並んでいます)。
-**特に** [**ペンテスティングWeb**](../network-services-pentesting/pentesting-web/) **部分に特別な言及をしたいと思います(最も広範な部分です)。**\
+**特に** [**ペンテストウェブ**](../network-services-pentesting/pentesting-web/) **部分に特別な言及をしたいと思います(最も広範な部分です)。**\
また、[**ソフトウェアの既知の脆弱性を見つける方法**](search-exploits.md)に関する小さなガイドもここにあります。
-**インデックスにサービスがない場合は、Googleで他のチュートリアルを検索し、**追加してほしい場合はお知らせください。Googleで何も見つからない場合は、**自分でブラインドペンテスティングを行い、**サービスに接続し、ファジングして応答を読むことから始めることができます**(あれば)。
+**インデックスにサービスがない場合は、Googleで他のチュートリアルを検索し、**追加してほしい場合はお知らせください。Googleで何も見つからない場合は、**自分でブラインドペンテストを実施し、**サービスに接続し、ファジングして応答を読み取ることから始めることができます**(あれば)。
#### 5.1 自動ツール
-**自動脆弱性評価を実行できるツールもいくつかあります。** **[**Legion**](https://github.com/carlospolop/legion)**を試してみることをお勧めします。これは、私が作成したツールで、この本にあるペンテスティングサービスに関するノートに基づいています。**
+**自動脆弱性評価を実行できるツールもいくつかあります。** **[**Legion**](https://github.com/carlospolop/legion)**を試してみることをお勧めします。これは、私が作成したツールで、この本にあるペンテストサービスに関するノートに基づいています。**
#### **5.2 ブルートフォースサービス**
@@ -110,13 +110,13 @@ _Hacktricksのロゴは_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)
#### **10.2- ドメイン特権昇格**
-ここに、[**Active Directoryで特権を列挙、昇格、持続させるための最も一般的なアクションを説明する手法**](../windows-hardening/active-directory-methodology/)があります。このプロセスは、ペンテスティング/レッドチームの任務において**非常にデリケート**である可能性があります。
+ここに、[**Active Directoryで特権を列挙、昇格、持続させるための最も一般的なアクションを説明する手法**](../windows-hardening/active-directory-methodology/)があります。このプロセスは、ペンテスト/レッドチームの任務において**非常にデリケート**である可能性があります。
### 11 - POST
#### **11**.1 - ルーティング
-ホスト内でさらに多くの**パスワード**を見つけることができるか、**ユーザーの特権**で他のマシンに**アクセス**できるか確認してください。\
+ホスト内でさらに多くの**パスワード**を見つけることができるか、**ユーザーの特権**で**他のマシンにアクセス**できるか確認してください。\
[**Windowsでパスワードをダンプするさまざまな方法**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md)を見つけてください。
#### 11.2 - 持続性
@@ -128,9 +128,9 @@ TODO: WindowsおよびLinuxの持続性投稿を完成させる
### 12 - ピボッティング
-**収集した資格情報**を使用して他のマシンにアクセスできるか、または**新しいホストを発見してスキャンする**必要があるかもしれません(ペンテスティング手法を再度開始)。\
+**収集した資格情報**を使用して他のマシンにアクセスできるか、または**新しいホストを発見してスキャンする**必要があるかもしれません(ペンテスト手法を再度開始)。\
この場合、トンネリングが必要になるかもしれません。ここに[**トンネリングに関する投稿があります**](tunneling-and-port-forwarding.md)。\
-また、[Active Directoryペンテスティング手法](../windows-hardening/active-directory-methodology/)に関する投稿も確認するべきです。そこでは、横移動、特権昇格、資格情報のダンプに関するクールなトリックが見つかります。\
+また、[Active Directoryペンテスト手法](../windows-hardening/active-directory-methodology/)に関する投稿も確認するべきです。そこでは、横移動、特権昇格、資格情報のダンプに関するクールなトリックが見つかります。\
[**NTLM**](../windows-hardening/ntlm/)に関するページも確認してください。Windows環境でピボッティングするのに非常に役立つかもしれません。
### さらに
@@ -151,9 +151,9 @@ TODO: WindowsおよびLinuxの持続性投稿を完成させる
* [**CBC-MAC**](../crypto-and-stego/cipher-block-chaining-cbc-mac-priv.md)
* [**パディングオラクル**](../crypto-and-stego/padding-oracle-priv.md)
-
+
-**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
+**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!**(_流暢なポーランド語の読み書きが必要_)。
{% embed url="https://www.stmcyber.com/careers" %}
@@ -167,7 +167,7 @@ GCPハッキングを学び、実践する:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
@@ -10,14 +10,14 @@ GCPハッキングを学び、実践する:
+
-**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用中です!** (_流暢なポーランド語の読み書きが必要です_)。
+**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
{% embed url="https://www.stmcyber.com/careers" %}
@@ -26,11 +26,11 @@ GCPハッキングを学び、実践する: apiVersion: v1
kind: Pod
@@ -45,17 +45,17 @@ securityContext:
command: ["sh", "-c", "while true; do sleep 1000; done"]
-しかし、ファイルシステムがroとしてマウントされていても、**`/dev/shm`**は書き込み可能であるため、ディスクに何も書き込めないというのは偽りです。ただし、このフォルダは**実行不可保護**でマウントされるため、ここにバイナリをダウンロードしても**実行することはできません**。
+しかし、ファイルシステムがroとしてマウントされていても、**`/dev/shm`**は書き込み可能であるため、ディスクに何も書き込めないというのは偽りです。ただし、このフォルダは**no-exec保護**でマウントされるため、ここにバイナリをダウンロードしても**実行することはできません**。
{% hint style="warning" %}
-レッドチームの観点から見ると、これは**システムに既に存在しないバイナリ(バックドアや`kubectl`のような列挙ツール)をダウンロードして実行することを複雑にします**。
+レッドチームの観点から見ると、これは**システムに既に存在しないバイナリをダウンロードして実行することを複雑にします**(バックドアや`kubectl`のような列挙ツールなど)。
{% endhint %}
## 最も簡単なバイパス: スクリプト
-バイナリについて言及しましたが、**インタープリタがマシン内にある限り、任意のスクリプトを実行できます**。たとえば、`sh`が存在する場合は**シェルスクリプト**、`python`がインストールされている場合は**Pythonスクリプト**です。
+バイナリについて言及したことに注意してください。インタープリタがマシン内にある限り、**任意のスクリプトを実行できます**。例えば、`sh`が存在する場合は**シェルスクリプト**、`python`がインストールされている場合は**Pythonスクリプト**です。
-ただし、これはバイナリバックドアや他のバイナリツールを実行するには十分ではありません。
+しかし、これはあなたのバイナリバックドアや他のバイナリツールを実行するには十分ではありません。
## メモリバイパス
@@ -63,21 +63,21 @@ securityContext:
### FD + execシステムコールバイパス
-マシン内に**Python**、**Perl**、または**Ruby**などの強力なスクリプトエンジンがある場合、メモリから実行するためにバイナリをダウンロードし、メモリファイルディスクリプタ(`create_memfd`システムコール)に保存できます。これはこれらの保護によって保護されないため、**`exec`システムコール**を呼び出して**実行するファイルとしてfdを指定**できます。
+マシン内に**Python**、**Perl**、または**Ruby**のような強力なスクリプトエンジンがある場合、メモリから実行するためにバイナリをダウンロードし、メモリファイルディスクリプタ(`create_memfd`システムコール)に保存できます。これはこれらの保護によって保護されないため、**`exec`システムコール**を呼び出して**実行するファイルとしてfdを指定**できます。
-これには、プロジェクト[**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec)を簡単に使用できます。バイナリを渡すと、**バイナリが圧縮され、b64エンコードされ**、`create_memfd`システムコールを呼び出して作成された**fd**で**デコードおよび解凍する**ための指示を含むスクリプトが生成されます。
+これには、プロジェクト[**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec)を簡単に使用できます。バイナリを渡すと、**バイナリが圧縮され、b64エンコードされ**、`create_memfd`システムコールを呼び出して作成された**fd**で**デコードおよび解凍する**ための指示を含むスクリプトが指定された言語で生成されます。
{% hint style="warning" %}
これは、PHPやNodeのような他のスクリプト言語では機能しません。なぜなら、スクリプトから生のシステムコールを呼び出す**デフォルトの方法がないため**、バイナリを保存するための**メモリfd**を作成するために`create_memfd`を呼び出すことができないからです。
-さらに、`/dev/shm`内のファイルで**通常のfd**を作成しても機能しません。なぜなら、**実行不可保護**が適用されるため、実行することが許可されないからです。
+さらに、`/dev/shm`にファイルを持つ**通常のfd**を作成しても機能しません。なぜなら、**no-exec保護**が適用されるため、実行することが許可されないからです。
{% endhint %}
### DDexec / EverythingExec
-[**DDexec / EverythingExec**](https://github.com/arget13/DDexec)は、プロセスの**`/proc/self/mem`**を上書きすることによって**自分のプロセスのメモリを変更する**ことを可能にする技術です。
+[**DDexec / EverythingExec**](https://github.com/arget13/DDexec)は、プロセスの**`/proc/self/mem`**を上書きすることによって**自分のプロセスのメモリを変更する**技術です。
-したがって、**プロセスによって実行されているアセンブリコードを制御することで、**シェルコードを書き込み、プロセスを「変異」させて**任意のコードを実行する**ことができます。
+したがって、プロセスによって実行されているアセンブリコードを**制御することができ**、**シェルコード**を書き込み、プロセスを「変異」させて**任意のコードを実行する**ことができます。
{% hint style="success" %}
**DDexec / EverythingExec**を使用すると、**メモリから**自分の**シェルコード**や**任意のバイナリ**を**ロードして実行**できます。
@@ -94,61 +94,61 @@ For more information about this technique check the Github or:
### MemExec
-[**Memexec**](https://github.com/arget13/memexec)は、DDexecの自然な次のステップです。これは**DDexecシェルコードのデーモン化**であり、異なるバイナリを**実行したいとき**にDDexecを再起動する必要はなく、DDexec技術を介してmemexecシェルコードを実行し、**このデーモンと通信して新しいバイナリを読み込んで実行する**ことができます。
+[**Memexec**](https://github.com/arget13/memexec) は DDexec の自然な次のステップです。これは **DDexec シェルコードのデーモン化** であり、異なるバイナリを **実行したいとき** に DDexec を再起動する必要はなく、DDexec テクニックを介して memexec シェルコードを実行し、**このデーモンと通信して新しいバイナリを読み込んで実行する** ことができます。
-**memexecを使用してPHPリバースシェルからバイナリを実行する方法の例**は[https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php)で見つけることができます。
+**memexec を使用して PHP リバースシェルからバイナリを実行する方法の例** は [https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php) で見つけることができます。
### Memdlopen
-DDexecと同様の目的を持つ[**memdlopen**](https://github.com/arget13/memdlopen)技術は、**メモリにバイナリを読み込む**ための**簡単な方法**を提供します。依存関係を持つバイナリを読み込むことも可能です。
+DDexec と同様の目的を持つ [**memdlopen**](https://github.com/arget13/memdlopen) テクニックは、**メモリにバイナリを読み込む** より簡単な方法を提供します。依存関係を持つバイナリを読み込むことも可能です。
## Distroless Bypass
### What is distroless
-Distrolessコンテナは、特定のアプリケーションやサービスを実行するために必要な**最小限のコンポーネント**(ライブラリやランタイム依存関係など)だけを含み、パッケージマネージャー、シェル、システムユーティリティなどの大きなコンポーネントは除外します。
+Distroless コンテナは、特定のアプリケーションやサービスを実行するために必要な **最小限のコンポーネント** のみを含み、ライブラリやランタイム依存関係を含みますが、パッケージマネージャー、シェル、システムユーティリティなどの大きなコンポーネントは除外されます。
-Distrolessコンテナの目的は、**不要なコンポーネントを排除することによってコンテナの攻撃面を減少させ**、悪用可能な脆弱性の数を最小限に抑えることです。
+Distroless コンテナの目的は、**不要なコンポーネントを排除することによってコンテナの攻撃面を減少させ**、悪用可能な脆弱性の数を最小限に抑えることです。
### Reverse Shell
-Distrolessコンテナでは、**通常のシェルを取得するための`sh`や`bash`**さえ見つからないかもしれません。また、`ls`、`whoami`、`id`などのバイナリも見つかりません... システムで通常実行するすべてのものです。
+Distroless コンテナでは、**通常のシェルを取得するための `sh` や `bash`** が見つからないかもしれません。また、`ls`、`whoami`、`id` などのバイナリも見つかりません... システムで通常実行するすべてのものです。
{% hint style="warning" %}
-したがって、**リバースシェル**を取得したり、通常のように**システムを列挙**したりすることは**できません**。
+したがって、**リバースシェル**を取得したり、通常のようにシステムを**列挙**したりすることはできません。
{% endhint %}
-しかし、もし侵害されたコンテナが例えばflaskウェブを実行している場合、pythonがインストールされているため、**Pythonリバースシェル**を取得できます。nodeを実行している場合はNodeリバースシェルを取得でき、ほとんどの**スクリプト言語**でも同様です。
+しかし、もし侵害されたコンテナが例えばフラスクウェブを実行している場合、Python がインストールされているため、**Python リバースシェル**を取得できます。ノードを実行している場合は、Node リバースシェルを取得でき、ほとんどの **スクリプト言語**でも同様です。
{% hint style="success" %}
スクリプト言語を使用することで、言語の機能を利用して**システムを列挙**することができます。
{% endhint %}
-もし**`read-only/no-exec`**保護がなければ、リバースシェルを悪用して**ファイルシステムにバイナリを書き込み**、**実行**することができます。
+もし **`read-only/no-exec`** 保護がなければ、リバースシェルを悪用して **ファイルシステムにバイナリを書き込み**、**実行**することができます。
{% hint style="success" %}
-ただし、この種のコンテナでは通常これらの保護が存在しますが、**以前のメモリ実行技術を使用してそれらを回避する**ことができます。
+ただし、この種のコンテナでは通常これらの保護が存在しますが、**以前のメモリ実行テクニックを使用してそれらを回避する**ことができます。
{% endhint %}
-**RCE脆弱性を悪用してスクリプト言語の**リバースシェル**を取得し、メモリからバイナリを実行する方法の**例**は[**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE)で見つけることができます。
+**RCE 脆弱性を悪用してスクリプト言語のリバースシェルを取得し、メモリからバイナリを実行する方法の例** は [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE) で見つけることができます。
-
+
**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用中です!** (_流暢なポーランド語の読み書きが必要です_)。
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %}
-AWSハッキングを学び、実践する:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-GCPハッキングを学び、実践する:[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+AWS ハッキングを学び、実践する:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCP ハッキングを学び、実践する:[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support 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を提出してハッキングトリックを共有してください。
+* 💬 [**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-code-signing.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-code-signing.md
index fe1511758..54adf2859 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-code-signing.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-code-signing.md
@@ -1,28 +1,28 @@
-# macOS Code Signing
+# macOS コード署名
{% 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ハッキングを学び、実践する:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCPハッキングを学び、実践する:[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks
+HackTricksをサポートする
-* 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.
+* [**サブスクリプションプラン**](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 %}
## 基本情報
-Mach-o バイナリには、バイナリ内の署名の **オフセット** と **サイズ** を示す **`LC_CODE_SIGNATURE`** というロードコマンドが含まれています。実際、GUIツールの MachOView を使用すると、バイナリの最後にこの情報を含む **Code Signature** というセクションを見つけることができます:
+Mach-oバイナリには、バイナリ内の署名の**オフセット**と**サイズ**を示す**`LC_CODE_SIGNATURE`**というロードコマンドが含まれています。実際、GUIツールMachOViewを使用すると、バイナリの最後にこの情報を含む**コード署名**というセクションを見つけることができます:
-
+
-Code Signature のマジックヘッダーは **`0xFADE0CC0`** です。次に、これらを含む superBlob の長さや blob の数などの情報があります。\
-この情報は、[こちらのソースコード](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/osfmk/kern/cs\_blobs.h#L276) で見つけることができます:
+コード署名のマジックヘッダーは**`0xFADE0CC0`**です。次に、これらを含むsuperBlobの長さやブロブの数などの情報があります。\
+この情報は[こちらのソースコード](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/osfmk/kern/cs_blobs.h#L276)で見つけることができます:
```c
/*
* Structure of an embedded-signature SuperBlob
@@ -118,7 +118,7 @@ __attribute__ ((aligned(1)));
## コード署名ページ
-完全なバイナリをハッシュ化することは非効率的であり、部分的にメモリにロードされている場合には無意味です。したがって、コード署名は実際にはハッシュのハッシュであり、各バイナリページが個別にハッシュ化されます。\
+フルバイナリのハッシュを計算することは非効率的であり、部分的にメモリにロードされている場合には無意味です。したがって、コード署名は実際にはハッシュのハッシュであり、各バイナリページが個別にハッシュ化されます。\
実際、前の**コードディレクトリ**コードでは、**ページサイズが指定されている**のがわかります。さらに、バイナリのサイズがページのサイズの倍数でない場合、フィールド**CodeLimit**は署名の終わりがどこにあるかを指定します。
```bash
# Get all hashes of /bin/ps
@@ -157,7 +157,7 @@ openssl sha256 /tmp/*.page.*
```
## Entitlements Blob
-アプリケーションにはすべての権限が定義された**権限ブロブ**が含まれている場合があります。さらに、一部のiOSバイナリは、特別なスロット-7に特定の権限を持っている場合があります(-5権限特別スロットの代わりに)。
+アプリケーションにはすべての権限が定義された**エンタイトルメントブロブ**が含まれている場合があります。さらに、一部のiOSバイナリは、特別なスロット-7に特定の権限を持っている場合があります(-5エンタイトルメント特別スロットの代わりに)。
## Special Slots
@@ -169,9 +169,9 @@ MacOSアプリケーションは、バイナリ内で実行するために必要
* 要件のハッシュ
* リソースディレクトリのハッシュ(バンドル内の`_CodeSignature/CodeResources`ファイルのハッシュ)。
* アプリケーション固有(未使用)
-* 権限のハッシュ
+* エンタイトルメントのハッシュ
* DMGコード署名のみ
-* DER権限
+* DERエンタイトルメント
## Code Signing Flags
@@ -224,9 +224,9 @@ Note that the function [**exec\_mach\_imgact**](https://github.com/apple-oss-dis
## コード署名要件
-各アプリケーションは、実行可能であるために満たさなければならない **要件** をいくつか **保持** しています。もし **アプリケーションに満たされていない要件が含まれている場合**、それは実行されません(おそらく変更されているためです)。
+各アプリケーションは、実行可能であるために満たさなければならない **要件** をいくつか **持っています**。もし **アプリケーションに満たされていない要件が含まれている場合**、それは実行されません(おそらく変更されているためです)。
-バイナリの要件は **特別な文法** を使用し、**式** のストリームであり、`0xfade0c00` をマジックとして使用してブロブとしてエンコードされ、その **ハッシュは特別なコードスロットに保存されます**。
+バイナリの要件は、**特別な文法** を使用し、**式** のストリームとして表現され、`0xfade0c00` をマジックとして使用してブロブとしてエンコードされます。その **ハッシュは特別なコードスロットに保存されます**。
バイナリの要件は、次のコマンドを実行することで確認できます:
@@ -285,8 +285,8 @@ od -A x -t x1 /tmp/output.csreq
#### **コード要件の変更**
* **`SecCodeSignerCreate`**: コード署名操作を実行するための`SecCodeSignerRef`オブジェクトを作成します。
-* **`SecCodeSignerSetRequirement`**: 署名中に適用するための新しい要件をコード署名者に設定します。
-* **`SecCodeSignerAddSignature`**: 指定された署名者で署名されるコードに署名を追加します。
+* **`SecCodeSignerSetRequirement`**: 署名中に適用するための新しい要件をコードサイナーに設定します。
+* **`SecCodeSignerAddSignature`**: 指定されたサイナーで署名されるコードに署名を追加します。
#### **要件によるコードの検証**
@@ -312,7 +312,7 @@ od -A x -t x1 /tmp/output.csreq
## `cs_blobs` & `cs_blob`
-[**cs\_blob**](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/bsd/sys/ubc_internal.h#L106)構造体は、実行中のプロセスの権限に関する情報を含んでいます。`csb_platform_binary`は、アプリケーションがプラットフォームバイナリであるかどうかも通知します(これは、これらのプロセスのタスクポートへのSEND権限を保護するためのセキュリティメカニズムを適用するために、OSによって異なるタイミングで確認されます)。
+[**cs\_blob**](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/bsd/sys/ubc_internal.h#L106)構造体は、実行中のプロセスの権限に関する情報を含んでいます。`csb_platform_binary`は、アプリケーションがプラットフォームバイナリであるかどうかも通知します(これは、これらのプロセスのタスクポートへのSEND権を保護するためのセキュリティメカニズムを適用するために、OSによって異なるタイミングで確認されます)。
```c
struct cs_blob {
struct cs_blob *csb_next;
@@ -384,8 +384,8 @@ GCPハッキングを学び、実践する:
{% endhint %}
-
+
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_流暢なポーランド語の読み書きが必要_).
@@ -23,7 +23,7 @@ If you are interested in **hacking career** and hack the unhackable - **we are h
## 基本情報
-**SNMP - シンプルネットワーク管理プロトコル**は、ネットワーク内のさまざまなデバイス(ルーター、スイッチ、プリンター、IoTなど)を監視するために使用されるプロトコルです。
+**SNMP - シンプルネットワーク管理プロトコル** は、ネットワーク内のさまざまなデバイス(ルーター、スイッチ、プリンター、IoTなど)を監視するために使用されるプロトコルです。
```
PORT STATE SERVICE REASON VERSION
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
@@ -34,8 +34,8 @@ SNMPは、**162/UDP**ポートを**トラップ**に使用します。これら
### MIB
-SNMPアクセスが異なるメーカーや異なるクライアント-サーバーの組み合わせで機能することを保証するために、**管理情報ベース(MIB)**が作成されました。MIBは、**デバイス情報を保存するための独立したフォーマット**です。MIBは、デバイスのすべてのクエリ可能な**SNMPオブジェクト**が**標準化された**ツリー階層にリストされている**テキスト**ファイルです。少なくとも1つの`オブジェクト識別子(OID)`が含まれており、必要な**一意のアドレス**と**名前**に加えて、タイプ、アクセス権、およびそれぞれのオブジェクトの説明に関する情報も提供します。\
-MIBファイルは、`抽象構文表記法1(ASN.1)`に基づくASCIIテキストフォーマットで記述されています。**MIBはデータを含まない**が、**どこでどの情報を見つけるか**、それがどのように見えるか、特定のOIDに対して返される値、または使用されるデータ型について説明します。
+SNMPアクセスが異なるメーカーやクライアント-サーバーの組み合わせで機能することを保証するために、**管理情報ベース(MIB)**が作成されました。MIBは、**デバイス情報を保存するための独立したフォーマット**です。MIBは、デバイスのすべてのクエリ可能な**SNMPオブジェクト**が**標準化された**ツリー階層にリストされている**テキスト**ファイルです。少なくとも1つの`オブジェクト識別子(OID)`が含まれており、必要な**一意のアドレス**と**名前**に加えて、タイプ、アクセス権、およびそれぞれのオブジェクトの説明に関する情報も提供します。\
+MIBファイルは、`抽象構文記法1(ASN.1)`に基づくASCIIテキストフォーマットで記述されています。**MIBはデータを含まない**が、**どこでどの情報を見つけるか**、それがどのように見えるか、特定のOIDに対して返される値、または使用されるデータ型について説明します。
### OIDs
@@ -43,12 +43,12 @@ MIBファイルは、`抽象構文表記法1(ASN.1)`に基づくASCIIテキ
MIBオブジェクトID、またはOIDの最上位レベルは、さまざまな標準設定機関に割り当てられています。これらの上位レベル内で、グローバルな管理慣行と標準の枠組みが確立されます。
-さらに、ベンダーはプライベートブランチを設立する自由が与えられています。これらのブランチ内では、**自社の製品ラインに関連する管理オブジェクトを含める自主性**があります。このシステムは、異なるベンダーや標準間でのさまざまなオブジェクトを識別し管理するための構造化された方法を確保します。
+さらに、ベンダーはプライベートブランチを設立する自由が与えられています。これらのブランチ内では、**自社の製品ラインに関連する管理対象オブジェクトを含める自主性**があります。このシステムは、異なるベンダーや標準間でのさまざまなオブジェクトを識別し管理するための構造化された方法を確保します。
![](<../../.gitbook/assets/SNMP\_OID\_MIB\_Tree (1).png>)
ここから**OIDツリーをナビゲート**できます: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) または**OIDの意味を確認**できます(例えば`1.3.6.1.2.1.1`): [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\
-**よく知られたOID**には、MIB-2で定義されたシンプルネットワーク管理プロトコル(SNMP)変数を参照する[1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1)内のものがあります。また、このOIDから保留中の**OID**を使用して、興味深いホストデータ(システムデータ、ネットワークデータ、プロセスデータなど)を取得できます。
+**よく知られたOID**には、MIB-2で定義されたシンプルネットワーク管理プロトコル(SNMP)変数を参照する[1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1)内のものがあります。そして、このOIDから保留中の**OID**を使用して、興味深いホストデータ(システムデータ、ネットワークデータ、プロセスデータなど)を取得できます。
### **OIDの例**
@@ -56,16 +56,16 @@ MIBオブジェクトID、またはOIDの最上位レベルは、さまざまな
**`1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7`**
-このアドレスの内訳は以下の通りです。
+このアドレスの内訳は次のとおりです。
* 1 – これはISOと呼ばれ、これがOIDであることを示します。すべてのOIDが「1」で始まる理由です。
* 3 – これはORGと呼ばれ、デバイスを製造した組織を指定するために使用されます。
* 6 – これはdodまたは国防総省で、最初にインターネットを確立した組織です。
* 1 – これはインターネットの値で、すべての通信がインターネットを通じて行われることを示します。
-* 4 – この値は、このデバイスが政府機関ではなく民間組織によって製造されたことを示します。
+* 4 – この値は、このデバイスが政府ではなく民間組織によって製造されたことを示します。
* 1 – この値は、デバイスが企業またはビジネスエンティティによって製造されたことを示します。
-これらの最初の6つの値はすべてのデバイスで同じ傾向があり、基本的な情報を提供します。この数列は、デバイスが政府によって製造されていない限り、すべてのOIDで同じになります。
+これらの最初の6つの値はすべてのデバイスで同じ傾向があり、基本的な情報を提供します。この数のシーケンスは、デバイスが政府によって製造されていない限り、すべてのOIDで同じになります。
次の数のセットに進みます。
@@ -93,7 +93,7 @@ SNMPには2つの重要なバージョンがあります:
### コミュニティ文字列
前述のように、**MIBに保存された情報にアクセスするには、バージョン1および2/2cではコミュニティ文字列を知っている必要があり、バージョン3では資格情報が必要です。**\
-**コミュニティ文字列には2種類あります**:
+**2種類のコミュニティ文字列**があります:
* **`public`** 主に**読み取り専用**機能
* **`private`** **読み書き**一般
@@ -124,7 +124,7 @@ download-mibs
# Finally comment the line saying "mibs :" in /etc/snmp/snmp.conf
sudo vi /etc/snmp/snmp.conf
```
-有効なコミュニティストリングを知っていれば、**SNMPWalk**または**SNMP-Check**を使用してデータにアクセスできます:
+有効なコミュニティ文字列がわかっていれば、**SNMPWalk**または**SNMP-Check**を使用してデータにアクセスできます:
```bash
snmpbulkwalk -c [COMM_STRING] -v [VERSION] [IP] . #Don't forget the final dot
snmpbulkwalk -c public -v2c 10.10.11.136 .
@@ -140,7 +140,7 @@ nmap --script "snmp* and not snmp-brute"
braa @:.1.3.6.* #Bruteforce specific OID
```
-extended queries (download-mibs)のおかげで、次のコマンドを使用してシステムについてさらに多くの情報を列挙することが可能です:
+extended queries(download-mibs)のおかげで、次のコマンドを使用してシステムについてさらに多くの情報を列挙することが可能です:
```bash
snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull
```
@@ -203,7 +203,7 @@ braa ignite123@192.168.1.125:.1.3.6.*
```
これは手動で処理できない多くのMBの情報を抽出できます。
-では、最も興味深い情報を見てみましょう([https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/](https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/)から):
+では、最も興味深い情報を見てみましょう([https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/](https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/)):
### **デバイス**
@@ -219,7 +219,7 @@ grep -i "trap" *.snmp
```
### **ユーザー名/パスワード**
-MIBテーブルに保存されたログは、**ログオン試行の失敗**を調査され、ユーザー名として入力されたパスワードが偶然含まれている可能性があります。_fail_、_failed_、または _login_ などのキーワードが、貴重なデータを見つけるために検索されます:
+MIBテーブルに保存されたログは、**ログオン試行の失敗**を調べるために検査され、これにはユーザー名として入力されたパスワードが偶然含まれることがあります。_fail_、_failed_、または _login_ などのキーワードが、貴重なデータを見つけるために検索されます:
```bash
grep -i "login\|fail" *.snmp
```
@@ -243,7 +243,7 @@ ACLが特定のIPのみがSNMPサービスをクエリできるように制限
* snmpd.conf
* snmp-config.xml
-
+
**ハッキングキャリア**に興味があり、ハッキング不可能なものをハックしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
@@ -294,8 +294,8 @@ GCPハッキングを学び、実践する:
{% endhint %}
-
+
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_流暢なポーランド語の読み書きが必要_).
@@ -23,9 +23,9 @@ If you are interested in **hacking career** and hack the unhackable - **we are h
## Pentesting Cisco Networks
-**SNMP** は、一般的なメッセージ用のポート 161/UDP とトラップメッセージ用のポート 162/UDP で UDP 上で機能します。このプロトコルはコミュニティ文字列に依存しており、SNMP エージェントとサーバー間の通信を可能にするパスワードとして機能します。これらの文字列はアクセスレベルを決定するため、特に **読み取り専用 (RO) または読み書き (RW) 権限** を決定する上で重要です。ペンテスターにとって注目すべき攻撃ベクトルは、ネットワークデバイスに侵入することを目的とした **コミュニティ文字列のブルートフォース攻撃** です。
+**SNMP** は、一般的なメッセージ用のポート 161/UDP とトラップメッセージ用のポート 162/UDP で UDP 上で機能します。このプロトコルはコミュニティ文字列に依存しており、SNMP エージェントとサーバー間の通信を可能にするパスワードとして機能します。これらの文字列はアクセスレベルを決定するため、特に **読み取り専用 (RO) または読み書き (RW) 権限** を決定するために重要です。ペンテスターにとって注目すべき攻撃ベクトルは、ネットワークデバイスに侵入することを目的とした **コミュニティ文字列のブルートフォース攻撃** です。
-そのようなブルートフォース攻撃を実行するための実用的なツールは [**onesixtyone**](https://github.com/trailofbits/onesixtyone) であり、潜在的なコミュニティ文字列のリストとターゲットの IP アドレスが必要です。
+そのようなブルートフォース攻撃を実行するための実用的なツールは [**onesixtyone**](https://github.com/trailofbits/onesixtyone) であり、潜在的なコミュニティ文字列のリストとターゲットの IP アドレスが必要です:
```bash
onesixtyone -c communitystrings -i targets
```
@@ -38,7 +38,7 @@ Metasploitフレームワークには、デバイスの設定を抽出するた
* ターゲットデバイスのIP (**RHOSTS**)
* 設定ファイルの保存先パス (**OUTPUTDIR**)
-設定が完了すると、このモジュールはデバイスの設定を指定したフォルダに直接ダウンロードすることができます。
+設定が完了すると、このモジュールはデバイスの設定を指定したフォルダーに直接ダウンロードすることができます。
#### `snmp_enum`
@@ -48,13 +48,13 @@ msf6 auxiliary(scanner/snmp/snmp_enum) > set COMMUNITY public
msf6 auxiliary(scanner/snmp/snmp_enum) > set RHOSTS 10.10.100.10
msf6 auxiliary(scanner/snmp/snmp_enum) > exploit
```
-## References
+## 参考文献
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
-
+
-もしあなたが**ハッキングキャリア**に興味があり、アンハッカブルなものをハックしたいなら - **私たちは採用しています!**(_流暢なポーランド語の読み書きが必要_)。
+**ハッキングキャリア**に興味があり、アンハッカブルをハックしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
{% embed url="https://www.stmcyber.com/careers" %}
@@ -66,7 +66,7 @@ GCPハッキングを学び、実践する:
{% endhint %}
-
+
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_流暢なポーランド語の読み書きが必要_).
@@ -23,7 +23,7 @@ If you are interested in **hacking career** and hack the unhackable - **we are h
## 基本情報
-**Virtual Network Computing (VNC)** は、**Remote Frame Buffer (RFB)** プロトコルを利用して、別のコンピュータとのリモートコントロールとコラボレーションを可能にする堅牢なグラフィカルデスクトップ共有システムです。VNCを使用すると、ユーザーはキーボードとマウスのイベントを双方向に送信することで、リモートコンピュータとシームレスに対話できます。これにより、リアルタイムでのアクセスが可能になり、ネットワークを介した効率的なリモート支援やコラボレーションが促進されます。
+**Virtual Network Computing (VNC)** は、**Remote Frame Buffer (RFB)** プロトコルを利用して、別のコンピュータとのリモート制御とコラボレーションを可能にする堅牢なグラフィカルデスクトップ共有システムです。VNCを使用すると、ユーザーはキーボードとマウスのイベントを双方向に送信することで、リモートコンピュータとシームレスに対話できます。これにより、リアルタイムでのアクセスが可能になり、ネットワークを介した効率的なリモート支援やコラボレーションが促進されます。
VNCは通常、ポート**5800または5801または5900または5901**を使用します。
```
@@ -45,12 +45,12 @@ vncviewer [-passwd passwd.txt] ::5901
デフォルトの**パスワードは保存されています**: \~/.vnc/passwd
-VNCパスワードを持っていて、それが暗号化されているように見える場合(数バイト、暗号化されたパスワードのように見える場合)、それはおそらく3desで暗号化されています。平文のパスワードは[https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd)を使用して取得できます。
+VNCパスワードを持っていて、それが暗号化されているように見える場合(数バイト、暗号化されたパスワードのように)、おそらく3desで暗号化されています。クリアテキストのパスワードは[https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd)を使用して取得できます。
```bash
make
vncpwd
```
-You can do this because the password used inside 3des to encrypt the plain-text VNC passwords was reversed years ago.\
+この操作が可能なのは、3des内で平文VNCパスワードを暗号化するために使用されたパスワードが数年前に逆転されたからです。\
**Windows**の場合、このツールも使用できます: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\
アクセスを容易にするために、ここにもツールを保存します:
@@ -60,9 +60,9 @@ You can do this because the password used inside 3des to encrypt the plain-text
* `port:5900 RFB`
-
+
-**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_).
+**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
{% embed url="https://www.stmcyber.com/careers" %}
@@ -74,9 +74,9 @@ GCPハッキングを学び、実践する: **`レポート`** > **`利用可能な更新`**に移動します。
-3. **`参照`**をクリックし、ダウンロードしたディレクトリからファイルを選択し、次に**`インストール`**をクリックします。
-4. モジュールがインストールされたら、**`コンテンツ`**をクリックし、Drupal 7の例と同様に**新しい基本ページを作成**します。再度、**`テキストフォーマット`**のドロップダウンから**`PHPコード`を選択**することを忘れないでください。
+3. **`参照`**をクリックし、ダウンロードしたディレクトリからファイルを選択して、次に**`インストール`**をクリックします。
+4. モジュールがインストールされたら、**`コンテンツ`**をクリックし、Drupal 7の例と同様に**新しい基本ページを作成**します。再度、**`テキストフォーマット`ドロップダウンから`PHPコード`を選択**することを忘れないでください。
## バックドア付きモジュール
@@ -55,7 +55,7 @@ curl http://drupal-site.local/node/3
現在のバージョンでは、デフォルトのインストール後にウェブにアクセスするだけでプラグインをインストールすることはできなくなりました。
{% endhint %}
-バックドア付きモジュールは、**既存のモジュールにシェルを追加することによって作成できます**。モジュールはdrupal.orgウェブサイトで見つけることができます。[CAPTCHA](https://www.drupal.org/project/captcha)のようなモジュールを選びましょう。下にスクロールして、tar.gzの[アーカイブ](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz)のリンクをコピーします。
+バックドア付きモジュールは、**既存のモジュールにシェルを追加することによって作成できます**。モジュールはdrupal.orgウェブサイトで見つけることができます。例えば、[CAPTCHA](https://www.drupal.org/project/captcha)のようなモジュールを選びましょう。下にスクロールして、tar.gz [アーカイブ](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz)のリンクをコピーします。
* アーカイブをダウンロードし、その内容を抽出します。
```
@@ -80,16 +80,16 @@ RewriteBase /
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
```
-* ウェブサイトに**管理者アクセス**があると仮定して、サイドバーの**`管理`**をクリックし、次に**`拡張`**をクリックします。次に、**`新しいモジュールをインストール`**ボタンをクリックすると、インストールページに移動します。例えば、`http://drupal-site.local/admin/modules/install` バックドア付きのCaptchaアーカイブを参照し、**`インストール`**をクリックします。
+* ウェブサイトに**管理者アクセス**があると仮定して、サイドバーの**`管理`**をクリックし、次に**`拡張`**をクリックします。次に、**`新しいモジュールをインストール`**ボタンをクリックすると、インストールページ(例: `http://drupal-site.local/admin/modules/install`)に移動します。バックドア付きのCaptchaアーカイブを参照し、**`インストール`**をクリックします。
* インストールが成功したら、**`/modules/captcha/shell.php`**に移動してコマンドを実行します。
## 設定同期によるDrupalのバックドア
**投稿者** [**Coiffeur0x90**](https://twitter.com/Coiffeur0x90)
-### パート1 (_メディア_ と _メディアライブラリ_ の有効化)
+### パート1(_メディア_と_メディアライブラリ_の有効化)
-_拡張_ メニュー (/admin/modules) では、すでにインストールされていると思われるプラグインを有効化できます。デフォルトでは、プラグイン _メディア_ と _メディアライブラリ_ は有効化されていないようなので、有効化しましょう。
+_拡張_メニュー(/admin/modules)では、すでにインストールされていると思われるプラグインを有効化できます。デフォルトでは、プラグイン_メディア_と_メディアライブラリ_は有効化されていないようなので、有効化しましょう。
有効化前:
@@ -97,20 +97,20 @@ _拡張_ メニュー (/admin/modules) では、すでにインストールさ
有効化後:
-
+
-### パート2 (_設定同期_ 機能の活用)
+### パート2(_設定同期_機能の活用)
-_設定同期_ 機能を利用して、Drupalの設定エントリをダンプ(エクスポート)し、アップロード(インポート)します:
+_設定同期_機能を活用して、Drupalの設定エントリをダンプ(エクスポート)およびアップロード(インポート)します:
* /admin/config/development/configuration/single/export
* /admin/config/development/configuration/single/import
**Patch system.file.yml**
-最初のエントリ `allow_insecure_uploads` をパッチすることから始めましょう:
+最初のエントリ`allow_insecure_uploads`をパッチすることから始めましょう:
ファイル: system.file.yml
```
@@ -138,11 +138,11 @@ allow_insecure_uploads: true
```
-**パッチ field.field.media.document.field\_media\_document.yml**
+**Patch field.field.media.document.field\_media\_document.yml**
次に、2番目のエントリ `file_extensions` を以下のようにパッチします:
-ファイル: field.field.media.document.field\_media\_document.yml
+File: field.field.media.document.field\_media\_document.yml
```
...
@@ -170,7 +170,7 @@ file_extensions: 'htaccess txt rtf doc docx ppt pptx xls xlsx pdf odf odg odp od
-### パート3(機能 _Add Document_ の活用)
+### パート3(機能 _ドキュメントの追加_ を活用する)
最後のステップは最も簡単で、2つのサブステップに分かれています。最初は、Apacheディレクティブを活用し、.txtファイルがPHPエンジンによって解釈されるようにするために、.htaccess形式のファイルをアップロードします。2つ目は、ペイロードを含む.txtファイルをアップロードすることです。
@@ -192,17 +192,17 @@ php_flag engine on
php_flag engine on
```
-なぜこのトリックはクールなのか?
+なぜこのトリックがクールなのか?
WebサーバーにWebshell(LICENSE.txtと呼ぶ)をドロップすると、`$_COOKIE`を介してコマンドを送信でき、Webサーバーログにはテキストファイルへの正当なGETリクエストとして表示されます。
なぜWebshellをLICENSE.txtと名付けるのか?
-単純に、例えば[core/LICENSE.txt](https://github.com/drupal/drupal/blob/11.x/core/LICENSE.txt)のようなファイルを取ると(これはDrupalコアにすでに存在します)、339行でサイズが17.6 KBのファイルがあり、真ん中に小さなPHPコードのスニペットを追加するのに最適です(ファイルが十分に大きいため)。
+単純に、例えば[core/LICENSE.txt](https://github.com/drupal/drupal/blob/11.x/core/LICENSE.txt)のようなファイルを取ると(これはDrupalコアにすでに存在します)、339行で17.6 KBのサイズのファイルがあり、真ん中に小さなPHPコードのスニペットを追加するのに最適です(ファイルが十分に大きいため)。
-ファイル: 修正されたLICENSE.txt
+ファイル: パッチを当てたLICENSE.txt
```txt
...
@@ -253,7 +253,7 @@ programs whose distribution conditions are different, write to the author
### Part 4 (interaction with the Webshell)
-最後の部分は、Webshell とのインタラクションです。
+最後の部分は、Webshell とのインタラクションで構成されています。
以下のスクリーンショットに示されているように、Webshell に期待されるクッキーが定義されていない場合、Web ブラウザを介してファイルを参照すると、次の結果が得られます。
@@ -263,7 +263,7 @@ programs whose distribution conditions are different, write to the author
-そして、ログに見ることができるように、要求されたのはテキストファイルだけのようです。
+ログに表示されているように、要求されたのはテキストファイルだけのようです。
diff --git a/network-services-pentesting/pentesting-web/jira.md b/network-services-pentesting/pentesting-web/jira.md
index 96685fbe7..ae7bfcca8 100644
--- a/network-services-pentesting/pentesting-web/jira.md
+++ b/network-services-pentesting/pentesting-web/jira.md
@@ -15,17 +15,17 @@ Learn & practice GCP Hacking:
{% endhint %}
-
+
-If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_流暢なポーランド語の読み書きが必要_).
+もしあなたが**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたいなら - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
{% embed url="https://www.stmcyber.com/careers" %}
-## Check Privileges
+## 権限の確認
-Jiraでは、**権限は**認証されたユーザーでも認証されていないユーザーでも、エンドポイント`/rest/api/2/mypermissions`または`/rest/api/3/mypermissions`を通じて確認できます。これらのエンドポイントは、ユーザーの現在の権限を明らかにします。**非認証ユーザーが権限を持つ**場合、これは**セキュリティの脆弱性**を示し、**バウンティ**の対象となる可能性があります。同様に、**認証されたユーザーに対する予期しない権限**も**脆弱性**を強調します。
+Jiraでは、**権限は**認証されたユーザーであれ認証されていないユーザーであれ、エンドポイント`/rest/api/2/mypermissions`または`/rest/api/3/mypermissions`を通じて確認できます。これらのエンドポイントは、ユーザーの現在の権限を明らかにします。**非認証ユーザーが権限を持つ**場合、これは**セキュリティの脆弱性**を示し、**バウンティ**の対象となる可能性があります。同様に、**認証されたユーザーに対する予期しない権限**も**脆弱性**を強調します。
-重要な**更新**が**2019年2月1日**に行われ、'mypermissions'エンドポイントに**'permission'パラメータ**を含めることが要求されました。この要件は、照会される権限を指定することにより**セキュリティを強化**することを目的としています: [ここで確認](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter)
+重要な**更新**が**2019年2月1日**に行われ、'mypermissions'エンドポイントに**'permission'パラメータ**を含めることが求められました。この要件は、照会される権限を指定することによって**セキュリティを強化**することを目的としています:[ここで確認](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter)
* ADD\_COMMENTS
* ADMINISTER
@@ -69,7 +69,7 @@ Jiraでは、**権限は**認証されたユーザーでも認証されていな
* VIEW\_VOTERS\_AND\_WATCHERS
* WORK\_ON\_ISSUES
-Example: `https://your-domain.atlassian.net/rest/api/2/mypermissions?permissions=BROWSE_PROJECTS,CREATE_ISSUES,ADMINISTER_PROJECTS`
+例: `https://your-domain.atlassian.net/rest/api/2/mypermissions?permissions=BROWSE_PROJECTS,CREATE_ISSUES,ADMINISTER_PROJECTS`
```bash
#Check non-authenticated privileges
curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"havePermission": true'
@@ -129,7 +129,7 @@ XSSが見つかった場合、[**このgithubリポジトリ**](https://github.c
* **リバースシェル**:またはリバースシェルを取得します。
* **DOMプロキシング**:Confluenceがプライベートネットワーク内にある場合、アクセス権を持つユーザーのブラウザを通じて接続を確立し、例えばサーバーコマンドを実行することが可能です。
-
+
**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!**(_流暢なポーランド語の読み書きが必要_)。
@@ -145,7 +145,7 @@ GCPハッキングを学び、実践する:HackTricksをサポートする
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
-* **参加する** 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に、または**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
+* **参加する** 💬 [**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 %}
-
+
**ハッキングキャリア**に興味があり、ハッキング不可能なものをハッキングしたい方 - **私たちは採用しています!** (_流暢なポーランド語の読み書きが必要です_)。
@@ -62,15 +62,15 @@ GCPハッキングを学び、実践する:AAA.php.png
```
-### コンテンツタイプ、マジックナンバー、圧縮&リサイズのバイパス
+### Content-Type、マジックナンバー、圧縮&リサイズのバイパス
* **Content-Type**チェックをバイパスするには、**Content-Type** **ヘッダー**の**値**を次のように設定します:_image/png_ , _text/plain , application/octet-stream_
1. Content-Type **ワードリスト**:[https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt)
@@ -86,30 +86,30 @@ AAA<--SNIP 232 A-->AAA.php.png
`exiftool -Comment="' >> img.png`
-* **圧縮が画像に追加されている場合**、たとえば、[PHP-GD](https://www.php.net/manual/fr/book.image.php)のような標準のPHPライブラリを使用している場合、前述の技術は役に立ちません。ただし、**PLTEチャンク**[**ここで定義された技術**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html)を使用して、圧縮に耐えるテキストを挿入できます。
+* 画像に**圧縮**が追加されている場合、たとえば、[PHP-GD](https://www.php.net/manual/fr/book.image.php)のような標準のPHPライブラリを使用している場合、前述の技術は役に立ちません。しかし、**PLTEチャンク**[**ここで定義された技術**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html)を使用して、圧縮に耐えるテキストを挿入できます。
* [**コードのあるGitHub**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_plte\_png.php)
-* ウェブページは、たとえばPHP-GD関数`imagecopyresized`または`imagecopyresampled`を使用して**画像をリサイズ**することもできます。ただし、**IDATチャンク**[**ここで定義された技術**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html)を使用して、圧縮に耐えるテキストを挿入できます。
+* ウェブページが画像を**リサイズ**している場合、たとえば、PHP-GD関数`imagecopyresized`または`imagecopyresampled`を使用している場合、前述の技術は役に立ちません。しかし、**IDATチャンク**[**ここで定義された技術**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html)を使用して、圧縮に耐えるテキストを挿入できます。
* [**コードのあるGitHub**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_idat\_png.php)
-* 画像のリサイズに耐えるペイロードを作成するための別の技術として、PHP-GD関数`thumbnailImage`を使用します。ただし、**tEXtチャンク**[**ここで定義された技術**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html)を使用して、圧縮に耐えるテキストを挿入できます。
+* 画像のリサイズに耐えるペイロードを作成する別の技術として、PHP-GD関数`thumbnailImage`を使用します。しかし、**tEXtチャンク**[**ここで定義された技術**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html)を使用して、圧縮に耐えるテキストを挿入できます。
* [**コードのあるGitHub**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_tEXt\_png.php)
-### その他のチェックするトリック
+### その他のチェックすべきトリック
-* アップロード済みのファイルの**名前を変更**する脆弱性を見つけます(拡張子を変更するため)。
+* すでにアップロードされたファイルの**名前を変更**する脆弱性を見つけます(拡張子を変更するため)。
* **ローカルファイルインクルージョン**の脆弱性を見つけてバックドアを実行します。
* **情報漏洩の可能性**:
-1. **同じファイル**を**同時に**何度もアップロードします。
+1. **同じ名前**の**同じファイル**を**複数回**(および**同時に**)アップロードします。
2. **既存のファイル**または**フォルダ**の**名前**でファイルをアップロードします。
-3. **「.」、「..」、または「…」を名前に持つファイル**をアップロードします。たとえば、Apacheの**Windows**では、アプリケーションがアップロードされたファイルを「/www/uploads/」ディレクトリに保存する場合、「.」というファイル名は「/www/」ディレクトリに「uploads」というファイルを作成します。
-4. **NTFS**で簡単に削除できないファイル(例:「…:.jpg」)をアップロードします。(Windows)
-5. **無効な文字**(例:`|<>*?”`)を名前に持つファイルを**Windows**にアップロードします。(Windows)
-6. **予約された**(**禁止された**)**名前**(例:CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、LPT9)を持つファイルを**Windows**にアップロードします。
+3. **“.”、 “..”、または “…”**を名前に持つファイルをアップロードします。たとえば、Apacheの**Windows**では、アプリケーションがアップロードされたファイルを「/www/uploads/」ディレクトリに保存する場合、「.」というファイル名は「/www/」ディレクトリに「uploads」というファイルを作成します。
+4. **NTFS**で簡単に削除できないファイルをアップロードします(例:**“…:.jpg”**)。(Windows)
+5. **無効な文字**(例:`|<>*?”`)を名前に持つファイルを**Windows**にアップロードします。(Windows)
+6. **予約された**(**禁止された**)**名前**(例:CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、LPT9)を使用してファイルを**Windows**にアップロードします。
* **実行可能ファイル**(.exe)または**.html**(あまり疑わしくない)をアップロードして、被害者が誤って開いたときに**コードを実行**させることも試みてください。
### 特殊な拡張子のトリック
-**PHPサーバー**にファイルをアップロードしようとしている場合は、[コードを実行するための**.htaccess**トリックを確認してください](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess)。\
-**ASPサーバー**にファイルをアップロードしようとしている場合は、[コードを実行するための**.config**トリックを確認してください](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files)。
+**PHPサーバー**にファイルをアップロードしようとしている場合、[コードを実行するための**.htaccess**トリックを確認してください](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess)。\
+**ASPサーバー**にファイルをアップロードしようとしている場合、[コードを実行するための**.config**トリックを確認してください](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files)。
`.phar`ファイルはJavaの`.jar`のようなもので、PHP用であり、**PHPファイルのように使用**できます(PHPで実行したり、スクリプト内に含めたりすることができます...)。
@@ -125,7 +125,7 @@ JettyサーバーにXMLファイルをアップロードできる場合、[**新
この脆弱性の詳細な調査については、元の研究を確認してください:[uWSGI RCEの悪用](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html)。
-リモートコマンド実行(RCE)脆弱性は、`.ini`構成ファイルを変更する能力がある場合、uWSGIサーバーで悪用できます。uWSGI構成ファイルは、"magic"変数、プレースホルダー、および演算子を組み込むために特定の構文を利用します。特に、`@(filename)`として使用される'@'演算子は、ファイルの内容を含めるために設計されています。uWSGIでサポートされているさまざまなスキームの中で、「exec」スキームは特に強力で、プロセスの標準出力からデータを読み取ることを可能にします。この機能は、`.ini`構成ファイルが処理されるときに、リモートコマンド実行や任意のファイルの書き込み/読み取りなどの悪用に利用できます。
+リモートコマンド実行(RCE)脆弱性は、`.ini`構成ファイルを変更する能力がある場合、uWSGIサーバーで悪用できます。uWSGI構成ファイルは、"magic"変数、プレースホルダー、および演算子を組み込むために特定の構文を利用します。特に、`@(filename)`として使用される'@'演算子は、ファイルの内容を含めるために設計されています。uWSGIでサポートされているさまざまなスキームの中で、"exec"スキームは特に強力で、プロセスの標準出力からデータを読み取ることを可能にします。この機能は、`.ini`構成ファイルが処理されるときに、リモートコマンド実行や任意のファイルの書き込み/読み取りなどの悪用に利用できます。
以下は、さまざまなスキームを示す有害な`uwsgi.ini`ファイルの例です:
```ini
@@ -151,8 +151,8 @@ uWSGIの設定ファイル解析の緩い性質を理解することが重要で
## **wget File Upload/SSRF Trick**
-場合によっては、サーバーが**`wget`**を使用して**ファイルをダウンロード**しており、**URL**を**指定**できることがあります。この場合、コードはダウンロードされたファイルの拡張子がホワイトリストに含まれているかを確認して、許可されたファイルのみがダウンロードされることを保証しているかもしれません。しかし、**このチェックは回避可能です。**\
-**linux**における**ファイル名**の**最大**長は**255**ですが、**wget**はファイル名を**236**文字に切り詰めます。**"A"\*232+".php"+".gif"**という名前のファイルを**ダウンロード**できます。このファイル名は**チェックを回避**します(この例では**".gif"**は**有効**な拡張子です)が、`wget`はファイルを**"A"\*232+".php"**に**名前変更**します。
+場合によっては、サーバーが**`wget`**を使用して**ファイルをダウンロード**しており、**URL**を**指定**できることがあります。この場合、コードはダウンロードされたファイルの拡張子がホワイトリスト内にあるかどうかを確認して、許可されたファイルのみがダウンロードされることを保証しているかもしれません。しかし、**このチェックは回避可能です。**\
+**linux**における**ファイル名**の**最大**長は**255**ですが、**wget**はファイル名を**236**文字に切り詰めます。**"A"\*232+".php"+".gif"**という名前のファイルを**ダウンロード**できます。このファイル名は**チェックを回避**します(この例では**".gif"**は**有効**な拡張子です)が、`wget`はファイル名を**"A"\*232+".php"**に**変更**します。
```bash
#Create file and HTTP server
echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")')
@@ -183,7 +183,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
## ファイルアップロードから他の脆弱性へ
-* **filename**を`../../../tmp/lol.png`に設定して**パス・トラバーサル**を試みる
+* **filename**を`../../../tmp/lol.png`に設定して**パストラバーサル**を試みる
* **filename**を`sleep(10)-- -.jpg`に設定すると、**SQLインジェクション**を達成できるかもしれません
* **filename**を`