Vulnhub_DC1 记录

参考walkthrough

经验 & 总结

  1. 对Drupal这个架构还是不熟悉,找配置文件找了半天,最后还是靠搜索引擎。
  2. MSF框架搜索出来的攻击exp好几个,得想想办法批量测试(虽然真实项目应该遇不到,但是能偷一点懒是一点嘛)
  3. 距离上一次做靶机已经有一段时间了,中间这段时间也没有看相关的内容,手有点生了。真的是业精于勤荒于嬉

步骤流水

  1. 网络扫描,确定靶机IP(我的netdiscover好像有问题,扫描提示完成之后需要等一会儿才能显示结果)。

  2. 端口扫描

    端口 描述
    22 SSH
    80 apache2.2.22、Drupal
    111 rpcbind
    44237 RPC

    111和44237没见过

1. 建立立足点

  1. 涨知识了

    大概意思是:apache保护文件名中带有.ht的文件不被下载

    感兴趣的页面xmlrpc.php

  2. 网页源码也没有感兴趣的点。

  3. 使用msf的exploit/unix/webapp/drupal_drupalgeddon2得到一个shell,权限为www-data

2. 提权

  1. 在当前目录下就可以找到第一个flag

  2. 根据提示查找config文件

    大致翻了一下这个文件,里面并没有找到有用的信息。

    上网搜了一下,Drupal的配置文件为sites/default/settings.php

    其中找到了数据库的配置信息

  3. 连接数据库,因为mysql数据库并没有对外开放,因此在shell中进行操作。

    翻了翻数据库,能看到drupal登录用户的密码hash,但是感觉并不是重点,因为已经通过web获得了一个立足点,cms登录用户已经显得不是那么重要了。

    尝试进行udf提权,发现没有写入权限,同时也发现自己到现在都没有对主机信息进行搜集。

3. 主机信息搜集

利用LinEnum.sh脚本搜集信息,将报告导回本地查看。

  1. 内核版本为Linux version 3.2.0-6-486

  2. 存在一个用户名为flag4,其HOME目录下有个flag4的文本文件

  3. 看到了一个exim4进程,但是用户很诡异,而且这个程序有s属性

  4. 查查看其他有s属性的命令

4. 继续提权

  1. 针对内核版本查找提权途径,但是两个程序都无法提权。

  2. 读一下flag4.txt,我也不知道这个“相同的方法”指的是啥,我又没有ls、cat root目录下内容的权限。

  3. 试试看Exim,搜出来一大堆

  4. 查看当前版本,有点尴尬,并不在列表里

  5. 尝试通过find提权,发现可以提权(之所以最后尝试这个,是因为之前忘记查看带有suid权限的程序了,信息搜集的最后一步是补上去的)

  6. 获得一个root权限的shell

5. 消失的flag

  1. 回到得到cms配置文件的那一步

  2. 利用配置文件中的信息,登录到数据库,可以看到Drupal的用户名和密码。

  3. 查看Drupal详细版本号为7.24

  4. searchsploit到一个添加Admin用户的脚本

  5. 利用脚本添加一个账户

  6. 登录后看到flag3的提示

    Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.

  7. 另一种添加用户的方式,既然有了数据库权限,就可以手工添加账号。利用Drupal自身提供的脚本./scripts/password-hash.sh加密自己的密码,通过数据库添加一个账号,并修改成管理员权限。

  8. 根据提示,使用find命令查看shadow文件可以得到用户密码的hash

  9. 利用hashcat尝试爆破,很快就可以爆破出flag4的密码,但是root的一直都没有出现(等不及了,要睡觉)

  10. 使用ssh成功登陆,并读取flag4.txt

最新文章

  1. mybatis 对于基本类型数据传值的问题
  2. 关于中文字体的设置说明(font:12px/1.5 tahoma,arial,\5b8b\4f53)
  3. Visual Studio 2013 的 Xamarin 安装教程
  4. ubuntu的目录结构
  5. Oracle基础 事务
  6. MVC中Jqgrid的用法
  7. Java Excel
  8. Android 之 悬浮窗
  9. JAVA 数据权限设计
  10. 为什么不需要为Python对象添加 getter 和 setter
  11. MySQL数据库— 汇总和分组数据
  12. 【原创】 c#单文件绿色资源自更新
  13. C语言_来了解一下GCC编译器编译C可执行脚本的过程
  14. flex布局简析
  15. eclipse3.7+resin4.0集成配置小结
  16. mac用BootCamp装windows装完之后驱动问题
  17. hash与encrypt
  18. 初识JDBC
  19. VMware 物理机可以复制文件到虚拟机,却无法从虚拟机复制文件到物理机(已解决)
  20. 如何创建 SVN 服务器,并搭建自己的 SVN 仓库 如何将代码工程添加到VisualSVN Server里面管理

热门文章

  1. SqlDataAdapter对象
  2. drf三大组件之频率认证组件
  3. php 裁剪图片并处理png图片背景变黑
  4. rabbitmq - 简单认识
  5. C#: switch语句的重构『网摘』
  6. List 线性表:ArrayLis,LinkedList
  7. Spring Boot 开发环境IDEA下的热部署
  8. Java SimpleDateFormat 日期-时间格式参数
  9. c++写入注册表
  10. idea 快捷使用(三)中断Debug的使用