データベースをハックする方法

ページ名:データベースをハックする方法

あなたのデータベースをハッカーから確実に守る最善の方法は、ハッカーになったつもりで考えることだ。もしあなたがハッカーだったら、どんな情報を探しますか?どのようにしてそれを手に入れようとするだろうか?データベースには数多くの種類があり、ハッキングの方法も様々ですが、ほとんどのハッカーはデータベースのルートパスワードをクラックするか、既知のデータベースエクスプロイトを実行しようとします。SQL文に慣れ、データベースの基本を理解していれば、データベースをハックすることは可能です。

方法1

SQLインジェクションを使う

  1. データベースが脆弱かどうかを調べる。 この方法を使うには、データベース文を使いこなす必要がある。ウェブブラウザでデータベースのウェブインターフェースのログイン画面を開き、ユーザー名フィールドに「'」(シングルクォート)を入力する。"Login "をクリックする。SQL Exception: quoted string not properly terminated"(SQL例外:引用符で囲まれた文字列が正しく終了していません)または "invalid character"(無効な文字)のようなエラーが表示されたら、データベースはSQLインジェクションに対して脆弱です。
  2. データベースのログインページ(または "id="または "catid="で終わるその他のURL)に戻り、ブラウザのアドレスボックスをクリックする。URLの後にスペースバーを押し、order by 1と入力し、↵Enterを押す。数字を2まで増やし、↵Enterキーを押します。エラーが出るまで増やし続ける。実際のカラム数は、エラーが発生した番号の前に入力した番号になります。
  3. どのカラムがクエリーを受け付けるかを調べます。アドレスバーのURLの最後で、catid=1またはid=1をcatid=-1またはid=-1に変更する。スペースバーを押し、union select 1,2,3,4,5,6と入力する(カラムが6つある場合)。数字は列の総数まで数え、それぞれをカンマで区切ります。を押すと、クエリーを受け付ける各カラムの番号が表示されます。
  4. SQLステートメントをカラムに注入します。例えば、現在のユーザーを知りたく、そのインジェクションを列2に入れたい場合、URLのid=1以降をすべて消し、スペースバーを押す。そして、union select 1,concat(user()),3,4,5,6--と入力する。Enter ↵ を押すと、現在のデータベース・ユーザーの名前が画面に表示されます。クラックするユーザー名やパスワードのリストなど、情報を返したいSQLステートメントを使用してください。
方法2

データベースのルートパスワードをクラックする

  1. デフォルトのパスワードでrootとしてログインしてみてください。データベースによっては、デフォルトでルート(管理者)パスワードが設定されていないものもあるので、パスワードフィールドを空にしてログインできるかもしれません。データベースのテクニカルサポートフォーラムを検索すれば、デフォルトのパスワードが簡単に見つかるものもあります。
  2. 一般的なパスワードを試してみよう。管理者がパスワードでアカウントを保護した場合(その可能性が高い)、一般的なユーザー名とパスワードの組み合わせを試してみてください。ハッカーの中には、監査ツールを使ってクラックしたパスワードのリストを公開している者もいる。いろいろなユーザー名とパスワードの組み合わせを試してみよう。
    • パスワードリストを集めた評判の良いサイトはhttps://github.com/danielmiessler/SecLists/tree/master/Passwords。
    • 手作業でパスワードを試すのは手間がかかりますが、大鉈を振るう前に試してみて損はありません。
  3. パスワード監査ツールを使う。様々なツールを使って、パスワードがクラックされるまで、何千もの辞書単語や文字・数字・記号の組み合わせを総当たりで試すことができる。
    • DBPwAudit(Oracle、MySQL、MS-SQL、DB2用)やAccess Passview(MS Access用)のようなツールは、ほとんどのデータベースに対して実行できる一般的なパスワード監査ツールです。 また、Googleで検索して、お使いのデータベース専用の新しいパスワード監査ツールを探すこともできます。例えば、オラクル・データベースをハッキングする場合、パスワード監査ツール oracle db で検索する。
    • データベースをホストしているサーバーのアカウントがあれば、John the Ripperのようなハッシュクラッカーをデータベースのパスワードファイルに対して実行することができる。ハッシュファイルの場所はデータベースによって異なります。
    • 信頼できるサイトからのみダウンロードすること。ツールを使用する前に、十分に調査すること。
方法3

データベースのエクスプロイトを実行する

  1. 実行するエクスプロイトを見つける Sectools.orgは、10年以上にわたってセキュリティツール(エクスプロイトを含む)のカタログを作成してきました。彼らのツールは評判が高く、世界中のシステム管理者がセキュリティテストに使用しています。彼らの "Exploitation "データベースをブラウズして(あるいは他の信頼できるサイトを見つけて)、データベースのセキュリティホールを突くのに役立つツールやテキストファイルを見つけてください。
    • エクスプロイトを掲載しているもう一つのサイトは、www.exploit-db.com。そのウェブサイトに行き、「Search」リンクをクリックし、ハックしたいデータベースのタイプ(例えば「oracle」)を検索する。提供されている四角にCaptchaコードを入力し、検索する。
    • 試す予定のエクスプロイトをすべて調べておき、潜在的な問題が発生した場合の対処法を知っておくこと。
  2. ワードライビングで脆弱なネットワークを見つける ワードライビングとは、ネットワーク・スキャン・ツール(NetStumblerやKismetなど)を実行しながら、安全でないネットワークを追い求め、その地域を車で(あるいは自転車で、あるいは歩いて)移動することである。ウォードライビングは技術的には合法だ。ウォードライビング中に見つけたネットワークから違法なことをするのはNGです。
  3. 脆弱なネットワークからデータベースを悪用してください。もしあなたがやってはいけないことをやっているのなら、自分のネットワークからそれをやるのは良い考えではないだろう。運転中に見つけたオープンネットワークの1つにワイヤレスで接続し、調査して選んだエクスプロイトを実行する。
この記事は、CC BY-NC-SAの下で公開された「 How to Hack a Database 」を改変して作成されました。特に断りのない限り、CC BY-NC-SAの下で利用可能です。

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