
Getting Strat
文件夹结构
// 文件夹结构
AcesMin@htb[/htb]$ tree Projects/
Projects/
└── Acme Company
├── EPT
│ ├── evidence
│ │ ├── credentials
│ │ ├── data
│ │ └── screenshots
│ ├── logs
│ ├── scans
│ ├── scope
│ └── tools
└── IPT
├── evidence
│ ├── credentials
│ ├── data
│ └── screenshots
├── logs
├── scans
├── scope
└── tools这里我们为客户提供了一个文件夹Acme Company,其中包含两个评估:内部渗透测试(IPT)和外部渗透测试(EPT)。在每个文件夹下,我们都有用于保存扫描数据、任何相关工具、日志输出、范围信息(即提供给我们的扫描工具的 IP/网络列表)的子文件夹,以及可能包含评估期间检索到的任何凭据的证据文件夹、检索到的任何相关数据以及屏幕截图。
这是个人喜好,但有些人为每个目标主机创建一个文件夹并在其中保存屏幕截图。其他人则按主机或网络组织笔记,并将屏幕截图直接保存到笔记工具中。尝试使用文件夹结构,看看什么最适合您保持井井有条并最有效地工作。
笔记工具
生产力和组织非常重要。一个技术性很强但无组织的渗透测试人员将很难在这个行业取得成功。可以使用各种工具来组织和记笔记。选择笔记工具是非常个人化的。我们中的一些人可能不需要其他人根据他们的工作流程需要的功能。一些值得探索的好选择包括:
其中一些更专注于记笔记,而其他一些(例如 Notion 和 GitBook)则具有更丰富的功能,可用于创建 Wiki 类型的页面、备忘单等。如果在实际评估中使用这些工具之一,请务必确保任何客户端数据仅存储在本地而不同步到云端。
The Concept of Attacks - 攻击的概念

