「http-domino-enum-passwords」は、IBM 製グループウェアサーバ「LotusDomino」の Web アプリケーションが動作していた場合、それを介して情報を収集する NSE スクリプトです。当該 Web アプリケーションが動作しているときに、この NSE スクリプトを実行すると、「Lotus Domino」のユーザの名前、ハッシュ化されたパスワード、ユーザの ID ファイルの URI を収集できます。そのときの実行例を以下に示します(当該 NSE スクリプトの使用例から抜粋しました)。
-- PORT STATE SERVICE REASON -- 80/tcp open http syn-ack -- | domino-enum-passwords: -- | Information -- | Information retrieved as: "Jim Brass" -- | Internet hashes (salted, jtr: --format=DOMINOSEC) -- | Jim Brass:(GYvlbOz2idzni5peJUdD) -- | Warrick Brown:(GZghNctqAnJgyklUl2ml) -- | Gill Grissom:(GyhsteeXTr75YOSwW8mc) (割愛) -- | Internet hashes (unsalted, jtr: --format=lotus5) -- | Ada Lovelace:355E98E7C7B59BD810ED845AD0FD2FC4 -- | John Smith:655E98E7C7B59BD810ED845AD0FD2FD4 -- | ID Files -- | Jim Brass ID File has been downloaded (/tmp/id/Jim Brass.id) -- | Warrick Brown ID File has been downloaded (/tmp/id/Warrick Brown.id) -- | Gill Grissom ID File has been downloaded (/tmp/id/Gill Grissom.id) (割愛) -- | -- |_ Results limited to 10 results (see domino-enum-passwords.count)
この NSE スクリプトでは、ユーザ ID ファイルをローカルのファイルシステム上にダウンロードできます。このとき、ダウンロードしたユーザ ID ファイルの保存先パスは、以下の 2つで決まります。前述の実行例では、(1) に「/tmp/id」を指定していると考えます。
(2) は、当該 NSE スクリプトで検査した Web アプリケーションの HTTP レスポンスによって決まります。また、当該 NSE スクリプトは最終的な保存先パスを検証(そのパスに保存してもよいか等)していませんでした。
以上のことから、リモートの第三者が「Lotus Domino」の Web アプリケーションとして振る舞う Web アプリケーションを用意しておくことで、第三者が (2) およびユーザ ID ファイルの内容を操作できました。この結果、リモートの第三者が Nmap を実行したホスト上に任意のファイルを作成できました。