web-dev-qa-db-ja.com

WindowsまたはLinuxのユーザー名をWebサイトに公開できますか?

例えば:

  • JavaScriptを有効にしてWebサイトにアクセスすると、ブラウザ、フォント、ローカル時間などの情報が公開される可能性があります。理論的には、WindowsまたはLinuxのユーザー名を公開できますか?

  • ファイルの保存またはファイルの添付(通常はウェブメールで行われます)は、ディレクトリツリーにアクセスして、WindowsまたはLinuxのユーザー名を公開しますか?

オペレーティングシステムへのログインに使用するユーザー名をWebサイトに公開することはできますか?

7
Strapakowsky

ユーザー名は、一般的にWebサイトに公開されていません。おそらくJavaで何らかの方法で実行できますが、デフォルトではブラウザでは実行できません。OracleのJavaを意味していることに注意してください。notJavascript!

一部のWebサイトはActive Directory認証を使用しています。コンピューターと同じWindowsドメインで実行されているInternet Explorerでアクセスすると、自動的にログインされます。これは、何らかのHTTPレベルの認証を使用し、ドメイン、ユーザー名、コンピューターのホスト名を送信します。パスワードは送信されません。ブラウザーはサーバーからのチャレンジに応答し、その方法でその身元を証明するだけです。

Internet Explorerは、サーバーがドメインと同様にチャレンジを送信し、ドメインがクライアントのドメインと一致した後にのみ、この情報(ユーザー名、ドメイン、ホスト名)を送信します。たとえば、サーバーがドメインContosoを実行していることをアドバタイズし、ユーザーがドメインContosoにもログインしている場合、Internet Explorerは認証を続行し、ユーザー名、ドメイン、ホスト名とチャレンジレスポンス。チャレンジレスポンスはパスワードの代わりです。

ドメインが一致しない場合、たとえばサーバーがContoso2に属しているとアドバタイズする場合、ユーザーは資格情報(ユーザー名とパスワード)の入力を求められます。ユーザーがこれらの資格情報を入力すると、ユーザー名はもちろんホスト名とともにサーバーに送信されます。パスワードはチャレンジによって確認されますが、送信されることはありません。空白のユーザー名とパスワードを入力しても、ホスト名は公開されます。安全な出口は、キャンセルボタンだけです。

ユーザー名を自動的に取得する唯一の方法は、私が見つけた限り、ユーザーがログインしているドメインを知っており、ユーザーにInternet Explorerを使用させることです。ドメイン名は推測できることが多いので、標的を絞った標的型フィッシングが可能になる可能性があります。繰り返しになりますが、ユーザー名とホスト名だけでユーザーのパスワードを自動的に取得することはできないため、これがどれほど便利かはわかりません。おそらく、ターゲットを絞ったフィッシング攻撃をより個人的なものにするためです。

ユーザー名を取得する別の方法 は、このActiveXコントロールによるものです。

<script type="text/javascript">
alert(new ActiveXObject("WScript.Network").UserName);
</script>

これをInternet Explorer 9でテストすると、2つの警告が表示されます。まず、画面の下部にある警告で、ページ上のActiveXコンポーネントをアクティブ化するかどうかを尋ねます。2番目の警告では、有害である可能性があるため本当に確信があるかどうかを尋ねます。一部のソーシャルエンジニアリングでは、この方法でユーザー名をトリガーする可能性があります...しかし、おそらくもっと簡単な方法があります。

Firefoxなどの他のブラウザでは、そのようなWebサイトにアクセスするときに、常にユーザー名とパスワードの入力を求められます。このデータは暗号化されずに送信されると思いますが、まだ調べていません。あらゆる種類の認証を実行するときは、常にトランスポート層セキュリティ(httpsなど)を使用するのが最善です。ただし、この種の認証は自動ではないため、おそらく質問には関係ありません。

更新:先ほどお話ししたことの1つに、input type=file要素を使用してファイルを選択するときにユーザー名を公開できるかどうかということを忘れていました。つまり、いいえ。 古いブラウザではこれを行う可能性があります ですが、最近のバージョンのChrome、Firefox、IE9ではテストを行ったため、フルパスを公開していません。 Firefoxでは mozFullPath property に気づくかもしれませんが、JavaScriptがアクセスしようとすると、空の文字列が返されます。これを使用できるのは、特別な特権(アドオンなど)を備えたコードだけです。また、 HTML5ファイルAPI仕様 は、Wordの「パス」に一度だけ言及し、それを公開しないように指示しています。


免責事項:Active Directoryに関するものの多くは単純にテストされたものであり、間違いがあるかもしれません。ここには2つのドメインがあるので、自分のドメインまたは他のドメインにログインしたときにWiresharkでの動作を簡単に確認できます。クライアントにはIE9、サーバーにはWindows Server 2008を使用しました。このスクリプトに基づいて別のテストサーバー(php)も使用しました: http://siphon9.net/loune/2007/10/simple-lightweight-ntlm-in-php/

7
Luc