环境准备
下载链接:https://download.vulnhub.com/misdirection/Misdirection.zip
解压后双击ovf文件导入虚拟机
网络:DHCP、NAT、192.168.100.0/24网段
信息收集
主机发现
192.168.100.133是新增的ip
端口扫描
发现开放了以上端口,继续扫描端口详细信息
目录发现
扫描的同时去访问一下80和8080端口看看
80是正常的网站
8080是apache默认页
进行目录扫描
找到一个debug目录,点进去看看
是个仿真终端,查看了一下基本信息,只有低权限身份
反弹shell
发现是有wget的,尝试下载php反弹shell
msf生成并开启web服务
随后攻击机开始监听
然后去靶机的仿真终端上操作,下载反弹shell并浏览器访问以执行
浏览器访问shell
去msf查看上线
查看一下基本信息
提权
看一眼计划任务是否可利用
并没有,继续看看sudo -l权限
www-data用户允许在localhost上以brexit用户身份执行/bin/bash命令,因此我们可以利用这个漏洞来提权为brexit用户。
- 首先使用sudo -u brexit /bin/bash命令以brexit用户身份进入终端。
- 然后使用sudo -s或sudo su命令以root身份进入终端。
不过到了这一步再次卡住,我们没有密码
去查看是否有更多信息,ls -la看一下是否有bash历史记录文件
看到有.bash_history和.viminfo
都看一看
bash历史无数据,继续看viminfo
注意到viminfo中有对/etc/passwd的操作,查看权限
可以直接编辑 /etc/passwd 文件并添加一个管理员账号以提权。以下是具体步骤:
- 在文件的最后一行添加一个新的管理员账号,格式如下:
username:x:UID:GID:User description:/home/username:/bin/bash
其中,username 是用户名;x 是密码占位符,表示密码已加密并存储在 /etc/shadow 文件中;UID 是新用户的 UID,可以选择一个未被占用的数字(建议从 1000 开始);GID 是新用户所属的组 ID,通常与 UID 相同;User description 是用户描述信息;/home/username 是用户的家目录;/bin/bash 是用户的默认 shell。例如,添加一个名为 newadmin 的管理员账号,UID 为 0,GID 为 0,家目录为 /root,默认 shell 为 /bin/bash,可以这样写:
newadmin:x:0:0:New Admin:/root:/bin/bash
x代表密码,我们可以真实生成一个密码。
openssl passwd -1 123456
于是我们要写入的就变成了
newadmin:$1$oQ39kyHF$lYSvC8pfSHc2kePGkJLyc.:0:0:New Admin:/root:/bin/bash
用echo在文件末尾追加一行
echo 'admin:$1$oQ39kyHF$lYSvC8pfSHc2kePGkJLyc.:0:0:Admin:/root:/bin/bash' >> /etc/passwd
查看/etc/passwd,成功写入
- 使用新的管理员账号登录系统,即可获得管理员权限。
成功提权到root!至此,渗透结束