コマンドプロンプト

メールの無害化処理を回避して一太郎ファイルをWAN内端末に取り込む

私の職場では、インターネットにつながるネットワークとWANが分離されました

 ネットワークの分離は、ネットワークを通じた侵入が難しくなるという点ではいい方針ですが、ネットワーク相互のファイルのやり取りが面倒です。
 私の環境では、WAN内の端末(Windows)からWindows Server上の仮想デスクトップ環境に接続し、インターネットからダウンロードしたファイルは仮想デスクトップ環境に置かれます。
 インターネットからダウンロードしたファイルをWAN内の端末へ移動させる方法は、インターネットのメールアドレスからWANのメールアドレスに対して、ファイルを添付したメールを送ることしかありません。

無害化プログラムがメールに添付した一太郎ファイルをすり替える

 一太郎ファイルをメールに添付してWANのメールアドレスに送ったところ、メールに対して無害化処理がされ、一太郎ファイルが「無害化処理により削除しました」という文章が入ったpdfファイルにすり替えられてしまいました。
 なぜそうなるのか。
 メール配送の途中で無害化処理プログラムが添付ファイルを監視していて、WordファイルやExcelファイルであれば有害か無害かを無害化処理プログラムが判別できるため、無害なファイルはそのまま届けられます。しかし、一太郎ファイルは無害化処理プログラムが判別できないため、一律にすり替えられています。
 一太郎ファイルをWordファイルその他の無害化されないファイルに変換して添付したら、すり替えられることはありませんが、そんな馬鹿な無害化処理プログラムのために不便を強いられるのはいやです。
というわけで、メールの無害化処理を回避して一太郎ファイルをWAN内端末に取り込む方法を考えました。

一太郎ファイルをWAN内端末に取り込む方法

前提

Windows Server上の仮想デスクトップ環境からWindows Serverの\Windows\System32内のプログラムを起動させられる

手順

仮に、取り込む一太郎ファイル名を「様式.jtd」とします。
1. 仮想デスクトップ上でショートカットを新規作成し、ショートカット先として\Windows\System32\cmd.exeを入力。
2. ショートカットをダブルクリックしてコマンドプロンプトを起動。
3. コマンドプロンプトで'\Windows\System32\certutil.exe -f -encode'と入力。半角スペースを入れて、次に一太郎ファイル(様式.jtd)を入力ファイルとしてコマンドプロンプトにドロップ。 半角スペースを入れて、出力ファイル名(様式.txt)を入力して、certutilを実行。

成功した場合の出力例

入力長 = 632733

出力長 = 870064

CertUtil: -encode コマンドは正常に完了しました。

4. コマンドプロンプトで'\Windows\System32\notepad.exe'と入力してメモ帳を起動。
5. 出力ファイル(様式.txt)をメモ帳にドロップ。念のため、-----BEGIN CERTIFICATE-----と-----END CERTIFICATE-----の前に「'」を入力し、すべて選択してコピー。
6. Outlookを起動し、メールを新規作成して、本文にペースト。WANのメールアドレスに対して送信。
7. WAN内の端末でメールを受け取り、本文をすべて選択してコピー。
8. メモ帳を起動して、ペースト。-----BEGIN CERTIFICATE-----と-----END CERTIFICATE-----の前の「'」を削除。ファイル名を様式.txtとして保存。
9. コマンドプロンプトで'\Windows\System32\certutil.exe -f -decode 様式.txt 様式.jtd'と入力してcertutilを実行。
成功した場合の出力例

入力長 = 870064

出力長 = 632733

CertUtil: -decode コマンドは正常に完了しました。

参考リンク

Windowsでbase64エンコード・デコードする方法 - Eiji James Yoshidaの記録