diff --git a/malware-tech_ref_and_memo.md b/malware-tech_ref_and_memo.md index 5c06f79..4d3f33b 100644 --- a/malware-tech_ref_and_memo.md +++ b/malware-tech_ref_and_memo.md @@ -327,14 +327,20 @@ New-Object System.IO.Compression.DeflateStream([iO.mEmoRySTream] [sysTEM.ConVert - レジスタにAPIのアドレスをsetして,jmpしてAPIを呼び出し - スタックにAPIのアドレスをsetして,retでAPIを呼び出し -## Poisoning CRT -- C/C++ランタイムライブラリに悪性コードを注入,特定のランタイム関数の改ざん +## Poisoning CRT Library +- C/C++ランタイム(CRT)ライブラリに悪性コードを注入,特定のランタイムライブラリ関数の改ざん +- libcmt.libやmsvcrt.libの上書き,不正なライブラリファイルの指定 - 改ざんされた事例があるランタイム関数 - __crtExitProcess():プロセスの終了。管理アプリケーションか否かのチェック - - __scrt_common_man_seh():cランタイムライブラリ_mainCRTStartupのEntryPoint + - __scrt_common_main_seh():cランタイムライブラリ_mainCRTStartupのEntryPoint - _security_init_cookie():セキュリティチェックを行う関数。バッファオバーフローを防ぐ - - _initterm():関数ぽインターテーブルのエントリー呼び出し -- コンパイラレベルで改ざんされるため,サプライチェーン攻撃として利用されることがある + - _initterm():関数インポートテーブルのエントリー呼び出し + - i.e. + - DllEntryPoint() -> __DllmainCRTStartup() -> _CRT_INIT() -> _initterm() -> __imp_initterm() -> malicious_code() +- コンパイル時点のレベルで改ざんされ,サプライチェーン攻撃として利用されることがある + - i.e. ShadowPad,CCLeaner,Operation ShadowHammer,etc. +- ref: + - [Analyzing C/C++ Runtime Library Code Tampering in Software Supply Chain Attacks](https://blog.trendmicro.com/trendlabs-security-intelligence/analyzing-c-c-runtime-library-code-tampering-in-software-supply-chain-attacks/) # Persistence ## Registry