REDTEAM 指南---第四章 外部侦察

第四章 外部侦察

贡献者:Haythem Arfaoui 翻译BugMan

主动侦察

介绍

主动足迹涉及使用可以帮助您收集更多信息的工具和技术 有关目标的信息。与被动足迹不同的是,过程永远不会“触及”

目标,活动足迹涉及目标系统可能记录的任务,因此 隐身是关键。

NMAP

首先让我们快速介绍一下“ NMAP”是什么。NMAP的缩写

“NetworkMAPper”,这是一个免费的开放源代码命令行工具,用于网络发现和安全评估。由道德黑客,渗透测试人员,系统管理员使用,黑帽黑客;实际上,想要了解有关给定设备的更多信的任何人 网络。它通常也称为网络扫描仪或端口扫描仪,因为它扫描打开状态设备上的端口,但它不仅具有简单的端口或网络扫描仪的功能,还具有更多的功能。除了经典的命令行外,NMAP还包括一个称为“ Zenmap”的GUI。现在,我们将通过必要的步骤来使用NMAP来收集信息通过运行端口扫描和指纹识别在目标上运行。本质上,在此屏幕截图中,您可以 请参阅运行nmap- h 的输出,这是help命令。

NMAP 目标> 。现在,此简单的默认扫描实际上是扫描1000个TCP端口。如果我们做一点 搜索到该目录(/ usr / share / nmap,但这可能取决于NMAP的位置 <安装在您的系统上),您可以看到NMAP用于默认设置的一些默认端口 扫描。 如果我们以特权用户身份运行默认的扫描命令,则NMAP将启动称为 原始SYN隐形扫描。另一方面,如果我们以非特权身份运行NMAP命令 用户,它将运行“ TCP连接扫描”。没有root特权,它将运行完全连接扫描。

Nmap端口状态

open:表示应用程序正在积极接受TCP连接或UDP

该端口上的数据报或SCTP关联。本质上,这意味着它正在接受

连接和每个开放端口都是攻击的途径。

封闭:封闭的端口可访问,因为它接收并响应NMAP探测数据包,但是没有应用程序在监听它。这些关闭的端口有助于显示主机 因为关闭的端口是可以到达的,所以稍后可能值得对其进行扫描 万一有东西打开。

已过滤:已过滤的端口意味着NMAP无法确定端口是否打开 因为某种形式的数据包筛选会阻止其探针到达端口。这意味着 探针由某种专用防火墙,路由器规则,ACL或基于主机的过滤 防火墙。有时,这些端口会响应ICMP错误消息,例如Type 3 Code 13。 就像目的地无法到达。

未过滤:未过滤状态表示可以访问端口,但NMAP无法 确定它是打开的还是关闭的。仅用于扫描防火墙的ACK扫描 规则集,将端口分类为此状态。使用其他扫描类型扫描未过滤的端口,例如 窗口扫描,SYN扫描或FIN扫描可能有助于解决端口是否打开。

Open | Filtered :此状态表示NMAP无法确定端口是打开还是打开

过滤。缺乏响应还可能意味着数据包过滤器丢弃了探针或任何 收到的回应。因此,NMAP无法确保端口是打开的或已被过滤。 UDP,IP,FIN,Null和Xmas扫描也对端口进行了分类。 Closed | Filtered :当NMAP无法确定端口是否为 关闭或过滤。此状态仅由基于IP数据包标识符的空闲扫描使用。

主机发现

在渗透测试人员和系统中,查找本地网络中的活动主机是一项常见任务 管理员可以枚举网段上的活动计算机。Nmap提供更高 探测效率比传统ping实用程序高,因为它发送的探测比 传统的ICMP回显请求以发现主机。 此食谱描述了如何使用Nmap执行ping扫描以查找本地主机中的活动主机 网络。

#nmap -sL <目标> :(列表扫描)不扫描。仅列出目标。

#nmap -sn <目标> :(禁用端口扫描)此选项告诉Nmap在之后不运行端口扫描

主机发现。

#nmap -Pn :(禁用Ping)禁用主机发现。仅端口扫描。

#nmap -PS / PA / PU / PY [ 端口列表] <目标> :TCP SYN / ACK,UDP或SCTP发现 到给定的端口。

