JIS-CTF_VulnUpload靶机攻略是什么
发布时间 - 2023-05-13 00:00:00 点击率:次vulnhub 是我喜爱的游乐场之一,上面的每个靶机都是很酷的一个游戏。完整找出所有 flag 只是基本任务,实现提权才是终极目标。我并不追求最快夺旗,而是尽可能运用完整攻击链入侵靶机,所以,这篇攻略中,或许某些内容对夺旗无直接帮助,但在应对真实目标时,你应该考虑。
靶机 "JIS-CTF: VulnUpload" 含有 5 个 flag、初级难度,平均耗时 1.5 小时可完成攻击。你可以从 https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ 获取 virtualbox 格式的镜像,导入后立即可玩:
JIS 虚拟机为 DHCP,我得想法找出它的 IP。nmap 的 -sn 选项用于探测主机存活性:
很快,找到 4 个存活 IP。其中,56.1 为我主系统 IP,56.2 为 DHCP 服务器,56.5 显示 localhost-response 为本机(kali),所以,JIS 的 IP 为 192.168.56.6。
一、系统服务发现
拿到 IP 第一要务当然是分析服务。nmap 的 -O、-sV 两个命令行参数可用于此:
可知,JIS 在 22 端口开启了 SSH(OpenSSH 7.2p2)、80 端口开启 HTTP(Apache httpd 2.4.18)等两个服务。另外,操作系统为 ubuntu。这三个信息将成为下个阶段的主要攻击面。
二、系统漏洞分析
针对 SSH 服务,我习惯从弱口令和系统漏洞两方面进行攻击。弱口令方面,我用常见用户名和常见密码进行暴破,虽然几率不大:
短时间跑不完,先放这儿,后续再看。
SSH 服务的系统漏洞查找方面,我推荐 searchsploit 工具。精确搜索 OpenSSH 7.2p2:
存在用户名可枚举漏洞,刚好,要能找到有效用户名,将有助于暴破 SSH 口令。立即用 EXP 试试:
试过几次,结果都不一样,感觉这个 EXP 不可靠。或许是搜索条件太苛刻,不带版本号,直接搜索 openssh 看看有无其他漏洞:
其中,有两个可考虑,依次为本地提权的漏洞、远程命令执行漏洞。哇,很诱人,不过很遗憾,都用不了。对前者而言,当前没用任何据点(如 webshell),还谈不上提权操作,当前只能先放放,后续可能用的上;对后者来说,利用条件非常严苛,攻击者必须拿到 forwarded agent-socket 的控制权,而且目标必须 SSH 登录攻击者所控制 forwarded agent-socket 的那台机器,才可能让目标加载指定 *.so,实现远程命令执行。罢了,SSH 系统漏洞暂时就不深入了。
apache 服务看下有无可利用的漏洞:
先前服务探测时找到的准确版本为 apache httpd 2.4.18,那么只有一个漏洞内存泄漏的漏洞,没多大价值。
这个阶段系统漏洞只能分析到这个程度,虽然知道发行套件为 ubuntu,但不知道具体版本、系统架构,很难准确的找到可用的操作系统漏洞,所以,没必要继续在系统漏洞层面耗时,后续如果能拿到 webshell,提权时再来深入分析,现在移步 web 应用层面。
三、web 内容发现
访问之前找到的 web 端口自动重定向到 http://192.168.56.6/login.php:
看了下 html 源码,没啥有价值的信息;枚举用户名也不能;或许可以暴破下弱口令,刚才的 SSH 暴破还没完呢,web 登录暴破还是先放一放,看看有无其他页面。
大概 2015 年之前,扫 web 端口 – 找 web 后台 – 弱口令登后台 – 上传一句话,是常见的高成功率的攻击手法,其中,能否找到后台地址,是成功的关键。换言之,我需要发现更多 web 内容。具体而言,我希望找到更多文件、页面、子目录,最好能找到源码打包的敏感文件、后台运维的管理页面、存放业务逻辑的子目录,以拓展攻击面。通常,我习惯结合枚举和爬虫两种方式来发现 web 内容。
枚举 web 内容的工具很多,其实,你手上的 burp 内置了强大的子目录枚举功能,但常被你忽略。访问 http://192.168.56.6/,让流量过 burp 后,立即展示出初始站点目录结构:
通过 engagement tools - discover content,启用子目录枚举功能:
枚举之前,借助 firefox 插件 wappalyzer 确认后端语言为 php:
简单设置,让 burp 只枚举 php 类型的页面,忽略 aspx、jsp 等等其他语言,以提高效率:
很快,枚举出不少新页面:
你看,比先前多了些页面和目录,如,logout.php、server-status/。逐一查看,没啥有价值的内容。
接下来,我用另一个工具 dirsearch 再次枚举子目录,与 burp 互补,获得更多 web 内容。高效和可配置是 dirsearch 的特色,同样,用 --extension 选项设定只枚举 php 类型的页面,忽略 aspx、jsp 等等其他语言:
从输出结果 out.txt 中查看 HTTP 应答成功(200)的页面有 5 个:
依次访问这几个页面且让流量过 burp,站点目录结构如下:
子目录枚举,大概就到这个程度,接下来,爬取站点。
爬站,还是借助 burp:
很快,爬取完毕,又新增不少页面:
朋友,玩了这么久,连个 flag 的影子都没看到?别急,这就来了。在 burp 的 site map 中搜索 flag 关键字,第一个匹配项是 http://192.168.56.6/admin_area/:
拿到第一个 flag{7412574125871236547895214};另外还拿到一组账号 admin/3v1l_H@ck3r,可能是 web 的登录账号、也可能是 SSH 的账号,一会试试。搜索 flag 得到的第二个匹配项是 http://192.168.56.6/flag/:
得到第二个 flag{8734509128730458630012095}。
四、web 应用漏洞分析
用 admin/3v1l_H@ck3r 尝试登录 http://192.168.56.6/login.php:
成功,有个文件上传功能,检查下是否存在任意文件上传漏洞。
随便上传一个 php 的 webshell 试试:
icesword.php 上传成功,存在任意文件上传漏洞,但没回显上传目录。还记得先前 web 内容发现时找到的 uploads/、uploaded_files/ 两目录么,尝试访问 http://192.168.56.6/uploads/icesword.php, 报错,资源不存在,访问 http://192.168.56.6/uploaded_files/icesword.php,没报错但页面无内容,没事,至少清楚上传目录是 uploaded_files/。
我用 msfvenom 生成 MSF 的 php 反弹木马 m
sf_private.php:
启动 MSF 并监听,随后访问 http://192.168.56.6/uploaded_files/msf_private.php,立即获得 meterpreter 会话:
简单翻下文件:
flag.txt、hint.txt 引起我的注意。查看之,flag.txt 无访问权限;hint.txt 中拿到第三个 flag{7645110034526579012345670},以及一个提示信息,要想查看 flag.txt 先得找出账号 technawi 的密码:
接下来,我需要查找用户 technawi 的密码。我计划从文件名和文件内容两方面入手查找与 technawi 相关的信息。
我用 meterpreter 内置的 search 命令来查找文件名中含有关键字 technawi 的文件:
显示未找到。奇怪,有 technawi 用户,那肯定有 /home/technawi/,怎么会一个都找不到。进 shell 再确认下:
这才对嘛。所以,你看,meterpreter 内置的 search 不可靠。逐一查看,没发现有价值的内容。
查找文件内容中含有关键字 technawi 的文件:
逐一查看,在 /etc/mysql/conf.d/credentials.txt 中找到第四个 flag{7845658974123568974185412},以及一组账号 technawi/3vilH@ksor:
五、登录系统
用账号 technawi/3vilH@ksor 成功登录系统:
再次查看 flag.txt,拿到第五个 flag{5473215946785213456975249}:
六、提权
最开始我就说过,flag 并不是我玩靶机的唯一目标,提权也很有意思。刚要查看内核版本准备对应 exp 时,朦胧记得在 technawi 的 home/ 目录中,看过 .sudo_as_admin_successful 文件:
哇,运气不错,这说明 technawi 可以用自己的密码切换为 root 用户:
就这样,完成所有 flag 搜集、成功提权!
# php
# mysql
# 架构
# firefox
# html
# 命令行参数
# map
# apache
# http
# https
# ubuntu
# ssh
# 系统架构
# 我用
# 上传
# 有价值
# 先前
# 第一个
# 有无
# 文件上传
# 你看
# 第二个
# 能找到
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
如何正确下载安装西数主机建站助手?
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
如何在万网ECS上快速搭建专属网站?
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
如何快速搭建虚拟主机网站?新手必看指南
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
php打包exe后无法访问网络共享_共享权限设置方法【教程】
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
Windows Hello人脸识别突然无法使用
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
Laravel PHP版本要求一览_Laravel各版本环境要求对照
如何确保西部建站助手FTP传输的安全性?
浅析上传头像示例及其注意事项
HTML 中如何正确使用模板变量为元素的 name 属性赋值
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel如何发送系统通知?(Notification渠道示例)
如何快速使用云服务器搭建个人网站?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何构建满足综合性能需求的优质建站方案?
PythonWeb开发入门教程_Flask快速构建Web应用
深圳网站制作的公司有哪些,dido官方网站?
JavaScript Ajax实现异步通信
如何快速生成高效建站系统源代码?
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
Laravel如何记录自定义日志?(Log频道配置)
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
Android利用动画实现背景逐渐变暗
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
北京网站制作公司哪家好一点,北京租房网站有哪些?
Laravel Fortify是什么,和Jetstream有什么关系
Laravel distinct去重查询_Laravel Eloquent去重方法
利用python获取某年中每个月的第一天和最后一天
北京企业网站设计制作公司,北京铁路集团官方网站?
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
网页设计与网站制作内容,怎样注册网站?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何在IIS7中新建站点?详细步骤解析
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
Laravel怎么判断请求类型_Laravel Request isMethod用法
JavaScript模板引擎Template.js使用详解
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】

