Post

misdirection Walkthrough

www-data横向提权brexit,/etc/passwd可写root提权

misdirection Walkthrough

Recon

机器开放ssh、mysql和两个web server

80/tcp → EVote → web2py

80端口在nmap扫描结果中能看到是python架设的应用,访问后在底部banner中发现是web2py

从网页主体内容发现这是一个EVote电子投票系统,Source Code指向https://github.com/mdipierro/evote

整体的功能点都需要登陆后访问

8080/tcp → wordpress

从feroxbuster对8080端口的目录扫描结果来看,存在一个wordpress,但是访问后页面显示异常,network中能发现是因为服务器从192.168.1.61:8080请求css,但机器ip并非这个,可能是出题人在初始化wordpress的时候有硬编码

为了能够顺畅的打这台机器,把VmNet8子网段改为192.168.1.0,分配ip起始为192.168.1.61

然后记得一定要先开启misdirection机器再打开攻击机

feroxbuster -n关闭递归扫描,发现了一些关键目录

/debug给了一个www-data权限的webssh

通过find . -maxdepth 3 -path './wordpress' -prune -o -ls排除wordpress目录递归3级列出


根据以上信息整理思路:

  • 8080/tcp使用apache运行wordpress,www-data权限通过/debug目录已交付

  • 80端口通过python运行一个web2py框架的EVote电子投票系统,权限位置

wp-config.php → mysql ← error

既然8080/tcp运行的用户权限已取得,可以通过wp-config.php查看数据库信息,连接后寻找80/tcp开放的应用账号

1
2
3
4
/** MySQL database username */
define( 'DB_USER', 'blog' );
/** MySQL database password */
define( 'DB_PASSWORD', 'abcdefghijklmnopqrstuv' );

但实际上不允许远程连接,通过webssh发现也没有权限

shell as brexit by sudo

查看/etc/passwd文件,发现存在一个有效普通用户brexit,其/home目录存在user.txt,说明是作者设计的一环

80/tcp的服务就是以brexit用户权限运行

在这个webssh中不太好交互,反弹到pwncat执行linpeas

发现www-data有免密通过brexit权限执行/bin/bash指令的功能,意味着可以直接切换到brexit用户

shell as root by /etc/passwd

在brexit用户跑一下linpeas,发现/etc/passwd可写

那么直接把brexit用户uid和gid改为0就行

This post is licensed under CC BY 4.0 by the author.