来源:自学PHP网 时间:2015-04-17 11:59 作者: 阅读:次
[导读] 本篇文章是上节内容的扩展,在本篇中我们来实际地展示一下黑客们是如何攻击一个网站,并拿到网站的控制权限的。通过上次的内容,我们知道可以通过注入得到需要的数据,比如后...
本篇文章是上节内容的扩展,在本篇中我们来实际地展示一下黑客们是如何攻击一个网站,并拿到网站的控制权限的。
通过上次的内容,我们知道可以通过注入得到需要的数据,比如后台管理员的账号、密码等,但是得到了账号密码后,我们要如何行动呢? 首先要制定一个渗透流程: 1、探测信息 2、利用漏洞得到管理账号密码 3、找到后台 4、登录后台取得web权限 探测信息 在实施第一步骤的时候,我们要得到一些基本信息: 1、server服务器的系统大概是什么? 2、Web环境是什么情况? 3、当前网站的域名ip的什么? 有了这个流程,捋好了思路,接着开始行动。 通过ping www.test.com命令行,得到的结果如图1所示: 图1 得到当前web ip为:193.168.20.223 接下来查看当前服务器运行的服务,在linux终端下输入命令:nmap -sV 193.168.20.223,得到的结果如下: root@Security:~/Desktop# nmap -sV 193.168.20.223 Starting Nmap 5.59BETA1 ( http://nmap.org ) at 2012-04-11 09:09 CST Nmap scan report for www.test.com (193.168.20.223) Host is up (0.00060s latency). Not shown: 992 closed ports PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS httpd 6.0 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 443/tcp open ssl/http Microsoft IIS httpd 6.0 445/tcp open microsoft-ds Microsoft Windows 2003 or 2008 microsoft-ds 1027/tcp open msrpc Microsoft Windows RPC 3306/tcp open mysql MySQL (unauthorized) 3389/tcp open microsoft-rdp Microsoft Terminal Service MAC Address: 00:0C:29:41:BE:DD (VMware) Service Info: OS: Windows Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 18.71 seconds 扫描结果为当前服务器运行的有http服务、msrpc、netbios-ssn、microsoft-ds、mysql、microsoft-rdp服务,具体情况如图2所示: 图2 然后再来查看当前的操作系统,在linux终端下输入命令:nmap -O 193.168.20.223,得到如下的结果: root@Security:~/Desktop# nmap -O 193.168.20.223 Starting Nmap 5.59BETA1 ( http://nmap.org ) at 2012-04-11 09:11 CST Nmap scan report for www.test.com (193.168.20.223) Host is up (0.00060s latency). Not shown: 992 closed ports PORT STATE SERVICE 80/tcp open http 135/tcp open msrpc 139/tcp open netbios-ssn 443/tcp open https 445/tcp open microsoft-ds 1027/tcp open IIS 3306/tcp open mysql 3389/tcp open ms-term-serv MAC Address: 00:0C:29:41:BE:DD (VMware) Device type: general purpose Running: Microsoft Windows 2003 OS details: Microsoft Windows Server 2003 SP1 or SP2 Network Distance: 1 hop OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 3.67 seconds 得到的扫描结果为当前服务器操作系统是Microsoft Windows 2003,可能是sp1也可能是sp2,具体情况如图3所示: 图3 然后继续查看当前的web环境是用什么搭建的,通过在linux终端输入命令curl -I www.test.com,得到如下反馈结果: root@Security:~# curl -I www.test.com HTTP/1.1 200 OK Date: Thu, 12 Apr 2012 07:04:07 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Content-Length: 35380 Content-Type: text/html Set-Cookie: ASPSESSIONIDCSTQCAQT=FFGDDPDDLDEEBFMENAGEBBJG; path=/ Cache-control: private 结果显示,Server: microsoft-IIS/6.0,如图4所示:
要知道,渗透测试是一个精细活,为了确保以上信息的可靠,我们还可以通过一个脚本继续查看一下精确信息,以便对比刚才得到的结果。 在linux终端输入:cd pentest/enumeration/web/whatweb/ 回车后继续输入: ./whatweb www.test.com 通过whatweb脚本得到如下结果: root@Security:/# cd pentest/enumeration/web/whatweb/ root@Security:/pentest/enumeration/web/whatweb# ./whatweb www.test.com http://www.test.com [200] HTTPServer[Microsoft-IIS/6.0], ASP_NET, Cookies ASPSESSIONIDCSTQCAQT], Country[EUROPEAN UNION][EU], Title[%CE%DE%B1%EA%CC%E2%CE%C4%B5%B5], Microsoft-IIS[6.0], X-Powered-By[ASP.NET], ActiveX, IP[193.168.20.223], Adobe-Flash 具体情况如图5所示: 图5 到目前为止,渗透测试的前期工作基本上已经做完了,得到了如下重要信息: 当前服务器ip :193.168.20.223 操作系统类型 :windows 2003 Web服务器 :iis 端口 :80 利用漏洞得到管理账号、密码 第二步就是需要得到管理员账号、密码,才能进一步地实施渗透测试。现在我们需要得到一个漏洞能获取到账号密码,通过上一期内容我们知道,注入可以得到所需的内容。 通过测试,发现http://193.168.20.223/news.asp?id=50确实存在sql注入漏洞,如图6所示: 但是我们知道,sql注入漏洞,尤其是access数据库的时候,必须是靠猜才能得到管理员的一些字段和表段。 经过测试我们知道,http://193.168.20.223/news.asp?id=50%20order%20by%2013 显示错误,如图7所示: 图7 而http://www.2cto.com /news.asp?id=50%20order%20by%2012则显示正确,如图8所示: 因此,我们得知一共有12个字段。接下来继续猜测账号、密码字段,如图9所示: 通过猜测一些常见的字段并没有猜到想要的结果,似乎遇到了瓶颈,此时就需要换种思路,去找找后台。之所以要找后台是因为有些网站的程序在后台登录的源码里有账号密码的字段内容,这个字段内容可能和数据库里面是字段信息是一样的,因为整套程序可能出自一个程序员,为了方便,他可能统一字段,此处利用的正是这个心理。 根据以往的经验,后台一般是网站后面跟着/admin、/manage等常见的后台目录,这里测试了几个都没有找到,如图10所示: 图10 思考一下,想到了robots.txt文件。robots.txt是为了防止蜘蛛爬虫爬出网站的敏感文件或者目录才写的一个txt。那么先测试一下是否有robots.txt,如图11所示:
很好,发现了后台地址,打开看看,如图12所示: 那么问题回到刚才,我们没有猜到正确的账号、密码,那么可以查看后台源代码的管理员和密码对应的源码来试试运气,很多次都是可以成功的,如图13所示:
<td width="40%" height=36 align="right"> 管理员:</td> <td width="60%" height=36><input name="gmadmin" id="gmadmin" 在这里发现了字段gmadmin,现在我们再回到前头,如图14所示:
猜出了正确的表段,我们通过变换gmadmin等,最终得到了gmpass字段,猜出了正确的内容,如图15所示: 图15 账号: admin 密码: E00CF25AD42683B3DF678C61F42C6BDA (md5密文) 通过查询www.cmd5.com得到明文密码是admin1,如图16所示:
本步骤中,我们通过注入点得到了管理员后台的账号、密码,这是我们预期要得到的内容。下一个动作就是通过登录后台来取得网站的最终权限了。 找到后台 在上一步骤已经通过访问robots.txt文件的方法找到了后台,现在可以登录后台查看都能做些什么。此时看了后台以后发现并没有什么特殊的地方,都是一些文章,没有常见的拿shell方法,比如数据库备份的功能,但是我们找到了一款熟悉的文章编辑器,因为这个后台程序过于单调,没法直接的方式拿到网站权限,所以尝试通过其他方式得到权限,如图17所示:
这款编辑器叫做ewebeditor,根据以往经验,ewebeditor有个独立的后台程序,但是要找到路径才可以登录,尝试查看了一下源码发现了好东西,如图18所示:
在源代码里面写着:<src="ewebeditor/ewebeditor.asp,这个意思就是ewebeditor就在当前目录的路径下面,完整url路径就是 http://193.168.20.223/howadmin/ewebeditor/。 Ewebeditor虽然是个独立的后台程序,但是我们知道,找到后台必须有账号密码才能登录,当然也可以尝试默认的账号密码如admin、admin888、123456等弱口令,如图19所示:
根据以往的经验,ewebeditor后台的登录文件名字是admin_login.asp,那么我们就通过目录文件泄漏来找找admin_login.asp在哪里,如图20所示: 在这里发现admin_login.asp下面还有一个DB的文件夹,打开一看是这个程序的数据库,非常棒,把它下载下来,从数据库里得到了账号密码,如图21所示: 图21 由于数据库是mdb结尾的,可以通过一些数据库查看器来查看内容,通过查看发现数据库的内容也是md5加密,如图22所示:
把内容继续拿到md5.com解密,得到了账号和密码的明文,随后便登录后台了。 登录后台取得web权限 首先,用得到的账号和密码登录后台,具体情况如图23和图24所示:
后台登录进来后,拿shell就有90%的希望了,根据以往经验,我们只需要再配置文件那里改更一下样式表就可以了,如图25和图26所示: 图25
在这里直接添加一个asp的样式,因为这个样式表只允许jpg或者bmp结尾的文件上传,所以需要添加一个asp的后缀,然后才能上传asp类型的文件,随后继续提交就更改成功了。返回到样式管理点击下样式预览,点击红色点头的那个按钮,可以传asp的程序了,如图27和图28所示:
然后点击查看源码,asp的路径就出来了,打开看看,如图29所示:
至此,整个渗透测试结束,成功完成入侵。 后记 目前的网络安全形式日益严峻,脚本黑客、工具黑客层出不穷,黑客攻击事件也是每天都会发生,所以做好自己网站的防护是必要的基础行为之一。 站长们可以通过瑞星网站密码安全检测系统来查看自己的网站安全性,该系统的开发理念就是帮助客户明白自己的网站是否安全,通过扫描,可以让您明白网站到底是哪里出了问题。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com