DC-1靶机
下载地址:https://download.vulnhub.com/dc/DC-1.zip
DC-1 是一个专门建造的易受攻击的实验室,目的是获得渗透测试领域的经验。它旨在为初学者带来挑战,但它的难易程度取决于您的技能和知识以及您的学习能力。要成功完成这一挑战,您需要具备 Linux 技能、熟悉 Linux 命令行并具有使用基本渗透测试工具的经验,例如可以在 Kali Linux 上找到的工具。
获得 root 权限的方法有很多种,DC-1提供了一些包含初学者线索的标志。总共有五个标志,但最终目标是在 root 用户的主目录中查找并读取该标志。您甚至不需要 root 用户身份即可执行此操作,但是您需要 root 权限。根据您的技能水平,您可能能够跳过查找大多数这些标志的步骤并直接获取 root 权限。初学者可能会遇到以前从未遇到过的挑战,但只需进行 Google 搜索即可获得完成此挑战所需的信息。
0x01 信息搜集
拿到靶机之后正常导入VMware,之后开机修改网络连接方式:NAT方式。重启靶机确保网络连接方式已经修改。
使用nmap扫描靶机的IP地址:
确定靶机的IP地址之后,继续扫描开放的端口和服务。
看到靶机开放了80端口和22端口,尝试22端口的弱口令登录,发现无果,打开靶机的web界面,开局一个登录框,尝试弱口令去登录admin/admin123,密码不对,尝试其他功能点,均没有任何有用效果。
打开插件,发现是Drupal 7 之后去Google搜索历史漏洞
0x02 漏洞利用
看到这样一篇文章,而且对应的版本是6/7/8,正好我们的靶机也是其中一个版本,之后到msf当中去search一下有没有可用的exp。之后可以详细去了解一下漏洞出现的成因。
根据漏洞的CVE编号找到最近的EXP,使用EXP对靶机进行攻击。
0x03 渗透测试
我们可以使用python去模拟一个伪真实的命令行。
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
之后就是和正常的命令行一样了,看起来就会舒服很多。
cat一下flag1.txt可以看到里面的内容,大概的意思就是:一个好的CMS需要 一个配置文件。这说明我们要去找一下这个CMS的配置文件的位置。(这里我们可以通过Google去搜一下,或者直接用Linux命令去查询。
我建议是Google搜素一下,简单快捷。
通过Google搜索到配置文件在sites/default/目录下
看一下flag2的提示:
根据flag2的提示和拿到的数据库密码,我们直接去连接数据库,找到了存储后台账号密码的表:
密码是被加密处理过的,继续去文件里面找加密脚本,然后根据加密脚本去重新修改密码。这里我们就不一个个就看了
1 | find -name "*pass*" |
直接用这个命令就可以查到包含pass的文件。
用这个脚本把你要改的密码进行加密,然后更新数据库中的内容就可以了。之后用你更新的密码去登录后台。
1 | update users set pass='$S$DyyA5HnUonyq8xJJZeWKGIsIxaDpzGM6jbKqPiERZ/lLMnsWkUB.' where name='admin'; |
之后就是提权阶段了。
0x04 权限提升
SUID是set uid的简称,它出现在文件所属主权限的执行位上面,标志为 $ 。当设置了SUID后,UMSK第一位为4。我们知道,我们账户的密码文件存放在/etc/shadow中,而/etc/shadow的权限为 ———-。也就是说:只有root用户可以对该目录进行操作,而其他用户连查看的权限都没有。当普通用户要修改自己的密码的时候,可以使用passwd这个指令。passwd这个指令在/bin/passwd下,当我们执行这个命令后,就可以修改/etc/shadow下的密码了。那么为什么我们可以通过passwd这个指令去修改一个我们没有权限的文件呢?这里就用到了suid,suid的作用是让执行该命令的用户以该命令拥有者即root的权限去执行,意思是当普通用户执行passwd时会拥有root的权限,这样就可以修改/etc/passwd这个文件了。
1 | # 不同系统适用于不同的命令 |
这里我就直接标注出可以用来提权的命令了。
1 | find 命令说明 |
1 | 如果这里直接使用exec参数,会让结果无限递归,因为并没有找到你需要的文件,所以你需要先创建一个123文件,然后确保能够`find`到这个文件再执行命令 |
注意
1 | 提权使用 find / -perm -4000 2>/dev/null来查看当前有哪些命令在使用的过程中具有root权限 |