域内用户枚举和密码喷洒

一. 域内用户枚举原理和流量

1. 原理

在AS-REQ阶段客户端向AS发送用户名,cname字典存放用户名,AS对用户名进行验证,用户存在和不存在返回的数据包不一样。

不同之处主要是在返回数据包中的状态码不同,根据不同的状态码来区分账号在目标主机上的情况!

状态码主要分为四种:

KRB5DC_ERR_PREAUTH_REQUIRED 需要额外的预认证(用户存在)但是没有提供密码
KRB5DC_ERR_CLIENT_REVOKED 客户端凭证已被吊销(禁用)
KRB5DC_ERR_C_PRINCIPAL_UNKNOWN 在Kerberos数据库中找不到客户端(不存在)
KRB5KDC_ERR_PREAUTH_FAILED(用户存在密码错误)

官方文档中还有对应的状态码
微软地址: https://learn.microsoft.com/zh-cn/windows/security/threat-protection/auditing/event-4771

在这里插入图片描述

2. 流量分析

根据上面的四种状态码进行测试和流量分析:

用户存在,但是没有提供密码(test)

使用kerbrute工具输入下面命令并抓包

kerbrute.exe userenum --dc 192.168.41.10 -d hack.com 1.txt

在这里插入图片描述
先看AS-REQ包,里面只传输了我们要请求的用户名,而没有写密码
在这里插入图片描述
再看AS-REP包里的状态码

在这里插入图片描述

客户端凭证已被吊销(Guest(禁用))

我们使用kekeo工具输入下面命令申请用户的TGT票据

Tgt::ask /user:域用户 /domain:域名 /password:密码,

在这里插入图片描述
AS-REQ
在这里插入图片描述
AS-REP
在这里插入图片描述
可以看到请求的用户名是Guest,返回时的
数据是disabled禁用

test2在Kerberos数据库中找不到客户端(不存在)
用上面方法抓包分析
在这里插入图片描述
AS-REQ
在这里插入图片描述
AS-REP
在这里插入图片描述
可以看到请求的用户名是qwe,返回是的
数据是unknown

用户存在密码错误(test)
用上面方法抓包分析
在这里插入图片描述
AS-REQ

AS-REP
在这里插入图片描述
可以看到请求的用户名是ls,但是提供了错误的密码

3. 总结

域内用户枚举的原理是利用这两个都可以证明用户的存在:

    1. 正确的用户名,没有提供密码
    1. 正确的用户名,密码错误

这俩种都是根据AS-REP返回的error-code值来判断枚举的用户是否存在

比如利用kerbrute测试,在用户字典中添加几个用户
在这里插入图片描述

二. 域内密码喷洒原理和流量

利用kerbrute测试并抓包分析

kerbrute.exe passwordspray --dc 192.168.41.10 -d hack.com 1.txt qwe123!@#

test用户存在,密码错误
在这里插入图片描述
这里与上面不同,有四个数据包,原理是它先验证用户名是否存在,然后再进行密码验证

AS-REQ
在这里插入图片描述

AS-REP
在这里插入图片描述
在这里插入图片描述
test用户存在,密码正确
在这里插入图片描述
AS-REQ
在这里插入图片描述

AS-REP
在这里插入图片描述

三. 枚举和喷洒工具的使用

原理搞明白后接下来介绍来个工具

1. kerbrute工具

kerbrute使用Go语言开发,github提供了编译好的文件

地址: https://github.com/ropnop/kerbrute/releases

使用方法:
在这里插入图片描述
域内用户枚举

kerbrute.exe userenum--dc 域控IP -d 域名 用户字典

在这里插入图片描述

域内密码喷洒

kerbrute.exe passwordspray--dc 域控IP -d 域名 用户字典 密码(单密码)(有锁定策略使用)
kerbrute.exe bruteuser --dc 域控IP -d 域名 密码字典 用户名(没有锁定策略使用)

在这里插入图片描述
在这里插入图片描述

2. pykerbute工具

该工具是使用python2编写,支持tcp和udp俩种协议来用户枚举

用户枚举
EnumADUser.py 192.168.41.10 hack.com 1.txt tcp密码喷洒
hash值:
ADPwdSpray.py 192.168.41.10 hack.COM 1.txt ntlmhash e00045bd566a1b74386f5c1e3612921b udp
明文密码:
ADPwdSpray.py 192.168.41.10 hack.COM 1.txt clearpassword Admin@123 udp

四. 工作组和域内 – 喷洒和枚举

1. 不同环境下使用密码喷洒的场景

工作组环境
(1) 可以使用本地账号进行hash碰撞,找到可以登录的机器进行PTH认证,然后横向过去

(2) 如果通过信息收集,发现了域控的IP还有域名,可以直接使用工作组机器对域内用户进行密码喷洒,如果知道了域用户的密码可以生成票据,进行PTT,然后横向攻击上线

