提权方法1

1.扫描发现靶机的ip为192.68.77.40 Alt text

2.再扫描端口 Alt text

3.访问80端口 Alt text

4.扫描一下web目录 Alt text

5.发现使用了Drupal Alt text

6.利用msf中关于Drupal的模块获得shell Alt text

7.查看/etc下文件发现passwd是可读写的 Alt text

8.cat passwd 发现一个indishell的用户的密码哈希值 Alt text 因此我们把passwd的内容复制下来放到一个本地文件中,利用openssl生成一个password的哈希密码

openssl -1 -salt abc password

将indishell的密码改为生成的密码,并将uid和gid都改为0(和root相同) Alt text Alt text 利用msf的会话上传本地的passwd Alt text 将passwd移动到/etc下,覆盖掉原来的passwd Alt text

9.在shell中切换用户到indishell,得到root权限 Alt text

提权方法2

1.查找系统中suid文件

find / -perm -u=s -type f 2>/dev/null

发现一个在/opt下的s文件,打开后发现其实是scp命令 Alt text Alt text 可看到根目录下的tmp文件为777权限 Alt text cd /tmp

echo “/bin/bash” > scp

chmod 777 scp

export PATH=/tmp:$PATH Alt text cd /opt

./s

得到root权限 Alt text

与此有关的提权可参考: Click me

谈一下自己对这种方法的理解: Linux系统中的环境变量PATH是当用户输入命令时,系统会到PATH中寻找路径,比如要执行ls命令,那么系统就会在PATH中找到含有ls的路径并执行

由于一些命令拥有suid,即以root身份来执行,例如scp,可以找一个可读写的目录(如/tmp),将’/bin/bash’(打开shell)写入到一个scp中,修改为777权限,然后再在PATH中添加当前这个可读写的目录(/tmp)。 之后当执行scp时,系统会在/tmp中找到scp命令并执行它,而此时这个scp命令实际上是打开一个shell,由于是以root身份执行,所以这个shell便是root的权限。