Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
xztaityozx
4,412 views
難読化PowerShell芸入門
2019/08/10開催の第43回シェル芸勉強会大阪サテライト LT大会で使った資料です
Engineering
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Downloaded 13 times
1
/ 46
2
/ 46
Most read
3
/ 46
4
/ 46
5
/ 46
6
/ 46
7
/ 46
8
/ 46
9
/ 46
10
/ 46
11
/ 46
12
/ 46
13
/ 46
14
/ 46
15
/ 46
16
/ 46
17
/ 46
18
/ 46
19
/ 46
20
/ 46
21
/ 46
22
/ 46
23
/ 46
24
/ 46
25
/ 46
26
/ 46
27
/ 46
28
/ 46
29
/ 46
30
/ 46
31
/ 46
32
/ 46
33
/ 46
34
/ 46
35
/ 46
36
/ 46
37
/ 46
38
/ 46
39
/ 46
40
/ 46
41
/ 46
42
/ 46
43
/ 46
44
/ 46
45
/ 46
46
/ 46
More Related Content
PDF
MagicOnion~C#でゲームサーバを開発しよう~
by
torisoup
PPTX
入門!Jenkins
by
Shuntaro Saiba
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PPTX
PenTesterが知っている危ないAWS環境の共通点
by
zaki4649
PDF
Apache Arrow - データ処理ツールの次世代プラットフォーム
by
Kouhei Sutou
PDF
戦う情シス!全社 API で社内アプリ開発を加速させよう
by
Yuki Hattori
PDF
Unityでオンラインゲーム作った話
by
torisoup
PDF
AWS Lambdaを紐解く
by
Keisuke Nishitani
MagicOnion~C#でゲームサーバを開発しよう~
by
torisoup
入門!Jenkins
by
Shuntaro Saiba
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PenTesterが知っている危ないAWS環境の共通点
by
zaki4649
Apache Arrow - データ処理ツールの次世代プラットフォーム
by
Kouhei Sutou
戦う情シス!全社 API で社内アプリ開発を加速させよう
by
Yuki Hattori
Unityでオンラインゲーム作った話
by
torisoup
AWS Lambdaを紐解く
by
Keisuke Nishitani
What's hot
PDF
Fluentdのお勧めシステム構成パターン
by
Kentaro Yoshida
PDF
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
by
Tatsuhiko Yamamura
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
とある診断員とSQLインジェクション
by
zaki4649
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
by
Takuto Wada
PDF
OPC UAをオープンソースやフリーのソフトで遊んでみた
by
ミソジ
PPTX
アジャイルメトリクス実践ガイド
by
Hiroyuki Ito
PDF
アジャイル開発とメトリクス
by
Rakuten Group, Inc.
PDF
最近のBurp Suiteについて調べてみた
by
zaki4649
PDF
FridaによるAndroidアプリの動的解析とフッキングの基礎
by
ken_kitahara
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
PDF
AWS IoTにおけるデバイスへの認証情報のプロビジョニング
by
Amazon Web Services Japan
PDF
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
by
Masahito Zembutsu
PDF
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
by
shinjiigarashi
ODP
Guide To AGPL
by
Mikiya Okuno
PDF
SpectreとMeltdown:最近のCPUの深い話
by
LINE Corporation
PDF
PythonによるOPC-UAの利用
by
Kioto Hirahara
PPTX
Ansible specでテストをする話
by
KeijiUehata1
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
Fluentdのお勧めシステム構成パターン
by
Kentaro Yoshida
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
by
Tatsuhiko Yamamura
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
とある診断員とSQLインジェクション
by
zaki4649
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
by
Takuto Wada
OPC UAをオープンソースやフリーのソフトで遊んでみた
by
ミソジ
アジャイルメトリクス実践ガイド
by
Hiroyuki Ito
アジャイル開発とメトリクス
by
Rakuten Group, Inc.
最近のBurp Suiteについて調べてみた
by
zaki4649
FridaによるAndroidアプリの動的解析とフッキングの基礎
by
ken_kitahara
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
AWS IoTにおけるデバイスへの認証情報のプロビジョニング
by
Amazon Web Services Japan
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
コンテナの作り方「Dockerは裏方で何をしているのか?」
by
Masahito Zembutsu
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
by
shinjiigarashi
Guide To AGPL
by
Mikiya Okuno
SpectreとMeltdown:最近のCPUの深い話
by
LINE Corporation
PythonによるOPC-UAの利用
by
Kioto Hirahara
Ansible specでテストをする話
by
KeijiUehata1
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
Similar to 難読化PowerShell芸入門
PPTX
難読化シェル芸
by
xztaityozx
PPTX
破壊的難読化シェル芸
by
xztaityozx
PPTX
みんなで!Base64難読化シェル芸
by
xztaityozx
PPTX
潜入工作任務用シェル芸
by
xztaityozx
ODP
楽しい怪しいシェルスクリプト - 第4回つくらぐ勉強会
by
University of Tsukuba Linux User Group
PDF
レッツゴー難読化シェル芸
by
xztaityozx
PDF
PowerShellが苦手だった男がPowerShellを愛するようになるまで
by
Kazuhiro Matsushima
PPTX
運用構築技術者の為のPSプログラミング第2回
by
Shigeharu Yamaoka
PDF
超・記号オンリー難読化シェル芸
by
xztaityozx
PPTX
Powershell勉強会 v3 (もっと新しいバージョンがあります)
by
Tetsu Yama
PPTX
Powershell勉強会 v2 (もっと新しいバージョンがあります)
by
Tetsu Yama
PPTX
運用構築技術者の為のPSプログラミング第1回
by
Shigeharu Yamaoka
PPTX
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
by
Tetsu Yama
PDF
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
by
Hisatoshi Onishi
PDF
はじめてのPowerShell
by
Trainocate Japan, Ltd.
PDF
20180123 power shell
by
Trainocate Japan, Ltd.
PDF
~/.bashrcを難読化しよう!
by
xztaityozx
難読化シェル芸
by
xztaityozx
破壊的難読化シェル芸
by
xztaityozx
みんなで!Base64難読化シェル芸
by
xztaityozx
潜入工作任務用シェル芸
by
xztaityozx
楽しい怪しいシェルスクリプト - 第4回つくらぐ勉強会
by
University of Tsukuba Linux User Group
レッツゴー難読化シェル芸
by
xztaityozx
PowerShellが苦手だった男がPowerShellを愛するようになるまで
by
Kazuhiro Matsushima
運用構築技術者の為のPSプログラミング第2回
by
Shigeharu Yamaoka
超・記号オンリー難読化シェル芸
by
xztaityozx
Powershell勉強会 v3 (もっと新しいバージョンがあります)
by
Tetsu Yama
Powershell勉強会 v2 (もっと新しいバージョンがあります)
by
Tetsu Yama
運用構築技術者の為のPSプログラミング第1回
by
Shigeharu Yamaoka
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
by
Tetsu Yama
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
by
Hisatoshi Onishi
はじめてのPowerShell
by
Trainocate Japan, Ltd.
20180123 power shell
by
Trainocate Japan, Ltd.
~/.bashrcを難読化しよう!
by
xztaityozx
More from xztaityozx
PDF
呪符式高速詠唱シェル芸2
by
xztaityozx
PDF
呪符式高速詠唱シェル芸
by
xztaityozx
PDF
surgeコマンド作りました
by
xztaityozx
PDF
ナーベンシュタイン距離 ~グラフを添えて~
by
xztaityozx
PDF
あの、selのリベンジをさせてください
by
xztaityozx
PDF
Owari version 2.0 をつくりました
by
xztaityozx
PDF
実績を達成しました!
by
xztaityozx
PDF
ワタナBase59
by
xztaityozx
PDF
ocsとselってコマンド作ったわよ
by
xztaityozx
PDF
ワタナベシェル
by
xztaityozx
PDF
柿と杮
by
xztaityozx
PDF
シェル芸をドット絵にして思いを伝えよう!
by
xztaityozx
PDF
終わりを出力するコマンドつくった
by
xztaityozx
PDF
ワタナベ難読化シェル芸
by
xztaityozx
PDF
CLIツール作るの楽しい
by
xztaityozx
PPTX
部活でシェル芸がはやらない
by
xztaityozx
PPTX
ダブルシンク難読化シェル芸
by
xztaityozx
PPTX
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
by
xztaityozx
呪符式高速詠唱シェル芸2
by
xztaityozx
呪符式高速詠唱シェル芸
by
xztaityozx
surgeコマンド作りました
by
xztaityozx
ナーベンシュタイン距離 ~グラフを添えて~
by
xztaityozx
あの、selのリベンジをさせてください
by
xztaityozx
Owari version 2.0 をつくりました
by
xztaityozx
実績を達成しました!
by
xztaityozx
ワタナBase59
by
xztaityozx
ocsとselってコマンド作ったわよ
by
xztaityozx
ワタナベシェル
by
xztaityozx
柿と杮
by
xztaityozx
シェル芸をドット絵にして思いを伝えよう!
by
xztaityozx
終わりを出力するコマンドつくった
by
xztaityozx
ワタナベ難読化シェル芸
by
xztaityozx
CLIツール作るの楽しい
by
xztaityozx
部活でシェル芸がはやらない
by
xztaityozx
ダブルシンク難読化シェル芸
by
xztaityozx
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
by
xztaityozx
難読化PowerShell芸入門
1.
難読化PowerShell芸入門 たいちょー
2.
みなさん#!/bin/bash(こんにちはの意) たいちょー @xztaityozx_001 母語はC# ゆるふわお嬢様系難読化シェル芸人
3.
最近 研究で思ってたより大量のデータが集まる DBにいれたい(DBわからん) 難読化シェル芸 難読化シェル芸わからん こわい
4.
難読化シェル芸 #難daコレ ありがとうございます(見てます)
5.
難読化シェル芸 ぞくぞくふえ~る
6.
難読化シェル芸 解読するだけで体力を失う 困る それぞれの個性を感じたりできて楽しい 楽しい
7.
PowerShell芸 PowerShell芸、始めました 勉強会の問題を解くなど
8.
PowerShellとは PowerShell(パワーシェル)は、マイクロソフ トが開発した拡張可能なコマンドラインイン ターフェース (CLI) シェルおよびスクリプト言 語である。オブジェクト指向に基づいて設計さ れており、.NET
Frameworkと.NET Coreを基盤と している。 -- Wikipediaより
9.
PowerShell 型があり、メソッドが生えてる "abc".ToUpper() => ABC .NETにある静的メソッドも呼べる [System.Text.Encoding]::Unicode.GetString( [Convert]::FromBase64String("RjCTMFMw")) => うんこ
10.
PowerShell芸 とりあえずFizzBuzz 1..30 | %{
((($_, "Fizz")[$_%3 -eq 0], "Buzz")[ $_%5 -eq 0], "FizzBuzz")[$_%15 -eq 0] }
11.
解説 1..30 seq 30と同じ $True =
1 $False = 0
12.
解説 () System.Objectの配列 ()[index] でアクセスできる
13.
解説 % ForEach-Object へのエイリアス ループ変数 $_
を操作して各Objectを加工できる 1..3|% {$_+1} 2 3 4
14.
解説 ($_, "Fizz")[$_%3 -eq
0] $_%3 == 0 ? "Fizz" : $_ と同じ意味 TrueとFalseがそれぞれ1,0になることを利用してる
15.
解説 1..30 | %{
((($_, "Fizz")[$_%3 -eq 0], "Buzz")[$_%5 -eq 0], "FizzBuzz")[$_%15 -eq 0] } これは15,5,3の条件演算をネストしているとい うことになる 簡単ですね!
16.
難読化PowerShell芸 本題です 難読化ターゲット Get-Date
17.
PowerShellで難daコレ 文字列を評価してもコマンドを実行しない # bash > d="date" >
$d 2019年 8月 2日 金曜日 15:40:35 JST # powershell > $d="Get-Date" > $d Get-Date #文字列が出力されるのみ
18.
Invoke-Expression Invoke-Expression bashとかでいうところのeval # powershell > $d="Get-Date" >
Invoke-Expression $d 2019年8月2日 16:14:36
19.
Invoke-Expression $d="Get-Date" $i="Invoke-Expression" $i $d #
$iが評価できないね!
20.
& Invoke-Expressionと似た動きをする これなら何とかできそう $d="Get-Date" & $d 2019年8月2日 16:14:36
21.
やること 記号のみから得られる文字列から"Get-Date"を 作り、変数に代入 & $date を実行して日付を得る
22.
記号変数 PowerShellでは${}で囲むとほとんどの記号を変 数にできる ${"}, ${@}, ${'}
23.
数値を作る この先数値が必要になるので記号変数に入れて おく ${;}=+$() # 0 ${%}=++${;}
# 1 ${;}++ # 2 ${+}=${;}*${;}*${;} # 8
24.
PowerShellの.&>/???/??/${##} なんかしらの文字列を得られるやつ "$?" ""+@{}
25.
"$?" 前のコマンドが 正常終了 => True 異常終了
=> False
26.
""+@{} これを実行すると System.Collections.Hashtable という文字列が得られる stringへのキャストでToString()が呼ばれるため
27.
文字の切り出し 欲しい文字だけを取り出す stringなので[]でアクセスできる ${@}=""+@{} ${@} # System.Collections.Hashtable "${@}"[0]
# S "${@}"[-1] # e
28.
組み立てる ではGet-Dateを作っていきましょう!
29.
Get-Date
30.
a,e,tを取り出す Collections.Hashtable ここからa,e True ここからT
31.
取り出せました ${;}=+$() # 0 ${%}=++${;}
# 1 ${;}++ # 2 ${@}=""+@{} # System.Collections.Hashtable "${@}"[-${;}-${;}] # => "${@}"[-4] => a "${@}"[-${%}] # => "${@}"[-1] => e "$?"[+$()] # => "True"[0] => T
32.
Get-Date
33.
残念ながらG,Dがありません System.Collections.Hashtable False True どこ探してもG,Dがありません…
34.
シグネチャからG,Dを得る string.Insert() のシグネチャは string Insert(int
startIndex, string value) なんとG,Dがありました!
35.
PowerShellでシグネチャを得る オブジェクト.メソッド名 とするとPSMethodオ ブジェクトを得られる stringへキャストするとシグネチャが得られる $s="".Insert #
PSMethodオブジェクトを$sに代入 "$s" # stringへキャスト # => string Insert(int startIndex, string value)
36.
"".Insertを作ってシグネチャを得る このシグネチャアクセスするにはInsertを作る必要 があります 文字自体はすでに揃っていますね $Insert="Insert" "".$Insert # "".Insertが呼べる
37.
できました ${;}=+$(); ${%}=++${;}; ${;}++
# ${%}=1, ${;}=2 ${@}=""+@{} ${&}="${@}"[-${%}$(${;}+${;})"]+"${@}"[${%}${;}"]+"${@}"[+ $()]+"${@}"[-${%}]+"$?"[${%}]+"$?"[+$()] ${&} # inSerT 大文字小文字は関係ない ${&}="".${&} # PSMethod Object "${&}" # string Insert(int startIndex, string value)
38.
G,Dを取り出します シグネチャを無事得られたのでG,Dを取りだします
39.
できました ${;}=+$(); ${%}=++${;}; ${;}++;
# ${%}=1, ${;}=2 ${+}=${;}*${;}*${;} # 8 "${&}" # string Insert(int startIndex, string value) "${&}"[-${+}] # => "${&}"[-8] => g "${&}"[-"${%}${+}"] # => "${&}"[-18] => d
40.
合体!!!発進!!! ${#}="${&}"[-${+}]+"${@}"[-${%}]+"$?"[+$()]+"-"+"${&}"[-"$ {%}${+}"]+"${@}"[-${;}-${;}]+"$?"[+$()]+"${@}"[-${%}] ${#} # geT-daTe &
${#} # Get-Date が実行される
41.
まとめ ${;}=+$();${%}=++${;};${;}++;${+}=${;}*${;}*${;};${@}=""+@ {};${&}="${@}"[-"${%}$(${;}+${;})"]+"${@}"[-"${%}${;}"]+"$ {@}"[+$()]+"${@}"[-${%}]+"$?"[${%}]+"$?"[+$()];${&}=""+$(" ".${&});${#}="${&}"[-${+}]+"${@}"[-${%}]+"$?"[+$()]+"-"+"$ {&}"[-"${%}${+}"]+"${@}"[-${;}-${;}]+"$?"[+$()]+"${@}"[-${ %}];& ${#} な、なにこれ…(ドン引き)
42.
OMAKE pwsh -c "Get-Date"
でbashからGet-Dateできま す ちょっと記号難読化してみます
43.
できました : "$(.&>/???/??/${##}) /*/$$";
__=(${_##*.}); : ${__[${##} +${##}]/¥/$$}; : -${_/${_%?}}; /???/?????/???/${__[${##}+${##}]:${##}:${##}}?${__[${##}]: -${##}-${##}:${##}}? $_ # /usr/local/bin/pwsh -c
44.
超!合体!!!! : "$(.&>/???/??/${##}) /*/$$";
__=(${_##*.}); : ${__[${##} +${##}]/¥/$$}; : -${_/${_%?}};/???/?????/???/${__[${##}+${ ##}]:${##}:${##}}?${__[${##}]: -${##}-${##}:${##}}? $_ '${ ;}=+$();${%}=++${;};${;}++;${+}=${;}*${;}*${;};${@}=""+@{} ;${&}="${@}"[-"${%}$(${;}+${;})"]+"${@}"[-"${%}${;}"]+"${@ }"[+$()]+"${@}"[-${%}]+"$?"[${%}]+"$?"[+$()];${&}=""+$("". ${&});${#}="${&}"[-${+}]+"${@}"[-${%}]+"$?"[+$()]+"-"+"${& }"[-"${%}${+}"]+"${@}"[-${;}-${;}]+"$?"[+$()]+"${@}"[-${%} ];& ${#}'
45.
おわり たのしいですね
46.
参考文献 PowerShell難読化の基礎 (1) -
Binary Pulsar https://binary- pulsar.hatenablog.jp/entry/2018/09/01/000000 PowerShellの演算子一覧 - しばたテックブログ https://blog.shibata.tech/entry/2015/12/03/000000 記号のみで任意のPowerShellコードを実行 - JPerl Advent Calendar 2010 Sym Track リンク切れ
Download