资产发现
所以你说某家公司的所有东西都在范围内,你必须首先弄清楚这家公司实际上拥有什么。
此阶段的目标是获得主公司拥有的所有公司,然后获得这些公司的所有资产。为此,我们将:
找到主要公司的收购,这将为我们提供范围内的公司。
找到每家公司的 ASN(如果有),这将为我们提供每家公司拥有的 IP 范围
使用反向 whois 查询来搜索与第一个相关的其他条目(组织名称、域名......)(这可以递归完成)
使用其他技术(如 shodanorg和ssl过滤器)来搜索其他资产(该ssl技巧可以递归完成)。
1、收购
首先,我们需要知道主公司还拥有哪些其他公司。一种选择是访问https://www.crunchbase.com/,搜索主公司,然后单击“收购”。在那里,你会看到主公司收购的其他公司。另一种选择是访问主公司的维基百科页面并搜索收购。当然对于国内来说,可以使用企查查或者爱企查等平台。
好的,现在您应该知道范围内的所有公司。让我们弄清楚如何找到他们的资产。
2、ASN
自治系统编号 ( ASN ) 是由互联网编号分配机构 (IANA)分配给自治系统(AS)的唯一编号。AS由IP地址块组成,这些地址块具有明确定义的外部网络访问策略,由单个组织管理,但可能由多个运营商组成。
有趣的是,查看公司是否已分配任何 ASN来查找其IP 范围。对范围内的所有主机执行漏洞测试并在这些 IP 内查找域会很有趣。您可以在https://bgp.he.net/中按公司名称、IP或域进行搜索。根据公司所在的地区,这些链接可能有助于收集更多数据:AFRINIC(非洲)、Arin(北美)、APNIC(亚洲)、LACNIC(拉丁美洲)、RIPE NCC(欧洲)。无论如何,可能所有有用的信息(IP 范围和 Whois)都已出现在第一个链接中。
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161
此外,BBOT的子域名枚举会在扫描结束时自动汇总和汇总 ASN。
bbot -t tesla.com -f subdomain-enum
...
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS394161 | 8.244.131.0/24 | 5 | TESLA | Tesla Motors, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS16509 | 54.148.0.0/15 | 4 | AMAZON-02 | Amazon.com, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS394161 | 8.45.124.0/24 | 3 | TESLA | Tesla Motors, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS3356 | 8.32.0.0/12 | 1 | LEVEL3 | Level 3 Parent, LLC | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS3356 | 8.0.0.0/9 | 1 | LEVEL3 | Level 3 Parent, LLC | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
你还可以使用http://asnlookup.com/ (它有免费 API)查找组织的 IP 范围。你可以使用http://ipv4info.com/查找域的 IP 和 ASN 。
3、寻找漏洞
此时,我们已经知道了范围内的所有资产,因此如果允许,你可以在所有主机上启动一些漏洞扫描程序(Nessus、OpenVAS)。此外,你可以启动一些端口扫描 或使用shodan等服务来查找开放端口,根据你找到的内容,你应该在笔记中了解如何对正在运行的几个可能的服务进行渗透测试。
此外,值得一提的是,您还可以准备一些默认用户名和密码列表,并尝试使用brutespray暴力破解服务。
4、域
我们知道了范围内的所有公司及其资产,现在是时候找到范围内的域了。
请注意,在以下有目的的技术中您还可以找到子域,并且该信息不容低估。
首先,你应该查找每家公司的主域名。例如,百度公司的主域名是baidu.com。
5、反向 DNS
找到所有域名的 IP 范围后,你可以尝试对这些IP 执行反向 DNS 查找,以查找范围内的更多域名。尝试使用受害者的某些 DNS 服务器或某些知名的 DNS 服务器(1.1.1.1、8.8.8.8)
dnsrecon -r <DNS Range> -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
dnsrecon -r 157.240.221.35/24 -n 1.1.1.1 #Using cloudflares dns
dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
6、反向 Whois(循环)
在whois中,你可以找到很多有趣的信息,例如组织名称、地址、电子邮件、电话号码……但更有趣的是,如果你通过任何这些字段执行反向 whois 查询(例如,其他 whois 注册中心出现相同的电子邮件),你可以找到更多与公司相关的资产。你可以使用以下在线工具:
https://viewdns.info/reversewhois/ -免费
https://domaineye.com/reverse-whois -免费
https://www.reversewhois.io/ -免费
https://www.whoxy.com/——免费网站,而不是免费 API。
http://reversewhois.domaintools.com/ - 不免费
https://drs.whoisxmlapi.com/reverse-whois-search - 不免费(仅100 次免费搜索)
https://www.domainiq.com/ - 不免费
你可以使用DomLink(需要 whooxy API 密钥)自动执行此任务。你还可以使用amass执行一些自动反向 whois 发现:
amass intel -d tesla.com -whois
请注意,每次发现新域名时,你都可以使用此技术来发现更多域名。
7、追踪器
如果在两个不同的页面中发现同一个跟踪器的相同 ID,您可以假设这两个页面由同一个团队管理。例如,如果您在多个页面上看到相同的Google Analytics ID或相同的Adsense ID。
有一些页面和工具可让您通过这些跟踪器及更多内容进行搜索:
8、网站图标
你知道吗,我们可以通过查找相同的图标哈希来找到与目标相关的域和子域?这正是m4ll0k2制作的favihash.py工具的功能。以下是使用方法:
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
简单地说,favihash 可以让我们发现具有与我们的目标相同的 favicon 图标哈希值的域。
此外,您还可以使用图标哈希搜索技术,如本博客文章中所述。这意味着,如果您知道某个 Web 技术易受攻击版本的图标哈希,您可以在 shodan 中进行搜索,并找到更多易受攻击的地方:
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
你可以通过以下方法来计算网站的图标哈希值:
import mmh3
import requests
import codecs
def fav_hash(url):
response = requests.get(url)
favicon = codecs.encode(response.content,"base64")
fhash = mmh3.hash(favicon)
print(f"{url} : {fhash}")
return fhash
9、版权 / 唯一字符串
在网页内搜索可能在同一组织内的不同网站之间共享的字符串。版权字符串就是一个很好的例子。然后在google、其他浏览器甚至shodan中搜索该字符串:
shodan search http.html:"Copyright string"
10、CRT时间
常见的 cron 计划任务如下
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
更新服务器上的所有域证书。这意味着即使用于此目的的 CA 没有在有效期内设置生成时间,也可以在证书透明度日志中找到属于同一家公司的域。查看此文章了解更多信息。
11、邮件 DMARC 信息
你可以使用诸如https://dmarc.live/info/google.com之类的网站或诸如dmarc-subdomains之类的工具来查找共享相同 dmarc 信息的域和子域。
12、被动接管
显然,人们通常会将子域名分配给属于云提供商的 IP,然后在某个时候丢失该 IP 地址,但忘记删除 DNS 记录。因此,只需在云中生成 VM (如 Digital Ocean),你实际上就会接管一些子域名。
这篇文章解释了有关它的信息并提出了一个脚本,该脚本在DigitalOcean 中生成一个虚拟机,获取新机器的 IPv4,并在Virustotal 中搜索指向它的子域记录。
13、其他方式
请注意,每次发现新域名时,你都可以使用此技术来发现更多域名。
因为你已经知道拥有 IP 空间的组织的名称。你可以使用以下方式在 shodan 中搜索该数据:org:"Tesla, Inc."
检查找到的主机中是否存在 TLS 证书中的新意外域。
你可以访问主网页的TLS 证书,获取组织名称,然后使用过滤器在shodan已知的所有网页的TLS 证书中搜索该名称:或者使用sslsearch之类的工具。ssl:"Tesla Motors"
资产查找器,Assetfinder 是一个查找与主域名及其子域名相关的域名的工具,非常棒。
14、寻找漏洞
检查域名接管情况。也许有些公司正在使用某个域名,但他们失去了所有权。只需注册它(如果足够便宜)并告知该公司。
如果你发现任何域名的 IP 与你在资产发现中找到的 IP 不同,则应执行基本漏洞扫描(使用 Nessus 或 OpenVAS)并使用nmap/masscan/shodan进行一些端口扫描。根据正在运行的服务,你可以在该笔记中找到一些“攻击”它们的技巧。
请注意,有时域名托管在不受客户端控制的 IP 内,因此它不在范围内,请小心。
15、子域名
我们了解范围内的所有公司、每家公司的所有资产以及与公司相关的所有领域。
现在是时候找到每个找到的域的所有可能的子域了。
请注意,一些查找域名的工具和技术也可以帮助查找子域名!