渗透测试之我是如何做信息收集

搞渗透的人应该都清楚,给一个目标站点做测试,第一步就是信息收集,通过各种渠道和手段尽可能收集到多的关于这个站点的信息,帮助我们更多的去找到渗透点。而信息收集的方式有很多,大致有搜索引擎、域名注册网站、shodan、github信息收集工具、网站公告等等,甚至还有社工的方式。网上关于信息收集也有很多相关的文章介绍,其实方式方法都大同小异。今天我主要介绍一下我在做信息收集的时候用到的一些工具和自己写的一些脚本,帮助我在渗透过程中更加方便的做好这一步。

拿到一个目标站点,首先肯定是利用搜索引擎,去搜索跟站点相关的内容。首当其冲的当然是谷歌,功能强大,各种信息收集的命令,方便准确,但国内访问受限,我这里总结了一些利用谷歌去做站点信息收集时常用的场景和命令。

除了Google之外,百度和微软的bing都可以作为信息收集的好帮手,可以与Google作为互补,有时候通过这两款搜索引擎收集信息时也能有意想不到的收获,但对于信息收集命令的支持就没有Google这么强大了。

信息收集另一种常用的方式就是通过一级域名去收集该域名下的子域名,通过站长之家的whois、域名备案查询、IP/域名查询工具就能搜索到一些相关域名和IP,针对这些方式我就不做详细介绍了,今天我介绍一下我常用的一款子域名探测工具---aquatone,下载地址:https://github.com/michenriksen/aquatone;

这款工具包含三个命令:

aquatone-discover:使用被动收集或字典爆破的方式去收集子域名; aquatone-scan:完成子域名扫描后,可扫描域名开放端口、HTTP header、HTML body、截图等信息生成报告; aquatone-gather:对扫描结果中的IP进行访问请求和网页截图,搜集信息;

这三个命令使用起来也非常方便,aquatone-discover跟上参数 -d 或--domain加上需要搜索的一级域名就可以了,这里有一点需要注意,在检索子域名的时候,会去shodan、censys、virustotal进行检索,需要在这些站点注册,并将各站点的key和secret配置在aquatone上。

Aquatone-discover探测子域名花费的时间会稍微有点长,检索完成之后会在目录下生成一个以一级域名命名的目录,检索的结果会存储在该目录下的hosts.txt和hosts.json文件中,内容包括发现的子域名及其对应IP:

子域名探测完成之后,就可以使用利用aquatone-scan探测域名开放的端口等内容,使用也很简单aquatone-scan--d/--domain 带上搜索的子域名,这时工具会自动去找到该子域名搜索结果的文件hosts.json,对检索到的域名进行探测。

在前面提到,我们查用搜索引擎去收集信息,但是如果通过一级域名搜索时,搜索到的结果会比较多,人工进行过滤的方式会耗费时间,这是我们可以利用上面检索到的子域名作进一步搜索引擎信息收集,缩小了结果范围,还可以利用工具进一步对搜索结果进行过滤,这里我以bing搜索引擎为例。

将需要搜索的站点做为参数传入,解析搜索结果页面,获取搜索到的域名URL,搜索结果比较多时还需要遍历搜索结果获取所有的URL:

运行后的结果大致如下:

这里可以发现有很多重复的URL,可以在检索完成之后做一次去重,有很多去重的方式,可以写入文件然后遍历去重,也可以写入redis中然后遍历去重,代价更大一点的方式是,在检索的过程中,存入list中,每次检索遍历list中的内容,如果已经存在则不写入,大家可以自己去实现。

信息收集的方式有很多,主要在于如何更有效的去收集信息,如何正确利用搜集到的信息,更多的收集到有效的信息能够帮助在站点渗透过程中有更多的突破点,发现站点中更多隐藏的问题。

*本文作者:yuegui_2004,转载请注明来自FreeBuf.COM

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-14

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏樯橹代码

深入探索WebSockets

在2008年中期,开发人员Michael Carter和Ian Hickson特别敏锐地感受到Comet在实施任何真正强大的东西时所带来的痛苦和局限。 通过在I...

7520
来自专栏IT码农

Yii2使用$this->context获取当前的Module/Controller/Action

使用Yii2的时候,在某些场景和环境下需要获得Yii2目前所处于的module(模型)、Controller(控制器)、Action(方法),以及会调用控制器里...

10140
来自专栏chenchenchen

@RequestBody和@RequestParam区别

注解@RequestParam接收的参数是来自requestHeader中,即请求头。

56010
来自专栏IT码农

javaScript的常见document对象

对象属性 document.title //设置文档标题等价于HTML的title标签 document.bgColor //设置页面背景色 docume...

13540
来自专栏BAT的乌托邦

HandlerMethodArgumentResolver(一):Controller方法入参自动封装器(将参数parameter解析为值)【享学Spring MVC】

在享受Spring MVC带给你便捷的时候,你是否曾经这样疑问过:Controller的handler方法参数能够自动完成参数封装(有时即使没有@PathVar...

9440
来自专栏BAT的乌托邦

【小家Spring】Spring MVC容器的web九大组件之---HandlerMapping源码详解(二)---RequestMappingHandlerMapping系列

上篇博客: 【小家Spring】Spring MVC容器的web九大组件之—HandlerMapping源码详解(一)—BeanNameUrlHandlerM...

13920
来自专栏IT码农

Yii2验证器(Validator)用法分析

如上所示,验证器主要使用在rules里面,对当前model里面的属性值进行验证以检查是否满足某种要求。

13220
来自专栏IT码农

231个web前端的javascript特效分享(仅供本人学习,非教程类型)

<input type=”text” value=”郭强”onfocus=”if(value==’郭强’) {value=”}”onblur=”if

21420
来自专栏BAT的乌托邦

【小家Spring】Spring MVC容器的web九大组件之---ViewResolver源码详解---视图解析器ViewResolver详解

Spring的一个优秀之处在于,把view层技术与MVC框架的其他部分离开来。 例如,选择使用Velocity或者XSLT来代替已有的JSP方式只需要修改配置就...

9820
来自专栏前端安全

前端安全之XSS攻防之道

XSS全称Cross Site Script,意为跨站脚本攻击。本质上是一种“HTML注入”,由于历史原因,最初这种攻击在演示的时候是跨域攻击的,所以就叫跨域脚...

22940

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励