2014-03-01から1ヶ月間の記事一覧

ROPとブルートフォースで32bit ASLR+DEPを回避してみる

ROPを使ってDEPを回避するには共有ライブラリのベースアドレスを知る必要がある。 しかしASLRが有効な場合においても、32bitであればブルートフォースで回避できることが知られている。 ここでは、ROPとブルートフォースを組み合わせることで32bit ASLR+DEP…

Return-oriented Programming (ROP) でDEPを回避してみる

Return-to-libcによるDEP回避では、libc内の関数を呼び出すことでシェル起動を行った。 そして連続して関数を呼び出すために、pop命令+ret命令の先頭にジャンプしてスタックを操作するということを行った。 この手法を発展させ、ret命令で終わる命令列の先…

Return-to-libcで連続して関数を呼んでみる

一つ前のエントリでは、Return-to-libcでsystem関数を呼び出しシェル起動を行った。 ここでは、複数の関数を連続して呼び出してみる。 環境 Ubuntu 12.04 LTS 32bit版 $ uname -a Linux vm-ubuntu32 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 1…

Return-to-libcでDEPを回避してみる

DEPが有効になっていると、データ領域に実行可能ビットが立たなくなるため、スタックに置いたシェルコードを実行させることができなくなる。 しかしこのような場合でも、スタックの状態を調整した上でライブラリ関数にジャンプすることで、関数を実行させる…

ブルートフォースによる32bit ASLR回避

「単純なスタックバッファオーバーフロー攻撃をやってみる」では、ASLRとSSP、DEPが無効な状態でのスタックバッファオーバーフロー攻撃を行った。 このうちASLRについては、32bit環境であればブルートフォースで回避できることが知られている。 ここでは、実…

スタックバッファオーバーフローによる標準入力からのシェル起動

一つ前のエントリでは、コマンドライン引数からデータを送り込みスタックバッファオーバーフローを起こした。 標準入力からデータを送り込むときも基本的には同じようにすればよいが、標準入力が端末ではなくなるため、シェルの起動には一工夫が必要になる。…

単純なスタックバッファオーバーフロー攻撃をやってみる

一つ前のエントリで作ったシェルコードを使って、スタックバッファオーバーフローを利用したシェル起動をやってみる。 環境 Ubuntu 12.04 LTS 32bit版 $ uname -a Linux vm-ubuntu32 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:42:40 UTC 201…

Linux x86用のシェルコードを書いてみる

なにごともまずは基本から、ということでシェルコードを自分で書いてみる。 なお、アセンブリコードはIntel記法を用いて表す。 環境 Ubuntu 12.04 LTS 32bit版 $ uname -a Linux vm-ubuntu32 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:42:40…

SECCON CTF 2013本戦に参加した

CTF

SECCON 2013 全国大会カンファレンス開催概要 SECCON 2013 全国大会 競技ルール 2014年3月1日(月)~2014年3月2日に開催されたSECCON CTF 2013本戦に某チームのメンバーとして参加した。 結果はまずまずといった感じ。まだまだ厳しい。 準備 まずは、Ubuntu…

Kali Linux 1.0をコンソールモードで起動するようにする

Boot KALI Linux in console mode (command line) as it was in BackTrack | linux how to's and tricks ペネトレーション用LinuxディストリビューションのKali Linuxは、デフォルトではGUIで起動する。 しかし、仮想マシン上で動かす場合などではGUIは重く…