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

Vulnhub_DC1 记录的更多相关文章

  1. 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL

    在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...

  2. nginx配置反向代理或跳转出现400问题处理记录

    午休完上班后,同事说测试站点访问接口出现400 Bad Request  Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...

  3. Kali对wifi的破解记录

    好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. ...

  4. 2015 西雅图微软总部MVP峰会记录

    2015 西雅图微软总部MVP峰会记录 今年决定参加微软MVP全球峰会,在出发之前本人就已经写这篇博客,希望将本次会议原汁原味奉献给大家 因为这次是本人第一次写会议记录,写得不好的地方希望各位园友见谅 ...

  5. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  6. 我是如何在SQLServer中处理每天四亿三千万记录的

    首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...

  7. 前端学HTTP之日志记录

    前面的话 几乎所有的服务器和代理都会记录下它们所处理的HTTP事务摘要.这么做出于一系列的原因:跟踪使用情况.安全性.计费.错误检测等等.本文将谥介绍日志记录 记录内容 大多数情况下,日志的记录出于两 ...

  8. ASP.NET Core应用中如何记录和查看日志

    日志记录不仅对于我们开发的应用,还是对于ASP.NET Core框架功能都是一项非常重要的功能特性.我们知道ASP.NET Core使用的是一个极具扩展性的日志系统,该系统由Logger.Logger ...

  9. python+uwsgi导致redis无法长链接引起性能下降问题记录

    今天在部署python代码到预生产环境时,web站老是出现redis链接未初始化,无法连接到服务的提示,比对了一下开发环境与测试环境代码,完全一致,然后就是查看各种日志,排查了半天也没有查明是什么原因 ...

随机推荐

  1. buuctf wireshark

    首先下载文件夹 然后用wireshark进行分析 然后发现啥也不会然后查一下资料https://www.jianshu.com/p/55ec409c739e 然后根据资料找了tcp然后根据解析做出此题 ...

  2. Linux实现树莓派3B的国密SM9算法交叉编译——(三)国密SM9算法实现

    先参考这篇文章 Linux实现树莓派3B的国密SM9算法交叉编译——(二)miracl库的测试与静态库的生成 进行miracl库的交叉编译测试,并生成miracl静态链接库. 这篇文章主要介绍基于mi ...

  3. python爬虫-----Python访问http的几种方式

    爬取页面数据,我们需要访问页面,发送http请求,以下内容就是Python发送请求的几种简单方式: 会使用到的库  urllib   requests 1.urlopen import urllib. ...

  4. 转载:ADTS header

    转自:http://blog.csdn.net/tx3344/article/details/7414543 1.ADTS是个啥 ADTS全称是(Audio Data Transport Stream ...

  5. 虚拟机安装archLinux+xfce桌面教程(更新时间2017-5-8)

    本教程转自http://blog.sina.com.cn/u/5692023517 感谢大神写出如此详细的教程并允许转载 本教程的目的:为了让新手安装arch不再那么难, 一个好的教程可以少走很多弯路 ...

  6. 计算机二级-C语言-程序修改题-190108记录-字符串处理

    //程序修改题:给定程序MODI1.C中函数fun的功能是:先将字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面.例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为 ...

  7. 唠唠C++二级指针、二维数组、指针数组、数组指针等的区分

    今天看c++primer第六章,有这部分的内容,脑子有点糊涂了,看了几篇博客,自己敲了下,记录一下备忘. 二级指针: int **p; 二维数组: int p[10][10]; char q[10][ ...

  8. python接口自动化测试 - unittest框架基本使用

    unittest简单介绍 单元测试框架 还可以适用WEB自动化测试用例的开发与执行 提供丰富的断言方法 官方文档:https://docs.python.org/zh-cn/3/library/uni ...

  9. 排序算法之归并排序的python实现

    采用分治法: 分割:递归地把当前序列平均分割成两半. 集成:在保持元素顺序的同时将上一步得到的子序列集成到一起(归并). 归并操作(归并算法),指的是将两个已经排序的序列合并成一个序列的操作.归并排序 ...

  10. 松软科技web教程:JavaScript HTML DOM 元素

    查找 HTML 元素 通常,通过 JavaScript,您需要操作 HTML 元素. 为了达成此目的,您需要首先找到这些元素.有好几种完成此任务的方法: 通过 id 查找 HTML 元素 通过标签名查 ...