1

Windows コンピューターの構成を検証するための Pester テストを作成しています。必要なテストの 1 つは、PowerShell AMSI が機能しているかどうかを確認することです。

機能を検証するために使用できる AMSI テスト文字列があります。以下のテストを作成しました。

It '"Antimalware Scan Interface" is working' {
    # AMSI test string 'AMSI Test Sample: 7e72c3ce-861b-4339-8740-0ac1484c1386'
    # (in the following as an obfuscated string)
    # must throw an error if executed (blocked by AMSI)
    $TestString = "FHJ+YHoTZ1ZARxNgUl5DX1YJEwRWBAFQAFBWHgsFAlEeBwAACh4LBAcDHgNSUAIHCwdQAgALBRQ="
    $Bytes = [Convert]::FromBase64String($TestString)
    $String = -join ($bytes | ForEach-Object { [char]($_ -bxor 0x33)})
    { Invoke-Expression -Command $String } | Should Throw
}

テストを実行すると、AMSI が非常にうまく機能しているため、Context ブロック全体が実行されませんでした。つまり、テストが実行されず、成功が報告されませんでした。

受け取ります"Error occurred in Context block" In Filename.Tests.ps1:420 Character:36 + Context 'Configure PowerShell' { + ~ The Script contains malicious data and was blocked by anti malware.(翻訳されたテキスト。原文は多少異なる場合があります。)

エラーの代わりに、コンテキストを実行して、エラーをスローしたことに対して「テスト成功」を返します。

この問題を処理したり、AMSI をテストしたりする方法はありますか?

4

0 に答える 0