NanoCoreHunter:
NanoCore C&C サーバの追跡と180日間の RAT オペレータの行動監視
国立研究開発法人 情報通信研究機構
サイバーセキュリティ研究所 サイバーセキュリティ研究室
松本 隆志

1

発表内容
• NanoCore C2 サーバの検知手法• 新たに発見した NanoCore C2 サーバの検知手法について紹介する• NanoCore C2 サーバの長期観測• C2サーバの IP アドレスはアメリカとヨーロッパに偏っている• 観測から得られた C2 情報を各国の CERT に提供している• NanoCore オペレータの誘引実験• 多くのオペレータは，メールアカウントやパスワードを窃取する• 一部，NanoCore 以外の複数の RAT に感染させるケースを確認した

2

NanoCore RAT について

3

NanoCore の概要• 2013年に初めて登場した Remote Access Trojan（RAT）である• 2021年現在も利用されている• ANY.RUN や MalwareBazaar の統計でも常にトップ10に入っている• 我々の組織にも定期的に NanoCore が添付された SPAM メールが届いている

Top 10 Malware Family（MalwareBazaar by abuse.ch）

Malware Trends Tracker（ANY.RUN）

4

NanoCore の概要• NanoCore の機能• 画面共有• データの窃取（ファイル，パスワードなど）• キーロガー• マイクや Webカメラへのアクセス など• NanoCore v1.2.2.0• v1.2.2.0 が最新バージョンであり，リークされた NanoCore v1.2.2.0
このバージョンが広く利用されている• ダークウェブ等にリークされており，簡単に入手可能• 実際に入手して解析を行ったところ，設定に不備があることが判明した

5

非公開スライド

6

非公開スライド7

非公開スライド

8NanoCore C2 サーバの追跡9

非公開スライド

10NanoCore C2 サーバ検知用の NSE スクリプト• 作成した NSE スクリプト• NanoCore C2 サーバのスキャン手順
1.
2.
3.

NanoCore クライアントの初回通信を模倣したペイロードを送信する
返ってきたデータをDESで復号する
同じキーで復号できた場合に NanoCore C2 サーバと判定する• 送信するペイロードの内容 （以下のデータをNanoCoreと同じ手順で暗号化する）• GUID（PCの識別に使用される，毎回ランダムな値にする必要がある）• Identity (ホスト名¥ユーザ名)• NanoCore グループ名（デフォルト値: Default）• NanoCore バージョン（デフォルト値: 1.2.2.0）
DESで暗号化する

nanocore.nse の一部

11【一部非公開】

NanoCore C2 サーバの長期観測結果（1/5）• 観測期間• 2020/05/14 ~ 2020/11/10

非公開• 検知した NanoCore C2 サーバ数
• ユニークなIPアドレス数: 2,075• ポート別: 3,671• 使用されたポート番号
54984
1604
1608
• 54984/tcp: NanoCoreのデフォルトポート
5353• 1085/tcp: リークされた NanoCore v1.2.2.0 が開けているポート 123
500
3306• 1604/tcp: DarkComet RAT のデフォルトポートと同様
1085
1337
DarkComet RAT を使用していたオペレータが4782
0
NanoCoreに移行した可能性がある？

340
116
68
59
50
39
39
35
32
31
100

200

300

400

使用されてポート（上位10件） 12

NanoCore C2 サーバの長期観測結果（2/5）• 国別• 85カ国に NanoCore C2 サーバがホスティングされていた• 特にアメリカとヨーロッパに偏っている• オペレータが活動している国？

• オペレータに人気のある VPN やホスティングサービスがある？
• これらの国が標的となっている？

United States (US)401Netherlands (NL)244

France (FR)178

Germany (DE)

158

Switzerland (CH)153

Sweden (SE)123

United Kingdom (GB)117

Russia (RU)

75

Canada (CA)51

Turkey (TR)

47
0

50

100

150

200

250

上位10カ国

300

350

400

450

C2 サーバがホスティングされている国13

NanoCore C2 サーバの長期観測結果（3/5）• 主要な RAT オペレータの活動時間？
• この時間帯が日中である国が狙われている可能性が高い• ナイジェリアの脅威グループ（SilverTerrier）が関与している？
• https://attack.mitre.org/groups/G0083/• https://unit42.paloaltonetworks.com/silverterrier-2019-update/

38500
38000
37500
37000
36500
36000
35500
35000
34500
34000

0:00
1:00
2:00
3:00
4:00
5:00
6:00
7:00
8:00
9:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00

