Healthcare:用big字典扫描隐藏目录


1.端口扫描

nmap扫出了它的robots.txt,但是它里面的这些目录都不可访问。发现了一个疑似用户名oden,不知有没有用,先记录:

2.Web服务枚举

80端口主页,有一个输入邮箱的地方,测试做了特殊字符过滤,没测出什么。

目录扫描

用一般的字典没扫出其它东西,用 SecList的big字典扫描才扫出了敏感目录。以后有扫不出来的情况记得试一试这个。

gobuster dir -u http://10.0.2.103 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt

扫出目录:http://10.0.2.103/openemr/

利用OpenEMR SQL注入漏洞

该目录为OpenEMR v4.1.0的登录页,搜索该应用的exploit

searchsploit openemr 4.1  

从搜索结果来看,该版本存在sql注入漏洞,按照exploit中的注入点试一下,确实存在漏洞。

而且根据错误提示来看,可以得到用户名和密码。

把/usr/share/exploitdb/exploits/php/webapps/49742.py文件拷贝到当前工作目录,编辑py文件修改ip地址。

执行exploit,得到账密信息

将结果复制进hash.txt,然后用Johnny工具破解密码:

破解出密码为:

  • admin:ackbar
  • medical:medical

3.反弹shell

用admin账户登录OpenEMR系统。

找到一处可以上传文件的地方

上传shell.php,这里没有做过滤,文件上传成功。接下来在kali监听端口,然后访问url触发。

反弹连接成功!

4.提权

目前是apache用户。

提权到medical用户

进入/home文件夹,发现了medical用户,还记得密码破解时破解出了medical用户的密码为medical,所以用这个密码切换到medical用户,成功!

用以下命令转换到/bin/bash(这个靶机里如果用python3会提示不存在,用python可以)。

python -c "import pty;pty.spawn('/bin/bash')"

提权到almirant用户

经过一番查找,在/var/backups目录中找到了shadow文件,查看shadow文件,发现了/home文件夹中存在的用户almirant密码。

靶机里如果出现除了root的其它用户,一般都是需要提权到该用户的,所以现在得到了shadow文件,尝试用john破解密码。

破解密码为skywalker,切换到almirant用户。

在almirant用户的主文件夹中获取到user.txt

提权到root用户

用以下命令查找suid权限文件

find / -type f -perm -u=s 2>/dev/null

可疑文件healthcheck

这是一个靶机作者自己写的程序,就不像其他已知程序一样可以查阅suid获取root权限的命令,所以要先看一下这个程序是干嘛的。

运行程序发现它显示的是做系统健康检测,打印出网卡信息和磁盘信息等。用strings命令查看程序中包含的字符串:

这里可以看到程序执行了ifconfig打印网卡信息,但是它没有使用绝对路径,那么就可以创建一个假的”ifconfig“程序并更改环境变量,进行目录劫持。

在almirant用户目录下,依次执行以下命令:

echo "/bin/bash" > ifconfig
chmod +x ifconfig
export PATH=/home/almirant:$PATH
/usr/bin/healthcheck 

程序执行后,提权到root成功!

5.总结

该靶机主要考察以下知识点:

  • 用“大字典”深度扫描目录;
  • 已知漏洞exploit的利用;
  • 密码破解工具;
  • suid权限文件,劫持环境变量提权。

文章作者: Summer One
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Summer One !
  目录