红队侦察技术系列文章-1
2023-3-22 21:59:57 Author: 网络安全交流圈(查看原文) 阅读量:20 收藏


什么是侦察?

侦察包括敌方主动或被动收集可用于支持目标确定的信息的技术。这类信息可能包括受害者组织、基础设施或工作人员的详细情况。敌方可以利用这些信息在敌方生命周期的其他阶段提供帮助,例如使用收集的信息来规划和执行初始访问,确定受损后目标的范围和优先级,或推动和领导进一步的侦察工作。
侦察根据与目标的交互类型分为两类:
主动侦察-与目标网络、主机、员工等主动接触/交互(端口扫描、漏洞扫描、Web应用程序扫描)
被动侦察-利用公开可用的信息。(whois,OSINT,DNS,搜索引擎)
搜索引擎呆子指的是搜索引擎语法,它允许用户过滤他们得到的结果类型。
侦察的目的是从目标收集尽可能多的信息,以便清楚地了解组织结构,数字基础设施和员工。该信息然后用于准备初始访问/利用。
我们将看看可以用来执行被动和主动侦察的各种工具和技术,但是,在我们开始研究这些技术之前,我们需要了解侦察MITRE ATT&CK框架战术以及属于它的各种技术。

ATT& CK侦察技术:
侦察策略中概述的技术为我们提供了一种清晰而有条理的侦察方法,但是,正如您可能已经注意到的那样,一些技术将涉及对员工和物理地址的物理侦察。在这种情况下,考虑到我们参与度的性质,我们将只专注于数字侦察。
以下是我们将探索的关键技术和子技术列表:
1、主动扫描

  • 端口扫描
  • 漏洞扫描
  • 网站目录暴力
2、搜索开放技术数据库
  • 搜索引擎
  • 社交网络
3、搜索打开的网站/域名
  • Whois信息
  • DNS记录
  • 子域枚举
  • 发现利用的Web技术和堆栈
  • 识别漏洞
4、收集受害者身份信息
  • 电子邮件
  • 全权证书
  • 雇员姓名
5、收集受害者网络信息
  • 域属性
  • 域名系统
  • 第三方域名
  • 网络拓扑
  • IP地址
  • 安全基础设施
上述技术将根据我们将收集的信息类型以及我们与目标组织数字基础设施的参与度性质而分为被动或主动侦察。
我们将通过查看可用于枚举和扫描信息的各种技术和手动工具来开始侦察过程。最后,我们将探索各种脚本、工具和框架,这些脚本、工具和框架可以为我们自动化整个侦察过程。
被动侦察技术:
被动侦察涉及利用搜索引擎和数据库等公开可用的信息源来查找和识别有关目标域或组织的信息。
此外,被动侦察不会主动参与公司/目标的数字基础设施或与之交互,因此称为被动侦察。
收集域IP/DNS信息:
此过程的第一步是识别目标域的IP地址和DNS记录,可以通过使用以下工具完成:
  1. Host

  2. Nslookup

  3. DNSRecon

  4. Dig


HOST
我们可以在Linux/Unix系统上使用host实用程序来确定目标域的IP地址,这可以通过在Kali Linux VM上运行以下命令来完成:
host DOMAIN.COM
将输出与目标域关联的所有相关IPV4和IPV6地址,如下面的屏幕截图中突出显示的。

Nslookup

我们可以使用Nslookup实用程序来识别目标域的IP地址,这可以通过运行以下命令来完成:
nslookup DOMAIN.COM
Nslookup实用程序将输出与目标域关联的所有相关IPV4和IPV6地址,以及用于查找的DNS服务器。

现在,我们已经能够识别目标域的IP地址,我们可以开始枚举目标域的DNS信息和记录。

DNSRecon
DNSRecon是一个非常有用的实用程序,与Kali Linux一起预先打包,可用于枚举特定域的DNS记录,此信息可以显示MX(邮件)服务器地址以及其他有用的DNS记录,可以扩展我们对目标基础设施的了解。我们可以通过运行以下命令来运行DNSRecon实用程序
dnsrecon -d https://DOMAIN.COM
DNSRecon实用程序应显示目标域的所有可公开访问的DNS记录,如以下屏幕截图中突出显示的。

从我们的结果中,我们能够确定我们的目标域正在为其域使用CloudFlare的DNS服务。CloudFlare的DNS服务功能与典型的DNS服务提供商略有不同,因为它还提供代理和其他安全功能,可以屏蔽目标域的真实的IP地址,并充当Web应用程序防火墙。

