2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ハッキング入門】SUIDビットが設定されたファイルの検索方法

Last updated at Posted at 2024-04-27

はじめに

特権昇格の第一歩としてSUIDがセットされたプログラムを探すことがあります。
HackTheBoxやTryHackMeでもよく使用します。
その際のコマンドを紹介します。

結論

find / -user root -perm -4000 2>&1 | grep -v -e "Permission denied" -e "No such file or directory"を実行する。

2024/05/08追記
find / -perm -u=s -type f 2>/dev/null
上記コマンドもスッキリしていて良いかもしれない
出力結果はほぼ同じ

SUIDとは

SUIDはLinuxで使用されるパーミッションの一つです。
SUIDが設定されたプログラムは、プログラムを所有するユーザーの権限で実行されます。

例えば、パスワードを変更するpasswdコマンドは、通常はrootユーザーのみが実行できますが、SUIDが設定されている場合、通常のユーザーでもrootユーザー権限でパスワードを変更できます。

$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 63960  2月  7  2020 /usr/bin/passwd

この権限設定の不備を攻撃者は悪用し特権昇格へと繋げます。

SUIDの検索

SUIDを検索する際のコマンドを紹介します。

$ find / -user root -perm -4000 2>&1 | grep -v -e "Permission denied" -e "No such file or directory"

  • find /
    • ルートディレクトリ配下の全てを検索
  • -user root
    • root が所有するファイルを表示する
  • -perm -4000
    • SUIDビットがセットされたファイルだけを表示する
  • 2>&1
  • grep -v -e "Permission denied" -e "No such file or directory"
    • 出力からPermission deniedNo such file or directoryのワードを除去します

結果、SUIDビットがセットされたプログラムファイルのみ表示されます。

$ find / -user root -perm -4000 2>&1 | grep -v -e "Permission denied" -e "No such file or directory"
/usr/bin/fusermount3
/usr/bin/chage
/usr/bin/gpasswd
/usr/bin/newgrp
/usr/bin/mount
/usr/bin/su
/usr/bin/umount
/usr/bin/pkexec
/usr/bin/fusermount
/usr/bin/crontab
/usr/bin/sudo
/usr/bin/passwd
(省略)

find / -user root -perm -4000 -exec ls -l {} \;>/tmp/resultのように実行すると、プログラムファイルをls -l形式で出力し、結果を/tmp/resultファイルに保存します。

参考サイト

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?