「たのしいバイナリの歩き方」を実践してみた その05 | Maruoのブログ

Maruoのブログ

セキュリティ関連の記事を書いていくよ

第三章
ソフトの脆弱性を攻撃する仕組み
バッファオーバーフロー攻撃などを体験するって話。

まずは、環境構築ってことで、テスト用の仮想マシン(FreeBSD-8.3)をダウンロードして、VMware Playerで起動。
この環境で「たのしいバイナリの歩き方」のとおりコマンドを実行。

1. バッファオーバーフローを起こしてみる
$Maruoのブログ-ubu01

segmentation fault (core dumped)、つまりセグメンテーション違反のメッセージが出て、攻撃が成功したことがわかる。(詳細割愛)

2. root権限で任意のプログラムを実行

まず、etc/passwdの権限を確認
次に、/usr/bin/passwdの権限を確認
Maruoのブログ-ubu02

すると、アクセス権の部分が「s」になっているから、setuidが有効なプログラムだとわかる。

sample2.cというプログラムを使ってrootに昇格する
$Maruoのブログ-ubu04

sample2.cの実行前後で、guest から root に昇格していることがわかる
$Maruoのブログ-ubu03