ツむヌトから振り返るsecdojo2018倏䌑み堎所

secdojo

こんにちは鳥貎士です

昚日は、セキュリティマむスタヌ道堎secdojo倏䌑み堎所

に行っおたいりたした

ツむヌトがぞろぞろ流れお行っおおりたしたが、これを振り返りの糧にしおみおいきたしょう

https://twitter.com/tori_toutoshi/status/1035399675585515522

たず初めに倫理の説明。
端的にたずめるず、守るためにはどう攻めるかを知る必芁がありたすが、その知識を䜿っお他人のサヌバヌに䟵入するのは違法です。
ずいうかそもそも違法云々以前に、自分の良心でなんずかなるよね、できるよね、できるはずだよね、ずいう話でした。

How to escalate privileges to administrator in latest Windows

たず最初のプレれンはこちらでした
登壇者は青山荘也氏@SoyaAoyamaです
タむトルを盎蚳するず、いかにしお最新のwindowsで管理者に暩限を昇栌するか、ですね。

Micro Softが脆匱性でないずいう認定を出したずいうこずで、公開に螏み切ったずのこずでした。
しかし今回䞊げるうちの片方に぀いおはCreators Updateが修正されおいるずいう話もありたした。

https://twitter.com/tori_toutoshi/status/1035390076149063680

バグハントの報奚金を払いたくないMicro $oftの陰謀ずいうのはいささか考えすぎか…?

ずたぁ背景はここたでにしおおきたしょう。

圓日に䜿ったスラむドはslideshareで公開されおいたす。

さお、ここからツむヌトに沿っお振り返っおいきたしょう

https://twitter.com/tori_toutoshi/status/1035388901764915205

Bsides Tokyoずいう情報セキュリティのアツいむベントが今幎の11月10日にあるようです

青山氏はBsides TokyoのOrganizerを務めるようで、Bsidesのむベントが日本、いや東アゞアで開かれるのは今回が初めおのようです。
参加登録フォヌムは近日公開ずのこずでした。

https://twitter.com/tori_toutoshi/status/1035389141968543744

AVTOKYOずいう、こちらも情報セキュリティの倧きいむベントが今たで䜕回も開催されおいるずいう話を聞きたした。
私は初耳でした…きっず知っおお忘れおたのかもしれない…

https://twitter.com/tori_toutoshi/status/1035392446178328576

今回のメむンテヌマであり脆匱性を䞀蚀で蚀い衚すずこういうこずになりたす。
ここからはその具䜓的な手法に぀いおの説明、実挔です。
実挔ずは蚀えトラブルが起きるのは䞖の垞…
たぁ最終的には実挔成功になりたす、ず前もっお釘を刺しおおきたす。

https://twitter.com/tori_toutoshi/status/1035393791295770624

今回タヌゲットずなるOneDriveのDLLはナヌザヌの個人アカりントのディレクトリにありたすが、このディレクトリはバヌゞョンによっお詳现に分かれおいるようです。
確かに手動でやる分には厄介ですが、こちらは実挔がうたくいかない原因ではありたせんでした。

https://twitter.com/tori_toutoshi/status/1035394343199170561

これがうたくいかない原因でした、既にロヌドされおいるDLLは再起動されない限り再床読み蟌たれるこずはないですね。
ずいうこずで再起動するずadmin暩限でcmdが起動したした。

実挔成功です。

https://twitter.com/tori_toutoshi/status/1035394976627056640

スラむドを芋おもらえればわかりたすが、今回芋぀かったのはどちらも単䜓で芋れば”軜埮な䞍具合”でした。
しかしこの2぀を組み合わせるこずでナヌザヌ暩限で動くアプリが任意の呜什をシステム暩限で実行できるずいう深刻な脆匱性になりたしたね。

朚より森が倧事な今回の脆匱性でした。

続いお質問コヌナヌ。
どうやっお脆匱性を芋぀けたのかずいう質問が来たした。

https://twitter.com/tori_toutoshi/status/1035395628455485440

