Serv-U7 提权的经验总结
2009年4月16日星期四 | | | Serv-U7 提权的经验总结 本篇文章来源于 新世纪网安基地 (www.520hack.com) 原文出处:http://www.520hack.com/Article/Text2/200903/13716.html 由于作者懒,没有提供日志清理功能,会留下日志: 一,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.这次连接是做坏事的,使用前面添加的用户执行系统命令。 三,为啥我明明显示成功了,但是却提不上去? 这要看错误代码了,这里偶很惭愧,并没有写详细的错误代码判断。 一般有以下几种情况: 1,可能是因为管理员密码不对。 参照管理员密码的连接。 2,可能是因为管理员限制了执行SITE EXEC。 有待程序修改,程序可以加一个让他不限制的功能。 3,可能是程序问题。 4,为啥作者有这么多理由不去改? 你没发现么?一旦把东西做完美了,那比较系统的防御方案就出来了。 如果不完美,让他以为我们就这点手段,防御系统也会这么认为。 不信的话,过段时间,防御方案出来了,肯定有一条:"修改site exec为不可访问"。 到时候,我再写个功能,把这玩意改回来就是。 所以,等大家都提倡要XXXX的时候,我再解决XXXX的问题。大家先这么玩着吧:) 四,关于管理员密码 默认为空,如果密码为空,填什么都能进去。 如果修改过,管理员密码默认会在这里: C:\Program Files\RhinoSoft.com\Serv-U\Users\Local Administrator Domain\.Archive 文件中找到一个MD5密码值。 C:\Program Files\RhinoSoft.com\Serv-U 是su的根目录。 密码值的样式为(假设是123456) kx####################### #代表123456的32位MD5加密,而kx则是su对md5的密码算法改进的随机2位字符。 破解后的密码为kx123456,去掉kx就是密码了。 你可以针对这个加密生成字典。 本篇文章来源于 新世纪网安基地 (www.520hack.com) 原文出处:http://www.520hack.com/Article/Text2/200903/13716.html 我的QQ空间 克隆帐户之终结篇 克隆帐户之终结篇 序:相信大家都用过克隆帐户吧。无论是用工具... |