一,su7是提权有几种方式?
有两种形式去干掉su7。
1>,登陆管理员控制台的页面
==>获取OrganizationId,用于添加用户
==>获取全局用户的“下一个新用户ID”
==>添加用户
==>添加用户的权限 or 添加全局用户权限
==>用户登陆
==>执行系统命令添加系统账户。
2>,登陆管理员控制台页面
==>基本WEB客户端
==>来到serv-u的目录下--users--Global user目录
==>上传一个你已经定义好的用户文件
==>用户登陆
==>执行系统命令添加系统账户
而本文件使用了第一种方法。
二,提权的原理?
Su7的管理平台是http的,很先进。
抓包,分析,发现了以下路程是可以利用的。
1.管理员从管理控制台打开web页面时,是不需要验证密码的。
2.管理员如果用某URL打开web页面时,虽然需要输入密码,但是无论输入什么,都可以进入。“/? Session=39893&Language=zh,CN&LocalAdmin=1”
3.管理员可以添加用户有两种,一种是全局用户,一种是某个域下的用户。而权限设置也是两种,一种是全局,一种是针对用户。
4.管理员添加了用户的这个包和设置权限这个包,是分开的。
所以,我可以抓包然后转换成php的socket连接post出去。
最后在用经典的ftp登陆,exec命令。达到提权。
在写php的过程中,遇到很多问题,比如函数不会用等等(—_—!以前没学过php),感谢“云舒牛”帮忙。。。
在分析包的流程,发现了一些特征,服务器返回的数据,全是以xml格式发来的。而在数据传输的过程中,设计的很经典。
Su7也有自己的数据库,他也会自己生成一个id。
这个ID是随机的,在你创建用户时,会先请求服务器生成一个,生成好后,修改该id的用户名,密码等。
这很像oracle的insert手段。
写工具的过程中,遇到很多麻烦,最大的麻烦就是这个ID问题,后来分析出来了。
添加权限时,也是可以利用这个ID的。
于是工具一共连接了6次服务器,这几次分别是:
1.用来登陆平台,使用那个输入任何密码都可以登陆的页面地址。返回一个sessionid,这个sessionid在以后的包都用到了。
2.获取OrganizationId,用于添加用户
3.用来请求一个用户ID。
4.修改该ID的登陆用户名,密码。
5.修改该ID的权限,加c盘的写删执行等。
6.这次连接是做坏事的,使用前面添加的用户执行系统命令。