Responderを使ってpassword取得してみた

Exploit_Vulnerabilities

*自分でもやってみようと思ったら、閉じた専用の環境を作って行いましょう。悪用厳禁。

Windowsを狙ったパスワードへの攻撃をやってみる。

使うのは、Responder。公式によると

Responder an LLMNR, NBT-NS and MDNS poisoner. It will answer to specific NBT-NS (NetBIOS Name Service) queries based on their name suffix

LLMNRとNBT-NSは、WindowsでデフォルトでONになっているサービス。同じlocal link内でのホスト名解決をするもの。デフォルトでオンなので、そのままにしてしまい、サービスを閉じてないマシンは多いようなので、この攻撃は未だに有効性はあるとか。

攻撃用には、Linuxを用意し、Responderをインストール。攻撃される方は未パッチでデフォルトの設定のままのWindowsを用意。同じclosedネットワーク内に構築。

[シナリオ] Windowsで、存在しない他のWindows上の共有フォルダへアクセスリクエストを出し、Responderでそのリクエストをキャッチさせて、共有フォルダありますーと嘘の応答をさせる。すると、Windowsは認証情報として、ハッシュ化されたユーザのパスワードを渡してしまう。Responderのログでそのハッシュ化パスワードをゲットしたら、後はPasswordクラッキングツールで平文に戻す。これでリクエストしてきたユーザ名とパスワードが取得できる。

Responderが入っているLinuxでroot権限で以下を実行。これでネットワーク上のNBT-NS問い合わせを監視し始める。

 ./Responder.py -I eth0

Windows側で、存在しない共有フォルダへのアクセスを実行。

すると、Responderの方で、リクエストをキャプチャーし始める。Responderは問い合わせしてきたWindowsに「そのリクエスト受けます!」と応答するので、Windowsは認証情報を渡してきちゃう。

Responderでは、ユーザ名とハッシュ化したパスワードが丸見えに。Adminがユーザ名で、その後に続くのがパスワード。

Windowsの方では、以下の「¥¥SHAREDは見つかりませんでした」エラーメッセージのみ。ユーザ名やパスワードを取られたことなど知るよしもない。

あとは、ゲットしたハッシュを解読するのみ。John the Ripperでも何でも。

Responderは持ってないShared folderを「持ってる」として応答するけど、実際にそのfolderを持っているマシンも、もちろんユーザ名とハッシュ化されたパスワードをゲットできる。いわゆるdisgrunted employee(会社に不満を持っている社員)がいたりして、内部からやられるケースもあるということかと。

基本的によろしくないので、最初からこれらのサービスは止めておきましょうというのが一番スタンダードな対策らしい。