nmapでredisのパスワードをブルートフォースアタックする
提供: セキュリティ
スポンサーリンク
redisとは、KVS(Key Value Store)の1つです。redisのデフォルトのポート番号は6379です。redisは、パスワードでアクセスを保護できます。nmap NSEスクリプトのredis-bruteを利用して、redisに対してブルートフォースアタック(ブルートフォース攻撃、総当たり攻撃)をして、パスワードを探ることができます。
読み方
- nmap
- えぬまっぷ
- redis
- れでぃす
目次
概要
redisは、パスワード認証に対応しています。redisを利用する場合には、パスワード認証を有効にしましょう。
redisにパスワードを設定する
redisサーバにパスワードを設定するには、 redis.conf に設定します。 FreeBSD の場合は、 /usr/local/etc/redis.conf です。
requirepass パスワード
パスワードを設定したら、redisを再起動します。
$ sudo service redis onerestart # or $ sudo service redis restart
認証のかかっているredisへのアクセス
認証のかかっている redis にアクセスする場合、redis-cliでは、 auth コマンドでパスワード認証を行ってから、データにアクセスします。
$ redis-cli 127.0.0.1:6379> get a (error) NOAUTH Authentication required. 127.0.0.1:6379> auth (error) ERR wrong number of arguments for 'auth' command 127.0.0.1:6379> help redis-cli 3.0.3 Type: "help @<group>" to get a list of commands in <group> "help <command>" for help on <command> "help <tab>" to get a list of possible help topics "quit" to exit 127.0.0.1:6379> help auth AUTH password summary: Authenticate to the server since: 1.0.0 group: connection 127.0.0.1:6379> auth a (error) ERR invalid password 127.0.0.1:6379> auth foobared OK 127.0.0.1:6379> get a "100"
使い方
nmap --script redis-brute ip -p 6379
簡単なパスワードでクラックできた例
以下の例は、パスワードが1234という簡単なパスワードを設定している場合です。
$ nmap -p 6379 127.0.0.1 --script redis-brute Starting Nmap 7.00 ( https://nmap.org ) at 2015-12-11 22:20 JST Nmap scan report for localhost (127.0.0.1) Host is up (0.00027s latency). PORT STATE SERVICE 6379/tcp open unknown | redis-brute: | Accounts: | 1234 - Valid credentials |_ Statistics: Performed 609 guesses in 1 seconds, average tps: 609 Nmap done: 1 IP address (1 host up) scanned in 0.72 seconds
パスワードクラックに失敗した例
長いパスワードを用いた場合、失敗しました。
$ nmap -p 6379 127.0.0.1 --script redis-brute Starting Nmap 7.00 ( https://nmap.org ) at 2015-12-11 22:20 JST Nmap scan report for localhost (127.0.0.1) Host is up (0.00031s latency). PORT STATE SERVICE 6379/tcp open unknown | redis-brute: | Accounts: No valid accounts found |_ Statistics: Performed 5000 guesses in 1 seconds, average tps: 5000 Nmap done: 1 IP address (1 host up) scanned in 2.15 seconds
パスワードが未設定のときの例
パスワードが設定されていないときは、以下のとおりです。認証に関して、何も表示してくれません。
$ nmap -p 6379 127.0.0.1 --script redis-brute Starting Nmap 7.00 ( https://nmap.org ) at 2015-12-11 22:35 JST Nmap scan report for localhost (127.0.0.1) Host is up (0.00028s latency). PORT STATE SERVICE 6379/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 0.43 seconds
ファイルへの書き出し
nmapには、結果を指定したフォーマットで書き出すことができます。 ただし、形式によって、書き出される情報と出されないものがあります。 grep形式(-oG)では、パスワードがわかってもで、ファイルには書きだされません。 XML形式(-oX)では、パスワードがXMLに書きだされます。
ログ
/var/log/redis.log を見る限り、redisは、認証に関するログを出さないようですが・・・。
関連項目
ツイート
スポンサーリンク