Dig
我们还可以利用DNS查找实用程序dig来识别目标域的IP地址和DNS记录,这可以通过运行以下命令来完成:
dig DOMAIN.COM
此命令将显示目标域的IP地址和相关名称服务器等重要信息,如以下屏幕截图中突出显示的。

您还可以使用dig枚举特定域的所有DNS记录。这可以通过运行以下命令来完成:

dig DOMAIN.COM ANY
使用Wafw00f进行WAF(Web应用程序防火墙)检测
我们可以通过使用Kali Linux上的Wafw00f实用程序来识别目标域当前是否受到WAF(Web应用程序防火墙)的保护,这可以通过运行以下命令来完成:
wafw00f https://DOMAIN.COM
正如您在下面的屏幕截图中看到的,目标域受CloudFlare的WAF保护。
收集域/网站信息
现在,我们已经能够识别目标的域IP地址,名称服务器和DNS记录,我们可以开始搜索以下信息:域名注册商和所有权信息。目标网站上使用的Web技术和框架
Whois信息
WHOIS是一种查询和响应协议,广泛用于查询存储互联网资源(如域名、IP地址块或自治系统)的注册用户或受让人的数据库,但也用于更广泛的其他信息。
我们可以利用内置的whois查询实用程序来确定目标域的注册商,所有权和到期日期。这可以通过运行以下命令来完成:
whois DOMAIN.COM

正如前面的屏幕截图中所强调的,我们能够识别域名注册商,注册人和域名到期日。
这些信息可以给予我们了解域名的年龄,何时到期,并可能揭示所使用的托管提供商。

Netcraft站点报告

我们还可以利用Netcraft网站报告工具,通过互联网数据挖掘的结果找出任何网站使用的基础设施和技术。
这可以通过访问网站来完成:https://sitereport.netcraft.com/在您的浏览器中,并键入目标的域,如下面的屏幕截图中突出显示的。