• 時刻別
• 9:00 ~ 18:00（UTC）に稼働しているサーバが多い

1時間毎のオープンポート数の合計

ナイジェリアの脅威グループ（SilverTerrier）
ナイジェリアのタイムゾーンは UTC+1

NanoCore や DarkComet などのRATを使用する

SilverTerrier, Group G0083 | MITRE ATT&CK

14

NanoCore C2 サーバの長期観測結果（4/5）• VirusTotal に登録されていた C2 の IP アドレス
NanoCore
RemcosRAT• 未登録の IP アドレス数: 480
AsyncRATNetWire• 登録済みの IP アドレス数: 1,812
AveMariaRATnjrat
GuLoader• IP アドレスに紐づくマルウェア
ModiLoader• NanoCore 以外の RAT も使用されている• CERT 連携• 毎月 JPCERT/CC に C2情報を提供している• JPCERT/CC 経由で各国の CERT に C2情報を提供している
United States
Netherlands
Switzerland
FranceGermany

••
•
•
•

SwedenUnited Kingdom
RussiaTurkeyIndonesia

205
150
118
85
73
43
26
23
18
16
12
1110Adwind
BitRAT
QuasarRAT
XpertRAT
RevengeRAT
RaccoonStealer
AgentTesla• 複数の RAT を併用して使用している可能性がある

•
•
•
•
•

1074
358

•
•
•
•
•

0CanadaEgypt
Italy
RomaniaSouth Korea

200

400

600

800

10001200

IPアドレスに紐づくマルウェア（VirusTotal と MalwareBazaar）••

Thailand
Colombia

15

NanoCore C2 サーバの長期観測結果（5/5）• CERT 連携の障害• non-logging VPN の利用• 約20%は，The PRIVACYFIRST Project に関連していた• オーナーに連絡したが役に立たなかったと報告を受けた（GovCERT.ch より）• MISP を使った情報提供• 検知した NanoCore C2 サーバの IP アドレスとポートを毎日追加していく予定• CIRCL MISP Community 内で共有する

The PRIVACYFIRST Project（privacyfirst.sh）whois 結果の一部
16NanoCore オペレータの誘引実験

17NanoCore の利用目的を探る• NanoCore の利用目的は何なのか→ 解析環境に RAT オペレータを誘引し，行動を観測することでその目的を明らかにする• RAT オペレータの誘引実験• 検知した IP アドレスとポート番号を用いて，NanoCore C2 サーバに接続する• RAT オペレータの行動をリアルタイムで監視する

監視する
コマンド

解析者

NanoCore
クライアント

NanoCore
C2 サーバ

RAT
オペレータ
18

誘引実験を行う上で考慮すべきこと• C2 サーバが稼働していたとしても，オペレータそこにオペレータがいるとは限らない

C2 サーバ...

...

毎日 200 以上のサーバがオンラインになっている• ​C2 サーバ接続用のクライアントを用意する必要がある

ビルドサーバクライアント

NanoCore
Builder• オペレータが興味を引くような環境を用意する

コンテンツ:
メールやファイルなど

企業
ネットワーク• 他組織への攻撃の踏み台になってはならない

クライアント

サーバ

監視する
19

効率よくオペレータを誘引するための仕組み
解析環境上の感染用PC
NanoCore
Builder:(1) プロキシのIPアドレスとポートを指定した
NanoCore クライアントをビルドして動作させる:

検知したすべてのNanoCore C2 サーバ(3) 受信したオペレータのコマンドをクライアントにリダイレクトする
NanoCore
Proxy

コマンドをリダイレクトする

Internet

コマンドを復号する:

yyy.yyy.yyy.yyy，bbb/tcp(2) 検知したすべてのC2サーバに接続する
5~10 台xxx.xxx.xxx.xxx，aaa/tcp::

zzz.zzz.zzz.zzz，ccc/tcp構築したシステム

NanoCore
Database

NanoCore クライアント
NanoCore サーバ

20

NanoCore Proxy の実行手順（1/8）• プロキシに接続するように設定したクライアントを作成する• 作成したクライアントを感染用 PC 上で動作させておく
感染用 PC

NanoCore Proxy

C2

クライアントを作成する
NanoCore
Builder

実行する

NanoCore
Database
21

NanoCore Proxy の実行手順（2/8）• 検知した NanoCore サーバリストを指定して，NanoCore Proxy を起動する
感染用 PC

NanoCore Proxy

C2

NanoCore
Builder