扫描技术

大多数扫描类型仅适用于特权用户。这是因为他们正在发送

并接收需要在Unix系统上进行根访问的原始IP数据包(甚至以太网帧)。 尽管有时Nmap可以工作,但建议在Windows上使用管理员帐户。如果WinPcap已加载到操作系统中,则适合该平台上的非特权用户。所以在

在本节中,我们将讨论Nmap提供的不同扫描技术:

nmap -sS / sT / sA / sW / s M :TCP SYN / Connect()/ ACK / Window / Maimon扫描  

nmap -s U :UDP扫描  

nmap -sN / sF / s X :TCP空,FIN和Xmas扫描  

nmap --scanflags <标志> :自定义TCP扫描标志  

nmap -sI <僵尸主机[:probeport] > :空闲扫描  

nmap -sY / s Z :SCTP INIT / COOKIE-ECHO扫描  

nmap -s O :IP协议扫描  

nmap -b <FTP中继主机> :FTP退回扫描

端口规格和扫描顺序

端口规格是扫描的重要部分。我们应该仔细设置端口范围,因为

错误的范围将使我们的结果容易受到误报和超时的影响。众所周知,TCP和UDP协议的端口号介于0到65535之间。 某些扫描的值,但我们可以使用此参数指定目标端口。

#nmap -p <端口范围> <目标> :仅扫描特定端口

#nmap -p <端口范围> --exclude-ports <端口范围> <目标> :排除

扫描指定的端口

#nmap -F <目标> :快速模式-扫描的端口少于默认扫描的端口  

#nmap -r <目标> :连续扫描端口-不要随机化  

#nmap --top-ports <编号> <目标> [:扫描最常见的端口  ](https://www.peerlyst.com/tags/common-ports)

#nmap --port-ratio <比率> <目标> :扫描端口比<比率>更常见  

Nmap脚本和版本扫描

Nmap提供脚本扫描功能,使Nmap具有非常灵活的行为以获取更多信息有关目标主机的信息和测试。此功能称为Nmap脚本引擎(NSE)。NSE使用户能够编写测试脚本。Lua是一种编程语言

由NSE支持。NSE也有一些漏洞检测脚本。NSE具有使事情整洁的类别。以下是类别

资料来源:https : //www.poftut.com/nmap-script-version-scan/

要在Nmap脚本中使用不同类别的脚本,应启用NSE进行脚本扫描

-sÇ 。默认情况下,这将为目标启用默认类别脚本

#nmap -sC <target > :启用脚本扫描。

现在我们要使用特定的脚本进行扫描,但是首先,我们应该列出并获取信息 关于这些脚本。Nmap有一个网页,其中列出了所有脚本。这是清单可用的NSE脚本。

https://nmap.org/nsedoc/

执行Nmap扫描时会触发默认类别脚本,但是如果我们要运行

具体的脚本我们可以指定脚本名称或类别名称,如下所示。

nmap -sC --script = <脚本名称> <target > :运行特定的脚本

Nmap操作系统检测

Nmap最著名的功能之一是使用TCP / IP堆栈指纹的远程OS检测。

操作系统检测启用了其他一些测试,这些测试利用了在

仍然处理。

#nmap -O <target > :[使用TCP / IP堆栈指纹进行远程OS检测  ](https://www.peerlyst.com/tags/fingerprinting)

#nmap -A <目标> :启用操作系统检测,版本检测,脚本扫描和跟踪路由

最后,有关Nmap命令和Nmap等不同技术的更多详细信息

时间和性能,Nmap输出及其他,我建议您检查此备忘单

由Stationx.com创建。

https://s3-us-west-2.amazonaws.com/stationx-public-download/nmap_cheet_sheet_0.6.pdf

扫描

扫描是用于识别活动主机,端口和服务,发现 目标系统的操作系统和体系结构,确定漏洞和威胁网络。网络扫描用于创建目标组织的配置文件。

扫描类型:

  • 端口扫描:在目标上查找开放的端口和服务
  • 网络扫描:在目标网络中查找IP地址
  • 漏洞扫描:查找目标上的弱点或漏洞

