黑客入侵网站基础知识 (检测黑客入侵的步骤有哪些)

1、简介

作为渗透测试人员或漏洞赏金猎人,通常在启动安全评估时,您会获得一个域或一组域。您将必须进行广泛的侦查,以发现有趣的资产,例如服务器,Web应用程序,属于目标组织的域,以便您增加发现漏洞的机会。

子域枚举是侦察阶段的重要组成部分。该博客文章以简洁明了的方式介绍了各种子域枚举技术。gitbook将作为此博客文章的后续发布,涉及同一主题,我们将深入介绍这些技术。我们在2017年Bugcrowd LevelUp会议上发表的" 神秘的子域枚举技术 "演讲中介绍了其中一些技术。

什么是子域枚举?

子域枚举是查找一个或多个域的子域的过程。这是侦察阶段的重要组成部分。

为什么要子域枚举?

· 子域枚举可以揭示安全评估范围内的许多域/子域,这反过来又增加了发现漏洞的机会

· 查找在隐藏的,被遗忘的子域上运行的应用程序可能会导致发现关键漏洞

· 通常,相同的漏洞往往会出现在同一组织的不同域/应用程序中

黑客入侵网站基础知识,黑客入侵网站全过程代码

1.Google和Bing等搜索引擎支持各种高级搜索运算符,以优化搜索查询。这些运营商通常被称为" Google傻瓜"。

· 我们可以在Google搜索中使用" site:"运算符来查找Google为某个域找到的所有子域。Google还支持其他负号运算符,以排除我们对" site:*.wikimedia.org -www -store -jobs -uk"不感兴趣的子域

黑客入侵网站基础知识,黑客入侵网站全过程代码

Bing搜索引擎也支持一些高级搜索运算符。与Google一样,Bing也支持" site:"运算符,您可能希望检查除Google搜索之外的其他任何结果

黑客入侵网站基础知识,黑客入侵网站全过程代码

2.有很多第三方服务聚集大量DNS数据集,并通过它们查找以检索给定域的子域。 VirusTotal运行其自己的被动DNS复制服务,该服务通过存储访问用户提交的URL时执行的DNS解析来构建。为了检索域名信息,您只需要在搜索栏中输入域名即可

黑客入侵网站基础知识,黑客入侵网站全过程代码

黑客入侵网站基础知识,黑客入侵网站全过程代码

1)、DNSdumpster是另一个有趣的工具,可以为给定域查找潜在的大量子域

黑客入侵网站基础知识,黑客入侵网站全过程代码

2)、在OWASP艾迈斯工具套件获得由数据源,递归*力暴**破解,抓取网络档案,置换/改变名称和反向DNS扫子域名。

amass --passive -d appsecco.com # Amass 2.xamass 
enum --passive -d appsecco.com # Amass 3.x

黑客入侵网站基础知识,黑客入侵网站全过程代码

3.证书透明性(CT)是一个项目,证书颁发机构(CA)必须将其颁发的每个SSL / TLS证书发布到公共日志中。SSL / TLS证书通常包含域名,子域名和电子邮件地址。这使它们成为攻击者的信息宝库。我在证书透明性方面撰写了一系列技术博客文章,其中深入介绍了该技术,您可以在此处阅读该系列文章。

1)、查找为域颁发的证书的最简单方法是使用收集CT日志的搜索引擎,让任何人搜索它们。下面列出了一些热门的-

1. https://crt.sh/
2. https://censys.io/
3. https://developers.facebook.com/tools/ct/
4. https://google.com/transparencyreport/https/ct/

黑客入侵网站基础知识,黑客入侵网站全过程代码

2)、除了Web界面之外,crt.sh还提供使用postgres界面访问其CT日志数据的功能。这样可以轻松灵活地运行一些高级查询。如果安装了PostgreSQL客户端软件,则可以按以下方式登录:psql -h crt.sh -p 5432 -U guest certwatch我们编写了一些脚本来简化使用CT日志搜索引擎查找子域的过程。脚本可以在我们的github仓库中找到:

https://github.com/appsecco/the-art-of-subdomain-enumeration

黑客入侵网站基础知识,黑客入侵网站全过程代码

3)、使用CT进行子域枚举的不利之处在于,CT日志中找到的域名可能不再存在,因此无法将其解析为IP地址。您可以将massdns之类的工具与CT日志结合使用,以快速识别可解析的域名。

