10 KiB
2049 - NFSサービスのペンテスト
htARTE(HackTricks AWS Red Team Expert) を通じて、ゼロからヒーローまでAWSハッキングを学びましょう!
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝してみたいですか?または、最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを発見し、独占的なNFTsコレクションをご覧ください
- 公式PEASS&HackTricksスウォッグを手に入れましょう
- 💬 Discordグループに参加するか、telegramグループに参加するか、またはTwitterで私をフォローする🐦@carlospolopm。
- ハッキングトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリにPRを提出してください。
基本情報
NFSは、クライアント/サーバー向けに設計されたシステムで、ユーザーがネットワーク上のファイルにローカルディレクトリ内にあるかのようにシームレスにアクセスできるようにします。
このプロトコルの注目すべき側面は、組み込みの認証または認可メカニズムの欠如です。代わりに、認可はファイルシステム情報に依存し、サーバーはクライアントが提供したユーザー情報を正確にUNIX構文に従った認可形式に変換することが求められます。
認証は一般的にUNIXのUID
/GID
識別子とグループメンバーシップに依存しています。ただし、クライアントとサーバーの間での**UID
/GID
のマッピングの不一致が発生する可能性があるため、サーバーによる追加の検証の余地はありません。そのため、この認証方法に依存するため、プロトコルは信頼されたネットワーク**内での使用に最適です。
デフォルトポート: 2049/TCP/UDP(バージョン4を除く、TCPまたはUDPのみが必要です)。
2049/tcp open nfs 2-3 (RPC #100003
バージョン
-
NFSv2: このバージョンは、さまざまなシステムとの広範な互換性で認識されており、初期の操作は主にUDPを介して行われることでその重要性を示しています。このシリーズで最も古いバージョンであり、将来の開発の基盤を築きました。
-
NFSv3: 様々な改良が施されたNFSv3は、前身を拡張し、可変ファイルサイズのサポートや改善されたエラー報告メカニズムを提供することで特徴付けられています。その進化にもかかわらず、NFSv2クライアントとの完全な後方互換性に制限がありました。
-
NFSv4: NFSシリーズにおける画期的なバージョンであるNFSv4は、ネットワーク全体でのファイル共有を近代化するために設計された機能のスイートをもたらしました。注目すべき改善点には、高いセキュリティのためのKerberosの統合、ファイアウォールを横断し、ポートマッパーの必要なしにインターネット上で動作する能力、アクセス制御リスト(ACL)のサポート、および状態ベースの操作の導入が含まれます。そのパフォーマンスの向上とステートフルプロトコルの採用により、NFSv4はネットワークファイル共有技術の重要な進歩として区別されます。
各NFSのバージョンは、ネットワーク環境の進化するニーズに対処するために開発され、セキュリティ、互換性、パフォーマンスを徐々に向上させています。
列挙
便利なnmapスクリプト
nfs-ls #List NFS exports and check permissions
nfs-showmount #Like showmount -e
nfs-statfs #Disk statistics and info from NFS share
便利なMetasploitモジュール
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
マウント
サーバーがマウント可能なフォルダを知るには、次のコマンドを使用して問い合わせます:
showmount -e <IP>
その後、次のようにマウントします:
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
あなたはバージョン2を使用するように指定すべきです。なぜなら、認証や認可が一切ないからです。
例:
mkdir /mnt/new_back
mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
権限
特定のユーザー(UIDによってのみアクセス可能なファイルまたはフォルダーを含む)が含まれているフォルダーをマウントした場合、そのUIDを持つユーザーをローカルで作成し、そのユーザーを使用してファイル/フォルダーにアクセスできます。
NSFShell
簡単にリスト、マウントし、UIDとGIDを変更してファイルにアクセスするためにnfsshellを使用できます。
設定ファイル
/etc/exports
/etc/lib/nfs/etab
危険な設定
-
読み書き権限 (
rw
): この設定はファイルシステムへの読み取りと書き込みの両方を許可します。このような広範なアクセスを許可する影響を慎重に考慮することが重要です。 -
安全でないポートの使用 (
insecure
): 有効にすると、システムは1024を超えるポートを利用できます。この範囲を超えるポートのセキュリティは厳格でない可能性があり、リスクが高まります。 -
ネストされたファイルシステムの可視性 (
nohide
): この設定により、他のファイルシステムがエクスポートされたディレクトリの下にマウントされていてもディレクトリが表示されます。各ディレクトリには適切な管理のために独自のエクスポートエントリが必要です。 -
ルートファイルの所有権 (
no_root_squash
): この設定では、ルートユーザーによって作成されたファイルは元のUID/GID 0を維持し、最小特権の原則を無視し、過剰な権限を付与する可能性があります。 -
すべてのユーザーのスクワッシュ解除 (
no_all_squash
): このオプションは、ユーザーのアイデンティティがシステム全体で保持されることを確認し、適切に処理されない場合には権限とアクセス制御の問題が発生する可能性があります。
NFSミスコンフィギュレーションを利用した特権昇格
NFS no_root_squashおよびno_all_squash特権昇格
HackTricks自動コマンド
Protocol_Name: NFS #Protocol Abbreviation if there is one.
Port_Number: 2049 #Comma separated if there is more than one.
Protocol_Description: Network File System #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for NFS
Note: |
NFS is a system designed for client/server that enables users to seamlessly access files over a network as though these files were located within a local directory.
#apt install nfs-common
showmount 10.10.10.180 ~or~showmount -e 10.10.10.180
should show you available shares (example /home)
mount -t nfs -o ver=2 10.10.10.180:/home /mnt/
cd /mnt
nano into /etc/passwd and change the uid (probably 1000 or 1001) to match the owner of the files if you are not able to get in
https://book.hacktricks.xyz/pentesting/nfs-service-pentesting
Entry_2:
Name: Nmap
Description: Nmap with NFS Scripts
Command: nmap --script=nfs-ls.nse,nfs-showmount.nse,nfs-statfs.nse -p 2049 {IP}
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝してみたいですか?または、最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを発見しましょう。独占的なNFTsコレクションです。
- 公式PEASS&HackTricksスウェグを手に入れましょう。
- 💬 Discordグループに参加するか、telegramグループに参加するか、またはTwitterで私をフォローしてください 🐦@carlospolopm。**
- **ハッキングトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリ**にPRを提出してください。