端口扫描:在此过程中,道德黑客,渗透测试人员,系统管理员 识别可用和开放的端口,并了解在目标上运行的服务。港口和 端口号可以分为以下三个范围:

  • A.知名端口:从0到1023
  • B.注册端口:从1024到49151
  • C.动态端口:从49152到65535

端口扫描工具

NMAP

正如我们在前面的部分中发现的那样,Nmap是最受欢迎的网络发现和历史记录中的端口扫描程序。

独角兽

这是仅次于Nmap的第二受欢迎的免费端口扫描程序。旨在提供

具有高级界面的研究员,用于将刺激引入并测量响应

从启用TCP / IP的设备或网络中获取。

Zenmap

Zenmap是官方的Nmap Security Scanner GUI。它是一个多平台(Linux,Windows,Mac OS X,BSD等)免费和开源的应用程序,旨在使Nmap易于 初学者使用,同时为经验丰富的Nmap用户提供高级功能。

网络扫描:

这意味着在网络上寻找活动的机器或目标。这个可以使用工具或脚本来ping网络上的所有IP地址并获取活动节点及其IP地址。

网络扫描工具

愤怒的IP扫描仪

这是我们推荐的第三个用于网络发现的端口扫描工具。它因快速而受欢迎多线程方法将每次扫描分开,从而提高了扫描速度。

Wireshark

Wireshark是一种开源工具,被称为多平台网络协议分析器。它

在活动客户端和服务器之间的实时网络上扫描数据漏洞。

先进的IP扫描仪

这是一个在Windows环境中工作的免费和开源网络扫描工具。它

可以检测和扫描网络上的任何设备,包括无线设备。

漏洞扫描:

是对计算机或计算机上潜在利用点的检查。 网络识别安全漏洞。漏洞扫描可以检测并分类系统漏洞 在计算机,网络和通信设备上,并预测 对策。

漏洞扫描程序

OpenVAS

这是一个开放源代码工具,用作提供漏洞评估的*服务

漏洞扫描和漏洞管理工具。

Nikto

Nikto是一种备受赞誉的开源网络扫描仪,用于评估可能的问题

和漏洞。

Nessus

Nessus是世界上最受欢迎的漏洞扫描程序,在2000年,2003年以及和2006年安全工具调查。Nessus通过识别以下内容来有效地防止网络攻击 可能被利用来攻击网络的弱点和配置错误。

Acunetix

Acunetix Web漏洞扫描程序是一个自动化的Web应用程序安全测试工具,通过检查SQL注入,跨站点等漏洞来审核您的Web应用程序 脚本和其他可利用的漏洞。

Traceroute

Traceroute是大多数操作系统随附的网络实用工具。traceroute工具“跟踪从您的IP到您指定的最终主机的IP的路由”。它是

在识别您与之间存在的路由器,防火墙和网关时特别有用您的目标.要在基于Linux的系统上运行traceroute命令,只需键入:

#traceroute <完全合格的域名>

要么

#traceroute <IP地址>
Masscan

Masscan与Nmap相似,但速度更快。根据其GitHub存储库,它能够

每秒发送1000万个数据包。要使用masscan进行“ ping扫描”,只需键入:

#masscan --range <IP范围> --ping

被动侦察

在本节中,我想谈谈使用被动侦察的足迹。被动 侦察正在收集有关目标公司的主机信息,而无需进行沟通

与他们的任何系统。这对于外部足迹过程至关重要,因为它 作为本章其余部分的基础。 在下面的列表中,我着重介绍了一些可用于执行的有用资源和工具 被动足迹是道德黑客行为侦察阶段的一部分。

whois

从一个URL开始,我们可以使用的第一种技术或实用程序是 WHOIS查找。现在,WHOIS实际上是一个协议,但是它可以追溯到 互联网。WHOIS的目标是将URL与公司信息联系起来。所以这会 是实际地址,电话号码和联系电子邮件。并且为公司分配了唯一的 标识符称为自治系统号或ASN。此ASN也与 网络范围或外部IP地址列表。因此,从足迹开始,WHOIS很方便 视角,因为我们可以从URL转到IP地址列表。

GHDB

