【渗透技巧】浅谈常规渗透瓶颈,实例发散思维突破

0x01 写作目的意义

1 自我总结提升

无论是在工作项目,还是在个人学习中,总会遇到不少棘手的问题。有的人会放弃,然而求知者仍会锲而不舍的去想办法解决。解决问题的过程可能会非常的艰辛,但是解决后的成就感与喜悦感却一直吸引不少人为之努力。

一直在探索着,用最好最有效率的学习方法来面对一切的陌生事物。最终发现,如果能把学习、解决麻烦的过程进行整理、反思、总结与分享,那便是自我提升的快速之道。如果能坚持进行总结与反思,即持续量变到质变的过程,那肯定将得到质的飞跃。

2 知识分享交流

其实,在与他人分享的同时,自己也在学习、提高。讲课前需要整理思路、花心思制作展示ppt甚至搭建演示环境;分享中,可能会有人提问,引发新的思考,还会考验演讲水平…..演讲其实也是一门很大很重要的学问,根本不是拿着ppt上去念这么简单,其中的智慧想必大家在日后的生活与工作中会有所体会。

团队里的每一位成员都有各自的一技之长,如果每个人都能在工作中发现并利用自己的长处,不断突破自己去创新并与他人分享,那么大家只会越来越强,团队的凝聚力与战斗力也会愈加强大。【怀念以前的团队,其实这一段是想给团队里其他成员看的,可惜到离开都没和大家当面分享】

0x02 常规渗透思路

在确定渗透测试目标之后,绝大多数人都会用的常规思路无非是以下四种扫描:端口、目录、web漏洞及系统漏洞。然而实际环境更加复杂,比如部署各种waf,很可能通过扫描会一无所获。接下来将以项目中的一个真实案例进行分析,目标地址为:abc.xxx.cn

1 端口扫描(无端口开放信息)

常用且非常给力的端口扫描工具:nmap

使用nmap对目标进行扫描:

不能获取目标主机端口开放情况、开启服务情况。

2 目录扫描(无敏感路径)

使用御剑+大字典对目标进行扫描:

通过扫描结果来看,基本上对渗透没有多大帮助。

3 web漏洞扫描(无可利用漏洞)

关于web漏洞扫描的话,目前用的比较多的就是AWVS、AppScan、Jsky以及需要一定资格才能使用的bugscan、人人扫、360在线扫描,从使用范围来看,AWVS使用的比较广泛,且扫描漏洞的能力也不错。

使用wvs对目标进行扫描:

对扫描结果进行分析,得不到有利用价值的漏洞。此处是能扫但是不能获取有价值的线索,相比之下有的系统根本就不能进行综合扫描,更加棘手。

4 系统漏洞扫描(尚未进行)

系统漏洞扫描一般都是用Nessus。但是在一般的渗透测试过程中用的不多,一般在前面三步都得不到有价值的信息时候,才会进行系统漏洞扫描。由于我的nessus在另一虚机中且漏洞库尚未更新,此处便没有进行系统漏洞扫描。一般而言,做外网渗透测试时进行系统漏洞扫描收获不会很大,但是处于缜密的角度考虑,应该也是不可或缺的一步。

5 手工测试

5.1 目录遍历漏洞测试(无果)

依次点击不同网站栏目--内容,查看url地址并搜集相关信息:

http://abc.xxx.cn/unfilter/anban/a_fuxxns.htmlhttp://abc.xxx.cn/admin/newsjc/oxxw.do?pk=102http://abc.xxx.cn/shs/statute/snyye.do?mxxd=query&dzzlag=0http://abc.xxx.cn /shs/statute/stcccnage.do?mebbd=query&dng=1http://abc.xxx.cn/admin/newsab/olist.do?rexxk=20012&pesionPk=201……

通过右键查看图片路径,获取更深层次(有价值)的信息

http://abc.xxx.com/admin/upload/con_dodFile.do?loxxxfilename=%B9%FA%BA%BD%A1%B0%C2%C6%B1.jpg&destfilename=wxxian%B90967.jpg&uploadpath=null

此外还可以右键查看网站源码进行路径信息搜集

http://abc.xxx.com/imageshttp://abc.xxx.com/images/feibiaohttp://abc.xxx.com/csshttp://abc.xxx.com/include

通过尝试依次访问以上地址的当前目录、上一级目录、上上一级目录……测试是否存在目录遍历漏洞,比如:

访问当前路径:http://abc.xxx.cn/unfilter/anban

