misdirection Walkthrough
www-data横向提权brexit,/etc/passwd可写root提权
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就行
.png)