NanoCore
Database

NanoCore サーバのIP アドレスとポート
22

NanoCore Proxy の実行手順（3/8）• FakeServerThread を起動し，NanoCore クライアント間の通信を確立させる
感染用 PC

NanoCore Proxy

C2

NanoCore
Builder

FakeServerThread
NanoCore
Database
23

NanoCore Proxy の実行手順（4/8）• FakeClientThread を起動し，C2 サーバ間の通信を確立させる• C2 サーバとプロキシ間の通信は常に復号される
感染用 PC

NanoCore Proxy

C2

NanoCore
Builder

NanoCore
Database

FakeClientThread24

NanoCore Proxy の実行手順（5/8）• コマンドを受信したら，感染用PCにリダイレクトされる• 一度リダイレクトされた感染用PCは，予約済みにする
感染用 PC

NanoCore Proxy

予約済み
オペレータのコマンド

C2

リダイレクトオペレータのコマンド

NanoCore
Builder

NanoCore
Database

備考: NanoCoreの初回通信と定常通信以外のデータをオペレータによるコマンドとして処理する
25

NanoCore Proxy の実行手順（6/8）• コマンドを受信したら，感染用PCにリダイレクトされる• 一度リダイレクトされた感染用PCは，予約済みにする
感染用 PC

NanoCore Proxy

C2

予約済み

NanoCore
Builder

リダイレクト

予約済み
オペレータのコマンド

オペレータのコマンド

NanoCore
Database

備考: NanoCoreの初回通信と定常通信以外のデータをオペレータによるコマンドとして処理する
26

NanoCore Proxy の実行手順（7/8）• すべての感染用PCが予約済みに遷移したら，新規コマンド受付を終了する
感染用 PC

NanoCore Proxy

C2

予約済み

NanoCoreBuilder

予約済み

NanoCore
Database27

NanoCore Proxy の実行手順（8/8）• 予約済みのクライアントは，対応するC2サーバとの接続を維持し，オペレータによるコマンドを待ち続ける
感染用 PC

NanoCore Proxy

C2

予約済み

NanoCore
Builder

予約済み

NanoCore
Database
28

解析に使用する環境• サイバー攻撃誘引基盤 STARDUST を利用する• 利用可能なログ• pcap，スクリーンショット，エンドポイントログ，フォレンジックログ など• 感染用 PCの構成• OS:• Windows7 x64• 言語: 日本語
• インストールしたアプリ:• Chrome，MS Office 2013，Adobe Reader など• Filter Driver（解析用のツール）

企業ネットワークに模倣した環境（STARDUST）• コンテンツ:• ビーコンファイル（doc，xlsx，pptx，pdf）
メール，ブラウザの閲覧履歴など...
NanoCore
Builder

感染用 PC

NanoCore
ProxyNanoCore C2 サーバ
29

オペレータの誘引実験の結果（概要）
実験の結果 88 件のオペレータによる侵入を確認した• 53 件 のオペレータは，1つ以上の目的を達成していた• ほとんどは，画面共有し，メールアカウント情報やパスワードを窃取していた• ブラウザやメーラーで有用なユーザかどうかを確認していた• 2次感染用に他のマルウェアが実行された• 35 件 のオペレータは，ほとんど何もせずに去ってしまった• 画面共有のみ: 17 件
• 画面共有し，ブラウザを確認した: 8 件• シャットダウンのみ: 3 件• クライアントのアンインストールや画面のロックなど: 7件

オペレータの行動の分類
Category
SCREEN SHAREINGPASSWORDSFILESBROWSERMALWARE
MAIL
UNINSTALLTOOLSSHUTDOWNMISCCounts763724181276551630

NanoCore オペレータの行動一覧
分類行動分類行動

メール

Outlook を開く

ファイルアクセスデスクトップ上のファイルやフォルダを開く

ブラウザ

受信トレイを確認する

最近表示した場所を開く

送信済みアイテムを確認する

ファイルを圧縮する

下書きを確認する

ネットワークドライブを確認する

ユーザのアカウント情報を確認する

ファイルを C2 サーバにアップロードする

特定のメールを検索する

他のマルウェアを実行する

メールの送信を試みる

NanoCore クライアントを更新する

Chrome や Internet Explorer を開く

NanoCore クライアントをアンインストールする

Google アカウントへのログイン状況を確認する

スタートメニューからアプリやファイルを検索する

言語設定を英語に変更する

アカウント情報

ブックマークを確認する
ブックマークされたページを開く