#ct.py-从CT日志中提取域名(随massdns一起提供)
#massdns-将找到可解析的域并将其添加到文件中
。./bin/massdns -r resolvers.txt -t A -q -a -o -w icann_resolvable_domains.txt-

黑客入侵网站基础知识,黑客入侵网站全过程代码

4.基于字典的枚举是查找具有通用名称的子域的另一种技术。DNSRecon是功能强大的DNS枚举工具,其功能之一是使用预定义的单词表进行基于字典的子域枚举。

python dnsrecon.py -n ns1.insecuredns.com -d insecuredns.com -D subdomains-top1mil-5000.txt -t brt

黑客入侵网站基础知识,黑客入侵网站全过程代码

5.排列扫描是识别子域的另一种有趣的技术。在这项技术中,我们使用已知域/子域的排列,变更和突变来识别新的子域。

1)、Altdns是一种工具,可用于发现符合模式的子域

python altdns.py -i icann.domains -o data_output -w icann.words -r -s results_output.

黑客入侵网站基础知识,黑客入侵网站全过程代码

6.查找自治系统(AS)编号将帮助我们识别属于某个组织的网络块,而该组织又可能具有有效的域。

· 使用dig或解析给定域的IP地址host
· 有一些工具可以找到给定IP地址的ASN-https://asn.cymru.com/cgi-bin/whois.cgi
· 有一些工具可以找到给定域名的ASN-http://bgp.he.net/

黑客入侵网站基础知识,黑客入侵网站全过程代码

·找到的ASN编号可用于查找域的网块。有Nmap脚本可以实现这一目标
https://nmap.org/nsedoc/scripts/targets-asn.html

·nmap --script目标-asn --script-args目标-asn.asn = 17012> netblocks.txt

黑客入侵网站基础知识,黑客入侵网站全过程代码

7.区域传输是一种DNS事务,其中DNS服务器将其全部或部分区域文件的副本传递给另一台DNS服务器。如果没有安全地配置区域传输,则任何人都可以针对域名服务器启动区域传输并获取区域文件的副本。根据设计,区域文件包含有关该区域以及该区域中主机的大量信息。

1)、dig +multi AXFR @ns1.insecuredns.com insecuredns.com

黑客入侵网站基础知识,黑客入侵网站全过程代码

8、有些项目会收集Internet范围内的扫描数据,并将其提供给研究人员和安全社区。该项目发布的数据集是子域信息的宝库。尽管在海量数据集中查找子域就像在大海捞针中找到针头一样,但值得付出努力。 转发DNS数据集作为Project Sonar的一部分发布。通过从多个来源提取域名,然后ANY为每个域发送查询来创建此数据。数据格式是gzip压缩的JSON文件。我们可以解析数据集以找到给定域的子域。数据集虽然很大(压缩20 + GB,未压缩300 + GB)

# Command to parse & extract sub-domains for a given domain
curl -silent https://scans.io/data/rapid7/sonar.fdns_v2/20170417-fdns.json.gz | pigz -dc | grep ".icann.org" | jq

黑客入侵网站基础知识,黑客入侵网站全过程代码

9.由于在DNSSEC中处理不存在的域的方式,可以“遍历” DNSSEC区域并枚举该区域中的所有域。您可以从此处了解有关此技术的更多信息。

  • 对于使用NSEC记录的DNSSEC区域,可以使用ldns-walk之类的工具执行区域漫游
ldns-walk@ns1.insecuredns.cominsecuredns.com

黑客入侵网站基础知识,黑客入侵网站全过程代码

  • 某些DNSSEC区域使用NSEC3记录,该记录使用哈希域名来防止攻击者收集纯文本域名。攻击者可以收集所有子域哈希并脱机破解哈希
  • 诸如nsec3walker,nsec3map之类的工具可帮助我们自动化收集NSEC3哈希并破解哈希。安装nsec3walker后,可以使用以下命令枚举NSEC3保护区域的子域。
  • # Collect NSEC3 hashes of a domain
    $ ./collect icann.org > icann.org.collect
    # Undo the hashing, expose the sub-domain information.
    $ ./unhash < icann.org.collect > icann.org.unhash# Listing only the sub-domain part from the unhashed data
    $ cat icann.org.unhash | grep "icann" | awk '{print $2;}'
    del.icann.org.
    access.icann.org.
    charts.icann.org.
    communications.icann.org.
    fellowship.icann.org.
    files.icann.org.
    forms.icann.org.
    mail.icann.org.
    maintenance.icann.org.
    new.icann.org.
    public.icann.org.
    research.icann.org.