正しく構成されおいないデヌタベヌスで、25,000のホストを持぀クラりド党䜓をキャプチャできた方法

こんにちは、Habr



私はそれほど昔はITに携わっおいたせんでしたが、最近、サむバヌセキュリティのトピックに倢䞭になりたした。ペンテスタヌの職業は特に興味深いものです。サヌフィンをしおいるず、SecurityShenanigansによる「DBの構成が䞍適切なために25,000を超えるホストのクラりド党䜓を所有できるようになった」ずいうクヌルな蚘事を目にしたした。䞡方の郚分の翻蚳ずあなたの泚意を喚起したす。



前曞き



この蚘事では、倧芏暡なクラむアントを危険にさらすためにBMC / IPMIを䜿甚しおデヌタベヌスぞの盎接sqlmap接続を実行する方法を孊習したす。



バックグラりンド



数幎前、私たちのチヌムは、Openstackネットワヌクでむンフラストラクチャ䟵入テストを実斜するずいうタスクを受け取りたした。これは、25,000を超える仮想マシンをホストする玄2,000の物理サヌバヌで構成されおいたした。発信トラフィックの量に制限のある小さなサブネットで䜜業を開始したした。クむックスキャンの埌、Nmapは悪甚される可胜性のある明らかな脆匱性を芋぀けるこずができたせんでした。そのため、私たちは利甚可胜なサヌビスの調査を開始したした。その䞭に、開発サヌバヌでホストされおいる無防備なPostgreSQLサヌバヌが芋぀かりたした。䌚瀟名のいく぀かの掟生物を䜿甚しおカスタムワヌドリストを䜜成した埌、アカりントからの比范的単玔なデヌタを䜿甚しおシステムに忍び蟌むこずができたした。ナヌザヌ名はPostgres、パスワヌドは「admin」でした。



次に、䜿甚するこずにしたしたsqlmap。このツヌルはSQLむンゞェクションを䜿甚するように構築されおいたすが、盎接デヌタベヌス接続を確立するずきに資栌情報がある堎合、いく぀かのオプションを提䟛するこずもできたす。これらのオプションの1぀は、本番環境のデヌタベヌスに察しおコマンドシェルを起動するこずです。







シェルをテストした埌、逆接続を取埗するためにカスタムペむロヌドペむロヌドを構築するこずにしたした。これにより、より快適に䜜業できるようになりたす。



msfvenomを䜿甚しおペむロヌドを䜜成したした。この堎合のペむロヌドは、Linuxx64マシンのリバヌスTCPシェルでした。前の画像では、デヌタベヌスアヌキテクチャを遞択する必芁があるこずがわかりたす。





msfvenomを䜿甚しおペむロヌドを収集する



このペむロヌドの利点は、単玔なNetcatを䜿甚しお接続し盎すために䜿甚できるこずです。他のほずんどのペむロヌドは、同じタスクに察しおMetasploit゚クスプロむト/マルチ/ハンドラヌを遞択のようなものを必芁ずしたす。



sqlmapラッパヌを䜿甚しおペむロヌドを実行した埌、サヌバヌぞの接続を取埗したした。





ペむロヌドの起動接続の回埩





ずアクセスのテスト



BMCデバむスの䜿甚



むンフラストラクチャ䟵入テストを実行し、新しいネットワヌクセグメント䞊のマシンを危険にさらすずきはい぀でも、新しいものが出珟しおいないかどうかを確認するために再スキャンする必芁がありたす。このデヌタベヌスにより、ほずんどの仮想マシンずホストを含​​む䌚瀟のクラりドネットワヌクに接続するこずができたした。いく぀かのBMCデバむスが芋぀かったため、新しいスキャンの結果に非垞に満足したした。





3぀のBMCデバむスの1぀



BMCBaseboard Management Controller、サヌビスプロセッサは、メむンサヌバヌに接続された優先的な組み蟌みデバむスであり、垯域倖の監芖ず制埡を提䟛したす。CPU、BIOS、オペレヌティングシステムずは独立しお動䜜したす。これらの芁玠のいずれかで発生する゚ラヌは、その動䜜に圱響を䞎えるこずはできたせん。マむクロプロセッサには独自のプロセッサ、メモリ、ネットワヌクむンタヌフェむスがあるため、サヌバヌ自䜓の電源がオフの堎合でも䜿甚できたす。すべおの䞻芁な機噚サプラむダヌは、自瀟補品に特定のBMCを持っおいたす。



  • Dell DRAC
  • IBM IMM
  • HP iLO
  • スヌパヌマむクロIPMI




あなたがに粟通する必芁があるこずを別の甚語は、IPMIむンテリゞェントプラットフォヌム管理むンタフェヌスは、基本的にあなたがこれらのデバむスずの通信に䜿甚するプロトコルです。その目的は、サヌバヌの電源がオフになっおいるが電源に接続されおいる堎合でも、オペレヌティングシステムに関係なく、サヌバヌハヌドりェアを監芖および管理するこずです。



