Open Source Intelligence Gathering 201 zh_CN

开源情报收集201

这篇文章是我们撰写的关于开源情报OSINT)收集系列技术文章中的第二篇

我们强烈建议按顺序关注该系列文章。

  1. 开源情报收集101

  2. 开源情报收集201

  3. More

各种类型的数据从公开程度和可利用程度都可以归类为OSINT数据,但从渗透测试者的角度来看,并不是所有的数据都重要。作为渗透测试人员,我们或多或少对以下类别的信息感兴趣:

  1. 所有增加攻击面(域,网段等)的信息

  2. 凭据(电子邮件地址,用户名,密码,API密钥等)

  3. 敏感信息(客户详细信息,财务报告等)

  4. 基础设施细节(技术堆栈,使用的硬件设备等)

开源情报(OSINT)是从各种公开的信息资源中寻找和获取有价值的情报

执行OSINT的其他12种技术

1.证书

SSL / TLS证书具有丰富的信息,这些信息在安全评估期间具有重要意义。

SSL / TLS证书通常包含域名,子域名和电子邮件地址。这使他们成为攻击者的宝库。

证书透明度Certificate Transparency(CT)是一个项目,证书颁发机构(CA)必须将其发布的每个SSL / TLS证书发布到公共日志中进行记录。几乎每个重要的CA都记录了他们在CT日志中发出的每个SSL / TLS证书。这些日志可以公开获取,任何人都可以查看这些日志。我们编写了一个脚本,用于从给定域的CT日志中的SSL / TLS证书中提取子域。

SSLScrape是一种工具,它将以网络块(CIDR)作为输入,查询每个IP地址以获取SSL / TLS证书,并从返回的SSL证书中提取主机名。该工具可在此处获得 -

cheetz / sslScrape_SSLScrape | 用于从SSL证书中删除主机名的扫描工具。

pip install ndg-httpsclient
pip install python-masscan
sudo python sslScrape.py TARGET_CIDR

例子:
Usage | python sslScrape.py [CIDR Range]
E.X   | python sslScrape.py 10.100.100.0/24

2. Whois

WHOIS服务通常在渗透测试期间用于查询与互联网资源相关注册用户相关的信息,例如域名或IP地址(块)。WHOIS枚举对于在互联网上拥有大量存在的目标组织格外有效。

一些公共WHOIS服务器支持高级查询,我们可以使用这些查询来收集目标组织的各种信息。

让我们看一些先进的WHOIS查询来收集信息 -

  • 我们可以查询ARIN WHOIS服务器以返回具有给定域名的电子邮件地址的所有条目,在本例中为icann.org。我们只从结果中提取电子邮件地址。
whois -h whois.arin.net "e @ icann.org" | grep -E -o "\b[a-zA-Z0-9.-]+@[a-zA-Z0–9.-]+\.[a-zA-Z0–9.-]+\b" | uniq

  • 我们可以查询RADB WHOIS服务器以返回属于自治系统号(ASN)的所有网络块
whois -h whois.radb.net -- '-i origin AS111111' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq

  • 我们可以查询ARIN WHOIS服务器以返回给定关键字的所有POC,ASN,组织和最终用户客户。
whois -h whois.arin.net "z wikimedia"

whois -h whois.arin.net "z 360"

whois -h whois.arin.net "z secquan"

3.自治系统AS号

查找自治系统(AS)号码将帮助我们识别属于组织的网络块,这反过来可能导致发现在网络块中的主机上运行的服务。

  • 使用dighost解析给定域的IP地址
dig +short secquan.org

  • 有一些工具可以找到给定IP地址的ASN
curl -s http://ip-api.com/json/IP_ADDRESS | jq -r .as

  • 使用WHOIS服务或NSE脚本来识别属于ASN号码的所有网络块。
nmap --script targets-asn --script-args targets-asn.asn = 15169

4.云存储配置

云存储的使用已经变得很普遍,尤其是对象/块存储服务,如Amazon S3,DigitalOcean Spaces和Azure Blob Storage。在过去的几年中,由于错误配置的S3存储出现了大量数据泄露

根据经验,我们看到人们将各种数据存储在安全性较差的第三方服务上,从纯文本文件中的凭据到他们宠物的照片。

有喜欢的工具啜食AWSBucketDump空间搜索追捕服务特定公开访问的对象存储实例。Slurp和Bucket Stream等工具将证书透明度日志数据与基于排列的发现相结合,以识别可公开访问的S3存储桶。

Slurp使用关键字和排列扫描发现Amazon s3存储桶

Slurp使用CT日志数据和排列扫描发现Amazon s3存储桶

5.Wayback Machine是万维网的大量数字档案和互联网上的其他信息。Wayback Machine还包含网站的历史快照。Wayback CDX Server API可以轻松搜索存档。waybackurls是一个简洁的工具,用于搜索与感兴趣的网站相关的数据。

挖掘Wayback Machine归档对于识别应用程序中给定域,敏感目录,敏感文件和参数的子域非常有用。

去获取github.com/tomnomnom/waybackurls 


waybackurls icann.org

“waybackurls”提取属于Way Back machine archive中列出的域的URL

