【Kali Linux渗透测试——开源情报与被动侦察】

目录

前言

一、侦察的基本原则

二、开源情报(Open Source Intelligence)

1、概述

1.利用Sublist3r收集域资料

2.Maltego

3.OSRFramework

4.Web archives

5.抓取

6.收集用户名和电子邮件地址

7.获取用户信息

3、Google黑客数据库

1.使用dork脚本来查询Google

2.Data dump网站

3.使用脚本自动化收集OSINT数据

4、防守型OSINT

1.暗网

2.安全漏洞

3.威胁情报

总结


前言

信息收集是从公开可用资源获取所有相关信息的一种方式,通常称为开源情报(Open Source Intelligence, OSINT)。通过OSINT的被动侦察,是进行渗透测试(或者攻击)网络(或者服务器)目标杀链的第一步。攻击者通常花费75%的时间对入侵目标进行侦察,在这一阶段,允许对目标进行定义、确定攻击目标的映射关系、探索其安全漏洞,以便最终进行漏洞利用。本节将介绍开源情报和被动侦察的相关内容。


一、侦察的基本原则

在进行渗透测试或攻击数据目标时,侦察是杀链的第一步,侦察的结果会给出需要额外侦察的方向或者指出在漏洞利用阶段要攻击的漏洞,侦察活动是与目标网络设备交互过程的一部分。

被动侦察并不与目标网络产生直接的恶意交互。攻击者的源IP地址不会被日志记录(例如:一个针对目标邮件地址的Google搜索)。被动侦察可进一步区分为直接和间接两类,当攻击者以一种可预期的方式与目标交互时,直接被动侦察可以看作是和目标的正常交互,这些交互活动属于可预期的用户活动,很少被看作是攻击目标的前奏,而间接被动侦察则绝对没有与目标系统的交互。

二、开源情报(Open Source Intelligence)

1、概述

一般来说,渗透测试或进行攻击的第一步是进行开源情报收集。OSINT指的是从公共的资源,特别是从互联网上,进行信息收集。OSINT可以分为两种类型:进攻和防守。进攻型需要分析对目标进攻所需的所有数据,而防守型只是收集以前的违规数据和与目标相关的其他安全事件的技术。

2、进攻型OSINT

需要收集的目标信息依赖于渗透测试的初始目标。

\bullet 域名(Domain name):在外部场景中识别攻击者或渗透测试人员的目标是通过域名开始的,域名是OSINT中最关键的元素。

\bullet DNS侦察和路由映射(DNS reconnaissance and route mapping):一旦测试人员确定其测试目标在线,下一步就是识别目标的IP地址和路由。DNS侦察关心的是:谁拥有一个特定域或一系列IP地址(whois-类别信息尽管在通用数据保护条例(GDPR)公布之后改变了很多),定义实际域名的DNS信息和标识目标的IP地址,以及在渗透测试人员或攻击者与最终目标之间的路由。

搜集这些信息是半主动的,一些信息是免费开源的,而另一些信息来自第三方实体,例如DNS注册机构,虽然注册机构可能会收集IP地址和关于攻击者请求的数据,但是很少提供终端目标的信息。可以由目标直接检测到的信息是从不用来评估或者保留的,如DNS服务器日志。因为需要的信息可以用一个确定的系统级、有条理的方法查询到,所以也可以自动收集信息。

1.利用Sublist3r收集域资料

Sublist3r是一个基于Python的工具,可用于域捕获,即利用OSINT枚举主域名的所有子域名,可以利用多种搜索引擎的API,如Google、Bing、Baidu和ASK,也可以在NetCraft、Virustotal、ThreatCrowd、DNSdumpster和reverseDNS中搜索,还可以利用特定词库来实现暴力破解。

Sublist3r可以直接从Github上下载,也可以在Kali终端中运行以下命令获取:

git clone https://github.com/aboul3la/Sublist3r/

2.Maltego

