网络安全 频道

WEB脚本代理的妙用

 LCX
可能很多人还不是很了解我所说的web脚本代理是个什么概念。WEB脚本代理就是在服务器上放一个asp或php等的动态的脚本,然后调用这个脚本去访问别的网站,那么被访问网站的显示你来访的IP就是服务器的IP。4ngel的PhpSpy后门和Marcos的aspadmin站长助手这两个webshell都集成了这个功能。无论是php或是asp的脚本代理其实都是调用了xmlhttp这一组件,将远程网站的数据用你所放webshell的服务器上来进行一次中转然后再将内容呈现给你而已。很多程序员都用这个原理来写一些小偷程序,像在网站上只放几个脚本文件就可以调用别的网站数据。如果我们把它用在了黑客攻击上,那能用它来做什么呢?我恰好用它来做了一点事,就是提升权限和内网入侵。
一、提升权限
这应当是一个特例,不过确确实实被我碰到了。我在一个被入侵的网站上放了一个海阳顶端网asp[URL=http://www.77169.com/Article/List/List_41.html]木马[/URL]。这个网站是一个公司的独立服务器,所以目录权限并没有像虚拟主机设置的那样变态,几乎所有目录都有可写权限,wscript.shell等命令也能运行。不过也正是因为是公司的独立服务器,所以也没有装serv-u这样容易的提权软件,也没有额外的第三方服务软件,系统补丁打得也很快,提权还是比较困难。替换服务是一个可行的办法,不过需要时间等待。经过仔细查看,得到了一些有用信息。该服务器是IIS+ASP+ACCESS搭配的web服务器,装有防火墙,对外只开放了80端口。另外,还装有了一个apache+tomcat+jsp的内部web系统,开放的是8080端口,内部web系统的物理目录也查明是C:\ApacheGroup\Tomcat
5.0\server\webapps。这也是我以前装过apache+tomcat+jsp,凭经验判断出来的。通过在海阳顶端里运行netstat
-an和用海阳顶端asp[URL=http://www.77169.com/Article/List/List_41.html]木马[/URL]的查看服务选项及目录信息能够了解到这3点。另外用ipconfig/all这个命令可以明确知道图1中显示的10.0.16.16这一内网ip的确就是该服务器的内网ip。

信息有了,提权思路也就来了。如果我能绕过防火墙,直接访问它内网的web系统http://10.0.16.16:8080,那么我就可以先用海阳顶端asp[URL=http://www.77169.com/Article/List/List_41.html]木马[/URL]传一个jsp的webshell到它的物理目录C:\ApacheGroup\Tomcat
5.0\server\webapps,然后再来调用这个jsp的webshell了。它的tomcat是以服务的形式安装的,jsp一般是继承了其系统权限。开始我以为好办,直接用htran.exe这个工具将其8080端口转到外网,我不就可以成功了吗?结果令我很失望,端口是转出来了,不过还是访问不了它的jsp系统,不知是什么原因。冥思苦想中,突然想到了我传一个asp脚本代理到它的网站,再调用这个脚本代理去访问它的内网的jsp
web系统不就可以了吗?它的内网web和外网web都在同一服务器上,用脚本代理去访问绕过防火墙是根本不成问题的,因为这个脚本代理会让内网web系统误认为是同一台机器在访问它。我手头上有一个Marcos写的WebProxy.asp脚本,就是起代理作用的。于是我改名为imgae.asp传到了外网asp系统的某个目录,先来看看它的效果:提交http://www.g****.com/uploadimages/image.asp?url=http://www.haiyang.net/safety/ip.asp****.com/uploadimages/image.asp?url=http://www.haiyang.net/safety/ip.asp。可以看到我的访问ip的确变成了www.g****.com该服务器的ip了。

www.haiyang.net/safety/ip.asp是我写的一个验证来访者ip、端口的小程序,代码很简单,如下:

ip->->port
->actfor->

好,脚本代理没有bug,那么再写一个jsp的webshell传到内网jsp
web系统的物理目录下吧。jsp的webshell我写得很简单,就是一个直接运行命令加用户的的小脚本tlist.jsp,代码如下:


也许会有人问,那为什么不采用现成一些jsp[URL=http://www.77169.com/Article/List/List_41.html]木马[/URL]呢。开始我还真试过了,因为我用的这个WebProxy.asp后边只能直接跟一个url文件,url文件里的某些post参数并不起作用,现成的jsp的[URL=http://www.77169.com/Article/List/List_41.html]木马[/URL]写得都有点复杂,功能也多,因此一些命令不可避免地要运用到一些参数。我把这个tlist.jsp传到了内网web的物理目录下,然后直接运行http://www.generalichina.com/upl ...
0/manager/tlist.jsp就在服务器上成功加了一个id为lcx的用户!如果要运行[URL=http://www.77169.com/Article/List/List_41.html]木马[/URL]的话,你只要把tlist.jsp里的“●String
cmd ="cmd.exe /c net user lcx lcx
/add";●”这句改动一下就可以了。像我传了一个tlist.exe到服务器的系统目录底下,然后改为“●String cmd
="tlist.exe";●”,运行http://www.generalichina.com/upl ...
0/manager/tlist.jsp运行效果。

在实际操作过程中要注意一点,如果你用tlist.asp运行了一次命令的话,想改下代码运行其它的程序就要把tlist.asp改一次名,要不然还是回显上一次执行的结果。另外,不知是此台服务器特殊还是其它的原因,我把[URL=http://www.77169.com/Article/List/List_41.html]木马[/URL]放在非系统目录,像c:\muma.exe,然后修改●String
cmd ="cmd.exe /c net user lcx lcx /add";●为●String cmd ="c:\muma.exe";●[URL=http://www.77169.com/Article/List/List_41.html]木马[/URL]并没有运行,只有放到系统目录system32底下才成功运行了,这个原因我现在也不是很明确。
二、入侵内网及其它妙用
入侵内网,在提升权限的第一个例子里其实已经很明确了,如果那台机器的内网web放在别的机器上,做法与提升权限的方法都是一样的,不过没有内外网在同一台机器上方便而已,这也算是[URL=http://www.77169.com/Article/Special/Special2/Index.html]脚本入侵[/URL]内网的一个思路吧,实际意义不是很大,聊胜于无。其它妙用是什么呢?如果你在学校内网里,只能上内网和访问学校的web服务器,学校的web服务器与外网又是相同的,那你在web服务器放一个WebProxy.asp或其它的脚本代理,是不是你在内网访问http://学校的web服务器/WebProxy.asp?url=http://www.163.net/index.html就可以上外网了呢?一个asp脚本我估计就会解决以前很多学生的烦恼了吧?
[本文是到的脚本代理WebProxy.asp已收录在本期[URL=http://pan.77169.org]光盘[/URL]]
编辑点评:我一直想找几个web
injection与系统结合的例子,来证明脚本真的可以做很多事。用asp执行jet溢出得到shell绕过wscript.shell算是一个,用脚本代理做转发这又是一个全新思路,如果脚本还能做出超乎你想像的事,那一定不要惊讶!
0
相关文章