【お友達の解析】Nanocore-2020/4/22                

背景

.NET malwareの解析ってdnspyで見たら終わりでしょ?って完全になめてたんですけど、難読化された検体をみてフリーズしたので、しっかり調べて、やってみた。

NanoCoreとは

安くて使いやすい、ダークウェブで売られている人気のある.NET製のRATです。でした。

解析の途中で気付いたのですが、作者は逮捕されており、websiteは閉鎖されていました。

crackされたversionがleakされ、今でも利用されているみたいです。

なお、様々なコミュニティによるpluginがあったようです。

要するに、pluginを開発すれば、今でも拡張できるってことですね。

EMOTETはこの検体に影響されたのかもしれません。

なお、体は4月下旬に観測されたものです。

https://www.joesandbox.com/analysis/224320/0/html

解析〜

Autoitを利用したプロテクターの解除

初期状態のNanocoreはAutoitを利用したプロテクターによって守られています。

AVの検知名もAutoit〜が目立ちますね。

Exe2Autでau3スクリプトに戻しましたが、激しく難読化されてそうっす・・

外部情報によると難読化解除はとっても大変そう。

復号された状態をdumpしたかったが、手持ちの解析環境では動かず・・

正面突破する時間もったいないな〜って思ってたら、sandboxからunpackした状態を落とせたので、どうにかなった。

unpackされた検体をみると含有文字列からNanocoreの文字列が!そして.NETであること、Eazuscatorによって難読化されていることがわかります。

payloadの分析

難読化は、de4dotで戻せてしまいました。できない想定で色々準備していたのですが・・汗

dnspyでみると読めそうになっています。Versionは1.2.2.0でした。

この1.2.2.0、調べてみると 2015年3月に、購入者がcrackし、leakさせたpremium pluginsと呼ばれるものでした。

調べると、すぐにleakされたNanocoreを発見しました。

そして、2017年のarchiveを見ると、pluginはgithubにあったようです。

ソースコードになると、隅々までしっかり読む気になれないですね・・w

臭そうなResource文字列取得を発見。

resourceのentropyも高いし、暗号化されています。

右クリック[Analyze]からResource関連のAPI呼び出しを探す。

ちなみに右クリック[Edit Method]や[Edit Class]でrenameできるみたい。

後はこの処理を追いかけて暗号化解除のアルゴリズムをgetして復号コードを書けば良いはず。

ただ、このあたりは色んな人がコード書いているみたい。

ブレイクポイントをセットしてdumpして.NET製のdllが2つを見つけました。

このdllを眺めていると中に別のPEが。

PEを分割する。Stirlingの機能でバイナリを分割するときに、ちょっとはまったのでメモ。

まずメニューの「設定」→「環境設定」で「ユーザーメニュー」タブを選択します。右側の「追加できる機能」のドロップダウンリストで「選択系」を選んで,その中の「範囲を指定して選択」を,左側の適当なメニュー(例えば「メニュー1」)に追加します。この時「アクセラレータ」を尋ねられますが,これは「ALT」でメニューを指定するときに使うキーの指定なので,適当な文字(例えば「S」など)に設定します。
次にこのメニューを表示させるためにキーの設定を行います。同じくメニューの「設定」→「環境設定」で今度は「キーアサイン」を選択し,右側の「機能」のドロップダウンリストから「メニュー系」を選び,その中から先ほど機能を追加したメニューを,右側の適当なキー(例えば「F10」)に設定して「OK」を押します。
これでF10を押すたびに,「範囲を指定して選択」が現れるようになります。

https://okwave.jp/qa/q1617760.html

で、以下8個のdllが得られた。Pluginは検体の中に暗号化して持たせておくのか、なるほど。

PublickeyToken

.NETの標準のものっぽい。要するにノイズだった、無念。そして.NETの知識がなさすぎる、無念。

PublicKeyToken=b77a5c561934e089

NanoProtectClient.dll

多分、感染端末にてNanoCoreを保護するためのPluginだと思われる。

pdbは、以下。このpluginの開発者はcoleさんです。

c:\users\cole\documents\visual studio 2013\projects\nanoprotectplugin\nanoprotectclient\obj\debug\nanoprotectclient.pdb

タイムスタンプは2014年でした。

Tue Oct 21 11:03:09 2014

ClientPlugin.dll

どの機能が使えるのでpluginとして採用されたんだろうか!?pipeかな?

気になる文字列は以下。

NanoProtect (Leumonic's Mod)

Lzma#.dll

おそらくSurveillanceExClientPlugin.dllとして作成される。

内部文字列を見るとC2の通信先があるため、このPluginがcallbackに利用されていると考えられる。

使い回されていそうなので、調べてみると、キーロガーやクリップボードデータ、DNSログの取得、暗号化には、LZMAまたはTLD圧縮を使用するみたい。

総括

NanoCoreが今でも使われているのは、柔軟なPluginと、使い勝手の良さ、crackされたVersionがタダで入手できるからだと考えます。

ただ、解析方法は大量にアップされているため、今は高度な攻撃者が使うとは思えないな〜

何よりここまで解析すると外部情報見た時の “ふ〜ん” が、 “コレコレ、スキソー” になるのが良いなぁ。

そういえば.NETの難読化をやりたかったんだっけ。まぁ勉強になったしOK!!

IOC

  • wae54[.]duckdns[.]org
  • wave54[.]duckdns[.]org
  • 0e9696e5243ab48a683daf1451d34498
  • 742bbc4f74e474216088ebfce6239b60138a161d
  • 78c838211909eeaaf2518dcedc0cefa3522c2b99823ee720c96a35b4a96f6d6b
  • NanoProtectClient.dll
  • ClientPlugin.dll
  • SurveillanceExClientPlugin.dll

外部情報

https://community.broadcom.com/symantecenterprise/communities/community-home/librarydocuments/viewdocument?DocumentKey=1d61e19b-c65e-40b1-ad43-08c04df8f71a&CommunityKey=1ecf5f55-9545-44d6-b0f4-4e4a7f5f5e68&tab=librarydocuments

https://malwareindepth.com/defeating-nanocore-and-cypherit/