Dockerソケットを悪用して特権昇格を行う
Reading time: 6 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Dockerソケットにアクセスできる場合があり、それを使用して特権を昇格させたいことがあります。いくつかのアクションは非常に疑わしい場合があり、それを避けたいかもしれません。ここでは、特権を昇格させるのに役立つさまざまなフラグを見つけることができます。
マウントを介して
ルートとして実行されているコンテナ内で、ファイルシステムの異なる部分をマウントし、アクセスすることができます。
コンテナ内で特権を昇格させるためにマウントを悪用する**こともできます。
-v /:/host
-> ホストのファイルシステムをコンテナにマウントし、ホストのファイルシステムを読み取ることができます。- ホストにいるように感じたいがコンテナにいる場合、次のようなフラグを使用して他の防御メカニズムを無効にすることができます:
--privileged
--cap-add=ALL
--security-opt apparmor=unconfined
--security-opt seccomp=unconfined
-security-opt label:disable
--pid=host
--userns=host
--uts=host
--cgroupns=host
--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined
-> これは前の方法に似ていますが、ここではデバイスディスクをマウントしています。その後、コンテナ内でmount /dev/sda1 /mnt
を実行すると、/mntでホストのファイルシステムにアクセスできます。- ホストで
fdisk -l
を実行して、マウントする</dev/sda1>
デバイスを見つけます。 -v /tmp:/host
-> 何らかの理由でホストから特定のディレクトリのみをマウントでき、ホスト内にアクセスできる場合、それをマウントし、マウントされたディレクトリにsuid付きの**/bin/bash
**を作成して、ホストから実行してrootに昇格します。
note
/tmp
フォルダをマウントできない場合がありますが、異なる書き込み可能なフォルダをマウントできるかもしれません。書き込み可能なディレクトリを見つけるには、find / -writable -type d 2>/dev/null
を使用します。
Linuxマシンのすべてのディレクトリがsuidビットをサポートするわけではありません! suidビットをサポートするディレクトリを確認するには、mount | grep -v "nosuid"
を実行します。たとえば、通常、/dev/shm
、/run
、/proc
、/sys/fs/cgroup
、および/var/lib/lxcfs
はsuidビットをサポートしていません。
また、/etc
や設定ファイルを含む他のフォルダをマウントできる場合、コンテナ内でrootとしてそれらを変更し、ホストで悪用して特権を昇格させることができます(たとえば、/etc/shadow
を変更するなど)。
コンテナからの脱出
--privileged
-> このフラグを使用すると、コンテナからのすべての隔離を削除します。 特権コンテナからrootとして脱出する技術を確認してください。--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]
-> 特権を昇格させるために能力を悪用するには、その能力をコンテナに付与し、エクスプロイトが機能するのを妨げる可能性のある他の保護方法を無効にします。
Curl
このページでは、Dockerフラグを使用して特権を昇格させる方法について説明しました。curlコマンドを使用してこれらの方法を悪用する方法を見つけることができます。
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。