SlideShare une entreprise Scribd logo
1  sur  16
難読化シェル芸
たいちょー
みなさん#!/bin/bash(こんにちはの意)
たいちょーです
IC科4年
/bin/bash在住
母語はC#
5分しかないのでかまないようにしたいです
シェル芸 #とは
シェル芸の定義バージョン1.1
マウスも使わず、ソースコードも残さず、
GUIツールを立ち上げる間もなく、
あらゆる調査・計算・テキスト処理を
CLI端末へのコマンド入力一撃
で終わらすこと。あるいはそのときのコマンド入力
のこと。
 上田ブログ(https://blog.ueda.tech/)より
シェル芸の例
拡張子を一括変更
ls ./*.txt | while read LINE; do mv $LINE
${LINE%.*}.bak; done
簡単なデータ集計
cat text.txt | sort | uniq -c | sort –r
できると非常に捗るので必修科目にすべき
シェル芸の仲間たち
Vimシェル芸
Vimの機能を利用するシェル芸のこと
危険シェル芸
危険なシェル芸のこと
難読化シェル芸
危険シェル芸 試してはダメ!
試してはいけない禁忌のこと
シンプルだがシェルやPCをぶっ壊す可能性がある
例)
echo “exit” >> ~/.bashrc
echo “” > /etc/passwd
rm –rf /*
yes | xargs –P 0 yes
$:(){:|:& };:
難読化シェル芸 #とは
コマンドを別のコマンドで置き換えてぱっと見
では何をやっているかわからなくすること
前述の危険シェル芸を隠蔽するために考案された軍
事用シェル芸
難読化シェル芸の例
echo *
lsコマンドになる
$(ls –-help | grep ^M | cut –c 4-6,16)
$(echo “ZGF0ZQo=“ | base64 –d)
$’x6461x74x65’
3つともdateコマンド
さらに隠蔽率を上げる
コマンドは基本英数字
↓
日本語で置き換えればシェル芸隠蔽率が上がる
↓
base64エンコードで日本語と英数字の対応をとる
日本語base64難読化シェル芸
例)
$(echo "あ"|base64|cut -c 3-5|
awk '{print tolower($1)}') ./hellowworld.c
gccコマンドになる
「あ」をbase64に通すと「44GCCg==」が得られる
日本語base64難読化シェル芸
「ら」「り」「る」をbase64に通すと
「ら」→ 44KJ
「り」→ 44KK
「る」→ 44KL
4文字目がアルファベット順になっていることが
分かる
日本語の組み合わせでコマンドが表現できる
日本語base64難読化シェル芸
日本語base64難読化シェル芸でdateコマンド
$(echo -n "そずねぞ"|
base64|grep -o '[a-z]'|xargs|
sed 's@ @@g‘
そ:44Gd
ず:44Ga
ね:44Gt
ぞ:44Ge
日本語base64難読化シェル芸
 base64を複数かませることで欲しい文字列を
得ることもできる
シェル芸界隈の通例に則って「うんこ」を別の
コマンドにします
$(echo "うんこ"|
base64|base64|base64|cut -c 4,27|
awk '{print tolower($1)}')
日本語base64難読化シェル芸
うんこがSLを走らせる
日本語base64難読化シェル芸はまさに
産業革命
お判りいただけただろうか
難読化シェル芸はまだ最近見つかったものなの
で研究しがいがあると思います
気になったら是非やってみてほしいです

Contenu connexe

Tendances (6)

青本勉強会2章
青本勉強会2章青本勉強会2章
青本勉強会2章
 
dwangocpp1-lt
dwangocpp1-ltdwangocpp1-lt
dwangocpp1-lt
 
Goodby Hatena, hello Sphinx
Goodby Hatena, hello SphinxGoodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
 
What is ahiruyaki?
What is ahiruyaki?What is ahiruyaki?
What is ahiruyaki?
 
芸人を 目指すわけでは ないけれど…(n575)
芸人を 目指すわけでは ないけれど…(n575)芸人を 目指すわけでは ないけれど…(n575)
芸人を 目指すわけでは ないけれど…(n575)
 
Gitを使ったRoute53の管理
Gitを使ったRoute53の管理Gitを使ったRoute53の管理
Gitを使ったRoute53の管理
 

Similaire à 難読化シェル芸

Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化
hiroyuki nakajima
 

Similaire à 難読化シェル芸 (18)

今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
 
Unixコマンド入門
Unixコマンド入門Unixコマンド入門
Unixコマンド入門
 
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
 
Rios::Proxy - A framework for CLI
Rios::Proxy - A framework for CLIRios::Proxy - A framework for CLI
Rios::Proxy - A framework for CLI
 
Displaylink : Reloaded
Displaylink : ReloadedDisplaylink : Reloaded
Displaylink : Reloaded
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
 
マシン語によるコード実行
マシン語によるコード実行マシン語によるコード実行
マシン語によるコード実行
 
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
 
PasteHub at kansai emacs 9th
PasteHub at kansai emacs 9thPasteHub at kansai emacs 9th
PasteHub at kansai emacs 9th
 
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpAPIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
 
Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化
 
Cargo makeを使ってみた話
Cargo makeを使ってみた話Cargo makeを使ってみた話
Cargo makeを使ってみた話
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
 
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
Shougoの開発環境
Shougoの開発環境Shougoの開発環境
Shougoの開発環境
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
今さら聞けない -Linux コマンドラインツールテクニック その1 rev. 4
今さら聞けない -Linux コマンドラインツールテクニック その1 rev. 4今さら聞けない -Linux コマンドラインツールテクニック その1 rev. 4
今さら聞けない -Linux コマンドラインツールテクニック その1 rev. 4
 

Plus de xztaityozx

Plus de xztaityozx (20)

呪符式高速詠唱シェル芸2
呪符式高速詠唱シェル芸2呪符式高速詠唱シェル芸2
呪符式高速詠唱シェル芸2
 
呪符式高速詠唱シェル芸
呪符式高速詠唱シェル芸呪符式高速詠唱シェル芸
呪符式高速詠唱シェル芸
 
surgeコマンド作りました
surgeコマンド作りましたsurgeコマンド作りました
surgeコマンド作りました
 
ナーベンシュタイン距離 ~グラフを添えて~
ナーベンシュタイン距離 ~グラフを添えて~ナーベンシュタイン距離 ~グラフを添えて~
ナーベンシュタイン距離 ~グラフを添えて~
 
あの、selのリベンジをさせてください
あの、selのリベンジをさせてくださいあの、selのリベンジをさせてください
あの、selのリベンジをさせてください
 
Owari version 2.0 をつくりました
Owari version 2.0 をつくりましたOwari version 2.0 をつくりました
Owari version 2.0 をつくりました
 
実績を達成しました!
実績を達成しました!実績を達成しました!
実績を達成しました!
 
ワタナBase59
ワタナBase59ワタナBase59
ワタナBase59
 
ocsとselってコマンド作ったわよ
ocsとselってコマンド作ったわよocsとselってコマンド作ったわよ
ocsとselってコマンド作ったわよ
 
ワタナベシェル
ワタナベシェルワタナベシェル
ワタナベシェル
 
柿と杮
柿と杮柿と杮
柿と杮
 
難読化PowerShell芸入門
難読化PowerShell芸入門難読化PowerShell芸入門
難読化PowerShell芸入門
 
シェル芸をドット絵にして思いを伝えよう!
シェル芸をドット絵にして思いを伝えよう!シェル芸をドット絵にして思いを伝えよう!
シェル芸をドット絵にして思いを伝えよう!
 
終わりを出力するコマンドつくった
終わりを出力するコマンドつくった終わりを出力するコマンドつくった
終わりを出力するコマンドつくった
 
ワタナベ難読化シェル芸
ワタナベ難読化シェル芸ワタナベ難読化シェル芸
ワタナベ難読化シェル芸
 
~/.bashrcを難読化しよう!
~/.bashrcを難読化しよう!~/.bashrcを難読化しよう!
~/.bashrcを難読化しよう!
 
CLIツール作るの楽しい
CLIツール作るの楽しいCLIツール作るの楽しい
CLIツール作るの楽しい
 
レッツゴー難読化シェル芸
レッツゴー難読化シェル芸レッツゴー難読化シェル芸
レッツゴー難読化シェル芸
 
超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸
 
部活でシェル芸がはやらない
部活でシェル芸がはやらない部活でシェル芸がはやらない
部活でシェル芸がはやらない
 

Dernier

Dernier (11)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

難読化シェル芸

Notes de l'éditeur

  1. シェル芸の定義はこうです 簡単に言うとコマンド入力一撃で何でもするということです
  2. 普通のシェル芸はこういうものです ある拡張子のファイルを別の拡張子にするシェル芸や テキストデータを集計するシェル芸です これらレベルのことはできると非常に捗るので必修科目にすべきだと思います
  3. シェル芸にはいくつか種類があります まずは普通のシェル芸 次にVimシェル芸 さらに危険シェル芸などです
  4. 危険シェル芸は決して試してはいけない禁忌のことです 例のようにシンプルだが試すと取り返しのつかないことになるシェル芸のことです 僕は1番上のやつをBoWにやって壊しました
  5. いままでのシェル芸は見ただけでだいたい何をしているのかがわかりましたが 今回お話しする難読化シェル芸では コマンドを別のコマンドで置き換え、ぱっと見で何をしているかわからなくすることを目的にします 前述の危険シェル芸を隠ぺいするための軍事用シェル芸です
  6. まずは簡単な例です 少し知識がある人ならばすぐに機能が分かるでしょう。これでは隠ぺい率が低いといえます 少し隠ぺい率を上げた例を挙げます 実はこれらは三つともdateコマンドになります
  7. さらに今回ぼくは日本語base64難読化シェル芸について少し研究しました コマンドは基本英数字です これを日本語でシェル芸隠蔽率があがること間違いなしです そこでBase64エンコードをつかって日本語と英数字の対応を取ります
  8. それが今回ぼくが3日ほど研究してきた日本語base64難読化シェル芸です 例えばこれ 実はこれはC演習などよく使ったあのコマンドです。なんだと思いますか 実はgccコマンドです
  9. 例えばらりるをbase64でエンコードするとこうなります 4文字目に注目するとアルファベット順になっていることがわかります つまり日本語の組み合わせでコマンドが表現できます
  10. これを応用してdateコマンドを作ります こうなります これはそずねぞがそれぞれdateに対応するためです
  11. 何回かbase64をかませることで目的の文字列を取得します IT業界では適当な変数などにhogeやfooをよく使いますがシェル芸界隈では代わりにうんこをよく使います 今回はこれにのっとってうんこをどうにか別のコマンドにします Base64を3回挟んでみました 実行したのを見てもらう方が分かりやすいのでやります
  12. うんこという文字列がSLになりました まさにこれは産業革命ではないでしょうか