访问上一级目录:http://abc.xxx.cn/unfilter/

5.2 网站后台测试(无果)

根据搜集到的路径信息,猜测网站后台地址可能在admin目录下,先直接访问http://abc.xxx.cn/admin/

通过观察网站大多url都以 .do 、有的以 .jsp结尾,于是构造管理后台可能存在的地址 http://abc.xxx.cn/admin/login.jsp 网页不存在

还可能存在的地址 http://abc.xxx.cn/admin/login.do,

直接跳转至http://abc.xxx.cn/overtime.jsp并提示重新登陆。

继续点击重新登陆,就会跳转到网站首页http://abc.xxx.cn/index.jsp,此处说明对网站管理后台页面做了限制。

5.3 SQL注入测试(无果)

有时候扫描器通常在一些细微的地方不会太给力,比如用户查询、用户登录的等地方检测不出sql注入漏洞。如果在用户登录的输入框(username or password)处,一般又被称为万能密码,也会被当作登录认证绕过漏洞。几番周折之后对这个网站的结构有了明确的了解,并没有查询搜索框。所以除了常规的在url参数中加入单引号测试之外,就只有登陆框处可以进行测试。

Url中测试:网页被重置

用户登录处测试:无果

用户名处使用万能密码:

页面被重置

密码处使用万能密码:

请求依旧被重置。

5.4 跨站脚本攻击测试(无果)

跨站脚本攻击测试的特大秘诀便是:“见框就插”,经过多番探测只有在用户登录处才存在输入框。

输入xss测试语句后,页面连接被重置。

说明网站对特殊字符进行检测,一旦触发请求就会被重置。

此外,xss还存在于url的参数中,然而相对前者(输入框中的xss一般都属于存储型)这里的xss一般都是反射型。依旧输入测试语句:

不出所料,该请求依旧被重置。

至此,XSS测试差不多也算告一段落,宣告无果。

5.5 Struts2远程命令执行漏洞测试(无果)

通过前面的路径信息搜集,不难看出大多数url以 .do 结尾,初步可以判断出这个网站使用了SpringMVC或Struts2等web框架。如果是Struts2的话,就有可能存在远程命令执行漏洞,不过不管是不是都可以很方便的使用工具进行测试。关于这方面的利器,首选新业务开发中心ABC_123开发的这款,首先不设置全局Cookie:

检测结果不存在相关漏洞。

此处提出一个小经验:有的时候需要设置全局cookie才能检测出漏洞,即:登陆账户之后使用抓包工具抓取数据包查看cookie值并填入该处。

5.6 任意文件下载漏洞测试(无果)

点击学习园地,有很多内部期刊可以下载

点击下载可获取下载地址

http://abc.xxx.cn/admin/upload/common_downloadFile.do?filename=º½¿Õ°²È«2014ÄêµÚ6ÆÚ.pdf&jm=true&lx=true