就个人和组织的侦察而言,Maltego是OSINT框架中最强大的之一,这是一种GUI工具集,可以通过各种方法收集个人在互联网上公开的信息,它还能够枚举域名系统(DNS),暴力破解普通DNS,并且以易于阅读的格式收集来自社交媒体的数据。

在基于目标的渗透测试中,我们可以利用Maltego M4开发数据可视化软件,用于处理收集到的数据,访问该应用程序最简单方法是在终端输入maltegoce,在Maltego中,这类任务被称为变换(transform)。变换内置在工具中,被定义为执行特定任务的代码脚本,Maltego还提供多种插件,如SensePost工集、Shodan、VirusTotal、ThreatMiner等。

当选择Maltego公共服务器时,一般将选择以下服务:

\bullet Company Stalker(公司追踪):用于获取域中所有电子邮件的地址,然后查看哪个和社交网络有关联,它还下载并且提取互联网上已发布文档的元文件。

\bullet Find Wikipedia edits(查找维基百科编辑):该选项将在维基百科编辑和所有社交媒体平台联合搜索。

\bullet Footprints L1(足印L1):执行域的基本足印。

\bullet Footprints L2(足印L2):执行域的中等级足印。 

\bullet Footprints L3(足印L3):这需要深入一个域,因为它占用了所有资源,通常应小心使用。 

\bullet Footprint XML(足印XML):这适用于大型目标,例如托管自己的数据中心的公司,并尝试通过查看发送方策略框架(Sender Policy Framework, SPF)记录来获得网络块,并将委派的DNS委托给其名称服务器。 

\bullet Person - Email Address(私人 - 电子邮件地址):用于获取某人的电子邮件地址,并查看互联网上使用的位置。输入的不是一个域,而是一个完整的电子邮件地址。

\bullet Prune Leaf entries(修剪条目):提供删除网络的特定部分的选项,以帮助过滤信息。

\bullet Twittter digger X(Twitter 挖掘机X):Twitter推文分析器别名。 

\bullet Twitter digger Y(Twitter 挖掘机Y):设计Twitter的关联,在其中发现、提取和分析推文。 

\bullet Twitter Monitor(Twitter 监视器):可以用于执行操作监视Twitter的主题标签(hashtag),以及围绕某个短语提到的实体。输入是短语。

\bullet  URL to Network and Domain Information(网络和域信息的URL):使用URL来识别域的详细信息。

 攻击者从L1开始,基本的任务是了解域、潜在可用的子域名和相关的IP地址。选择机器和,单击NEXT并选择一个域。

3.OSRFramework

OSRFramework是一种由i3visio设计的通过Web接口实时开源威胁情报收集的工具,其控制台为OSRFConsole。OSRFramework可以通过运行命令直接安装:

pip install osrframework

OSRFramework提供了关于关键字的多源威胁情报,并且其既可以单独使用,也可以接入Malgeto使用,OSRFramework可以为渗透测试者提供三个模块,以进行外部威胁情报的数据收集。

\bullet usufy:在多个搜索引擎中搜索,识别URL中的关键字,以及自动枚举并以.csv的格式存储所有结果,可以用以下命令使用usufy搜索关键字:

usufy -n <key words>

\bullet  searchfy:在Facebook、Github、Instagram、Twitter和YouTube中搜索关键字,可以用以下命令使用searchfy搜索关键字:

searchfy -q"<key words>"

\bullet  mailfy:识别关键字并自动在关键字后面添加电子邮件域名,然后自动以API调用的形式在haveibeeenpawned.com中搜索,可以用以下命令使用mailfy搜索关键字:

mailfy -n <key words>

4.Web archives

网页虽然在互联网中删除,但在Google中不一定被删除了,被Google访问过的页面都被备份为快照储存在Google缓存中,通常情况下,可以根据我们的搜索查询来查看Google是否可以为我们提供最佳的可用页面,这同样可以用来收集关于目标的信息,例如用户名、哈希密码、正在使用的后端类型以及其他相关的技术和策略信息,以下地址是收集过去数据的第一级:

https://web.archive.org/web/

5.抓取

攻击者利用从网站提取的大量数据集,进而将提取的数据存储到本地文件系统中,这种技术成为抓取或网页抓取。

6.收集用户名和电子邮件地址

theHarvester是一个Python脚本,可以借助流行的搜索引擎和其他一些站点来搜索电子邮件地址、主机以及子域站点等。使用theHarvester工具只需要通过几个命令参数来进行设置,可用的选项如下:

\bullet -d:用来确定搜索的域,通常是当前域或者目标网站。

\bullet -b:用来确定提取信息的来源,来源必须是下面的一种:Bing、Bing API、Google、Jigsaw、Google-Profiles、LinkedIn、People123、PGP或者ALL。

\bullet -l:该选项使theHarvester只收集特定数目的返回搜索结果的数据。

\bullet -f:用来保存最后的结果,保存为HTML文件或者XML文件。如果省略该选项,结果将会显示在屏幕上,但是不会被保存。 

7.获取用户信息

许多渗透测试人员会收集用户名和电子邮件地址,因为这些信息经常用于登录目标系统。最常用的工具是网络浏览器,用来手动搜索目标组织的网站,也包括第三方站点,例如LinkedIn或其他社交网站,Kali包含的一些自动工具也支持手动搜索。

3、Google黑客数据库

1.使用dork脚本来查询Google

了解Google Hacking数据库首先要了解所有典型的Google运算符,这些Google运算符是Google查询的一部分,搜索的语法如下:

operator:itemthatyouwanttoserach

下表列出了所有典型的Google运算符:

Google运算符
操作                  说明能否混用能否单独使用
intitle允许页面标题关键字搜索
allintitle在标题中一次搜素所有关键字
inurl搜索URL中的关键字
site将Google搜索结果过滤到该网站
ext或filetype搜索特定的拓展名或文件类型
allintext允许关键字搜索所有出现次数
link允许在页面上进行外部链接搜索
inanchor在网页上搜索锚点链接
numrange限制了范围内的搜索
daterange限制了日期的搜索
author找到群组作者
group搜索组名称
related搜索相关关键词

dork搜索是:

inurl:"/jira/login.jsp"intitle:"JIRA login"

更具体的运算符,可以参考Google的指南:

https://www.googleguide.com/advanced_operators_reference.html

还可以通过exploit-db利用Google黑客数据库,该数据库由安全研究社区不断更新,可在以下地址获得:

https://www.exploit-db.com/google-hacking-database/

2.Data dump网站

当下,通过现场应用(the on-spot app),如pastebin.com,任何信息都可以在互联网上高效地分享,这种在线信息也为攻击者提供了丰富的信息列表。归档论坛还会显示特定网站的日志,或者以前曾被黑客入侵的黑客攻击事件,Pastebin提供此类信息。

3.使用脚本自动化收集OSINT数据

自动化OSINT,可以使得被动侦察更加高效。下面是一个简单的自动化脚本,利用一些Kali中的命令行工具,输出储存在多个文件中,没有数据库,可以采用类似脚本自动化大多数命令行工具,获取大部分信息。

#!/bin/bash
echo "Enter target domain:"read domain if [[ $domain != "" ]];
then
echo "Target damain set to $domain"
echo "******************************************"
echo "The Harvestor" theharvester -d $domain -1 500 -b all -f
harvester_$domain echo "done!"
echo "******************************************"
echo "Whois Details" whois $domain >> whois_$domain
echo "done!"
echo "******************************************"
echo "Searching for txt files on $domain using Goofile..." goofile -d
$domain -f txt >> goofile_txt_$domain
echo "done!"
echo "******************************************"
echo "Searching for pdf files on $domain using Goofile..." goofile -d
$domain -f pdf >> goofile_pdf_$domain
echo "done!"
echo "******************************************"
echo "Searching for pdf files on $domain using Goofile..." goofile -d
$domain -f doc >> goofile_doc_$domain
echo "done!"
echo "******************************************"
echo "Searching for pdf files on $domain using Goofile..." goofile -d
$domain -f xls >> goofile_xls_$domain
echo "done!" else echo "Error! Please enter a domain..."
fi

前一脚步加上一行循环脚本可以在多个域运行,命令如下:

while read r; do scriptname.sh $r; done < listofdomains

4、防守型OSINT

防守型OSINT通常可以用于查看已经被掌握的内容,并且查看这些信息在渗透测试活动期间是否有价值。如果渗透测试的目标是演示真实世界的场景,那么根据这些数据可以很方便地初步识别已经掌控的类似目标。

1.暗网

暗网(Dark Web)是Tor服务器及其客户端之间存在的加密网络,而深网(Deep Web)仅仅提供数据库和一些Web服务内容太,由于种种原因,常规搜索引擎(例如Google)无法对其进行搜索。比如,处于各种理由,用户可以在暗网上购买过期或禁止销售的药品,某些网站(例如deepdotweb.com)提供了一些隐藏的深网链接,而这些链接只能通过Tor浏览器访问。

2.安全漏洞

安全漏洞是指绕过底层安全机制,未经授权访问数据、应用程序、服务、网络或设备任何事件。黑客常访问的网站就收集了大量的漏洞资料,例如:

https://databases.today
https://haveibeenpwned.com

为了获取目标的更多信息,测试者往往需要访问zone-h.com这类网站以获取目标的漏洞信息。

3.威胁情报

威胁情报是关于威胁一个组织的潜在的或当前的攻击的控制、计算以及提炼信息。这种情报的主要目的是确保组织意识到当前的风险,如高级持久性威胁(Advanced Persistent Threat, APT)零日漏洞(zero day exploit),以及其他严重的外部威胁。渗透测试或攻击者总是会订阅这类开源威胁情报的框架,如STIX、TAXII或者利用妥协指标(Indicators of Compromise, IOC)的GOSINT框架。


总结

本节介绍了开源情报以及被动侦察的相关内容,被动侦察包含直接被动被动侦察和间接被动侦察两种类型,同时说明了如何利用工具获取开源情报和进行被动侦察,在下一节中,将介绍外网和内网主动侦察的相关内容。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Kali Linux是一种专门用于渗透测试网络安全的操作系统。它集成了大量的渗透测试工具和资源,使得安全专业人员能够有效地评估和保护网络系统的安全性。 Kali Linux提供了多种渗透测试靶机,用于练习和测试渗透测试技术。这些靶机模拟了真实世界中的各种漏洞和攻击场景,帮助安全专业人员熟悉和理解不同类型的漏洞,并学习如何利用它们。 以下是一些常见的Kali Linux渗透测试靶机: 1. Metasploitable:Metasploitable是一个故意构建的易受攻击的虚拟机,它包含了多个漏洞和弱点,可以用于学习和实践Metasploit框架的使用。 2. DVWA(Damn Vulnerable Web Application):DVWA是一个故意构建的Web应用程序,包含了多个常见的Web漏洞,如SQL注入、XSS等,可以用于学习和实践Web应用程序渗透测试技术。 3. OWASP Mutillidae II:Mutillidae II是一个故意构建的Web应用程序,旨在模拟真实世界中的各种Web漏洞和攻击场景,包括SQL注入、文件包含等。 4. Hack The Box:Hack The Box是一个在线平台,提供了一系列的渗透测试靶机,每个靶机都有不同的漏洞和挑战,可以用于测试和提高渗透测试技能。 这些渗透测试靶机都可以在Kali Linux上进行安装和使用。通过实践和探索这些靶机,安全专业人员可以提高他们的渗透测试技能,并了解如何保护网络系统免受各种攻击。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值