[Klee-CTF] VulnStack 靶场实战 一 (1)
2023-4-9
| 2023-6-12
0  |  Read Time 0 min
type
status
date
slug
summary
tags
category
icon
password

虚拟机配置

一开始不知道怎么配置网络,直到参考了别人的文档,发现得特意配置,其中Win7负责连接内网和外网,Win2003和Win2008负责连接内网作为域成员,具体网络配置参考参考资料一,也就是Windows 7、Windows Server 2008、Windows Server 2003的网络适配器1都配置为仅主机模式,而Windows 7的网络适配器2配置为NAT模式,允许连接外网,其中网络适配器1的网段修改为192.168.52.0/24
登录后提示密码已过期,修改为 Qwer1234!
Windows 7 的密码又过期了,改为 Qwer1234!@
Windows Server 2003是受Windows Server 2008域控的,所以修改完Windows Server 2008的密码以后,登录2003就会自动变更密码
启用phpstudy,可正常访问,环境搭建完毕。
notion image
由于我的攻击机有Hyper-V也有VMWare,所以在Hyper-V共享一下网络,也就是在这里设置一下外部网络然后选上VMware VMNet8,虽然有点诡异但是能用
notion image
差生文具多,在我的Manjaro上安装一下blackarch,一切准备就绪
 

信息收集

按照目前我所能了解到的收集信息的方法,先进行一波扫描,使用的工具分别为:Goby、fscan
goby扫描以后,发现有MySQL的3306端口打开了,同时发现有一个80端口提供的HTTP服务
notion image
使用超级弱口令检查工具进行扫描,发现很快啊,一个没检查出
使用dbeaver进行连接检查,发现无法连接到MySQL服务,看来是白名单ip了
notion image
使用 dirsearch 进行扫描,发现存在有phpinfo.php,还有phpmyAdmin暴露
notion image

爆破PHPMyAdmin/MySQL密码

发现了PHPMyAdmin以后,可以进行爆破,
想通过PHPMyAdmin爆破,但是PHPMyAdmin似乎有token之类的东西不允许多次使用,但是探针可以多次尝试,所以用探针尝试爆破
查看这个的长度确实和其他不一样,密码就是它了
notion image
发现账号密码为root/root,进入后台

尝试写入shell

notion image
发现secure_file_priv为NULL,不能写入
执行
notion image
我们刚刚还扫到一个phpinfo,那肯定就有php的目录,看看去
notion image
很明显这个就是目录
我们打开日志目录,并且改变日志的路径
notion image
notion image
已经安排成功了捏,访问一下试试
notion image
雀食

写Shell

