diff --git a/malware-tech_ref_and_memo.md b/malware-tech_ref_and_memo.md index 6b2067c..c9344df 100644 --- a/malware-tech_ref_and_memo.md +++ b/malware-tech_ref_and_memo.md @@ -93,6 +93,9 @@ to do... [A Museum of API Obfuscation on Win32](http://eval.symantec.com/mktginfo/enterprise/media/security_response/whitepapers/a_museum_of_api_obfuscation_on_win32.pdf)
## PowerShell Script obfuscation +- 難読化ツール
+[Invoke-Obfuscation](https://github.com/danielbohannon/Invoke-Obfuscation) +- Powershell Script内で用いられる難読化技術について ### case-insesitive - コマンドレットや変数を大文字,小文字を混ぜる - PowerShellでは区別されない @@ -106,7 +109,8 @@ to do... > iex -> Invoke-Expression
> sal -> Set-Alias - エイリアスの設定 -> set-alias +> set-alias
+> sal ping iex ### dot expression and amp expression(Invoke-Expression) - 文字列で表現されたコマンドレットを実行 > .("get-alias")
@@ -135,6 +139,35 @@ to do... ### Pipe operator - パイプによる引数の引き渡し > 'Write-host 1' | iex +### $ENV variable +- 環境変数の値を文字列の作成等に利用 +> .(\$seLLId[1]+\$shEllId[13]+'x') -> .(iex)
+> &($EnV:cOmSpEc[4,15,25]-JOIN'') -> &(iex) +### Encode +- xor + - 文字,16進数,10進数等で指定可能 +> 10-bxor"10" -> 0
+> "0xa"-bxor10 -> 0 +- base64 +> [System.Convert]::FromBase64String("Ym9iYWxpY2UK") -> bobalice +- zlib +> New-Object System.IO.Compression.DeflateStream([iO.mEmoRySTream] [sysTEM.ConVert]::frOMBASE64STrING("Ym9iYWxpY2UK")) +- unicode +> [System.Text.Encoding]::Unicode.GetString() +### Ascii code +- 文字などをasciiコードの10進数,16進数表記で示す +> [string][char[]](0x69,0x65,0x58) -> i e X +### Replace method +- 文字や文字列を置換する +> 'i e x'-replace ' ','' -> ieX +### %(foreach-object) +- foreach-objectの省略系で%を利用 +> ((0x69, 0x65, 0x58) | %{([char] [int] $_)})-jOIN'' -> ieX +### Comment out +- コメントアウト +> <#bobalice#> + + ### ref: