# 標的型攻撃の新たな⼿⼝判明。診断ツール「PoshC2」を悪 ⽤する攻撃の流れを解説 **lac.co.jp/lacwatch/people/20200424_002177.html** サイバー救急センターの⽯川です。 2019年2⽉にLAC WATCHで、ペネトレーションテストツール「PoshC2」を悪⽤した標的型攻撃 の⼿⼝を紹介しました。 [LAC WATCH:オープンソースのツール「PoshC2」を悪⽤した新たな標的型攻撃を確認](https://www.lac.co.jp/lacwatch/people/20190213_001770.html) 2020年に⼊ってからも、私の所属する脅威分析チームでは同種の攻撃を引き続き観測しており、 今まで確認できなかった詳細な攻撃の流れが⾒えてきました。攻撃者グループが⽤いる攻撃の⼿ ⼝やC2インフラに変化が現れていることも確認しています。 今回は、新たに⾒えてきた詳細な攻撃の⼿⼝と、背後に潜む攻撃者グループについて紹介しま す。 ## PoshC2を悪⽤した標的型攻撃の詳細な⼿⼝ 図1は、PoshC2を悪⽤する攻撃の流れを示したもので、⼤きく3つの⼿⼝に分類されます。この [うち、攻撃⼿⼝2については前述の2019年2⽉に公開したLAC WATCH記事で取り上げているた](https://www.lac.co.jp/lacwatch/people/20190213_001770.html) め、ここでは攻撃⼿⼝1と攻撃⼿⼝3の詳細と、攻撃の中で使われたC2インフラの変化について 説明します。 ----- 図1 PoshC2を悪⽤する3つの攻撃⼿⼝の概要 ### 攻撃⼿⼝1(CVE-2019-9489およびDLLハイジャックの悪⽤) これは、ウイルスバスターCorp.の脆弱性(CVE-2019-9489)およびDLLハイジャック(DLL Search Order Hijacking)を悪⽤した攻撃⼿⼝です。2019年のLAC WATCH記事では、DLLハイジ ャックの悪⽤からPoshC2スクリプトの実⾏までを解説しましたが、今回は、被害者PCへの不正 なDLLファイルの配信⼿法とDLLハイジャックの悪⽤についてです。攻撃の多くは、今年1⽉に開 催されたJapan Security Analyst Conference 2020でのJPCERTコーディネーションセンターの発 表でも紹介された※1、CVE-2019-9489の脆弱性の悪⽤から始まります。図2は、CVE-2019-9489 およびDLLハイジャックを悪⽤した⼿⼝の概要です。 ※1 Japan Security Analyst Conference 2020 (オープニングトーク) 2019年のインシデントを振り 返る ----- 図2 CVE-2019-9489およびDLLハイジャックを悪⽤した⼿⼝の概要 攻撃の流れは次の通りです。 1. 攻撃者は、スピアフィッシングメールや脆弱性の悪⽤等によって侵害したPCを踏み台とし て、CVE-2019-9489の脆弱性を悪⽤し、ウイルスバスターCorp.サーバの特定のディレク トリに管理者権限を持つ認証トークンファイルを作成 2. 攻撃者は、このトークンを利⽤してウイルスバスターCorp.サーバの管理画⾯の認証を回避 し、管理者権限でアクセス。その後、パターンファイルの配信元を、攻撃者が管理する偽 のアップデートサーバへ設定変更 3. 偽のアップデートサーバから、不正な「dbghelp.dll」ファイルを含む偽のパターンファイ ルが被害者PCに配信される。この際、ウイルスバスターCorp.クラインアントがパターン ファイルの内容を適切に検証しない※2ため、DLLファイルが被害者PCの特定のディレクト リに展開される 4. ウイルスバスターCorp.クラインアントのプログラムが実⾏される際に、 「%SystemRoot%¥System32」にある正規の「dbghelp.dll※3」ではなく、同じディレクト リに展開された不正な「dbghelp.dll」を意図せず読み込んでしまい、DLLファイルに含ま れたいくつかの攻撃コード※4がBATファイルを通じて実⾏される 攻撃の中で特徴ある項⽬についてピックアップしてみていきます。 ----- ※2 この問題については、ウイルスバスターCorp. XG SP1の場合、CVE-2019-9489の脆弱性を解 消するパッチ(Critical Patch 5338)の1つ前にリリースされたCritical Patch 5294で解消されて いることを確認しています。 ※3 Microsoftのデバックエンジンを提供するDLLファイルの1つです。 ※4 PoshC2スクリプト、リモートデスクトップのネットワークレベル認証(NLA)の無効化、ロ グイン画⾯の拡⼤鏡(magify.exe)を「cmd.exe」に置き換えたバックドアの作成や管理者権限 を有するユーザを作成するコマンドなどの攻撃コード。 #### CVE-2019-9489の脆弱性 CVE-2019-9489はディレクトリトラバーサルが可能な脆弱性です。ウイルスバスターCorp.クラ イアントから隔離ファイルを受信するプログラム「cgiRecvFile.exe」が、特定の関数において⼊ ⼒されたファイルパスを適切にチェックしないことに起因しています。攻撃者はこの脆弱性を悪 ⽤することによって、ウイルスバスターCorp.サーバまたはウイルスバスタービジネスセキュリ ティサーバで任意のファイルを作成・変更することができます。 図3は、この脆弱性が修正されたウイルスバスタービジネスセキュリティ 9.5 Critical Patch(ビ ルド1487)のReadme※5の内容の⼀部抜粋です。⾚枠で示すように、「cgiRecvFile.exe」で脆弱 性が修正されていることが確認できます。その他のウイルスバスターCorp.の修正プログラムに ついては、トレンドマイクロ社のサポート情報※6をご参照ください。 図3 ウイルスバスタービジネスセキュリティ 9.5 Critical Patch(ビルド1487)⼀部抜粋 ※5 http://files.trendmicro.com/jp/ucmodule/vbbiz/95/patch/cp1487/readme_biz95_win_CriticalPatch_ B1487.txt ※6 サポート情報 : トレンドマイクロ 【注意喚起】弊社製品の脆弱性(CVE-2019-9489)を悪⽤し た攻撃を複数確認したことによる最新修正プログラム適⽤のお願い #### 拡⼤鏡を悪⽤したバックドアと、リモートデスクトップのネットワークレベ ル認証の無効化 ----- 「dbghelp.dll」に含まれるBATファイルには、図4のようなレジストリを変更するコマンドが含ま れています。これらのコマンドは、拡⼤鏡(magnify.exe)を悪⽤した「cmd.exe」によるバック ドアを設定するものと、リモートデスクトップのネットワークレベル認証(NLA)を無効化する ものです。また、図5は、ログイン画⾯から拡⼤鏡を悪⽤したバックドアを実⾏したものです。 ⾚枠で示すようにSYSTEM権限で「cmd.exe」が起動していることが確認できます。 図4 拡⼤鏡を変更するコマンド(上)/リモートデスクトップのネットワークレベル認証の無効化するコマン ド(下) 図5 ログイン画⾯から拡⼤鏡の実⾏ #### DLLハイジャック DLLハイジャックは、DLLファイルを読み込む際の検索パスの処理に起因して、同⼀ディレクト リに存在する特定のDLLファイルを読み込んでしまう問題です。攻撃の流れで説明したように、 攻撃者は、ウイルスバスターCorp.サーバのアップデート配信機能を悪⽤し、被害者PCのウイル ----- スバスターCorp.クライアントの特定のディレクトリに攻撃コードを含む「dbghelp.dll」を展開 させます。ウイルスバスターCorp.クライアントのプログラムが動作した際に、 「%SystemRoot%¥System32」にある正規の「dbghelp.dll」ではなく、特定のディレクトリに展 開された不正なDLLファイルが読み込まれて攻撃コードが実⾏されます。表1は、このアップデ ート配信機能を悪⽤した攻撃で悪⽤可能なウイルスバスターCorp.クライアントのプログラムの ⼀例で、いずれもPC起動時に⾃動実⾏されます 表1 DLLハイジャック可能なプログラム ##### プログラ ム名 PccNT‐ Mon.exe NTRt‐ Scan.exe TmLis‐ ten.exe ##### 確認バージ ョン※7 説明 13.0.0.1361 ウイルスバスターCorp.クライアントモニターのプロセ ス 13.0.0.1361 リアルタイムスキャンのプロセス 13.0.0.1361 ウイルスバスターCorp.クライアントがウイルスバスタ ーCorp.サーバと通信するためのプロセス ※7 ウイルスバスターCorp. XG SP1の場合、Critical Patch 5294以降のパッチを適⽤したバージョ ンを利⽤することで、この攻撃による影響を緩和することが可能です。 図6は、「PccNTMon.exe」によって読み込まれたファイルをProcess Monitorで確認したもので す。「dbghelp.dll」がシステムディレクトリ(%SystemRoot%¥system32)ではなく、トレンド マイクロ社製品のディレクトリ(C:¥Program Files¥Trend Micro¥OfficeScan Client)から読み込 まれてしまっていることが確認できます。 図6 「PccNTMon.exe」による読み込まれたファイル抜粋(Process Monitor) 図7は、「PccNTMon.exe」によって読み込まれたDLLファイルをProcess Explorerで確認したも のです。こちらでも、「dbghelp.dll」が「C:¥Program Files¥Trend Micro¥OfficeScan Client」か ら読み込まれていることが確認できます。また、⾚枠で示すように、「dbghelp.dll」に含まれた 「firefox.exe」(PowerShell)がPoshC2スクリプトを実⾏していることも確認できます。 ----- 図7 「PccNTMon.exe」による読み込まれたDLLファイル抜粋(Process Explore) #### カスタムPoshC2 攻撃者は、公開されているPoshC2の「Core Dropper」のコード※8にセキュリティ制限を回避す るコードをいくつか加え、攻撃に利⽤しています。ここでは、加えられた3つのコードについて 紹介します。 [※8 Core Dropper -- PoshC2 Framework documentation](https://poshc2.readthedocs.io/en/stable/execution/core.html) 1つ⽬は、Antimalware Scan Interface(AMSI)※9を回避するコードです(図8)。これは実⾏す る環境がWindows 10の場合に動作します。AMSIは、Windows 10から標準で搭載されているマ ルウェア対策⽤のインターフェースで、悪意のあるスクリプトを検出する仕組みを提供します。 しかし、Windows 10 バージョン1903では、Windows Defenderによってブロックされているこ とが確認できます(図9)。 [※9 Antimalware Scan Interface (AMSI) - Win32 apps | Microsoft Docs](https://docs.microsoft.com/en-us/windows/win32/amsi/antimalware-scan-interface-portal) 図8 AMSIを回避するコード ----- 図9 Windows DefenderによるAMSI回避コードを実⾏時のブロック状況(Windows 10 バージョン1903) 2つ⽬は、PowerShellスクリプトブロックのログ記録を無効にするコードです(図10)。こちら も実⾏する環境がWindows 10の場合に動作します。Windows 10などPowerShell v5.0がインスト ールされた環境では、実⾏されたPowerShellスクリプトがデフォルトでイベントログに記録され ますが、攻撃者はこの制限を回避し、攻撃の痕跡を記録させない⼿⼝を⽤いています。 図10 PowerShellスクリプトブロックのログ記録を無効にするコード 最後の3つ⽬のコードは、PoshC2の実⾏時間を指定するコード(図11)で、OSのバージョンに 関わらず実⾏されます。実⾏時間はスクリプトによっても異なりますが、平均的な勤め⼈の勤務 時間を⽬安とした8:00から21:00ごろまで動くように設定されています。 図11 実⾏時間を制限するコード ### 攻撃⼿⼝3(MSBuildの悪⽤) ----- これはMicrosoft Build Engine(MSBuild)※10を悪⽤した攻撃⼿⼝です。.NET Frameworkライン タイムに標準で含まれるMSBuildは、Visual Studioや.NET Frameworkのビルドエンジンであり、 独⾃のXMLフォーマットファイル(プロジェクトファイル)を利⽤して.NETアプリケーション を作成できます。PoshC2は、EXE、DLL、BAT、JSなど様々なフォーマット※11でペイロードを 作成でき、そのうちの1つにこのMSBuildで利⽤可能なXMLファイルがあります。 [※10 MSBuild - Visual Studio | Microsoft Docs](https://docs.microsoft.com/ja-jp/visualstudio/msbuild/msbuild?view%253Dvs-2019=&view=vs-2019) [※11 PoshC2/resources/payload-templates at master · nettitude/PoshC2 · GitHub](https://github.com/nettitude/PoshC2/tree/master/resources/payload-templates) 図12は、PoshC2によって作成されたXMLファイルの⼀部コードです。⾚枠で囲んだ部分が攻撃 コードであり、sc32が32bit環境⽤で、sc64が64bit環境⽤です。この攻撃コードには、シェルコ ード、PoshC2スクリプトを含むDLLファイル(PowershellDLL.dll)と.NETアプリケーション (Microsoft.dll)の3つが含まれています。図13は、攻撃コードをBase64デコードしたものであ り、先頭から0x364バイトまでがシェルコード(⻘枠)に該当し、その後に「MZ」ヘッダが消さ れたDLLファイルが含まれていることが確認できます。 図12 PoshC2で作成した攻撃コードを含むMSBuild⽤のプロジェクトファイル(⼀部抜粋) ----- 図13 Base64デコード後の32ビット⽤の攻撃コード(⼀部抜粋) 「MZ」ヘッダが消されたDLLファイルには、Base64とgzipでエンコードおよび圧縮された PoshC2スクリプトが含まれています(図14)。このPoshC2スクリプトは、攻撃コードの3つ⽬ に含まれる.NETアプリケーションによってメモリ上で実⾏され、「MSBuild.exe」プロセスにイ ンジェクションして動作します。.NETアプリケーションは「PowerShellRunner」※12をカスタマ イズしたものであり、PowerShellの機能を提供する「System.Management.Automation.dll」を利 ⽤することで、「powershell.exe」を呼び出さず、PowerShellスクリプトを実⾏します(図 15)。 ※12 UnmanagedPowerShell/PowerShellRunner at master · leechristensen/UnmanagedPowerShell · GitHub 図14 DLLファイルに含まれたBase64でエンコードされたPoshC2コード(⼀部抜粋) ----- 図15 PowerShellRunnerのPowerShellスクリプト実⾏コード(⼀部抜粋) ### C2インフラを定期的に変更 攻撃者は、2019年前半までは、GCP(Google Cloud Platform)やMicrosoft Azureといったクラ ウドサービスを主要なC2サーバとして悪⽤していました。2019年後半からは、⾹港でVPSサー ビスを提供するShenzhen Katherine Heng Technology Information(AS135357)やCloudie Limited(AS55933)が悪⽤されています。攻撃者は、C2インフラを再利⽤せず、定期的に変更 して攻撃活動を⾏なっています。 ## 背後に潜む攻撃者グループ 私たちはPoshC2を悪⽤した⼀連の攻撃について調べる中で、⽇本や台湾を主な標的とする攻撃 者グループTaidoor※13やBlackTechが、この⼀連の攻撃に関与している可能性があることを示す痕 跡を確認しています。 ※13 攻撃キャンペーン名として使われている場合もあります。 #### Taidoor トレンドマイクロ社のブログ※14、NTT Security社のレポート※15やTaidoorが利⽤するマルウェア (SERKDES)の解析レポート※16で報告されている攻撃の⼿⼝と以下の点が類似します。 2018年〜2019年における⽇本への標的型攻撃での「PoshC2」の悪⽤ Remote Access Auto Connection Manager(RasAuto)サービスを悪⽤した⾃動起動設定 (図16) オンラインストレージサービスである「Dropbox」の利⽤ ※14 この⼤型連休前後に法⼈で注意すべき標的型攻撃の特徴を解説 | トレンドマイクロ セキュリティ ブログ 標的型攻撃キャンペーン「Taidoor」の活動が⽇本で活発化 | トレンドマイクロ セキュリティブ ログ [※15 taidoorを⽤いた標的型攻撃解析レポート_v1](https://www.nttsecurity.com/docs/librariesprovider3/resources/taidoor%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E6%A8%99%E7%9A%84%E5%9E%8B%E6%94%BB%E6%92%83%E8%A7%A3%E6%9E%90%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88_v1) [※16 BKDR_SERKDES.A - 脅威データベース](https://www.trendmicro.com/vinfo/jp/threat-encyclopedia/malware/BKDR_SERKDES.A) ----- 図16 RasAutoサービスを悪⽤したPoweShellの⾃動実⾏登録例 #### BlackTech PoshC2を悪⽤する⼀連の攻撃の中で、BlackTechが利⽤するTSCookieやTSCookie Loader※17を 確認しています。図17に示すように、TSCookie Loaderが読み込むファイルは、「*%c???.*」に マッチするファイル名です。今回のケースでは、"%c"には、「A」が⼊るため、ファイル名が 「*A??.*」となっています。また、メモリ上にロードされるDLLファイル名は、正規のDLLファ イル名と同じ「gdiplus.dll」となっています(図18)。 ※17 攻撃グループBlackTechが侵⼊後に使⽤するマルウエア - JPCERT/CC Eyes | JPCERTコーデ ィネーションセンター公式ブログ 図17 TSCookie Loaderが読み込むファイル名 これらの2つの攻撃者グループの痕跡は同⼀組織の侵害事例の中で⾒つかっています。被害者PC に残されたマルウェア、イベントログや通信ログなどの痕跡を確認すると、同⼀期間に作成され たものではなく、いずれかの攻撃が⾏われた後、数ヶ⽉から半年ほど経ってから、新たに作成さ れたものでした。このことから、2つの攻撃者グループは、「標的組織の情報」を共有し、連携 しながら攻撃活動を⾏っている、または1つの⼤きな攻撃者グループとして攻撃活動を⾏なって いる可能性が考えられます。 ----- 今回は、2020年においてもPoshC2を 悪⽤した攻撃を引き続き確認している ため、この⼀連の攻撃について改めて 紹介しました。昨今、Taidoorや BlackTechは、絶えず攻撃を仕掛けて きており、今後も新しい攻撃の⼿⼝や 攻撃ツールを変化させ、継続的に攻撃 を仕掛けてくることが考えられます。 図18 メモリ上にロードされるDLLファイル名 今回の攻撃では、⽇本の多くの企業が導⼊しているセキュリティ対策製品の脆弱性が悪⽤されて おり、⽇本の組織を標的としていることがわかります。標的型攻撃の起点は、添付ファイルや本 ⽂にリンクを含むスピアフィッシングメールが多いですが、SSL VPN製品やルータ・ゲートウェ イ製品の脆弱性を悪⽤するケースも多く、これらの製品の脆弱性を悪⽤されないためにも、⽇々 の脆弱性情報の管理と修正パッチの適⽤や緩和策の適⽤などの早急な対応が求められます。 [オープンソースのポート転送/トンネリングツールを悪⽤する標的型攻撃に注意](https://www.lac.co.jp/lacwatch/people/20200212_002127.html) また、これらの攻撃グループは、「frp」や「plink」といったポート転送/トンネリングツールを 悪⽤してリモートデスクトップ(RDP)接続を⾏う攻撃を⾏うことも確認しています。ポート転 送/トンネリングツールを悪⽤したRDPを利⽤した攻撃の詳細については「オープンソースのポ ート転送/トンネリングツールを悪⽤する標的型攻撃に注意」のLAC WATCHをご参照くださ い。 ラックの脅威分析チームでは、今後もこの攻撃者グループについて継続的に調査し、広く情報を 提供していきますので、ご活⽤いただければ幸いです。 ## MITRE ATT&CK Techniques 以下に、PoshC2を悪⽤した標的型攻撃で⽤いられる攻撃の⼿⼝をまとめます。これらの⼿⼝ は、MITRE ATT&CKフレームワークに基づいて作成しています。Tacticの「Lateral Movement」、「Collection」、「Command and Control」、「Exfiltration」の項⽬については、 多くがMitre社のPoshC2で紹介※18されるテクニックが利⽤されています。 [※18 PoshC2, Software S0378 | MITRE ATT&CK®](https://attack.mitre.org/software/S0378/) ----- 表2 MITRE ATT&CK Techniques ##### Tactic ID Name 概要 ##### Initial Access Execu‐ tion Persis‐ tence De‐ fense Eva‐ sion ##### T1195 Supply Chain Compromise T1059 Command-Line Interface ##### T1060 Registry Run Keys / Startup Folder T1015 Accessibility Features T1038 DLL Search Or‐ der Hijacking T1089 Disabling Securi‐ ty Tools T1140 Deobfuscate/De‐ code Files or Information ##### セキュリティ対策製品の脆弱性を悪⽤偽の アップデートファイル配信 regコマンドを利⽤したRDP設定 変更やバ ッチファイルの実⾏ ##### ⾃動起動のレジストリ追加 拡⼤鏡機能を悪⽤したcmd.exeによるバッ クドア 正規の実⾏ファイルが使うDLLファイルと 同じ名前の悪性ファイルを同⼀ディレクト リに設置 PowerShellスクリプトブロックのログ記録 を無効、AMSIの回避 マルウェア内またはペイロードに含まれる ⽂字列を難読化 ##### T1086 PowerShell PoshC2スクリプトの実⾏ ##### T1035 Service Execution ##### RasAutoサービスを利⽤したPoshC2スク リプトの実⾏ ##### T1047 Scheduled Task スケジュールタスクを利⽤したPoshC2ス クリプトの実⾏ ##### T1127 Trusted Develop‐ er Utilities T1031 Modify Existing Service ##### MSBuild悪⽤ RasAutoサービスの変更 ##### T1050 New Service サービスの登録 ##### T1107 File Deletion 使⽤したファイルの削除 T1055 Process Injection 正規プログラム(msbuild.exe, notepad.exeなど)にインジェクション ----- ##### Tactic ID Name 概要 ##### Cre‐ dential Access Discov‐ ery Lateral Move‐ ment ##### T1003 Credential Dumping T1135 Network Share Discovery T1082 System Informa‐ tion Discovery T1049 System Network Connection Discovery T1057 Process Discovery T1076 Remote Desktop Protocol ##### Poweshellを利⽤したMimikatzの実⾏ netコマンドを利⽤したネットワークの探 索 dirコマンドによるファイル検索 netstatコマンドによる通信しているIPアド レス・ポート番号や解放ポートを表示 tasklistコマンドによるプロセス⼀覧情報を 取得 frpや攻撃者独⾃のトンネリングツールを利 ⽤した外部からのRDP接続 ##### T1021 Remote Services Plinkを利⽤した外部からのRDP接続 ##### T1021 Remote File Copy ##### PoshC2を利⽤したファイルのアップロー ドまたはダウンロード ### IOC(Indicator Of Compromised) #### ハッシュ値 7658d4c74b519187b2829359a921e374 f0fdb786ca994342a8a91adb5ba6987f #### 通信先 account[.]azure-microsoft[.]top 13[.]78[.]10[.]244 -----