Skip to content

Instantly share code, notes, and snippets.

@famasoon
Created September 10, 2016 06:11
Show Gist options
  • Save famasoon/c4d40236c9ca0e75e7869409c583f102 to your computer and use it in GitHub Desktop.
Save famasoon/c4d40236c9ca0e75e7869409c583f102 to your computer and use it in GitHub Desktop.

MBE Lecture 01

MBE のLecture 01についてメモ

用語

  • Machine コンピュータ、サーバ、CPUを搭載したもの 以下"マシン"

  • Binary EXE, ELF, MachO等といったマシン上で実行可能なコードを含んだもの 他には"プログラム"、"アプリケーション"、"サービス"と言われることもある 以下"バイナリ"

  • Malware 悪意をもって作られたバイナリで"ルートキット"や"RAT(Remote Access Tool)"のことを指す 以下"マルウェア"

  • Vulnerability バグの中でも"Exploit"の実行を許してしまうもの 以下"脆弱性"

  • Exploit 脆弱性を利用しバイナリが意図していない動作を実行させるために細工されたデータ マルウェアと同義ではない 以下"エクスプロイト"

  • 0day 全くの未知、または発見後もパッチの当てられていない脆弱性 以下"ゼロデイ"

  • Pwn/Pwning 脆弱性を調査したり、エクスプロイトを開発することを指す 以下も"Pwn"または"Pwning"と書く

セグフォ

「もし君のプログラムがただのセグフォで落ちたのなら幸運だと思うんだな」 - Prof. Stewart バイナリの中に脆弱性が見つかるとエクスプロイトによって実行コードを乗っ取られてしまう 乗っ取られると例えばこんなコードが実行される...

  • 権限の情報を奪われる
  • マルウェアのダウンロード、インストール
  • 情報の窃取
  • マシンの利用に支障をきたすような大混乱

Linuxの概要

  • 多くのオープンソースのOSで利用されているUNIXライクなオープンソースカーネル
  • C言語とアセンブリ言語で書かれている
  • バイナリとして"ELF(Executable and Linkable Format)"を用いる
  • MBEではUbuntu 14.04を対象に話を進めるが、身に付けるエクスプロイトのテクニックはLinuxで普遍的なものである

Linuxのコマンドライン

OverTheWireというサイトで練習できる

x86アセンブリ

重要なレジスタは下記の通り

  • EAX EBX ECX EDX 汎用レジスタ
  • ESP スタックの頂点を指すレジスタ
  • EBP スタックフレームで一番下のアドレスを指すレジスタ
  • EIP 次にCPUが実行するコードを指すレジスタ
  • EFLAGS フラッグの値を保持するレジスタ
  • ZF - "Zero Flag"の略で演算結果がゼロだとセットされるフラグ
  • CF - "Carry Flag"の略で演算結果が桁上り/桁下がりするとセットされるフラグ
  • SF - "Sign Flag"の略で演算結果が負となった時にセットされるフラグ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment