漏洞靶场实战-Vuluhub DC-1


下载安装

Vulnhub 是个提供各种漏洞平台的综合靶场,可供下载多种虚拟机进行下载,本地 VM 打开即可

本次复现靶场下载地址

下载的是一个 ovf 后缀的文件,打开 Vmware,导入

image-20220506092502236

导入完毕后根据需求编辑虚拟机设置,开机即可

image-20220506131019567

这样就是正常的,不需要登录

Kali IP:192.168.179.144

DC-1

利用

1.主机发现

arp-scan -l

image-20220506110703472

因为 IP 地址为 1 是网关,结合 mac 地址判断 145 地址就是靶机地址

image-20220506110920777

使用 nmap 扫描端口,nmap 手册

nmap -A 192.168.179.145 -p 1-65535

image-20220506111441162

确定开放了 22、80、111、50303,考虑以下利用方式

  1. 80 端口 web 服务存在漏洞
  2. 22 ssh 端口存在爆破

访问 80 端口,发现 cms 为 Drupal7

image-20220506114524259

2.Drupal漏洞利用

使用 searchsploit 命令在漏洞库中搜索此版本是否有漏洞可以利用

image-20220506130344519

存在 PHP 远程命令执行漏洞,发现 MSF 可以直接利用

image-20220506131211054

image-20220506131315731

设置相关参数

image-20220506131414752

根据要求只需要设置RHOSTS即目标靶场的IP,设置完成执行run命令即可进入shell环境

image-20220506131518389

flag1

现在就拿到了一个 msf 的 shell,但是不是一个完整的 shell,可以使用 shell 命令切换

image-20220506131743447

使用 ls 命令发现 flag1.txt

image-20220506131906979

flag2

提示 cms 的配置文件

在 /var/www/sites/default/settings 文件中发现第二个 flag

image-20220506132347033

提示 暴力破解和扫目录不是获取权限的唯一方式,下面的认证信息你怎么使用,很明显这是在提示此配置文件中有一些敏感信息,就是下面的数据库配置信息了

flag3

由于使用的不是交互式 shell 所以不是很方便,使用 python 获取交互式 shell

python -c 'import pty;pty.spawn("/bin/bash")'

image-20220506132809900

直接用密码连接 mysql 数据库

image-20220506133012591

查看 users 表

image-20220506133205106

密码可以发现是加盐 md5 很难破解,可以直接在数据库中使用 update 语句修改密码

1.首先生成自定密码的加盐哈希值,回到根目录使用命令

php scripts/password-hash.sh 密码

image-20220506133451431

2.进入数据库执行 update 语句

update users set pass="$S$Dywh/n6dLMr2Pq1qH4/6gOfHOBbVhoX4OLxRyaLF9rmtlb3UPuR2" where uid = 1;

image-20220506133824877

修改成功回到网页,登录后台,找到 flag

image-20220506134406436

flag4

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

查看 passwd 文件

image-20220506134712111

发现 flag4 的目录

image-20220506134853399

有师傅是这么做的

查看 etc/passwd,发现目标靶机用户 flag4,并且有 /bin/bash,看到这想到了还有端口22,所以 ssh 连接。但是密码不知道所以只能用爆破神器 hydra。
用 kali 自带密码字典,路径为 /usr/share/john/password.lst,kali 自带各种密码默认保存在 /usr/share/
爆破出密码为 orange,直接 ssh 连接,进入家目录查看发现 flag4

flag5

shadow 文件没有查看权限

image-20220506134938449

image-20220506135242903

结合 flag3 和 flag4 的提示,需要获取 root 权限

linux 提权方法:

  1. sudo 提权,通过命令sudo -l查看是否有可提权的命令
  2. suid 提权,通过命令find / -perm -4000 2>/dev/null查看是否具有root权限的命令
  3. 系统版本内核提权
  4. 通过数据库提权

使用以下命令可以查看根目录下所有带有 suid 属性的文件

SUID 是一种特殊的文件属性,它允许用户执行的文件已该文件的拥有者的身份运行,比如一个具有 SUID 属性的文件的拥有者是 root 用户,就可以 root 权限运行

suid 提权

find / -perm -u=s -type f 2>/dev/null
等价 find / -perm -4000 2>/dev/null

image-20220506140418688

发现 find 具有 root 权限,直接使用命令提权

find -exec /bin/sh \;

image-20220506140814747

流程梳理

image-20220506141938509
参考:
https://blog.csdn.net/weixin_50053818/article/details/116404482

附录

Nmap 常用参数

参 数 说 明
-sT TCP connect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息。
-sS 半开扫描,很少有系统能把它记入系统日志。不过,需要Root权限。
-sF -sN 秘密FIN数据包扫描、Xmas Tree、Null扫描模式
-sP ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描。
-sU UDP扫描,但UDP扫描是不可靠的
-sA 这项高级的扫描方法通常用来穿过防火墙的规则集
-sV 探测端口服务版本
-Pn 扫描之前不需要用ping命令,有些防火墙禁止ping命令。可以使用此选项进行扫描
-v 显示扫描过程,推荐使用
-h 帮助选项,是最清楚的帮助文档
-p 指定端口,如“1-65535、1433、135、22、80”等
-O 启用远程操作系统检测,存在误报
-A 全面系统检测、启用脚本检测、扫描等
-oN/-oX/-oG 将报告写入文件,分别是正常、XML、grepable 三种格式
-T4 针对TCP端口禁止动态扫描延迟超过10ms
-iL 读取主机列表,例如,“-iL C:\ip.txt”

猜你喜欢

转载自blog.csdn.net/q20010619/article/details/124609483