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

RELROとformat string attackによるリターンアドレス書き換え

一つ前のエントリでは、format string attackでGOTに書かれたアドレスの書き換えを行ったが、RELRO (RELocation Read-Only) と呼ばれるセキュリティ機構を完全に有効にすることでGOTを書き換えられないようにできる。 ここでは、RELROに関連するリンカオプシ…

format string attackによるGOT overwriteをやってみる

一つ前のエントリではformat string attackによるメモリ読み出しをやってみたが、format string attackでは任意の位置のメモリ内容を書き換えることもできる。 ここでは、実際にGOT (Global Offset Table) と呼ばれるセクションに置かれるライブラリ関数のア…

format string attackによるメモリ読み出しをやってみる

バッファスタックオーバーフローに並んでよく知られている攻撃に、format string attack(書式文字列攻撃)がある。 これは、printf系関数のフォーマット文字列が外部から操作可能になっている場合に、細工した文字列を送り込んでメモリ内容の読み出しや書き…

VirtualBoxにKali Linux 1.0.6をインストールする

現時点で自分がインストールする際に行う手順をまとめておく。 インストール 新規仮想マシンを作成し、ISOイメージをマウントしてインストールする。 仮想CPUのPAE/NX機能を有効にする インストール後リブートすると、エラーが出て起動に失敗する。 これはVi…

Return-to-libcとmprotect(2)でDEPを回避してみる

Return-to-libcによるDEP回避ではすでに存在する関数しか呼ぶことができないが、実行時に動的にメモリ領域のアクセス保護オプションを書き換えることでスタック上の任意のコードを実行させることができる。 メモリ領域のアクセス保護オプションを書き換える…