Submit Search
Upload
scryptos onsite(plaid CTF)
•
Download as ODP, PDF
•
3 likes
•
2,622 views
RKX1209
Follow
scryptosオンサイト勉強会のスライドです
Read less
Read more
Software
Report
Share
Report
Share
1 of 13
Download now
Recommended
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Linux packet-forwarding
Linux packet-forwarding
Masakazu Asama
ret2dl resolve
ret2dl resolve
sounakano
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
Takaaki Hoyo
たのしいPwn 公開用
たのしいPwn 公開用
uu ymd
Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作る
shimadah
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
Recommended
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Linux packet-forwarding
Linux packet-forwarding
Masakazu Asama
ret2dl resolve
ret2dl resolve
sounakano
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
Takaaki Hoyo
たのしいPwn 公開用
たのしいPwn 公開用
uu ymd
Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作る
shimadah
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
Akkaで分散システム入門
Akkaで分散システム入門
Shingo Omura
ARPスプーフィングによる中間者攻撃
ARPスプーフィングによる中間者攻撃
sonickun
PHPとシグナル、その裏側
PHPとシグナル、その裏側
do_aki
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
CODE BLUE
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
プログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットとその応用例について
Masanori Itoh
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
さくらインターネット株式会社
C# 8.0 null許容参照型
C# 8.0 null許容参照型
信之 岩永
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
Ethernetの受信処理
Ethernetの受信処理
Takuya ASADA
Pythonでパケット解析
Pythonでパケット解析
euphoricwavism
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
Hiraku Toyooka
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
Takayuki Shimizukawa
Wireshark入門(4)
Wireshark入門(4)
彰 村地
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
SECCON Beginners
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側
Shuichi Ohkubo
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
CODE BLUE
More Related Content
What's hot
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
Akkaで分散システム入門
Akkaで分散システム入門
Shingo Omura
ARPスプーフィングによる中間者攻撃
ARPスプーフィングによる中間者攻撃
sonickun
PHPとシグナル、その裏側
PHPとシグナル、その裏側
do_aki
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
CODE BLUE
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
プログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットとその応用例について
Masanori Itoh
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
さくらインターネット株式会社
C# 8.0 null許容参照型
C# 8.0 null許容参照型
信之 岩永
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
Ethernetの受信処理
Ethernetの受信処理
Takuya ASADA
Pythonでパケット解析
Pythonでパケット解析
euphoricwavism
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
Hiraku Toyooka
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
Takayuki Shimizukawa
Wireshark入門(4)
Wireshark入門(4)
彰 村地
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
SECCON Beginners
What's hot
(20)
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Akkaで分散システム入門
Akkaで分散システム入門
ARPスプーフィングによる中間者攻撃
ARPスプーフィングによる中間者攻撃
PHPとシグナル、その裏側
PHPとシグナル、その裏側
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
プログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットとその応用例について
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
C# 8.0 null許容参照型
C# 8.0 null許容参照型
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Ethernetの受信処理
Ethernetの受信処理
Pythonでパケット解析
Pythonでパケット解析
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
Wireshark入門(4)
Wireshark入門(4)
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
Viewers also liked
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側
Shuichi Ohkubo
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
CODE BLUE
さくらのIoT Platform αの裏側すべて見せます(第32回さくらの夕べ in 沖縄)
さくらのIoT Platform αの裏側すべて見せます(第32回さくらの夕べ in 沖縄)
さくらインターネット株式会社
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
CODE BLUE
[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park
[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park
CODE BLUE
第21回八子クラウド座談会資料(討議メモ付き) 20161022
第21回八子クラウド座談会資料(討議メモ付き) 20161022
知礼 八子
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
API Meetup
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
trmr
CTFの話 - coinsLT #10
CTFの話 - coinsLT #10
Yuki Mizuno
Viewers also liked
(9)
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
さくらのIoT Platform αの裏側すべて見せます(第32回さくらの夕べ in 沖縄)
さくらのIoT Platform αの裏側すべて見せます(第32回さくらの夕べ in 沖縄)
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park
[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park
第21回八子クラウド座談会資料(討議メモ付き) 20161022
第21回八子クラウド座談会資料(討議メモ付き) 20161022
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
CTFの話 - coinsLT #10
CTFの話 - coinsLT #10
scryptos onsite(plaid CTF)
1.
ASLR+PIEのbypass方法
2.
自己紹介 ● るくす(@RKX1209) ● 神戸大学
情報知能工学科 B3 20歳 ● kernelが好き(pwnもkernel exploitがやりたくて 始めました) ● 最近はCTFも少し
3.
ASLRとは ● Adress Space
Layout Randomizationの略 ● アドレス空間をランダム化する技術 ● 攻撃者が事前にアドレスを予測する事が困難に なりexploitの成功率が格段に下がる ● 最近のCTFでは殆どASLR環境が多い(ような気 がする)
4.
PIEとは ● Position Independent
Executableの略 ● EIPを動的に取得するようなバイナリを生成(こ れにより位置独立となる) ● libcアドレスに加え、 .text .got .pltなどのセク ションもランダム化される
5.
ASLR+PIE ● ASLR環境下でPIEバイナリを実行させるとほぼ全て のセクションアドレスがランダム化される ● ASLR
onlyならばbypass手法はいろいろある が、GOTやPLTアドレスを利用しているケースが多い ● →よってGOTやPLTアドレスが予測不可能になると殆 ど使い物にならない ● 非常に厄介 ● しかしその厄介さ故に攻撃手法が限られてくる
6.
ASLR+PIE bypass手法 ● ulimit
-s unlimited ● Brute force ● Partial overwrite ● Information leak ● Information leak(+ ret2vuln)
7.
ulimit -s unlimited ●
ulimit -s unlimitedを実行しスタックサイズを無 限に指定する事でASLRが無効になる ● root権限は必要ない ● カーネルの実装に依存 ● ターゲットのサーバーにログインできる事が前 提
8.
Brute force ● ランダム化されたアドレスを総当りで求める力技 ●
32bitアドレスなら2^32通り全て試すことも可 ● 実際は全て試す必要はない(意外とエントロピーが低い) ● 例えば0xb7X??000(X=5 or 6)などかなり絞られているケー スがある(カーネルの実装依存) ● [欠点] 64bitアドレスには使えない,サーバーに負荷をかける ため大会では禁止されているケースが多いなど
9.
Partial overwrite ● アドレスの一部(下位バイト)のみを書き換える手法 ●
リトルエンディアンの場合0x12345678はスタック上で 0x78563412と格納されている ● よってBofなどにより例えば0x78の下位2バイトのみを書 き換える事で、近いアドレスにジャンプさせる事ができ る。 ● [欠点]飛ばせる先が限られている(他の手法と組み合わせ て使う場合が多い),リトルエンディアンでしか使えない
10.
Information leak ● FSBやBuffer-over-Readを利用してアドレスなどの必要な情 報を得る手法 ●
libcやplt(got)といったアドレスの情報が動的に得られるた め、これを利用してret2libcやROPにつなげられる ● SSPなどの情報も得られるためかなりのセキュリティ機構を bypassできる ● さいつよ ● [欠点]情報を何度も読める必要がある。Buffer-over-Readが成 功してもその後コネクションが切られれば意味がない。1回 キリの実行バイナリには弱い
11.
Information leakの欠点回避 ● 一度キリで処理が終了してしまう場合return-to-vuln を利用するとうまく行く事がある ●
return-to-vulnという名前はinaz2さんによる物(もも テク参照) ● 脆弱性のある関数に繰り返しreturnする事で何度も 攻撃を行うというもの ● これにより何度もinformation leakを繰り返し、必要 な情報を取得した後適切な攻撃を行う事ができる
12.
Information leakの欠点回避(手順) ● まず脆弱性のある関数FにおいてInformation leakを行い必要な情報を取得する ●
Partial overwriteによりreturnアドレスを関数F の先頭に上書きし、再度Fを実行する ● 上記同様Information leakを行う。これを必要な 情報が得られるまで繰り返す ● 最後にlibcなどに飛び攻撃を行う
13.
まとめ ● Information leak+Partial
overwrite+return-to- vuln+(行いたい攻撃)が非常に強い ● Information leakが使えない場合はかなり無理 ゲー化してくる
Download now