メーラーに登録されたアカウント情報を窃取する
ネットワーク接続

特定のページを開く（PayPal，Alibaba，xvideos など）
閲覧履歴を確認する

権限昇格

管理者権限を要求する

タスクバーのネットワークアイコンから通信状況を確認する

コントロールパネルのネットワークと共有センターを確認する
コマンド

ipconfig，net view コマンドを実行する
systeminfo コマンドを実行する

特定のツールをダウンロードする
よくアクセスするページや最近閉じたタブを確認する

ブラウザに登録されたパスワードを窃取する

その他NjRAT チャット機能で話しかけてくる操作できないようにするために画面をロックする
31

2次感染用に使用されたマルウェア一覧
分類

名前

備考

分類できたマルウェア

AsyncRAT

https://github.com/NYAN-x-CAT/AsyncRAT-C-Sharp

LimeRAThttps://github.com/NYAN-x-CAT/Lime-RAT

Lokibot-

Morphine-

NetWire

-

NjRAT

-

Orcus

-

Remcos-VenomRAT

https://github.com/mirkoBastianini/Quasar-RAT の亜種？

不明（ワーム）autorun.inf を使って拡散する
正規の実行ファイルを改ざんし，ワーム経由で起動するようにする

不明「taskkill /f /im svchost.exe」を実行するだけ？

未分類

32

使用されたツールやテクニック

分類

名前

備考

ツール

Disable-Windows-Defender

https://github.com/NYAN-x-CAT/Disable-Windows-Defender

Chrome-Password-Recovery

https://github.com/0xfd3/Chrome-Password-Recovery

LastActivityView

https://www.nirsoft.net/utils/computer_activity_view.html

Mail PassView（NanoCoreの機能）

https://www.nirsoft.net/utils/mailpv.html

WebBrowserPassView（NanoCoreの機能）

https://www.nirsoft.net/utils/web_browser_password.html

AnyDesk

https://anydesk.com/

TeamViewer

https://www.teamviewer.com/

Microsoft AMSI
（Antimalware Scan Interface）Bypass

amsi.dll の AmsiScanBuffer にスキャンをバイパスするようにパッチを当てる
類似コード https://github.com/rastamouse/AmsiScanBufferBypass/blob/master/ASBBypass/Program.cs

HideProctaskmgr.exe にインジェクションし，asz$ から始まるプロセス名を隠ぺいする

テクニック

33

NanoCore オペレータの行動• Case1:

画面共有してパスワードを窃取したオペレータ（最も多く確認した行動）• Case2:ブラウザとメーラーを慎重にチェックしていたオペレータ• Case3:

複数のRATへの感染を試みたオペレータ

34

NanoCore オペレータの行動 – Case 1
Case 1: 画面共有してパスワードを窃取したオペレータ（最も多く確認した行動）• 期間• 2020/06/15 16:32:00 ~ 16:34:00（UTC+9）• 行動• 画面共有をする• Recover Passwords （NanoCore Surveillance Plugin）• Outlook 2013 のメールアドレスとパスワードを窃取する• ブラウザに登録されたパスワードを窃取しようとする• NanoCore クライアントをアンインストールする

35

NanoCore オペレータの行動 – Case 1• 画面共有していたが，マウスやキーボードの操作は行われなかった• Recover Passwords（NanoCore Surveillance Plugin）• Outlook 2013 のメールアドレスと• ブラウザに登録されたパスワードパスワードを窃取する

を窃取しようとする• Nirsoft の Mail PassView を使用した• Nirsoft の WebBrowserPassView を使用した

https://www.nirsoft.net/utils/mailpv.html

https://www.nirsoft.net/utils/web_browser_pass
word.html• ブラウザにパスワードを保存していなかった
Mail address
Password

ので，盗まれることはなかった
36

NanoCore オペレータの行動 – Case 2
Case 2: ​ブラウザとメーラーを慎重にチェックしていたオペレータ• 期間• 2020/07/08 16:07:10 ~ 16:56:47（UTC+9）• 行動• 画面共有をする• デスクトップ上のフォルダを開く• ネットワーク接続を確認する• Outlook を何度も開く• メール一覧を注意深く確認する• 送信元のメールアドレスを確認する• Outlookのアカウント情報を確認する• ALI や alibaba というキーワードでメールを検索する• メールの表示を拡大する• タスクバーを確認する• Chrome を何度も開く• アドレスバーに alibaba.com と入力する• Alibaba の Sign In ページを開く• Chrome ログイン状況を確認する• ブックマークに登録していた yelp.com のページを開く• Chrome アプリを確認する• 言語設定を英語に変更する• スタートメニューを開く• al や english というキーワードで検索する• シャットダウンする
37