Google恰巧是用户执行攻击的最强大的OSINT工具,并形成了GHDB的基础-Google Hacking数据库。使用Google,对 随机网站可以在0.2 Google秒内执行。特制词 输入到Google的名称称为dork,也称为google dork。这些GHDB怪癖可以用来揭示 Internet上的易受攻击的服务器,以收集敏感数据,上载的易受攻击的文件, 子域等。有效使用GHDB可以使黑客过程变得可观 更轻松。漏洞利用数据库在名为GHDB的部分下维护着一组googledorks。

搜索引擎

Shodan

Shodan是专注于深层网络和互联网的网络安全监控器和搜索引擎 诸如打印机,网络摄像头,服务器,路由器和其他服务之类的东西。

Censys

Censys是一个出色的搜索引擎,用于获取有关以下方面的最新,最准确的信息: 连接到Internet的任何设备,论是服务器还是域名。 您将能够找到有关端口80和443上运行的完整地理和技术详细信息 任何服务器,以及目标站Chrome TLS的HTTP / S正文内容和GET响应 握手,完整的SSL证书链信息和WHOIS信息。

Google Dorks

在调查人员或公司时,许多IT安全新手都忘记了 使用传统的搜索引擎进行侦察和情报搜集。 在这种情况下,Google Dorks可能是您最好的朋友。他们自2002年以来一直在那里,可以为您提供帮助 您在情报侦察中占了很多。 Google Dorks是查询Google某些有用信息的简单方法 为您的安全调查。 搜索引擎索引了关于互联网上几乎所有内容的许多信息,包括 个人,公司及其数据。 对于侦察定位,我建议使用以下方法: 文件类型:您可以使用此工具查找任何类型的文件类型。

Ext :可以帮助您查找具有特定扩展名的文件(例如.txt,.log等)。  

Intext :可以执行查询有助于在任何页面内搜索特定文本。  

Intitle :它将搜索页面标题内的任何特定单词。  

Inurl :将在任何网站的URL中查找提到的单词。

您可以在此链接中找到其他Google古怪的人:

https://www.sans.org/security-resources/GoogleCheatSheet.pdf

http://www.googleguide.com/print/adv_op_ref.pdf

社交媒体

社交媒体给许多组织带来了一个有趣的困境。一方面,这些 平台对于公司轻松共享有关事件,职位发布, 和新服务。另一方面,它们可以成为恶意黑客和渗透测试者的宝库。

公司网站

目标自己的公共网站以及它在公共领域托管的其他数字资产也可以是 用于收集道德黑客行为进一步阶段所需的信息。按 该组织发布的版本也很有用,因为它们声明了名称和名称 关键员工及其成功实施的技术或项目。

Netcraft

Netcraft提供了几乎每个网站的数据,这对于渗透非常有用测试人员。它可用于收集有关目标运行的网站的信息

信息并返回信息,例如其IP地址,托管提供商,使用的技术 等等

DNS工具

在此侦察阶段,您可以使用的最大工具是DNS。这个互联网 协议将帮助您获取IP地址列表,并将其与可能的服务进行匹配 目标正在运行。此外,DNS还可以洞悉目标电子邮件的状态 您可以从TXT和SRV记录以及 当然是权威DNS服务器的IP和名称。

DNS侦察

DNSRecon

是进行DNS侦查的绝佳工具。以下命令

#dnsrecon -w ,其中-w选项可启动深入的WHOIS记录分析。输出  DNSRecon将为您提供WHOIS记录,主机地址,名称服务器和IP  地址以及MX邮件记录和其他相关的DNS信息。

dnscan

运行dnscan 在终端

#python dnscan -d -w -v

中键入以下命令。 dnscan是另一个DNS侦查工具,它具有与DNSRecon类似的功能,但是 带有DNS子域词典,这是查找子域的宝贵工具

dmitry

dmitry是另一个DNS / Web搜索足迹侦查工具。该命令

执行dmitry的“足迹”扫描是:

#dmitry -winse <目标域>

再次使用Google Dorks搜索这些网站,例如site:indeed.com,site:monster.com等。

上一篇:mutex.go


下一篇:reStructuredText(rst)快速入门语法说明