您的位置:首页 > 编程语言 > ASP

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

2008-03-15 15:10 357 查看
Serv-U本地权限提升的ASP实现最近的生活真无聊,寒冰掌老大见我无所事事,就说如果我能把Serv-U本地提权的ASP程序做出来就给介绍个MM,所以呢,就有了这篇文章^_^Serv-U本地提权的问题很古老了,不清楚的朋友谷歌一下先,我就不罗嗦啦。呵呵,最主要的是相继出现了php、perl、aspx版本的提权脚本,一时间刀光剑影满天飞,惟独缺了ASP版的。主要是由于郁闷的ASP不能像其他脚本那样访问Socket(另一个原因是因为老大没早点对我用美眉计^_^)。网上流传可以利用MSWinsock控件实现,这是不好滴。因为这是个第三方组件,呵呵,几率相当小,既然要杀人灭口,嘿嘿,肯定要采用一套通杀的方法才是。Serv-U服务器管理那里使用了FTP协议,所以我们应该研究一下FTP协议先。正常的FTP协议的认证过程:
220 Serv-U FTP Server v5.2 for WinSock ready...user lake2331 User name okay, need password.pass lake2lake2230 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 money530 Not logged in.user lake2331 User name okay, need password.pass lake2lake2230 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://www.0x54.org/lake2/program/ftpshell.exe完整的ASP代码这里下载:http://www.0x54.org/lake2/program/suASP.rar该ASP程序将在端口21添加一个用户名lake密码admin123的执行权限用户,有什么特殊情况(比如ftp端口不是21),自己改代码吧。举一反三,似乎这样也可以在特定情况利用asp来访问FTP做些事情,不过那是你的事情了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: