ASP漏洞引发渗透攻击

网络整理 - 09-04
最近几天,网络上好像总是不太平,自从WebDAV漏洞的溢出工具发布之后,网上潜在的“肉鸡”好像慢慢多了起来。虽然补丁也已经发布多日,但是还是有人没有放在心上…… 

但是我今天要讲的并不是WebDAV漏洞的溢出攻击,而是一次用asp叶面漏洞引发的渗透攻击。 

前天晚上,一个多日不见的朋友,忽然在网上Q我(因为他是广东人,所以我以为他住院了,呵呵),聊了一会突然给了我一个地只要我看看,问我能不能得到发布新闻的权限…… 

老套路,ping一下域名得到IP地址,使用SuperScan进行端口扫描,呵呵,还是开了不少啊。 

21、25、53、80、110、139、445、3389等等。 

一个一个分析: 

1、开ftp是为了便于更新web资料吧!没有弱口令…… 

2、53 Domain Name System 看来有可能是控制器(逼急了就用RPC溢出,呵呵暴力倾向)。 

3、Telnet Targetip 80 看看, 

HTTP/1.1 400 Bad Request 

Server: Microsoft-IIS/5.0 

Date: Mon, 05 May 2003 14:22:00 GMT 

Content-Type: text/html 

Content-Length: 87 

The parameter is incorrect. 

失去了跟主机的连接。 

呵呵 IIS5.0 …… 可惜啊,没有WedDAV溢出漏洞。不错!网管很负责,已经贴好补丁了!值得表扬…… 

4、139、445 

不错 还有NetBIOS和IPC$共享不错,刺探了一下,得到了用户名和共享列表。 

5、3389 

没有紫光输入法又是windows2000+sp3+ W2K_sp4_x86_CN 别想了 等拿到administrator的权限再说吧! 

看来从这些方面考虑,暂时是行不通的了。于是我打开了网站的主页,看看是某日报的网站,呵呵!新闻很多啊!看看,是ASP的界面,很好的东东与法简单、可读性强,但是漏洞也不少,多是由于编程者的疏忽造成的,好办让我来浏览一下整个网站…… 

管理页面在哪里?试一下吧(社会工程学初级应用)! 

 没有 啊 无法显示 

 不行 

 嗯?出来了…… 

 回头一看……哦?不是朋友提供的地址吗? 

看看吧!要我输入用户名和密码,嗯——是个难题,呵呵,原来他就是想要这个啊!好!试试这个:在密码栏里面我输入了asp’or’1呵呵,进去了!为什么?来看这个! 

在ASP程序中,用户名和密码的校验是通过这样的MSSQL语句实现的: 

mydsn=” select * from user where user =’ ”&user&” ’ and pwd = ‘ ”&pwd&” ’ ” 如果”&pwd&”变成了asp’or’1意味着什么?带入看看 

mydsn=” select * from user where user =’ ”&user&” ’ and pwd = ‘ asp ’ or ’ 1 ’ ” 这些罗计算都是同级的从左到右看”&user&” and pwd = ‘ asp ’ 运算的结果为0 ,0 or 1 的结果是1 呵呵 所以就通过了! 

进去之后干什么?由于看到发布文章的同时可是粘贴图片附件,嘿嘿!我来看看,打开发表文章的页面果然有上传附件的地方,看来运气不错(不要高兴得太早,还不知道能上传什么哪)!点击粘贴附件,嘿嘿看到了什么现实的时候没有扩展名的过滤,是所有文件,意味着什么?哈哈!上传的文件当然也是所有类型啦! 

我上传了ASP木马,系统自动编号了。01090208.asp呵呵,问题在哪里呢?来找一找……头大!又是动脑思考的时候了。看看他的数据库吧!于是…… 

 不错!您没有权限…… 哈哈 原来真在这里啊!再试! 

 没有找到文件 

 嗯!行了!下载下来看! 

呵呵!里面由用户列表、文章列表、还有系统统计——要的就是它!哈!果然找到了,01090208.asp的绝对路径就在里面,好,输入到浏览器里面看看……出来了! 

 

将项目保存为LC3的文件格式——*.lcs。 

使用SMBProxy自带的工具将LC格式的文件转换为pwdump格式。 

E:\>perl lc3_conv.pl 2.lcs 

Administrator:500:89B9639B628096295FBE6BDC86679876:C6EBC896A3C134D4CF18063C33ACC926::: 

Guest:501:4316EDA750394C6B120438C30F7F1819:00000000000000000000000000000000::: 

TsInternetUser:1000:1987DC7B3DE4A42761541729CD9CDFDD:28212D01DDEF0A91BA9022173515E9A6::: 

………………………… 

转换完毕 

1. 停掉本机server服务,因为此程序默认使用127.0.0.1的139端口 

net stop server 

2. 运行本程序 

smbproxy -s target -f pwdump3.txt 好了 

3. 通过本地代理登陆远程主机 

net use * \\127.0.0.1\c$ 123456/user:administrator 

哈!成功! 

其实,不用SMBProxy也只不过是为了快一点登录,使用LC4破解也是可行的,主要还是因为我很懒…… 

擦出了痕迹,归还了权限,我就撤退了,呵呵! 


后记:关于ASP漏洞的补救,我不是很在行,只是提一些建议吧! 

将user = Trim(Request(“user”))改为user = Replace(Trim(Request(“user”)),” ”,” ’ ”) 以实现 ” ‘ ” 的过滤(被替换为空格)。 

数据库的下载是我猜解的,但是有这样的一种方法是绝对可行的。ASP使用一个连接文件将数据导入数据库文件这个文件一般以inc为扩展名,而且一般命名为conn.inc如果将它下载下来,就意味着数据库路径的暴露,所以要将conn..inc改为asp后缀,同时把数据库文件也改为asp扩展名并修改连接文件中的相关语句。 

对于上传文件限制的代码,我就不太懂了,不过有很多资料啊! 

其实系统的安全只不过是站点安全的一个重要组成部分,服务程序(web页面)的漏洞也会导致系统安全防线的崩溃,这次渗透功击就是一个例子。