网络通信 频道

Serv-U本地权限提升的ASP实现

最近的生活真无聊,寒冰掌老大见我无所事事,就说如果我能把Serv-U本地提权的ASP程序做出来就给介绍个MM,所以呢,就有了这篇文章^_^

字串1

Serv-U本地提权的问题很古老了,不清楚的朋友谷歌一下先,我就不罗嗦啦。呵呵,最主要的是相继出现了phpperlaspx版本的提权脚本,一时间刀光剑影满天飞,惟独缺了ASP版的。主要是由于郁闷的ASP不能像其他脚本那样访问Socket(另一个原因是因为老大没早点对我用美眉计^_^)。

字串9

网上流传可以利用MSWinsock控件实现,这是不好滴。因为这是个第三方组件,呵呵,几率相当小,既然要杀人灭口,嘿嘿,肯定要采用一套通杀的方法才是。 字串1

Serv-U服务器管理那里使用了FTP协议,所以我们应该研究一下FTP协议先。

字串3

正常的FTP协议的认证过程: 字串8

 

字串5

220 Serv-U FTP Server v5.2 for WinSock ready... 字串5

user lake2 字串3

331 User name okay, need password.

字串2

pass lake2lake2 字串8

230 User logged in, proceed.

字串7

…… 字串2

字串5

  字串1

现在我乱来: 字串7

 

字串6

220 Serv-U FTP Server v5.2 for WinSock ready... 字串5

Hi, I’m Bill Gates!

字串4

530 Not logged in.

字串6

Open!

字串3

530 Not logged in. 字串5

I am hacker !

字串7

530 Not logged in. 字串7

Give you money

字串2

530 Not logged in. 字串4

user lake2

字串8

331 User name okay, need password.

字串6

pass lake2lake2

字串6

230 User logged in, proceed. 字串5

……

字串7

字串8

 

字串8

注意,如果期待的数据不是user XXXServ-U将返回错误信息并一直等待正确的登陆命令。暗示着什么呢,呵呵,暗示我们要成功啦。 字串7

最近用XMLHTTP组件比较多,这个系统内置组件就是利用HTTP协议发送和接收数据。我们将利用这个组件实现Serv-U的提权。现在的问题在于我们怎么把FTP协议通过HTTP协议发送出去呢? 字串7

嘿嘿,没看到刚才我辛辛苦苦测试的结果么,只要利用POST方式提交数据,POST的内容是FTP命令就行啦,因为前面的HTTP报文头会被Serv-U认为是非法的命令而忽略,而POST的内容即FTP命令就会被接受执行!

字串9

由于XMLHTTPServ-U的特性,又带来一系列问题:XMLHTTP没有超时设置,由于等不到服务器响应的HTTP报文头,会一直挂起;XMLHTTP是单用户且复用Socket的,根据HTTP协议版本对同一目标只有2个或者4个连接,所以执行一次(或者2次)添加域删除域之后就不能再次连接了;Serv-U的管理模式使用的伪FTP协议,也就是不认QUIT命令,造成连接不能断开(用ServerXMLHTTP可以很好的解决这些问题,但是仅限于XP下,2000/2003上又不行,郁闷)。 字串3

所以只有用一个折中的办法来解决以上的若干问题: 字串1

1XMLHTTP先添加FTP用户;

字串1

2、自己登陆FTP用新帐号执行N多命令提权;

字串7

3XMLHTTP删除新用户 字串3

你必须记得,因为连接不能断开,你只有一次或者两次执行上述步骤的机会!如果还想再来,呵呵,等着IIS或者FTP重启吧。 字串3

好在以前我也写过一个利用有执行权限的FTP帐号执行命令的程序,使得第2步方便了不少,程序这里下载之:http://www.0x54.org/lake2/program/ftpshell.exe 字串5

完整的ASP代码这里下载:http://www.0x54.org/lake2/program/suASP.rar 字串5

ASP程序将在端口21添加一个用户名lake密码admin123的执行权限用户,有什么特殊情况(比如ftp端口不是21),自己改代码吧。

字串2

举一反三,似乎这样也可以在特定情况利用asp来访问FTP做些事情,不过那是你的事情了。

 

 

文章来源:http://www.hackhome.com/html/wlcl/wlaq/2006/0804/50644.html

0
相关文章