IPMIは、芋぀けるこずができる最も安党でないプロトコルの1぀であるずだけ蚀っおおきたしょう。 IPMI 2.0は、認蚌ステップ䞭にサヌバヌからカスタムハッシュを盎接芁求できるように蚭蚈されおいたす。 「暗号0」モヌドで認蚌を芁求するず、別の脆匱性が存圚したす。これにより、任意のパスワヌドでログむンできるようになりたす。





IPMIブロックアヌキテクチャ



BMCデバむスは、デヌタセンタヌの組み立お段階で䞀床構成され、サヌバヌが埓来の方法で利甚できない堎合にのみ䜿甚されるタむプのデバむスであるため、通垞は保護が䞍十分です。暗号0が



有効になっおいる䞀郚のデバむスで簡単に認蚌できたした。





ここでは、ランダムなパスワヌドでログむンする方法を確認できたす。 「-C0」の郚分に泚意しおください。





ランダムなパスワヌドでデバむスに正垞にログむンしたデバむスの





ネットワヌク情報



䞀郚のデバむスで暗号0が有効になっおいない堎合でも、他の方法でログむンできたす。最も有名な2぀は、デフォルトの資栌情報を䜿甚するかsysadminは通垞倉曎を詊みたせん、ハッシュ開瀺の脆匱性を悪甚するそしおハッシュを壊すこずです。埌者はほずんどのデバむスで実行する必芁がありたした。





ほずんどのナヌザヌのBanalのデフォルトのナヌザヌ名ずパスワヌドのペア





サヌバヌに芁求するナヌザヌのハッシュを含む単語のリスト





metasploitを䜿甚したカスタムハッシュの拡匵





すぐに、兞型的なハッシュに関するデヌタを取埗したす。



すべおのハッシュを通過した埌、それらをクラックし始めたした。





最初のハッシュをクラック



する数分で、玄600個のBMCにアクセスできたした。





609個のハッシュが正垞にクラックさ



れたしたクラックできなかったHPILOデバむスがいく぀かありたした。幞いなこずに、HP iLO 41.00から2.50にも認蚌バむパスがありたす。これにより、Webサヌバヌによっお凊理されるHTTP接続ヘッダヌのバッファヌオヌバヌフロヌを介しお管理者アカりントを䜜成できたす。 ã“の゚クスプロむトはこれを䜿甚しお、APIの残りの郚分ぞの特暩アクセスを取埗したす。これにより、アカりントを䜜成する暩限が䞎えられたす。





CVEの䜿甚-2017-12542



これらの手順の埌、䌚瀟のBMCデバむスの90を完党に制埡できるようになりたした。BMCデバむスに぀いお読んだこずがあれば、次のこずができるこずがわかりたす。



  • モニタヌ
  • リブヌト
  • 再むンストヌル
  • KVM仮想化




接続されたデバむス。これは玠晎らしいこずですが、サヌバヌぞの物理的なアクセスをシミュレヌトするだけなので、内郚に入る必芁がありたす。はい、デバむスの電源を切るこずでだたされたすが、それだけでは䞍十分だず思ったので、掘り䞋げたした。



物理アドレスを持぀ハヌドりェアをハッキングする最も䞀般的な方法の1぀は、ハヌドりェアを再起動しお、ルヌトシェルの自動実行を制埡するこずです。これは、Unix、Mac、およびWindowsで実行できたす。



このアプロヌチの難しさは、各サヌバヌが通垞玄2000の仮想ホストをホストするこずです。そのため、未䜿甚のサヌバヌを芋぀ける必芁がありたした。蚈画は、それをオフにしたたは、すでにオフになっおいる堎合は開始する、自動実行を線集しおルヌトアクセスを蚱可するこずでした。その埌、構成を調べお、他のサヌバヌも危険にさらす可胜性のあるバグ/ペむロヌドを芋぀けたいず思いたした。



Openstackを䜿甚するず、ロヌカルむンフラストラクチャを照䌚し、特定のパラメヌタヌを照䌚できたす。それらの1぀は、仮想マシンの状態です。このロヌカル䌁業の堎合、VMの可甚性トラフィックを受信するためのホワむト/ブラックリスト+動䜜状態開始/無効ずしお定矩されたした。



ブラックリストに登録されたサヌバヌを芋぀ける必芁があり動䜜状態は関係ありたせん、ディスクの問題が原因で動䜜しおいないサヌバヌが芋぀かりたした。幞い、起動はできたしたが、ファむルシステムの䞀郚が読み取り専甚モヌドになっおしたいたした。





適切なハッキングサヌバヌのOpenstackリク゚スト



それが芋぀かったら、以前に芋぀けた資栌情報を䜿甚しおログむンしたした。





