公开资源情报计划(Open source intelligence ),简称OSINT,是美国中央情报局(CIA)的一种情报搜集手段,从各种公开的信息资源中寻找和获取有价值的情报。
有各种各样的数据可以被归类为OSINT数据,但从渗透测试者的角度来看所有这些数据都不重要。作为渗透测试人员,我们更感兴趣的是那些可以为我们实际所利用的数据信息。例如:
可增加攻击面的信息(域,网块等);
凭据(电子邮件地址,用户名,密码,API密钥等);
敏感信息(客户详细信息,财务报告等);
基础架构详情(技术栈,使用的硬件设备等);
证书透明度Certificate Transparency是谷歌力推的一项拟在确保证书系统安全的透明审查技术,只有支持CT技术签发的EV SSL证书,谷歌浏览器才会显示绿色单位名称,否则chrome浏览器不显示绿色单位名称。
新的签发流程规定:证书必须记录到可公开验证、不可篡改且只能附加内容的日志中,用户的网络浏览器才会将其视为有效。通过要求将证书记录到这些公开的
CT
日志中,任何感兴趣的相关方都可以查看由授权中心签发的所有证书。这意味着任何人都可以公开获取和查看这些日志。为此,我专门编写了一个用于从给定域CT日志中找到的SSL/TLS证书中提取子域的脚本。
另外,再推荐大家一款工具SSLScrape。这是一款将网络块(CIDR)作为输入,来查询各个IP地址获取SSL/TLS证书,并从返回的SSL证书中提取主机名的工具。
sudo python sslScrape.py TARGET_CIDR
一些公共WHOIS服务器支持高级查询,我们可以利用这些查询来收集目标组织的各种信息。
下面我以icann.org为例,通过查询ARIN WHOIS server获取目标域所有包含email地址的条目,并从中提取email地址。
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 server获取属于自治系统号(ASN)的所有网络块。
whois -h whois.radb.net -- '-i origin AS111111' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq
通过查询ARIN WHOIS server获取给定关键字的所有POC,ASN,组织和终端用户。
whois -h whois.arin.net "z wikimedia"
使用dig或host解析给定域的IP地址:
dig +short google.com
获取给定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
根据我们的经验,我们看到人们将各种数据存储在安全性较差的第三方服务上,从纯文本中的凭据到他们私人的宠物照片。
这里有一些工具例如Slurp、AWSBucketDump和Spaces Finder,可用于搜索可公开访问的对象存储实例。Slurp和Bucket Stream等工具将证书透明度日志数据与基于置换的发现相结合,以识别可公开访问的S3 buckets。
你只要在它的网站上输入一个网站地址,就能看到这个网站在过去的不同时期分别长什么样。通过Wayback CDX Server API我们可以轻松的搜索存档。waybackurls是一个用于搜索目标站点相关数据的工具。
挖掘Wayback Machine存档对我们识别给定域的子域,敏感目录,敏感文件和应用中的参数非常有用。
go get github.com/tomnomnom/waybackurls waybackurls icann.org
我们可以通过Common Crawl API在索引的抓取数据中搜索我们感兴趣的站点。这里有一个小脚本(cc.py)可以帮你完成搜索任务。
python cc.py -o cc_archive_results_icann.org icann.org
Censys将数据集分为三种类型 – IPv4主机,网站和SSL/TLS证书。如果你能熟练的掌握Censys的搜索技巧,那么它将发挥与Shodan不相上下的强大作用。
Censys为我们提供了一个API,我们可以用它来查询数据集。这里我编写了一个连接调用Censys API的Python脚本,用于查询给定域的SSL/TLS证书,并提取属于该域的子域和电子邮件地址。
使用的技术之一是探测443端口上的公共IPv4地址空间上的所有计算机,并聚合它们返回的SSL/TLS证书。Censys提供了一种关联提供证书的IPv4主机获取的SSL/TLS证书的方法。
通过关联SSL/TLS证书和提供证书的IPv4主机,可以找到受Cloudflare等服务保护的域的源服务器。
通过源码我们可以获取到大量信息,例如凭据,潜在漏洞,基础架构等信息。GitHub是一个非常受欢迎的版本控制和协作平台,在上面存有大量组织的源码。另外GitHubCloner,Gitlab和Bitbucket同样也非常的受欢迎。总之,不要错过任何可能的地方。
可以自动化的为我们克隆Github帐户下所有的存储库。
$ python githubcloner.py --org organization -o /tmp/output
除了GitHubCloner之外,你还可以尝试使用Gitrob,truffleHog,git-all-secrets等工具。
数据格式为gzip压缩的JSON文件。虽然数据集很大(20+GB压缩,300+GB未压缩),但我们仍可以解析数据集并查找给定域的子域。最近,数据集已根据数据包含的DNS记录类型被分为了多个文件。
Content-Security-Policy头将为我们列出作为攻击者可能感兴趣的一堆源(域)。这里我编写了一个用来解析CSP头中列出域名的简单脚本。
SPF记录的本质就是向收件人宣告本域名的邮件从清单上所列IP发出的都是合法邮件,并非冒�的垃圾邮件,可以防止别人伪造你来发邮件,是一个反伪造性邮件的解决方案。
简而言之,SPF记录为我们列出了所有授权发送电子邮件的主机。有时,SPF记录还会泄漏内部网络块和域名。
一些服务如Security Trails可以为我们提供DNS记录的历史快照。我们可以通过查看历史SPF记录,发现SPF记录中列出的给定域的内部网络块和域名。
这里有一个我们编写的脚本,可以帮助你从给定域的SPF记录中提取网络块和域名。当使用-a选项运行时,该脚本还可以为我们返回ASN详细信息。
python assets_from_spf.py icann.org -a | jq .
*参考来源:appsecco , FB小编 secist 编译,转载来自FreeBuf.COM
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.