VulnHub::DC-1
实验环境

一共有五个flag,有多种方法去提权,我们最终目标是去拿到/root的flag。总的来说,难度不高,适合新人练手
渗透过程
0x01 信息搜集
由于不知道靶机IP地址,进行D段扫描,获得靶机IP地址。

进行端口扫描:
nmap命令
-sS: 半开扫描,记入系统日志风险小
-sP:扫描端口前,先使用ping扫描,保证主机存活
-A: 全面系统检测,启用脚本检测和扫描

主机开放了22(SSH),80(HTTP),111(RPCBInd),45684端口。
直接访问web服务,是一个Drupal搭建的站。

0x02 开打
flag1
使用AWVS进行扫描,得到该页面存在Drupal的一个漏洞CVE-2018-7600

使用msf尝试利用此漏洞:

获得shell

在 /var/www/ 下有个flag1.txt,提示我们去看配置文件
flag2
利用Python模拟tty使目录更易于辨认:
python -c 'import pty;pty.spawn("/bin/sh")'
drupal的配置文件是 /sites/default/settings.php ,主要是数据库连接配置

我们发现了flag2以及数据库账号密码

flag3
登上数据,查看数据库中的信息。

发现账号,和经过加密的密码,flag2中给的提示暴力破解不是唯一的方法
思路一:恢复密码
搜索了一下,Drupal 7已不再采用Drupal 6和5时代的简单的MD5加密了。据某个帖子说是因为现在有一个在线的MD5数据库,可以查到很多MD5码的原文,因此Drupal 7的开发者认为不能再继续采用这种极不安全的方法了,因此Drupal 7采用了新型的Hash加密方法来确保密码安全。新型加密方法是“加了盐(Salt)“的MD5码,简单理解就是并不会直接将password进行MD5加密,而会和用户名或其它随机字符串组合在一起后再MD5加密。
查到的资料表示:在Drupal 7的安装目录中的scripts目录下,有一些Drupal 7开发者准备好的PHP脚本,可以执行一些高级操作。其中有一个脚本名为:password-hash.sh,它的功能是传入一个密码(字符串),即返回加密后的密码字符串。
或者打开Google或者百度搜索该cms框架忘记密码的解决办法,就可以看到别人做好的明文和密文,可以拿来直接用,也有文章直接说明它是如何加密的

生成密码字符串

对原密码进行替换。
登录web服务,得到flag3
思路二:查找可利用漏洞,添加新管理员账户
使用searchsploit查找可用漏洞:

利用CVE-2014-3704exp

添加新管理员用户admin1

登录成功

flag4
flag3的提示提到了权限,于是想到先查看用户列表。

发现flag4用户
切换到falg4的家目录,发现flag4.txt

flag5
flag4提示flag in root

发现最终flag,但是无权限打开,flag3中提醒了“-exec”,猜测需要提权。
使用find可以获取root权限