答えはなんずたたたた芋぀かったずのこず。
しかしただあおずっぜうにDLLを差し替えおいたわけではなく、倧たかなアタリを付けながらやっおいるずのこず

https://twitter.com/tori_toutoshi/status/1035395796819095552

こんな名蚀も飛び出したした。
情報セキュリティに習熟するず脆匱性が光るそうです。
圓然物理的に光るわけではなく、なんずなくここに脆匱性がありそうだなずいう目が逊われるずいうこずです。

この埌にはどう察策すればよいか、ずいう質問が。

しかし察策のしようはないずのこず。
普遍的な”䞍審なアプリは起動しない”ずいうのが珟状䞀番有効な察策のようです。

これを螏たえおMSにずっおほしい改善策ずしお

https://twitter.com/tori_toutoshi/status/1035397545898401792

めっちゃ誀字っおたすが、蚌明曞の぀いた信頌できるDLLしか読み蟌たないようにするこずを挙げおおりたした。

早い修正を祈るばかりですね。

小䌑憩を入れ次のハンズオンぞ。

熱血メ゜ッドによるアセンブラ・リヌディング入門

続いおのハンズオンはこちらでした
登壇者は坂井匘亮氏@kozossakaiです

「倧熱血 アセンブラ入門」を著した坂井氏がハンズオン圢匏で熱血メ゜ッドを䌝授されたした

https://twitter.com/tori_toutoshi/status/1035400246900092928

タヌミナルずしおktermを䜿っおいたした。KDEラむクなUIでしたが、あれももしかしお自䜜OSなのでしょうか…?

https://twitter.com/tori_toutoshi/status/1035401161640009728

https://twitter.com/tori_toutoshi/status/1035403859676430336

https://twitter.com/tori_toutoshi/status/1035401965721665536

ドキュメントを読んで理解するこずも必芁ではあるが、それは効率的な孊習法ではない。

https://twitter.com/tori_toutoshi/status/1035401299485814784

そしお1100ペヌゞにもわたる倧熱血アセンブラ入門も、1ペヌゞ目から読むものではない。
著者の蚀葉だず説埗力ありたすね。

https://twitter.com/tori_toutoshi/status/1035401409515024384

ずのこず。
ただし1ペヌゞ目から読むものではない再掲

ハンズオン開始。
たずはそれぞれのファむルず基本的なこずがらの説明。

https://twitter.com/tori_toutoshi/status/1035402536830754817

実際なんずかなるず思いたしたたる

プログラムはなぜ動くのか、の知識だけでも孊習を進めるうえでは十分だず思いたす。

https://twitter.com/tori_toutoshi/status/1035404581025378304

サンプルで䜿ったCent OS 6.5はデフォルトではCUIですが、Xサヌバがむンストヌルされおおりstartxコマンドで起動できたす。

https://twitter.com/tori_toutoshi/status/1035405759549399040

坂井氏はscreenを掻甚しおいたした。

https://twitter.com/tori_toutoshi/status/1035406031369564161

自分はWSLのsshを耇数立ち䞊げお進めたした。

https://twitter.com/tori_toutoshi/status/1035408207034777600

各アヌキテクチャの説明。
セガサタヌンを知っおいる䞀般孊生はあたりいなそう。
そしおsparkではなくsparcです。

https://twitter.com/tori_toutoshi/status/1035408316455780352

Makeはクロスコンパむルをするこずもできたす。
なお自分はMakefileは読んでいたせん。

https://twitter.com/tori_toutoshi/status/1035408485070954497

ちょっず語匊がありたすね。
アヌキテクチャ名.cを線集し、ちょこっず倉え、コンパむル、アセンブル、リンクし、逆アセンブルしたものを比范察照しおいたす。

https://twitter.com/tori_toutoshi/status/1035409956285997056

cファむルの䞭身はしょがい関数、ワンラむナヌの単玔なサブルヌチン矀です。nullを返すだけ、1を返すだけ、など。

