1
0
mirror of https://github.com/nganhkhoa/malware.git synced 2024-06-10 21:32:07 +07:00

Update malware-tech_ref_and_memo.md

This commit is contained in:
mether049 2020-01-10 00:59:25 +09:00 committed by GitHub
parent 12f2b0d095
commit b15e979e5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -103,69 +103,109 @@ to do...
### alias
- コマンドのエイリアスを用いる
- エイリアスの確認方法
> get-alias # すべてのエイリアスの確認<br>
> get-alias iex #iexのエイリアス(Invoke-Expression)の確認
```
get-alias # すべてのエイリアスの確認<br>
get-alias iex #iexのエイリアス(Invoke-Expression)の確認
```
- よく利用されるエイリアス
> iex -> Invoke-Expression<br>
> sal -> Set-Alias
```
iex -> Invoke-Expression<br>
sal -> Set-Alias
```
- エイリアスの設定
> set-alias <Name> <Value><br>
> sal ping iex
```
set-alias <Name> <Value><br>
sal ping iex
```
### dot expression and amp expression(Invoke-Expression)
- 文字列で表現されたコマンドレットを実行
> .("get-alias")<br>
> &('gal')<br>
> iex("GeT-AliAs")
```
.("get-alias")<br>
&('gal')<br>
iex("GeT-AliAs")
```
### Combining characters
- 文字や文字列の結合
> 'i'+'ex'
```
'i'+'ex'
```
### Backticks
- コマンドレットや変数にバッククォートを挿入
> \`i\`e\`x("\`gal \`gal")
```
\`i\`e\`x("\`gal \`gal")
```
### Split method
- 文字列の分割
> 'bob@alice'.split('@') -> bob alice<br>
> 'bob@alice' -split '@' -split "i" -> bob al ce
```
'bob@alice'.split('@') -> bob alice<br>
'bob@alice' -split '@' -split "i" -> bob al ce
```
### Join method
- リストの結合
> "bob","alice" -join "@" -> bob@alice
```
"bob","alice" -join "@" -> bob@alice
```
### Concatenation operations
- 文字列の並べ替えおよび連結
> "{1} {0}" -f "Alice","Bob" -> Bob Alice<br>
> "{1} {0}" -f "Alice",("{1}{2}{0}" -f "b","B","o") -> Bob Alice
```
"{1} {0}" -f "Alice","Bob" -> Bob Alice<br>
"{1} {0}" -f "Alice",("{1}{2}{0}" -f "b","B","o") -> Bob Alice
```
### No Space
- 空白の省略
> "bob","alice"-join"@"
```
"bob","alice"-join"@"
```
### Pipe operator
- パイプによる引数の引き渡し
> 'Write-host 1' | iex
```
'Write-host 1' | iex
```
### $ENV variable
- 環境変数の値を文字列の作成等に利用
> .(\$seLLId[1]+\$shEllId[13]+'x') -> .(iex)<br>
> &($EnV:cOmSpEc[4,15,25]-JOIN'') -> &(iex)
```
.(\$seLLId[1]+\$shEllId[13]+'x') -> .(iex)<br>
&($EnV:cOmSpEc[4,15,25]-JOIN'') -> &(iex)
```
### Encode
- xor
- 文字16進数10進数等で指定可能
> 10-bxor"10" -> 0<br>
> "0xa"-bxor10 -> 0
```
10-bxor"10" -> 0<br>
"0xa"-bxor10 -> 0
```
- base64
> [System.Convert]::FromBase64String("Ym9iYWxpY2UK") -> bobalice
```
[System.Convert]::FromBase64String("Ym9iYWxpY2UK") -> bobalice
```
- zlib
> New-Object System.IO.Compression.DeflateStream([iO.mEmoRySTream] [sysTEM.ConVert]::frOMBASE64STrING("Ym9iYWxpY2UK"))
```
New-Object System.IO.Compression.DeflateStream([iO.mEmoRySTream] [sysTEM.ConVert]::frOMBASE64STrING("Ym9iYWxpY2UK"))
```
- unicode
> \[System.Text.Encoding]::Unicode.GetString($unicodeBytes)
```
\[System.Text.Encoding]::Unicode.GetString($unicodeBytes)
```
### Ascii code
- 文字などをasciiコードの10進数16進数表記で示す
> [string]\[char[]](0x69,0x65,0x58) -> i e X
```
[string]\[char[]](0x69,0x65,0x58) -> i e X
```
### Replace method
- 文字や文字列を置換する
> 'i e x'-replace ' ','' -> ieX
```
'i e x'-replace ' ','' -> ieX
```
### %(foreach-object)
- foreach-objectの省略系で%を利用
> ((0x69, 0x65, 0x58) | %{([char] [int] $_)})-jOIN'' -> ieX
```
((0x69, 0x65, 0x58) | %{([char] [int] $_)})-jOIN'' -> ieX
```
### Comment out
- コメントアウト
> <#bobalice#>
```
<#bobalice#>
```
### ref:
[Powershell Static Analysis & Emotet results](https://hatching.io/blog/powershell-analysis)