1.靶机DC-1和kali开启nat模式
2.kali扫描同一子网段的存活主机
3.确定了靶机的ip为192.168.137.130,在来一遍详扫
4.发现web资产
5.使用wapp查看资产
6.查看有没有Drupal 7的漏洞
7.发现有该漏洞,那我们就使用msf利用该漏洞,search drupal 7查询漏洞,然后一个个尝试
编号为0的不可用
那就编号为1的
发现创建了会话
8.执行后渗透攻击
建立shell,查看到有python
所以我们用 python -c 'import pty;pty.spawn("/bin/bash")'生成一个交互式shell
9.寻找一个最高权限的文件,准备提权 find / -perm -u=s
因为这里有一个/usr/bin/find文件,我们尝试一下find提权
find . -exec /bin/sh \; -quit
这里讲一下find提权的原理
SUID 权限:SUID(Set User ID)是 Linux 文件权限中的一个特殊位。如果一个文件具有 SUID 位,并且该文件由 root 拥有,那么当其他用户执行该文件时,他们会临时获得文件拥有者的权限(即 root 权限)。
find 命令的 SUID 位:在一些系统中,如果 find 命令文件本身设置了 SUID 位,且由 root 用户拥有,那么在非特权用户(普通用户)执行带有 -exec 选项的 find 命令时,-exec 所调用的命令将以 root 的身份执行。
提权过程:当执行 find . -exec /bin/sh \; -quit 时,find 命令以 root 权限执行了 /bin/sh,这将启动一个具有 root 权限的 shell,从而实现了提权。
find .
:在当前目录(.
)下执行查找操作,find
命令在查找文件时会遍历指定的目录。-exec /bin/sh \;
:对于find
命令找到的第一个文件,执行指定的操作。在这个例子中,它执行的是/bin/sh
,即启动一个新的 shell 实例。-exec
后的命令必须用分号(\;
)结束,以标记find
命令的结束。-quit
:在找到第一个匹配的文件后立即退出。这样可以节省系统资源,防止命令继续递归查找。
这个命令的提权成功与否,取决于 find
命令是否具有 SUID 位。如果 find
没有 SUID 位,那么该命令仅会以普通用户的权限执行,无法实现提权。
10.查找flag
发现第一个flag,查看发现它说每个好的CMS都需要一个配置文件
那因为该靶机的CMS是drupal 7,所以我们上网搜索一下drupal的配置文件
11.所以cat sites/default/settings.php,然后找到了flag2,还买一送一,给了我们一些MySQL的关键信息
12.连接数据库 mysql -u dbuser -p 然后输入密码就行了
查数据库 show databases;
使用drupaldb查表 1.use drupaldb 2.show tables;
找到了用户表
直接查询表中信息,得到两个用户,但是密码加密了
12.我们尝试直接改密码
发现成功了,然后去登录
显示我们密码不正确,我们再查表,发现密码确实改了,但是又被加密了
我们退出去,查找一下password的相关文件,看能不能找到线索
可以看到有一个hash.sh的文件,我们尝试用该脚本加密一下我们的密码
再登入MySQL,然后改密码,这一次可以登入了
13.找到flag3
还给了我们一个线索——需要在passwd寻找,并且要提权,但是我们已经提权成功了,按之前的操作再来一遍就行了,查看/passwd,找到flag4线索,说它在/home/flag4/ 我们切换到这就行了
查看flag4
让我们进入root目录
找到最后一个falg
标签:bin,命令,SUID,DC,笔记,提权,vulnhub,root,find From: https://blog.csdn.net/small_rookie_0/article/details/143714897