用户
搜索

[web安全] 开源情报收集二

  • TA的每日心情
    擦汗
    2020-11-25 20:57
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    5

    主题

    13

    帖子

    293

    魔法币
    收听
    0
    粉丝
    1
    注册时间
    2018-8-6

    i春秋签约作者

    发表于 2021-4-1 21:33:32 113898
    本帖最后由 W4rnIn9 于 2021-4-1 21:33 编辑

    有很多数据可以被归类为开源网络情报,但并不是所有都很重要,但对于渗透测试人员来说,下面这些信息可能很重要

    • 可以增加攻击面的信息(域名,网络块)
    • 凭证(邮箱地址、用户名、密码、API)
    • 敏感信息(客户信息、财务报告)
    • 基础设施细节(技术栈、硬件设备)

    开源信息收集是从公开的来源收集信息

    1.SSL/TLS证书在安全测试中用具有非常重要的意义

    SSL/TLS证书通常包含域名、子域名、电子邮箱,这使得他们成为攻击者的重要信息来源

    在该项证书透明度 (CT)项目下,证书颁发机构 (CA) 必须将其颁发的每个SSL/TLS证书发布到公共日志。几乎每个主要的CA都会在CT日志中记录他们颁发的每个SSL/TLS证书。这些日志是公开的,任何人都可以浏览这些日志。下面的脚本可以从给定域的CT日志中找到的SSL/TLS证书中提取子域

    https://github.com/appsecco/the-art-of-subdomain-enumeration/blob/master/crtsh_enum_psql.py

    1607499800966-71b07b68-e0c5-4b1d-837b-76acd6037dab.png

    SSLScrape是一个可以查询输入的CIDR中的每个IP的SSL/TLS证书,并从返回的SSL证书中提取主机名,工具可以从这里获得https://github.com/cheetz/sslScrape

    sudo python sslScrape.py TARGET_CIDR

    1607499815757-279735dc-1bd3-44c5-8a2e-794127b4866e.png

    2.WHOIS服务通常在渗透测试期间用于查询与Internet资源的注册用户相关的信息,例如域名或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

    1607499822792-816ae168-8384-4a26-8f3d-41c3c6416da3.png

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

    1607499868859-a22d20b6-f3d0-407a-8c97-6c9cd99f4b04.png

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

    • Resolve the IP address of a given domain using dig or host

    使用dig或host解析给定域的IP地址

    dig +short google.com

    有一些工具可以查找给定IP地址的ASN

    curl -s http://ip-api.com/json/IP_ADDRESS | jq -r .as

    我们可以使用WHOIS服务或NSE脚本来识别属于ASN编号的所有netblock。

    nmap --script targets-asn --script-args targets-asn.asn=15169

    1607499889903-f4725ca7-22d5-47b1-9265-38a6f115be6c.png

    云存储的使用已经变得很普遍,尤其是对象/块存储服务,如亚马逊S3、数字海洋空间和Azure Blob存储。在过去的几年中,由于配置错误的S3存储桶而发生了高调的数据泄露。

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

    有一些工具,如Slurp、AWSBucketDump和space Finder,可以搜索特定于服务的可公开访问的对象存储实例。Slurp和Bucket Stream等工具将证书透明度日志数据与基于排列的发现相结合,以识别可公开访问的S3存储桶。

    1607499917963-b0d4a3a1-12d8-4e8b-8368-989636061108.png

    1607499922729-ca88de94-d6f7-4302-9f41-3b9aca787aba.png

    5.Wayback Machine是互联网上万维网和其他信息的大量数字档案。Wayback Machine还包含网站的历史快照。Wayback CDX服务器API使搜索档案变得容易。Waybackurl是搜索与感兴趣的站点相关的数据的简洁工具。

    挖掘Wayback Machine存档在识别应用程序中给定域、敏感目录、敏感文件和参数的子域方面非常有用。

    go get github.com/tomnomnom/waybackurls
    waybackurls icann.org

    1607499944943-1268db5d-59be-4006-8723-6927ff1e3618.png

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

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

    1607499963339-e08ab827-9696-45a9-af78-96b37007f40e.png

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

    Censys有一个API,可用于对数据集运行查询。这里有一个Python脚本,该脚本连接到Censys API,查询给定域的SSL/TLS证书,并提取属于该域的子域和电子邮件地址。脚本可在此处获得-https://github.com/yamakira/censys-enumeration

    1607499973648-9505c9d2-ff16-43bb-acee-cd49793dcdea.png

    1607500066606-10b4c826-051d-46aa-a815-731652eb7c19.png

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

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

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

    https://github.com/christophetd/CloudFlair

    1607500099555-4d241fcb-f76a-42ae-8e99-0e0640d8a55d.png

    9.源代码存储库是安全评估期间的信息宝库。源代码可以揭示很多信息,从凭证、潜在漏洞到基础设施细节等。GitHub是一个非常流行的版本控制和协作平台,你应该看看。Gitlab和Bitbucket也是受欢迎的服务,您可以在其中找到目标组织的源代码。

    像Github bcloner这样的工具非常方便地自动克隆Github帐户下的所有存储库。

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

    有各种工具可以自动在源代码存储库中查找秘密,例如Gitrob、truffleHog、git-all-secret等。

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

    1607500119569-e3577d90-e130-4fb4-aa4a-90dc8c2744af.png

    1. 内容安全策略 (CSP) 定义了Content-Security-PolicyHTTP头,这使我们能够创建受信任内容源的白名单,并指示浏览器仅执行或呈现来自这些源的资源

    Content-Security-Policy header will list a bunch of sources(domains) that might be of interest to us as an attackers. We wrote a simple script to parse and resolve the domain names listed in a CSP header. The script is available here —

    Content-Security-Policy标头将列出一堆我们作为攻击者可能感兴趣的源 (域)。这里有一个简单的脚本来解析和解析CSP标头中列出的域名。脚本可在此处获得-https://github.com/0xbharath/domains-from-csp

    1607500245760-05871497-dbf3-4bc7-bcee-baf6b46786a5.png

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

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

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

    1607500259005-68909a40-30b2-4299-8e8d-a5c2dc9bf6aa.png
    Icann.org的历史SPF记录由安全跟踪显示

    下面的脚本可以从给定域的SPF记录中提取netblock和域。当使用-a选项运行时,脚本还可以返回每个资产的ASN详细信息。脚本可在此处获得-https://github.com/0xbharath/assets-from-spf

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

    1607500271637-f53be007-48a6-46c9-997e-3bfa9bcb29b3.gif

    在本文中,我们研究了在安全评估中日常使用的各种OSINT技术。尽管本文内容广泛,但并非详尽无遗。OSINT不断变化,没有一种方式适合所有人。多了解一点姿势,可以帮助我们更好的进行网络信息收集

    表哥在信息收集上花了不少功夫,谢谢分享
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册