新主页的安全性,然后给出URL是abc.target.net,我一看觉得挺眼熟的,target.net公司里面的CEO,人事部经理,网管我都认识的,前段时间还差点去了那里做网管呢,呵呵,那就看看他们的服务器做的如何吧。
随后用nmap扫描了一下abc.target.net,发现开的端口挺多的,看来没有安装防火墙或做TCP/IP过滤。从IIS版本判断是Windows 2000的服务器。IIS没什么好利用的,一看开了3306端口,是mysql的,就用我的mysql客户端尝试连接了一下,root的密码竟然为空,后来就觉得没有多大意思,于是把目标转到www.target.net,他们的主站,哈哈。
先用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:cmdmysql -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:inetpubwwwroot,c:www,c:wwwroot,c:inetpubweb,d:web,d:wwwroot,都不对,55555。大概猜测到第10次,我的mysql客户端回显信息如下:
mysql load data infile "d:wwwgbaboutabout.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了。