https://twitter.com/tori_toutoshi/status/1035410518071078912

正しく甚語を䜿うずこうなりたす。

https://twitter.com/tori_toutoshi/status/1035411069143900162

ld.scrはリンカスクリプトずいうもので、アセンブリをリンクする際に呌ばれたす。

https://twitter.com/tori_toutoshi/status/1035411994571038720

倉曎があったもののみ再コンパむルリンクしおくれたす。優秀

https://twitter.com/tori_toutoshi/status/1035413250681135106

arm-elf.dを芋るこずで埗られたニヌモニックの䜿われ方です。
armプロセッサの実行ファむルのmov呜什はこのように䜿われたす。

https://twitter.com/tori_toutoshi/status/1035413493892009987

甚語の補足です。

https://twitter.com/tori_toutoshi/status/1035413757717962752

甚語がもりもりです。

https://twitter.com/tori_toutoshi/status/1035414017097924608

広矩のコンパむルを正確に衚珟するずこのような蚀い方になりたす。

https://twitter.com/tori_toutoshi/status/1035415528699883521

ニヌモニックの述語ずしお頻繁に出おくるこれらの衚瀺はレゞスタを瀺す。
pcはプログラムカりンタのこず。

ニヌモニックはCPUの仕様䟝存、぀たり環境䟝存ずいうこずができたす。

https://twitter.com/tori_toutoshi/status/1035418184545759232

ここたで䜿っおきたサンプルファむルは実際には動きたせん。
アドレス調敎やスタヌトアップの蚭定が必芁ですが、この䞭にあるリンカスクリプトにはわかりやすさのために省いおいるからです。

../execディレクトリの䞭身であれば理論䞊は動く未怜蚌ずのこず。

https://twitter.com/tori_toutoshi/status/1035418679079366657

スタヌトアップの凊理はmain関数が実行される前に実行されたす。

https://twitter.com/tori_toutoshi/status/1035421415996981248

https://twitter.com/tori_toutoshi/status/1035420515798675456

たずめるず䞊のように蚀うこずができたす。

https://twitter.com/tori_toutoshi/status/1035421002593853442

このような知芋をサンプルファむルから埗るこずができたした。

https://twitter.com/tori_toutoshi/status/1035421854494683136

return sizeof(int)などを芋るこずで確認できたす。
intやlongのビットサむズが定数なのは圓然ず蚀えば圓然なのですが、実際にこうしお芋るず感心したすね。

https://twitter.com/tori_toutoshi/status/1035422821894086656

新しい呜什の知芋を埗たした。
ldr = load registerです。
察矩ニヌモニックずしおstr = store registerがありたす。

以䞋は本質情報です。

https://twitter.com/tori_toutoshi/status/1035425400107614208

ARM系プロセッサのオブゞェクトファむルを芋たす。

https://twitter.com/tori_toutoshi/status/1035426692859277312

するずEが瞊にきれいに䞊んでいるこずがわかりたす。
ARMのバむナリは固定長なので、きれいにEがならぶのですね。

なお80386系のintel CPUは可倉長なので、ランダムに䞊んでいるように芋えたす。
return呜什を瀺すC3がたくさん出珟しおいるこずが芋お取れたす。

ここで質問コヌナヌ。
1぀目はどうやっおこの手法にたどり着いたのかずいうもの。

https://twitter.com/tori_toutoshi/status/1035431309412188160

2幎間アセンブリ蚀語に觊れおきお手さぐりで孊んでようやく埗たずのこず。
本も順番に読み進めお確実に理解できるように工倫されおいる…
2幎間を1冊に凝瞮しわかりやすく䌝授する熱血メ゜ッド、アツいですね

あず冠する、ですね。

2぀目はバむナリに呜什以倖の情報が埋め蟌たれおいるず聞いたこずがあるか本圓かずいうもの
坂井氏も初耳だったらしく怜蚌がスタヌト。

https://twitter.com/tori_toutoshi/status/1035429355051085824

さながらプチCTFの様盞でした。

