【靶机详解】DC-1

打印 上一主题 下一主题

主题 842|帖子 842|积分 2526

目录

环境搭建


  • 下载靶机(DC-1 靶机下载
  • 解压后,使用 VMware 打开,并将攻击机和靶机的网卡,设置为 NAT 模式。
NAT 模式:将攻击机与靶机设置在同一网段下
环境信息


  • 攻击机:kali  -> IP:192.168.237.128
  • 靶机:DC-1(Linux)

有多种获得 root 的方法,但是,我已经包含了一些包含初学者线索的 flag。
总共有五个 flag,但最终目标是在 root 的主目录中找到并读取 flag。 您甚至不需要成为 root 即可执行此操作,但是,您将需要 root 权限。
渗透思路

1信息收集


  • 使用  nmap -sS -O 192.168.237.0/24 扫描网段,找寻靶机的 IP。

  • 根据扫描出的系统信息,以及端口的开发情况,判断  192.168.237.161 是目标靶机的 IP,所以使用 nmap -A -T4 -p- 192.168.237.161 对靶机进行全面扫描。

  • 扫描出靶机的 http 站点是一个 Drupal 站点。
  • 使用 http://192.168.237.161 访问靶机的 http 站点。

  • 访问成功后根据页面内容,再次确定该站点的 CMS 为 Drupal 。
内容管理系统(CMS):一种位于 WEB 前端(Web 服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。          ——摘自百度百科
2漏洞发现


  • 使用 msfconsole 运行 MSF 工具。
  • 根据网站的 CMS 信息,在 MSF 中使用 search drupal 搜索相关的漏洞利用模块。

  • 找到了两个与 http 相关的模块,根据 Rank(等级)优先选择带颜色的模块,使用 use 2 装载模块。
  • 使用 show options 查看需要进行的设置,发现只需要设置 RHOSTS(目标),所以使用 set RHOSTS 192.168.237.161 进行设置。设置完后如下:

  • 使用 run 或 exploit 运行模块。

  • 运行模块后,成功建立会话,使用 shell 即可获得靶机的 WebShell 。
3漏洞利用


  • 使用 whoami 查看当前用户的权限。

  • 为了方便后面的操作,使用 python -c "import pty;pty.spawn('/bin/bash')" 实现交互式 Shell。
交互式 Shell:可以执行一些需要上下文的命令,并且会显示操作的结果。

  • 使用 ls -al 浏览当前目录中所有的文件及其权限。

  • 发现了 flag1.txt 文件,使用 cat flag1.txt 进行查看。

每个好的 CMS 都需要一个配置文件 - 你也一样。

  • 根据文件内容,百度搜索 Drupal 站点的默认配置文件,得知文件名为 settings.php 。
  • 先使用 find /var/www/ -name settings.php 在网站目录下搜索 settings.php 文件。

  • 成功搜索到配置文件,使用 cat sites/default/settings.php 进行查看。

蛮力和字典攻击不是获得访问权限的唯一方法(您将需要访问权限)。
您可以使用这些凭据做什么?

  • 查看后发现这个文件就是我们要找的第二个 flag,并且还发现了靶机数据库的账户和密码。
  • 使用 mysql -u dbuser -pR0ck3t 尝试登录靶机数据库。

  • 登录成功后,使用 show databases; 查看所有数据库。

  • 根据库名进行判断,drupaldb 应该是靶机的 Drupal 站点使用的数据库。
  • 使用 use drupaldb; 进入数据库,然后使用 show tables; 查看当前数据库中的所有表。

  • 浏览表名后,发现一个 users 表,猜测其可能保存着网站用户的相关信息。
  • 使用 select * from users\G;  纵向显示 users 表中的所有字段。


  • 找到了 admin(管理员)账号的密码,根据密码形式可以得知密码经过了加密。
  • 得到密码密文后可以尝试进行解密或修改密码,搜索资料后发现这种加密是不可逆,并且 Drupal 提供了可以直接修改管理员密码的方法。在 /var/www/ 下使用 php scripts/password-hash.sh tkm 即可生成 tkm 这个字符串对应的 hash 值。

  • 再次进入到数据库中,使用 update drupaldb.users set pass="" where name='admin' 即可修改 admin 的密码为之前生成 hash 时使用的字符串,此处为 tkm 。

  • 尝试使用 admin:tkm 登录靶机的 Drupal 站点。

  • 成功使用管理员账户登录站点,看到最上方有一排选项,如果看不懂,就都试一次。
  • 尝试点击 Dashboard 选项,找到了 flag3.txt ,点击进行查看。


特殊权限将有助于查找密码 - 但您需要 -exec 该命令才能确定如何获取阴影中的内容。

  • 查看后发现文本内容中有两个特别的大写字母 perms 和 find ,根据此前 flag 的形式,使用 find / -name "flag*" 搜索所有开头为 flag 的文件。

  • 成功找到 flag4.txt ,使用 cat /home/flag4/flag4.txt 进行查看。

您可以使用相同的方法在 root 中查找或访问标志吗?
大概。 但也许这并不容易。 或者也许是?

  • 根据 flag4.txt 中的内容,推测下一步需要进行提权,从而获得 root 权限,并访问 /root 目录,获得 flag5。
  • 根据 flag3 中另外一个大写字母 perms ,猜测可能需要使用 SUID 提权,使用 find / -user root -perm -4000 -print 2>/dev/null 查找所有具有 SUID 权限且属主为 root 的文件。
SUID 权限:在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效。


  • 发现了 find 命令,并且根据 flag3 中提到的 -exec,可以确定需要使用 find 提权。
  • 使用 touch tkm 创建提权需要的文件,然后使用 find tkm -exec '/bin/sh' \; 进行提权。

  • 成功获得 root 权限,根据提示使用 cd /root 访问 /root 目录,找到了 thefinalflag.txt ,使用 cat thefinalflag.txt 进行查看。

做得好!!!!
希望你喜欢这个并学到了一些新技能。
您可以通过 Twitter 与我联系,让我知道您对这段小旅程的看法 - @DCAU7

  • 渗透结束!!!
知识点汇总


  • 使用 nmap 找寻并扫描靶机。
  • 使用 MSF 的对应模块,进行漏洞利用。
  • 利用 Python 实现交互式 Shell。
  • 在数据库层面,修改 Drupal 站点的用户密码。
  • SUID 提权
  • find 提权
参考资料

DC-1 官网
内容管理系统_百度百科
密码 HASH 特点
修改 Drupal 的管理员密码
这是我第一次尝试写博客,如果您觉得哪里有问题,请在评论区进行留言。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张国伟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表