« Locky Virus - 日本語で身代金要求するランサムウェアウイルスの対処方法 | トップページ | TeraTerm のマクロ機能でSSHサーバでのコマンド処理を自動化する自動化する方法 »

PETYA ウイルス - MBRを書き換えてPCを起動不能にするランサムウェア

PETYA ウイルス - MBRを書き換えてPCを起動不能にするランサムウェア

 

スポンサーリンク

 

キーワード: PETYA、ウイルス、マルウェア、ランサムウェア、復元、復号、復旧、decrypt、MBR、MFT、ransomware, Virus

このエントリーをはてなブックマークに追加

 

目次

 
   

1. PETYA ウイルスとは

   

2. PETYA ウイルス感染時の画面

   

3. 書き換えられたMBR、MFTなど

   

4. ファイルの復旧について

   

5. 暗号化されたディスクの復号方法

 

1. PETYAウイルスとは

 

PETYAウイルスは、感染するとMBRMFT(マスターファイルテーブル)を上書きしてPCを起動不能するランサムウェアの一種です。PETYAウイルスを実行すると、Windowsが急に落ちて、システム再起動が発生します。PCを起動するとドクロマークの絵を表示した後、ハードディスクを軍事レベルのアルゴリズムで暗号化した、復号するための鍵を購入するために手続きをするように要求する文書を表示します。要求額は約0.9 BITCOINになっていました。

 

PETYA ウイルスに感染させてハードディスクの内部を確認したところ、ハードディスク全体が暗号化されている訳ではなく、MBRとMFTが部分的に書き換えられているだけのようでした。ファイルのデータは暗号化されずに残っているようです。また、軍事的なレベルのアルゴリズムで暗号化と書いてありましたが、MFTの書き換えはXOR処理のように見えます。

 

PETYAウイルスのプログラムコードを解析した訳ではなく、ハードディスクの一部を調査しただけなので正確ではないかもしれませんが、ハードディスク内のファイルデータは残っているようです。しかし、MFTが書き換えられているので、ファイル名やデータが格納されている位置(クラスタ番号)などがわからないので、ちゃんと復旧するのは大変そうです。foremost などのデータカービングソフトを使えば、ヘッダ・フッダが規定されているものについては、ある程度自動で復元できそうです。MFTレコード内に直接データが保存される小さなサイズのファイルに関しては、データが書き換えられてしまっていると思います。

 

NTFS 以外のファイルシステムの場合どうなるのかは調べられていません。

 

 

2. PETYA ウイルスに感染時の画面

 

スポンサーリンク

 

① PETYAウイルスを実行すると、強制的に Windows が落ちてシステム再起動がかかります。

 

petya_ico

 

②PCが立ち上がると、リカバリのための CHKDSKを実行しているような画面が出てきます。

 

PETAYA-1

 

③ ②が終わると、赤白点滅させながらドクロマークの絵を表示します。

 

PETYA-2PETYA-3

 

④ ハードディスクを暗号化したこと、復号するための鍵の購入方法が表示されます。

 

PETYA-4

 
   

You became victime of the PETYA RANSOMWARE!

   

The harddisks of your computer have been encrypted with an millitary grade encryption algorithm. There is no way to restore your data without a special key. You can purchase this key on the darknet page shown in step 2.

   

To purchase your key and restore your data, please follow these three easy steps:

   

1. Download the Tor Browser at “https://www.torproject.org/”. If you need help, please google for “access onion page”.

   

2. Visit one of the following pages with the Tor Browser:

   

   http://petyaXXXXXXXX

   

   http://petayaXXXXXXX

   

3. Enter your personal decryption code there:

   

   XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX…

   

If you already purchased your key, please enter it below.

 

 

3. 書き換えられたMBR、MFTなど

 

スポンサーリンク

 

 

暗号化されたファイルの復旧する 3 つの方法を紹介します。

 

①第0ブロック MBRの書き換え

 

mbr

 

左が正常なMBR、右がPETYAに書き換えられたMBRです。オフセット 446バイト以降のパーティションテーブルは書き換えられていませんが、前半のブートストラップローダー部分が書き換えられていることがわかります。

 

 

 