打开AntSword,写Shell试试
访问一下 /test2.php (因为test.php写的时候忘记写分号了,写坏一个文件,上面改一下test2就行
notion image
antsword添加一下,测试成功连接
notion image
虚拟终端看一下,发现用户是Administrator
notion image

另一种方法

不过看了一下别人的做法,发现自己用dirsearch并没有扫出备份文件,上去看了一下人家叫beifen.rar,也怪自己字典不够充足,于是下了个御剑扫描试了一下
notion image
但是用御剑没扫出phpinfo.php,哪位有比较好用的字典可以推荐一下(逃
在config.php里面可以看到密码是root
notion image
不过看到这个cms名称,可以尝试一下访问 /yxcms ,发现雀食有点东西(虽然我完全没想到
notion image
同时有默认账号密码,输入 http://172.16.250.130/yxcms/index.php?r=admin/index/login 进入后台
notion image
这里也有SQL执行功能,也可以改到shell上
notion image
或者使用模板编辑功能插入shell
notion image
经过和备份文件的比对,可以确定文件夹应该在 \yxcms\protected\apps\default\view,访问
/yxcms/protected/apps/default/view/default/test.php
拿到shell文件地址

布置木马

这一块其实我也不是很懂,但是以学习为目的,就参考别人的教程跟着一起试试

使用MSF生成被控端并上线

安装好metasploit后,生成密码并通过antsword放上去
连接好了以后,就可以依葫芦画瓢地执行一下了
将刚才生成的木马放到目录种,然后再执行一下
notion image
上线了

提权至system

执行sessions 1恢复到session,然后使用getsystem看看能不能提权到system

转移进程

由于所使用的kiwi默认加载32位,需要先查看系统进程列表,再迁移到64位进程中,这里我们转移到PID位396的进程csrss.exe中

获取密码

输入creds_all,获取到密码是Qwer1234

搭建代理

可以使用自动路由,也可以指定路由添加,不过这里注意要使用route add来添加路由的话,确保自己处于msfconsole而不是meterpreter
然后我们来创建一个socks代理服务器

允许远程桌面并关闭防火墙

然后尝试进行连接,注意域写 GOD\Administrator ,密码写 Qwer1234
然后就成功登录了
notion image

扫描内网

使用 arp_scanner 来使用ARP扫描内网,先search再use,然后options查属性
notion image
notion image
udp sweep也可以用来扫描
notion image
设置自动路由
notion image
搜索ms17_010,设置RHOSTS为192.168.52.0/24,将THREADS设大一点
notion image
notion image
搜索到两台其他机器

使用kiwi 提取信息

在session中,可以使用 load kiwi 来加载kiwi,然后使用 creds_all 拿到凭据
notion image
目前我们可以拿到这些信息

利用永恒之蓝漏洞新增用户

不知道为啥用 ms17_010 的漏洞没办法新增sessions,但是可以执行命令,没办法,直接进行命令执行吧
先给存在漏洞的机器新增一个用户,明确一下命令先
set RHOSTS 192.168.52.138,set COMMAND whoami,看看权限
nt authority\system ,很好,可以继续玩

启用本机3389

直接 search enable_rdp,然后show options 看一下选项设置一下,直接run就行

启动内网其他机器的3389端口

3389端口都没有开起来,需要用命令给它开起来
奇怪的是,我使用了下面的几种方法都没有开起来,使用netstat -an还是没有开启3389端口
解决了。。。解决方法很弱智,加个单引号就好了。。。
因为使用了msf的代理以后不能用反向代理,所以我们只能用 ms17_010_command。
但下面说了,可以使用windows/meterpreter/bind_tcp 用作正向,可以试试,但是我怎么横都横不过去,算了,还是直接暴力上传木马手动打开吧=_=
(由于一段时间没搞了,密码改了 Qwer233!)
好有年代感的跨年代会和
 
notion image

使用Cobalt Strike来横向

有时候使用Cobalt Strike这种可视化工具会比较方便,所以可以使用这种工具来横向。
但是这样用不了VPN模式,可以用socks模式

使用 Metasploit 联动(CS→Metasploit)

输入msfconsole启动,然后进行如下设置
在 Cobalt Strike 中进行设置,注意要设置Foreign HTTP
notion image
notion image
在beacon中输入 spawn msf,然后在msfconsole这里收到消息
notion image
notion image
CS可以在beacon前面加shell来执行shell,写入hashdump可以读内存密码,logonpasswords可以读注册表密码

frp保活

下好frp丢上去保活,一看已经上线了
notion image

不出网上线CS

由于其他两台机器是不出网的,而我们只能拿到一台机器mimikatz的哈希密码,我们可以尝试用这凭据来进行喷洒对其他主机进行链接上线。

扫描内网其他机器

由于我们之前已经拿到了域GOD.ORG的哈希密码,可以先进行一波portscan,看看其他主机是否在域控范围内。
notion image
notion image
选择特定的内网,然后进行内网扫描,就能在Target Table看到对应的主机,接下来就可以用获取到的密码进行喷洒上线了

尝试上线不出网的内网主机

首先新建一个监听器
notion image
然后切换视图
notion image
 
notion image
notion image
重复操作,三台主机都可上线~(注意32位的Windows Server 2003不能用psexec64,要记得换回去)
notion image
最终的上线图
notion image

参考资料

msf添加路由及socks5代理_山山而川'的博客-CSDN博客_msf添加路由
如下拓扑图,win7可以访问互联网,而win2016不能访问互联网。这里我们将win7的shell弹到公网vps的msf上。因为win2016不出网,我们如何在msf上使用其他工具访问win2016了 win7的shell如下 查看当前的网段信息 sessions -i 1 shell ipconfig 我们可以看到有两个网段,下面对10这个网段进行探测 在使用msf探测各网段主机信息时,我们需要先添加通往各网段的路由,这样msf才知道怎么走。我们可以添加自动路由,或者指定路由添加,我们先进入meterpreter的shell run post/multi/manage/autoroute #查看路由信息 run autoroute -p #添加指定路由,1是接收的session编号 msf6 > route add 192.168.10.0 255.255.255.0 1 然后我们输入 background 暂时退出shell,此时输入如下也可以查看路由表信息 这样我们在msf中,用msf自带的模块对内网的主机进行扫描探测,msf会自动将流量送往对应的网段 这里其实有一个大问题,通过这种方式做代理转发,只能是msf使用,其它应用无法使用,如果想使用其他应用探测内网如nmap等工具?当然也有办法,就是再加一个socks代理即可。 1. 添加socks代理 这里其实就是在我们的vps开启了一个socks代理,监听vps本地的1080端口,然后再通过这个端口将流量转给msf,msf又添加了路由,所以能将流量直接带入到内网中。假设我们需要在vps中使用其他工具探测内网 use auxiliary/server/socks_proxy set SRVHOST 127.0.0.1 #或者默认0.0.0.0 run 2.
msf添加路由及socks5代理_山山而川'的博客-CSDN博客_msf添加路由
工具的使用|MSF中mimikatz模块的使用
mimikatz模块的加载 mimikatz模块的使用 mimikatz_command模块的用法 MSF中的mimikatz模块,可以列举出系统中的各种凭据,以及执行一些mimikatz相关的命令。目前,该模块已经更新为功能更全的kiwi模块,传送门: 工具的使用 | MSF中kiwi模块的使用 使用 mimikatz 模块需要System权限,所以我们在使用该模块之前需要将当前MSF中的shell提升为system。提到system有两个方法,一是当前的权限是administrator用户,二是利用其它手段先提权到administrator用户。然后administrator用户可以直接getsystem到system权限。 提权到system权限 进程迁移 kiwi模块同时支持32位和64位的系统,但是该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。所以如果目标系统是64位的,则必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,才能加载kiwi并且查看系统明文。如果目标系统是32位的,则没有这个限制。 mimikatz模块的使用 加载kiwi模块 load mimikatz 查看kiwi模块的使用 help mimikatz 可以看到mimikatz下有七个命令: kerberos:kerberos相关的模块 livessp:尝试检索livessp凭据 mimikatz_command:运行一个定制的命令 msv:msv凭证相关的模块,列出目标主机的用户密码哈希 ssp:ssp凭证相关的模块 tspkg:tspkg凭证相关的模块 wdigest:wdigest凭证相关的模块 mimikatz_command 模块可以让我们使用mimikatz的全部功能。 mimikatz_command -f mimikatz的命令 例如,使用以下命令查看系统中的明文密码 mimikatz_command -f sekurlsa::searchPasswords 未完待续
工具的使用|MSF中mimikatz模块的使用

靶场下载

其他工具

 
学习思考
  • 学习
  • 运维
  • 网络攻防
  • 理解栈溢出并使用 gdb 来调试 C 语言程序Cobalt Strike 的简易服务端客户端配置教程
    • GitTalk
    Catalog