域环境
(1) 在域环境中一般不需要进行域内用户枚举,因为可以使用 net user /domain 可以直接查看。
(2) 在域环境中我们可以使用密码喷洒找到域用户的密码然后进行横向。

2. 工作组喷洒和域内主机喷洒的区别
工作组:工作组--工作组:可以使用NTLM协议:IPC,明文密码,PTH工作组--域内主机kerberos协议:用户枚举,密码喷洒NTLM协议:IPC,PTH
域内机器:域内机器-域内机kerberos协议:密码喷洒,IPC,PTH,PTT,PTK,明文密码域内机器-工作组机器NTLM协议:IPC,PTH

五. 通过喷洒控制域内主机

由上可知要喷洒用户由如下特点:

工作组:administrator用户 普通管理员(有UAC)但是只能上线低版本机器
域用户:administrator或者普通域管理员用户都可以
1. 工作组喷洒域内主机
前提条件:域控IP域名域内用户(需要枚举)
前俩个条件可以通过信息收集得到,但查看域内用户不行,除非控制的是域内用户,可以使用net user /domain 查看,所以需要枚举
  • 需要注意的是:上线的时候一定要把DNS修改不然PTT会失败
    在这里插入图片描述
    不然无法与域控通信

第一步成功上线内网一台工作组机器,利用CS插件上传FSCAN扫描C段
在这里插入图片描述
看到有DC的IP
第二步开始用户枚举,先上传工具kerbrute
在这里插入图片描述
输入命令开始用户枚举

kerbrute.exe userenum --dc 192.168.41.10 -d hack.com 1.txt

在这里插入图片描述
枚举到DC的用户,开始对administrator用户进行密码喷洒

kerbrute.exe bruteuser --dc 192.168.41.10 -d hack.com 2.txt administrator

在这里插入图片描述
得到DC的超管用户和明文密码使用之前的任意横向技术即可上线!

2. 域内主机进行喷洒,上线域控
前提:
域控IP
域名
域内用户(不需要枚举,使用net user /domain)

查看域内成员
在这里插入图片描述
上传工具,进行密码喷洒
在这里插入图片描述
接下来横向推荐使用PTT,因为得到票据,将超管票据打入内存后,可以上线任意域内成员机

3. 工作组hash碰撞或者密码喷洒

只能使用IPC,明文密码或者是pth认证,认证通过之后,可以使用copy命令将木马copy到目标机器,还可以使用服务或者是计划任务上线CS!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/20578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数学建模 —— 人工神经网络(6)

目录 一、人工神经网络 1.1 人工神经网络结构 1.2 神经元/感知器 1.3 激活函数 1.3.1 sign函数 1.3.2 sigmoid函数(Logistic函数) 1.3.3 tanh双曲正切函数 1.3.4 ReLU函数 1.4 分类 二、BP人工神经网络 2.1 概述 2.2 处理过程 2.3 例题 2.…

Android Studio插件开发 - Dora SDK的IDE插件

IDE插件开发简介 Android Studio是一种常用的集成开发环境(IDE),用于开发Android应用程序。它提供了许多功能和工具,可以帮助开发人员更轻松地构建和调试Android应用程序。 如果你想开发Android Studio插件,以下是一…

移动系统编程-安装和运行Ionic应用程序 (Installation and Running Ionic Apps)

安装 (Installation) 假设您已经安装了Node.js和Angular,您可以使用以下命令安装Ionic: npm install -g ionic/cli您也可以不使用CLI安装Ionic,但如果您使用的是最新版本的Cordova,这样做可能会导致版本不匹配,不推荐…

【技术实操】银河高级服务器操作系统实例分享,数据库日志文件属主不对问题分析

1. 问题现象描述 2023 年 06 月 30 日在迁移数据库过程中,遇到数据库 crash 的缺陷,原因如下:在数据库启动时候生成的一组临时文件中,有 owner 为 root 的文件, 文件权限默认为 640, 当数据库需要使用的时…

高速服务区智慧公厕管理系统引导屏UI界面展示

在现代社会,高速服务区作为人们出行途中的重要休憩场所,其各项设施的智能化水平也在不断提升。其中,智慧公厕管理系统的出现,为人们带来了更加便捷、舒适的如厕体验,而引导屏 UI 界面更是这一系统的重要展示窗口。 智慧…

Python | Leetcode Python题解之第126题单词接龙II

题目: 题解: class Solution:def findLadders(self, beginWord: str, endWord: str, wordList: List[str]) -> List[List[str]]:ans []if endWord not in wordList:return anssize len(beginWord)cur_word_set {beginWord}ws set(wordList)# 用于…

WPF Binding对象、数据校验、数据转换

在WinForm中,我们要想对控件赋值,需要在后台代码中拿到控件对象进行操作,这种赋值形式,从根本上是无法实现界面与逻辑分离的。 在WPF中,微软引入了Binding对象,通过Binding,我们可以直接将控件与…

CSS双飞翼布局

双飞翼布局是一种经典的CSS布局模式&#xff0c;主要用于实现左右两列固定宽度&#xff0c;中间列自适应的布局。 比如&#xff1a;写一个左中右布局占满全屏&#xff0c;其中左、右两块固定宽 200px&#xff0c;中间自适应&#xff0c;要求先加载中间块。 <!DOCTYPE html…

启动u盘恢复成普通u盘

DiskUtility&#xff08;磁盘工具&#xff09;恢复可启动U盘为普通存储设备。点击顶部菜单栏的"抹掉"按钮。 u盘启动盘怎么恢复成u盘

如何使用Dora SDK完成Fragment流式切换和非流式切换

我想大家对Fragment都不陌生&#xff0c;它作为界面碎片被使用在Activity中&#xff0c;如果只是更换Activity中的一小部分界面&#xff0c;是没有必要再重新打开一个新的Activity的。有时&#xff0c;即使要更换完整的UI布局&#xff0c;也可以使用Fragment来切换界面。 何…

Vue3实战笔记(59)—从零开始掌握Vue3插槽机制,进阶与提高

文章目录 前言一、具名插槽二、高级列表组件示例总结 前言 接上文&#xff0c;接下来看一点稍微复杂的&#xff1a;具名插槽 一、具名插槽 子组件 MyComponent.vue&#xff1a; <template><div><slot name"header"></slot><slot><…

点到线段的最短矩离 及垂足的计算

过P做MN的垂线&#xff0c;垂足为Q&#xff0c;若Q在线段MN以内(包括与点M点N重合)&#xff0c;则最短距离为垂线段长度&#xff0c;若垂足在MN以外&#xff0c;则最短距离为PM&#xff0c;PN中的较小者。&#xff08;若P与MN共线&#xff0c;垂线长度为零&#xff0c;同样适用…

[机器学习] 低代码机器学习工具PyCaret库使用指北

PyCaret是一个开源、低代码Python机器学习库&#xff0c;能够自动化机器学习工作流程。它是一个端到端的机器学习和模型管理工具&#xff0c;极大地加快了实验周期&#xff0c;提高了工作效率。PyCaret本质上是围绕几个机器学习库和框架&#xff08;如scikit-learn、XGBoost、L…

每天半小时,让大脑变得更聪明

晚上好。 今天的文章&#xff0c;我想跟你分享一套简单又有效的「大脑保健操」。每天只需要很短的时间&#xff0c;就能有效地锻炼和强化你的脑力。 这些都是我践行了许多年的习惯&#xff0c;也有切实的实验和理论基础作为依托。 你不需要每天都完全按照这套模式来执行&#x…

Kafka篇:Kafka搭建、使用、及Flink整合Kafka文档

一、Kafka搭建 1、上传并解压改名 tar -xvf kafka_2.11-1.0.0.tgz mv kafka_2.11-1.0.0 kafka-1.0.0 2、配置环境变量 vim /etc/profile export KAFKA_HOME/usr/local/soft/kafka-1.0.0 export PATH$PATH:$KAFKA_HOME/bin source /etc/profile &#xff08;使环境变量生效…

机器学习学习

机器学习类型(按学习方式分):监督学习、半监督学习、无监督学习、强化学习; 通过已知标签训练集训练模型,使用模型及逆行预测、测试; 向量表示法,其中每一维对应一个特征(feature)或者称为属性,记为[x1,x2,...,xn] 特征值、特征、标签,共同完成训练集的数据填充,最…

FreeRTOS基础(六):中断管理

在嵌入式系统开发中&#xff0c;中断管理是一个至关重要的概念。它允许我们的系统能够及时响应外部事件&#xff0c;而不需要通过轮询的方式来浪费宝贵的处理器资源。FreeRTOS作为一款广泛应用的实时操作系统&#xff0c;它提供了灵活且高效的中断管理机制&#xff0c;可以帮助…

搭建基于Django的博客系统增加广告轮播图(三)

上一篇&#xff1a;ChatGPT搭建博客Django的web网页添加用户系统&#xff08;二&#xff09; 下一篇&#xff1a;搭建基于Django的博客系统数据库迁移从Sqlite3到MySQL&#xff08;四&#xff09; 功能概述 增加轮播图显示广告信息。 需求详细描述 1. 增加轮播图显示广告信…

STM32(九):USART串口通信 (标准库函数)

前言 上一篇文章已经介绍了如何用STM32单片机中独立看门狗来实现检测按键点灯的程序。这篇文章我们来介绍一下如何用STM32单片机中USART通信协议来串口通信&#xff0c;并向XCOM发送信息。 一、实验原理 1.通信的介绍 首先&#xff0c;我们先介绍一下通信&#xff0c;何为通…

嵌入式linux系统中图片处理详解

大家好,今天给大家分享一下,嵌入式中如何进行图像处理,常见的处理方式有哪几种?这次将详细分析一下 第一:BMP图形处理方式 图形的基本特点,所有的图像文件,都是一种二进制格式文件,每一个图像文件,都可以通过解析文件中的每一组二进制数的含义来获得文件中的各种信息…