MOBLOG | indiakiloの記録

モブでできている

セキュリティ・キャンプ2017 選-A-4を頑張る

セキュキャンの応募は2017.5.29に終了した。

選択問題は

  • 選-A-2 機械学習の弱点

  • 選-A-4 UNIX printf, forkについて

  • 選-A-5 cve-2016-0728について

を選択したが、A-2はまあまあ、A-5は解けず、A-4は時間がなくなり何もできなかった。

(A-4が泥沼過ぎて笑えなかった)

A-2, A-5の話は後ほどでまとめたいが、A-4を今からでも解きたい。

(このブログのアクセスカウンタが0なので、選考する人がまだ私の解答を見ていないことはわかっている!)

選-A-4. C言語のprintf()関数またはUNIXのfork()というシステムコールについて、これらはどのようなものですか?  数値や文字列を表示する・プロセスを作るというだけではなく、深堀りして考え、疑問を持ち、手を動かして 調べてわかったことを教えてください。 

これを今日(5.31)にやってみて、できたとこまでをとりあえずアップしたい。選考者様にはぜひ見ていただきたい。

選-A-5 CVE-2017-0728 ソースコード

2017.5.29 セキュリティ・キャンプ2017のエントリー応募を終えた。

選-A-5(問題文)のソースコードを解答で示せなかったため(文字数制限で)、ここに示す。

基本的には

Analysis and Exploitation of a Linux Kernel Vulnerability (CVE-2016-0728) | Perception Point

で紹介されているコードからcommit_creds関数とprepare_kernel_credのアドレスを自分の環境に合わせて書き換えただけである。

そしてこいつを実行しても、rootは奪えなかった。

SMEPかSMAPが機能して、阻止されたと考えている。

Stackjacking Your Way to grsec/PaX Bypass | Jon Oberheide

StackjackingというテクニックでSMEPを回避できるらしいので、今後試したい。

 

cve-2016-0728 exploit on sec-camp 2017 entry assig ...