Vulnhub DC系列之DC-1靶机渗透测试

每日学习~ 冲冲冲

VulnHub 入门DC系列之DC-1

说明

靶场下载地址:https://www.vulnhub.com/entry/dc-1,292/
渗透靶场:VirtualBox
攻击靶机:本地机+kail(VMware)
Flag:5个

启动DC-1靶机,界面显示登录界面,这是正常运行情况,我们也并没有登录账号,需要自己去渗透测试进行提权。回到我们的攻击机

文章目录

  • VulnHub 入门DC系列之DC-1
    • 说明
    • 扫描内网 发现主机
    • 扫描主机
    • 信息收集
    • 使用Metasploit进行漏洞查找攻击
    • 获取flag1
    • 获取flag2
    • 获取flag3
      • 方法1:修改密码信息
      • 方法2:利用漏洞 添加新用户
    • 获取flag4
    • 获取flag5
      • 提权
    • 补充
      • suid提权


扫描内网 发现主机

(1)扫描内网,发现目标主机IP
使用命令:arp-scan -l 发现内网中的主机

arp-scan 是 kali自带的一款轻量ARP(地址解析协议)扫描工具,该工具会自动解析MAC地址,并获取对应硬件厂商。可用于扫描局域网内的所有设备,发现隐藏设备。

Vulnhub DC系列之DC-1靶机渗透测试_第1张图片


扫描主机

(2)利用nmap对目标主机进行端口扫描,发现开放端口
使用命令:nmap -sV -p- 192.168.43.144

-sV 用来扫描目标主机和端口上运行的软件的版本
-p 80 指定80端口
-p- 扫描0-65535全部端口

Vulnhub DC系列之DC-1靶机渗透测试_第2张图片
发现开放80端口,则可以进行网页访问。


信息收集

访问主页,进行渗透测试前最重要的环节:信息收集

(1)使用插件Wappalyzer对网站进行指纹识别

可以得知该网站的CMS是Drupal,且版本为7.0

Vulnhub DC系列之DC-1靶机渗透测试_第3张图片

使用Metasploit进行漏洞查找攻击

在msf中查找Drupal存在的漏洞信息,百度一下查看是否存在7.0版本的漏洞,发现有个2018年的CVE-2018-7600 远程任意代码执行漏洞,通过msf也发现了该漏洞。
Vulnhub DC系列之DC-1靶机渗透测试_第4张图片

使用对应脚本进行测试,使用show options命令查看脚本所需设定参数

Vulnhub DC系列之DC-1靶机渗透测试_第5张图片

设置靶机的IP就可以执行exploit。

Vulnhub DC系列之DC-1靶机渗透测试_第6张图片

当提示session1 opengetshell

Vulnhub DC系列之DC-1靶机渗透测试_第7张图片

切换到shell模式,就可以执行任意系统命令了
查看当前目录下的文件

获取flag1

发现到第一个flag文件
Vulnhub DC系列之DC-1靶机渗透测试_第8张图片


但我们现在获取的shell并不是一个具有完整交互的shell,为了便于查看内容,我们可以利用python脚本反弹一个shell,转换成为完全交互式的TTY,详情可参考文章

执行命令:python -c "import pty;pty.spawn('/bin/bash')",切换到交互式shell

Vulnhub DC系列之DC-1靶机渗透测试_第9张图片
查看flag.txt文件内容,提示我们去看配置文件

在这里插入图片描述
Drupal的配置文件是 sites/default/settings.php ,其主要是数据库连接配置

获取flag2

执行命令,查看配置文件,发现了flag2 并获得数据库的账号密码,并给予部分提示。

Vulnhub DC系列之DC-1靶机渗透测试_第10张图片

获取flag3

登录本地mysql数据库,查看信息:mysql -u dbuser -p
Vulnhub DC系列之DC-1靶机渗透测试_第11张图片

简单查看一些主要信息:

show databases //查看存在的数据库
use drupaldb   //选择数据库
show tables    //查看当前数据库内的表
desc 表名 	   //查看表结构

发现一个user表,查询其内容
Vulnhub DC系列之DC-1靶机渗透测试_第12张图片
发现账号,和经过加密的密码,导致我们无法知道密码进行登录,根据之前的flag2中给的提示暴力破解不是唯一的方法,

方法1:修改密码信息

因为Drupal 7已不再采用Drupal 6和5时代的简单的MD5加密了,所以我们无法直接爆破。
据某个帖子说就是因为现在有个在线的MD5数据库,可以直接查询到MD5码的原文,因此
Drupal 7的开发者认为不能再继续采用这种极不安全的方法了,因此Drupal 7采用了新型
的Hash加密方法来确保密码安全。“加了盐(Salt)“的MD5码

在Drupal 7的安装目录中的scripts目录下,是Drupal 7开发者提供的PHP脚本,其中包含了MD5加密算法脚本:password-hash.sh,可以利用脚本直接生成。
在这里插入图片描述
将新生成的密码更新数据库

Vulnhub DC系列之DC-1靶机渗透测试_第13张图片

或者网络搜索该cms框架忘记密码的解决办法,有现成做好的明文和密文。

方法2:利用漏洞 添加新用户

使用searchsploit查找可用漏洞,再利用exp直接添加


利用修改后的账号密码登录获得flag3,提示passwd
Vulnhub DC系列之DC-1靶机渗透测试_第14张图片

获取flag4

根据之前的提示,cat /etc/passwd 可以发现flag4的用户
Vulnhub DC系列之DC-1靶机渗透测试_第15张图片
进入flag4用户的目录下,发现flag4.txt文件,并给予提示 flag in root

Vulnhub DC系列之DC-1靶机渗透测试_第16张图片

获取flag5

之前给了提示 flag in root 说明我们需要提权 使用root权限才能去发现flag文件

提权

要想有root权限:
(1) 以root账户登录(尝试使用爆破未果)

(2) 普通用户登录,使用具有管理员权限但可以不是管理员身份的命令去get shell

这里利用find 命令,利用它可以使用root权限。

执行命令: find /root 可以发现有个flag文件
Vulnhub DC系列之DC-1靶机渗透测试_第17张图片
获得文件内容:find /root/thefinalflag.txt -exec cat {} \; (利用exec后面的命令直接抓取该文件)
Vulnhub DC系列之DC-1靶机渗透测试_第18张图片

补充

suid提权

概述: SUID可以让调用者以文件拥有者的身份运行该文件。

SUID提权的思路: 以普通用户身份运行root用户所拥有的SUID的文件,那么普通用户运行该文件的时候就得获得root用户的身份了

常见可用于suid提权的命令

Nmap
Vim
find
Bash
More
Less
Nano
cp

获取目标文件
以下命令可以发现系统上运行的所有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 {
     } \;

你可能感兴趣的:(Vulnhub靶场)