dc-2靶机(dc-4靶机)

靶机目标

在靶机的根root目录下找到flag文件并读取flag

相关知识

  • nmap使用

  • Drupal 7 CMS RCE

  • mysql数据看查询语句

  • Mysql执行SQL修改后台管理员账号

  • hashcat密码暴力破解

  • hydra暴力破解ssh登陆密码

  • 使用SUID权限运行的find命令进行提权

环境搭建

攻击主机:192.168.174.131
目标靶机:192.168.174.195

渗透流程

目标发现

首先扫描整个局域网,查找目标主机IP地址:

arp-scan -l

确定目标主机IP地址为:192.168.174.195

端口扫描

使用nmap进行端口扫描探测:

nmap -A -p- -T4 192.168.174.195

dc-2靶机(dc-4靶机)

从上面的扫描结果可以发现这里开放了常见的22(ssh)、80(http)、111(nfs共享)端口,其中80对应主要的web服务,经过访问发现此处web使用的是Drupal 7:

dc-2靶机(dc-4靶机)

目录扫描

尝试了弱口令与爆破,发现无果,之后扫描一下目录看看:

dc-2靶机(dc-4靶机)

这里看到有一个robots.txt,随后访问看看:

dc-2靶机(dc-4靶机)

版本确定

也没有什么重大的发现,不妨查看网页源代码看看呢?————发现使用的是Drupal 7:

dc-2靶机(dc-4靶机)

漏洞查询

一想Drupal 7应该也是有很多漏洞的,因为目前已经有了8了,所以直接使用searchsploit来查看一下有没有什么可以直接利用的漏洞:

searchsploit drupal

dc-2靶机(dc-4靶机)

漏洞利用

从上面的搜索结果中我们发现有很多的sql注入,但是我们这里不想要那么麻烦,所以直接使用RCE类漏洞,同时发现有可以在Metasploite中直接使用的,那么我们直接在MSF中查看一下可用的模块:

dc-2靶机(dc-4靶机)

从模块的时间来看,2018、2019的应该是可以使用的,这里使用2018的exp来实施攻击,首先配置参数

dc-2靶机(dc-4靶机)

之后输入“run”实施攻击,成功获得一个meterpreter:

dc-2靶机(dc-4靶机)

查看权限

之后,进入shell模式,查看一下当前用户的权限,发现是普通用户

dc-2靶机(dc-4靶机)

查看权限

之后,进入shell模式,查看一下当前用户的权限,发现是普通用户

dc-2靶机(dc-4靶机)

反弹bash

之后尝试使用python来反弹一个bash回来:

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

dc-2靶机(dc-4靶机)

发现Flag1

之后查看一下当前目录下的文件信息,发现flag1

dc-2靶机(dc-4靶机)

之后读取flag1.txt文件信息:

dc-2靶机(dc-4靶机)

从上面的信息我们可以看到,指示我们去找CMS的配置文件,这也许是flag2的下落信息!

获取flag2

之后翻阅网站目录,发现配置文件位于:
/var/www/sites/default/settings.php

dc-2靶机(dc-4靶机)

之后查看配置文件获取flag2:

dc-2靶机(dc-4靶机)

从flag2的信息提示我们可以了解到爆破不是唯一的方法,而且成功率较小,但是在这里我们看到了配置文件,在配置文件的下面就有默认的数据库的账号密码,那么还在等什么呢?对了,连接数据库呗

获取flag3

之后连接数据库试试,发现使用上面的数据库连接信息可以成功连接数据库:

dc-2靶机(dc-4靶机)

之后查询一下当前可用的数据库信息:

select database();

dc-2靶机(dc-4靶机)

之后使用drupaldb数据库,并查询所有的表面信息:

use drupaldb;select table_name from information_schema.tables;

dc-2靶机(dc-4靶机)

之后查看user表来获取用户信息:

dc-2靶机(dc-4靶机)

可以看到这里的信息进行了加密处理,这里给出两种方法:

一:hashcat解密:

hashcat的使用说明:

dc-2靶机(dc-4靶机)

Drupal 7为7900:

dc-2靶机(dc-4靶机)

使用hashcat进行破解:

dc-2靶机(dc-4靶机)

一段时间后成功爆破(当然这取决于用户的字典的强大与否)

dc-2靶机(dc-4靶机)

第二种方法:使用mysql命令修改用户密码为——drupal(Drupal 7采用的pass加密方式为password-hash.sh)

update users set pass=\\\'$S$DFLfuzfO9WDKAJcUHnNmhS9NwOD6MRj3pk00qEl4O7iNBD2X4n3v\\\' where name=\\\'admin\\\';

dc-2靶机(dc-4靶机)

之后使用账号密码登陆(admin:drupal):

dc-2靶机(dc-4靶机)

之后获取flag3:

dc-2靶机(dc-4靶机)

从上面的提示,可以看到flag4与password文件相关!

获取flag4

查看/etc/passwd文件,发现flag4提示信息

dc-2靶机(dc-4靶机)

这里也有两种方法:

方法一:直接查看flag4用户目录:

在flag4用户的目录发现flag4.txt文件:

dc-2靶机(dc-4靶机)

之后查看flag4文件信息:

dc-2靶机(dc-4靶机)

方法二:爆破flag4用户账户密码

hydra -l flag4 -P pass.txt ssh://192.168.174.195

dc-2靶机(dc-4靶机)

从上面可以看到成功爆破账户密码orange,之后ssh远程连接试试看呢?成功登陆后发现也是普通用户权限:

dc-2靶机(dc-4靶机)

之后查看当前目录下文件即可获得flag:

dc-2靶机(dc-4靶机)

从以上的flag信息我们可以知道flag5位于root目录下,而我们此时没有访问权限,所以要先提权才可以获取flag5!

获取flag5

首先使用sudo -l查看一下有没有什么命令可以进行提权的:

dc-2靶机(dc-4靶机)

之后查看有没有 root 权限的 SUID 命令,发现了下面这些:

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

dc-2靶机(dc-4靶机)

发现一个可用的命令——find命令,之后构造以下命令语句进行提权:

find flag4.txt -exec \\\"whoami\\\" \\\\;

从上面的结果我们可以看到,此时我们已经是root权限了!之后我们直接执行以下命令完成完美提权:

find flag4.txt -exec \\\"/bin/sh\\\" \\\\;PS:这段命令的意思是先使用 find 命令查找flag4.txt 文件,然后使用它的参数 -exec 来执行命令 /bin/sh,以此来获取root权限!

成功完成提权并获取flag5!

原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34100.html

(0)
七芒星实验室's avatar七芒星实验室
上一篇 2024年4月9日 下午1:34
下一篇 2024年4月9日 下午1:36

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注