②第1ブロックから第33ブロック目の書き換え

 

block1-33

 

第0ブロック目のMBR以降、第1ブロックから第33ブロック目は通常 0x00 になっていますが、PETYAウイルスによって 0x07 で XOR されているように見えます。XORとは限りませんが。

 

 

 

③ 第34ブロック目~第49ブロックまでの書き換え

 

推測ですがPETYAウイルスに感染後に表示されるドクロマークや案内を表示すると思われるプログラムが入っていました。

 

 

 

④ 第50ブロック目以降から第1パーティション直前まで

 

特に書き換えはないようです。

 

 

 

MFT(マスターファイルテーブル)の書き換え

 

MFT-Mirror

 

左が正常なMFTレコードの一部(MFTMirrのレコード)です。右はPETYAウイルスで書き換えられたMFTレコードになります。正常時の0x0の部分からキーを推測して XOR すると一部は戻せました。途中でパターンが変わるので、そのパターンをプログラム解析で確認できれば復号できそうです。

 

時間があればもう少し詳しく調べてみたいと思います。

 

 

 

4. ファイルの復旧について

 

MBR、MFTは書き換えられていますが、ファイルデータはそのまま残っているようなので、試しにファイルが取り出せるか確認してみました。

 

感染前の C:\Windows\notepad.exe が クラスタ番号 169258 から 44 クラスタ分あることが分かっていたので、感染後のハードディスクから該当部分を dd コマンドで取り出してみました。

 
   

# dd if=infected-disk.dd skip=`expr 169258 * 8 + 2048` count=`expr 44 * 8` > notepad.dd

 

notepad.exe は 179,712バイトなので、末尾の余計な部分をバイナリエディタで削って、MD5ハッシュ値を確認します。

 
   

# md5sum notepad.dd      
d378bffb70923139d6a4f546864aa61c  notepad.dd

 

感染前の C:\Windows\notepad.exe の MD5 のハッシュ値である  d378bffb70923139d6a4f546864aa61c と一致しました。少なくともこの部分のファイルデータは書き換えられてないようです。

 

 

5. 暗号化されたディスクの復号方法

 

暗号化されたディスクを復号するための解除キーを解析してくれるサイト(PETYA-PAY-NO-RANSOM)が公開されています。

 

Petya Ransomware's Encryption Defeated and Password Generator Released http://www.bleepingcomputer.com/news/security/petya-ransomwares-encryption-defeated-and-password-generator-released/

 