附录1 SUID提权
0x01 SUID
什么是suid?通俗的理解为其他用户执行这个程序的时候可以用该程序所有者/组的权限。
0x02 SUID提权
那么什么是suid提权呢?我理解的就是有个文件,它有s标志,并且他输入root,那么我们运行这个程序就可以有了root的权限,并且这个程序还得能执行命令,不然没什么用处,那么我们就能从普通用户提升到了root权限了。
0x03 常见的可用于suid提权的命令
Nmap
Vim
find
Bash
More
Less
Nano
cp
0x04 查找符合条件的文件
以下命令可以发现系统上运行的所有SUID可执行文件。具体来说,命令将尝试查找具有root权限的SUID的文件。
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
附录2 find命令
0x01 描述
find命令 用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
0x02 语法
find(选项)(参数)
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
0x03 实例
借助-exec选项与其他命令结合使用
找出当前目录下所有root的文件,并把所有权更改为用户tom
find .-type f -user root -exec chown tom {} \;
上例中, {} 用于与 -exec 选项结合使用来匹配所有文件,然后会被替换为相应的文件名。
找出自己家目录下所有的.txt文件并删除
find $HOME/. -name "*.txt" -ok rm {} \;
上例中, -ok 和 -exec 行为一样,不过它会给出提示,是否执行相应的操作。
VulnHub::DC-1的更多相关文章
- vulnhub DC:1渗透笔记
DC:1渗透笔记 靶机下载地址:https://www.vulnhub.com/entry/dc-1,292/ kali ip地址 信息收集 首先扫描一下靶机ip地址 nmap -sP 192.168 ...
- vulnhub: DC 2
首先地址探测找到主机IP: root@kali:~# nmap -sn 192.168.74.139/24 Starting Nmap 7.80 ( https://nmap.org ) at 202 ...
- DC靶机1-9合集
DC1 文章前提概述 本文介绍DC-1靶机的渗透测试流程 涉及知识点(比较基础): nmap扫描网段端口服务 msf的漏洞搜索 drupal7的命令执行利用 netcat反向shell mysql的基 ...
- Dc:7 Vulnhub Walkthrough
靶机下载地址: https://www.vulnhub.com/entry/dc-7,356/ 主机扫描: http://10.10.202.161/ Google搜索下: SSH 登录 以上分析得出 ...
- vulnhub: DC 9
信息收集: root@kali:/opt/test# nmap -A -v 192.168.76.137 Starting Nmap 7.80 ( https://nmap.org ) at 2020 ...
- 【vulnhub】靶机-【DC系列】DC9(附靶机)
出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) 主机信息 Kali:192.168.56.113 DC9:192.168.56.112 ...
- vulnhub: DC 3
通过nmap扫描,只开放了80端口,并且该web服务是基于Joomla搭建: root@kali:~# nmap -A 192.168.74.140 Starting Nmap 7.80 ( http ...
- vulnhub: DC 4
信息收集: yurang@kali:~$ nmap -sn 192.168.76.1/24 Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-04 ...
- Vulnhub Breach1.0
1.靶机信息 下载链接 https://download.vulnhub.com/breach/Breach-1.0.zip 靶机说明 Breach1.0是一个难度为初级到中级的BooT2Root/C ...
- Nezuko: 1 Vulnhub Walkthrough
下载地址: https://www.vulnhub.com/entry/nezuko-1,352/ 虚拟机启动,设置IP地址DHCP获取 主机发现扫描: 主机层面扫描: ╰─ nmap -p1-655 ...
随机推荐
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis
今天项目不忙,想搞一下shardingJDBC分库分表看看,主要想实现以下几点: 舍弃xml配置,使用.yml或者.properties文件+java的方式配置spring. 使用 Druid 作为数 ...
- [CF1270F]Awesome Substrings
题目 点这里看题目. 分析 设前缀和\(s_r=\sum_{i=1}^r [S_i='1']\) 考虑满足要求的子串\((l,r]\)的要求: \[\exists k\in N_+, r- ...
- Spark读取Hbase中的数据
大家可能都知道很熟悉Spark的两种常见的数据读取方式(存放到RDD中):(1).调用parallelize函数直接从集合中获取数据,并存入RDD中:Java版本如下: JavaRDD<Inte ...
- nslookup使用及常用命令
nslookup是命令行里一个常用的DNS查询工具,最常用的功能是域名解析和反向解析. 下面罗列一些常用的nslookup命令 nslookup # 进入交互模式 >域名 # 进行正向解析 &g ...
- 一篇文章教会你使用Python定时抓取微博评论
[Part1--理论篇] 试想一个问题,如果我们要抓取某个微博大V微博的评论数据,应该怎么实现呢?最简单的做法就是找到微博评论数据接口,然后通过改变参数来获取最新数据并保存.首先从微博api寻找抓取评 ...
- git 本机链接多库配置
git config --list 查看所有配置 // 提交时读取用户名称及邮箱优先级 --local > --global > --system // 全局配置用户名称及邮箱 git c ...
- Docker数据管理与挂载管理
介绍如何在 Docker 内部以及容器之间管理数据:在容器中管理数据主要有两种方式:数据卷(Volumes).挂载主机目录 (Bind mounts) 镜像来源 [root@docker01 ~]# ...
- CODING DevOps 系列第五课:微服务测试——微服务下展开体系化的微服务测试
微服务测试的痛点与挑战 这张图可以形象地展示单体服务和微服务的对比,单体应用就像左边巨大的集装箱,软件模块和应用都包括其中:而微服务就像是由一个小集装箱组成,微小的服务组成一个庞大.完整的系统.单体服 ...
- 010.OpenShift综合实验及应用
实验一 安装OpenShift 1.1 前置准备 [student@workstation ~]$ lab review-install setup 1.2 配置规划 OpenShift集群有三个节点 ...
- vue 开发环境的搭建
一.整个流程: 安装nodejs>>安装vue>>安装vue-cli>>初始化 webpack(生成代码)>>安装依赖>>运行vue程序 二 ...