Netcraft提供的结果非常全面,将为您提供与网站相关的所有相关信息,例如:
1、域网络信息
2、IP授权
3、网站技术
正如下面的屏幕截图中突出显示的,我们能够获得目标域的注册商,注册人,IP地址和托管信息。


    DNS转储程序
    另一个伟大的在线工具,我们可以用来获取DNS记录,IP地址和其他信息有关的目标域是:https://dnsumpster.com。
    这可以通过访问网站来完成:https://dnsdumpster.com,并键入目标的域,如下面的屏幕截图中突出显示的。

    DNS垃圾箱将枚举所有的DNS服务器,MX记录和托管记录,我们的目标域突出显示在下面的屏幕截图。
    使用WhatWeb发现web

    WhatWeb识别网站。它的目标是回答“那个网站是什么?"这个问题。WhatWeb认可的网络技术包括内容管理系统(CMS)、博客平台、统计/分析软件包、JavaScript库、网络服务器和嵌入式设备。WhatWeb有超过1800个插件,每个插件都识别不同的东西。WhatWeb还可以识别版本号、电子邮件地址、帐户ID、Web框架模块、SQL错误等。
    我们可以使用WhatWeb来发现目标域正在使用的Web技术和HTTP标头。WhatWeb命令行实用程序预装在Kali Linux中,可以通过运行以下命令来使用:

    whatweb DOMAIN.COM
    如前所示,whatweb列举了我们目标域上使用的Web技术、HTTP标头、cookie和CMS。此信息使我们更好地了解目标域正在运行什么以及它是如何配置的。它还可以揭示所使用的托管堆栈技术中的潜在漏洞,例如,我们可以识别在目标域上运行的PHP版本是否容易受到任何攻击。

    浏览器附加组件

    我们还可以利用各种浏览器附加组件和插件来识别目标网站上使用的网络技术。以下是可用于Web侦察的加载项列表:
    Wappalyzer:https://wappalyzer.com/
    BuiltWith:https://builting.com/

    收集人员信息

    现在,我们已经能够收集目标域的IP地址、DNS记录和有关站点所使用技术的信息,我们可以开始枚举目标的员工信息的过程,例如:员工电子邮件、雇员姓名,此信息非常重要,因为它使我们了解了组织层次结构,并可用于发起可能导致危害的网络钓鱼攻击。

    使用theHarvester收集员工电子邮件
    我们可以利用搜索引擎、社交网络和公共数据库来识别为我们的目标公司工作的员工及其电子邮件地址。这个过程可以通过使用一个叫做“theHarvester”的工具来实现自动化

    TheHarvester是一个非常简单易用但功能强大且有效的工具,专为渗透测试或红队参与度的早期阶段而设计。它可用于开源情报(OSINT)收集,以帮助确定公司在互联网上的外部威胁状况。
    该工具使用多个公共数据源主动和被动地收集电子邮件,名称,子域,IP和URL。
    theHarvester预装在Kali Linux中,可以通过运行以下命令来识别公司的员工及其各自的电子邮件地址:
    theHarvester -d https://domain.com -b google,linkedin,bing,yahoo
    以下命令将搜索与您在提供的数据源上指定的域相关的任何信息。在本例中,我们指定Google、Bing、Linkedin和Yahoo作为数据源。


    正如前面的屏幕截图中突出显示的那样,Harvester将在我们提供的数据源中搜索与个人、电子邮件、域和子域的任何链接或关联。
    您也可以使用搜索引擎与收割机,这可以通过运行以下命令来完成:
    theHarvester -d domain.com -b google -g

    被动子域枚举
    侦察的另一个重要因素,无论是被动的还是主动的,都是识别公司子域的过程。使用Sublist3r的被动子域枚举
    我们可以通过使用名为Sublist3r的实用程序被动地枚举子域。
    Sublist3r是一个python工具,用于使用OSINT枚举网站的子域。它可以帮助渗透测试人员和bug搜索人员收集目标域的子域。Sublist3r使用许多搜索引擎,如Google、Yahoo、Bing、Baidu和Ask,列出子域名。Sublist3r还列举了使用Netcraft、Virustotal、ThreatCrowd、DNSdumpster和ReverseDNS的子域。
    Sublist3r可以通过运行以下命令安装在Kali Linux上:
    sudo apt-get install Sublist3r -y
    安装Sublist3r后,我们可以通过运行以下命令来使用它枚举目标域的子域:
    sublist3r -d https://DOMAIN.COM
    Sublist3r将通过利用各种搜索引擎和公开可用的数据库来枚举特定域的子域,这些数据库存储域和子域信息,如下面的屏幕截图所示。

    在这种情况下,我们已经确定了与目标域关联的各个子域,现在可以重复前面概述的过程来确定子域的IP地址和DNS记录。
    使用Google Dorks进行子域枚举
    除了使用像Sublist3r这样的自动化工具,我们还可以通过利用各种Google Dorks来搜索子域。这可以通过指定站点搜索过滤器并排除目标的域来完成。以下搜索词可用于识别已被Google编入索引的子域:
    site:*.domain.com -site:www.site.com
    如下面的屏幕截图中突出显示的,前面的搜索词将搜索结果限制为仅TLD的子域。
    主动侦察技术
    主动侦察涉及主动与目标基础设施进行交互或参与,以便枚举有关目标域或组织的更多信息。与被动侦察不同,主动侦察需要目标公司的书面许可和授权,因为我们将使用的一些技术可能会导致速度减慢,崩溃和潜在的数据丢失。DNS区域传送
    我们将介绍的第一种主动侦察技术涉及执行DNS区域转移。DNS区域传输,有时也称为诱导DNS查询类型AXFR,是一种DNS机制,由管理员用于跨一组DNS服务器复制DNS数据库。如果DNS区域传输机制处于活动状态,我们可以利用此功能获取目标域的DNS记录副本。
    如果成功,我们将获得与目标域关联的所有DNS记录的完整副本,包括在我们之前的检查中可能被隐藏的记录。
    使用DNSRecon进行DNS区域传输
    我们可以通过使用DNSRecon运行以下命令来执行DNS区域转移:
    dnsrecon -d https://domain.com -t axfr
    如下面的屏幕截图所示,如果成功,您将收到所有DNS记录的列表,包括内部DNS记录。

    使用Fierce进行DNS区域传输

    我们还可以使用内置的激烈实用程序执行DNS区域传输。第一,什么是凶猛。Fierce不是一个IP扫描器,它不是一个DDoS工具,它不是为了扫描整个互联网或执行任何非目标攻击而设计的。它专门用于定位公司网络内外的可能目标。仅列出这些目标(除非使用-nopattern开关)。不会执行攻击(除非您故意使用-connect开关进行恶意操作)。凶猛是一种侦察工具。Fierce是一个PERL脚本,它使用几种策略快速扫描域(通常只需几分钟,假设没有网络延迟)。
    我们可以通过运行以下命令来执行与激烈的DNS区域转移:
    fierce --domain domain.com
    子域蛮力
    我们还可以通过使用Knockpy执行蛮力攻击来枚举/发现子域。
    使用Knockpy的子域蛮力

    Knockpy是一个python3工具,旨在通过字典攻击枚举目标域上的子域。
    字典攻击是一种蛮力攻击,涉及使用企业和个人使用的常用单词和短语的“字典列表”来破解受密码保护的安全系统。
    Knockpy GitHub Repository:https://github.com/guelfoweb/knock

    Knockpy可以通过运行以下命令安装在Kali Linux上:
    sudo apt-get install knockpy -y
    我们可以通过运行以下命令来枚举Knockpy的子域:
    knockpy DOMAIN.COM
    如下面的屏幕截图所示,这将执行一个单词列表蛮力,以确定子域。

    端口扫描

    端口扫描是确定目标主机或网络上的哪些端口处于打开状态以及它们正在运行哪些服务的过程。端口扫描还可用于识别服务漏洞。
    我们已经能够获得属于目标公司的各种IP地址,我们可以使用此活动主机和IP地址列表来确定哪些端口打开以及正在运行的服务。
    端口扫描的目的是识别目标主机上运行的开放端口和相应服务。它还用于显示安全机制(如防火墙)的存在。
    有各种端口扫描工具可用于扫描打开的端口和枚举服务,以下是最流行的端口扫描程序列表:

    • Nmap:https://nmap.org/
    • Masscan:https://github.com/robertdavidgraham/masscan
    在本例中,我们将了解如何使用Nmap来识别目标系统上的开放端口。
    使用Nmap进行端口扫描
    Nmap与KaliLinux预先打包在一起,可以以多种方式使用,在我们的例子中,我们可以利用Nmap扫描目标的开放端口。

    Nmap隐形扫描

    sudo nmap -sS -A -T4 -p- <TARGET-IP> -oN output.txt
    上述命令将在目标IP上执行SYN扫描(隐形扫描),并将扫描所有TCP端口(65,535),检测在打开的端口上运行的服务,并将所有结果输出到输出文件。
    隐形(SYN)扫描相对来说是不显眼和隐形的,因为它永远不会完成TCP连接。

    Nmap脚本扫描
    您还可以通过运行以下命令,利用Nmap脚本枚举信息并使用Nmap扫描漏洞:

    sudo nmap -sS -sV -p <TARGET-PORT> <TARGET-IP> --script=<SCRIPT-NAME>

    您可以通过运行以下命令列出所有可用的Nmap脚本:
    ls -alps /usr/share/nmap/scripts

    目录爆破
    目录暴力破解是一种常见的针对网站和Web服务器的攻击,目的是找到网站上隐藏的和经常被遗忘的目录。
    有各种目录蛮力工具可用于发现网站上的隐藏文件和目录。以下是最流行的目录暴力破解工具列表:

    Gobuster:https://github.com/OJ/gobuster
    Dirb:https://www.kali.org/tools/dirb/
    Dirbuster:https://github.com/KajanM/DirBuster
    在这种情况下,我们将攻击看看如何使用Gobuster。
    对于我们的单词列表,我们将使用SecLists单词列表集合,可以在这里找到:https://github.com/danielmiessler/SecLists

    目录蛮力与Gobuster

    Gobuster是一种用于暴力的工具:

    • 网站中的URI(目录和文件)。
    • DNS子域(支持通配符)。

    • 目标Web服务器上的虚拟主机名。

    • 打开Amazon S3存储桶

    可以通过运行以下命令在Kali Linux上安装Gobuster:

    sudo apt-get install gobuster

    使用Gobuster对网站进行目录暴力攻击:

    sudo gobuster dir --url https://domain.com -w /PATH-TO-WORDLIST

    这将开始目录暴力攻击,并将隐藏的文件和目录被发现。

    网站漏洞扫描
    网站漏洞扫描是扫描网站以发现常见Web应用程序漏洞和服务器配置问题的过程。
    使用Nikto扫描网站漏洞
    Nikto是一款免费的命令行漏洞扫描软件,可以扫描Web服务器中的危险文件/CGI,过时的服务器软件和其他问题。它执行一般和特定于服务器类型的检查。它还捕获并打印收到的任何cookie。
    通过运行以下命令,您可以使用Nikto扫描网站/Web服务器的漏洞:
    nikto -h https://domain.com

    CMS漏洞扫描
    当攻击目标时,您可能会遇到使用内容管理系统(CMS)的网站,如WordPress或Joomla。
    我们可以利用各种工具来自动化检测最流行的CMS的安全缺陷的过程。以下是有用的CMS漏洞扫描器列表:
    • CMS地图:https://github.com/Dionach/CMS地图
    • WPScan:https://github.com/wpscanteam/wpscan
    • JoomScan:https://github.com/OWASP/joomscan


    自动重建框架
    现在我们已经探索了手动执行被动和主动侦察的过程,让我们看看如何自动化侦察过程。
    我们将使用的框架:
    • 电子邮件地址:https://github.com/1N3/Sn1per
    • OWASP总质量:https://github.com/OWASP/Amass

    使用Sn1per的自动重建

    Sn1per是一个开源的侦察和渗透测试框架,用于信息收集和漏洞扫描。这个框架有一个高级版本和一个社区版本。高级版本也具有开发功能。Sn1per框架的社区版本可用于自动化被动和主动侦察。
    Sn1per Wiki:https://github.com/1N3/Sn1per/wiki

    安装Sn1per

    Sn1per可以通过以下步骤安装在Kali Linux上:

    1、下载 The Sn 1 per repository :

     git clone https://github.com/1N3/Sn1per cd Sn1per bash install.sh
    使用Sn1per自动执行被动侦察
    Sn1per允许我们指定要执行的侦察类型,我们可以通过运行以下命令执行被动侦察:
    sniper -t <TARGET> -m stealth -o -re
    这将自动执行所有被动侦察技术,并将结果输出到保存在以下位置的报告中:/usr/share/sniper/loot/workspace/DOMAIN
    使用Sn1per自动执行主动重建
    我们可以通过运行以下命令使用Sn1per执行主动侦察:
    sniper -t <TARGET>
    这将自动执行所有活动的重建技术,并将结果输出到保存在以下位置的报告中:/usr/share/sniper/loot/workspace/DOMAIN
    Sn1per报告
    Sn1per生成可在浏览器中查看的HTM报告,可在以下目录中访问报告:/usr/share/sniper/loot/workspace/DOMAIN
    单击报告将在您的浏览器中显示结果,下面的屏幕截图是重建报告的示例。

    使用OWASP Amass的自动重建
    OWASP Amass Project使用开源信息收集和主动侦察技术执行攻击表面的网络映射和外部资产发现。
    Amass用户指南:https://github.com/OWASP/Amass/blob/master/doc/user_guide.md
    安装Amass
    Amass可以通过运行以下命令安装在Kali Linux上:
    sudo apt-get install amass
    使用Amass的被动子域枚举
    我们可以通过运行以下命令来自动化Amass枚举子域的过程:
    amass enum -d domain.com
    如下面的屏幕截图所示,Amass将输出子域和ASN的列表。

    我们还可以通过运行以下命令来枚举子域IP地址和源:
    amass enum -d domain.com -src -ip -dir /PATH-To-DIRECTORY/DOMAIN
    上述命令还将创建一个输出目录,并将所有结果保存到该目录中。
    使用Amass的活动子域枚举
    我们还可以使用Amass执行子域暴力破解,这可以通过运行以下命令来完成
    amass enum -d domain.com -src -ip -brute -dir DOMAIN
    使用Amass自动执行被动侦察
    除了执行手动检查和扫描之外,我们还可以使用enum子命令自动执行Amass的被动重建,
    如以下命令所示:
    amass enum -d domain.com -src -ip -dir DOMAIN
    此命令将对目标执行被动侦察,解析所有IP地址,显示源并将结果输出到指定的输出目录。
    使用Amass自动执行主动侦察
    我们还可以使用Amass自动执行主动侦察,这可以通过运行intel子命令来完成,
    如以下命令所示:
    amass intel -d domain.com -active -src -ip -dir DOMAIN 
    Amass报告
    可以通过使用viz子命令生成Amass报告。viz子命令允许您创建启发性的网络图可视化,为收集的信息添加结构。此子命令仅利用配置文件中的“output_directory”和远程图形数据库设置。您可以通过指定viz子命令和首选的输出格式(如以下命令中突出显示的)来生成报告:
    amass viz -dir DOMAIN -d3 

    点击名片关注公众号


    文章来源: http://mp.weixin.qq.com/s?__biz=MzI1MDk3NDc5Mg==&mid=2247484401&idx=1&sn=0db87327019c5a2db1ca649d39f59693&chksm=e9fb44d6de8ccdc09406d4adcbb9b9a76628bbb0056fc7d2724440e240e55270250db1c2caec#rd
    如有侵权请联系:admin#unsafe.sh