このスクリプトは、Linux マシン上でローカルに実行し、基本的なシステム情報を列挙し、ワールド書き込み可能ファイル、設定ミス、平文パスワード、該当するエクスプロイトなどの一般的な権限昇格ベクトルを検索することを目的としています。
Linuxprivchecker は、直接的な操作や悪用を提供するのではなく、さらに調査すべき潜在的な領域を特定するために設計されています。これは、ユーザーがこれらの権限昇格の仕組みをさらに学び、OSCP、HTB、その他の CTF/試験で定められた自己主導型の悪用ルールに沿うことを目的としています。
可能な限り、追加情報や参考資料を追加するよう努めます。現在のメンテナーとして、新機能の追加に合わせて、私のブログ (hackersvanguard.com) で各潜在的な権限昇格領域と必要な条件についてさらに説明する記事を公開する予定です。
レガシー Python >2.6 システムで実行するには、オールインワンの Python スクリプトを取得して実行するだけです。
wget https://raw.githubusercontent.com/sleventyeleven/linuxprivchecker/master/linuxprivchecker.py
python linuxprivchecker.py -w -o linuxprivchecker.log
現在、Python 3.X 用の Linuxprivchecker は安定したベータ版と見なす必要があります。スクリプトで問題が発生する可能性があり、脆弱性を見逃す可能性があります(Issue または PR を作成してください)。
Python 3 バージョンを実行するには、pip を利用してください。
pip install linuxprivchecker
その後、runpy が利用可能であれば、コマンドラインで実行します。
linuxprivchecker -w -o linuxprivchecker.log
または、runpy がスクリプトをパスに追加できない場合
python3 -m linuxprivchecker -w -o linuxprivchecker.log
テスト対象のシステムに Python 2.6 以上または argparser がインストールされている場合、以下のオプションを利用できます。argparser のインポートが機能しない場合、すべてのチェックが実行され、ログファイルは書き込まれません。ただし、ターミナルのリダイレクションを使用してログを作成することもできます(例: python linuxprivchecker.py > linuxprivchecker.log)。
使用方法: linuxprivchecker.py [-h] [-s] [-w] [-o OUTFILE]
システム情報を収集し、可能性のあるエクスプロイトを見つけようとします
オプション引数: -h, --help このヘルプメッセージを表示して終了
-s, --searches 時間がかかる、またはリソースを多く消費する検索をスキップ
-w, --write ログファイルを書き込むかどうか。-o と併用して名前/場所を指定可能
-o OUTFILE, --outfile OUTFILE 結果を書き込むファイル(現在のユーザーに書き込み権限が必要)
警告
このスクリプトは、機能性や正確性を約束するものではなく、現状のまま提供されます。更新を維持する予定はなく、効率的に書かれたものではなく、場合によっては目的の結果が得られない可能性があります。例えば、パッケージを実行中のプロセスにリンクする関数はキーワードに基づいており、常に正確であるとは限りません。また、この関数に含まれるエクスプロイトリストは時間の経過とともに更新する必要があります。ご自由に変更・改良してください。
このスクリプトは、お好きなように修正および/または配布していただいて構いません。ただし、元の作者の帰属表示を維持し、販売や商用製品への組み込み(価値があるとは思えませんが)は行わないでください。