Information Source 信息来源
Information Source 信息来源
Description 说明
Code
This means that the already executed program code results are used as a source of information. These can come from different functions of a program. 这意味着已经执行的程序代码结果被用作信息源。这些结果可能来自程序的不同功能。
Libraries
A library is a collection of program resources, including configuration data, documentation, help data, message templates, prebuilt code and subroutines, classes, values, or type specifications. 程序库是程序资源的集合,包括配置数据、文档、帮助数据、消息模板、预编译代码和子程序、类、值或类型规范。
Config
Configurations are usually static or prescribed values that determine how the process processes information. 配置通常是静态值或规定值,决定了流程处理信息的方式。
APIs
The application programming interface (API) is mainly used as the interface of programs for retrieving or providing information. 应用程序编程接口(API)主要用作检索或提供信息的程序界面。
User Input
If a program has a function that allows the user to enter specific values used to process the information accordingly, this is the manual entry of information by a person. 如果程序具有允许用户输入用于相应处理信息的特定值的功能,这就是人工输入信息。
Process Components 过程组件
Process Components 过程组件
Description 说明
PID
The Process-ID (PID) identifies the process being started or is already running. Running processes have already assigned privileges, and new ones are started accordingly. 进程 ID(PID)用于标识正在启动或已经运行的进程。运行中的进程已经分配了权限,新进程也会相应启动。
Input
This refers to the input of information that could be assigned by a user or as a result of a programmed function. 这是指输入的信息,可以由用户指定,也可以是编程功能的结果。
Data processing
The hard-coded functions of a program dictate how the information received is processed. 程序的硬编码功能决定了如何处理接收到的信息。
Variables
The variables are used as placeholders for information that different functions can further process during the task. 变量被用作信息的占位符,不同的功能可以在任务中进一步处理这些信息。
Logging
During logging, certain events are documented and, in most cases, stored in a register or a file. This means that certain information remains in the system. 在日志记录过程中,某些事件会被记录下来,并在大多数情况下存储在寄存器或文件中。这意味着某些信息会保留在系统中。
常用术语
什么是shell?
Shell这是一个非常常见的术语,我们在旅途中会一次又一次地听到。它有几个含义。在Linux系统上,shell是一个程序,它通过键盘接受用户的输入,并将这些命令传递给操作系统以执行特定的功能。在计算的早期,shell 是唯一可用于与系统交互的接口。从那时起,更多的操作系统类型和版本与图形用户界面 (GUI) 一起出现,以补充命令行界面 (shell),例如 Linux 终端、Windows 命令行 (cmd.exe) 和 Windows PowerShell 。
大多数Linux系统使用一种称为Bash(Bourne Again Shell)的程序作为shell程序与操作系统交互。Bash 是sh的增强版本,sh 是 Unix 系统的原始 shell 程序。除此之外bash还有其他 shell,包括但不限于Zsh、Tcsh、Ksh、Fish shell等。
我们经常会读到或听到其他人谈论在(系统)上“getting a shell”。这意味着目标主机已被利用,并且我们已经获得了 shell 级别的访问权限(通常为bash或sh),并且可以交互地运行命令,就像我们登录到主机一样。可以通过利用 Web 应用程序或网络/服务漏洞或获取凭证并远程登录目标主机来获取 shell。外壳连接主要有以下三种类型:
外壳类型
描述
Reverse shell
启动与我们的攻击盒上的“侦听器”的连接。
Bind shell
“绑定”到目标主机上的特定端口并等待来自我们的攻击盒的连接。
Web shell
通过 Web 浏览器运行操作系统命令,通常不是交互式或半交互式的。它还可用于运行单个命令(即,利用文件上传漏洞并上传脚本PHP来运行单个命令。
每种类型的 shell 都有其用例,同样,获取 shell 的方法也有很多种,我们用来获取 shell 的帮助程序可以用多种语言编写(Python、Perl、Go、Bash、Java、awk、PHP等)。这些可以是小脚本,也可以是更大、更复杂的程序,以促进从目标主机连接回我们的攻击系统并获得“shell”访问权限。Shell 访问将在后面的部分中深入讨论。
什么是Port(端口)?
端口可以被认为是房屋上的窗户或门(房屋是远程系统),如果窗户或门打开或未正确锁定,我们通常可以未经授权访问房屋。这在计算中也是类似的。端口是网络连接开始和结束的虚拟点。它们基于软件并由主机操作系统管理。端口与特定进程或服务相关联,并允许计算机区分不同的流量类型(SSH 流量流向与访问网站的 Web 请求不同的端口,即使访问请求是通过同一网络连接发送的)。
每个端口都分配有一个编号,并且许多端口在所有网络连接设备上都是标准化的(尽管可以将服务配置为在非标准端口上运行)。例如,HTTP消息(网站流量)通常会发送至 port 80,而HTTPS消息则发送至 port 443,除非另有配置。我们会遇到在非标准端口上运行的 Web 应用程序,但通常会在端口 80 和 443 上找到它们。端口号允许我们访问目标设备上运行的特定服务或应用程序。在非常高的层面上,端口帮助计算机了解如何处理它们接收到的各种类型的数据。
端口范围 1 到 1,023 保留用于特权服务。端口 0 是 TCP/IP 网络中的保留端口,在 TCP 或 UDP 消息中不使用。如果有任何东西尝试绑定到端口 0(例如服务),它将绑定到端口 1,024 之上的下一个可用端口,因为端口 0 被视为“通配符”端口。
端口有两类:传输控制协议 (TCP)和用户数据报协议 (UDP)。
TCP面向连接,这意味着在发送数据之前必须建立客户端和服务器之间的连接。服务器必须处于监听状态,等待客户端的连接请求。
UDP采用无连接通信模型。没有“握手”,因此由于无法保证数据传输而引入了一定程度的不可靠性。UDP当不需要纠错/检查或者由应用程序本身处理时,这是有用的。UDP适用于运行时间敏感任务的应用程序,因为丢弃数据包比等待由于重传而延迟的数据包更快,就像实时系统的情况一样,TCP并且可以显着影响实时系统。有65,535 TCP端口和65,535不同的UDP端口,每个端口都用一个数字表示。下面列出了一些最著名的TCP端口:UDP
端口
协议
20/ 21(TCP)
FTP
22(TCP)
SSH
23(TCP)
Telnet
25(TCP)
SMTP
80(TCP)
HTTP
161(TCP/UDP)
SNMP
389(TCP/UDP)
LDAP
443(TCP)
SSL/ TLS( HTTPS)
445(TCP)
SMB
3389(TCP)
RDP
作为信息安全专业人员,我们必须能够快速回忆起各种主题的大量信息。对于我们来说,尤其是作为渗透测试人员,必须牢牢掌握许多TCP和UDP端口,并且能够仅通过它们的编号快速识别它们(即知道端口21是FTP、端口80是HTTP、端口88是Kerberos),而无需查找它们。随着练习和重复,这将最终成为我们的第二天性,因为我们攻击更多的盒子、实验室和现实世界的网络,并帮助我们更有效地工作,更好地优先考虑我们的枚举工作和攻击。
诸如此类的指南是学习标准和不太常见的 TCP 和 UDP 端口的重要资源。挑战自己记住尽可能多的这些协议,并对上表中列出的每个协议进行一些研究。这是关于前 1,000 个端口以及扫描的前 100 个服务的一个很好的参考。TCPUDPnmapnmap
什么是Web Server(网络服务器)
Web 服务器是运行在后端服务器上的应用程序,它处理HTTP来自客户端浏览器的所有流量,将其路由到请求目标页面,最后响应客户端浏览器。80Web 服务器通常在 TCP 端口或上运行443,除了处理各种响应之外,还负责将最终用户连接到 Web 应用程序的各个部分:
由于Web应用程序往往开放给公众交互并面向互联网,因此如果它们遇到任何漏洞,可能会导致后端服务器受到损害。Web 应用程序可以提供巨大的攻击面,使其成为攻击者和渗透测试人员的高价值目标。
许多类型的漏洞都会影响 Web 应用程序。我们经常会听到/看到对OWASP Top 10的提及。这是由开放 Web 应用程序安全项目 (OWASP) 维护的十大 Web 应用程序漏洞的标准化列表。此列表被认为是前 10 个最危险的漏洞,并不是所有可能的 Web 应用程序漏洞的详尽列表。Web 应用程序安全评估方法通常以 OWASP Top 10 为基础,作为评估人员应检查的顶级缺陷类别的起点。当前 OWASP Top 10 列表为:
数字
类别
描述
8.
软件和数据完整性故障与无法防止完整性违规的代码和基础设施有关。例如,应用程序依赖于来自不受信任的来源、存储库和内容交付网络 (CDN) 的插件、库或模块。
9.
此类别旨在帮助检测、升级和响应主动违规行为。如果没有日志记录和监控,就无法检测到违规行为。
10.
每当 Web 应用程序在未验证用户提供的 URL 的情况下获取远程资源时,就会出现 SSRF 缺陷。它允许攻击者强制应用程序将精心设计的请求发送到意外的目的地,即使受到防火墙、VPN 或其他类型的网络访问控制列表 (ACL) 的保护也是如此。
熟悉每个类别以及适合每个类别的各种漏洞至关重要。
Endpoint Protection 端点保护
Endpoint protection 是指任何本地化设备或服务,其唯一目的是保护网络上的一台主机。主机可以是个人电脑、企业工作站或网络非军事区( DMZ )中的服务器。
端点保护通常以软件包的形式出现,其中包括 Antivirus Protection 、 Antimalware Protection (这包括臃肿软件、间谍软件、广告软件、恐吓软件和勒索软件)、 Firewall 和 Anti-DDOS ,所有这些软件都在同一个软件包中。与后者相比,我们更熟悉这种形式,因为我们大多数人都在家里的 PC 或工作场所的工作站上运行端点保护软件。Avast、Nod32、Malwarebytes 和 BitDefender 只是目前的一些名称。
Perimeter Protection 周边保护
Perimeter protection 通常是网络边缘的物理或虚拟化设备。这些 edge devices 本身提供从 outside 到 private 的网络 inside 访问。
在这两个区域之间,有时我们还会发现第三个区域,即前面提到的非军事区( DMZ )。这是一个 lower-security policy level 区,比 inside networks' 区高,但 trust level 比 outside zone 区高,也就是广阔的互联网。这是面向公众的服务器所在的虚拟空间,这些服务器从互联网为公众客户推送和拉取数据,但也从内部进行管理,并更新补丁、信息和其他数据,以保持所提供信息的最新性,满足服务器客户的需求。
Security Policies 安全政策
本质上是一个 allow 和 deny 语句列表,规定了流量或文件在网络边界内的存在方式。多个列表可以作用于多个网络部分,从而实现配置的灵活性。这些列表还可以针对网络和主机的不同特性,具体取决于它们所在的位置:
Network Traffic Policies - 网络流量政策
Application Policies - 申请政策
User Access Control Policies - 用户访问控制政策
File Management Policies - 文件管理政策
DDoS Protection Policies - DDoS 保护政策
Others - 其他
有多种方法可将事件或对象与安全策略条目相匹配:
Security Policy 安全政策
Description 说明
Signature-based Detection
The operation of packets in the network and comparison with pre-built and pre-ordained attack patterns known as signatures. Any 100% match against these signatures will generate alarms. 对网络中的数据包进行操作,并与预先建立和预先确定的攻击模式(称为签名)进行比较。与这些签名的任何 100% 匹配都会产生警报。
Heuristic / Statistical Anomaly Detection
Behavioral comparison against an established baseline included modus-operandi signatures for known APTs (Advanced Persistent Threats). The baseline will identify the norm for the network and what protocols are commonly used. Any deviation from the maximum threshold will generate alarms. 与既定基线进行的行为比较包括已知 APT(高级持续威胁)的作案手法签名。基线将确定网络的标准以及常用的协议。任何偏离最大阈值的行为都会产生警报。
Stateful Protocol Analysis Detection
Recognizing the divergence of protocols stated by event comparison using pre-built profiles of generally accepted definitions of non-malicious activity. 通过使用预置的公认非恶意活动定义的事件比较,识别协议所述的差异。
Live-monitoring and Alerting (SOC-based)
A team of analysts in a dedicated, in-house, or leased SOC (Security Operations Center) use live-feed software to monitor network activity and intermediate alarming systems for any potential threats, either deciding themselves if the threat should be actioned upon or letting the automated mechanisms take action instead. 在专门的、内部的或租赁的 SOC(安全运营中心)中,一组分析人员使用实时馈送软件监控网络活动和中间警报系统,以发现任何潜在威胁,并自行决定是否应对威胁采取行动,或让自动机制采取行动。
最后更新于
这有帮助吗?