web-dev-qa-db-ja.com

信頼できるサービスパスに関する質問

私はコンピューティングセキュリティを研究していて、Windowsの特権昇格に関する this の記事を読んでいました。自分のWindowsマシンで次のコマンドを実行して、「信頼できるサービスパス」の問題が発生していないかどうかを確認しました。

wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """

そして、私は次の出力を得ました:

c:\wamp\bin\mysql\mysql5.6.17\bin\mysqld.exe wampmysqld

わかりません。上記のコマンドは、「スペース」が含まれるパス(たとえば、C:\wamp\bin\Some Folder\など)を見つけることを目的としていましたが、ここではドットが表示されています。だから私の質問は:ドットのあるフォルダ名は信頼できるサービスパス攻撃に対して脆弱ですか?

(つまり、mysql5.exeをmysqlフォルダーに配置すると、Windowsはmysqld.exeに到達しようとしたときにもそれを解析/実行しますか?)

ありがとう

1
ahg8tOPk78

引用符で囲まれていないサービスパスは、スペースが含まれている場合にのみ脆弱です。これは、Windowsがスペースを区切りとして処理し、残りのサービスパスを引数として渡すためです。

元のパス:

c:\wamp\bin\mysql\mysql5.6.17\bin\mysqld.exe wampmysqld

パスがこのように見える場合:

c:\wamp\bin\mysql\mysql5 6.17\bin\mysqld.exe wampmysqld

Windowsは最初に次のことを試みます。

c:\wamp\bin\mysql\mysql5.exe 6.17\bin\mysqld.exe wampmysqld

その名前のファイルがある場合は、それを実行しようとします。それ以外の場合、Windowsは、引数があるかどうかに応じて、次のスペースまたは最後まで残りのサービスパスを試行します。

c:\wamp\bin\mysql\mysql5 6.17\bin\mysqld.exe wampmysqld

正しいパスを定義するサービスパスを引用することにより、その後のすべてが引数として処理されます。

"C:\Quoted\Service\Path.exe" <argument>
1
user3316995