分析下载请求中的filename参数,对该参数进行fuzzing测试。比如测试是否可以下载网站首页源代码index.jsp(http://abc.xxx.cn /index.jsp)。使用相对路径构造get请求:

http://abc.xxx.cn/admin/upload/common_downloadFile.do?filename=../../index.jsp&jm=true&lx=true

请求失败。当然也可以尝试获取其他文件,此处经过测试不存在文件下载漏洞。

注意:通常使用相对路径进行文件遍历、下载测试。./ 表示当前目录../ 表示上一级目录

5.7 逻辑漏洞/设计缺陷测试(无果)

关于逻辑漏洞方面,最重要的就是熟悉业务流程和分析修改HTTP请求。逻辑漏洞一般都出现在系统的业务流程中,常见的功能模块比如:用户注册、用户登陆、修改密码、找回密码、修改个人资料及网站业务特有的流程。

针对目标站点而言,目前唯一突破口就只有用户登录功能模块。

测试注册功能:下载用户登录信息文档,无法立即注册

测试忘记密码功能:点击无跳转,此功能无效

测试登录功能:不能绕过,无果

账户名与密码明文传输

查看response,无特殊字符不能被修改绕过认证。

此处的验证码每次都会刷新,且在后端验证,不能重复使用。

故不能进行暴力破解。

0x03 非常规渗透突破

结合目标系统的架构、业务功能等实际情况,常见的渗透测试招式都已经使出来,在弹尽粮绝之际仍毫无所获。相信没有一个系统是绝对安全的,打开脑洞,去搜集、思考更多的小技巧与思路。

1 github信息泄露尝试(无果)

从Github代码库中寻找目标系统的敏感信息。

搜集abc.xxx.com相关的vpn信息

abc.xxx.com vpn

搜集abc.xxx.com相关的邮箱信息

abc.xxx.com smtp

abc.xxx.com smtp password

搜索abc.xxx.com内部信息:abc.xxx.com。

以上搜索均为获得有价值的信息,但是不失为一种简单利好的方法。

2 社交网络信息攻击(无果)

使用社交网络查找目标站点、目标站点相关邮箱、管理员等信息

使用不同的关键词,从不同维度进行查询

有的时候可以在群备注处得到很多敏感信息,比如vpn账号信息等。此外还可以混入相关群,进行社工。

3 Google语法:同一域名下不同系统

使用google语法:site:abc.xxx.com进行搜索,获取同一域名下存在很多业务系统。

xx管理系统

xx审定证件系统

针对这些系统(部分系统登陆页面没有验证码)可以尝试弱口令,也可以进行用户名与密码的暴力破解。使原来的毫无头绪与思路,在经过信息搜集后有了更多的突破口。

4 Google语法:百度云盘泄露源代码

继续google语法找到上传百度云盘相关培训课件。

切不可放过蛛丝马迹,打开百度云盘链接

全是压缩文件,不清楚有些什么内容,任意下载一个的同时点击分享者名字访问其分享主页

继续翻他云盘里的文件夹,在xx系统交付物中发现网站源码及sql数据库文件

源码war包

Sql文件

获取网站源码与sql文件后,即可进一步代码审计从而发现更多的漏洞,对后续的深入渗透至关重要。

0x04 渗透思路总结

观察、思考,突破常规发散思维;

细心、耐心,勇于尝试不怕失败。

原文发布于微信公众号 - 我的安全视界观(CANI_Security)

原文发表时间:2017-12-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

安全科普:流量劫持能有多大危害?

作者 gethostbyname 上一篇文章,介绍了常见的流量劫持途径。然而无论用何种方式获得流量,只有加以利用才能发挥作用。 不同的劫持方式,获得的流量也有所...

1996
来自专栏BIT泽清

App Store审核成功解决2.1大礼包被拒后,通过最后一关的元数据被拒分享

最近这周帮一个客户上线一个棋牌游戏的项目,已经被3.2.1过后处理成功,又出现了2.1大礼包App完成度的问题;经过连续2天的加班通宵(当然是团队伙伴们车轮战拉...

4359
来自专栏程序人生

手把手教你做个生成静态网页的小工具:podgen

程序人生之图穷匕见的podcast发了四期(三期正式的)后,有几个读者说在微信上听效果不好,又没法暂停(停下后再听又从头开始了),能不能在iTunes 播客里面...

3379
来自专栏Fundebug

如何实现前端微服务化?

2647
来自专栏phodal

这些奇技浮巧,助你优化前端应用性能

我开始写前端应用的时候,并不知道一个 Web 应用需要优化那么多的东西。编写应用的时候,运行在本地的机器上,没有网络问题,也没有多少的性能问题。可当我把自己写的...

22610
来自专栏施工队

是前端最火的打包工具,是大前端自动化工厂的重要组成部分

webpack是前端最火的打包工具,是大前端自动化工厂的重要组成部分。上面的LOGO已经非常形象地表达了webpack所做的最主要的事情——打包,尽管它为非常多...

590
来自专栏张善友的专栏

跨平台网络抓包工具-Microsoft Message Analyzer

Microsoft Message Analyzer (MMA 2013)是微软最受欢迎的Netmon的最新版本. 在Netmon网络跟踪和排除故障功能的基础上...

1877
来自专栏CLEAN_CODER

CI基础 & Setup环境

CI (Continous Integration),持续集成。在我的印象中,它是一个项目开始前必须搭建起来的基础设施。在现在的软件开发项目中,几乎没有项目是只...

691
来自专栏云计算D1net

Docker将在存储上崭露头角?

Docker与存储纪实 在容器中运行应用的想法——也作为OS级虚拟化著称——目前来看是一种潮流技术。这种技术的真身可以追溯到大型机时代。 但是在过去的12个月...

29112
来自专栏程序人生

如何使用一门新的语言

在去年的文章里,我谈了 如何学习一门新的技术。那篇文章通篇形而上,讲大道理,读者颔首称赞,但回过头来在应用层面还是懵懵懂懂,不明就里。今天,我就我过去三周的经验...

2706

扫码关注云+社区