https://twitter.com/tori_toutoshi/status/1035428345419259905

リロヌドしおいるのはnanoでhexeditではありたせん。
Vimにもあったような…?

https://twitter.com/tori_toutoshi/status/1035431790381416448

タむムスタンプを含んでるんじゃねずいう掞察をもずに怜蚌。
その際にtouchコマンドがタむムスタンプの曎新に利甚されるこずを初めお知る雑魚䞊感

今回のハンズオンはセキュリティキャンプで行った講挔をベヌスにしたものずのこず。
こちらに資料が眮いおあるそうです、ありがたい。

この質問は3぀目で、最埌の質問がこんなもので申し蚳なくなった…

しかしアセンブリ蚀語を勉匷したくなるアツいハンズオンでした

LTコヌナヌ

続いおLTコヌナヌ、飛び入り1぀で蚈4぀のLTが行われたした。

たず1぀目は@MC_SEC_KB氏の叀兞で読み解く゚クスプロむトです、

萜語の時そばを題材に、脆匱性を持぀店員ずハッカヌ歊士の戊いをLTしおいたす。

https://twitter.com/tori_toutoshi/status/1035440038765449217

そのころ自分はtwitterに぀ぶやきすぎずしおアカりントを凍結されおいた暡様。
バスず道路暙識ず自動車を遞択しながらLTを聞いおおりたしたすいたせん

https://twitter.com/tori_toutoshi/status/1035442466449547264

総括するず時そばから芋えおくる脆匱性は。任意の型の入力を蚱しおしたった店員にある。
そしおその察応策ずしお、通貚型以倖を受け付けず、時刻を聞かれたら時刻型で返り倀を䞎える女将を甚意するこずである。

ずいうこずでした

この埌にgdbの䜿い方、ラむブパッチなどのgdbの応甚的なLTがありたした。
原因を正しく理解するこずの玍埗感ず原因究明の方法がテヌマ
他にもgdbのあんな䜿い方やこんな䜿い方も。

https://twitter.com/tori_toutoshi/status/1035442558158102528

スラむドの公開は特にされおおりたせんでした。

最埌にはPythonのミュヌタブル・むミュヌタブルの飛び入りLTが。
こちらはホワむトボヌドに曞かれおいたためスラむドはありたせん。

Pythonはすべおがオブゞェクト、を打ち出した蚀語です。
そしおPythonが独特な点ずしお、ミュヌタブル、むミュヌタブルの抂念がありたす。

ミュヌタブルは曞き換え可胜、むミュヌタブルは曞き換え䞍可胜ずいうこずですね。

図で衚すずLT聞いおたずきにしおあったメモ

こんな感じ。

a=1のずきは1ずいう数倀オブゞェクトが䜜成され、そのラベルずしおaが割り圓おられたす。`
1オブゞェクトのidを仮にxずし、aにはオブゞェクトidずしおxが栌玍されたす。

b=1のずきは1ずいうすでに存圚するオブゞェクトに、ラベルずしおbが蚭定されたす。
するずbが持぀idはxずなりたす。

このあずa = 2ず再定矩したす。
このずき2オブゞェクトがあたらしく生成され、この2オブゞェクトのidをyずするず、aにはidずしおyが栌玍されたす。

たた、a += 1ずむンクリメントしたす。
このずきも新しくidが仮にzの3オブゞェクトが生成され、aにはidずしおzが栌玍されたす。

このようにそれぞれのオブゞェクトを砎壊しお再定矩するのではなく、新しくオブゞェクトが生成されるのです。

これがむミュヌタブルなのです。

その察矩語、ミュヌタブルずは䜕ぞやずいう話です。

もう説明がめんどくさくなっおしたったのでここを読んでください。

おしたい

これでおしたいです1時から5時の長䞁堎でしたが、楜しく有意矩でむしろ短いず感じさせるような、そんな時間でした

この䌁画を䞻宰し堎所を提䟛しおくださった富士通さんに感謝

ずいうわけでそれではたた