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

 更新时间:2008年05月07日 20:17:03   作者:  
Serv-U本地提权的问题很古老了,不清楚的朋友谷歌一下先,我就不罗嗦啦。呵呵,最主要的是相继出现了php、perl、aspx版本的提权脚本,一时间刀光剑影满天飞,惟独缺了ASP版的。主要是由于郁闷的ASP不能像其他脚本那样访问Socket
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

网上流传可以利用MSWinsock控件实现,这是不好滴。因为这是个第三方组件,呵呵,几率相当小,既然要杀人灭口,嘿嘿,肯定要采用一套通杀的方法才是。
Serv-U服务器管理那里使用了FTP协议,所以我们应该研究一下FTP协议先。

正常的FTP协议的认证过程: 

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

user lake2

331 User name okay, need password.

pass lake2lake2

230 User logged in, proceed.

……




现在我乱来:

 

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

Hi, I'm Bill Gates!

530 Not logged in.

Open!

530 Not logged in.

I am hacker !

530 Not logged in.

Give you money

530 Not logged in.

user lake2

331 User name okay, need password.

pass lake2lake2

230 User logged in, proceed.

……




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

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

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

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

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

1、XMLHTTP先添加FTP用户;

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

3、XMLHTTP删除新用户

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

好在以前我也写过一个利用有执行权限的FTP帐号执行命令的程序,使得第2步方便了不少,程序这里下载之:http://xiazai.jb51.net/tools/hacktools/ftpshell.rar

完整的ASP代码这里下载:http://xiazai.jb51.net/tools/hacktools/suASP.rar

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

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

搞定散伙收工走人,enjoy it!

相关文章

最新评论

?


http://www.vxiaotou.com