VulnHub渗透之DC-1
0×00 说明
kali与目标处于同一网段下
攻击机:Kali(VMware ) IP:192.168.1.31
特别说明:每个靶机作者都对靶机做了详细的描述以及攻击目标,比如DC1就需要找到5个flag,最终目标是在root的主目录中找到并读取该标志!
通过每个flag所获得知识点
1、msf的熟练使用以及搜索可利用漏洞(Drupal);
2、留意目标网站的配置文件(慢慢查看别错过重要信息);
3、数据库管理员提权(更新管理员密码或者添加一个新用户);
4、suid提权的命令(nmap、vim、find、bash、more、less、nano、cp)。
0×01 信息收集
探测目标IP
namp -sP 192.168.1.0/24
arp-scan -l //扫描当前网段下的IP
Cadmus Computer Systems 表示Virtualbox虚拟机
分析得出目标IP为192.168.1.30
靶机:DC-1(Virtualbox) IP:192.168.1.30
扫描端口
nmap -sV -p- 192.168.1.30 //扫描全端口
-sV 用来扫描目标主机和端口上运行的软件的版本
-p- 扫描0-65535全部端口

80端口开放,访问一下

Wappalyzer进行网站指纹识别,查看到是Drupal 7

查看一下robots.txt文件已经目录扫描(省略)。。发现没有可利用的地方

0×02metasploit
直接上metasploit
root@sf:~# msfconsole
msf > search Drupal

选择4,drupalgeddon2的exp,设置下rhost,直接exploit,成功

接下来使用msf自带的shell

发现flag1
查看当前路径下的文件,发现flag1.txt文件,查看一下,发现提示CMS配置文件有猫腻

发现flag2
网上搜索得知,Drupal 7的默认配置文件为sites/default/settings.php,查看发现flag2,还有数据库连接信息

0×003 弯路
尝试连接数据库,结果连接失败,应该是权限不足

爆破flag4用户密码
于是去查看/etc/passwd文件,发现flag4用户

使用hydra尝试爆破flag4用户的密码,hydra -l flag4 -P /usr/share/john/password.lst ssh://192.168.1.30

成功爆破flag4的密码,为 orange ,接下来ssh登录flag4用户,查看当前路径下有flag4.txt,得到新的提示——root目录里有个flag

0×04 连接数据库
然后我们连接数据库,这次成功

顺藤摸瓜,仔细查找数据库

查看user表,发现admin用户

查看role表

查看role_permission表

查看node表

发现flag3
发现flag3,得知uid为1的用户是不受Drupal权限管制的,具有最高权限,uid 1用户也就是admin,
0×05 两个思路
一、重置管理员密码
使用Drupal对数据库的加密方法,加密脚本位置在网站根目录下的script下(msf shell),使用脚本生成加密密文,然后登陆数据库修改admin的密码

修改密码为123456

成功登陆

二、添加一个管理员权限的用户
先查看一下靶机的版本,7.24

msf搜索Druapl 7.24对应可利用的脚本,发现一个符合

运行脚本,进行利用

增加了一个用户user,密码为123456,尝试登陆网站,发现登陆成功

发现flag3
从网站上找到了flag3的界面,得到提示Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.,重点在(FIND the passwd、need to -exec that command、in the shadow)

根据线索,我们又找到了flag4以及它的目录,再根据flag4的提示,(用相同的方法在root目录下)找到最终flag

0×06 提权
于是,想到suid提权,查询具有root权限的命令,以下均可查询:
- find / -user root -perm -4000 -print 2>/dev/null
- find / -perm -u=s -type f 2>/dev/null
- find / -user root -perm -4000 -exec ls -ldb { }
注: -type f即文件,-perm -u=s 即user权限位为suid

发现find命令本身就是root权限

于是就用find提权,find ./ aaa -exec '/bin/sh' \\; ,或者新建一个文件,验证一下,已经是root了


最终flag
接着找到根目录下的root目录,里面就是最终的flag


0×07 总结
DC-1找到最终的flag并不难,难在找齐五个flag,第一次实验,很生疏,存在很多问题:
-
metasploit 熟练度不足,且exploit模块成功后的shell不是交互性,DC-1安装了python环境,可以通过pty.spawn()获得交互性shell

-
exploitdb熟练度也不足
-
Linux熟练度不足,find命令,有待学习
-
suid提权的命令(nmap、vim、find、bash、more、less、nano、cp),有待学习

浙公网安备 33010602011771号