以前に取埗したアクセスを䜿甚し





たす。KVMむンタヌフェむスぞのアクセスKVMむンタヌフェむス



は、BMCを介したサヌバヌぞの盎接接続をシミュレヌトしたす。起動時に、Grub自動ロヌドを線集ro init = / bin / bashし、適切な行に远加しおルヌトシェルで起動する必芁がありたす..。通垞、読み取り/曞き蟌みフラグrwが䜿甚されたすが、障害が発生したディスクの問題を防ぐために、読み取り専甚フラグroを䜿甚する必芁がありたした。





grubメニュヌの線集



ログむン埌、ネットワヌクむンタヌフェむスを調べお、サヌバヌぞの接続をテストしたした。ご芧のずおり、ifconfigには10を超えるアクティブなむンタヌフェむスが衚瀺されたす。







ネットワヌクの構造を分析し、私たちがどこにいるかを理解するために少し時間を取った埌、私たちはサヌバヌの研究を始めたした。



数分で、bash_historyLinuxマシンで芋぀けるこずができる貎重な情報の最良の゜ヌスの1぀





novadb資栌情報の䞭間点がbash_historyに芋぀かりたした。



Openstackアヌキテクチャに慣れおいない人のために、Novaは、蚌明曞、クォヌタ、むンスタンス名、メタデヌタ、その他の重芁な情報など、クラりド党䜓の管理情報を栌玍する管理デヌタベヌスです。





資栌情報の確認ログむン



埌、grants_MySQLを䜿甚しお管理者アクセスを確認したした。







これを行うず、NovaDBの内郚構造を確認できたす。





Novadbデヌタベヌスのテヌブル



VMに関する情報を芋るず、玄34,000台のデバむスが芋぀かりたした。ただし、それらの玄3分の1は利甚できない/機胜しおいたせん。正確な金額は、行゚ントリfloat_ipsで確認できたす。







デヌタベヌスからのこのデヌタが非垞に重芁である理由を説明したしょう。



䌚瀟党䜓をシャットダりンする堎合は、BMCむンタヌフェむスを介しお各仮想サヌバヌをシャットダりンできたす。 sysadminsが電源をオンに戻すたで機胜したせん。



独自のマルりェアを䜜成しおすべおのサヌバヌに感染させるこずはできたすが、BMCチャネルを介した倧量展開は簡単ではありたせんアクセスする前に未䜿甚のサヌバヌを起動しおGrubの自動実行を線集する必芁があったこずを思い出しおください。



ただし、NovaDBにアクセスするず、デヌタベヌスを砎損するだけで、クラりド環境党䜓が機胜しなくなりたす。 sysadminがデヌタベヌスをすばやく確認できるほど賢いずしおも、砎損したデヌタベヌスのトラブルシュヌティングは、欠萜しおいるデヌタベヌスよりもはるかに困難です。



たた、システム管理者は䜕かが間違っおいるこずを理解し、最新のバックアップですべおを䞊曞きするだけですよね私たちもそれに぀いお考えたした。これが、先に進んでバックアップを危険にさらした理由です。



最初は、のようなものでメむンデヌタベヌスにク゚リを実行しようずしたした

SELECT * FROM information_schema.PROCESSLIST AS p WHERE p.COMMAND = 'Binlog Dump'; が、䌚瀟は䞍芏則に実行され、マスタヌ/スレヌブスキヌムを䜿甚しない独自のバックアップ゜リュヌションを䜿甚したした。そのため、メむンのポヌトず同じポヌトで実行されおいるバックアップデヌタベヌスを芋぀けるために、隣接するサブネットのスキャンを続けたした。





バックアップ



を芋぀ける方法既存の資栌情報を䜿甚する可胜性を確認したずころ、もちろん、それらが芋぀かりたした。





バックアップぞのアクセスの確認



独自のバックアップを䜿甚しお、仮想化むンフラストラクチャの完党な䟵害ず、数分で操䜜を完了する方法を蚌明するこずができたした。



私は垞にレビュヌ/レポヌトを終了し、芋぀かった問題を修正できるようにしたす。さらに、それらの倚くがありたした、䟋えば



  • 資栌情報の再利甚
  • ネットワヌクセグメンテヌションはありたせん
  • 犁止パスワヌド
  • 安党でないバックアップ構造
  • 叀いファヌムりェア


修正が容易ではなかった重倧な問題の1぀は、IPMIプロトコルの欠陥でした。 



最も成功する解決策は、BMC察応サヌバヌを、IPアドレスのリストが制限され、制埡された別のネットワヌクセグメントに配眮するこずです。これがこの䌚瀟が最終的に行ったこずです。



私たちの話を楜しんでいただけたでしょうか。私たちがこのトピックを孊ぶのを楜しんだのず同じくらい。



All Articles