.. | ||
github-leaked-secrets.md | ||
README.md | ||
wide-source-code-search.md |
外部侦察方法论
从零开始学习AWS黑客技术,成为英雄 htARTE (HackTricks AWS红队专家)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载HackTricks的PDF,请查看订阅计划!
- 获取官方PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组 或 telegram群组 或在Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github仓库提交PR来分享您的黑客技巧。**
Bug bounty tip: 注册 Intigriti,一个由黑客创建的高级漏洞赏金平台!今天就加入https://go.intigriti.com/hacktricks,开始赚取高达**$100,000**的赏金!
{% embed url="https://go.intigriti.com/hacktricks" %}
资产发现
所以你被告知某个公司的所有东西都在范围内,你想弄清楚这个公司实际拥有什么。
这个阶段的目标是获取所有主公司拥有的公司,然后是这些公司的所有资产。为此,我们将:
- 查找主公司的收购情况,这将告诉我们范围内的公司。
- 查找每个公司的ASN(如果有),这将告诉我们每个公司拥有的IP范围。
- 使用反向whois查找来搜索与第一个条目(组织名称、域名等)相关的其他条目(这可以递归完成)。
- 使用其他技术,如shodan
org
和ssl
过滤器来搜索其他资产(ssl
技巧可以递归完成)。
收购
首先,我们需要知道哪些其他公司由主公司拥有。
一个选择是访问https://www.crunchbase.com/,搜索 主公司,然后点击 "收购"。在那里你会看到主公司收购的其他公司。
另一个选择是访问主公司的维基百科页面并搜索收购。
好的,此时你应该知道范围内的所有公司。让我们弄清楚如何找到他们的资产。
ASNs
自治系统号码(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
Also, 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。
寻找漏洞
此时我们已知范围内的所有资产,如果允许的话,您可以对所有主机启动一些漏洞扫描器(如Nessus, OpenVAS)。
此外,您还可以启动一些端口扫描 或使用像 shodan 这样的服务来发现开放端口**,根据您发现的内容,您应该查阅本书了解如何对可能运行的多种服务进行渗透测试。
同样值得一提的是,您还可以准备一些默认用户名和密码列表,尝试使用 https://github.com/x90skysn3k/brutespray 对服务进行暴力破解。
域名
我们知道了范围内所有公司及其资产,现在是时候找出范围内的域名了。
请注意,在以下建议的技术中,您还可以找到子域名,这些信息不应被低估。
首先,您应该查找每个公司的主域名。例如,对于 Tesla Inc. 来说,将会是 tesla.com。
反向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
为了使其工作,管理员必须手动启用PTR。 您也可以使用在线工具获取此信息:http://ptrarchive.com/
反向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(需要whoxy API密钥)自动化此任务。
您还可以使用amass执行一些自动反向whois发现:amass intel -d tesla.com -whois
请注意,每次发现新域名时,您都可以使用此技术发现更多域名。
追踪器
如果在两个不同的页面上找到相同追踪器的相同ID,您可以假设两个页面由同一团队管理。 例如,如果您在几个页面上看到相同的Google Analytics ID或相同的Adsense ID。
有一些页面和工具可以让您搜索这些追踪器及更多:
Favicon
您知道我们可以通过寻找相同的favicon图标哈希来找到与我们目标相关的域名和子域名吗?这正是@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图标哈希的域名](https://www.infosecmatter.com/wp-content/uploads/2020/07/favihash.jpg)
简单来说,favihash能够帮助我们发现拥有与我们目标相同favicon图标哈希的域名。
此外,你还可以使用favicon哈希来搜索技术,正如[**这篇博客文章**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139)中解释的那样。这意味着,如果你知道**某个易受攻击版本的web技术的favicon的哈希**,你可以在shodan中搜索,**找到更多易受攻击的地方**:
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
这是你如何计算网站的 favicon 哈希:
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
版权 / 独特字符串
搜索网页中可能在同一组织的不同网站中共享的字符串。版权字符串可能是一个很好的例子。然后在谷歌中搜索该字符串,在其他浏览器中搜索,甚至在shodan中搜索:shodan search http.html:"Copyright string"
CRT 时间
通常会有一个 cron 作业,例如
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
被动接管
显然,人们常常会将子域名指向云服务提供商的IP地址,然后在某个时刻失去该IP地址但忘记移除DNS记录。因此,只需在云端(如Digital Ocean)启动一个虚拟机,你实际上就能接管一些子域名。
这篇文章讲述了一个关于此的故事,并提出了一个脚本,该脚本在DigitalOcean启动一个虚拟机,获取新机器的IPv4地址,并在Virustotal中搜索指向该地址的子域名记录。
其他方法
注意,每当你发现一个新域名时,你都可以使用这种技术来发现更多域名。
Shodan
既然你已经知道拥有IP空间的组织的名称。你可以在shodan中使用该数据进行搜索:org:"Tesla, Inc."
检查找到的主机,寻找TLS证书中的新的意外域名。
你可以访问主网页的TLS证书,获取组织名称,然后在shodan已知的所有网页的TLS证书中搜索该名称,使用过滤器:ssl:"Tesla Motors"
或使用像 sslsearch 这样的工具。
Assetfinder
Assetfinder 是一个查找与主域名相关的域名和它们的子域名的工具,非常了不起。
寻找漏洞
检查一些域名接管。也许有些公司正在使用某个域名,但他们失去了所有权。如果价格足够便宜,就注册它,并让公司知道。
如果你发现任何IP地址与你在资产发现中已找到的不同的域名,你应该执行基本的漏洞扫描(使用Nessus或OpenVAS)和一些端口扫描 使用 nmap/masscan/shodan。根据运行的服务,你可以在本书中找到一些“攻击”它们的技巧。
注意有时域名托管在客户端无法控制的IP内,因此不在范围内,请小心。
Bug bounty 小贴士:注册 Intigriti,一个由黑客创建,为黑客服务的高级bug赏金平台!立即加入我们 https://go.intigriti.com/hacktricks,开始赚取高达**$100,000**的赏金!
{% embed url="https://go.intigriti.com/hacktricks" %}
子域名
我们知道范围内所有公司的所有资产和所有与公司相关的域名。
现在是时候找到每个已找到域名的所有可能子域名了。
DNS
让我们尝试从DNS记录中获取子域名。我们还应该尝试区域传输(如果易受攻击,你应该报告它)。
dnsrecon -a -d tesla.com
OSINT
快速获取大量子域的方法是在外部资源中搜索。最常用的工具如下(为了获得更好的结果,请配置API密钥):
# subdomains
bbot -t tesla.com -f subdomain-enum
# subdomains (passive only)
bbot -t tesla.com -f subdomain-enum -rf passive
# subdomains + port scan + web screenshots
bbot -t tesla.com -f subdomain-enum -m naabu gowitness -n my_scan -o .
amass enum [-active] [-ip] -d tesla.com
amass enum -d tesla.com | grep tesla.com # To just list subdomains
# Subfinder, use -silent to only have subdomains in the output
./subfinder-linux-amd64 -d tesla.com [-silent]
# findomain, use -silent to only have subdomains in the output
./findomain-linux -t tesla.com [--quiet]
python3 oneforall.py --target tesla.com [--dns False] [--req False] [--brute False] run
assetfinder --subs-only <domain>
# It requires that you create a sudomy.api file with API keys
sudomy -d tesla.com
vita -d tesla.com
theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye"
有其他有趣的工具/API,即使它们不是专门用于查找子域名的,也可能有助于发现子域名,例如:
- Crobat: 使用API https://sonar.omnisint.io 来获取子域名
# Get list of subdomains in output from the API
## This is the API the crobat tool will use
curl https://sonar.omnisint.io/subdomains/tesla.com | jq -r ".[]"
curl https://jldc.me/anubis/subdomains/tesla.com | jq -r ".[]"
- RapidDNS 免费 API
# Get Domains from rapiddns free API
rapiddns(){
curl -s "https://rapiddns.io/subdomain/$1?full=1" \
| grep -oE "[\.a-zA-Z0-9-]+\.$1" \
| sort -u
}
rapiddns tesla.com
# Get Domains from crt free API
crt(){
curl -s "https://crt.sh/?q=%25.$1" \
| grep -oE "[\.a-zA-Z0-9-]+\.$1" \
| sort -u
}
crt tesla.com
- gau: 为任何给定域名从AlienVault的Open Threat Exchange、Wayback Machine和Common Crawl获取已知URL。
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
- SubDomainizer 和 subscraper:它们在网上搜索JS文件,并从中提取子域名。
# Get only subdomains from SubDomainizer
python3 SubDomainizer.py -u https://tesla.com | grep tesla.com
# Get only subdomains from subscraper, this already perform recursion over the found results
python subscraper.py -u tesla.com | grep tesla.com | cut -d " " -f
# Get info about the domain
shodan domain <domain>
# Get other pages with links to subdomains
shodan search "http.html:help.domain.com"
export CENSYS_API_ID=...
export CENSYS_API_SECRET=...
python3 censys-subdomain-finder.py tesla.com
python3 DomainTrail.py -d example.com
- securitytrails.com 提供免费 API 用于搜索子域和 IP 历史记录
- chaos.projectdiscovery.io
该项目免费提供与漏洞赏金计划相关的所有子域。您也可以使用 chaospy 访问这些数据,或者访问此项目使用的范围 https://github.com/projectdiscovery/chaos-public-program-list
您可以在这里找到许多这些工具的比较:https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off
DNS 暴力破解
让我们尝试使用可能的子域名来暴力破解 DNS 服务器,以找到新的子域。
对于这项操作,您将需要一些常见子域词汇表,例如:
- https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056
- https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt
- https://localdomain.pw/subdomain-bruteforce-list/all.txt.zip
- https://github.com/pentester-io/commonspeak
- https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS
同时还需要好的 DNS 解析器的 IP 地址。为了生成可信 DNS 解析器列表,您可以从 https://public-dns.info/nameservers-all.txt 下载解析器,并使用 dnsvalidator 过滤它们。或者您可以使用:https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt
最推荐用于 DNS 暴力破解的工具是:
- massdns:这是第一个执行有效 DNS 暴力破解的工具。它非常快速,但容易出现误报。
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
- gobuster: 我认为这个只使用1个解析器
gobuster dns -d mysite.com -t 50 -w subdomains.txt
- shuffledns 是一个围绕
massdns
编写的 go 语言封装器,它允许您使用主动暴力破解来枚举有效的子域名,以及带有通配符处理和易于输入输出支持的子域名解析。
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
- puredns: 它也使用
massdns
。
puredns bruteforce all.txt domain.com
- aiodnsbrute 使用 asyncio 异步地暴力破解域名。
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
第二轮DNS暴力破解
在使用开放源和暴力破解找到子域后,您可以生成找到的子域的变体,尝试发现更多。以下工具对此非常有用:
- dnsgen: 根据域名和子域名生成排列组合。
cat subdomains.txt | dnsgen -
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
- gotator: 给定域名和子域名生成排列。如果没有指定排列文件,gotator将使用其自带的。
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
- alterx: 根据一个域名,它会根据指定的模式生成新的潜在子域名,以尝试发现更多子域名。
智能排列组合生成
python3 main.py adobe.com adobe adobe.rules
make_brute_list.sh adobe.rules adobe.brute
puredns resolve adobe.brute --write adobe.valid
- subzuf: subzuf 是一个子域名暴力猜解模糊器,配合一个极其简单但有效的DNS响应引导算法。它利用提供的输入数据,如定制词表或历史DNS/TLS记录,准确合成更多相应的域名,并根据在DNS扫描期间收集的信息,进一步在循环中扩展它们。
echo www | subzuf facebook.com
子域名发现工作流程
查看我写的这篇博客文章,了解如何使用 Trickest 工作流 从一个域名中自动化发现子域名,这样我就不需要在我的电脑上手动启动一堆工具:
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
VHosts / 虚拟主机
如果你发现一个IP地址包含一个或多个属于子域名的网页,你可以尝试通过在OSINT资源中查找一个IP的域名或者在该IP中暴力破解VHost域名来找到该IP中的其他带有网页的子域名。
OSINT
你可以使用 HostHunter 或其他APIs找到IP中的一些VHosts。
暴力破解
如果你怀疑某个子域名可能隐藏在一个web服务器中,你可以尝试暴力破解它:
ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com"
gobuster vhost -u https://mysite.com -t 50 -w subdomains.txt
wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-20000.txt --hc 400,404,403 -H "Host: FUZZ.example.com" -u http://example.com -t 100
#From https://github.com/allyshka/vhostbrute
vhostbrute.py --url="example.com" --remoteip="10.1.1.15" --base="www.example.com" --vhosts="vhosts_full.list"
#https://github.com/codingo/VHostScan
VHostScan -t example.com
{% hint style="info" %} 使用这种技术,你甚至可能访问到内部/隐藏的端点。 {% endhint %}
CORS 暴力破解
有时你会发现,只有当一个有效的域名/子域名在 Origin 头中设置时,页面才返回 Access-Control-Allow-Origin 头。在这些情况下,你可以利用这种行为来发现新的子域名。
ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body
Buckets Brute Force
在寻找子域名时,留意是否有指向任何类型的存储桶,如果是这样的话检查权限。
此外,由于此时你将知道范围内的所有域名,尝试暴力破解可能的存储桶名称并检查权限。
监控
你可以通过监控证书透明度日志来监控域名是否创建了新的子域名,sublert就是这么做的。
寻找漏洞
检查可能的子域名接管。
如果子域名指向某个S3存储桶,检查权限。
如果你发现任何子域名的IP与你在资产发现中已找到的IP不同,你应该执行基本的漏洞扫描(使用Nessus或OpenVAS)和一些端口扫描与nmap/masscan/shodan。根据运行的服务,你可以在本书中找到一些“攻击”它们的技巧。
注意有时子域名托管在客户端无法控制的IP内,因此不在范围内,请小心。
IPs
在初始步骤中,你可能已经找到了一些IP范围、域名和子域名。
现在是时候收集这些范围内的所有IP以及域名/子域名的IP(DNS查询)。
使用以下免费api服务,你还可以找到域名和子域名以前使用的IP。这些IP可能仍然属于客户端(并可能允许你找到CloudFlare绕过)
你还可以使用工具hakip2host检查指向特定IP地址的域名。
寻找漏洞
对所有不属于CDN的IP进行端口扫描(因为你在那里几乎不可能找到任何有趣的东西)。在发现的运行服务中,你可能会发现漏洞。
找到一个指南 关于如何扫描主机。
Web服务器狩猎
我们已经找到了所有公司及其资产,并且知道了范围内的IP范围、域名和子域名。现在是寻找Web服务器的时候了。
在之前的步骤中,你可能已经执行了一些对发现的IP和域名的侦察,所以你可能已经找到了所有可能的Web服务器。然而,如果你还没有,我们现在将看到一些快速技巧来搜索范围内的Web服务器。
请注意,这将针对Web应用程序发现,因此你也应该执行漏洞和端口扫描(如果范围允许)。
一种快速发现与Web服务器相关的开放端口的方法是使用masscan。
另一个查找Web服务器的友好工具是httprobe、fprobe和httpx。你只需传递一个域名列表,它将尝试连接到端口80(http)和443(https)。此外,你可以指示尝试其他端口:
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443
屏幕截图
现在您已经发现了范围内的所有网页服务器(包括公司的IP以及所有的域名和子域名),您可能不知道从哪里开始。让我们简化流程,从对它们全部进行屏幕截图开始。仅仅通过查看主页,您就可以发现更容易存在漏洞的奇怪端点。
要执行上述想法,您可以使用 EyeWitness、HttpScreenshot、Aquatone、Shutter 或 webscreenshot。
此外,您还可以使用 eyeballer 对所有屏幕截图进行分析,以告诉您哪些可能包含漏洞,哪些不包含。
公共云资产
为了找到属于公司的潜在云资产,您应该从标识该公司的关键词列表开始。例如,对于加密货币公司,您可能会使用诸如:"crypto"、"wallet"、"dao"、"<domain_name>"、<"subdomain_names"> 等词。
您还需要包含常用于存储桶的常见词汇的词表:
- https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt
- https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt
- https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt
然后,使用这些词汇生成排列组合(查看第二轮 DNS 暴力破解了解更多信息)。
使用生成的词表,您可以使用 cloud_enum、CloudScraper、cloudlist 或 S3Scanner。
记住,在寻找云资产时,您应该不仅仅在 AWS 中寻找存储桶。
寻找漏洞
如果您发现诸如公开的存储桶或暴露的云函数之类的东西,您应该访问它们,尝试了解它们提供了什么,以及您是否可以滥用它们。
电子邮件
有了范围内的域名和子域名,您基本上拥有了开始搜索电子邮件所需的一切。以下是我发现公司电子邮件最有效的API和工具:
- theHarvester - 带有 API
- https://hunter.io/ 的 API(免费版本)
- https://app.snov.io/ 的 API(免费版本)
- https://minelead.io/ 的 API(免费版本)
寻找漏洞
电子邮件稍后将有助于暴力破解网页登录和认证服务(如 SSH)。此外,它们对于网络钓鱼也是必需的。此外,这些 API 还将为您提供有关电子邮件背后人物的更多信息,这对于网络钓鱼活动很有用。
凭证泄露
有了域名、子域名和电子邮件,您可以开始寻找过去属于这些电子邮件的泄露凭证:
寻找漏洞
如果您发现了有效的泄露凭证,这是一个非常容易的胜利。
秘密泄露
凭证泄露与公司被黑客攻击并泄露和出售敏感信息有关。然而,公司可能受到其他泄露的影响,这些信息不在那些数据库中:
Github 泄露
凭证和 API 可能会在公司或在该 github 公司工作的用户的公共仓库中泄露。
您可以使用工具 Leakos 下载一个组织及其开发者的所有公共仓库,并自动运行 gitleaks。
Leakos 也可以用来对提供的所有文本 URLs 运行 gitleaks,因为有时网页也包含秘密。
Github Dorks
还可以查看此页面,了解您可能在您正在攻击的组织中搜索的潜在github dorks:
{% content-ref url="github-leaked-secrets.md" %} github-leaked-secrets.md {% endcontent-ref %}
粘贴泄露
有时攻击者或工作人员会在粘贴站点上发布公司内容。这可能包含或不包含敏感信息,但搜索它非常有趣。
您可以使用工具 Pastos 同时在超过 80 个粘贴站点上进行搜索。
Google Dorks
老但经典的 google dorks 始终有助于发现不应该暴露的信息。唯一的问题是 google-hacking-database 包含数千个您无法手动运行的可能查询。因此,您可以选择您最喜欢的 10 个,或者您可以使用工具 Gorks 运行它们全部。
请注意,使用常规 Google 浏览器运行整个数据库的工具永远不会结束,因为 Google 很快就会阻止您。
寻找漏洞
如果您发现了有效的泄露凭证或 API 令牌,这是一个非常容易的胜利。
公共代码漏洞
如果您发现公司有开源代码,您可以分析它并搜索其中的漏洞。
根据语言,您可以使用不同的工具:
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}
还有一些免费服务允许您扫描公共仓库,例如:
网页渗透测试方法论
大多数漏洞都存在于网页应用程序中,所以在这一点上,我想谈谈网页应用程序测试方法论,您可以在这里找到这些信息。
我还想特别提到Web Automated Scanners 开源工具部分,因为,如果您不应该期望它们为您找到非常敏感的漏洞,它们在工作流程中实施一些初始网页信息时很方便。
总结
恭喜!此时您已经完成了所有基本的枚举。是的,这是基本的,因为可以做更多的枚举(稍后会看到更多技巧)。
所以您已经:
- 找到了范围内的所有公司
- 找到了所有属于公司的资产(如果在范围内,进行一些漏洞扫描)
- 找到了所有属于公司的域名
- 找到了域名的所有子域名(有子域名接管吗?)
- 找到了范围内的所有IP(来自CDN和非 CDN)。
- 找到了所有网页服务器并对它们进行了屏幕截图(有什么奇怪的值得深入研究吗?)
- 找到了属于公司的所有潜在公共云资产。
- 电子邮件、凭证泄露和秘密泄露可能会让您非常容易地大获全胜。
- 渗透测试您发现的所有网页
全面自动化侦察工具
有几个工具可以对给定范围执行上述部分操作。
- https://github.com/yogeshojha/rengine
- https://github.com/j3ssie/Osmedeus
- https://github.com/six2dez/reconftw
- https://github.com/hackerspider1/EchoPwn - 有点旧,没有更新
参考资料
Bug bounty tip: 注册 Intigriti,一个由黑客为黑客创建的优质漏洞赏金平台!今天就加入我们 https://go.intigriti.com/hacktricks,开始赚取高达 $100,000 的赏金!
{% embed url="https://go.intigriti.com/hacktricks" %}
从零到英雄学习 AWS 黑客攻击,通过 htARTE (HackTricks AWS Red Team Expert)!
支持 HackTricks 的其他方式:
- 如果您想在 HackTricks 中看到您的公司广告或下载 HackTricks 的 PDF,请查看订阅计划!
- 获取官方 PEASS & HackTricks 商品
- 发现The PEASS Family,我们独家的 NFTs 系列
- 加入 💬 Discord 群组 或 telegram 群组 或在 Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github 仓库提交 PR 来分享您的黑客技巧。