6.Common Crawl是一个项目,用于构建和维护任何人都可以访问和分析的Web爬网数据存储库。通用爬网包含网站的历史快照以及有关网站和提供网站的服务的元数据。我们可以使用Common Crawl API在索引的抓取数据中搜索感兴趣的网站。cc.py是一个简洁的小工具,用于搜索感兴趣的站点的爬网数据。

python cc.py -o cc_archive_results_icann.org icann.org

“cc.py”提取属于Common Crawl archive中列出的域的URL

7.Censys是一个聚合大量互联网扫描数据的平台,并提供搜索数据集的界面。Censys将数据集分为三种类型 - IPv4主机,网站和SSL / TLS证书。如果我们知道要寻找什么以及如何寻找它,那么Censys拥有与Shodan相同的宝库信息。

Censys有一个API,我们可以用它来对数据集运行查询。我们编写了一个Python脚本,该脚本连接到Censys API,查询给定域的SSL / TLS证书,并提取属于该域的sudomains和电子邮件地址。该脚本可在此处获得 -

yamakira / censys-enumeration_在Censys上使用SSL / TLS证书数据集提取给定域的子域/电子邮件的脚本..._github.com

“censys-enumeration”使用Censys API提取子域名和电子邮件地址

使用Censys API通过“censys-enumeration”提取的子域和电子邮件地址

8.Censys项目从多个来源收集SSL / TLS证书。使用的技术之一是探测端口443上的公共IPv4地址空间上的所有计算机,并聚合它们返回的SSL / TLS证书。Censys提供了一种方法来关联与提供证书的IPv4主机收集的SSL / TLS证书。

使用SSL / TLS证书与提供证书的IPv4主机之间的关联,可以公开受Cloudflare等服务保护的域的源服务器。

CloudFlair是一个在使用Censys公开域的原始服务器方面做得很好的工具。该工具可在此处获得 -

christophetd / CloudFlair_使用来自Censys的互联网范围的扫描数据查找CloudFlare背后网站的原始服务器。..._github.com

“Cloud Flair”识别medium.com的源服务器IP地址

9.源代码回购是安全评估期间的宝库。源代码可以显示大量信息,包括凭据,潜在漏洞和基础架构详细信息等.GitHub是一个非常受欢迎的版本控制和协作平台,您应该看一下。Gitlab和Bitbucket也是受欢迎的服务,您可以在其中找到目标组织的源代码。

GitHubCloner这样的工具非常方便自动化克隆Github帐户下所有存储库的过程。

$ python githubcloner.py --org organization -o /tmp/output

mazen160 / GithubCloner_一个克隆用户和组织的Github存储库的脚本。- mazen160 / GithubCloner_github.com

有各种工具可以自动化在源代码存储库中找到秘密的过程,例如GitrobtruffleHoggit-all-secrets等。

10.转发DNS数据集作为Rapid7的开放数据项目的一部分发布。此数据是Rapid7的项目声纳已知的所有前向DNS名称的DNS请求响应的集合。数据格式是gzip压缩的JSON文件。我们可以解析数据集以查找给定域的子域。虽然数据集很大(20 + GB压缩,300 + GB未压缩)。最近,数据集已根据数据包含的DNS记录类型分为多个文件。

从FDNS数据集中提取域/子域

11.内容安全策略(CSP)定义Content-Security-PolicyHTTP标头,允许我们创建可信内容源的白名单,并指示浏览器仅从这些源执行或呈现资源

Content-Security-Policy标题将列出我们作为攻击者可能感兴趣的一堆源(域)。我们编写了一个简单的脚本来解析和解析CSP头中列出的域名。该脚本可在此处获得 -

yamakira / domains-from-csp_从内容安全策略(CSP)标头中提取域名的脚本 - yamakira / domains-from-csp_github.com

12.发件人策略框架(SPF)记录,用于指示接收邮件交换机哪些主机有权为给定域发送邮件

简而言之,SPF记录列出了授权代表域发送电子邮件的所有主机。有时SPF记录会泄漏内部网络块和域名。

Security Trails等服务提供DNS记录的历史快照。我们可以查看历史SPF记录,以发现SPF记录中列出的给定域的内部网络块和域名。

安全路径显示的icann.org的历史SPF记录

我们编写了一个快速脚本,从给定域的SPF记录中提取网络块和域。当使用-a选项运行时,该脚本还可以返回每个资产的ASN详细信息。该脚本可在此处获得 -

yamakira / assets-from-spf_用于解析SPF记录中的网络块和域名的Python脚本 - yamakira / assets-from-spf_github.com

python assets_from_spf.py icann.org -a | jq。

结论

在本文中,我们已经查看了我们在安全评估中日常使用的各种OSINT技术。虽然这篇文章很广泛,但并不是要详尽无遗。OSINT的风景正在发生变化,并没有一种尺寸适合所有人。我们努力涵盖了在渗透测试的侦察阶段提高覆盖率的技术。

这使我们结束了这篇文章。如果您经常使用的技术产生了有趣的结果,如果您想分享这些技巧,请发表评论。

直到下一次,快乐的黑客!

参考

results matching ""

    No results matching ""