0Pricing
Ethical Hacking Academy · レッスン

サービスの設定ミス

引用符のないパスと弱い権限

「サービスの設定ミス」はCoddyKit上の無料Ethical Hacking Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEthical Hacking Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ethical Hacking Academyコースには全4レッスンが含まれています。

サービスを利用した攻撃

WindowsのサービスはSYSTEMとして実行され、自動的に起動することがよくあります。権限の弱さ、乗っ取り可能なバイナリパス、書き込み可能な実行ファイルなど、サービスの設定に問題があると、SYSTEMとしてコードを実行できます。

引用符で囲まれていないサービスパス

サービスのバイナリパスにスペースが含まれ、引用符で囲まれていない場合、Windowsはスペースで区切られた各接頭辞に .exe を付けて順番に試します。C:\Program Files\My App\svc.exe の場合、まず C:\Program.exe、次に C:\Program Files\My.exe などを試します。

wmic service get Name,PathName,StartName | findstr /i /v "\""

引用符なしパスの悪用

その中間ディレクトリのいずれか(設定ミスのある環境の C:\Program Files\ など)に書き込める場合は、そこに悪意ある My.exe を配置します。SYSTEMサービスが起動すると、Windowsはそのバイナリを実行します。

icacls "C:\Program Files"
# need write access to the unquoted segment

サービス権限の不足

ユーザーがSYSTEMサービスに対してSERVICE_CHANGE_CONFIGを持っている場合、バイナリパスをペイロードに変更してサービスを再起動できます。AccessChkでサービスのACLを確認してください。

accesschk.exe -uwcqv "Users" *
# look for SERVICE_ALL_ACCESS / SERVICE_CHANGE_CONFIG

サービスのバイナリパスの変更

設定を変更する権限がある場合、binPath を自分をAdministratorsに追加するコマンドへ変更し、サービスを再起動してSYSTEMとして実行させます。

sc config vulnsvc binPath= "cmd /c net localgroup administrators user /add"
sc stop vulnsvc & sc start vulnsvc

バイナリのファイル権限不足

設定変更の権限がなくても、サービスの実行ファイル自体がユーザーによって書き込み可能なら、自分のペイロードで上書きし、サービスを再起動します(または再起動を待ちます)。

icacls "C:\Program Files\VulnApp\service.exe"
# (M) or (F) for Users/Everyone = writable

DLLハイジャック

SYSTEMサービスが検索順序内の書き込み可能なディレクトリから名前でDLLを読み込む場合、その場所に悪意あるDLLを配置します。サービスは次回の起動時にそのコードを読み込みます。これはDLLハイジャック/検索順序の悪用です。

レジストリを利用したサービスの悪用

サービスの設定は HKLM\SYSTEM\CurrentControlSet\Services に保存されています。サービスのレジストリキーへの書き込み権限があれば、ImagePathを変更できます。これもSYSTEMとして実行されるものを制御する経路です。

reg query "HKLM\SYSTEM\CurrentControlSet\Services\vulnsvc"

サービスの再起動

権限昇格では、再起動を発生させる必要があることがよくあります。サービスを直接停止・開始できない場合は、再起動を待つか、自動再起動するサービスを対象にする必要があります。自分のアカウントで再起動できるか確認してください。

sc qc vulnsvc        # query config
sc query vulnsvc      # current state

PowerUpによる検索

PowerUpのチェック(Get-ServiceUnquoted、Get-ModifiableServiceFile、Get-ModifiableService)を使うと、これらのサービス設定ミスを自動的に検出でき、悪用コマンドまで生成できます。

powershell -ep bypass
Import-Module .\PowerUp.ps1
Invoke-AllChecks

防御と倫理

防御側は、すべてのサービスパスを引用符で囲み、サービスとバイナリのACLを制限し、最小権限でサービスを実行し、サービスのレジストリキーを保護する必要があります。これらの悪用は、許可されたシステムでのみ行ってください。

クイックチェック

サービス設定ミスに関する知識を確認しましょう。

まとめ

サービスを利用した権限昇格について学びました。

  • 引用符で囲まれていないサービスパスでは、より前のパス部分にバイナリを配置できます
  • 弱いサービス権限があると、binPath の参照先を変更できます
  • 書き込み可能なサービスバイナリやDLLハイジャックも利用できます
  • PowerUpで検出と悪用を自動化できます

次はトークンの偽装です。

よくある質問

「サービスの設定ミス」レッスンは無料ですか?

はい。「サービスの設定ミス」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ethical Hacking Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ethical Hacking Academyコースには全4レッスンが含まれています。

「サービスの設定ミス」で何を学びますか?

引用符のないパスと弱い権限 ブラウザで直接実行するハンズオンコードでEthical Hacking Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ethical Hacking Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのEthical Hacking Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「サービスの設定ミス」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このEthical Hacking Academyレッスンでコードを書いて実行できますか?

はい。すべてのEthical Hacking Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Windowsの列挙
  2. サービスの設定ミス
  3. トークン偽装
  4. 認証情報の収集
← Ethical Hacking Academyに戻る