PETYA-PAY-NO-RANSOM(https://petya-pay-no-ransom-mirror1.herokuapp.com/)

 

上記の PETYA-PAY-NO-RANSOM を利用した PETYA RANSOM の解除を試してみました。暗号化は解除でき、正常にWindowsを起動することが確認できました。試してみた手順を紹介します。

 

PETYA-PAY-NO-RANSOM に下記①②の情報を貼り付けて「Submit」ボタンを押すと、解除キーが表示されます。このキーをPETYA RANSOMWARE のキー入力画面に、入力すると暗号化が解除されて正常にWindowsを起動することができます。

 
   

① 暗号化されたハードディスクのセクタ55 のデータをBASE64エンコードした情報

   

② 暗号化されたハードディスクのセクタ54 のオフセット 33 から 8バイト分のデータをBASE64エンコードした情報

 

上記①②の情報を取得するためのツール Petya Sector Extractor が下記URLで提供さてれています。  Windows 上で動作するGUI プログラムです。

 

http://download.bleepingcomputer.com/fabian-wosar/PetyaExtractor.zip

 

今回は、別途 Windows マシンにHDDをつなぎかえるのが面倒だったため、上記 Petaya Sector Extractor は使わずに、Bootable Linux CD でブートして dd コマンドと Base64 コマンドで取得する方法にしました。

 

 

(1) Bootable Linux CD で PETYA RANSOMWARE に感染したマシンを起動します

 

Bootable Linux なら何でも良いのですが、今回は Deft Linux を使いました。

 

 

(2) Linux が起動したら下記のコマンドを実行して①②の情報を取得します

 

感染したマシンのハードディスクが、デバイス名 /dev/sda として認識されています。この /dev/sda から該当データを取得することになります。下記、具体的なコマンドになります。

 

①の暗号化されたハードディスクのセクタ55 のデータをBASE64エンコードした情報を取得

 
   

deft ~ % dd if=/dev/sda bs=512 skip=55 count=1 2>/dev/null | base64      
/cc3NxMWNzenSDc3rzs3N+37Nzfq/zc3baU3NyfGNzc3BTc3N8g3N1RtNzdJoTc3K6M3N6tgNzft      
1zc33P03N/7HNzeTFjc3p7Q3N6/9NzftvDc37P83N+3lNzcn2Dc3NTU3N7c3NzdUbTc3SaI3N6um       
NzerZDc3bSg3N9z9Nzf9xzc3E1Y3N6cMNzcvfTc37fw3N+r/NzdtZTc3J8Q3NzMHNzc3iDc3Um03       
N8miNzerIzc3q343N+36Nzff/Tc3/cc3N5NVNzenoDc3r7s3N+07Nzfq/zc3bSU3NyfGNzcxMTc3       
N/c3N1JtNzdJIjc3K6M3N6tkNzdtqDc33/03N/7HNzcT1Tc3pxQ3N687Nzdtujc37P83N+0lNzcn       
2Dc3PzU3N7cINzdTbTc3yWI3N6ulNzerfDc37Tk3N9/9Nzf8xzc3ExY3N6cONzevfDc3bTs3N+r/       
NzdtZTc3J8I3Nz0HNzc3CDc3VW03N0nhNzcrpTc3q2A3N226Nzfe/Tc3/cc3N5NWNzenADc3L/03       
N+38Nzfq/zc3bWU3NyfENzc7PTc3N0g3N1NtNzdJojc3qyM3N6t+Nzdt+Tc33/03N/vHNzeTFjc3       
pww3N688NzftOzc36v83N20lNzcnwjc3OT03NzfINzdSbTc3SeE3NyulNzerYDc3bbo3N979Nzc=

 

②の暗号化されたハードディスクのセクタ54 のオフセット 33 から 8バイト分のデータをBASE64エンコードした情報を取得

 
   

deft ~ % dd if=/dev/sda bs=1 skip=`expr 33 \+ 512 \* 54` count=8 2>/dev/null | base64      
LSgLXoh++aQ=

 

上記コマンド結果を USB メモリや SSH などのネットワーク経由で取得し保存しておきます。

 

 

(3) (2) で得た情報を「PETYA-PAY-NO-RANSOM(https://petya-pay-no-ransom-mirror1.herokuapp.com/)」のフォームに貼り付けて Submit します

 

decrypt1

 

しばらくすると解除キーが表示されます。ここでは Your key is: の行にある「XxNxRx3xExTxTxsx」が解除キーになります。

 

decrypt2

 

 

(4) (3)で表示された解除キーを PETYA の画面に入力します

 

decrypt4

 

解除キーを入力すると、復号処理が実行されます。

 

decrypt5

 

しばらくすると復号処理が完了すると、マシン再起動の表示が出ます。

 

decrypt6

 

再起動すると正常にWindowsが起動します。

 

 

 

スポンサーリンク

« Locky Virus - 日本語で身代金要求するランサムウェアウイルスの対処方法 | トップページ | TeraTerm のマクロ機能でSSHサーバでのコマンド処理を自動化する自動化する方法 »

ウイルス、マルウェア(Malware)」カテゴリの記事

セキュリティ事件、サイバー攻撃」カテゴリの記事

ニュース」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/503138/63455270

この記事へのトラックバック一覧です: PETYA ウイルス - MBRを書き換えてPCを起動不能にするランサムウェア:

« Locky Virus - 日本語で身代金要求するランサムウェアウイルスの対処方法 | トップページ | TeraTerm のマクロ機能でSSHサーバでのコマンド処理を自動化する自動化する方法 »

記事一覧

スポンサードリンク


Twitter


無料ブログはココログ

ブログ検索