OSINT 之信息收集

渗透测试 2019-11-10

本文讨论如何使用网上的开源信息来构建目标,收集的数据可用于识别服务器、版本号、漏洞、错误配置、可利用的端点和泄露的敏感信息。

概念介绍

开源智能(OSINT)

指:从公共可用来源收集的数据,用于情报环境 (从公共的,未分类的来源获得大量可操作和预测的情报)在情报界,“开放”一词指的是公开的,公开的来源(与隐蔽或秘密来源相对),OSINT 在一个或另一个名称下已存在数百年,它与开源软件或公共情报无关。

*---维基百科*

1、Whois 查询

Whois 可以用于查找管理员联系人相关的电子邮件地址,得到电子邮件之后可以通过 HaveIBeenPwned:

https://haveibeenpwned.com/

检索该电子邮件是否存在安全问题。

img

除了电子邮件地址,whois 查询还可以返回可用于社工的IP历史信息,域过期日期甚至电话号码。

1、virustotal

www.virustotal.com

2、domaintools

whois.domaintools.com

Domain Name: APPSECCO.COM
Registry Domain ID: 1926407109_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.namecheap.com
Registrar URL: http://www.namecheap.com
Updated Date: 2018-01-24T22:38:48Z
Creation Date: 2015-05-06T19:08:33Z
Registry Expiry Date: 2020-05-06T19:08:33Z
Registrar: NameCheap Inc.
Registrar IANA ID: 1068
Registrar Abuse Contact Email: abuse@namecheap.com

2、Google 高级搜索

限制到目标域,查找 php(或任何服务器端脚本文件类型),txt 或日志文件

site:*.example.org ext:php | ext:txt | ext:log

E.g: 使用类似搜索查询能识别出包含敏感信息和应用程序完整系统路径的有趣文件(例如日志文件)可以将此查询与减号运算符耦合以排除特定搜索结果。

3、站点检索

检索对应站点相关的文档(pdf、doc、ppt、xls)等,这些文档可能包含可用的攻击信息。

site:*.example.org ext:pdf | ext:doc| ext:docx | ext:ppt | ext:pptx | ext:xls | ext:xlsx | ext:csv

更多用法可以查阅:

1、Google_advanced_search

https://www.google.co.in/advanced_search

2、google-hacking-database

https://www.exploit-db.com/google-hacking-database/

img

4、robots.txt 检查

检查 robots.txt 文件中是否有隐藏的,有趣的目录:大多数框架和内容管理系统都有明确定义的目录结构。如 admin 目录是 /admin/administration ,如果没有,robots.txt 很可能包含您寻找的目录名称。

img

5、子域名枚举

枚举子域名,以找到客户端托管基础架构的低挂果和较弱的入口点。子域枚举很容易成为评估和发现客户在线公开的资产的最重要步骤之一。

子域枚举可以使用各种工具完成,例如 dnsrecon,subbrute,knock.py,使用Google的网站运营商或dnsdumpster 甚至 virustotal.com 等网站。

img

6、Shodan与Censys

强大的 Shodan 不仅可以查找文件,IP地址,公开的服务和错误消息,还可以用来检索开放式摄像机,思科设备,医院设施管理服务器,弱配置的telnet和snmp服务以及SCADA系统。

img

E.g: 存在弱口令问题的摄像头

NVR Webserver Country:"CN" #默认密码 888888 Server: uc-httpd 1.0.0 200 OK Country:"CN" #默认密码为空

img

7、Web 应用框架识别

了解框架的信息对测试过程有极大帮助,也能帮助改进测试方案,大多数的web框架有几处特定的标记,能帮助攻击者识别他们。这也是基本上所有自动化工具做的事情,他们在定义好的位置搜寻标记,与数据库已知签名做比较,通常使用多个标记来增强准确程度。

1)黑盒测试

  • HTTP 头
  • Cookies
  • HTML 源代码
  • 特别的文件和目录

HTTP 头

最基本识别 web 框架的方式是查看 HTTP 响应头中的 X-Powered-By 字段。许多工具可以用来识别目标,最简单一个是 netcat,示列如下:

$ nc 127.0.0.1 80
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Server: nginx/1.0.14
Date: Sat, 07 Sep 201308:19:15 GMT
Content-Type: text/html;charset=ISO-8859-1
Connection: close
Vary: Accept-Encoding
X-Powered-By: Mono

X-Powered-By 字段中,我们能发现 web 应用框架很可能是 Mono。

常见框架

Cookies

img

HTML 源代码

通用标记

img

特定标志

img

2) 测试工具

WhatWeb

http://www.morningstarsecurity.com/research/whatweb

WhatWeb 为目前市场上最好的识别工具之一,Kali 自带,由Ruby 使用下面技巧匹配指纹库:

  • 字符串 (大小写敏感)
  • 正则表达式
  • Google Hack 数据库查询(有限关键字组)
  • MD5 哈希值
  • URL 识别
  • HTML 标签模式
  • 自定义 ruby 代码,被动和主动操作.

img

Wappalyzer

http://wappalyzer.com

Wappalyzer 是一个 Firefox 和 Chrome 插件。他只依赖于正则表达式,只需要一个浏览器上载入的页面就能工作,在浏览器层面工作并用图表形式给出结果。

img

结语

在安全研究中,掌握 OSINT 的信息收集技巧,有助于帮助我们,快速的对相关安全事件进行响应,以上 7 个小技巧笔者常用于渗透测试中的信息识别、安全分析中的事件关联分析。因为相信,所以预见,开源智能在我们未来的安全之路中,会给我们带来更多的乐趣,智能检索技能可以极大的提高我们的效率、准确率。

参考链接

https://kennel209.gitbooks.io/owasp-testing-guide-v4

https://blog.appsecco.com/open-source-intelligence-gathering-101-d2861d4429e3


本文由 信安之路 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论