NanoCore オペレータの行動 – Case 2• Chrome と Outlook を交互に開きながら作業をしていた
1.
2.
3.
4.
5.
6.

Chrome を開く
alibaba.com を開く
Sign In ページに移動する
Outlook 2013 を開く
メールの受信トレイを注意深く確認する
ALI や alibaba というキーワードでメールを検索する• 盗んだメールアドレスでアカウントを作成しようとした？

38

NanoCore オペレータの行動 – Case 3
Case 3: 複数のRATへの感染を試みたオペレータ• 期間• 2020/10/08 15:38:44 ~ 15:44:27（UTC+9）• 2020/10/13 14:52:27 ~ 15:03:54（UTC+9）• 行動• 画面共有をする• 他のマルウェアに感染させる• NjRAT，AsyncRAT，Remcos• Windows Defender を停止させる• Disable-Windows-Defender:
https://github.com/NYAN-x-CAT/Disable-Windows-Defender• Microsoft AMSI（Antimalware Scan Interface）Bypass

39

NanoCore オペレータの行動 – Case 3• 1日目: 2020/10/08 15:38:44 ~ 15:44:27（UTC+9）• 画面共有していたが，マウスやキーボードの操作は行われなかった• NjRAT と Disable-Windows-Defender を実行する

NjRAT
•
•

Microsoft AMSI Bypass
Win7 には AMSI バイパスに使用される amsi.dll が存在しない
ため，プロセスが異常終了していた

Disable-Windows-Defender••

https://github.com/NYAN-x-CAT/Disable-Windows-Defender
実行前に管理者権限を要求する
40

NanoCore オペレータの行動 – Case 3• 5日後: 2020/10/13 14:52:27 ~ 15:03:54（UTC+9）• 画面共有していたが，マウスやキーボードの操作は行われなかった• NjRAT，AsyncRAT，Remcos が実行された

NjRAT
AsyncRAT

hastebin.com からダウンロードされる

Remcos不明（000webhostapp.com からのダウンロードに失敗していた）

41

NanoCore オペレータの行動 – まとめオペレータの主な行動• ユーザの偵察• 21 人のオペレータは，閲覧履歴やブックマーク，メールの受信トレイを注意深く確認していた• 24 人のオペレータは，デスクトップ，ドキュメント，共有フォルダを確認していた• メールアカウント/パスワード，ファイルの窃取• 37 人のオペレータは，メールアカウントやパスワードを窃取していた• 8 人のオペレータは，ファイルを窃取していました．最大で 221 のファイルが窃取された• バックドアの設置• 12 人のオペレータは，NanoCore 以外のマルウェアに感染させていた• 11 種類のマルウェアが使用されていました

42

NanoCore オペレータの行動 – 考察
• オペレータがすぐに去ってしまった原因

解析環境と気づいた後の行動:• 有用なユーザでないと判断された（解析環境だと気づいた）可能性がある• メールの受信トレイ，送信済みアイテム，下書きが空だった• ブラウザの閲覧履歴がない• systeminfo コマンドを使用して動作環境を確認する• VM 検知• Windows10 でしか動作しないマルウェアが実行された• そもそもターゲットが日本ではない？
• 平日の 9:00~18:00（UTC+9）に実験を行った

シャットダウン

画面をロックする

チャットで話しかけてくる• OS の言語設定やファイルなどすべて日本語であった• 日本語に戸惑っているオペレータを何人か確認した

NanoCore をアンインストールする
43

おわりに
• 今回の発表• NanoCore C2 サーバの長期観測• 主に アメリカとヨーロッパに C2 サーバがホスティングされている• 多くのサーバは 9:00~18:00（UTC）に稼働している• C2情報は，JPCERT/CC を通して各国の CERT に提供されている（MISP でも発信していく予定）• NanoCore オペレータの誘引実験• 多くのオペレータは，メールアカウントやパスワードを窃取する• 一部，NanoCore 以外の RAT に感染させるケースを確認した• 今後について• オペレータにより長い時間活動してもらえるような環境を調整する必要がある• 長期観測からオペレータがよく使用する VPN やアドレス帯が一部見えてきた
それらをスキャンすれば，NanoCore だけでなく，他の攻撃ツールを検出できる可能性がある
44